diff -Nrc2 texinfo-4.12/ABOUT-NLS texinfo-4.13/ABOUT-NLS
*** texinfo-4.12/ABOUT-NLS	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/ABOUT-NLS	Tue Dec 25 15:57:15 2007
***************
*** 0 ****
--- 1,1068 ----
+ 1 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 free software 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 on translations can 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.
+ 
+ 1.1 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'.
+ 
+ 1.2 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 included GNU
+ `gettext' 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 not be 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 usually have 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.
+ 
+ 1.3 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.  If you happen to have the `LC_ALL' or some other
+ `LC_xxx' environment variables set, you should unset them before
+ setting `LANG', otherwise the setting of `LANG' will not have the
+ desired effect.  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 language 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'.
+ 
+    Special advice for Norwegian users: The language code for Norwegian
+ bokma*l changed from `no' to `nb' recently (in 2003).  During the
+ transition period, while some message catalogs for this language are
+ installed under `nb' and some older ones under `no', it's recommended
+ for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+ older translations are used.
+ 
+    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.
+ 
+ 1.4 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://translationproject.org/', in the "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 `coordinator@translationproject.org' 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 skills are praised more than
+ programming skills, here.
+ 
+ 1.5 Available Packages
+ ======================
+ 
+ Languages are not equally supported in all packages.  The following
+ matrix shows the current state of internationalization, as of November
+ 2007.  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       af am ar az be bg bs ca cs cy da de el en en_GB eo
+                         +----------------------------------------------------+
+      Compendium         |                      []       [] []        []      |
+      a2ps               |             []                [] [] []     []      |
+      aegis              |                                  ()                |
+      ant-phone          |                                  ()                |
+      anubis             |                                  []                |
+      ap-utils           |                                                    |
+      aspell             |                      [] []    [] []        []      |
+      bash               |                                                 [] |
+      bfd                |                                                    |
+      bibshelf           |                                  []                |
+      binutils           |                                                    |
+      bison              |                               [] []                |
+      bison-runtime      |                                  []                |
+      bluez-pin          | []                      []       [] []          [] |
+      cflow              |                               []                   |
+      clisp              |                               [] []    []          |
+      console-tools      |                         []       []                |
+      coreutils          |                []    [] []       []                |
+      cpio               |                                                    |
+      cpplib             |                      []       [] []                |
+      cryptonit          |                                  []                |
+      dialog             |                                                    |
+      diffutils          |                      [] []    [] [] []          [] |
+      doodle             |                                  []                |
+      e2fsprogs          |                         []       []                |
+      enscript           |                      []       [] []        []      |
+      fetchmail          |                      []       [] () []     []      |
+      findutils          |                []                                  |
+      findutils_stable   |                []    []       []                   |
+      flex               |                      []       [] []                |
+      fslint             |                                                    |
+      gas                |                                                    |
+      gawk               |                      []       [] []                |
+      gcal               |                      []                            |
+      gcc                |                                  []                |
+      gettext-examples   | []                   []          [] []          [] |
+      gettext-runtime    |             []       []       [] []             [] |
+      gettext-tools      |                      []          []                |
+      gip                |                []                                  |
+      gliv               |                []                []                |
+      glunarclock        |                []                                  |
+      gmult              | []                               []                |
+      gnubiff            |                                  ()                |
+      gnucash            |                      [] []       () ()     []      |
+      gnuedu             |                                                    |
+      gnulib             |                []                                  |
+      gnunet             |                                                    |
+      gnunet-gtk         |                                                    |
+      gnutls             |                                  []                |
+      gpe-aerial         |                         []       []                |
+      gpe-beam           |                         []       []                |
+      gpe-calendar       |                                                    |
+      gpe-clock          |                         []       []                |
+      gpe-conf           |                         []       []                |
+      gpe-contacts       |                                                    |
+      gpe-edit           |                         []                         |
+      gpe-filemanager    |                                                    |
+      gpe-go             |                         []                         |
+      gpe-login          |                         []       []                |
+      gpe-ownerinfo      |                         []       []                |
+      gpe-package        |                                                    |
+      gpe-sketchbook     |                         []       []                |
+      gpe-su             |                         []       []                |
+      gpe-taskmanager    |                         []       []                |
+      gpe-timesheet      |                         []                         |
+      gpe-today          |                         []       []                |
+      gpe-todo           |                                                    |
+      gphoto2            |                         []    [] []        []      |
+      gprof              |                               [] []                |
+      gpsdrive           |                                                    |
+      gramadoir          | []                               []                |
+      grep               |                         []                      [] |
+      gretl              |                                  ()                |
+      gsasl              |                                                    |
+      gss                |                                                    |
+      gst-plugins-bad    |                []             []                   |
+      gst-plugins-base   |                []             []                   |
+      gst-plugins-good   |                []    []       []                   |
+      gst-plugins-ugly   |                []             []                   |
+      gstreamer          | []             []    [] []    [] []        []      |
+      gtick              |                                  ()                |
+      gtkam              |             []          []    [] []                |
+      gtkorphan          |                []                []                |
+      gtkspell           |             []                   [] []          [] |
+      gutenprint         |                               []                   |
+      hello              |                []    []       [] []             [] |
+      herrie             |                                  []                |
+      hylafax            |                                                    |
+      idutils            |                               [] []                |
+      indent             |                      [] []       []             [] |
+      iso_15924          |                                                    |
+      iso_3166           |       []    [] [] [] [] [] [] [] [] []          [] |
+      iso_3166_2         |                                                    |
+      iso_4217           |                         []    [] []                |
+      iso_639            |                         []    [] []             [] |
+      jpilot             |                         []                         |
+      jtag               |                                                    |
+      jwhois             |                                                    |
+      kbd                |                         []    [] [] []             |
+      keytouch           |                      []          []                |
+      keytouch-editor    |                                  []                |
+      keytouch-keyboa... |                      []                            |
+      latrine            |                                  ()                |
+      ld                 |                               []                   |
+      leafpad            |                []    [] []       [] []             |
+      libc               |                      [] []    [] []                |
+      libexif            |                                  []                |
+      libextractor       |                                  []                |
+      libgpewidget       |                         []    [] []                |
+      libgpg-error       |                                  []                |
+      libgphoto2         |                               [] []                |
+      libgphoto2_port    |                               [] []                |
+      libgsasl           |                                                    |
+      libiconv           |                                  []             [] |
+      libidn             |                         []    []                [] |
+      lifelines          |                               [] ()                |
+      lilypond           |                                  []                |
+      lingoteach         |                                                    |
+      lprng              |                                                    |
+      lynx               |                      [] []    [] []                |
+      m4                 |                         []    [] [] []             |
+      mailfromd          |                                                    |
+      mailutils          |                      []                            |
+      make               |                               [] []                |
+      man-db             |                      []       [] []                |
+      minicom            |                         []    [] []                |
+      nano               |                []    []          []                |
+      opcodes            |                                  []                |
+      parted             |                         []       []                |
+      pilot-qof          |                                                    |
+      popt               |                         []    [] []                |
+      psmisc             |                []                                  |
+      pwdutils           |                                                    |
+      qof                |                                                    |
+      radius             |                      []                            |
+      recode             |             []       []       [] [] []          [] |
+      rpm                |                               []                   |
+      screem             |                                                    |
+      scrollkeeper       |          [] []       [] [] [] [] []        []      |
+      sed                |                      []          []             [] |
+      shared-mime-info   |                []    [] []    [] () []     []   [] |
+      sharutils          |                []    [] []    [] [] []             |
+      shishi             |                                                    |
+      skencil            |                               [] ()                |
+      solfege            |                                                    |
+      soundtracker       |                               [] []                |
+      sp                 |                                  []                |
+      system-tools-ba... |       []       [] [] [] []    [] [] []     []      |
+      tar                |                []                []                |
+      texinfo            |                               [] []             [] |
+      tin                |                                  ()        ()      |
+      tuxpaint           | []             []             [] []        []   [] |
+      unicode-han-tra... |                                                    |
+      unicode-transla... |                                                    |
+      util-linux         |                      [] []    [] []                |
+      util-linux-ng      |                      [] []    [] []                |
+      vorbis-tools       |                         []                         |
+      wastesedge         |                                  ()                |
+      wdiff              |                      []       [] []        []      |
+      wget               |                      [] []       []                |
+      xchat              |             [] []    [] []       [] []     []      |
+      xkeyboard-config   |                []                                  |
+      xpad               |                []             []           []      |
+                         +----------------------------------------------------+
+                           af am ar az be bg bs ca cs cy da de el en en_GB eo
+                            6  0  2  1  8 26  2 40 48  2 56 88 15  1  15   18
+ 
+                           es et eu fa fi fr  ga gl gu he hi hr hu id is it
+                         +--------------------------------------------------+
+      Compendium         | []          [] []  []                []          |
+      a2ps               |    []       [] []                             () |
+      aegis              |                                                  |
+      ant-phone          |                []                                |
+      anubis             |                []                                |
+      ap-utils           |             [] []                                |
+      aspell             |                []  []                         [] |
+      bash               | []                                               |
+      bfd                | []          []                                   |
+      bibshelf           | []                 []                         [] |
+      binutils           | []          [] []                                |
+      bison              | [] []          []  []                   []    [] |
+      bison-runtime      |    []          []  []                   []    [] |
+      bluez-pin          |             [] []  []                [] []       |
+      cflow              |                    []                            |
+      clisp              | []             []                                |
+      console-tools      |                                                  |
+      coreutils          | [] []       [] []  []                []          |
+      cpio               | []             []  []                            |
+      cpplib             | []             []                                |
+      cryptonit          |                []                                |
+      dialog             |       []           []                         [] |
+      diffutils          | []          [] []  [] []    []       [] []    [] |
+      doodle             |                    []                         [] |
+      e2fsprogs          | []             []                             [] |
+      enscript           |                []  []             []             |
+      fetchmail          | []                                               |
+      findutils          |    []              []                []          |
+      findutils_stable   |    []          []  []                []          |
+      flex               | []             []  []                            |
+      fslint             |                                                  |
+      gas                | []             []                                |
+      gawk               | []             []  []       []                () |
+      gcal               | []             []                                |
+      gcc                | []                                               |
+      gettext-examples   | []          [] []  []                [] []    [] |
+      gettext-runtime    | []          [] []  []                   []    [] |
+      gettext-tools      | []    []       []                             [] |
+      gip                | []    []       []  []                            |
+      gliv               |                ()                                |
+      glunarclock        |             []     []                []          |
+      gmult              |       []       []                             [] |
+      gnubiff            |                ()                             () |
+      gnucash            | ()             ()                    ()          |
+      gnuedu             | []                                               |
+      gnulib             | [] []              []                            |
+      gnunet             |                                                  |
+      gnunet-gtk         |                                                  |
+      gnutls             |                                                  |
+      gpe-aerial         | []             []                                |
+      gpe-beam           | []             []                                |
+      gpe-calendar       |                                                  |
+      gpe-clock          | []          [] []                    []          |
+      gpe-conf           |                []                                |
+      gpe-contacts       | []             []                                |
+      gpe-edit           | []             []                    [] []       |
+      gpe-filemanager    | []                                               |
+      gpe-go             | []             []                    []          |
+      gpe-login          | []             []                    []          |
+      gpe-ownerinfo      | []          [] []                    [] []       |
+      gpe-package        | []                                               |
+      gpe-sketchbook     | []             []                                |
+      gpe-su             | []          [] []                    []          |
+      gpe-taskmanager    | []          [] []                                |
+      gpe-timesheet      | []             []  []                   []       |
+      gpe-today          | []          [] []  []                            |
+      gpe-todo           | []                                               |
+      gphoto2            | []          [] []                    []       [] |
+      gprof              | []          [] []  []                   []       |
+      gpsdrive           |    []                                            |
+      gramadoir          |                []  []                            |
+      grep               | []          []     []                            |
+      gretl              | []    []       []                             () |
+      gsasl              |                    []                   []       |
+      gss                |                []  []                            |
+      gst-plugins-bad    | []          []                       []       [] |
+      gst-plugins-base   | []          []                       []       [] |
+      gst-plugins-good   | []    []    []                       []       [] |
+      gst-plugins-ugly   | []          []                       []       [] |
+      gstreamer          |             []                       []       [] |
+      gtick              |             []     []                         [] |
+      gtkam              | []             []                    []       [] |
+      gtkorphan          |                []                             [] |
+      gtkspell           | []    []    [] []  []                []       [] |
+      gutenprint         |                                      []          |
+      hello              | [] [] [] [] [] []  [] []    []    [] [] []    [] |
+      herrie             |                    []                            |
+      hylafax            |                                                  |
+      idutils            |                []  []                [] []    [] |
+      indent             | [] [] []    [] []  [] []             [] []    [] |
+      iso_15924          |                []                                |
+      iso_3166           | [] [] []    [] []     [] [] [] [] [] [] []    [] |
+      iso_3166_2         |                []                                |
+      iso_4217           | [] []       [] []                    []       [] |
+      iso_639            | []       [] [] []  []                []          |
+      jpilot             | []             []                                |
+      jtag               |                []                                |
+      jwhois             | []             []                    [] []    [] |
+      kbd                | []             []                                |
+      keytouch           |                []  []                         [] |
+      keytouch-editor    |                    []                            |
+      keytouch-keyboa... |                    []                         [] |
+      latrine            |                    []                         [] |
+      ld                 | []          [] []  []                            |
+      leafpad            | []             []  []       []       []       [] |
+      libc               | []          [] []     []             []          |
+      libexif            | []                                               |
+      libextractor       |                    []                            |
+      libgpewidget       | []             []  []                [] []       |
+      libgpg-error       |                []                                |
+      libgphoto2         | []             []                             [] |
+      libgphoto2_port    |                []                             [] |
+      libgsasl           |                []  []                            |
+      libiconv           |    []       []     []                            |
+      libidn             |                []                             [] |
+      lifelines          |                ()                                |
+      lilypond           | []          [] []                                |
+      lingoteach         |                []                       []    [] |
+      lprng              |                                                  |
+      lynx               |    []                                []       [] |
+      m4                 |                []  [] []                []       |
+      mailfromd          |                                                  |
+      mailutils          | []             []                                |
+      make               | []          [] []  [] []    []    []    []       |
+      man-db             |                                               [] |
+      minicom            | []          [] []                    []          |
+      nano               | []    []       []  [] []             []       [] |
+      opcodes            | []          [] []  []                            |
+      parted             |                []                       []    [] |
+      pilot-qof          |                                                  |
+      popt               |                []  [] []                   []    |
+      psmisc             |                                      []       [] |
+      pwdutils           |                                                  |
+      qof                |                                         []       |
+      radius             | []             []                                |
+      recode             | []             []  [] []    []       [] []    [] |
+      rpm                |                []                       []       |
+      screem             |                                                  |
+      scrollkeeper       | []          []                       []          |
+      sed                | [] []          []  []                []          |
+      shared-mime-info   | []    []    [] []                    []       [] |
+      sharutils          | [] []       [] []  [] []             []       [] |
+      shishi             |                []                                |
+      skencil            | []             []                                |
+      solfege            |                                               [] |
+      soundtracker       | []             []                             [] |
+      sp                 |                []                                |
+      system-tools-ba... | []    []    [] []  []             [] [] []    [] |
+      tar                |    [] []    []     []                []          |
+      texinfo            |                []           []       []          |
+      tin                |    []          ()                                |
+      tuxpaint           |                    []                []          |
+      unicode-han-tra... |                                                  |
+      unicode-transla... |                []  []                            |
+      util-linux         | [] []       [] []                    [] []    [] |
+      util-linux-ng      | [] []       [] []                    [] []    [] |
+      vorbis-tools       |                                                  |
+      wastesedge         |                ()                                |
+      wdiff              | [] []          []  [] []             [] []    [] |
+      wget               |    []       [] []  []             [] [] []    [] |
+      xchat              | []          [] []        []    []    []       [] |
+      xkeyboard-config   | []          [] []                    []          |
+      xpad               | []                 []                []          |
+                         +--------------------------------------------------+
+                           es et eu fa fi fr  ga gl gu he hi hr hu id is it
+                           85 22 14  2 48 101 61 12  2  8  2  6 53 29  1 52
+ 
+                           ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl  nn
+                         +--------------------------------------------------+
+      Compendium         |                                           []     |
+      a2ps               |       ()                      []          []     |
+      aegis              |                                           ()     |
+      ant-phone          |                                           []     |
+      anubis             |                               []    []    []     |
+      ap-utils           |                               []                 |
+      aspell             |                            []             []     |
+      bash               |                                           []     |
+      bfd                |                                                  |
+      bibshelf           |                               []                 |
+      binutils           |                                                  |
+      bison              |                               []    []    []     |
+      bison-runtime      |                               []    []    []     |
+      bluez-pin          |          []                   []          []     |
+      cflow              |                                                  |
+      clisp              |                                           []     |
+      console-tools      |                                                  |
+      coreutils          |                                           []     |
+      cpio               |                                           []     |
+      cpplib             |                                           []     |
+      cryptonit          |                                           []     |
+      dialog             |                               []          []     |
+      diffutils          | []                            []          []     |
+      doodle             |                                                  |
+      e2fsprogs          |                                           []     |
+      enscript           |                                           []     |
+      fetchmail          | []                                        []     |
+      findutils          |                                           []     |
+      findutils_stable   |                                           []     |
+      flex               |       []                                  []     |
+      fslint             |                                                  |
+      gas                |                                                  |
+      gawk               | []                                        []     |
+      gcal               |                                                  |
+      gcc                |                                                  |
+      gettext-examples   | []                            []          []     |
+      gettext-runtime    | []    []                                  []     |
+      gettext-tools      | []    []                                         |
+      gip                |                               []          []     |
+      gliv               |                                           []     |
+      glunarclock        |                               []          []     |
+      gmult              | []                            []          []     |
+      gnubiff            |                                                  |
+      gnucash            | ()                                  () ()        |
+      gnuedu             |                                                  |
+      gnulib             | []                                        []     |
+      gnunet             |                                                  |
+      gnunet-gtk         |                                                  |
+      gnutls             |                               []                 |
+      gpe-aerial         |                                           []     |
+      gpe-beam           |                                           []     |
+      gpe-calendar       | []                                               |
+      gpe-clock          | []    []                                  []     |
+      gpe-conf           | []    []                                  []     |
+      gpe-contacts       |       []                                         |
+      gpe-edit           | []    []                                  []     |
+      gpe-filemanager    | []    []                                         |
+      gpe-go             | []    []                                  []     |
+      gpe-login          | []    []                                  []     |
+      gpe-ownerinfo      | []                                        []     |
+      gpe-package        | []    []                                         |
+      gpe-sketchbook     |       []                                  []     |
+      gpe-su             | []    []                                  []     |
+      gpe-taskmanager    | []    [] []                               []     |
+      gpe-timesheet      |                                           []     |
+      gpe-today          | []                                        []     |
+      gpe-todo           | []                                               |
+      gphoto2            | []                                        []     |
+      gprof              |                               []                 |
+      gpsdrive           |                                           []     |
+      gramadoir          |                                           ()     |
+      grep               |             []                            []     |
+      gretl              |                                                  |
+      gsasl              |                                           []     |
+      gss                |                                                  |
+      gst-plugins-bad    |                                           []     |
+      gst-plugins-base   |                                           []     |
+      gst-plugins-good   |                                           []     |
+      gst-plugins-ugly   |                                           []     |
+      gstreamer          |                                           []     |
+      gtick              |                                           []     |
+      gtkam              | []                                        []     |
+      gtkorphan          |                                           []     |
+      gtkspell           |                            []             []     |
+      gutenprint         |                                           []     |
+      hello              | [] [] []                      []    []    []  [] |
+      herrie             |                                           []     |
+      hylafax            |                                                  |
+      idutils            |                                           []     |
+      indent             | []                                        []     |
+      iso_15924          |                                           []     |
+      iso_3166           | []    [] []       []    []          []    []  [] |
+      iso_3166_2         |                                           []     |
+      iso_4217           | []                []                      []     |
+      iso_639            | []                []                      []  [] |
+      jpilot             | ()                                        ()     |
+      jtag               |                                                  |
+      jwhois             |                                           []     |
+      kbd                |                                           []     |
+      keytouch           |                                           []     |
+      keytouch-editor    |                                           []     |
+      keytouch-keyboa... |                                                  |
+      latrine            |                                           []     |
+      ld                 |                                                  |
+      leafpad            | []                []                             |
+      libc               | []    []                                  []     |
+      libexif            |                                                  |
+      libextractor       |                                                  |
+      libgpewidget       |                                           []     |
+      libgpg-error       |                                                  |
+      libgphoto2         | []                                               |
+      libgphoto2_port    | []                                               |
+      libgsasl           |                                           []     |
+      libiconv           |                                           []     |
+      libidn             | []                                        []     |
+      lifelines          |                                           []     |
+      lilypond           |                                           []     |
+      lingoteach         |                                           []     |
+      lprng              |                                                  |
+      lynx               | []                                        []     |
+      m4                 | []                                        []     |
+      mailfromd          |                                                  |
+      mailutils          |                                                  |
+      make               | []    []                                  []     |
+      man-db             |                                                  |
+      minicom            | []                                               |
+      nano               |                               []    []    []     |
+      opcodes            |                                           []     |
+      parted             | []                                        []     |
+      pilot-qof          |                                                  |
+      popt               | []    []                                  []     |
+      psmisc             | []                                  []    []     |
+      pwdutils           |                                                  |
+      qof                |                                                  |
+      radius             |                                                  |
+      recode             |                                           []     |
+      rpm                | []    []                                         |
+      screem             | []                                               |
+      scrollkeeper       |                                     [] [] []  [] |
+      sed                | []                                        []     |
+      shared-mime-info   | []    []          []          []    []    []  [] |
+      sharutils          | []                                        []     |
+      shishi             |                                                  |
+      skencil            |                                                  |
+      solfege            |                                     ()        () |
+      soundtracker       |                                                  |
+      sp                 | ()                                               |
+      system-tools-ba... | []    []          []                      []     |
+      tar                | []          []                            []     |
+      texinfo            |                                     []    []     |
+      tin                |                                                  |
+      tuxpaint           |                                     ()    []  [] |
+      unicode-han-tra... |                                                  |
+      unicode-transla... |                                                  |
+      util-linux         | []                                        []     |
+      util-linux-ng      | []                                        []     |
+      vorbis-tools       |                                                  |
+      wastesedge         |                                           []     |
+      wdiff              |                               []    []           |
+      wget               | []                                        []     |
+      xchat              | []    []                []                []     |
+      xkeyboard-config   |    [] []                                  []     |
+      xpad               |       []                      []          []     |
+                         +--------------------------------------------------+
+                           ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl  nn
+                           51  2 25  3  2  0  6  0  2  2 20  0 11  1 103  6
+ 
+                           or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv  ta
+                         +--------------------------------------------------+
+      Compendium         |          []  []      []       []          []     |
+      a2ps               |       ()     []      [] []       []    [] []     |
+      aegis              |                      () ()                       |
+      ant-phone          |                      []                   []     |
+      anubis             |       []             [] []                       |
+      ap-utils           |       ()                                         |
+      aspell             |                      [] []    []                 |
+      bash               |       []                      []                 |
+      bfd                |                                                  |
+      bibshelf           |                                           []     |
+      binutils           |                         []    []                 |
+      bison              |       []     []      [] []                []     |
+      bison-runtime      |       []     []      []          []       []     |
+      bluez-pin          |       []     []   [] [] []    [] []    [] []     |
+      cflow              |       []                                         |
+      clisp              |                         []                       |
+      console-tools      |                         []                       |
+      coreutils          |       []                []       []       []     |
+      cpio               |       []                []                []     |
+      cpplib             |                                           []     |
+      cryptonit          |              []                           []     |
+      dialog             |                                           []     |
+      diffutils          |       []     []      [] []             [] []     |
+      doodle             |                                     []    []     |
+      e2fsprogs          |       []                                  []     |
+      enscript           |              []      [] []       []       []     |
+      fetchmail          |       []                []          []           |
+      findutils          |       [] []                               []     |
+      findutils_stable   |       [] []          []       [] []       []     |
+      flex               |       []     []      [] []                []     |
+      fslint             |                                           []     |
+      gas                |                                                  |
+      gawk               |       []     []      []                   []     |
+      gcal               |                                           []     |
+      gcc                |                                        [] []     |
+      gettext-examples   |       [] []          [] []    [] []    [] []     |
+      gettext-runtime    |       [] []          [] []    [] []    [] []     |
+      gettext-tools      |       []             [] []    [] []    [] []     |
+      gip                |                   []          []       [] []     |
+      gliv               |       []     []      [] []    []          []     |
+      glunarclock        |              []      [] []    []       [] []     |
+      gmult              |                   [] []                [] []     |
+      gnubiff            |                      ()                   []     |
+      gnucash            |       ()                                  []     |
+      gnuedu             |                                                  |
+      gnulib             |       []                         []       []     |
+      gnunet             |                                                  |
+      gnunet-gtk         |                                           []     |
+      gnutls             |       []                                  []     |
+      gpe-aerial         |          []  []      [] []       []    [] []     |
+      gpe-beam           |          []  []      [] []       []    [] []     |
+      gpe-calendar       |                         []       []    [] []     |
+      gpe-clock          |          []  []      [] []    [] []    [] []     |
+      gpe-conf           |          []  []      [] []    [] []       []     |
+      gpe-contacts       |                      [] []       []    [] []     |
+      gpe-edit           |       [] []  []      [] []    [] []    [] []     |
+      gpe-filemanager    |                                  []       []     |
+      gpe-go             |       []     []      [] []    [] []    [] []     |
+      gpe-login          |          []  []      [] []    [] []    [] []     |
+      gpe-ownerinfo      |          []  []      [] []    [] []    [] []     |
+      gpe-package        |                                  []       []     |
+      gpe-sketchbook     |          []  []      [] []    [] []    [] []     |
+      gpe-su             |          []  []      [] []    [] []    [] []     |
+      gpe-taskmanager    |          []  []      [] []    [] []    [] []     |
+      gpe-timesheet      |          []  []      [] []    [] []    [] []     |
+      gpe-today          |          []  []      [] []    [] []    [] []     |
+      gpe-todo           |                         []       []    [] []     |
+      gphoto2            |    [] []             []       []       [] []     |
+      gprof              |              []      []                   []     |
+      gpsdrive           |                         []                []     |
+      gramadoir          |                               []          []     |
+      grep               |       []                      [] []       []     |
+      gretl              |       [] []  []                                  |
+      gsasl              |       []                               [] []     |
+      gss                |       []             []       []          []     |
+      gst-plugins-bad    |       []     []                           []     |
+      gst-plugins-base   |       []                                  []     |
+      gst-plugins-good   |       []                                  []     |
+      gst-plugins-ugly   |       []     []                           []     |
+      gstreamer          |       []                            [] [] []     |
+      gtick              |                         []                       |
+      gtkam              |    [] []     []         []                []     |
+      gtkorphan          |                                           []     |
+      gtkspell           |              []   [] [] []    [] []    [] []     |
+      gutenprint         |                                           []     |
+      hello              |       []     []      [] []    [] []    [] []     |
+      herrie             |       []                []                []     |
+      hylafax            |                                                  |
+      idutils            |       []     []      [] []                []     |
+      indent             |       []     []      [] []    []       [] []     |
+      iso_15924          |                                                  |
+      iso_3166           |    [] [] []  []      [] [] [] [] [] [] [] []  [] |
+      iso_3166_2         |                                                  |
+      iso_4217           |       [] []             [] []    []    [] []     |
+      iso_639            |       []                [] [] [] []    [] []     |
+      jpilot             |                                                  |
+      jtag               |                               []                 |
+      jwhois             |       []     []      []                   []     |
+      kbd                |       []             []                   []     |
+      keytouch           |                                           []     |
+      keytouch-editor    |                                           []     |
+      keytouch-keyboa... |                                           []     |
+      latrine            |                                                  |
+      ld                 |                                           []     |
+      leafpad            |       [] []             []    []          []  [] |
+      libc               |       []                []    []          []     |
+      libexif            |       []                      []                 |
+      libextractor       |                      []                   []     |
+      libgpewidget       |       [] []  []      []       [] []    [] []     |
+      libgpg-error       |       []             []                   []     |
+      libgphoto2         |       []                                         |
+      libgphoto2_port    |       []                []                []     |
+      libgsasl           |       []             []                [] []     |
+      libiconv           |                                  []    [] []     |
+      libidn             |       []                               [] ()     |
+      lifelines          |       []                                  []     |
+      lilypond           |                                                  |
+      lingoteach         |              []                                  |
+      lprng              |       []                                         |
+      lynx               |              []         []                []     |
+      m4                 |       []     []      [] []                []     |
+      mailfromd          |       []                                         |
+      mailutils          |       []                []                []     |
+      make               |       []     []         []                []     |
+      man-db             |       []             [] []                []     |
+      minicom            |       []     []      [] []                []     |
+      nano               |              []      [] []                []     |
+      opcodes            |                      []                   []     |
+      parted             |       []                                         |
+      pilot-qof          |                                                  |
+      popt               |       [] []             []                []     |
+      psmisc             |       []                                  []     |
+      pwdutils           |       []                                  []     |
+      qof                |              []                           []     |
+      radius             |       []                []                       |
+      recode             |       [] []  []      [] []       []       []     |
+      rpm                |       [] []             []                []     |
+      screem             |                                                  |
+      scrollkeeper       |       []             [] []    []    [] [] []     |
+      sed                |       [] []  []      [] []    [] []    [] []     |
+      shared-mime-info   |       [] []  []                     [] [] []     |
+      sharutils          |       []                []             [] []     |
+      shishi             |       []                                         |
+      skencil            |          []  []                           []     |
+      solfege            |              []                                  |
+      soundtracker       |                               []          []     |
+      sp                 |                                                  |
+      system-tools-ba... |    [] [] []  []      []             [] [] []  [] |
+      tar                |       []                []       []       []     |
+      texinfo            |       []             [] []                []     |
+      tin                |                         ()                       |
+      tuxpaint           |       [] []                      [] [] [] []     |
+      unicode-han-tra... |                                                  |
+      unicode-transla... |                                                  |
+      util-linux         |              []         []       []       []     |
+      util-linux-ng      |              []         []       []       []     |
+      vorbis-tools       |                         []                       |
+      wastesedge         |                                                  |
+      wdiff              |       []     []      [] []    [] []       []     |
+      wget               |          []             []    []          []     |
+      xchat              |    []                   []    [] [] [] [] []     |
+      xkeyboard-config   |                               [] []       []     |
+      xpad               |                               [] []       []     |
+                         +--------------------------------------------------+
+                           or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv  ta
+                            0  5 77 31  53    4 58 72  3 45 46  9 45 122  3
+ 
+                           tg th tk tr uk ven vi  wa xh zh_CN zh_HK zh_TW zu
+                         +---------------------------------------------------+
+      Compendium         |          []        []         []          []      | 19
+      a2ps               |          [] []     []                             | 19
+      aegis              |                    []                             |  1
+      ant-phone          |          []        []                             |  6
+      anubis             |          [] []     []                             | 11
+      ap-utils           |             ()     []                             |  4
+      aspell             |             []     []  []                         | 16
+      bash               |          []                                       |  6
+      bfd                |                                                   |  2
+      bibshelf           |                    []                             |  7
+      binutils           |          [] []     []                     []      |  9
+      bison              |          [] []     []                     []      | 20
+      bison-runtime      |             []     []         []          []      | 18
+      bluez-pin          |          [] []     []  []     []          []      | 28
+      cflow              |             []     []                             |  5
+      clisp              |                                                   |  9
+      console-tools      |          []        []                             |  5
+      coreutils          |          [] []     []                             | 18
+      cpio               |          [] []     []         []                  | 11
+      cpplib             |          [] []     []         []          []      | 12
+      cryptonit          |                    []                             |  6
+      dialog             |                    []  []     []                  |  9
+      diffutils          |          [] []     []         []          []      | 29
+      doodle             |                    []                             |  6
+      e2fsprogs          |          []        []                             | 10
+      enscript           |          [] []     []                             | 16
+      fetchmail          |          []        []                             | 12
+      findutils          |          [] []     []                             | 11
+      findutils_stable   |          [] []     []                     []      | 18
+      flex               |          []        []                             | 15
+      fslint             |                    []                             |  2
+      gas                |          []                                       |  3
+      gawk               |          []        []         []                  | 16
+      gcal               |          []                                       |  5
+      gcc                |          []                   []          []      |  7
+      gettext-examples   |          [] []     []         []    []    []      | 29
+      gettext-runtime    |          [] []     []         []    []    []      | 28
+      gettext-tools      |          [] []     []         []          []      | 20
+      gip                |                    []                     []      | 13
+      gliv               |          []        []                             | 11
+      glunarclock        |                    []  []                 []      | 15
+      gmult              |          []        []         []          []      | 16
+      gnubiff            |                    []                             |  2
+      gnucash            |          () []                                    |  5
+      gnuedu             |                    []                             |  2
+      gnulib             |                    []                             | 10
+      gnunet             |                                                   |  0
+      gnunet-gtk         |          []        []                             |  3
+      gnutls             |                                                   |  4
+      gpe-aerial         |                    []         []                  | 14
+      gpe-beam           |                    []         []                  | 14
+      gpe-calendar       |                    []  []                         |  7
+      gpe-clock          |          []        []  []     []                  | 21
+      gpe-conf           |                    []  []     []                  | 16
+      gpe-contacts       |                    []         []                  | 10
+      gpe-edit           |          []        []  []     []          []      | 22
+      gpe-filemanager    |                    []  []                         |  7
+      gpe-go             |          []        []  []     []                  | 19
+      gpe-login          |          []        []  []     []          []      | 21
+      gpe-ownerinfo      |          []        []         []          []      | 21
+      gpe-package        |                    []                             |  6
+      gpe-sketchbook     |          []        []                             | 16
+      gpe-su             |          []        []  []     []                  | 21
+      gpe-taskmanager    |          []        []  []     []                  | 21
+      gpe-timesheet      |          []        []         []          []      | 18
+      gpe-today          |          []        []  []     []          []      | 21
+      gpe-todo           |                    []  []                         |  8
+      gphoto2            |             []     []         []          []      | 21
+      gprof              |          []        []                             | 13
+      gpsdrive           |                    []                             |  5
+      gramadoir          |                    []                             |  7
+      grep               |                    []                             | 12
+      gretl              |                                                   |  6
+      gsasl              |                    []         []          []      |  9
+      gss                |                    []                             |  7
+      gst-plugins-bad    |             []     []         []                  | 13
+      gst-plugins-base   |             []     []                             | 11
+      gst-plugins-good   |             []     []         []    []    []      | 16
+      gst-plugins-ugly   |             []     []         []                  | 13
+      gstreamer          |          [] []     []                             | 18
+      gtick              |             []     []                             |  7
+      gtkam              |                    []                             | 16
+      gtkorphan          |                    []                             |  7
+      gtkspell           |             []     []  []     []    []    []      | 27
+      gutenprint         |                                                   |  4
+      hello              |          [] []     []         []          []      | 38
+      herrie             |          []        []                             |  8
+      hylafax            |                                                   |  0
+      idutils            |          []        []                             | 15
+      indent             |          [] []     []         []          []      | 28
+      iso_15924          |                    []         []                  |  4
+      iso_3166           |    [] [] [] []     []  []     []    []    []      | 54
+      iso_3166_2         |                    []         []                  |  4
+      iso_4217           |    []    []        []         []    []            | 24
+      iso_639            |             []     []  []     []    []            | 26
+      jpilot             |          [] []     []         []                  |  7
+      jtag               |                    []                             |  3
+      jwhois             |          []        []                     []      | 13
+      kbd                |          [] []     []                             | 13
+      keytouch           |                    []                             |  8
+      keytouch-editor    |                    []                             |  5
+      keytouch-keyboa... |                    []                             |  5
+      latrine            |          []        []                             |  5
+      ld                 |          []        []         []          []      | 10
+      leafpad            |          [] []     []         []          []      | 24
+      libc               |          []                   []          []      | 19
+      libexif            |                    []                             |  5
+      libextractor       |                    []                             |  5
+      libgpewidget       |                    []  []     []                  | 20
+      libgpg-error       |                    []                             |  6
+      libgphoto2         |             []     []                             |  9
+      libgphoto2_port    |             []     []                     []      | 11
+      libgsasl           |                    []                             |  8
+      libiconv           |                    []  []                         | 11
+      libidn             |                    []         []                  | 11
+      lifelines          |                                                   |  4
+      lilypond           |                    []                             |  6
+      lingoteach         |                    []                             |  6
+      lprng              |                    []                             |  2
+      lynx               |          [] []     []                             | 15
+      m4                 |                    []         []          []      | 18
+      mailfromd          |             []     []                             |  3
+      mailutils          |             []     []                             |  8
+      make               |          []        []         []                  | 20
+      man-db             |                    []                             |  9
+      minicom            |                    []                             | 14
+      nano               |                    []         []          []      | 20
+      opcodes            |          []        []                             | 10
+      parted             |          [] []                            []      | 11
+      pilot-qof          |                    []                             |  1
+      popt               |          []        []         []          []      | 18
+      psmisc             |                    []         []                  | 10
+      pwdutils           |                    []                             |  3
+      qof                |                    []                             |  4
+      radius             |             []     []                             |  7
+      recode             |          []        []         []                  | 25
+      rpm                |          [] []     []                     []      | 13
+      screem             |                    []                             |  2
+      scrollkeeper       |          [] []     []                     []      | 26
+      sed                |          []        []         []          []      | 23
+      shared-mime-info   |             []     []         []                  | 29
+      sharutils          |          []        []                     []      | 23
+      shishi             |                    []                             |  3
+      skencil            |                    []                             |  7
+      solfege            |                    []                             |  3
+      soundtracker       |          []        []                             |  9
+      sp                 |          []                                       |  3
+      system-tools-ba... |    []    [] []     []     []  []          []      | 38
+      tar                |          [] []     []                             | 17
+      texinfo            |          []        []         []                  | 15
+      tin                |                                                   |  1
+      tuxpaint           |                    []  []                 []      | 19
+      unicode-han-tra... |                                                   |  0
+      unicode-transla... |                                                   |  2
+      util-linux         |          [] []     []                             | 20
+      util-linux-ng      |          [] []     []                             | 20
+      vorbis-tools       |             []     []                             |  4
+      wastesedge         |                                                   |  1
+      wdiff              |          []        []                             | 23
+      wget               |          []        []                     []      | 20
+      xchat              |             []     []         []          []      | 29
+      xkeyboard-config   |          [] []     []                             | 14
+      xpad               |                    []         []          []      | 15
+                         +---------------------------------------------------+
+        76 teams           tg th tk tr uk ven vi  wa xh zh_CN zh_HK zh_TW zu
+       163 domains          0  3  1 74 51  0  143 21  1  57     7    45    0  2036
+ 
+    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 November 2007 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://translationproject.org/extra/matrix.html'.
+ 
+ 1.6 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
+ the 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
+ `coordinator@translationproject.org' to make the `.pot' files available
+ to the translation teams.
+ 
diff -Nrc2 texinfo-4.12/AUTHORS texinfo-4.13/AUTHORS
*** texinfo-4.12/AUTHORS	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/AUTHORS	Sat Mar  8 06:31:56 2008
***************
*** 0 ****
--- 1,39 ----
+ $Id: AUTHORS,v 1.14 2008/03/05 09:05:15 gray Exp $
+ Texinfo authors.
+ 
+   Copyright (C) 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+   
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ Karl Berry		all files.
+ Per Bothner		makeinfo/xml.c, makeinfo/docbook.c updates.
+ Torsten Bronger         texinfo.dtd.
+ Bob Chassell		texinfo.tex, original texinfo.txi.
+ Akim Demaille		texi2dvi, util/* tests.
+ Alper Ersoy		makeinfo: enhancements in all files, especially
+                           html-, xml-, and docbook-related.
+ Brian Fox		all makeinfo/* and info/* files, info-stnd.texi.
+ Noah Friedman		original texi2dvi.
+ Oleg Katsitadze		doc/*
+ Dave Love		original makeinfo/html.[ch].
+ Karl Heinz Marbaise	original makeinfo language support, most files.
+ Philippe Martin		original makeinfo xml/docbook output.
+ Sergey Poznyakoff	all files.
+ Paul Rubin		original makeinfo/multi.c.
+ Andreas Schwab		texinfo.tex, configure.ac, most makeinfo files.
+ Richard Stallman	original texinfo.tex, install-info.c,
+ 			texindex.c, texinfo.txi.
+ Zack Weinberg		texinfo.tex: @macro implementation.
+ Ralf Wildenhues		util/gendocs.sh, makeinfo/tests/*,
+ 			makeinfo/html.c, makeinfo/cmds.c, makeinfo/footnote.c,
+ 			doc/texinfo.txi,
+ 			Makefile.am, configure.ac.
+ Eli Zaretskii		all files.
+ 
+ See http://translationproject.org/team/index.html for the
+ translation teams for a given language LL.
+ 
+ Many files included in the Texinfo distribution are copied from other
+ locations, no author information is given for those.  See util/srclist*.
diff -Nrc2 texinfo-4.12/COPYING texinfo-4.13/COPYING
*** texinfo-4.12/COPYING	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/COPYING	Sun Jul  1 11:46:20 2007
***************
*** 0 ****
--- 1,674 ----
+ 		    GNU GENERAL PUBLIC LICENSE
+ 		       Version 3, 29 June 2007
+ 
+  Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+  Everyone is permitted to copy and distribute verbatim copies
+  of this license document, but changing it is not allowed.
+ 
+ 			    Preamble
+ 
+   The GNU General Public License is a free, copyleft license for
+ software and other kinds of works.
+ 
+   The licenses for most software and other practical works are designed
+ to take away your freedom to share and change the works.  By contrast,
+ the GNU General Public License is intended to guarantee your freedom to
+ share and change all versions of a program--to make sure it remains free
+ software for all its users.  We, the Free Software Foundation, use the
+ GNU General Public License for most of our software; it applies also to
+ any other work released this way by its authors.  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
+ them 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 prevent others from denying you
+ these rights or asking you to surrender the rights.  Therefore, you have
+ certain responsibilities if you distribute copies of the software, or if
+ you modify it: responsibilities to respect the freedom of others.
+ 
+   For example, if you distribute copies of such a program, whether
+ gratis or for a fee, you must pass on to the recipients the same
+ freedoms that you received.  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.
+ 
+   Developers that use the GNU GPL protect your rights with two steps:
+ (1) assert copyright on the software, and (2) offer you this License
+ giving you legal permission to copy, distribute and/or modify it.
+ 
+   For the developers' and authors' protection, the GPL clearly explains
+ that there is no warranty for this free software.  For both users' and
+ authors' sake, the GPL requires that modified versions be marked as
+ changed, so that their problems will not be attributed erroneously to
+ authors of previous versions.
+ 
+   Some devices are designed to deny users access to install or run
+ modified versions of the software inside them, although the manufacturer
+ can do so.  This is fundamentally incompatible with the aim of
+ protecting users' freedom to change the software.  The systematic
+ pattern of such abuse occurs in the area of products for individuals to
+ use, which is precisely where it is most unacceptable.  Therefore, we
+ have designed this version of the GPL to prohibit the practice for those
+ products.  If such problems arise substantially in other domains, we
+ stand ready to extend this provision to those domains in future versions
+ of the GPL, as needed to protect the freedom of users.
+ 
+   Finally, every program is threatened constantly by software patents.
+ States should not allow patents to restrict development and use of
+ software on general-purpose computers, but in those that do, we wish to
+ avoid the special danger that patents applied to a free program could
+ make it effectively proprietary.  To prevent this, the GPL assures that
+ patents cannot be used to render the program non-free.
+ 
+   The precise terms and conditions for copying, distribution and
+ modification follow.
+ 
+ 		       TERMS AND CONDITIONS
+ 
+   0. Definitions.
+ 
+   "This License" refers to version 3 of the GNU General Public License.
+ 
+   "Copyright" also means copyright-like laws that apply to other kinds of
+ works, such as semiconductor masks.
+  
+   "The Program" refers to any copyrightable work licensed under this
+ License.  Each licensee is addressed as "you".  "Licensees" and
+ "recipients" may be individuals or organizations.
+ 
+   To "modify" a work means to copy from or adapt all or part of the work
+ in a fashion requiring copyright permission, other than the making of an
+ exact copy.  The resulting work is called a "modified version" of the
+ earlier work or a work "based on" the earlier work.
+ 
+   A "covered work" means either the unmodified Program or a work based
+ on the Program.
+ 
+   To "propagate" a work means to do anything with it that, without
+ permission, would make you directly or secondarily liable for
+ infringement under applicable copyright law, except executing it on a
+ computer or modifying a private copy.  Propagation includes copying,
+ distribution (with or without modification), making available to the
+ public, and in some countries other activities as well.
+ 
+   To "convey" a work means any kind of propagation that enables other
+ parties to make or receive copies.  Mere interaction with a user through
+ a computer network, with no transfer of a copy, is not conveying.
+ 
+   An interactive user interface displays "Appropriate Legal Notices"
+ to the extent that it includes a convenient and prominently visible
+ feature that (1) displays an appropriate copyright notice, and (2)
+ tells the user that there is no warranty for the work (except to the
+ extent that warranties are provided), that licensees may convey the
+ work under this License, and how to view a copy of this License.  If
+ the interface presents a list of user commands or options, such as a
+ menu, a prominent item in the list meets this criterion.
+ 
+   1. Source Code.
+ 
+   The "source code" for a work means the preferred form of the work
+ for making modifications to it.  "Object code" means any non-source
+ form of a work.
+ 
+   A "Standard Interface" means an interface that either is an official
+ standard defined by a recognized standards body, or, in the case of
+ interfaces specified for a particular programming language, one that
+ is widely used among developers working in that language.
+ 
+   The "System Libraries" of an executable work include anything, other
+ than the work as a whole, that (a) is included in the normal form of
+ packaging a Major Component, but which is not part of that Major
+ Component, and (b) serves only to enable use of the work with that
+ Major Component, or to implement a Standard Interface for which an
+ implementation is available to the public in source code form.  A
+ "Major Component", in this context, means a major essential component
+ (kernel, window system, and so on) of the specific operating system
+ (if any) on which the executable work runs, or a compiler used to
+ produce the work, or an object code interpreter used to run it.
+ 
+   The "Corresponding Source" for a work in object code form means all
+ the source code needed to generate, install, and (for an executable
+ work) run the object code and to modify the work, including scripts to
+ control those activities.  However, it does not include the work's
+ System Libraries, or general-purpose tools or generally available free
+ programs which are used unmodified in performing those activities but
+ which are not part of the work.  For example, Corresponding Source
+ includes interface definition files associated with source files for
+ the work, and the source code for shared libraries and dynamically
+ linked subprograms that the work is specifically designed to require,
+ such as by intimate data communication or control flow between those
+ subprograms and other parts of the work.
+ 
+   The Corresponding Source need not include anything that users
+ can regenerate automatically from other parts of the Corresponding
+ Source.
+ 
+   The Corresponding Source for a work in source code form is that
+ same work.
+ 
+   2. Basic Permissions.
+ 
+   All rights granted under this License are granted for the term of
+ copyright on the Program, and are irrevocable provided the stated
+ conditions are met.  This License explicitly affirms your unlimited
+ permission to run the unmodified Program.  The output from running a
+ covered work is covered by this License only if the output, given its
+ content, constitutes a covered work.  This License acknowledges your
+ rights of fair use or other equivalent, as provided by copyright law.
+ 
+   You may make, run and propagate covered works that you do not
+ convey, without conditions so long as your license otherwise remains
+ in force.  You may convey covered works to others for the sole purpose
+ of having them make modifications exclusively for you, or provide you
+ with facilities for running those works, provided that you comply with
+ the terms of this License in conveying all material for which you do
+ not control copyright.  Those thus making or running the covered works
+ for you must do so exclusively on your behalf, under your direction
+ and control, on terms that prohibit them from making any copies of
+ your copyrighted material outside their relationship with you.
+ 
+   Conveying under any other circumstances is permitted solely under
+ the conditions stated below.  Sublicensing is not allowed; section 10
+ makes it unnecessary.
+ 
+   3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+ 
+   No covered work shall be deemed part of an effective technological
+ measure under any applicable law fulfilling obligations under article
+ 11 of the WIPO copyright treaty adopted on 20 December 1996, or
+ similar laws prohibiting or restricting circumvention of such
+ measures.
+ 
+   When you convey a covered work, you waive any legal power to forbid
+ circumvention of technological measures to the extent such circumvention
+ is effected by exercising rights under this License with respect to
+ the covered work, and you disclaim any intention to limit operation or
+ modification of the work as a means of enforcing, against the work's
+ users, your or third parties' legal rights to forbid circumvention of
+ technological measures.
+ 
+   4. Conveying Verbatim Copies.
+ 
+   You may convey 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;
+ keep intact all notices stating that this License and any
+ non-permissive terms added in accord with section 7 apply to the code;
+ keep intact all notices of the absence of any warranty; and give all
+ recipients a copy of this License along with the Program.
+ 
+   You may charge any price or no price for each copy that you convey,
+ and you may offer support or warranty protection for a fee.
+ 
+   5. Conveying Modified Source Versions.
+ 
+   You may convey a work based on the Program, or the modifications to
+ produce it from the Program, in the form of source code under the
+ terms of section 4, provided that you also meet all of these conditions:
+ 
+     a) The work must carry prominent notices stating that you modified
+     it, and giving a relevant date.
+ 
+     b) The work must carry prominent notices stating that it is
+     released under this License and any conditions added under section
+     7.  This requirement modifies the requirement in section 4 to
+     "keep intact all notices".
+ 
+     c) You must license the entire work, as a whole, under this
+     License to anyone who comes into possession of a copy.  This
+     License will therefore apply, along with any applicable section 7
+     additional terms, to the whole of the work, and all its parts,
+     regardless of how they are packaged.  This License gives no
+     permission to license the work in any other way, but it does not
+     invalidate such permission if you have separately received it.
+ 
+     d) If the work has interactive user interfaces, each must display
+     Appropriate Legal Notices; however, if the Program has interactive
+     interfaces that do not display Appropriate Legal Notices, your
+     work need not make them do so.
+ 
+   A compilation of a covered work with other separate and independent
+ works, which are not by their nature extensions of the covered work,
+ and which are not combined with it such as to form a larger program,
+ in or on a volume of a storage or distribution medium, is called an
+ "aggregate" if the compilation and its resulting copyright are not
+ used to limit the access or legal rights of the compilation's users
+ beyond what the individual works permit.  Inclusion of a covered work
+ in an aggregate does not cause this License to apply to the other
+ parts of the aggregate.
+ 
+   6. Conveying Non-Source Forms.
+ 
+   You may convey a covered work in object code form under the terms
+ of sections 4 and 5, provided that you also convey the
+ machine-readable Corresponding Source under the terms of this License,
+ in one of these ways:
+ 
+     a) Convey the object code in, or embodied in, a physical product
+     (including a physical distribution medium), accompanied by the
+     Corresponding Source fixed on a durable physical medium
+     customarily used for software interchange.
+ 
+     b) Convey the object code in, or embodied in, a physical product
+     (including a physical distribution medium), accompanied by a
+     written offer, valid for at least three years and valid for as
+     long as you offer spare parts or customer support for that product
+     model, to give anyone who possesses the object code either (1) a
+     copy of the Corresponding Source for all the software in the
+     product that is covered by this License, on a durable physical
+     medium customarily used for software interchange, for a price no
+     more than your reasonable cost of physically performing this
+     conveying of source, or (2) access to copy the
+     Corresponding Source from a network server at no charge.
+ 
+     c) Convey individual copies of the object code with a copy of the
+     written offer to provide the Corresponding Source.  This
+     alternative is allowed only occasionally and noncommercially, and
+     only if you received the object code with such an offer, in accord
+     with subsection 6b.
+ 
+     d) Convey the object code by offering access from a designated
+     place (gratis or for a charge), and offer equivalent access to the
+     Corresponding Source in the same way through the same place at no
+     further charge.  You need not require recipients to copy the
+     Corresponding Source along with the object code.  If the place to
+     copy the object code is a network server, the Corresponding Source
+     may be on a different server (operated by you or a third party)
+     that supports equivalent copying facilities, provided you maintain
+     clear directions next to the object code saying where to find the
+     Corresponding Source.  Regardless of what server hosts the
+     Corresponding Source, you remain obligated to ensure that it is
+     available for as long as needed to satisfy these requirements.
+ 
+     e) Convey the object code using peer-to-peer transmission, provided
+     you inform other peers where the object code and Corresponding
+     Source of the work are being offered to the general public at no
+     charge under subsection 6d.
+ 
+   A separable portion of the object code, whose source code is excluded
+ from the Corresponding Source as a System Library, need not be
+ included in conveying the object code work.
+ 
+   A "User Product" is either (1) a "consumer product", which means any
+ tangible personal property which is normally used for personal, family,
+ or household purposes, or (2) anything designed or sold for incorporation
+ into a dwelling.  In determining whether a product is a consumer product,
+ doubtful cases shall be resolved in favor of coverage.  For a particular
+ product received by a particular user, "normally used" refers to a
+ typical or common use of that class of product, regardless of the status
+ of the particular user or of the way in which the particular user
+ actually uses, or expects or is expected to use, the product.  A product
+ is a consumer product regardless of whether the product has substantial
+ commercial, industrial or non-consumer uses, unless such uses represent
+ the only significant mode of use of the product.
+ 
+   "Installation Information" for a User Product means any methods,
+ procedures, authorization keys, or other information required to install
+ and execute modified versions of a covered work in that User Product from
+ a modified version of its Corresponding Source.  The information must
+ suffice to ensure that the continued functioning of the modified object
+ code is in no case prevented or interfered with solely because
+ modification has been made.
+ 
+   If you convey an object code work under this section in, or with, or
+ specifically for use in, a User Product, and the conveying occurs as
+ part of a transaction in which the right of possession and use of the
+ User Product is transferred to the recipient in perpetuity or for a
+ fixed term (regardless of how the transaction is characterized), the
+ Corresponding Source conveyed under this section must be accompanied
+ by the Installation Information.  But this requirement does not apply
+ if neither you nor any third party retains the ability to install
+ modified object code on the User Product (for example, the work has
+ been installed in ROM).
+ 
+   The requirement to provide Installation Information does not include a
+ requirement to continue to provide support service, warranty, or updates
+ for a work that has been modified or installed by the recipient, or for
+ the User Product in which it has been modified or installed.  Access to a
+ network may be denied when the modification itself materially and
+ adversely affects the operation of the network or violates the rules and
+ protocols for communication across the network.
+ 
+   Corresponding Source conveyed, and Installation Information provided,
+ in accord with this section must be in a format that is publicly
+ documented (and with an implementation available to the public in
+ source code form), and must require no special password or key for
+ unpacking, reading or copying.
+ 
+   7. Additional Terms.
+ 
+   "Additional permissions" are terms that supplement the terms of this
+ License by making exceptions from one or more of its conditions.
+ Additional permissions that are applicable to the entire Program shall
+ be treated as though they were included in this License, to the extent
+ that they are valid under applicable law.  If additional permissions
+ apply only to part of the Program, that part may be used separately
+ under those permissions, but the entire Program remains governed by
+ this License without regard to the additional permissions.
+ 
+   When you convey a copy of a covered work, you may at your option
+ remove any additional permissions from that copy, or from any part of
+ it.  (Additional permissions may be written to require their own
+ removal in certain cases when you modify the work.)  You may place
+ additional permissions on material, added by you to a covered work,
+ for which you have or can give appropriate copyright permission.
+ 
+   Notwithstanding any other provision of this License, for material you
+ add to a covered work, you may (if authorized by the copyright holders of
+ that material) supplement the terms of this License with terms:
+ 
+     a) Disclaiming warranty or limiting liability differently from the
+     terms of sections 15 and 16 of this License; or
+ 
+     b) Requiring preservation of specified reasonable legal notices or
+     author attributions in that material or in the Appropriate Legal
+     Notices displayed by works containing it; or
+ 
+     c) Prohibiting misrepresentation of the origin of that material, or
+     requiring that modified versions of such material be marked in
+     reasonable ways as different from the original version; or
+ 
+     d) Limiting the use for publicity purposes of names of licensors or
+     authors of the material; or
+ 
+     e) Declining to grant rights under trademark law for use of some
+     trade names, trademarks, or service marks; or
+ 
+     f) Requiring indemnification of licensors and authors of that
+     material by anyone who conveys the material (or modified versions of
+     it) with contractual assumptions of liability to the recipient, for
+     any liability that these contractual assumptions directly impose on
+     those licensors and authors.
+ 
+   All other non-permissive additional terms are considered "further
+ restrictions" within the meaning of section 10.  If the Program as you
+ received it, or any part of it, contains a notice stating that it is
+ governed by this License along with a term that is a further
+ restriction, you may remove that term.  If a license document contains
+ a further restriction but permits relicensing or conveying under this
+ License, you may add to a covered work material governed by the terms
+ of that license document, provided that the further restriction does
+ not survive such relicensing or conveying.
+ 
+   If you add terms to a covered work in accord with this section, you
+ must place, in the relevant source files, a statement of the
+ additional terms that apply to those files, or a notice indicating
+ where to find the applicable terms.
+ 
+   Additional terms, permissive or non-permissive, may be stated in the
+ form of a separately written license, or stated as exceptions;
+ the above requirements apply either way.
+ 
+   8. Termination.
+ 
+   You may not propagate or modify a covered work except as expressly
+ provided under this License.  Any attempt otherwise to propagate or
+ modify it is void, and will automatically terminate your rights under
+ this License (including any patent licenses granted under the third
+ paragraph of section 11).
+ 
+   However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly and
+ finally terminates your license, and (b) permanently, if the copyright
+ holder fails to notify you of the violation by some reasonable means
+ prior to 60 days after the cessation.
+ 
+   Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from that
+ copyright holder, and you cure the violation prior to 30 days after
+ your receipt of the notice.
+ 
+   Termination of your rights under this section does not terminate the
+ licenses of parties who have received copies or rights from you under
+ this License.  If your rights have been terminated and not permanently
+ reinstated, you do not qualify to receive new licenses for the same
+ material under section 10.
+ 
+   9. Acceptance Not Required for Having Copies.
+ 
+   You are not required to accept this License in order to receive or
+ run a copy of the Program.  Ancillary propagation of a covered work
+ occurring solely as a consequence of using peer-to-peer transmission
+ to receive a copy likewise does not require acceptance.  However,
+ nothing other than this License grants you permission to propagate or
+ modify any covered work.  These actions infringe copyright if you do
+ not accept this License.  Therefore, by modifying or propagating a
+ covered work, you indicate your acceptance of this License to do so.
+ 
+   10. Automatic Licensing of Downstream Recipients.
+ 
+   Each time you convey a covered work, the recipient automatically
+ receives a license from the original licensors, to run, modify and
+ propagate that work, subject to this License.  You are not responsible
+ for enforcing compliance by third parties with this License.
+ 
+   An "entity transaction" is a transaction transferring control of an
+ organization, or substantially all assets of one, or subdividing an
+ organization, or merging organizations.  If propagation of a covered
+ work results from an entity transaction, each party to that
+ transaction who receives a copy of the work also receives whatever
+ licenses to the work the party's predecessor in interest had or could
+ give under the previous paragraph, plus a right to possession of the
+ Corresponding Source of the work from the predecessor in interest, if
+ the predecessor has it or can get it with reasonable efforts.
+ 
+   You may not impose any further restrictions on the exercise of the
+ rights granted or affirmed under this License.  For example, you may
+ not impose a license fee, royalty, or other charge for exercise of
+ rights granted under this License, and you may not initiate litigation
+ (including a cross-claim or counterclaim in a lawsuit) alleging that
+ any patent claim is infringed by making, using, selling, offering for
+ sale, or importing the Program or any portion of it.
+ 
+   11. Patents.
+ 
+   A "contributor" is a copyright holder who authorizes use under this
+ License of the Program or a work on which the Program is based.  The
+ work thus licensed is called the contributor's "contributor version".
+ 
+   A contributor's "essential patent claims" are all patent claims
+ owned or controlled by the contributor, whether already acquired or
+ hereafter acquired, that would be infringed by some manner, permitted
+ by this License, of making, using, or selling its contributor version,
+ but do not include claims that would be infringed only as a
+ consequence of further modification of the contributor version.  For
+ purposes of this definition, "control" includes the right to grant
+ patent sublicenses in a manner consistent with the requirements of
+ this License.
+ 
+   Each contributor grants you a non-exclusive, worldwide, royalty-free
+ patent license under the contributor's essential patent claims, to
+ make, use, sell, offer for sale, import and otherwise run, modify and
+ propagate the contents of its contributor version.
+ 
+   In the following three paragraphs, a "patent license" is any express
+ agreement or commitment, however denominated, not to enforce a patent
+ (such as an express permission to practice a patent or covenant not to
+ sue for patent infringement).  To "grant" such a patent license to a
+ party means to make such an agreement or commitment not to enforce a
+ patent against the party.
+ 
+   If you convey a covered work, knowingly relying on a patent license,
+ and the Corresponding Source of the work is not available for anyone
+ to copy, free of charge and under the terms of this License, through a
+ publicly available network server or other readily accessible means,
+ then you must either (1) cause the Corresponding Source to be so
+ available, or (2) arrange to deprive yourself of the benefit of the
+ patent license for this particular work, or (3) arrange, in a manner
+ consistent with the requirements of this License, to extend the patent
+ license to downstream recipients.  "Knowingly relying" means you have
+ actual knowledge that, but for the patent license, your conveying the
+ covered work in a country, or your recipient's use of the covered work
+ in a country, would infringe one or more identifiable patents in that
+ country that you have reason to believe are valid.
+   
+   If, pursuant to or in connection with a single transaction or
+ arrangement, you convey, or propagate by procuring conveyance of, a
+ covered work, and grant a patent license to some of the parties
+ receiving the covered work authorizing them to use, propagate, modify
+ or convey a specific copy of the covered work, then the patent license
+ you grant is automatically extended to all recipients of the covered
+ work and works based on it.
+ 
+   A patent license is "discriminatory" if it does not include within
+ the scope of its coverage, prohibits the exercise of, or is
+ conditioned on the non-exercise of one or more of the rights that are
+ specifically granted under this License.  You may not convey a covered
+ work if you are a party to an arrangement with a third party that is
+ in the business of distributing software, under which you make payment
+ to the third party based on the extent of your activity of conveying
+ the work, and under which the third party grants, to any of the
+ parties who would receive the covered work from you, a discriminatory
+ patent license (a) in connection with copies of the covered work
+ conveyed by you (or copies made from those copies), or (b) primarily
+ for and in connection with specific products or compilations that
+ contain the covered work, unless you entered into that arrangement,
+ or that patent license was granted, prior to 28 March 2007.
+ 
+   Nothing in this License shall be construed as excluding or limiting
+ any implied license or other defenses to infringement that may
+ otherwise be available to you under applicable patent law.
+ 
+   12. No Surrender of Others' Freedom.
+ 
+   If 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 convey a
+ covered work so as to satisfy simultaneously your obligations under this
+ License and any other pertinent obligations, then as a consequence you may
+ not convey it at all.  For example, if you agree to terms that obligate you
+ to collect a royalty for further conveying from those to whom you convey
+ the Program, the only way you could satisfy both those terms and this
+ License would be to refrain entirely from conveying the Program.
+ 
+   13. Use with the GNU Affero General Public License.
+ 
+   Notwithstanding any other provision of this License, you have
+ permission to link or combine any covered work with a work licensed
+ under version 3 of the GNU Affero General Public License into a single
+ combined work, and to convey the resulting work.  The terms of this
+ License will continue to apply to the part which is the covered work,
+ but the special requirements of the GNU Affero General Public License,
+ section 13, concerning interaction through a network will apply to the
+ combination as such.
+ 
+   14. Revised Versions of this License.
+ 
+   The Free Software Foundation may publish revised and/or new versions of
+ the GNU 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 that a certain numbered version of the GNU General
+ Public License "or any later version" applies to it, you have the
+ option of following the terms and conditions either of that numbered
+ version or of any later version published by the Free Software
+ Foundation.  If the Program does not specify a version number of the
+ GNU General Public License, you may choose any version ever published
+ by the Free Software Foundation.
+ 
+   If the Program specifies that a proxy can decide which future
+ versions of the GNU General Public License can be used, that proxy's
+ public statement of acceptance of a version permanently authorizes you
+ to choose that version for the Program.
+ 
+   Later license versions may give you additional or different
+ permissions.  However, no additional obligations are imposed on any
+ author or copyright holder as a result of your choosing to follow a
+ later version.
+ 
+   15. Disclaimer of Warranty.
+ 
+   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.
+ 
+   16. Limitation of Liability.
+ 
+   IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+ 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.
+ 
+   17. Interpretation of Sections 15 and 16.
+ 
+   If the disclaimer of warranty and limitation of liability provided
+ above cannot be given local legal effect according to their terms,
+ reviewing courts shall apply local law that most closely approximates
+ an absolute waiver of all civil liability in connection with the
+ Program, unless a warranty or assumption of liability accompanies a
+ copy of the Program in return for a fee.
+ 
+ 		     END OF TERMS AND CONDITIONS
+ 
+ 	    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
+ state 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+ Also add information on how to contact you by electronic and paper mail.
+ 
+   If the program does terminal interaction, make it output a short
+ notice like this when it starts in an interactive mode:
+ 
+     <program>  Copyright (C) <year>  <name of author>
+     This program 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, your program's commands
+ might be different; for a GUI interface, you would use an "about box".
+ 
+   You should also get your employer (if you work as a programmer) or school,
+ if any, to sign a "copyright disclaimer" for the program, if necessary.
+ For more information on this, and how to apply and follow the GNU GPL, see
+ <http://www.gnu.org/licenses/>.
+ 
+   The GNU 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 Lesser General
+ Public License instead of this License.  But first, please read
+ <http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff -Nrc2 texinfo-4.12/ChangeLog texinfo-4.13/ChangeLog
*** texinfo-4.12/ChangeLog	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/ChangeLog	Thu Sep 18 11:36:04 2008
***************
*** 0 ****
--- 1,8317 ----
+ 2008-09-18  Karl Berry  <karl@tug.org>
+ 
+ 	* Version 4.13.
+ 
+ 2008-09-13  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* info/window.c (line_map_init): Take an additional argument,
+ 	node.
+ 	(window_compute_line_map): Recompute the line map if the node
+ 	has changed.
+ 	* info/window.h (struct line_map_struct): New member `node'.
+ 
+ 2008-08-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: use @kbd for key sequences and @key only for
+ 	names of keys, as intended.  Inspired by Eli, 28 Aug 2008 21:21:38.
+ 
+ 2008-08-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (main): convert_from_stream (stdin)
+ 	if an input filename is named "-".  Suggestion from
+ 	Bruno Haible, 26 Aug 2008 01:05:28.
+ 
+ 2008-08-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (EXECUTE_STRING_MAX): bump to 32k.
+ 	Report from Patrice, 20 Aug 2008 14:28:30.
+ 	A real fix is beyond me right now, and seems unnecessary
+ 	for the future since we're moving to a different implementation.
+ 
+ 2008-08-16  Karl Berry  <karl@tug.org>
+ 
+ 	* pretest 4.12.94.
+ 
+ 2008-08-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (run_thumbpdf): needs $in_dir on the filename.
+ 	Report from: Christoph Spiel, 13 Aug 2008 08:27:16.
+ 
+ 2008-08-15  Ben Pfaff  <blp@cs.stanford.edu>  (tiny change)
+ 
+ 	* makeinfo/makeinfo.c (remember_brace_1): always xstrdup.
+ 	Avoids seg fault on input of {x}@y, e.g., makeinfo texinfo.tex.
+ 	Sent 14 Aug 2008 21:35:19.
+ 
+ 2008-08-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c (info_short_help): mention Info manuals and the h
+ 	key within the program.
+ 
+ 2008-08-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (absolute_filenames): preserve even non-directories
+ 	in the returned path, in case they contain metacharacters
+ 	meaningful to TeX, such as braces.
+ 	Bug report from Werner Lemberg, 10 Aug 2008 08:26:58.
+ 
+ 2008-07-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (xref_files_save): null out TAR_OPTIONS.
+ 	From Jim Meyering.
+ 
+ 2008-07-27  Karl Berry  <karl@tug.org>
+ 
+ 	* pretest 4.12.93.
+ 	
+ 	* gnulib: import memmem.
+ 
+ 2008-07-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* install-info/tests/*-test: prefix the template with ii##.
+ 
+ 2008-07-06  Karl Berry  <karl@tug.org>
+ 
+ 	* pretest 4.12.92.
+ 
+ 2008-07-05  Robert Kiesling  <rkiesling@earthlink.net>  (tiny change)
+ 
+ 	* makeinfo/node.c (cm_node): move <p> to after anchors, closer to
+ 	<div>.
+ 
+ 2008-07-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* install-info/tests/ii-0041-test, ii-0050-test: with template,
+ 	have to handle compressed output files differently, or
+ 	the temp files are left behind by distclean.
+ 
+ 	* install-info/tests/*-test: use mktemp XXXXXXXX for BSD.
+ 	Report from Unga, 29 Jun 2008 08:29:54.
+ 
+ 2008-07-04  Akim Demaille  <akim@epita.fr>
+ 
+ 	texi2dvi: Fix -t.
+ 	* util/texi2dvi (run_tex): The code that installs a symlink was
+ 	installing the symlink directly to itself, instead of towards the
+ 	actual source file.  I wonder how it worked.  As a result -t was
+ 	not taken into account.
+ 	Fix the symlink creation.
+ 	* util/texi2dvi.test (one_run): Test -t support.
+ 
+ 2008-07-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (pdftexi2dvi.1): use change_envvars here too.
+ 
+ 2008-07-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (generated_files_get): find .fls files too.
+ 	(from the -recorder option.)
+ 	Suggestion from Wybo Dekker.
+ 
+ 2008-07-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (change_envvars): include util_srcdir in PATH
+ 	so texi2pdf can find texi2dvi for making the man pages.
+ 	Report from Michael Haubenwallner, 01 Jul 2008 14:33:18.
+ 
+ 2008-06-28  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* info/info.c (long_option): New options
+ 	--show-malformed-multibytes and --no-show-malformed-multibytes
+ 	* info/man.c (find_man_formatter): If INFO_MAN_COMMAND is
+ 	specified, use its value as man command.
+ 	* info/window.c (show_malformed_multibyte_p): New variable.
+ 	(process_node_text): Ignore malformed multibyte characters unless
+ 	show_malformed_multibyte_p is set.
+ 	* info/window.h (show_malformed_multibyte_p): New extern.
+ 
+ 	* doc/info-stnd.texi (Invoking Info): Document new options.
+ 	* NEWS: Likewise.
+ 
+ 2008-06-18  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (usage): More comments.
+ 	(version): exit 0.
+ 	Reported by Karl Berry.
+ 
+ 2008-06-16  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (version): New function, to replace...
+ 	($version): this.
+ 	(usage): Document --dvipdf.
+ 
+ 2008-06-16  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Sort functions.
+ 
+ 2008-06-16  Akim Demaille  <akim@epita.fr>
+ 
+ 	texi2dvi: avoid "\n" in echos to please Bash 3.2.
+ 	It is virtually impossible to find a safe means to use
+ 	echo with \n in it.  So use cat and here docs.
+ 	* util/texi2dvi ($usage): Remove, replaced by...
+ 	(usage): this function.
+ 
+ 2008-06-16  Akim Demaille  <demaille@gostai.com>
+ 
+ 	Support -I dir1:dir2, as per the documentation.
+ 	Reported by Vincent Ordy.
+ 	* util/texi2dvi: (list_concat_dirs): New.
+ 	Currently mostly a copy of absolute_filenames, but the latter
+ 	is scheduled for removal.
+ 	Use list_concat_dirs for -I support.
+ 	(--I*): Remove, not documented anywhere, and too accepting.
+ 
+ 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+ 
+ 	* autogen.sh: Fix quotation typo.
+ 	* gnulib/lib/configmake.h, gnulib/lib/stdbool_.h: Remove.
+ 
+ 2008-06-13  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	Fix length calculation for strings containing ANSI escapes.
+ 	Bug reported by Benno Schulenberg.
+ 
+ 	* info/man.c (clean_manpage): Remove.
+ 	(get_manpage_contents): Remove the kludge introduced 2006-08-13.
+ 	* info/window.c (process_node_text): ANSI escapes have visible
+ 	length of 0.
+ 	(clean_manpage): Multibyte-safe implementation.
+ 	* info/window.h (clean_manpage): New prototype.
+ 
+ 2008-06-12  Yavor Doganov  <yavor@gnu.org>  (tiny change)
+ 
+ 	* util/gendocs_template:
+ 	1. Link to the new FSF online store.
+ 	2. /server/footer-min.html is no longer necessary and we should remove
+             it at some point.  It would be easier if less articles include it.
+ 	3. Bump copyright year.
+ 
+ 2008-06-12  Karl Berry  <karl@tug.org>
+ 
+ 	* pretest 4.12.91.
+ 
+ 2008-06-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* info/session.c (point_backward_char): Skip columns until
+ 	previous point is reached.
+ 
+ 	* info/dir.c, info/display.c, info/dribble.c, info/echo-area.c
+ 	info/filesys.c, info/footnotes.c, info/gc.c, info/indices.c,
+ 	info/info-utils.c, info/info.c, info/infodoc.c, info/infokey.c,
+ 	info/infomap.c, info/m-x.c, info/makedoc.c, info/man.c,
+ 	info/nodemenu.c, info/nodes.c, info/pcterm.c, info/search.c,
+ 	info/session.c, info/terminal.c, info/tilde.c, info/variables.c,
+ 	info/window.c: Avoid useless type casts.
+ 
+ 2008-06-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	Fix incremental regexp searches (bug reported by Bruno Haible).
+ 
+ 	* info/search.c (regexp_search): Take an additional argument,
+ 	pret.  Return the final state of search binding if it is given.
+ 	* info/search.h (regexp_search): Update prototype.
+ 	* info/session.c (info_search_in_node_internal): New function.
+ 	(info_search_in_node): Rewrite as a wrapper over
+ 	info_search_in_node_internal.
+ 	(info_search_internal): Take an additional argument.  Initialize
+ 	window->point from it if it is given.
+ 	Use info_search_in_node_internal.
+ 
+ 2008-06-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* info/session.c (_looking_at_newline, point_next_line)
+ 	(point_prev_line, point_forward_char, point_backward_char)
+ 	(point_skip_ws_forward, point_skip_ws_backward)
+ 	(point_forward_word, point_backward_word): New functions.
+ 	(info_end_of_line, info_forward_char, info_backward_char)
+ 	(info_forward_word, info_backward_word): Reimplement to work
+ 	correctly in multibytes locales.
+ 	* info/window.c (window_scan_line): New function.
+ 	(window_compute_line_map): Rewrite using window_scan_line.
+ 	(window_end_of_line): New function.
+ 	* info/window.h (LINE_MAP): Change type of map to long.
+ 	(window_end_of_line): New prototype.
+ 
+ 2008-06-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	Fix cursor positioning in multibyte locales.
+ 
+ 	* info/display.c (process_node_text): Move to window.c
+ 	* info/display.h (process_node_text): Move to window.h
+ 	(handle_tag): New prototype.
+ 
+ 	* info/window.c (window_get_cursor_column): Rewrite using
+ 	window_point_to_column.
+ 	(window_chars_to_goal): Change signature.
+ 	(process_node_text): Move from display.c
+ 	(window_line_map_init, window_compute_line_map)
+ 	(window_point_to_column): New functions.
+ 	* info/window.h (LINE_MAP): New data type.
+ 	(WINDOW): New member line_map.
+ 	(window_chars_to_goal): Change prototype.
+ 	(window_line_map_init, window_compute_line_map)
+ 	(window_point_to_column): New prototypes.
+ 
+ 	* info/echo-area.c (ea_tab_insert, ea_kill_word)
+ 	(ea_backward_kill_w): Call window_line_map_init.
+ 	* info/session.c (move_to_new_line): Change call to
+ 	window_chars_to_goal.
+ 	(info_end_of_line, info_beginning_of_line): Use line map.
+ 
+ 2008-06-09  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* info/info-utils.c (printed_representation): Fix length
+ 	calculation.
+ 
+ 2008-06-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (run_makeinfo): = not ==.
+ 	From Ralf W, 3 Jun 2008 21:12:30.
+ 
+ 2008-05-22  Karl Berry  <karl@tug.org>
+ 
+ 	* pretest 4.12.90.
+ 
+ 	* install-info/tests/Makefile.am (EXTRA_DIST): missed ii-0051-test.
+ 
+ 2008-05-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): need another byte for fullname.
+ 	Report from Patrice Dumas, 15 May 2008 00:40:03.
+ 
+ 2008-05-19  Duncan Murdoch <murdoch@stats.uwo.ca>
+ 
+ 	Added --internal-links option to print file of internal links:
+ 	* makeinfo/makeinfo.c (OPT_INTERNAL_LINKS, long_options, main, usage):
+         add command-line option.
+ 	(convert_from_loaded_file): write the file.
+ 	* makeinfo/html.c (internal_links_filename,
+ 	internal_links_stream, escaped_anchor_name): new globals and fn.
+ 	(add_escaped_anchor): call escaped_anchor_name.
+ 	* makeinfo/html.h: declare them.
+ 	* makeinfo/index.c (cm_printindex): write out indexed links.
+ 	* makeinfo/toc.c (toc_add_entry, contents_update_html): write out
+ 	TOC entries, use escaped_anchor_name rather than duplicating code.
+         * doc/texinfo.txi (Invoking makeinfo): document it.
+ 
+ 2008-05-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* install-info/install-info.c (split_entry): split at period-newline,
+ 	too.  Report from Ulrich Mueller, 14 May 2008 06:59:35.
+ 
+ 2008-05-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (HTML Xref Command Expansion): add @leq,
+ 	@geq, @arrow, @textdegree Unicodes.  Suggestion from
+ 	Patrice Dumas, 15 May 2008 01:02:37.
+ 
+ 2008-05-13  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* info/display.c (find_diff): New function.
+ 	(display_node_text): When computing differences between old and
+ 	new lines use character, not byte offsets.
+ 
+ 2008-05-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* install-info.c (split_entry, add_missing_basenames,
+ 	add_mission_descriptions, --name and --description parsing):
+ 	use ". " to delimit the description from the node name,
+ 	rather than just ".", since we want to support nodes and names
+ 	containing "config.status".
+ 	* doc/texinfo.txi (Menu Parts): mention need for ". ".
+ 	(Invoking install-info): mention bzip2 and lzma checks.
+ 
+ 2008-05-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (usage): give -l input samples as latex and texinfo,
+ 	not LaTeX and Texinfo.
+ 	Report from Hilmar Preusse, 10 May 2008 15:03:23, Debian bug #472758.
+ 
+ 	* install-info/tests/0051, 52: new tests for periods in item names.
+ 	Bug report from Ulrich Mueller, 7 May 2008 01:56:38.
+ 
+ 2008-05-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	Handle multibyte encodings correctly.
+ 
+ 	* info/display.c (ITER_SETBYTES,ITER_LIMIT): New defines.
+ 	(process_node_text): New function.
+ 	(display_node_text): New function.
+ 	(display_update_one_window): Correctly process multibyte
+ 	characters.
+ 	* info/display.h (process_node_text): New function prototype.
+ 	* info/info-utils.c (printed_representation): Rewrite to take into
+ 	account multibyte sequences.
+ 	* info/info-utils.h (printed_representation): Change prototype.
+ 	* info/info.h: Include string.h, mbiter.h and mbchar.h.
+ 	* info/window.c (calculate_line_starts ): Rewrite using
+ 	process_node_text to take into account multibyte characters.
+ 
+ 	Bootstrap from GNU gnulib 2008-04-23 06:09:44:
+ 
+ 	* gnulib/lib/Makefile.am: Import mbchar, mbiter and mbschr.
+ 	* gnulib/lib/sys_stat.in.h, gnulib/lib/wctype.in.h,
+ 	gnulib/lib/sys/stat.h, gnulib/m4/gnulib-cache.m4,
+ 	gnulib/m4/gnulib-comp.m4, gnulib/m4/sys_stat_h.m4,
+ 	gnulib/m4/wctype.m4: Updated files.
+ 
+ 2008-05-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi (Stand-alone Info): rename node from What is Info?
+ 	for sake of xref in info.texi.
+ 	* doc/info.texi (Top): xref.
+ 
+ 2008-04-30  Thomas Thorberger  <thor@erlm.siemens.de>  (tiny change)
+ 
+ 	* install-info/install-info.c (split_entry): use valid pointer
+ 	entry, not ptr.  bug-texinfo mail 30 Apr 2008 11:59:57.
+ 
+ 2008-04-25  Peter Breitenlohner <peb@mppmu.mpg.de>
+ 
+ 	* info/session.c (info_search_internal): cast to `char *' in
+ 	order to avoid compiler warning.
+ 
+ 2008-04-23  Bruno Haible  <bruno@clisp.org>
+ 
+ 	Allow "gendocs -o /some/absolute/dir".
+ 	* gendocs.sh (dotdot_outdir): New variable.
+ 
+ 2008-04-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* Version 4.12.
+ 
+ 2008-04-19  Per Øyvind Karlsen  <peroyvind@mandriva.org>  (tiny change)
+ 
+ 	* info/filesys.c (compress_suffices): decompress .lzma with unlzma.
+ 	* install-info/install-info.c: support lzma.
+ 
+ 2008-04-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\math): \let the Texinfo accent commands
+ 	(\" \' ... \dotaccent) to their plain TeX math equivalents
+ 	(\ddot \acute ... \dot), where possible.
+ 	Report from John Mandereau, 17 Apr 2008 17:53:28.
+ 
+ 2008-04-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: allow more characters special to plain TeX
+ 	in the directory name in tidy mode (but not the base file name).
+ 
+ 	* util/texi2dvi: more quoting of file name args for the sake of
+ 	names containing whitespace.  A spurious message still results.
+ 
+ 	* install-info/tests/defs.in: new file.
+ 	* configure.ac: generate install-info/tests/defs.
+ 	* install-info/tests/ii-*-test: source it.
+ 	* install-info/tests/Makefile.am: do not use export,
+ 	which is only supported by GNU make.
+ 
+ 2008-04-13  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+ 
+ 	DJGPP specific issues.
+ 	* djgpp/config.sed: Fixes required to use configure scripts generated
+ 	by autoconf 2.62.
+ 
+ 2008-04-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest 4.11.96.
+ 
+ 	* doc/texinfo.txi (geq leq): New node to document new commands
+ 	@geq{} and @leq{}, suggested by Arnold Robbins.
+ 	* doc/texinfo.tex (\geq, \leq): new macros.
+ 	* makeinfo/cmds.c (cm_geq, cm_leq): new fns.
+ 	(cm_minus): make static.
+ 	* makeinfo/cmds.h (cm_minus): remove decl.
+ 
+ 	* makeinfo/insertion.c (handle_verbatim): ignore rest of @verbatim
+ 	line, including the newline.
+ 	Report from Thien-Thi Nguyen, 01 Apr 2008 11:14:48.
+ 
+ 2008-04-09  Reinhold Kainhofer  <reinhold@kainhofer.com>  (tiny change)
+ 
+ 	* makeinfo/insertion.c (begin_insertion): do not indent via
+ 	whitespace for html, since we already do <blockquote>.
+ 	Reported 30 Mar 2008 00:56:56.
+ 
+ 2008-04-02  Jim Meyering  <jim@meyering.net>  (tiny change)
+ 
+ 	* doc/texinfo.tex: fix typos in comments.
+ 
+ 2008-03-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dopdfimage): try .PDF too.
+ 	(\imagexxx): reduce space around vmode image to \medskip from \bigskip.
+ 	Start \noindent paragraph for vmode image so that @quotation etc.
+ 	indentation will be respected.
+ 	Report from Reinhold Kainhofer, 28 Mar 2008 17:33:05.
+ 
+ 2008-03-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/Makefile.am (funs.h): change target from all of
+ 	$(generated_sources) to avoid problems with parallel builds.
+ 	From Michael Haubenwallner, 20 Mar 2008 22:52:20.
+ 
+ 2008-03-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (search_forward): use const.
+ 	Also (from William Xu) fix typo in comment.
+ 	* makeinfo/makeinfo.h (search_forward): change decl.
+ 
+ 2008-03-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (TEX): only unset it if it was nonempty and a
+ 	directory.
+ 
+ 2008-03-25  Akim Demaille  <akim@epita.fr>
+ 
+ 	* doc/Makefile.am: Use util_srcdir (new var) where appropriate.
+ 	(man_MANS): Also install texi2pdf.1 and pdftexi2dvi.1.
+ 	(unset_envvars): New.
+ 	Use it.
+ 	* util/local.test: Check we don't use $().
+ 	Simplify sed usage: don't use \| which is not portable enough.
+ 	* util/Makefile.am: Re-enable tests, in maintainer mode.
+ 
+ 2008-03-23  Benno Schulenberg  <bensberg@justemail.net>  (tiny change)
+ 
+ 	* info/session.c (_scroll_backward): better cursor placement.
+ 
+ 2008-03-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (TEX): unset if it refers to a directory; I think
+ 	the University of Utah installation does this.
+ 
+ 2008-03-22  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/session.c (info_move_to_xref): conditionalize "no xref"
+ 	message on cursor_movement_scrolls_p.  Proposed by
+ 	Benno, 22 Mar 2008 15:17:49.
+ 
+ 2008-03-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest 4.11.95.
+ 
+ 	* info/Makefile.am (funs.h): use this as the dependency
+ 
+ 2008-03-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/session.c (_scroll_forward): leave cursor on last line.
+ 	(_scroll_backward): use info_beginning_of_node for consistency.
+ 	Changes proposed by Benno Schulenberg, 21 Mar 2008 16:31:27.
+ 
+ 2008-03-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c (main): avoid declaration after statement.
+ 
+ 2008-03-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\xrefX): avoid TeX expansions of _ etc.
+ 	in the info filename argument (#4).
+ 	Report from Ralf Wildenhues, 15 Mar 2008 11:23:38.
+ 
+ 2008-03-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest 4.11.94.
+ 
+ 	* install-info/install-info.c: portability fixes.
+ 	(parse_dir_file): declare void, since it is.
+ 	(split_entry): Remove unused variable ostream.
+ 	(add_missing_basenames, add_missing_descriptions): Avoid
+ 		declarations after statements.
+ 	(main): Do not use // comments.
+ 	(format_entry): avoid using isblank, linking fails on osf-alpha,
+ 	others.
+ 	* util/texi2dvi: use `...` instead of $(...).  Avoid
+ 	(...) as case labels.
+ 
+ 2008-03-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (exdent): typo in example.
+ 	Report from Jaakko Hollmen, 11 Mar 2008 19:25:01.
+ 
+ 2008-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* info/session.c (_scroll_backward): Avoid wrapping to the end of
+ 	page when a backward scrolling is requested on the top node.
+ 	Patch proposed by Benno Schulenberg.
+ 
+ 2008-03-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest 4.11.93.
+ 
+ 	* info/infodoc.c (info_internal_help_text): reorder, regroup.
+ 	Suggestion from Benno Schulenberg, 06 Mar 2008 11:59:06.
+ 
+ 2008-03-07  Joseph Myers  <joseph@codesourcery.com>  (tiny change)
+ 
+ 	* doc/texinfo.tex (\includezzz): Use \turnoffactive before
+ 	expanding @value.
+ 
+ 2008-03-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* info/session.c (info_search_internal): Reword wrap-around
+ 	messages.
+ 	* configure.ac (AM_INIT_AUTOMAKE): Finally remove dist-bzip2.
+ 
+ 2008-03-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* util/gendocs.sh: Pass --node-files to texi2html only together
+ 	with the --split option.
+ 
+ 	* info/session.c (last_node_p): Remove unused variable.
+ 	(info_search_internal): Print a message if the search wraps over
+ 	the end or beginning of the document.
+ 
+ 	* configure.ac (AM_INIT_AUTOMAKE): Move all automake options here.
+ 	Add dist-bzip2 for completeness.
+ 	* Makefile.am (AUTOMAKE_OPTIONS): Remove in favor of
+ 	AM_INIT_AUTOMAKE.
+ 	* AUTHORS: Update the URL of Translation Project.
+ 
+ 2008-03-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* info/session.c (_scroll_backward): Place cursor at the end of
+ 	node if cursor_movement_scrolls_p is on.
+ 
+ 	* Makefile.am (AUTOMAKE_OPTIONS): Raise version requirement to
+ 	1.10.1. This is needed for dist-lzma.
+ 
+ 	* system.h: Include <ctype.h>
+ 	* info/session.c (scroll_last_node_choices, scroll_last_node): New
+ 	variables.
+ 	(forward_move_node_structure): Special behavior when a scrolling
+ 	command is issued while on the last node.
+ 	* info/session.h (scroll_last_node_choices, scroll_last_node): New
+ 	variables.
+ 	(SLN_Stop,SLN_Scroll,SLN_Top): New defines.
+ 	* info/variables.c (info_variables): New variable
+ 	scroll-last-node.
+ 	* info/variables.h (scroll_last_node): New variable.
+ 	* doc/info-stnd.texi: Document scrolling behavior at the last node
+ 	and the scroll-last-node variable.
+ 	* NEWS: Document scrolling behavior at the last node.
+ 
+ 2008-03-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.ac (AM_INIT_AUTOMAKE): dist-lzma instead of dist-bzip2.
+ 
+ 2008-03-01  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+ 
+ 	DJGPP specific issues.
+ 	* system.h [O_BINARY]: Use HAVE_DRIVE in IS_ABSOLUTE.
+ 	* djgpp/config.sed: Fix regex pattern to handle version numbers that
+ 	looks like 4.NN.NN
+ 
+ 2008-02-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest 4.11.92.
+ 
+ 2008-02-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\includezzz): \edef the filename in order
+ 	to expand @value constructs (include-value).  This fix
+ 	from Joseph S. Myers, 1 Feb 2008 01:11:11.
+ 	Document that the \expandafter trickery is necessary in order to
+ 	read the file outside of a group (mac-incl).
+ 	This report from John Mandereau, 28 Feb 2008 22:12:34.
+ 
+ 	* info/infodoc.c (info_internal_help_text): more tweaks.
+ 	* info/infomap.c: move up/down to end, too.
+ 	Suggestions from Benno Schulenberg, 27 Feb 2008 23:44:17
+ 	and 28 Feb 2008 22:49:27.
+ 
+ 2008-02-28  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (absolute): Add a missing "local".
+ 
+ 2008-02-28  Akim Demaille  <akim@epita.fr>
+ 
+ 	Let texi2dvi keep the trailing //.
+ 	* bin/texi2dvi ($space, $tab): New.
+ 	($IFS): Use them to be robust to zealous white space cleanups.
+ 	(absolute): Preserve the trailing slashes.
+ 	(tex_envvars): Add MPINPUTS, MFINPUTS, and TFMFONTS.
+ 
+ 2008-02-28  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Don't use "local foo=`cmd`", because in that case
+ 	failures of cmd, including with set -e, will go unnoticed.  So
+ 	always first declare with local, then run the assignment.
+ 	(index_file_p): Adjust to be usable with index.sty.
+ 	* util/local.test: Make the test more robust.
+ 
+ 2008-02-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest 4.11.91.
+ 
+ 	* info/infomap.c [!INFOKEY]: remove this whole block.  It is too
+ 	confusing having two sets of key bindings.
+ 
+ 	* info/infodoc.c (info_internal_help_text): more tweaks.
+ 	Suggestions from Benno Schulenberg, 26 Feb 2008 00:34:22.
+ 
+ 2008-02-26  Brendan O'Dea <bod@debian.org>  (tiny change)
+ 
+ 	* util/texi2dvi: slightly reformat usage message for help2man.
+ 	(sent by peb 26 Feb 2008 12:01:11)
+ 
+ 	* install-info/install-info.c (print_help): keep two spaces
+ 	between option name and description, or help2man can't do a good job.
+ 
+ 2008-02-26  Peter Breitenlohner <peb@mppmu.mpg.de>
+ 
+ 	* info/doc.h, info/echo-area.c, info/echo-area.h,
+ 	info/footnotes.c, info/indices.c, info/info.c, info/info.h,
+ 	info/infodoc.c, info/infokey.c, info/infomap.c, info/m-x.c,
+ 	info/nodemenu.c, info/session.c, info/session.h,
+ 	info/variables.c, info/variables.h, info/window.c,
+ 	info/window.h:
+ 	declare constant strings as such and remove
+ 	many `(char *)' casts -- in particular for `_(...)'.
+ 	Avoid gcc warnings (for --disable-nls and maybe without).
+ 
+ 2008-02-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* autogen.sh: run autoconf before autoheader, then automake
+         (per autoreconf).
+ 
+ 2008-02-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infomap.c (x): bind to delete_window.
+ 	* info/infodoc.c (info_internal_help_text): more rearrangements.
+ 	(create_internal_info_help_node: omit incorrect exiting suggestion
+ 		at end.
+ 	Suggestions from Benno Schulenberg, 24 Feb 2008 22:56:44.
+ 
+ 	* install-info/install-info.c (munge_old_style_debian_options):
+ 	avoid use of asprintf, just xmalloc ourselves.
+ 	In report from Juan Manuel Guerrero, 24 Feb 2008 22:06:35.
+ 
+ 	* install-info/install-info.c (spec_entry) <text_len>: declare
+ 	as size_t instead of int, to avoid warning.
+ 	In report from Juan Manuel Guerrero, 24 Feb 2008 22:06:35.
+ 
+ 2008-02-22  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest 4.11.90.
+ 
+ 2008-02-22  Peter Breitenlohner <peb@mppmu.mpg.de>
+ 
+ 	* configure.ac (--enable-multiplatform): also set libdir.
+ 	* util/defs.in (PATH): include @abs_builddir@.
+ 	* util/texi2dvi (usage): consistently escape \$HOME.
+ 
+ 2008-02-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infodoc.c (info_internal_help_text): more simplifications.
+ 	Suggestions from Benno Schulenberg, 21 Feb 2008 23:35:38.
+ 
+ 	* install-info/tests/ii-0041-test,
+ 	* install-info/tests/ii-0041-test: ensure target dir file is rw.
+ 
+ 2008-02-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infodoc.c (info_internal_help_text): rearrangements.
+ 	* info/session.c (cursor_movement_scrolls_p): 1 by default.
+ 	* info/window.c (window_scroll_step): 1 by default.
+ 	* info/infomap.c <key bindings>: h to info_get_help_window,
+ 	H to info_get_info_help_node,
+ 	PgUp to info_scroll_backward, PgDown to info_scroll_forward,
+ 	move q to after C-x C-c .
+ 	Suggestions from Benno Schulenberg, 04 Jan 2008 23:20:46.
+ 
+ 2008-02-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (EGREP): need egrep early.
+ 
+ 	* util/texi2dvi: path_sep is : on djgpp too.  From Eli Z.
+ 
+ 	* makeinfo/makeinfo.c: typos in comments.
+ 
+ 	* makeinfo/cmds.c (cm_direntry): call close_single_paragraph,
+ 	instead of add_char('\n'), or the INFO-DIR-SECTION lines from two
+ 	consecutive @dircategory's are munged together.
+ 	Bug report from Ralf Angeli, 16 Feb 2008 18:59:42.
+ 
+ 2008-02-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: path_sep is : on mingw as well as cygwin.
+ 	Report from: FX Coudert, 16 Feb 2008 15:43:15.
+ 
+ 	* makeinfo/cmds.c (cm_cite): avoid double apostrophe in
+ 	Info output of, e.g., ... @cite{Foo}'s ...
+ 	Report from Bob Chassell.
+ 
+ 2008-02-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\tex): spurious space in redefinition of \top.
+ 
+ 	* makeinfo/cmds.c (handle_include): set in_fixed_width_font
+ 	for expanding the filename argument, so -- doesn't become -.
+ 	Bug report from Daniel Richard G., 13 Feb 2008 01:50:00.
+ 
+ 2008-02-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/session.c (incremental_search): if a regex search,
+ 	search every time through the loop, not only if the search
+ 	succeeded.
+ 	Bug report from Ralf Wildenhues, 8 Feb 2008 23:30:51.
+ 
+ 2008-02-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/session.c (show_isearch_prompt): Start with "Regexp" if
+ 	it's a regexp i-search.
+ 	Suggestion from Ralf Wildenhues, 8 Feb 2008 23:30:51.
+ 
+ 2008-02-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\includezzz): simply do the \input (instead of
+ 	trickily expanding it after the }) a la \verbatiminput; otherwise,
+ 	@value expansions are not done.  The trickery just seems unnecessary.
+ 	Report from Joseph S. Myers, 1 Feb 2008 01:11:11.
+ 
+ 2008-02-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\ptextop): save plain tex \top (a math symbol).
+ 	(tex env): restore plain text \top.
+ 
+ 2008-01-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Click Sequences): new section to document new
+ 	commands @arrow, @clicksequence, @click, and @clickstyle.
+ 	* doc/texinfo.tex (\clicksequence, \click, \clickstyle): define them.
+ 	* makeinfo/cmds.h,
+ 	* makeinfo/cmds.c (cm_arrow, cm_click, cm_clicksequence,
+ 	cm_clickstyle): new fns.
+ 	* insertion.h,
+ 	* insertion.c (get_item_function): no longer static.
+ 	* xml.h,
+ 	* xml.c (CLICK, CLICKSEQUENCE): new elements.
+ 	* util/texinfo.dtd (Inline.misc): add click and clicksequence.
+ 	(rarr): new entity.
+ 
+ 	* makeinfo/xml.c (xml_insert_entity): only do XML checks if we are
+ 	actually outputting XML; this routine is also used for HTML output.
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): move
+ 	xml_begin_document to after we are sure the output file is open.
+ 
+ 2008-01-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi, doc/info-stnd.texi (Back-Cover Text): new
+ 	wording from rms.
+ 
+ 2008-01-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/session.c (info_move_to_xref): must use fixed-string
+ 	searches for these Info keywords that contain *.
+ 	Report from Ben Asselstine, 29 Dec 2007 11:21:40 (et al.).
+ 
+ 	* doc/info-stnd.texi (What is Info): that's C-x C-c to exit, not
+ 	C-x C-x.  Report from Benno, 24 Jan 2008 00:40:04.
+ 
+ 2008-01-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion) <direntry>: ignore
+ 	whitespace beginning the first * line inside @direntry,
+ 	to work around the zsh manual.
+ 	Report from Norbert Preining, 14 Jan 2008 09:09:01.
+ 
+ 2008-01-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c (main): silently switch to info-stnd if given
+ 	-O (--usage) info.
+ 	Suggestion from Benno, 19 Jan 2008 19:58:47.
+ 
+ 2008-01-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* install-info/install-info.c (print_help): split up big help string,
+ 	some rewording.
+ 
+ 2008-01-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (run_tex): use verbose, not echo, so -q is respected.
+ 	Report from Kurt Hornik, 19 Jan 2008 11:16:27.
+ 
+ 2008-01-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Other Info Directories): mention starting at 0
+ 	and what-cursor-position when figuring column positions.
+ 
+ 2008-01-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (move_to_dest): compare with filenames, rather
+ 	than cmp -s, since the output file might not actually change.
+ 	Report from Ralf Wildenhues, 15 Jan 2008 07:20:34.
+ 
+ 	* doc/texinfo.txi (Invoking makeinfo): --document-language default
+ 	is @documentlanguage, as of 4.11.
+ 
+ 	* doc/texinfo.txi (Makeinfo Pointer Creation): mention the
+ 	need for @detailmenu here, too.
+ 
+ 2008-01-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* NEWS: install-info NEWS details.
+ 
+ 2008-01-13  Bruno Haible  <bruno@clisp.org>
+ 
+ 	* util/gendocs.sh (curdate): Execute 'date' command in the locale
+ 	specified by SETLANG.
+ 
+ 2008-01-12  Bruno Haible  <bruno@clisp.org>
+ 
+ 	* doc/texinfo.txi (Cross Reference Parts): better description of arg2.
+ 	bug-texinfo mail of 12 Jan 2008 15:52:23 +0100.
+ 
+ 2008-01-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c (info_short_help) [__MSDOS__]: puts -b string directly.
+ 	Suggestion from Benno.
+ 
+ 2008-01-02  Karl Berry  <karl@tug.org>
+ 
+ 	* util/Makefile.am (TESTS): remove dvipdf.test, it is too
+ 	dependent on functional TeX installations.  Not our place to test that.
+ 
+ 2008-01-02  Karl Berry  <karl@tug.org>
+ 
+ 	* install-info/, install-info/tests/: new subdirectories.
+ 	* util/Makefile.am: move install-info stuff to its own dir, with tests.
+ 	* configure.ac,
+ 	* Makefile.am (SUBDIRS): take care of new dirs.
+ 	* doc/Makefile.am (install-info.1): new source location for man page.
+ 	* po/POTFILES.in: update source list.
+ 
+ 2008-01-02  Ben Asselstine  <benasselstine@gmail.com>
+ 
+ 	* install-info/install-info.c: much work toward Debian compatibility.
+ 	(line_data): new member num_sections to add; change type of
+ 	add_entries_before.
+ 	(spec_entry): new members missing_name, missing_description,
+ 	missing_basename.
+ 	(longopts): new options --name, --menuentry, --description,
+ 	--no-indent, --keep-old, --maxwidth, --max-width,
+ 	--section-regex, --dry-run.
+         (remove_empty_sections, add_entries_into_all_matching_sections,
+         keep_old_flag, indent_flag,
+         order_new_sections_alphabetically_flag): new globals.
+         (print_help): list new options.
+         (output_dirfile): count sections added, and possibly sort them.
+         (parse_input): handle delete_flag.
+         (parse_dir_file): write the end of the last node.
+         (mark_entry_for_deletion, adjust_column, format_entry,
+         split_entry, reformat_new_entries, add_missing_basenames,
+         add_missing_names, add_missing_descriptions,
+         munge_old_style_debian_options): new fns.
+         (main): new variables calign, align, maxwidth,
+         entries_to_add_from_file; munge per debian if needed; handle new
+         options.
+         (compare_entries_text): use mbsncasecmp.
+ 	* doc/texinfo.txi (Invoking install-info): mention the new options.
+ 
+ 2008-01-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c (info_short_help): break help string into smaller
+ 	pieces, to help translators.
+ 	Suggestion from Benno Schulenberg, 01 Jan 2008 12:22:31.
+ 
+ 2008-01-01  Ben Asselstine  <benasselstine@gmail.com>  (tiny change)
+ 
+ 	* doc/info-stnd.texi (Invoking Info): document this.
+ 	* info/info.c (long_options, short_options): use -k as an alias
+ 	for --apropos.
+ 	(main): recognize it.
+ 	(info_short_help): document it.
+ 	(APROPOS_OPTION): no longer needed.
+ 
+ 2007-12-23  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.17.
+ 
+ 2007-12-19  Norbert Preining  <preining@logic.at>  (tiny change)
+ 
+ 	* makeinfo/insertion.c (begin_insertion) <direntry>: use add_word
+ 	instead of insert_string, so that the "This is ..." line is
+ 	written before the START-INFO-DIR-ENTRY.
+ 
+ 2007-12-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi (Searching Commands): Document the new regex
+ 	search, a little.
+ 	(@copying): Update Back-Cover Text.
+ 	* doc/info.texi (@copying): Update Back-Cover Text.
+ 
+ 2007-12-17  Stephane Chazelas  <stephane_chazelas@yahoo.fr>
+ 
+ 	* info/infomap.c (R): new command info_toggle_regexp.
+ 	* info/session.c (use_regex): new static (true by default).
+ 	(info_toggle_regexp): new command.
+ 	* info/session.h (info_toggle_regexp): declare it.
+ 	* info/search.c (regexp_search): new fn.
+ 	* info/search.h (regexp_search): declare it.
+ 	Savannah bug 15572.
+ 
+ 2007-12-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/session.c: remove more status messages.
+ 	Report from Benno Schulenberg, 16 Dec 2007 12:24:12.
+ 
+ 2007-12-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\pdffontattr): only do the cmaps if this pdftex
+ 	primitive is defined, for the sake of those running ancient versions.
+ 
+ 2007-12-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/session.c: remove status report messages, said to be noise.
+ 	Report from Benno Schulenberg, 11 Dec 2007 00:19:57.
+ 
+ 2007-12-09  Benno Schulenberg  <bensberg@justemail.net>  (tiny change)
+ 
+ 	* makeinfo/makeinfo.c (usage): improve help message.
+ 	bug-texinfo mail of 02 Dec 2007 23:43:10 +0100.
+ 
+ 2007-12-09  Fabian Groffen  <grobian@gentoo.org>  (tiny change)
+ 
+ 	* info/makedoc.c (main): reorder calls following the Makefile
+ 	dependencies, for high-precision filesystems.
+ 	http://bugs.gentoo.org/show_bug.cgi?id=200662
+ 	bug-texinfo mail of 3 Dec 2007 17:59:13 +0100.
+ 
+ 2007-12-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c (main): undo change of 2006-08-13 in this file,
+ 	so info can be easily tested in multibyte locales.
+ 
+ 	* all files: use the multibyte case comparison functions
+ 	mbscasecmp and mbsncasecmp from gnulib, instead of simply
+ 	strcasecmp and strncasecmp.  (1) gnulib strcase is buggy,
+ 	declaring the str* functions in string.h instead of strings.h,
+ 	leading to build failure on AIX 4.3.3 (report from Gary E. Barnes,
+ 	21 Nov 2007 12:37:12).  (2) we want to support multibyte locales
+ 	better anyway.
+ 
+ 2007-11-30  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* doc/Makeinfo.am: Rename txi-no.tex to txi-nb.tex (see
+ 	2007-10-31).
+ 
+ 2007-11-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (headings on off): clarify the meaning of
+ 	@headings on.  Report from Dilyan Palauzov, 25 Nov 2007 17:07:09.
+ 
+ 2007-11-25  Stephane Chazelas  <stephane_chazelas@yahoo.fr>
+ 
+ 	*  info/indices.c (info_next_index_match): use the line number
+ 	specified in the index entry, if available.
+ 
+ 2007-11-23  Benno Schulenberg <bensberg@justemail.net>  (tiny change)
+ 
+ 	* info/infodoc.c: keep help strings together for translation.
+ 
+ 2007-11-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+ 
+ 	* util/texi2dvi: Fix quoting for white space in file names.
+ 
+ 2007-11-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/lang.h (hz): #undef, since apparently it is defined on
+ 	AIX 4.3.3.
+ 	Report from: Gary E. Barnes, 21 Nov 2007 12:37:12.
+ 
+ 2007-11-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c (info_error): use puts instead of fprintf if we
+ 	don't actually have any arguments.  Else
+ 	info --file=".%x.%x." will try to print NULL.
+ 	Report from Cody Rester, 16 Nov 2007 08:59:48.
+ 
+ 2007-10-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/txi-no.tex: rename to txi-nb.tex.
+ 	* po/no.po: remove.
+ 	* po/LINGUAS: remove no.
+ 
+ 2007-10-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/node.c (cm_node),
+ 	* makeinfo/cmds.c (cm_settitle): no need to call xml_begin_document.
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): call
+ 	xml_begin_document in docbook case too, else some frontmatter
+ 	can be lost.
+ 	Bug report from Sam Varshavchik, 14 Oct 2007 12:10:04, for binutils.
+ 
+ 	* makeinfo/insertion.c: formatting.
+ 
+ 	* makeinfo/xml.c (xml_begin_document): arg can be const;
+ 	use basename of @setfilename instead of "book-root".
+ 	(xml_push_current_element, xml_pop_current_element): use
+ 	warning fn for consistent formatting.
+ 
+ 	* util/dir-example: binutils update, etc.
+ 
+ 2007-10-24  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* util/gendocs.sh: New option --texi2html, to use texi2html for
+ 	creating HTML output.
+ 	Handle special conditional constructs in the template: %%IF
+ 	HTML_SECTION%% and %%IF HTML_CHAPTER%% (both closed with a
+ 	corresponding %%ENDIF) to conditionally enable parts of the output
+ 	depending on texi2html split outputs.
+ 	* util/gendocs_template: Conditionally enable section and chapter
+ 	split HTMLs.
+ 	* util/gendocs_template_min: Likewise.
+ 
+ 2007-10-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/display.c (display_update_one_window): don't try to display
+ 	a window unless both width and height are >0.
+ 	* window/window.c (window_new_screen_size): try to ensure that
+ 	no window width/height ever becomes negative.
+ 	Bug report and ideas from Vitezslav Crhonek, 18 Oct 2007 15:15:51,
+ 	as well as https://bugzilla.redhat.com/show_bug.cgi?id=243971.
+ 
+ 2007-10-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_dircategory): use add_word instead of
+ 	insert_string so that the info file header ("This is ...") comes
+ 	after the INFO-DIR-SECTION magic.
+ 	Bug report from Katsumi Yamaoka, emacs-devel 10 Oct 2007 11:17:10.
+ 
+ 2007-10-08  Bruno Haible  <bruno@clisp.org>
+ 
+ 	* makeinfo/lang.c (unicode_map): New variable.
+ 	(cm_search_iso_map): In case of UTF-8 encoding, return a Unicode code
+ 	point.
+ 	(add_encoded_char_from_code): New function.
+ 	(add_encoded_char, cm_accent_generic_no_headers): Use it.
+ 
+ 2007-10-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (math): @math{k_{75}} is allowed, despite bare
+ 	braces.
+ 
+ 2007-10-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (math): Make description more accurate.
+ 	Ideas by Patrice Dumas, 16 Sep 2007 12:02:46.
+ 
+ 2007-09-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/index.c (count_strn_chars): new fn.
+ 	(insert_index_output_line_no): call it.
+ 	(cm_printindex): call it.
+ 	This is to fix off-by-one width computation due to @tie{},
+ 	reported by Werner Lemberg, 16 Sep 2007 16:48:47.
+ 
+ 	* makeinfo/cmds.c,
+ 	* makeinfo/xref.c: #include "index.h", instead of explicit
+ 	extern printing_index.
+ 	* makeinfo/index.c (the_indices, index_element_compare): can be static.
+ 	* makeinfo/index.h: make order of decls match index.c.
+ 
+ 2007-09-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Six Parts): End segment should not have toc anymore.
+ 
+ 2007-09-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (convert_from_file): free `input_filename' leak.
+ 	Reported by Stephen Compall, 21 Sep 2007 20:25:54.
+ 
+ 2007-09-21  Stephen Compall <s11@member.fsf.org>  (tiny change)
+ 
+ 	* makeinfo/makeinfo.c (convert_from_file): excise code testing
+ 	case in suffixes that doesn't arise.
+ 
+ 2007-09-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c,
+ 	* info/info.c,
+ 	* util/texindex.c,
+ 	* util/install-info.c (main): unify declaration on char *argv[].
+ 
+ 2007-09-20  Greg Schafer <gschafer@zip.com.au>  (tiny change)
+ 
+ 	* util/dvipdf.test,
+ 	* util/texi2dvi.test (required): need tex, or the tests fail.
+ 
+ 2007-09-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/defs.in (TEXI2DVI_run): try "type" instead of "which".
+ 	Report from Michael Deutschmann, 13 Sep 2007 01:29:39.
+ 
+ 	* util/defs.in (optionset_get): use `...`, not $(...).  Still too
+ 	newfangled.  Report from Bert Deknuydt.
+ 
+ 2007-09-16  Thien-Thi Nguyen  <ttn@gnuvola.org>  (tiny change)
+ 
+ 	* doc/texinfo.tex (w): Do s/indenting manual/manual indenting/.
+ 
+ 2007-09-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.h,
+ 	* makeinfo/makeinfo.c,
+ 	* makeinfo/defun.c,
+ 	* makeinfo/html.c,
+ 	* makeinfo/node.c,
+ 	* makeinfo/toc.c,
+ 	* makeinfo/xref.c (__): rename to gdt, since HP-UX uses it in
+ 	<stdsyms.h>.  (Report from Bert Deknuydt, 12 Sep 2007 12:17:34).
+ 
+ 2007-09-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* Version 4.11.
+ 
+ 2007-09-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi (Variables): make an anchor for
+ 	scroll-behavior, and use it.  Idea from Benno Schulenberg,
+ 	04 Sep 2007 00:21:01.
+ 
+ 2007-09-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest 4.9.92.
+ 
+ 	* doc/texinfo.tex (\baselinefactor): new macro, 1 by default.
+ 	(\setleading): use it, to allow for poor man's double spacing.
+ 	(\afourpaper, \letterpaper): use absolute dimension for height,
+ 	instead of a multiple of \baselineskip.  (Otherwise things run off
+ 	the bottom when double-spacing.)
+ 
+ 2007-09-01  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+ 
+ 	* djgpp/config.bat: change file names arguments and configure.orig
+ 	to args and configure.org.
+ 	Remove the command line that deletes co*.tmp files.
+ 
+ 2007-08-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c (main) [LC_MESSAGES]: conditionalize setlocale on
+ 	LC_MESSAGES, since djgpp 2.04 doesn't have it.
+ 	Report from Juan Manuel Guerrero, 28 Aug 2007 21:38:18.
+ 	* info/man.c (get_manpage_contents) [LC_MESSAGES]: likewise.
+ 	* makeinfo/makeinfo.c (main): doc fix, likewise.
+ 
+ 2007-08-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infodoc.c (info_internal_help_text): hardwire
+ 	menu-digits help string; bug report from Benno.
+ 
+ 2007-08-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/lang.c (iso8859_2_map): include known HTML entities,
+ 	from the 88592.txt file in the GNU enscription distribution.
+ 
+ 2007-08-04  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
+ 
+ 	* djgpp/config.bat: replace the string diffutil*.pot by
+ 	the correct one texinfo*.pot
+ 
+ 	* djgpp/config.sed: adjust for the use with autoconf 2.61
+ 
+ 	* djgpp/config.site: adjust for the use with autoconf 2.61
+ 
+ 2007-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* doc/info-stnd.texi: Document cursor-movement-scrolls variable.
+ 	Document different spellings of scroll-behaviour variable.
+ 	* info/info-utils.c (info_references_internal): Initialize
+ 	line_number.
+ 	* info/infodoc.c (info_internal_help_text): Update docstrings
+ 	for move-to-next-xref and move-to-prev-xref.
+ 	* info/session.c (forward_move_node_structure)
+ 	(backward_move_node_structure): Return int
+ 	(cursor_movement_scrolls_p): New variable.
+ 	(info_next_line,info_prev_line,info_forward_char,info_backward_char)
+ 	(info_forward_word,info_backward_word): Scroll through the
+ 	entire document if cursor_movement_scrolls_p is set.
+ 	(info_move_to_xref,info_move_to_prev_xref): Return int
+ 	* info/session.h (cursor_movement_scrolls_p): New variable
+ 	* info/variables.h: Likewise
+ 	* info/variables.c (scroll-behavior): Alias for scroll-behaviour
+ 	(cursor-movement-scrolls): New variable.
+ 
+ 2007-07-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\badparencount, \badbrackcount): make these
+ 	just warnings, not \errmessage's.
+ 
+ 2007-07-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest 4.9.91.
+ 	* doc/texinfo.txi (Inserting Quotes): wording.
+ 
+ 	* util/Makefile.am (TESTS): remove local.test.  It fails and I
+ 	would prefer not to replace local with a shell function anyway.
+ 
+ 	* util/texi2dvi.test: with -o output, do not expect input.dvi
+ 	to remain.
+ 
+ 2007-07-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/Makefile.am (pdftexi2dvi): copy texi2pdf, not texi2dvi.
+ 
+ 2007-07-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (move_to_dest): really move the file,
+ 	don't just copy it, else automake tests fail.
+ 	From Michael Deutschmann, 23 Jul 2007 20:55:32.
+ 
+ 2007-07-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (license notice): punctuation changes to
+ 	match recommendation.  From Paul Eggert.
+ 
+ 2007-07-23  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Update DVIPSHEADERS so that dvips finds its
+ 	special headers.
+ 	Don't rely on non-IFS splitting when using local.
+ 	Maybe we should just not use local at all.
+ 	Or never use it to assign at the same time: declare, then assign.
+ 	* util/local.test: Check that "local" is used properly with quotes.
+ 
+ 2007-07-23  Akim Demaille  <akim@epita.fr>
+ 
+ 	Use hevea more like we use tex itself, no longer as a tool
+ 	that does everything magically.
+ 	* util/texi2dvi (run_hevea): Remove trailing spaces in the
+ 	output.
+ 	(run_tex_suite): Change to the working directory here, no longer
+ 	in...
+ 	(run_core_conversion): here, so that even when running hevea where
+ 	are in the working directory.
+ 	No longer call cd_orig, do it...
+ 	(run_tex_suite): here.
+ 	(run_hevea): Pass verbose flags to it when --debug.
+ 	(run_tex_suite): Since we now want to run the whole suite of tools,
+ 	including bibtex, with hevea, use run_core_conversion, not
+ 	run_tex.
+ 	(run_core_conversion): Now call run_tex.
+ 
+ 2007-07-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi (@copying, GFDL): remove, since it's
+ 	not part of info.texi either.
+ 	(Invoking Info): mention customization here and elsewhere,
+ 	to make it a bit more prominent.
+ 
+ 2007-07-15  Oleg Katsitadze  <olegkat@gmail.com>
+ 
+ 	* doc/texinfo.tex (\quotedblleft, \quotedblright, \quoteleft,
+ 	\quoteright): aliases for the quotation marks from the CM fonts.
+ 	(\guillemetleft, \guillemotleft, \guillemetright, \guillemotright,
+ 	 \guilsinglleft, \guilsinglright, \quotedblbase, \quotesinglbase):
+ 	 new macros to borrow quotation marks from the EC fonts.  The
+ 	 following font macros support these glyphs.
+ 	(\ecfont): new macro to switch to a EC font as close as possible
+ 	 to the current style.
+ 	(\textecsize, \smallecsize, \smallerecsize, titleecsize, \chapecsize,
+ 	 \sececsize, \ssececsize, \reducedecsize): new macros to store EC
+ 	 font name sizes.
+ 	* makeinfo/cmds.c, makeinfo/cmds.h: added defs for the new
+ 	quotation marks.
+ 	* makeinfo/lang.c (cm_special_char): added guillemetleft,
+ 	guillemotleft, guillemetright, guillemotright.
+ 	* util/texinfo.dtd (lsquo, rsquo, sbquo, bdquo, laquo, raquo,
+ 	 lsaquo, rsaquo): entities for the new quotation marks.
+ 	* doc/texinfo.txi (Inserting Quotation Marks): new section.
+ 	(General Syntactic Conventions): moved quotation mark syntax to
+ 	Inserting Quotation Marks.
+ 	(Preparing for TeX): added info on installation of EC and Euro fonts.
+ 
+ 2007-07-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (@copying, GNU Sample Texts),
+ 	* doc/info-stnd.texi (@copying): update Back-Cover Text.
+ 
+ 2007-07-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/lang.c (default_country_for_lang): strcasecmp returns 0
+ 	when we find en.
+ 
+ 2007-07-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.h (enable_encoding): default to 1.
+ 	* makeinfo/makeinfo.c (long_options): new option --disable-encoding
+ 	to set to zero.
+ 	(usage): document --disable-encoding.
+ 	* makeinfo/lang.c (add_encoded_char): don't enable 8-bit unless we
+ 	have a document encoding.
+ 	* doc/texinfo.txi (makeinfo Options, documentencoding): document this.
+ 
+ 2007-07-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\xrefX): use \putwordSection for external
+ 	cross-references, too.
+ 	Report from Ludovic C, 09 Jul 2007 18:09:13.
+ 
+ 2007-07-09  Oleg Katsitadze  <olegkat@gmail.com>
+ 
+ 	* doc/texinfo.tex (\thissection): renamed to \lastsection.
+ 	(\thissectionname, \thissectionnum, \evenheadingmarks, \oddheadingmarks, \evenfootingmarks, \oddfootingmarks, \everyheadingmarks, \everyfootingmarks):
+ 	new macros.
+ 	(\thischapter, \thischaptername, \thischapternum, \thissection, \thissectionname, \thissectionnum):
+ 	defined these using marks.
+ 	(\chapoddpage): omit heading and footing on blank filler pages.
+ 	* doc/texinfo.txi (Page headings): documented
+ 	\thissection{,name,num} and \{even,odd,every}{head,foot}ingmarks.
+ 	* makeinfo/cmds.c (command_table): added
+ 	{even,odd,every}{head,foot}ingmarks.
+ 
+ 2007-07-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/node.c (validate_file): don't check for warning limit,
+ 	it was hit in gnulib.
+ 	* makeinfo/makeinfo.h (reference_warning_limit): remove.
+ 	* makeinfo/makeinfo.c (main): ignore the option (but leave it in
+ 	so any Makefiles or scripts that use it won't gratuitiously break).
+ 	* doc/texinfo.txi (Invoking makeinfo): remove documentation for
+ 	--reference-limit.
+ 
+ 2007-07-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (@copying): new Back-Cover Text.
+ 
+ 2007-07-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Other Info Directories): recommend columns 32
+ 	and 48.  Suggestion from Antonio Diaz Diaz.
+ 
+ 2007-07-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\setnonasciicharscatcodenonglobal,
+ 	\setnonasciicharscatcode): no newline after #1, that counts as a space.
+ 	(\pagebody, \pagesizesyyy): likewise.
+ 
+ 2007-07-03  Oleg Katsitadze  <olegkat@gmail.com>
+ 
+ 	* doc/texinfo.tex: use \setcolor for color changes instead of
+ 	\pdfsetcolor, to preserve color changes across page breaks.  Use a
+ 	darker red (which comes out almost black in b&w print) for links
+ 	and urls.
+ 
+ 2007-07-02  Oleg Katsitadze  <olegkat@gmail.com>
+ 
+ 	* doc/pdfcolor.tex: removed (merged with doc/texinfo.tex).
+ 	* doc/texinfo.tex: merged doc/pdfcolor.tex, omitting unused colors.
+ 	* doc/Makefile.am, doc/README, doc/texinfo.txi, util/srclist.txt:
+ 	removed any mention of pdfcolor.tex.
+ 
+ 	* doc/texinfo.tex (\chapmacro):  avoid potential breakpoint at
+ 	interline glue between \pdfdest and the heading.
+ 	(\safewhatsit): typo.
+ 
+ 2007-07-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.9.90.
+ 
+ 	* COPYING, all source files: GPLv3.
+ 
+ 	* makeinfo/makeinfo.c,
+ 	* info/info.c,
+ 	* info/infokey.c,
+ 	* util/install-info.c,
+ 	* util/texindex.c: update --version output.
+ 
+ 	* Makefile.am (EXTRA_DIST): remove config.rpath, it's in build-aux now.
+ 	* lib/Makefile.am (libtxi_A_SOURCES): system.h at top level now.
+ 
+ 	* util/texi2dvi (move_to_dest): still more tweaks to try avoid
+ 	complaints from cp and cmp.
+ 
+ 	* makeinfo/tests/copying.txi: test with nonempty copying text.
+ 	* makeinfo/insertion.c (cm_insert_copying): call output_head.
+ 
+ 2007-06-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* Version 4.9 (GPLv3, made from 4.8 branch).
+ 
+ 2007-06-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (move_to_dest): do not cmp a directory.
+ 
+ 2007-06-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (move_to_dest): do not copy a file onto itself,
+ 	GNU cp complains.
+ 
+ 2007-06-27  Oleg Katsitadze  <olegkat@gmail.com>
+ 
+ 	* doc/texinfo.tex (\setnonasciicharscatcodenonglobal): new macro.
+ 	(\scanctxt):  in case of non-ASCII encodings, un-activate 8-bit
+ 	chars to avoid their expansion.  Report from John Mandereau,
+ 	22 Jun 2007 17:26:09 +0200.
+ 
+ 2007-06-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\internalpagesizes): must reset \pdfhorigin and
+ 	\pdfvorigin after changing \pdfpageheight and \pdfpagewidth.
+ 
+ 2007-06-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\documentlanguagetrywithoutunderscore): new macro,
+ 	to try txi-de.tex if @documentlanguage de_DE.
+ 	(\documentlanguage): call it.
+ 
+ 	* lang.c (default_country_for_lang): just return country code, not
+ 	whole locale string.
+ 
+ 	* makeinfo.h (output_head_p): new global.
+ 	* makeinfo.c (info_output_head, output_head): new fns.
+ 	(add_char): call it.  This is so we can translate the file header
+ 	("produced by Makeinfo ...") in Info output as well as HTML.
+ 	* html.c,
+ 	* html.h,
+ 	* cmds.c: change usage of html_output_head_p to output_head_p, etc.
+ 
+ 2007-06-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/lang.c (default_country_for_lang): implement using the
+ 	same locales_with_principal_territory list as gettext's msginit.c.
+ 
+ 	* makeinfo/lang.c (language_table): update from current list,
+ 	write out update procedure for next time.
+ 	* makeinfo/lang.h (language_code_type): update enum.
+ 	* doc/texinfo.txi (documentlanguage): don't include the list of
+ 	language codes, change is too rapid.
+ 
+ 	* doc/texinfo.tex (\codequoteright, \codequoteleft): support
+ 	@set txicodequoteundirected and
+ 	@set txicodequotebacktick, respectively, as well as the non-txi names.
+ 	* doc/texinfo.txi (Inserting Quote Characters): new node.
+ 	* NEWS: mention both.
+ 
+ 2007-06-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/lang.c (cm_documentlanguage): add _CC part if necessary,
+ 	or split LL_CC if that's given.  Set document_language so that
+ 	getdocumenttext strings will be translated.
+ 	* doc/texinfo.txi (documentlanguage):
+ 	* NEWS: mention this.
+ 
+ 	* util/gendocs_template: mention possibility of buying manuals
+ 
+ 2007-06-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_element_with_attribute): close
+ 	menu_entry and menu_entry_comment elements before handling the
+ 	detailmenu element (either start or end).
+ 	From Thien-Thi Nguyen, 04 Jun 2007 01:18:37.
+ 
+ 2007-06-03  Per Bothner  <per@bothner.com>
+ 
+ 	* xml.c (docbook_element_list): Map ANCHOR to "anchor".
+ 	* node.c (cm_anchor): Handle docbook.
+ 
+ 2007-05-22  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs_template{,_min}: missing period on source link.
+ 
+ 2007-05-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/multi.c (select_output_environment): C is not Perl.
+ 
+ 	* util/install-info.c (--test, --debug): new options,
+ 	via new variable chicken_flag and debug_flag,
+ 	and (minimal) implementation thereof.
+ 	(--silent): synonym for --quiet.
+ 	* doc/texinfo.txi (Invoking install-info): document them.
+ 
+ 2007-05-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Invoking install-info): document them.
+ 
+ 2007-05-18  Norbert Preining  <preining@logic.at>
+ 
+ 	* util/install-info.c (longopts): new options --remove-exactly,
+ 	--section-regex.
+ 	(main): handle them.
+ 
+ 2007-05-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Image Syntax): findex entry should just be for
+ 	"-", not "@-".  (Which fails due to \initial{\} in texinfo.fns,
+ 	but that's a different story.)
+ 
+ 2007-05-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/node.c (cm_anchor): ignore following whitespace,
+ 	including newlines.  Reported by Kevin Ryde.
+ 	* doc/texinfo.txi (anchor): state this more clearly.
+ 
+ 	* doc/texinfo.tex (\tocreadfilename): allow override of
+ 	\jobname.toc for sake of 2-volume printed lispref.
+ 	(\finishentry): change test for no page number (and hence no
+ 	leaders) again, for "Volume N" in lispref.
+ 	(\smallbook): adjust margins to be more equal.
+ 
+ 2007-05-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\urlcolor, \linkcolor): define both as \BrickRed
+ 	by default.
+ 
+ 2007-04-29  Werner Koch  <wk@g10code.com>
+ 
+ 	* makeinfo/html.c (process_css_file): Don't omit copying the i
+ 	of @import.  (Reported on 27 Sep 06.)
+ 
+ 2007-04-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* system.h [__CYGWIN__]: #define STRIP_DOT_EXE 0 (since gunzip.exe
+ 	may no longer exist), and PIPE_USE_FORK as 1.
+ 	From Christopher Faylor, 28 Apr 2007 20:25:56.
+ 
+ 	* makeinfo/cmds.c (cm_strong): doc fix.
+ 
+ 	* makeinfo/makeinfo.h (paragraph_buffer_len): move decl here ...
+ 	* makeinfo/makeinfo.c (paragraph_buffer_len): from here.
+ 	* makeinfo/multi.c (select_output_environment): save and restore
+ 	paragraph_buffer_len.  Otherwise, an exceptionally long multitable
+ 	entry (gcal.texi) might realloc output_paragraph, thus increasing
+ 	paragraph_buffer_len, and then we get back to the main text and
+ 	restore the old output_paragraph, we'll be out of sync.  Yikes.
+ 	(Thank you to Electric Fence and valgrind.)
+ 
+ 2007-04-26  Oleg Katsitadze  <olegkat@gmail.com>
+ 
+ 	* doc/texinfo.tex (cmapOT1, cmapOT1IT, cmapOT1TT): new definitions
+ 	for pdf so that searching and copying from pdf documents will find
+ 	text properly, e.g., the "fi" in "file".  Report from
+ 	Frank K on tex-live.
+ 
+ 2007-04-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs_template: conform to new GNU style.  From Yavor.
+ 	* util/gendocs_template_min: previous version, without SSI.
+ 
+ 2007-04-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* system.h (DMALLOC_FUNC_CHECK) [DMALLOC_DEBUG]: #define.
+ 
+ 2007-04-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: findex set and clear.
+ 	From Kevin Ryde, 16 Apr 2007 11:15:00.
+ 
+ 2007-04-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: improve @: usage and documentation throughout.
+ 
+ 2007-04-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (bs_escape_quote): new fn.
+ 	(cm_image) <Info output>: call it, to escape the alt string.
+ 	Also expand the alt string.
+ 	bug-texinfo mail from Kevin Ryde, 26 Mar 2007 07:06:14.
+ 
+ 	* doc/texinfo.tex (\printindex): set \plainfrenchspacing.
+ 
+ 2007-04-07  Oleg Katsitadze  <olegkat@gmail.com>
+ 
+ 	* doc/texinfo.tex (\defunpenalty): new register.
+ 	(\startdefun): use it to avoid page breaks between a defun and a
+ 	single defunx -- only allow breaks between multiple defunx's.
+ 
+ 2007-04-03  Oleg Katsitadze  <olegkat@gmail.com>
+ 
+ 	* doc/texinfo.tex (\whatsitskip, \whatsitpenalty): new registers.
+ 	(\safewhatsit): generalization of \dosubindsanitize.  Change call.
+ 	(\pdfmkdest, \dosubind, \setref): call it.  This avoids a page
+ 	break at an anchor (lispref/loading.texi/load-read-function).
+ 
+ 2007-04-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs_template: "bytes" is more accurate than "characters".
+ 	* util/gendocs.sh: force English settings; improve --help.
+ 	From Bruno.
+ 
+ 2007-03-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (init_paragraph): only free output_paragraph
+ 	if it is non-null.
+ 
+ 2007-03-31  Roland Levillain  <roland@lrde.epita.fr>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): Look for a JPEG image in the
+ 	include search path before giving up.
+ 	Fix inclusion of JPEG images (with non explicit extension)
+ 	not present in the current directory, but in the include search path.
+ 
+ 2007-03-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Menus): missing word "text".
+ 	From Matt Kraai, 27 Mar 2007 10:26:28 -0700.
+ 
+ 2007-03-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): malloc enough space for the .txt
+ 	when given an extension.
+ 
+ 2007-03-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/dir-example: dmalloc, alignment.
+ 
+ 2007-03-13  Oleg Katsitadze  <olegkat@gmail.com>
+ 
+ 	* doc/texinfo.tex (\enddoublecolumns): add \penalty0 so the
+ 	recent contributions won't be spuriously added to an index page.
+ 
+ 2007-02-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c (info_short_example): example for dumping a whole
+ 	manual, suggested by Dan Jacobson, 21 Feb 2007 08:37:08.
+ 
+ 2007-02-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (The Top Node): no @insertcopying recommended,
+ 	per rms.
+ 
+ 2007-02-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* system.h: simplify system header inclusion, following current
+ 	practice; that is, copied from GNU Hello.
+ 
+ 	* makeinfo/test/no-headers (nulldev): just always use /dev/null.
+ 	Also from Brian.
+ 
+ 	* system.h (strcase.h) [!HAVE_STRCASECMP...]: remove this
+ 	inclusion entirely, apparently with gnulib string.h suffices.
+ 	Report from Brian Dessent, 31 Oct 2006 15:50:34.
+ 
+ 2007-02-21  Brian Dessent  <brian@dessent.net>  (tiny change)
+ 
+ 	* info/info.c,
+ 	* info/infokey.c,
+ 	* info/makedoc.c,
+ 	* util/texindex.c (program_name): declare as non-static, for
+ 	non-glibc, e.g., Cygwin.  bug-texinfo mail from 31 Oct 2006 15:50:34.
+ 
+ 2007-02-14  Miloslav Trmac  <mitr@redhat.com>
+ 
+ 	* makeinfo/makeinfo.c (getdocumenttext): Correctly save and
+ 	restore the current locale configuration.
+ 	bug-texinfo mail of 14 Feb 2007 16:28:37 +0100.
+ 
+ 2007-02-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (HTML Xref Link Basics): manual is metasyntactic.
+ 
+ 	* doc/texinfo.txi (documentencoding, documentlanguage):
+ 	mention the UTF-8 is (sort of) supported, and that these commands
+ 	should be given after @setfilename.
+ 
+ 	* doc/texinfo.tex (\pdfmkdest): \makevalueexpandable,
+ 	so simple @value in @node names can work.
+ 	Report from Jorge Barros de Abreu, 14 Jan 2007 08:24:57 (+ff).
+ 
+ 2007-02-10  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* gnulib/m4/gettext.m4: Upgrade to gettext-0.16.
+ 	* gnulib/m4/lib-link.m4: Upgrade to gettext-0.16.
+ 	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.16.
+ 
+ 2007-02-07  Miloslav Trmac  <mitr@redhat.com>
+ 
+ 	* configure.ac: Remove unnecessary wcwidth () test.  Add missing
+ 	setlocale () test.
+ 	* makeinfo/makeinfo.c (string_width): Remove.
+ 	* makeinfo/makeinfo.h (string_width): Remove declaration.
+ 
+ 	* makeinfo/cmds.c (cm_center)
+ 	* makeinfo/index.c (insert_index_output_line_no, cm_printindex):
+ 	* makeinfo/makeinfo.c (do_flush_right_indentation)
+ 	* makeinfo/multi.c (output_multitable_row): Use mbswidth () and
+ 	mbsnwidth () instead of string_width ().
+ 
+ 2007-01-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): always use the short caption
+ 	in the list of floats if it is provided.  Report from
+ 	Jay Berkenbilt, 19 Jan 2007 11:58:00 -0500.
+ 
+ 2007-01-16  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (insert_commands): Use fatal for errors.
+ 	(insert_commands): Actually, use "error", not "fatal".
+ 	White space changes.
+ 
+ 2007-01-16  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (run_makeinfo): Instead of putting the whole
+ 	function in a "case", return if the language is not texinfo.
+ 
+ 2007-01-16  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: White space changes.
+ 
+ 2007-01-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texinfo.dtd (rArr): define, per Per.
+ 
+ 2007-01-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_result): use rArr for html or docbook.
+ 
+ 	* makeinfo/lang.c (encoding_table): include UTF-8, just passing
+ 	through everything as-is.
+ 	(asis_map): rename us_ascii_map (and change US-ASCII entry).
+ 
+ 2007-01-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xml.c (xml_id): oops, whitespace should be replaced
+ 	too.  And probably more, but let's leave it at this for now.
+ 
+ 2007-01-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xml.c (xml_id): do not use the SGML rules for id's,
+ 	which were very restrictive (no 8-bit chars).  Instead, just pass
+ 	along what we are given, more or less, per current XML.
+ 
+ 2006-12-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_element_with_attribute): remove the
+ 	warning again, the html-docdesc test triggers it for no apparent
+ 	reason, and I don't want to debug it now.
+ 
+ 	* doc/texinfo.tex (\DeclareUnicodeCharacter, et al.): new macros
+ 	to support @documentencoding UTF-8 (as well as Computer Modern
+ 	can).  From Werner Lemberg.
+ 
+ 2006-12-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_element_with_attribute): give a
+ 	warning if we need to ignore an insertion because the book hasn't
+ 	started.  Can this ever happen with acceptable Texinfo documents?
+ 	I saw it in a document without @settitle but with @copying.
+ 	(xml_add_char): ensure that we have an element stack before
+ 	testing xml_current_element and failing the assertion.
+ 	(xml_pop_current_element): do not try to print the value of the
+ 	current element on underflow, there isn't one.
+ 
+ 2006-12-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\xrdef, \xrefX, \pdfmkdest): sanitize the node
+ 	name, so accents (either 8-bit chars or cmds) can be used.
+ 
+ 2006-12-22  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\setnormaldispenv, \setsmalldispenv): do
+ 	\endgraf before changing fonts, to get leading of previous
+ 	paragraph right when there is no blank line.
+ 	From John Gabriele, 21 Dec 2006 18:00:24.
+ 
+ 2006-12-11  Miloslav Trmac  <mitr@redhat.com>
+ 
+ 	* configure.ac: Test wcwidth () availability.
+ 	* makeinfo/makeinfo.h (string_width, current_output_column): New
+ 	declarations.
+ 	(output_column): Remove.  All users replaced by
+ 	current_output_column (), all modifications dropped.
+ 	* makeinfo/makeinfo.c (output_paragraph_start_column): New
+ 	variable.
+ 	(string_width, current_output_column): New functions.
+ 	(get_char_len): Remove.
+ 	(init_paragraph): Initialize output_paragraph_start_column.
+ 	(flush_output): Update output_paragraph_start_column.
+ 
+ 	* makeinfo/cmds.c (cm_center)
+ 	* makeinfo/index.c (insert_index_output_line_no, cm_printindex):
+ 	* makeinfo/makeinfo.c (do_flush_right_indentation)
+ 	* makeinfo/multi.c (output_multitable_row):
+ 	Don't assume number of columns == number of bytes.
+ 
+ 2006-12-11  Miloslav Trmac  <mitr@redhat.com>
+ 
+ 	* makeinfo/makeinfo.h (NON_BREAKING_SPACE): New macro.
+ 	(control_character_bit, meta_character_bit, CTL, UNCTL, META)
+ 	(UNMETA): Remove.
+ 	* makeinfo/makeinfo.c (add_char, flush_output): Use
+ 	NON_BREAKING_SPACE instead of META (' ').
+ 	(get_char_len): NON_BREAKING_SPACE is only one column wide.
+ 
+ 2006-12-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (@documentencoding): mention that it is
+ 	(somewhat) supported in TeX now.
+ 
+ 2006-12-05  Paulo Sequeira  <psequeira@gawab.com>
+ 
+ 	* doc/texinfo.tex (\documentencoding): real implementation.
+ 	(\setnonasciicharscatcode): new macro.
+ 	(\missingcharmsg): new macro.
+ 	(\latonechardefs, latninechardefs, \lattwochardefs): new macros.
+ 
+ 2006-11-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* Makefile.am (po-check): new utility target from coreutils.
+ 
+ 2006-11-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dopdfimage): look for png, jpg/jpeg/JPG, and
+ 	  as well as pdf images, since they are supported in pdftex with
+ 	  no further ado.
+ 	* doc/texinfo.txi (Image Syntax): document it.
+ 
+ 2006-11-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (Image Syntax): don't mention GIF any more.
+ 
+ 2006-11-01  Miloslav Trmac  <mitr@redhat.com>
+ 
+ 	* util/texindex.c (main): Remove off-line sort implementation.
+ 	(tempdir, tempbase, tempcount, last_deleted_tempcount)
+ 	keep_tempfiles): Remove variables.
+ 	(sort_offline, initbuffer, readline, merge_files, merge_direct)
+ 	(gettempname, maketempname, flush_tempfiles):
+ 	Remove functions.
+ 	(texindex_options): Remove --keep and --no-keep documentation.
+ 	(decode_command): Ignore --keep.
+ 	(writelines): Fix comment.
+ 
+ 2006-10-24  Karl Berry  <karl@gnu.org>  (tiny change)
+ 
+ 	* util/texindex.c (readline): do the reallocation (more) correctly.
+ 	From Miloslav Trmac.
+ 
+ 2006-10-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* TODO: would be nice if accent commands implicitly used
+ 	dotless i/j.
+ 
+ 2006-10-09  Miloslav Trmac  <mitr@redhat.com>  (tiny change)
+ 
+ 	* util/texindex.c (gettempname): new fn, split off from maketempname.
+ 	(maketempname): call it.  We weren't deleting temp files.
+ 	(sort_offline): check result from maketempname.
+ 
+ 2006-10-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+ 
+ 	* makeinfo/tests/quote-args: Add missing $srcdir.
+ 
+ 2006-10-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\singlequotechar): rename to \codequoteright.
+ 	(\quoteexpand): rename to \rquoteexpand.
+ 	(\codequoteleft): new def, to look for @set codequotebacktick.
+ 	(\lquoteexpand, \quoteexpand): new defs.
+ 	(\lquoteChar, \rquoteChar, \dashChar, \underChar): new \chardef's.
+ 	(\code): must use new \...Char values, since now ` is active.
+ 
+ 2006-10-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (run_bibtex): also run bibtex if "no .aux file" in
+ 	the .log, and "\bibdata" in the aux, for the first run of a btxmac
+ 	file.  Report from Oleg Katsitadze.
+ 
+ 2006-09-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Inserting Braces): spurious ppp.
+ 
+ 2006-09-22  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* configure.ac: Add a comment explaining `env -i PATH=$PATH'.
+ 
+ 2006-09-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (code): spurious "in the printed manual", from
+ 	Bob C.
+ 
+ 2006-09-01  Eli Zaretskii  <eliz@gnu.org>
+ 
+ 	* doc/texinfo.txi (Multitable Rows): Document the Info output of
+ 	@headitem.
+ 
+ 2006-08-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (command_table): new command @textdegree{}.
+ 	* makeinfo/lang.c (cm_special_char): handle textdegree.
+ 	* doc/texinfo.tex (\textdegree): define it.
+ 
+ 	* doc/texinfo.txi (Output Formats): update Beebe paper reference.
+ 	(Printed Books): update texinfo.tex reference.
+ 	Report from VAN VLIERBERGHE Stef, 22 Aug 2006 22:05:27 +0200.
+ 
+ 2006-08-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (man_rule_bin): use help2man -o, instead of
+ 	redirection, so that `missing' can infer the output filename.
+ 
+ 2006-08-13  Alexander E. Patrakov  <patrakov@ums.usu.ru>  (tiny change)
+ 
+ 	* info/man.c (get_manpage_contents), info/info.c (main):
+ 	Info apparently assumes equivalence of bytes and characters,
+ 	leading to (for example) translated man output in multibyte
+ 	locales being broken within a character.  In lieu of a
+ 	real fix, if MB_CUR_MAX > 1, revert to C.  bug-texinfo mail,
+ 	07 Aug 2006 14:59:42 +0600.
+ 
+ 2006-08-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (error \box0): smaller font.
+ 
+ 2006-08-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Invoking Macros): all commas inside macro calls
+ 	are quoted, it seems.  From Patrice.
+ 
+ 2006-07-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.ac (AC_MINIX): remove, as it seems there is nowhere to
+ 	call it, and is it really necessary these days?
+ 
+ 	* doc/info-stnd.texi (What is Info?): suggest the Emacs Info
+ 	reader for the nicest display.
+ 
+ 2006-07-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\onepageout): hardwire a 24pt space before
+ 	\footlinebox, instead of 2\baselineskip.  If the page break occurs
+ 	at a heading, for instance, \baselineskip might be larger, causing
+ 	the footer to jump.
+ 	(\oddfootingyyy): likewise (although doesn't really matter here).
+ 	Report from Werner Lemberg, 02 Jun 2006 07:44:36 +0200.
+ 
+ 	* doc/texinfo.txi: use @copyright{} in @copying, not (C).
+ 
+ 2006-07-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\code): make ' active.
+ 	(@lisp,@example): call \quoteexpand.
+ 	(\quoteexpand): new definition to make ' active.
+ 	(\singlequotechar): the active definition of '; if
+ 	the variable codequoteundirected is @set, use char"d from tt
+ 	instead of the regular directed quote.
+ 	This is all to make pasting of ' in examples work in more pdf
+ 	viewers, at least evince.
+ 	From: Han-Wen Nienhuys, 2 Jun 2006 01:22:44 +0000.
+ 
+ 2006-07-10  <Ralf.Wildenhues@gmx.de>
+ 
+ 	* makeinfo/html.c (insert_html_tag_with_attribute): Treat `samp'
+ 	special, to allow it to nest.
+ 	* makeinfo/cmds.c (cm_code): use insert_html_tag to add `samp'
+ 	instead of add_word, so that the roll-back of outer tags works
+ 	correctly.  (This fixes @option inside of @emph causing badly
+ 	nested tags in the HTML output, see 8 Jun 2006 00:12:55 +0200 mail.
+ 	The general problem still remains.)
+ 	* makeinfo/tests/emph-option: New test.
+ 	* makeinfo/tests/emph-option.txi: New file.
+ 	* makeinfo/tests/Makefile.am: Adjust.
+ 
+ 2006-07-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (makeinfo Pointer Creation, Writing a Menu):
+ 	mention that accesskey is used in the HTML output.
+ 
+ 2006-07-09  <Ralf.Wildenhues@gmx.de>
+ 
+ 	* doc/texinfo.txi: Fix some typos.
+ 
+ 2006-07-04  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* makeinfo/macro.c (add_macro): Initialize def->argcount
+ 	(get_brace_args): Change argument type to enum quote_type.
+ 	(All callers updated.) Implement default argument quoting.
+ 	(expand_macro): Use def->argcount to control the number of passed
+ 	arguments.
+ 	(define_macro): Issue a warning if @allow-recursion or @quote-arg
+ 	is used.
+ 	* makeinfo/macro.h (MACRO_DEF): New member argcount
+ 	(enum quote_type): New data type.
+ 	(get_brace_args): Change argument type to enum quote_type
+ 	(ME_QUOTE_ARG): Remove the macro
+ 	* makeinfo/makeinfo.c (cm_ifeq): Update call to get_brace_args
+ 	* makeinfo/tests/Makefile.am (TESTS): New test quote-args
+ 	(EXTRA_DIST): New file quote-args.txi
+ 	* makeinfo/tests/quote-args: New test
+ 	* makeinfo/tests/quote-args.txi: New file
+ 	* doc/texinfo.txi: Document automatic argument quoting
+ 
+ 2006-07-03  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* doc/txi-pl.tex: Do not use \prefixing and \notprefixing. They
+ 	were defined in PLaTeX, but are no longer global. Use ISO-8859-1
+ 	instead.
+ 
+ 2006-06-27  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/defs.in ($latex_paragraph): New.
+ 	* util/latex2html.test (input.tex): Make it big enough to trigger
+ 	the info file splitting.
+ 	* util/texi2dvi (move_to_dest): Accept several arguments.
+ 	(run_hevea): Use it to move the whole family.
+ 
+ 2006-06-27  Akim Demaille  <akim@epita.fr>
+ 
+ 	Fix the clean invocations to hevea.
+ 	Note that this breaks document using images (to be fixed).
+ 	* util/latex2html.test (run_hevea_check): Extend to support
+ 	various build modes.
+ 	Test them.
+ 	Force the creation of aux files (something the previous test
+ 	failed to do...).
+ 	* util/defs.in (title): New.
+ 	* util/texi2dvi: Fix incorrect "error" invocations.
+ 	(run_hevea): Don't pass -o to hevea.
+ 	Move the result to the expected destination.
+ 	Don't pass -noiso.
+ 
+ 2006-06-26  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (generated_files_get): Call uniq.
+ 
+ 2006-06-07  <Ralf.Wildenhues@gmx.de>
+ 
+ 	* Makefile.am (AUTOMAKE_OPTIONS): Require Automake 1.9, since
+ 	non-direct subdirs in SUBDIRS (gnulib/lib) is a 1.9 feature.
+ 
+ 2006-06-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (anchor): pxref Node Line Requirements since the
+ 	same name restrictions apply.  Suggested by Eli.
+ 
+ 2006-06-21  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (fatal): Rename as...
+ 	(error): this.
+ 	If the exit status is 0, don't exit.
+ 	(run): New.
+ 	Use it where appropriate.
+ 	(run_dvipdf): New.
+ 	Use it.
+ 
+ 2006-06-21  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/Makefile.am, info/Makefile.am, makeinfo/Makefile.am,
+ 	* lib/Makefile.am (DEFS): Remove, included in...
+ 	(AM_CPPFLAGS): this.
+ 	Add -I $(top_srcdir) to find system.h.
+ 
+ 2006-06-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* system.h: move to top level.
+ 	* */Makefile.am (AM_CPPFLAGS): no longer need -I$(top_srcdir)/lib.
+ 
+ 	* makeinfo/makeinfo.c (getdocumenttext): replace with a modified
+ 	version of get_title from gettext, as suggested by Bruno Haible,
+ 	back on 2 Dec 2003.
+ 	* gnulib: import xsetenv module.
+ 
+ 	* doc/texinfo.tex (\indexdotfill): back to regular (non-italic)
+ 	periods, suggested by Werner Lemberg and others.
+ 
+ 2006-06-19  Akim Demaille  <akim@epita.fr>
+ 
+ 	Support dvips and dvipdf for sake of pstricks, and to
+ 	spare the use tweaking TEXINPUTS.
+ 	* util/defs.in (optionset_get, assert_and_remove_files): New.
+ 	* util/texi2dvi (out_lang_tex, out_lang_ext): New.
+ 	Use them.
+ 	($language): Rename as...
+ 	($in_lang): this for consistency.
+ 	Support --dvipdf and --ps.
+ 	Not documented yet.
+ 	* util/dvipdf.test: New.
+ 	* util/Makefile.am (TESTS): Adjust.
+ 	* util/texi2dvi.tests (one_run): New.
+ 
+ 2006-06-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* gnulib: new subdirectory, managed by gnulib-tool.
+ 	* m4: delete entire subdirectory, now replaced by gnulib/m4.
+ 	* build-aux: new subdirectory.
+ 	* README.dev: doc.
+ 	* autogen.sh: aclocal needs -I gnulib/m4 now.
+ 	* Makefile.am, util/Makefile.am, lib/Makefile.am, info/Makefile.am,
+ 	  makeinfo/Makefile.am (AM_CPPFLAGS, LDADD): use new gnulib dirs.
+ 	* lib/alloca.c, lib/getopt*, lib/gettext.h, lib/mem*, lib/str*,
+ 	  etc.: delete, now using gnulib modules (as recorded in
+ 	  gnulib/m4/gnulib-cache.m4)
+ 
+ 2006-06-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* po/Makevars (XGETTEXT_OPTIONS): add --keyword=__, so that the
+ 	gettext will mark the new __ strings (2006-05-29 change from
+ 	Norbert) for translation again.
+ 
+ 2006-06-07  <Ralf.Wildenhues@gmx.de>
+ 
+ 	* makeinfo/footnote.c (output_pending_notes): Use
+ 	add_html_block_elt instead of add_word for final part of
+ 	footnote, so no extra <p> is output.
+ 
+ 2006-06-05  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/bibtex.test: Add it for real.
+ 
+ 2006-06-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: always report tex command being used.
+ 
+ 2006-06-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (--src-specials): new option,
+ 	requested by Charlie Zender.
+ 
+ 2006-06-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\thischapternum): new macro for
+ 	headings/footings, requested by Werner.
+ 	* NEWS, doc/texinfo.txi (Command List, Custom Headings): document it.
+ 
+ 2006-06-01  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* makeinfo/html.c (html_output_head): Insert external CSS
+ 	reference if css_ref is set.
+ 	(fix_filename): Attempt to transliterate the name before falling
+ 	back to numeric symbol representation.
+ 	* makeinfo/lang.c (iso8859_2_map): Add transliterations
+ 	(koi8_map): New map for koi8-u and koi8-r encodings.
+ 	(encoding_table): Add koi8-u and koi8-r
+ 	(cm_search_iso_map_char,lang_transliterate_char): New functions.
+ 	* makeinfo/lang.h (encoding_code_type): Add KOI8_R, KOI8_U
+ 	(struct iso_map_type): New member `translit'.
+ 	(lang_transliterate_char): New function prototype.
+ 	* makeinfo/makeinfo.c: New options --css-ref and
+ 	  --transliterate-file-names.
+ 	* makeinfo/makeinfo.h (css_ref, transliterate_file_names): New
+ 	variables.
+ 	(URL_SAFE_CHAR): Bugfix: Make sure argument is in isalnum() domain.
+ 
+ 	* doc/texinfo.txi: Document new options.
+ 
+ 2006-05-30  <Ralf.Wildenhues@gmx.de>
+ 
+ 	* configure.ac (sigblock): Fix underquoted macro usage.
+ 
+ 2006-05-30  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (aux_file_p): Rename the second occurrence as...
+ 	(bibaux_file_p): this.
+ 	(run_bibtex): Use it.
+ 	(options processing, $usage): Support --dvi for symmetry and to
+ 	ease systematic tests.
+ 	* util/bibtex.test: New.
+ 
+ 2006-05-30  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Add support for latex to text and info using
+ 	hevea.
+ 	Don't document it yet, as it's preliminary and on some regards
+ 	incomplete.  It is usable though.
+ 	(IFS): Use a more robust definition, taken from Autoconf.
+ 	(bibaux_file_p): New, extracted from...
+ 	(run_html): Generalize and rename as...
+ 	(run_hevea): this.
+ 	(run_core_conversion): Adjust.
+ 	(option processing): Accept --text and --info.
+ 	* configure.ac: Check for TEX and HEVEA.
+ 	* util/defs.in: No longer create a texi file by default.
+ 	Handle hevea requests.
+ 	(create_input_tex, create_input_texi): New.
+ 	(assert_files, list_files): Rework to use diff instead of test.
+ 	And sort both lists of files before comparing them.
+ 	* util/latex2html.test: New.
+ 	* util/Makefile.am (TESTS): Update.
+ 
+ 2006-05-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.h (getdocumenttext, __): new definitions for
+ 	strings translated according to the document language, instead of
+ 	the interface language.
+ 	* makeinfo/makeinfo.c (getdocumenttext): new fn.
+ 	(usage): new option --document-language to specify.
+ 	* makeinfo/lang.h (document_language): new declaration.
+ 	* makeinfo/lang.c (document_language): define.
+ 	* makeinfo/defun.c, makeinfo/html.c, makeinfo/node.c,
+ 	makeinfo/toc.c, makeinfo/xref.c: use __ instead of _ for document
+ 		strings.
+ 	* doc/texinfo.txi (makeinfo options): minimal documentation.
+ 	From Norbert Preining, 10 Mar 2006 02:22:19 +0100.
+ 	Debian bugs 113988 and 355367.
+ 
+ 2006-05-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\indexdummies): \let\endinput=\empty, to
+ 	avoid premature end of processing when an index entry is generated
+ 	from a macro.
+ 	Report from Graham Percival to help-texinfo, 22 May 2006 12:03:12.
+ 
+ 	* doc/texinfo.tex (\dots): use width of three period characters if
+ 	that is wider than 1.5em.  Report from Steve Peter.
+ 
+ 	* system.h [__CYGWIN__] (NULL_DEVICE): define as /dev/null.
+ 	From Ralf W.
+ 
+ 2006-05-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* texi2dvi (IFS): initialize, since otherwise when we save/restore
+ 	it may end up being set-but-empty, which may disable splitting.
+ 	Report from Ralf W.
+ 
+ 2006-05-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (run_makeinfo): use $TEX instead of hardwiring
+ 	tex, to maybe avoid running into some
+ 	misconfigured TeX installations, resulting in
+ 	 ---! /var/lib/texmf/web2c/etex.fmt was written by pdfetex
+ 	 (Fatal format file error; I'm stymied)
+ 	Original report from Ralf Wildenhues, 12 May 2006 11:19:13 +0200.
+ 
+ 2006-05-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+ 
+ 	* util/gendocs.sh: quoting, url fixes.
+ 
+ 2006-05-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* autogen.sh: new name for bootstrap, and improve msg.  From Bruno
+ 	via hello.
+ 
+ 2006-05-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dopdfimage): width and height args might have
+ 	whitespace.  Report from Bob Chassell.
+ 
+ 2006-05-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\definetextfonsizexi, \definetextfonsizex): new cmds.
+ 	(\fonttextsize): new user-level command @fonttextsize to change
+ 	text font size.  (To be used for the next Emacs edition.)
+ 	* makeinfo/cmds.c (cm_fonttextsize): new fn.
+ 	(command_table): include it.
+ 	* NEWS, doc/texinfo.txi (Fonts): document it.
+ 
+ 2006-05-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Reporting Bugs): wording to match hello.
+ 
+ 2006-04-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (TXI_XLATE): add txi-ru.tex and txi-uk.tex,
+ 	from Sergey Poznyakoff.
+ 	* doc/txi-ru.tex, doc/txi-uk.tex: new files.
+ 
+ 2006-04-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): kill_self_indent(-1) to
+ 	remove all indentation.  From Brian Gough, 11 Apr 2006 16:42:29 +0100.
+ 
+ 2006-04-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (GNU Sample Texts): GFDL is version 1.2 now.
+ 	Report from Claudio.
+ 
+ 2006-03-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (HTML Xref Command Expansion): use U+2605 for
+ 	@point{} and U+22A3 for @print{}.  From Patrice.
+ 
+ 2006-03-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (copying): warn not to indent lines within the
+ 	@copying.
+ 
+ 2006-03-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/html.c (escape_string): do not free the old string,
+ 	that is dangerous, only the caller should do it.
+ 	(add_link): escape the title string.
+ 	Report from Ralf Wildenhues, 17 Mar 2006 05:08:11 +0100.
+ 
+ 2006-03-21  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\parseargusing, \finishparsearg): Use \argtorun
+ 	  instead of \next.
+ 	(\argcheckspacesY): Change the wording of the comment about \next.
+ 	(\braceorline, \braceorlinexxx): Do not suppose that \next is
+ 	  preserved during the run of \parsearg, anyway.
+ 
+ 2006-03-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (section, subsection, unnumberedsubsec,
+ 	subsubsection): make it clear that @section can be used within
+ 	any chapter unit.
+ 	Report from: Hynek Hanke, 11 Mar 2006 20:44:34 +0100.
+ 
+ 	* doc/texinfo.tex (\imagexxx): do not center the image by default.
+ 	The manual says we don't do that, and Lilypond needs
+ 	left-justification.
+ 	From: Han-Wen Nienhuys, 9 Mar 2006 21:08:26 +0000.
+ 
+ 2006-03-13  Miloslav Trmac  <mitr@redhat.com>  (tiny changes)
+ 
+ 	* info/Makefile.am (infokey_LDADD): don't link with curses.
+ 
+ 	* makeinfo/sectioning.c: cast arguments to substring, to placate
+ 	current gcc.
+ 
+ 2006-03-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: reindent --help message.
+ 
+ 2006-03-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Writing a Node): show example of specifying
+ 	some pointers but not others.
+ 
+ 2006-02-28  Akim Demaille  <akim@epita.fr>
+ 
+ 	Be robust to spaces in directory names.
+ 	* util/texi2dvi (absolute): Be robust to non directories.
+ 	(run_tex): Quote in_input properly.
+ 	(compile): Quote args of eval properly.
+ 
+ 2006-02-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/nodes.c (info_get_node_of_file_buffer): try to avoid
+ 	running man Top, which returns the top(1) man page on Debian.
+ 
+ 2006-02-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+ 
+ 	* util/texi2dvi: New options --translate-file and --recode-from.
+ 
+ 2006-02-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_enddots): output three dots, not four, for
+ 	consistency with texinfo.tex.
+ 
+ 	* doc/texinfo.tex (\doignore): move \obeylines here.
+ 	(\dodoignore): from here.  (just putting catcode changes together.)
+ 	(\doignoretextyyy): revert to previous code, no ##2^^M;
+ 	that caused blank lines in verbatim envs inside failing conditionals.
+ 	(\enddoignore): ignore any text after the @end #1 here, instead.
+ 	Bug report from Bob Wilson, 5 Oct 2005 21:22:33 -0700,
+ 	amended fix from Stepan, 13 Feb 2006 21:57:07 +0100.
+ 
+ 	* info/nodes.c (info_get_node): don't try man Top and man top and
+ 	man TOP.  Debian bug 234848.
+ 
+ 2006-02-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (write_trailer): new fn.
+ 	(convert_from_loaded_file) <finished>: call it *after* the
+ 	tag table has been written, else Emacs likely won't seeit.
+ 	Report from: Juri Linkov, 11 Feb 2006 03:11:33 +0200.
+ 
+ 2006-02-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texinfo.dtd (menucomment): more inclusive.
+ 	(enumerate): allow indexes.
+ 	From Torsten.
+ 
+ 2006-02-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texinfo.dtd: apparently we cannot have -- in an XML
+ 	comment.  Kludge.
+ 
+ 2006-02-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (run_makeinfo): eval $makeinfo, for gettext
+ 	0.14.5's complex $MAKEINFO definition.
+ 
+ 2006-01-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texinfo.dtd: many additions and fixes from
+ 	Torsten Bronger.
+ 
+ 2006-01-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\sectionheading): \nobreak before the \vbox
+ 	with the heading.
+ 	Report from: Norbert Preining, 2 Nov 2005 10:07:57 +0100,
+ 	Debian bug 276000.
+ 
+ 2006-01-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/lang.c (cm_accent_generic_no_headers): do nothing
+ 	if end == 0 (accent command in @menu with --no-headers).
+ 	Report from Akim Demaille, 23 Jan 2006 16:41:38 +0100.
+ 
+ 2006-01-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (key): more examples.
+ 
+ 2006-01-18  Akim Demaille  <akim@epita.fr>
+ 
+ 	Sometimes the temporary directory remains.
+ 	Reported by Wybo Dekker.
+ 	* util/defs.in (assert_files): New.
+ 	* util/texi2dvi.test: Use it.
+ 	Extend to check the local builds.
+ 	* util/texi2dvi (aux_file_p, index_file_p, xref_file_p): Check
+ 	that the file exists.
+ 	(generated_files_get): Simplify according to these changes.
+ 	(remove, cleanup): New.
+ 	Use the latter in the cleaning trap.
+ 	(mostly_clean): Use them.
+ 
+ 2006-01-17  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (generated_files_get): Skip nonexistent files
+ 	earlier.
+ 
+ 2006-01-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infodoc.c (info_internal_help_text): combine messages
+ 	which are single sentences into one string.
+ 	Report from Clytie Siddall, via
+ 	http://sourceforge.net/tracker/index.php?func=detail&aid=1406541&group_id=40033&atid=426818.
+ 
+ 	* po/POTFILES.in: add missing makeinfo/xref.c, makeinfo/float.c.
+ 	Report from Torsten.
+ 
+ 2006-01-09  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: set -e.
+ 	Stop using the idiom "test && action" in favor of "if test; then
+ 	action; fi".
+ 	(xref_files_save): Use tar instead of cp.
+ 	(run_makeinfo): Fix a "local" use.
+ 
+ 2006-01-08  Loic Minier  <lool@dooz.org>  (tiny change)
+ 
+ 	* info/display.c (display_update_one_window): systematize
+ 	check as to whether `entry' is non-null before referring to it.
+ 	Still some segfaults when resizing the window rapidly.
+ 
+ 2006-01-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\normalturnoffactive): restore setting of
+ 	active \ to \normalbackslash.
+ 	(\onepageout): restore call to \normalturnoffactive.
+ 	Otherwise, if a page break happens at the wrong time, the active
+ 	\ will result in writing an actual \ character,
+ 	instead of {\tt \backslashcurfont }.
+ 	Report from Kurt.Hornik@wu-wien.ac.at, 6 Jan 2006 14:38:38 +0100.
+ 	[test idxback-exts]
+ 
+ 2005-12-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (node, Node Names): pxref Node Line Requirements,
+ 	about restrictions on characters in node names.
+ 
+ 2005-12-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\pdfurl): make @/ a no-op.
+ 	Report from Kurt Hornik, 23 Dec 2005 13:17:56 +0100.
+ 
+ 	* util/texi2dvi (no_file_line_error): new control,
+ 	with option --no-line-error to set it.  Wybo Dekker's mk program
+ 	wants to parse TeX's original error messages.
+ 	(run_tex): obey it.
+ 
+ 2005-12-22  Akim Demaille  <akim@epita.fr>
+ 
+ 	Implement --mostly-clean, improve the detection of aux files.
+ 	* util/texi2dvi ($action): New.
+ 	(--mostly-clean): New.
+ 	(cd_orig): New.
+ 	(generated_files_get, aux_file_p, index_file_p, xref_files_p):
+ 	New.
+ 	(get_index_files): Remove, replaced by the previous functions.
+ 	(get_xref_files): Rename as...
+ 	(xref_files_get): this.
+ 	(run_index): Use generated_files_get.
+ 	(clean): Rename as...
+ 	(mostly_clean): this.
+ 	Strengthen.
+ 	($t2ddir): Try to have a `local' absolute file name, not a fully
+ 	absolute one to avoid very very long file names.
+ 	* util/texi2dvi.test: Exercise --mostly-clean.
+ 
+ 2005-12-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (key): DELETE, not DEL, per rms.
+ 
+ 2005-12-19  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (run_conversion): Rename as...
+ 	(run_core_conversion): this.
+ 	(compile): New.
+ 	This is the former main program.
+ 	(clean): New.
+ 	Use it.
+ 	(language): Compute it in the main loop.
+ 
+ 2005-11-18  Akim Demaille  <akim@epita.fr>
+ 
+ 	Factor the handling of list of directories.
+ 	* util/texi2dvi (list_append, list_prefix, list_infix)
+ 	(list_dir_to_abs, absolute): New.
+ 	Use them.
+ 	($miincludes, $txincludes): Remove, replaced by...
+ 	($includes): this one.
+ 	(func_dirname): Don't use fd6 that might not be set up yet.
+ 	(run_to_html): Use $includes.
+ 
+ 2005-11-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Top Node Example): missing @end iffnottex.
+ 	(The Top Node): @end ifnottex, not ifnottext.
+ 	From Steve Peter.
+ 
+ 2005-11-10  Akim Demaille  <akim@epita.fr>
+ 
+ 	Make the naming conventions more consistent and shorter.
+ 	* util/texi2dvi (oformat): Rename as...
+ 	(out_lang): this.
+ 	(filename_input, filename_src, filename_xtr, filename_rcd,
+ 	filename_noext, filename_dir, filename_dir_abs): Rename as...
+ 	(in_input, in_src, in_xtr, in_rcd, in_noext, in_dir, in_dir_abs)
+ 	this.
+ 	(in_base, out_name, out_dir, out_dir_abs, out_base, out_noext): New.
+ 	(output_base_name): New.
+ 	(move_to_dest): Use it.
+ 	(run_tex): Catch invalid calls.
+ 	Be robust to inclusion in subdirs.
+ 	(run_bibtex): Simplify when this is not a LaTeX file.
+ 	(run_tex_suite): cycle is local.
+ 	(input_file_name_decode): New, extracted from the main loop.
+ 	Some variables are now local.
+ 
+ 	Use the output file name as root for the t2d directory name.
+ 	* util/texi2dvi (t2ddir): Use $out_noext, no $in_noext.
+ 	* util/texi2dvi.test: Adjust.
+ 
+ 	Be robust to inclusion in subdirs.
+ 	* util/texi2dvi (run_tex): Look for \include of files in subdirs.
+ 	(run_bibtex): Citations might be in another aux file.
+ 
+ 	Support html.
+ 	* util/texi2dvi (run_to_html): New.
+ 	(run_conversion): New, extracted from the main loop.
+ 	Support --html.
+ 
+ 
+ 2005-11-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Def Cmd Template): mismatched example and output.
+ 	Report from: Steve Peter, 09 Nov 2005 12:46:02 -0500.
+ 
+ 2005-10-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (insert_commands): missing $ in case statement;
+ 	from report by Simon Josefsson.
+ 
+ 2005-10-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\doignoretext): ignore characters after
+ 	ignored conditionals, e.g., @end ifset.  Otherwise the newline
+ 	following results in a blank line being output in verbatim
+ 	environments.
+ 	From: Bob Wilson, 5 Oct 2005 21:22:33 -0700.
+ 
+ 2005-10-05  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi.test: Make sure --build=clean passes.
+ 	* util/texi2dvi: Fix the handling of --build.
+ 
+ 2005-10-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texindex.c (maketempname): use mode 0600.
+ 
+ 2005-10-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texindex.c (maketempname): avoid race condition.
+ 	(concat): now take three args, so rename to concat3.
+ 	Debian bug 328365.
+ 
+ 2005-09-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.ac: reenable utils/defs generation, now that we have
+ 	the files below.
+ 
+ 2005-09-29  Akim Demaille  <akim@epita.fr>
+ 
+ 	* doc/texinfo.txi: Document pdftexi2dvi.
+ 	* doc/Makefile.am (common_texi2dvi_deps): New.
+ 	Handle texi2pdf and pdftexi2dvi.
+ 	* util/texi2dvi: Stop supporting shortened long options, as it's
+ 	causing troubles.  Short options are here anyway.
+ 	(local): Provide a default implementation if not supported by the
+ 	shell.
+ 	(findprog): Use return.
+ 	(get_xref_files): Rename as...
+ 	(xref_files_get): this.
+ 	(xref_files_changed, xref_files_save): New.
+ 	(run_tex_suite): New.
+ 	(move_to_dest): Use `local'.
+ 	($textra_cmd): Compute it in...
+ 	(insert_commands): here.
+ 
+ 	* tests/defs.in, tests/texi2dvi.test, tests/local.test: New.
+ 	* configure.ac, tests/Makefile.am: Adjust.
+ 
+ 2005-09-22  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi ($build_dir): New.
+ 	(--build-dir): New.
+ 	($usage): Adjust.
+ 	($line_error): New.
+ 	AUC-TeX wants regular TeX error messages, so don't require
+ 	GNU style error message when under AUC-TeX.
+ 	($filename_dir_abs): New.
+ 	($t2ddir): When the build-dir is specified, make sure to avoid
+ 	collisions between files with equal names, but in different
+ 	directories.
+ 	($command_line_filename): Decode possible TeX commands.
+ 	* util/Makefile.am (pdftexi2dvi): New.
+ 
+ 2005-09-20  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Be sure to return to the current directory even
+ 	after obeying --clean.
+ 
+ 2005-09-17  Sergey Poznyakoff  <gray@Mirddin.farlep.net>  (tiny change)
+ 
+ 	* makeinfo/cmds.c (handle_include): don't expand @verbatiminclude,
+ 	so that texi2dvi will pass it through to texinfo.tex.  Otherwise
+ 	the dvi/pdf output is wrong.
+ 
+ 2005-09-05  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex: Fix typo in a comment.
+ 
+ 2005-09-05  Karl Berry  <karl@gnu.org>  (tiny change)
+ 
+ 	* util/texi2dvi: look for btxmac.tex's "Undefined citation" message.
+ 	Then texi2dvi works with (e)plain, too, by setting LATEX=tex.
+ 	Report from Oleg Katsitadze.
+ 
+ 2005-08-31  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Fix white space issues.
+ 	Quote uses of directory and file names.
+ 	Don't expect "export var=val" to work (e.g., SunOS 5.9): do it in
+ 	two steps.
+ 	($tex_help): Compute it where needed (run_tex), in particular so
+ 	that $tex is defined when used.
+ 	(func_dirname): New.
+ 	($quiet, $verb): Now regular true/false variables.
+ 	(verbose): Adjust.
+ 	(run_tex): When we introduced white space by making absolute file
+ 	names, circumvent TeX's phobia of space in file names by
+ 	introducing a symbolic link.
+ 	(filename_dir): Keep it relative when not $tidy.
+ 
+ 2005-08-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xref.c (cm_xref): if the following wrong char is ),
+ 	suggest @pxref.  Suggested by Kevin Ryde, 30 Aug 2005 09:23:39 +1000.
+ 
+ 2005-08-17  Predrag Rakic  <pec@uns.ns.ac.yu>
+ 
+ 	* doc/txi-sr.tex: Serbian translation.
+ 
+ 2005-08-15  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\normalturnoffactive): Now contains the body of
+ 	\turnoffactive.  Don't explicitly restore the original value of active \
+ 	---just let it be.
+ 	(\turnoffactive): Can now be redefined as \normalturnoffactive
+ 	  \otherbackslash.
+ 	(\atdummies): All calls were followed by \turnoffactive; remove that
+ 	  and add \otherbackslash to the definition, since it already calls
+ 	  \normalturnoffactive indirectly.
+ 	(\xrefX): One of the calls of \refx missed the second parameter;
+ 	  fix that.
+ 	(\commondummiesnofonts): No need to make ~ other for the definition;
+ 	  it contains only \~ now.
+ 	(\backChar, \plusChar, \underChar): Nuke.
+ 	(\colonChar, \commaChar, \dotChar, \exclamChar, \questChar, \semiChar):
+ 	  Move just before the definition of ...
+ 	(\plainfrenchspacing): ... since it's the only place where it's used.
+ 	(\activebackslash): Remove both definitions; the first one was shadowed
+ 	  by the second one; and the second one can easily be eliminated; it
+ 	  was used only on one place.
+ 	(\backslashlparen): No need for this; \realbackslash( is enough.
+ 	(\backslashrparen): Likewise.
+ 
+ 2005-08-14  Per Bothner  <per@bothner.com>
+ 
+ 	* makeinfo/index.c (cm_printindex): Don't defer index if docbook,
+ 	since we don't need it and it prevents output to a pipe.
+ 
+ 	* makeinfo/insertion.h (default_item_function): New declaration.
+ 	* makeinfo/insertion.c (default_item_function): New variable.
+ 	(begin_insertion): Use default_item_function for @bullet default.
+ 	(pop_insertion): Check if item_function is default_item_function.
+ 	* makeinfo/xml.c (xml_begin_table): Don't emit mark attribute
+ 	if the item_function was implied.
+ 
+ 2005-08-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\writetocentry, ...): restore calls to
+ 	\turnoffactive after \atdummies removed in the July 1 change (v.194).
+ 	\turnoffactive and \normalturnoffactive are not the same -- we need
+ 	actual backslash characters in the pdf destinations and .aux and
+ 	index files, not expansions.  (I'm not sure we ever need
+ 	\normalturnoffactive, actually.)
+ 
+ 2005-08-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info.texi: merge changes from Emacs, by Juri.
+ 
+ 2005-08-06  Per Bothner  <per@bothner.com>
+ 
+ 	* makeinfo/index.c (cm_printindex): Don't xml_insert_indexentry if
+ 	docbook, since we'll let the doxbook processor generate the index.
+ 	* makeinfo/xml.h (xml_sort_index, xml_insert_indexentry): Remove.
+ 	* makeinfo/xml.c (xml_begin_index): Don't actually do any formatting.
+ 	(xml_end_index):  Don't do anything except close <index>.
+ 	(xml_insert_indexentry): Remove no-longer-used function.
+ 
+ 	* makeinfo/xml.c (element docbook_element_list): The docbook <index>
+ 	element should *not* be contained_in_para.
+ 
+ 	* makeinfo/xml.c (xml_begin_document): Add id attribute to top-level
+ 	book if emitting docbook.
+ 
+ 2005-08-05  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* configure.ac: (auto)update.
+ 	* info/Makefile.am, makeinfo/Makefile.am, utils/Makefile.am: s/INCLUDES/AM_CPPFLAGS/
+ 	* lib/Makefile.am (INCLUDES): Remove.
+ 
+ 2005-08-05  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\Efloat): Revert the previous change, ...
+ 	(\commondummiesnofonts): ... instead, add the three commands here.
+ 
+ 2005-08-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\Efloat): make \xref, \pxref, \ref no-ops.
+ 	Report from: Aaron S. Hawley, 3 Aug 2005 19:46:40 -0400.
+ 	(But what about all the other commands, don't we need to no-op
+ 	everything?)
+ 
+ 2005-07-31  Per Bothner  <per@bothner.com>
+ 
+ 	* makeinfo/cmds.c (cm_code): For html output use lsquo and rsquot
+ 	entities around @samp.
+ 
+ 2005-07-10  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\texinfoversion): Update.
+ 
+ 2005-07-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (verbatim): mention @verbatim inside
+ 	@smallformat, now that it works.
+ 
+ 2005-07-04  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\commondummies): Remove \unsepspaces, it's already
+ 	  called by \normalturnoffactive.  Move \normalturnoffactive near the
+ 	  end of the macro.
+ 
+ 2005-07-01  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex: Remove all occurences of \normalturnoffactive or
+ 	  \turnoffactive attached to \indexdummies or \atdummies, since they
+ 	  are redundant; \indexdummies and \atdummies both call \commondummies,
+ 	  which calls \normalturnoffactive, which calls \turnoffactive.
+ 	(\indexdummies, \atdummies): Move the definitions of \definedummy* ...
+ 	(\commondummies): ... here; they now take a control sequence as their
+ 	  parameter; all callers fixed.
+ 	(\indexnofonts): Fixed the definitions of \definedummy* macros.
+ 	(\indexdummies): Define \escapechar = `\\ ...
+ 	(\onepageout): ... thus remove it from here.
+ 	(\macrolist): Now has the form of \definedummyword\macro1...  It also
+ 	  gathers user-defined aliases, so there is ...
+ 	(\addtomacrolist): ... a new macro ...
+ 	(\macroxxx, \aliasyyy): ... caled from these two.
+ 	(\unmacro, \unmacrodo): Adapted to the new form of \macrolist.
+ 	(\turnoffmacros, \emptyusermacros): Removed, mere \macrolist is enough
+ 	  now.
+ 
+ 2005-07-01  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\nonarrowing): Update the description.
+ 	(\cartouche): Set \nonarrowing to "t", not \comment.
+ 	(\nonfillstart, \quotation): Reset \nonarrowing.
+ 
+ 2005-06-30  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\setupverbatim): Use \nonarrowing to declare that
+ 	we don't want to narrow the environment.
+ 
+ 2005-06-24  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Move the computation of $makeinfo to...
+ 	(run_makeinfo): here.
+ 
+ 	* util/texi2dvi (tex, bibtex, texindex): Move their computation to...
+ 	(run_tex, run_bibtex, run_texindex): here, to clarify.
+ 	(move_to_dest): New.
+ 	(run_tex): Use it to copy the result back.
+ 	Don't bother exporting the log.
+ 
+ 2005-06-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\., \!, \?): include \space after setting
+ 	\spacefactor, else all space disappears.
+ 	Report from Jim Meyering, 09 Jun 2005 23:03:22 +0200.
+ 
+ 2005-06-10  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (run_tex): Updating the output is also needed when
+ 	-o is used, not just when $tidy.
+ 
+ 2005-06-09  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Support --tidy, a new build mode which lets all the
+ 	compilations happen in a local directory.  This is
+ 	similar to using --clean, but the files are preserved.  The
+ 	benefits are:
+ 	- the output is updated when each tex compilation is completed:
+ 	  - to allow interactive viewing
+ 	  - to preserve the previous output is the compilation fails
+ 	- if the compilation fails, the previous state is preserved.
+ 	- a fixed set of files to clean in this end (this directory)
+ 	- complete independence between DVI and PDF compilations.
+ 
+ 	(comment_iftex_sed, uncomment_iftex_sed): No
+ 	longer external files, but simple strings named...
+ 	(comment_iftex, uncomment_iftex): like this.
+ 	(utildir): Remove.
+ 
+ 	Make the structure clearer by introducing auxiliary functions.
+ 	* util/texi2dvi (run_bibtex, run_index, insert_commands)
+ 	(run_recode, run_thumpdf): New.
+ 	Extracted from the main loop.
+ 
+ 	Simplify some variable handling.
+ 	* util/texi2dvi (clean, debug): Now true/false Booleans.
+ 	Adjust dependencies.
+ 
+ 	Introduce a cycle counter.
+ 	* util/texi2dvi (cycle): New, to inform the user about the number
+ 	of compilation cycles.  That's also a nice tool to help debugging:
+ 	look for "cycle" in the trace to go from cycle to cycle.
+ 
+ 	Introduce the work dir, and use it.
+ 	* util/texi2dvi (ensure_dir, workdir): New.
+ 	(tmpdir_src, tmpdir_xtr, tmpdir_rcd, tmpdir_bak): Replace with...
+ 	(work_src, work_xtr, work_rcd, work_bak): these.
+ 	Adjust dependencies.
+ 	(filename_src, filename_xtr, filename_rcd, filename_bak): these.
+ 	(run_tex): Update the output.
+ 	Remove this task from the core of the loop.
+ 	(get_xref_files): Simplify by considering all the files around,
+ 	instead of try to select only those that correspond to a given
+ 	pattern.
+ 	Also, there's no reason to build the string result and then echo
+ 	it, just directly echo all the components.
+ 	(get_index_files): New.
+ 	(build_mode): New.
+ 	Adjust all dependencies (tex_help, command line parsing, clean,
+ 	tidy).
+ 
+ 2005-06-05  Karl Berry  <karl@gnu.org>  (tiny change)
+ 
+ 	* doc/texinfo.txi: typos from Christian von Schultz,
+ 	5 Jun 2005 16:45:48 +0200.
+ 
+ 2005-06-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/man.c (get_manpage_contents): pass -a to man if no explicit
+ 	section is found.  Suggestion from lacall@micron.com on
+ 	help-texinfo, 1 Jun 2005 16:44:20 -0600.
+ 
+ 2005-05-28  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.14.5.
+ 
+ 2005-05-25  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* util/texi2dvi (findprog): Rewrite the test for an executable
+ 	again, per suggestion of Eric Blake.  Restore IFS earlier.
+ 
+ 2005-05-24  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* util/texi2dvi (findprog): Rewrite the test for an executable and
+ 	the explanation above it.
+ 
+ 2005-05-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.texi (\allowcodebreaks, \kbdinputstyle): use \txiarg
+ 	instead of \arg; \arg already has a meaning in plain TeX (the
+ 	complex math function "arg").
+ 	Report from: Brian Gough, 19 May 2005 19:48:57 +0100.
+ 
+ 2005-05-19  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* configure.ac (AM_GNU_GETTEXT): The comment should not recommend
+ 	calling gettextize with --intl.
+ 
+ 2005-05-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (First Node): ok for (dir) to be the prev node,
+ 	and fix missing example.
+ 	From from Christian von Schultz, 13 May 2005 10:37:26 +0200.
+ 
+ 2005-05-10  Matthias Kilian  <kili@outback.escape.de>
+ 
+ 	* makeinfo/cmds.c, makeinfo/defun.c, makeinfo/insertion.c,
+ 	makeinfo/lang.c, makeinfo/macro.c, makeinfo/multi.c,
+ 	makeinfo/node.c, makeinfo/xml.c: More bounds checking.
+ 
+ 2005-05-09  Andreas Vögele  <voegelas@gmx.net>  (tiny change)
+ 
+ 	* makeinfo/multi.c (output_multitable_row): don't look past
+ 		beginning of cell memory.  bug-texinfo mail,
+ 		1 May 2005 10:00:33 +0200.
+ 
+ 2005-05-09  Christian von Schultz  <admcvs@Skolwebben.tibro.se>  (tiny change)
+ 
+ 	* doc/texinfo.txi (Emacs chapter): wrong key bindings for
+ 		narrow-to-page, up-list, and texinfo-insert-braces.
+ 		bug-texinfo mail, 9 May 2005 10:01:06 +0200.
+ 
+ 2005-04-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: remove ls(1) and rcsintro(1) references at rms'
+ 	request.  No (n) in GNU.
+ 
+ 2005-04-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.ac (AM_GNU_GETTEXT): switch to [external], since this
+ 	seems the most popular method nowadays.
+ 	(AC_CONFIG_FILES): remove intl/Makefile, also m4/Makefile.
+ 	* Makefile.am (SUBDIRS): remove intl and m4.
+ 	* intl/*: remove.
+ 	* m4/Makefile.am: no longer needed.
+ 	* lib/system.h (locale.h): unconditionally include, else syntax
+ 	error from system locale.h.
+ 
+ 	* gettext 0.14.4.
+ 
+ 2005-04-22  Per Bothner  <per@bothner.com>
+ 
+ 	* makeinfo/xml.c (docbook_element_list): Map EMAILADDARESS to "email".
+ 	* makeinfo/xref.c (cm_email): For docbook, if there is no name,
+ 	use <email> tag, rather than <ulink>.  If there is a name, we must use
+ 	<ulink>, but we need to explicitly escape expansion of addr.
+ 
+ 2005-04-22  Per Bothner  <per@bothner.com>
+ 
+ 	* makeinfo/xml.c (docbook_element_list, xml_begin_defterm): Improved
+ 	docbook translation of definition commands: Use <synopsis> for the
+ 	summary line, and don't include it (only the body) in a <blockquote>.
+ 	Wrap the whole definition in an <informalfigure>.
+ 
+ 2005-04-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: also accept .drv and .dtx as LaTeX.
+ 	Suggestion from Wybo Dekker.
+ 
+ 2005-04-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\smallerbook): new (test) definition for 6x9,
+ 		which is what lulu.com (print-on-demand) accepts.
+ 
+ 2005-04-05  Matthias Kilian  <kili@outback.escape.de>  (tiny changes)
+ 
+ 	* makeinfo/html.c (rollback_empty_tag): be sure to avoid negative
+ 	array indexing.
+ 	* makeinfo/multi.c (env): make static.
+ 	* makeinfo/tests/cond, html-extrali, include-value: use grep -c,
+ 	instead of piping to wc -l, since that avoids the output files
+ 	being treated as binary on BSD.
+ 
+ 2005-04-04  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* makeinfo/makeinfo.c (usage): Add indentation to the examples and
+ 	  fix the indentation of the --footnote-style option, so that
+ 	  help2man can recognize these; also some cosmetic indentation fixes.
+ 	* doc/Makefile.am (makeinfo.1): Add a sed command to postprocess
+ 	  the generated manpage.
+ 	* doc/makefile.1: Refresh.
+ 	Thanks to Jim Razmus for the bug report.
+ 
+ 2005-04-04  Torsten Bronger  <bronger@physik.rwth-aachen.de>  (tiny changes)
+ 
+ 	* doc/texinfo.txi: Fix several typos.
+ 
+ 2005-04-04  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/Makefile.am: Fix my previous patch, so that the rules work; and
+ 	  don't modify $PATH, it's simpler to give help2man the full pathname.
+ 
+ 2005-03-31  Per Bothner  <per@bothner.com>
+ 
+ 	* makeinfo/makeinfo.c (maybe_escaped_expansion): Don't start a new
+ 	para during string expansion.
+ 
+ 	* makeinfo/xml.c (xml_element_dummy): Dummy variable so that enum
+ 	names get emitted in debug symbols, which helps debugging.
+ 
+ 2005-03-31  ezra peisach <epeisach@med-xtal.bu.edu>  (tiny change)
+ 
+ 	(bug-texinfo mail 30 Mar 2005 16:40:24 -0500.)
+ 	* defun.h (get_base_type): now takes an enum insertion_type.
+ 	  defun.c (get_base_type): use enum instead of int internally.
+ 	  (defun_internal): takes enum insertion_type instead of int and use
+ 			  enum internally.
+ 	 (cm_defun): ditto.
+ 	* insertion.c (do_enumeration, end_insertion, cm_end): ditto.
+ 
+ 2005-03-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texinfo.dtd: remove -- and ^L from inside comments, since
+ 	apparently XML cannot handle them.
+ 	Report from Torsten, bronger@physik.rwth-aachen.de.
+ 
+ 	* configure.ac (AC_INIT): quote address.
+ 	(AC_PREREQ): move to after AC_INIT, per current recommendation.
+ 
+ 2005-03-25  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/Makefile.am: help2man should use the native binaries in the
+ 	  build tree, not the one found on $PATH; thanks to Thomas Schwinge
+ 	  for reporting the problem.
+ 	  The rules also make sure the binaries are up-to-date, and generate
+ 	  the man pages in the source tree, not build tree.
+ 	  There is no need to depend on MAINTAINER_MODE, because help2man is
+ 	  handled by the `missing' script.
+ 	(INSTALL_INFO): Comment out; it's not used.
+ 	* Makefile.am (distcleancheck_listfiles): Removed this variable, it
+ 	  doesn't seem to be needed.
+ 	* configure.ac (AC_INIT): Add our bug report address.
+ 
+ 2005-03-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (allowcodebreaks): new node.
+ 	* makeinfo/cmds.c: define @allowcodebreaks (as a no-op).
+ 	* doc/texinfo.tex (\allowcodebreaks): new macro.
+ 	(\code): use it.
+ 	(\realunder, \keywordtrue, \keywordfalse, \ifallowcodebreaks):
+ 	helpers.
+ 
+ 2005-03-15  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.14.3.
+ 
+ 2005-03-12  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.14.2.
+ 
+ 2005-03-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* process_css_file: fclose the file when we're through with it,
+ 	to avoid fd leaks.
+ 	From: Matthias Kilian <kili@outback.escape.de>,
+ 	11 Mar 2005 19:42:27 +0100.
+ 
+ 2005-03-08  Keith Marshall  <keith.d.marshall@ntlworld.com>
+ 
+ 	* makeinfo/tests/no-headers: ($nulldev): new variable.
+ 	  set it to `/dev/null' normally, but to `nul' on Win32,
+ 	  so Cygwin doesn't fail this test, in `make check'.
+ 
+ 2005-03-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/filesys.h (DEFAULT_INFOPATH): make . first in the path,
+ 	instead of last.  That way info -f foo/bar finds foo/bar.info.
+ 	From: Bruno Haible <bruno@clisp.org>, 8 Mar 2005 13:45:28 +0100.
+ 
+ 2005-03-07  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Fix -o when -c is not passed.
+ 	Don't make thumbpdf failures fatal.
+ 
+ 2005-03-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (General Index): Rename from Concept Index.
+ 
+ 2005-02-28  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* util/texi2dvi: When running bibtex, improve quoting and again,
+ 	  we can save a process by not running ls.  (Thanks, Akim.)
+ 
+ 2005-02-24  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* util/texi2dvi (get_xref_files): No need to use ls, save a process.
+ 
+ 2005-02-22  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (absolute_filenames): Skip nonexistent directories.
+ 	Factor its invocations for TeX envvars.
+ 	(fd6): Document and use more extensively.
+ 	(get_xref_files): Accept bu[0-9]#.aux files from the bibunits
+ 	package.
+ 	Also adjust the bibtex invocation.
+ 
+ 2005-02-19  Karl Berry  <karl@gnu.org>
+ 
+ 	The main user-visible change of all this is to make
+ 	section names with \ characters work in pdf outlines.  As a side
+ 	effect, .toc files now use @ instead of \ for the escape char.
+ 	* doc/texinfo.tex (\backChar, \plusChar): new \chardef's.
+ 	(\activebackslash): debugging macro.
+ 	(\activebackslashdouble): new macro.
+ 	(\HyPsdSubst): replace tokens.
+ 	(\HyReturnAfterFi): helper.
+ 	(\backslashparens): new macro, change () to \( and \) resp.
+ 	(\backslashlparen, \backslashrparen): new macros.
+ 	(\pdfmkdest): double backslashes, backslashparens, and @ for escape.
+ 	(\dopdfoutline): similarly.
+ 	(\pdfmakeoutlines): \readdatafile on the .toc the first time,
+ 	 instead of straight \input.
+ 	(\makelinks, \picknum, \pn, \ppn, \ppnn, \pdfmklink): rm.
+ 	(\writetocentry): now we use @ for escape in the .toc instead of \.
+ 	(\activecatcodes, \readtocfile): new macros.
+ 	(\startcontents): don't swap \ and @ catcodes from Texinfo.
+ 	(\setref, \dofloat): no need to call \otherbackslash.
+ 	(\xrefX): no need to call \otherbackslash, also double backslashes
+ 	and backslash parens for pdf output.
+ 	(\readauxfile): generalize and rename to \readdatafile.
+ 	(\doublebackslash): new macro.
+ 
+ 	* util/texi2dvi: do not have -o (used by Autoconf/make) imply
+ 	--clean.  That results in TeX always running at least twice, since
+ 	the aux files are stuck (and removed) in the temp directory for clean.
+ 
+ 2005-02-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: call absolute_filenames on BIBINPUTS and
+ 	BSTINPUTS, too.  te, 17 Feb 2005 20:10:23 +0100.
+ 
+ 2005-02-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (frenchspacing): new code.
+ 	* makeinfo/cmds.c (command_table): add frenchspacing.
+ 	(cm_frenchspacing): new fn.
+ 	* util/texinfo.dtd (frenchspacing): new element.
+ 	(option.cmds): new entity; use in Inline.phrase, I guess.
+ 	* makeinfo/xml.h (xml_element): add FRENCHSPACING.
+ 	* makeinfo/xml.c (docbook_element_list, texinfoml_element_list): same.
+ 	* doc/texinfo.tex (\frenchspacing): new macro for new command.
+ 	(\onword, \offword): args to that command.
+ 	(\plainfrenchspacing, \plainnonfrenchspacing): the commands which
+ 		really do the work; change calls.
+ 	(\endofsentencespacefactor): set in \plain...frenchspacing to 3000
+ 		or 1000 as appropriate.
+ 	(\., \!, \?): use here, instead of hardwiring 3000.
+ 
+ 2005-02-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (findprog): also check for foo.exe, for Cygwin.
+ 
+ 2005-02-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/dir.c (dir_file_list_entry_type): use dev_t and ino_t
+ 	instead of unsigned long.  (Breaks on cygwin.)  David Hunter
+ 	bug-texinfo mail, 08 Feb 2005 23:05:37 -0500.  Paul Eggert says
+ 	these types should were present in 7th Edition and consequently
+ 	should be portable to any Unixish system.
+ 
+ 2005-02-09  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (report): New.  Use it.
+ 	(fatal): Take the exit status as argument.
+ 	Use report.
+ 	(run_tex): New function to factor the two tex invocations.
+ 	Move the handling of tex arguments in here to improve locallity.
+ 	Enforce the batch mode by branching /dev/null to its stdin.
+ 
+ 2005-02-05  Per Bothner  <per@bothner.com>
+ 
+ 	* makeinfo/xml.c (docbook_element_list): Add two missing entries.
+ 
+ 	* makeinfo/xml.c (xml_begin_document): Check for mismatch between
+ 	enum xml_element and texinfoml_element_list/docbook_element_list.
+ 
+ 	bug-texinfo-mail, 05 Feb 2005 00:13:44 -0800.
+ 
+ 2005-02-05  Per Bothner  <per@bothner.com>
+ 
+ 	* makeinfo/xref.c (cm_uref): Ulink urls in Docbook need to be
+ 		html-escaped.  bug-texinfo mail, 05 Feb 2005 00:57:55 -0800.
+ 
+ 2005-01-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\chapmacro) <Ynothingkeyword>: failed to
+ 	\gdef\thischapter inside the group, resulting in "Chapter 1:"
+ 	appearing in the headline of an @unnumbered.
+ 	help-texinfo bug report from: <tdovera@libero.it>,
+ 	27 Jan 2005 11:45:31 +0100.
+ 
+ 2005-01-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi <verbose>: rename variable to verb, since
+ 		functions and variables apparently cannot have the same
+ 		name on Digital UNIX 4.0E, AIX 3.2.5 (325102), ULTRIX V4.5.
+ 		(and related releases, presumably).
+ 	<pgm>: simplify sed expression to avoid \| operator, which does
+ 	        not work on above platforms (and also be more correct).
+ 	<RUNNING_KSH>: switch to ksh under Ultrix.
+ 	All of this stuff reported by Bernhard Simon <simon@zid.tuwien.ac.at>
+ 	and te.
+ 
+ 2005-01-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile (texmf_dvips, texmf_pdftex_misc): new paths to
+ 	match teTeX.  tex-k mail from peb, 25 Jan 2005 15:45:37 +0100.
+ 
+ 2005-01-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (findprog): split $PATH at $path_sep, not spaces.
+ 	(path_sep): don't let ComSpec fool us under cygwin.
+ 	Report from: Eric Blake <ebb9@byu.net>, 19 Jan 2005 05:36:26 -0700.
+ 
+ 	* doc/texinfo.txi (euro): mention the font we use for the Euro
+ 	symbol and where to get it.  help-texinfo report from:
+ 	christoph.sobotka@utanet.at, 19 Jan 2005 21:29:20 +0100.
+ 
+ 	* doc/info-stnd.texi (Top): per rms, don't use @insertcopying here.
+ 	* doc/texinfo.txi (Top): Likewise.  Also, remove recommendations
+ 		to use it.
+ 
+ 2005-01-20  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Have a consistent function declaration style.
+ 	(verbose, absolute_filenames): New functions.
+ 	Use them.
+ 	Report TEXINPUTS and INDEXSTYLE when verbose.
+ 
+ 2005-01-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.5, doc/info.5: define and use .EX/.EE instead of
+ 		.RS/RE, to placate esr.
+ 
+ 	* util/texi2dvi (findprog): make sure test -x isn't returning true
+ 	for a directory.  From Stepan and others, 20 Jan 2005 12:35:08 +0100.
+ 
+ 2005-01-16  Torsten Bronger  <bronger@physik.rwth-aachen.de>  (tiny change)
+ 
+ 	* makeinfo/insertion.c (handle_verbatim_environment): do HTML
+ 		conversions, to make ]]> work.
+ 	* makeinfo/xml.c (xml_add_char): also escape >.
+ 
+ 2005-01-16  Torsten Bronger  <bronger@physik.rwth-aachen.de>  (tiny change)
+ 
+ 	* makeinfo/cmds.c (cm_tie): use &nbsp; for HTML, &#xa0; for
+ 		XML/Docbook.
+ 
+ 2005-01-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xref.c (cm_xref): output *note for @ref, instead of
+ 		*Note.  @ref is always used in the middle of a sentence.
+ 	* doc/texinfo.txi (pxref): rewrite, since now it can be used at
+ 	the ends of sentences.
+ 	(ref): likewise rewrite.
+ 
+ 2005-01-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs.sh: eval $cmd instead of just $cmd, so allow for
+ 		embedded quotes.
+ 	From: Sergey Poznyakoff <gray@Mirddin.farlep.net>,
+ 	11 Jan 2005 16:16:32 +0200.
+ 
+ 2004-12-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* Version 4.8.
+ 
+ 2004-12-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.7.94.
+ 
+ 	* makeinfo/xref.c: doc fix.
+ 
+ 2004-12-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/html.c (cm_node) <html>: need old-style names in the normal
+ 	(not no_headers) html case, too, of course.
+ 	(add_html_names): canon_white the new name, too.
+ 
+ 2004-12-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.7.93.
+ 
+ 	* automake 1.9.4.
+ 
+ 	* makeinfo/xml.c (try_docbook_image): new fn.
+ 	(xml_insert_docbook_image): call it, trying additional formats
+ 	pdf, svg, etc.
+ 	* makeinfo/makeinfo.c (cm_image): check for gif too.
+ 	http://www.gnu.org/philosophy/gif.html says:
+ 	"we can and will include support for displaying GIF files in GNU
+ 	 software."  Leaving it undocumented, though.
+ 	Based on patch from Jens Elkner, 18 Dec 2004 01:56:28 +0100.
+ 
+ 2004-12-19  Torsten Bronger  <bronger@physik.rwth-aachen.de>
+ 
+ 	* util/texinfo.dtd: define most entities, add <neos>.
+ 
+ 2004-12-17  Juan M. Guerrero  <st001906@hrz1.hrz.tu-darmstadt.de>
+ 
+ 	* djgpp/config.bat: remove files like coXXXXXX.tmp created
+ 	in the top_srcdir by the gl_FUNC_MKSTEMP test.
+ 
+ 2004-12-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.7.92.
+ 
+ 	* util/texinfo.dtd: merge with makeinfo/texinfo.dtd.
+ 	* makeinfo/texinfo.dtd, makeinfo/texinfo.xsl: remove.
+ 
+ 2004-12-15  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* Makefile.am (EXTRA_DIST): Removed po/Makevars.template, sorry.
+ 
+ 2004-12-15  Juan M. Guerrero  <st001906@hrz1.hrz.tu-darmstadt.de>
+ 
+ 	* djgpp/config.sed: adjust for new autoconf.
+ 	* makeinfo/node.c (enumerate_filename): make dos_file_names const
+ 	instead of static, since it may involve a fn call to pathconf.
+ 
+ 2004-12-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* Makefile.am (EXTRA_DIST): include ChangeLog.46, README.dev,
+ 	and po/Makevars.template.  From Stepan.
+ 
+ 2004-12-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (inforef): try to explain possible uses more
+ 	thoroughly.
+ 	From: Luc Teirlinck, 13 Dec 2004 21:45:58 -0600.
+ 
+ 	* doc/texinfo.txi (pxref): more explanation.
+ 	* doc/info-stnd.texi (Basic Windows): put pxref in parens.
+ 	help-texinfo mail from adl, 13 Dec 2004 17:07:50 +0100.
+ 
+ 2004-12-13  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* info/echo-area.c (DECLARE_INFO_COMMAND): Add intermediate cast
+ 	to avoid warning.
+ 	* info/infokey.c (compile): Likewise.
+ 	* info/session.c (forward_move_node_structure): Likewise.
+ 	(DECLARE_INFO_COMMAND): Likewise.
+ 
+ 	* makeinfo/makeinfo.c (init_paragraph): Don't use free_and_clear
+ 	to avoid strict aliasing issue.
+ 
+ 	* makeinfo/cmds.c (cm_center): Avoid strict aliasing issue.
+ 
+ 2004-12-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (HTML Cross-reference Command Expansion): add
+ 	@euro{} -> U+20AC.  texinfo-pretest mail from Patrice,
+ 	12 Dec 2004 23:49:50 +0100.
+ 
+ 2004-12-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (makeinfo options): don't be so suggestive about
+ 	skipping xref validation.
+ 	emacs-devel mail from: Luc Teirlinck, 12 Dec 2004 13:02:11 -0600.
+ 
+ 2004-12-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.7.91.
+ 
+ 	* info/echo-area.c, info/infokey.c, info/session.c: omit useless
+ 	casts to intptr_t, since we're just casting to (void *) next.
+ 	intptr_t is not defined with gcc 3.04 on Tru64 Unix V5.1
+ 	(This whole vararg stuff needs to be redone correctly.)
+ 	Report from: Svend Tollak Munkejord (via te)
+ 	8 Dec 2004 17:15:17 +0100.
+ 
+ 	* doc/texinfo.txi (ref): rewrite last two redundant paragraphs.
+ 
+ 2004-12-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Macro Details): document @c kludge in macro
+ 	definitions to work around some newline problems.  (From Werner.)
+ 
+ 2004-12-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/html.c (add_escaped_anchor_name): prefix g_t if the
+ 	nodename begins with a nonletter.  Ugh.
+ 	* doc/texinfo.txi (HTML Xref Node Name Expansion): document this.
+ 	http://ff0.org/pipermail/texinfo-pretest/2004-December/000210.html
+ 
+ 	* doc/texinfo.txi (HTML Xref 8-bit Character Expansion): define
+ 	behavior for Unicode code points above 0xfff.
+ 
+ 	* makeinfo/makeinfo.c (reader_loop): <wbr> didn't make it into
+ 	HTML 4, remove it.  Sigh.
+ 	texinfo-pretest mail from wl, 05 Dec 2004 23:39:05 +0100.
+ 
+ 2004-12-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.ac (install-warnings): simplify default case.  From te.
+ 
+ 2004-12-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.7.90.
+ 
+ 	* util/texi2dvi (recode): new option, off by default.
+ 	Unconditionally calling recode seems problematic, when there
+ 	hasn't been a release for years and its Texinfo support is less than
+ 	perfect.
+ 
+ 2004-11-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Quotations and Examples): @quotation does not
+ 	reduce interparagraph spacing.
+ 
+ 	* makeinfo/node.c (cm_node) <html>: do not bother calling
+ 	add_html_nodes in the split case, the filename is wrong.
+ 
+ 2004-11-29  Karl Berry  <karl@gnu.org>
+ 
+ 	Support for writing <a name="..."> using the old-style node name
+ 		to HTML name conversion, to keep the gcc folks happy.
+ 	* makeinfo/node.c (add_html_names): new routine, factoring out
+ 	common code (plus new code) from cm_node.
+ 	(cm_node) <html>: call it.
+ 	* makeinfo/makeinfo.h (OLD_HTML_SAFE, OLD_URL_SAFE_CHAR):
+ 	(re)define these.
+ 	* makeinfo/html.c (add_escaped_anchor_name): take new argument to
+ 	optionally output the old-style conversion.
+ 	(add_anchor_name): change call.
+ 	* index.c: change calls.
+ 	* makeinfo/html.h (add_escaped_anchor_name): change decl.
+ 
+ 2004-11-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (reader_loop): allow <wbr> after &mdash;
+ 
+ 2004-11-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Fonts): document new command @sansserif.
+ 	* doc/texinfo.tex (\sansserif): new command.
+ 	* makeinfo/cmds.h (cm_sansserif): new cmd.
+ 	* makeinfo/cmds.c (cm_sansserif): new cmd.
+ 	(command_table): add it.
+ 	* makeinfo/texinfo.dtd (Inline.fonts): add it; also slanted.
+ 	* makeinfo/xml.h (SANSSERIF, SLANTED): define these new elements.
+ 	* makeinfo/xml.c (texinfoml_element_list): add them.
+ 	From: Frank Küster, 21 Oct 2004 23:27:33 +0200, Debian bug#277754.
+ 
+ 	* doc/texinfo.txi (Quotations and Examples, end titlepage): state
+ 	that there must be only one space between the @end and its
+ 	argument.  Report from: christoph.sobotka, 26 Oct 2004 22:04:03 +0200.
+ 
+ 2004-11-22  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (euro): new node, documenting new command,
+ 		@euro{}, for the Euro currency symbol.
+ 	* doc/texinfo.tex (\euro): new command, along with \eurofont to
+ 	support it.  The following extra font support is also related to
+ 	supporting @euro{}:
+ 	(\bfstylename): define this.
+ 	(\textnominalsize .. \ssecnominalsize): new macros.
+ 	(\textfonts .. \ssecfonts): define \curfontsize.
+ 	* makeinfo/cmds.c (command_table): add euro.
+ 	* makeinfo/lang.c (cm_special_char): handle euro.
+ 	(iso8859_15_map): new global.
+ 
+ 2004-11-18  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\ptexnewwrite): Save \newwrite.
+ 	(\newwrite): Call it.
+ 
+ 2004-11-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.ac (install-warnings): new --enable option, requested
+ 		by te.
+ 
+ 2004-11-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.dtd (metainformation): add documentdescription.
+ 	(documentdescription): define.
+ 	* xml.h (DOCUMENTDESCRIPTION): new value for xml_element.
+ 	* xml.c (texinfoml_element_list): define documentdescription.
+ 	(docbook_element_list): likewise, but don't know how to handle it.
+ 	* cmds.c (cm_documentdescription): insert opening xml tag.
+ 	* insertion.c (end_insertion): insert closing xml tag.
+ 
+ 	* makeinfo/makeinfo.c (insert_string): declare const char * arg.
+ 	* makeinfo/makeinfo.h: likewise.
+ 	Report from: Vincent Lefevre, 20 Oct 2004 15:40:39 +0200,
+ 	noting a spurious </para> after </dircategory>.
+ 
+ 2004-11-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\pdfmakeoutlines): in the first run through the
+ 	toc, define \thischapnum...\thissubsecnum as 0, rather than \empty.
+ 	This is so \expnumber doesn't end up trying to expand
+ 	\csname sec\empty\endcsname, i.e., \sec, which is the secant function.
+ 	Report from: Oliver Beck, help-texinfo, 8 Nov 2004 08:05:55 +0100.
+ 
+ 2004-11-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (main) [LC_MESSAGES]: #ifdef the setlocale
+ 	using LC_MESSAGES.  From te, 6 Nov 2004 23:36:10 +0100.
+ 
+ 2004-11-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* lib/Makefile.am (libtxi_a_SOURCES): add strdup.h.
+ 	Report from: Thomas Esser <te@dbs.uni-hannover.de>,
+ 	6 Nov 2004 18:11:51 +0100.
+ 
+ 2004-11-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xref.c (cm_xref): don't include the external file name
+ 	in the HTML output, since it's pretty traditional not to
+ 	distinguish internal and external links in HTML, and it disturbs
+ 	the flow of reading.
+ 	From: Han-Wen Nienhuys <hanwen@xs4all.nl>, 31 Oct 2004 00:13:36 +0200.
+ 	(For lilypond.)
+ 
+ 2004-10-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\setmultitablespacing): just let \multistrut be
+ 	the same as \strut.  Its previous computation was wrong.
+ 	See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
+ 
+ 2004-10-22  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* info/Makefile.am (generated_sources): Add dependencies defining
+ 	  a total order on the files, to prevent race conditions with
+ 	  parallel make.
+ 	  Move the code about generated sources to the end of the file.
+ 
+ 2004-10-20  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* info/Makefile.am (doc.c, key.c, funs.h): Don't distribute them.
+ 	  of these three files.
+ 	(ginfo_SOURCES, nodist_ginfo_SOURCES): Move files.
+ 	(infokey_SOURCES, nodist_infokey_SOURCES): Likewise.
+ 	(DISTCLEANFILES): Include generated_sources.
+ 
+ 2004-10-20  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	BUILT_SOURCES is a special variable for a hack to supplement
+ 	  the automatic dependency tracking; we need it for funs.h only.
+ 	  See the explanation in the automake manual.
+ 
+ 	* info/Makefile.am (BUILT_SOURCES): All occurences replaced by ...
+ 	(generated_sources): ... this new variable.
+ 	(BUILT_SOURCES): set to ``funs.h''.
+ 
+ 2004-10-20  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* info/Makefile.am (ginfo_SOURCES): replace $(BUILT_SOURCES)
+ 	  with ``doc.c funs.h''; this reflects the true situation.
+ 	(infokey_SOURCES): Add funs.h.
+ 
+ 2004-10-20  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* info/Makefile.am (EXTRA_DIST): No need to mention the generated
+ 	  sources here, they are in ginfo_SOURCES or infokey_SOURCES.
+ 
+ 2004-10-19  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* configure.ac: When cross compiling, we have to remove
+ 	  ./config.status, not "$native_tools"/config.status.
+ 	  Replace ``echo'' with AC_MSG_NOTICE.  Quote the variable
+ 	  values passed to ``env.''
+ 
+ 2004-10-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/node.c (cm_node): don't output <br> after the
+ 		navigation line, it's apparently just extra space.
+ 
+ 	* configure.ac: Clean environment for native configure.
+ 	From: Mark Fortescue <mark@mtfhpc.demon.co.uk>,
+ 	17 Oct 2004 19:09:53 +0100.
+ 
+ 2004-10-11  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* configure.ac: Add a short explanation about cross compile.
+ 
+ 2004-10-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/Makefile.am (generated_sources): remove.  Found by Stepan.
+ 
+ 2004-10-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	Support cross compiling.  Based on research by Mark Fortescue.
+ 	Maciej W. Rozycki pointed out this issue previously.
+ 
+ 	* configure.ac: If cross compiling, run second configure script
+ 	  in a subdirectory ${native_tools}.  New automake conditional
+ 	  TOOLS_ONLY is set inside that subdirectory.
+ 	* Makefile.am (SUBDIRS): Add $(native_tools); restrict the
+ 	  SUBDIRS to minimum, if we are inside the $(native_toos) dir.
+ 	(distclean-local): Remove directory $(native_tools).
+ 	* doc/Makefile.am: If necessary, use makeinfo and install-info
+ 	  from $(native_tools).
+ 	* info/Makefile.am: Similarily with the ``makedoc'' program.
+ 
+ 2004-10-07  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	@table command doesn't work inside environment @display.
+ 	There is no point in trying to fix it: just give up with a cry.
+ 
+ 	* doc/texinfo.tex (\table, \ftable, \vtable): Instead of calling
+ 	  \tablex directly, call ...
+ 	(\tablecheck): ... this new macro which checks for active newline;
+ 	  if it's found, it reports an error and uses \doignore to recover.
+ 	* doc/texinfo.txi (display): mention this.
+ 
+ 2004-10-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/*.texi: more consistent use of dashes.
+ 	From Stepan and Benno Schulenberg <benno@nietvergeten.nl>.
+ 
+ 2004-10-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_value): increment and restore
+ 		input_text_offset before execute_string on the value,
+ 		so cm_xref doesn't complain about missing punctuation.
+ 	From: Sergey Poznyakoff <gray@Mirddin.farlep.net>,
+ 	04 Oct 2004 15:04:33 +0300.
+ 
+ 2004-10-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* lib/Makefile.am (libtxi_a_SOURCES): add getopt_.h.
+ 
+ 	* configure.ac: bump version to 4.7.90, although we're not really
+ 		pretesting yet.  (I need a distribution to check an
+ 		automake issue.)
+ 
+ 2004-09-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/srclist.txt (getopt.h): renamed to getopt_.h.
+ 	* lib/getopt_.h: new file.
+ 	* lib/getopt.h: just include getopt.h.
+ 
+ 2004-09-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Image Syntax): mention @noindent, @center.
+ 
+ 2004-09-06  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\Efloat): Take care to run \scantokens on
+ 	  \thisshortcaption before writing the lof line to auxfile.
+ 	  Otherwise, when a newline appears in the argument to
+ 	  @shortcaption, a literal ^^M is written to the aux file.
+ 	  Report from Patrice, 1 Aug 2004 15:54:44 +0200.
+ 
+ 2004-09-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs.sh: show commands, allow / in description.
+ 
+ 2004-08-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (maybe_escaped_expansion): new routine, like
+ 		expansion but does HTML escapes.
+ 	* makeinfo/makeinfo.h (maybe_escaped_expansion): declare.
+ 	* makeinfo/index.c (cm_printindex): call it.
+ 	This is @cindex Kahrs, J@"urgen does not get
+ 	gawk.texi:23425: Unknown command `&quot;urgen'.
+ 	(in gawk 3.1.4).
+ 	Report from: Stepan Kasal <kasal@ucw.cz>, 24 Aug 2004 12:36:34 +0200.
+ 
+ 2004-08-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/node.c (split_file): do not search for output file
+ 		along the path when calling find_and_load (can cause seg
+ 		fault when cross-compiling).
+ 	From: Martin Husemann <martin@duskware.de>, 29 Aug 2004 08:40:33 +0200.
+ 	http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=26791
+ 
+ 2004-08-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Macro details): more warnings about macro usage.
+ 	Report from: Stepan Kasal <kasal@ucw.cz>, 24 Aug 2004 09:29:35 +0200.
+ 
+ 	* doc/texinfo.tex (\Efloat): \vskip\parskip after printing the
+ 	caption; previous \printedsomething code to do this had become
+ 	obsolete.  Reported by Stepan.
+ 
+ 	* doc/texinfo.txi (caption shortcaption): show an example for
+ 	@shortcaption, and remark that weird commands like @c and @verb
+ 	are not allowed.  Suggested by Stepan.
+ 
+ 2004-08-27  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\initial): when breaking the column before the
+ 	  initial, allow for some space at the bottom of the column, so
+ 	  the baselineskip is preserved (more or less).
+ 	  Don't give negative penalty, it encouradges creating of underfull
+ 	  columns with stretched baselineskip.
+ 	  At the end, the \nobreak should be before \vskip, not after it.
+ 
+ 2004-08-26  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* util/texi2dvi: fix the sed script searching for @documentencoding;
+ 	  Double-quote some instances of "$filename_???"
+ 
+ 2004-08-26  Akim Demaille  <akim@epita.fr>
+ 
+ 	Let DVI and PDF files honor the document encoding in TeX.
+ 
+ 	* util/texi2dvi ($language): Be sure to set its value.
+ 	(get_xref_files): Turn this external shell script into a function.
+ 	(filename_rcd, $tmpdir_rcd): New.
+ 	If the file is in Texinfo, and has @documentencoding, and recode
+ 	is available, then run it.
+ 
+ 2004-08-25   Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/Makefile.am (texinfo.cat): Fix for srcdir != builddir.
+ 
+ 2004-08-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: @ is also ok for the first character of xref_files.
+ 
+ 2004-08-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\tablez): accidentally removed assignments
+ 		enabling @item and @itemx within @table.
+ 
+ 2004-08-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\multitable): \def\item to \crcr, instead of
+ 		\let, to avoid errors with a nested @itemize inside
+ 		@multitable.
+ 	Report from: Pierre-Luc Veilleux <plv@centretiv.com>,
+ 	18 Aug 2004 13:26:00 -0400.
+ 
+ 2004-08-19  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\scanmacro): Make backslash active, not other,
+ 	  as this is the default when processing texinfo files.
+ 	  Otherwise, a \ inside @copying will eventually print as ``.
+ 
+ 2004-08-18  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\scantxt): " is another active char to be
+ 	  sanitized.
+ 
+ 2004-08-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (exampleindent): document that the default is
+ 		different in TeX.
+ 	From: Simon Josefsson <jas@extundo.com>, 18 Aug 2004 13:44:32 +0200.
+ 
+ 2004-08-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\cslet): equivalent-or-better, and shorter,
+ 	version from dak, 12 Aug 2004 19:17:27 +0200.
+ 
+ 	* doc/texinfo.txi (makeinfo options): use --no-number-sections
+ 		with non-hierarchical manuals.
+ 
+ 2004-08-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: check for -file-line-error, since -style is no
+ 		longer part of the name.
+ 
+ 2004-08-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/echo-area.c (inform_in_echo_area): avoid buffer overrun.
+ 	Report from: Roman Werpachowski <rwerp@gazeta.pl>,
+ 	7 Aug 2004 01:18:32 +0200.
+ 
+ 	* info/echo-area.h (inform_in_echo_area): declare arg as const,
+ 	while we're at it.
+ 
+ 2004-08-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_acronym_or_abbr): use strchr, not index.
+ 	Report from: Prof Brian Ripley <ripley@stats.ox.ac.uk>,
+ 	2 Aug 2004 12:47:36 +0100 (BST)
+ 
+ 2004-07-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi,
+ 	* doc/texinfo.tex,
+ 	* makeinfo/cmds.c, cmds.h, xml.c, xml.h,
+ 	* util/texinfo.dtd: new command @abbr, suggested by Paul Eggert,
+ 	who also sent the original documentation.
+ 
+ 2004-07-30  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infomap.c (initialize_vi_like_keymaps): bind j to
+ 	info_next_line and k to info_prev_line.  From Eli.
+ 
+ 2004-07-30  Maciej W. Rozycki  <macro@linux-mips.org>
+ 
+ 	* info/filesys.c (extract_colon_unit): Clean up handling of the
+ 	end of string.
+ 
+ 2004-07-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (verb): explicitly warn that @verb cannot be
+ 	used in xref contexts.
+ 
+ 2004-07-27  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\float): The parameters for @float are
+ 	  separated by commas; allow a space after each of the commas.
+ 
+ 	The TeX code for @caption, @shortcaption and @copying now uses
+ 	a similar mechanism to macro definitions.  In detail:
+ 
+ 	* doc/texinfo.tex (\macrobodyctxt, \macroargctxt): Generalize, ...
+ 	  (\scanctxt, \scanargctxt): ... and introduce new variants.
+ 	  (\scanexp): New macro--expand the parameter and call \scantokens.
+ 	  (\copying, \docopying, \insertcopying): Use \scanargctxt and
+ 	  \scanexp--this simplifies things a lot.
+ 	  (\caption, \shortcaption): Redefine, using \scanargctxt via ...
+ 	  (\docaption, \defcaption): ... these new macros.
+ 	  (\appendtomacro): Simplify code, using \expandafter.
+ 
+ 2004-07-26  Karl Berry  <karl@gnu.org>
+ 
+ 	Avoid using the path for output files, since this led to problems
+ 	when incompatible files created by previous versions were found.
+ 	* makeinfo/files.c (find_and_load): introduce second parameter
+ 		use_path, set to 0 from the call in handle_delayed_writes,
+ 		1 in all cases.
+ 	* makeinfo/files.h: change decl.
+ 	* makeinfo/cmds.c, makeinfo.c, node.c: change calls.
+ 	From: Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>,
+ 	14 Jul 2004 00:31:54 +0200.
+ 
+ 2004-07-25  Werner Lemberg  <wl@gnu.org>
+ 
+ 	Rename @s to @slanted.
+ 
+ 	* doc/texinfo.tex (\s): Replace with...
+ 	(\slanted): This.
+ 	* doc/texinfo.txi: Updated.
+ 
+ 	* makeinfo/cmds.c (command_table): Add @slanted, not @s.
+ 	(cm_s): Replace with...
+ 	(cm_slanted): This.
+ 	* makeinfo/cmds.h: Add cm_slanted, not cm_s..
+ 
+ 	* NEWS: Updated.
+ 
+ 2004-07-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/echo-area.c (ea_possible_completions),
+ 	* info/session.c (forward_move_node_structure),
+ 	* info/infokey.c (compile): cast to intptr_t to avoid cast to
+ 		pointer from integer of different size.
+ 	From Havard Eidnes <he@netbsd.org>, 14 Jul 2004 20:38:59 +0200.
+ 
+ 2004-07-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (main): with XML, instead of directly calling
+ 	handle_variable_internal for -D and -U command line flags, hold the
+ 	variable declarations until output document is started.
+ 	(convert_from_loaded_file): handle variables provided with -D and -U
+ 	flags here, just before entering the reader_loop.
+ 	(Otherwise, -D/-U with --xml cause a segfault.)
+ 
+ 2004-07-15  Werner Lemberg  <wl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\s): New command to typeset text with a slanted
+ 		font.
+ 	* doc/texinfo.txi: Document @s.
+ 
+ 	* makeinfo/cmds.c (command_table): Add @s.
+ 	(cm_s): New function.  Currently the same as cm_i -- it probably
+ 		has to be adapted to Docbook and XML.
+ 	* makeinfo/cmds.h: Add prototype for cm_s.
+ 
+ 	* NEWS: Document new command @s.
+ 
+ 2004-07-15  Werner Lemberg  <wl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\TeX): Adjust \spacefactor to make it act like a
+ 		lowercase letter, not like a period.
+ 
+ 2004-07-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo/texinfo.txi (Useful Highlighting): Include
+ 		cross-references to each of the commands.  Suggestion from
+ 		Wolfgang Pausch, 12 Jul 2004 08:26:28 +0200.
+ 
+ 	* texinfo/texinfo.txi (Invoking makeinfo),
+ 	* makeinfo/makeinfo.c: mention that --if-noFORMAT also processes
+ 	@ifnotFORMAT blocks.
+ 	Suggestion from Stepan.
+ 
+ 2004-07-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (discard_until): leave input_text_offset at
+ 		the end of input_text if not found, not at one past the
+ 		end of input_text.  (Had erroneously put that in the block
+ 		only if an error was given.)  The result was a null byte
+ 		after macro expansions.  Report from Werner,
+ 		10 Jul 2004 15:36:40 +0200.
+ 
+ 	* makeinfo/node.c (split_file): fwrite Local Variables trailer so
+ 		it actually gets into the output of the top-level info
+ 		file; don't just insert_string.
+ 	Report from: Werner LEMBERG, 11 Jul 2004 08:58:13 +0200.
+ 
+ 2004-07-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2pdf: new script.
+ 	* util/Makefile.am: install it.
+ 	* doc/texinfo.txi: document it.
+ 
+ 2004-07-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xref.c (cm_email, cm_uref, et al.):
+ 	* makeinfo/xml.c (xml_insert_indexentry, xml_insert_indexterm):
+ 	* makeinfo/sectioning.c (sectioning_underscore):
+ 	* makeinfo/makeinfo.c (cm_listoffloats): use %s, don't pass string to
+ 		execute_string.  Report from Christian Schenk.
+ 
+ 2004-07-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makinfo.c (execute_string): don't worry about
+ 		mismatched multiline commands if executing_macro.
+ 
+ 2004-06-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: Various doc fixes.
+ 	(\dosubindsanitize): propagate the same penalty
+ 	>10000, don't just use \nobreak.
+ 	(\sectionheading): insert a final penalty of
+ 	10001, not 10000.  This causes \aboveenvbreak to
+ 	insert \parskip glue, cancelling the
+ 	\vskip-\parskip done here.  Otherwise, when (e.g.)
+ 	@section is followed immediately by @example, the
+ 	example can be shrunk up above the section title.
+ 
+ 2004-06-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\commondummies, \indexnofonts): dummy-up @comma.
+ 	Report from Arnold.
+ 
+ 2004-06-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/index.c (index_add_arg): ensure all elements are always
+ 	initialized, including output_file, section, and section_name.
+ 	(cm_printindex): don't pass index->output_file to
+ 	add_html_block_elt_args if it is null.  Also do
+ 	not pass spurious extra index_name argument.
+ 
+ 	* makeinfo/makeinfo.c (add_char): don't call html_output_head if
+ 	only_macro_expansion (e.g., a macro call in the
+ 	Top menu).  From: Yuri D'Elia <wavexx@yuv.info>,
+ 	05 Jun 2004 21:11:00 +0200.
+ 
+ 2004-06-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/session.c (info_menu_digit): use menu, rather than entry, to
+ 	avoid seg fault on "0" (the last item),
+ 	since menu has already been checked.
+ 	From: Malcolm Rowe <malcolm-gnu@farside.org.uk>,
+ 	02 Jun 2004 21:32:37 +0100.
+ 
+ 2004-05-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs.sh, gendocs_template: use package.format.tar.gz
+ 		consistently.  Before, -, _, and . were all used.
+ 
+ 2004-05-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* lib/Makefile.am (libtxi_a_SOURCES): include strcase.h.
+ 	From: "Gerrit P. Haase" <gp@familiehaase.de>,
+ 	15 May 2004 21:50:52 +0200.
+ 
+ 	* util/gendocs.sh: force HTML output name, otherwise Emacs fails
+ 	with its "@setfilename ../...".
+ 
+ 2004-05-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi (TEX): don't use the value when it ends in
+ 	"latex"; TEX is also used by mpost.  Report from
+ 	Yvon.Henel@wanadoo.fr.
+ 
+ 2004-04-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc.texinfo.txi (Invoking makeinfo): mention --plaintext.
+ 	From Akim.
+ 
+ 	* doc/texinfo.tex (\emptyusermacros): can use \asis.
+ 	(\identity): remove.
+ 
+ 2004-04-29  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\commondummiesnofonts, \indexnofonts):  In order
+ 	  to correctly transform words like `Dvo\v{r}\'{a}k' to `Dvorak'
+ 	  for index sorting, one has to define all accent control sequences
+ 	  as @asis.  (Current code would produce `Dvor{a}k'.)
+ 
+ 2004-04-29  Jan Nieuwenhuizen  <janneke@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (remember_error): Try cm_bye not more than
+ 	twice.  Fixes `Too many errors!  Gave up.' looping.
+ 
+ 2004-04-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* lib/system.h (STRCASEEQ, STRNCASEEQ): new #defines for
+ 		convenience.
+ 	* makeinfo/cmds.c (cm_strong): actually change the output to avoid a
+ 	spurious xref.  Suggestion from Jan Nieuwenhuizen
+ 	<janneke@gnu.org>, 26 Apr 2004 00:04:04 +0200, emacs-devel.
+ 
+ 	* automake 1.8.4.
+ 
+ 2004-04-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\emptyusermacros, \identity): new macros.
+ 	(\indexdummiesnofonts): call it.
+ 	This is to semi-support macro calls in the arg to @deffn.
+ 	Report from: Akim Demaille <akim@epita.fr>, 20 Apr 2004 17:48:28 +0200.
+ 
+ 2004-04-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.ac (gl_FUNC_MKSTEMP): rename from UTILS_FUNC_MKSTEMP,
+ 	per new gnulib code.
+ 
+ 2004-04-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/tests/copying: force POSIX language setting.
+ 
+ 2004-04-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_code): use <samp> for commands other than
+ 	@code, so we get typewriter output; and add `...'
+ 	for @samp.
+ 	Report from: John Blevin <blevin@lucent.com>,
+ 	16 Apr 2004 11:40:01 -0400.
+ 
+ 	* makeinfo/html.c (html_output_head) [CSS_FONT_ROMAN,
+ 	CSS_FONT_SMALL_CAPS]: prettify.
+ 
+ 2004-04-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\Orb): define if undefined.
+ 	Report from Laurent Siebenmann.
+ 
+ 	* util/dir-example: diff updates.
+ 
+ 2004-04-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: remove trailing blanks.  suggestion from Jim.
+ 
+ 2004-04-12  Paul Eggert  <eggert@twinsun.com>
+ 
+ 	* doc/Makefile.am (info.1, infokey.1, install-info.1,
+ 	makeinfo.1, texi2dvi.1, texindex.1): Don't use $< in ordinary
+ 	rules; it's not portable.
+ 	* util/Makefile.am (texinfo.cat): Likewise.
+ 
+ 2004-04-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* bootstrap: update from berlios.
+ 
+ 2004-04-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* Version 4.7.
+ 
+ 2004-04-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (execute_string): do not free the temporary copy
+ 	of input_filename until we're definitely done with
+ 	it.  It is used in line_error, etc.
+ 
+ 	* INSTALL: mention texinfo.tex install step.
+ 
+ 	* util/Makefile.am (texinfo.cat): new name instead of just
+ 		`catalog'.  rename files.
+ 	* util/Makefile.am (EXTRA_DIST): texinfo-cat.in now, not
+ 		catalog.in.
+ 
+ 2004-04-09  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): after @copying, do not
+ 	discard until a newline if we are looking at one.
+ 	(end_insertion): decrement input line number after @end copying.
+ 
+ 2004-04-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/Makefile.am: doc fix, as automake.diff is no longer needed.
+ 
+ 2004-04-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.6.95.
+ 
+ 	* doc/texinfo.tex (\dodonode): new macro to remove trailing comma.
+ 	(\donode): call it, after removing space-comma.
+ 
+ 	* doc/texinfo.txi (indicateurl): new name for url.
+ 	(uref): url is now a synonym for uref.
+ 	* doc/texinfo.tex (\url, \indicateurl): implement.
+ 	* makeinfo/cmds.c (cm_indicate_url): rename from cm_url.
+ 	(command_table): make "url" a synonym for "uref".
+ 	* makeinfo/cmds.h (cm_indicate_url): declare it.
+ 
+ 2004-04-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/sectioning.c (insert_and_underscore): use `...' quote
+ 	instead of "..." in error message.
+ 	* info/*.c: likewise.
+ 
+ 2004-04-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_colon): check if the character we are erasing
+ 	from the output belongs to an XML tag.
+ 
+ 2004-04-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (cm_author): use author element in XML output
+ 	for attribution.
+ 
+ 2004-04-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): do not call
+ 	write_tag_table if the output filename is "-".
+ 
+ 2004-04-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): <pre> blocks implicitly ends
+ 	the previous paragraph, so avoid </p> after the end tag.
+ 
+ 	* makeinfo/footnote.c (output_pending_notes): made Footnotes anchor
+ 	non translatable, and changed it to "texinfo-footnotes-in-document" to
+ 	lessen the chance of getting in the way of another Footnotes anchor.
+ 
+ 2004-04-04  Jim Meyering  <jim@meyering.net>
+ 
+ 	* info/nodes.c (info_load_file_internal): Don't free lowered_name
+ 	until *after* using fullpath, since they may be one and the same.
+ 
+ 2004-04-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Image Syntax): had missing @'s in cookies.
+ 
+ 	* makeinfo/cmds.c (cm_w): insert a comment at the end of @w, so that
+ 	@w{$}Log$ doesn't end up as <dollar>Log<dollar>.
+ 	Report from rms.
+ 	* doc/texinfo.txi (GNU Sample Texts, w): mention this.
+ 
+ 2004-04-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.6.94.
+ 
+ 	* doc/texinfo.txi (Node Line Requirements): discuss whitespace.
+ 
+ 	* doc/texinfo.tex (\node, \donode): remove trailing
+ 	spaces (before the first comma) in the @node line.
+ 
+ 2004-03-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/install-info.c (menu_line_lessp, menu_line_equal): move to
+ 		before all uses.
+ 
+ 2004-03-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/signals.c (initialize_info_signal_handler) [SA_NOCLDSTOP]:
+ 	use instead of HAVE_SIGACTION, since Solaris 2.7+
+ 	with Sun CC don't have sa_handler, sa_flags, sa_mask.
+ 
+ 	* info/session.c (search_string_index): remove unused variable.
+ 	* info/terminal.c (term_mo): remove unused variable.
+ 	* info/display.c (display_clear_display): remove unused variable
+ 		display_line.
+ 	* util/install-info.c (infilelen_sans_info): remove unused
+ 		variable.
+ 
+ 	* doc/texinfo.txi: mistakenly had * name: node: in menu items instead
+ 	of * name: node.
+ 
+ 	* util/install-info.c (menu_item_equal): must declare ret at beginning
+ 	of function.  From Werner.
+ 
+ 2004-03-27  Jim Meyering  <jim@meyering.net>
+ 
+ 	* info/info-utils.c (info_parse_node): Don't read beyond end
+ 	of buffer when looking for ``(line ...)'' in a menu item.
+ 
+ 2004-03-27  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* util/install-info.c (menu_item_equal): Don't scan past
+ 	term_char.
+ 
+ 2004-03-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.6.93.
+ 
+ 	* util/install-info.c (menu_item_equal): compare basenames,
+ 	so lilypond/ subdir will match.  Bug report from Werner,
+ 	21 Mar 2004 08:31:10 +0100.
+ 
+ 	* configure.ac (AC_CHECK_DECLS): skip strncasecmp again.
+ 	* lib/system.h (strcase.h): change conditional to
+ 	!HAVE_STRNCASECMP || !HAVE_STRCASECMP.  Extra
+ 	!HAVE_DECL seems superfluous.
+ 
+ 	* lib/system.h: include <unistd.h> last, following Autoconf's
+ 		ac_includes_default.
+ 
+ 2004-03-25  Karl Berry  <karl@gnu.org>
+ 
+ 	All these changes are because strncasecmp is only declared in
+ 	<strings.h> on IBM AIX 4.2.  (Report from Nelson Beebe.)
+ 
+ 	* configure.ac (AC_CHECK_DECLS): add memchr; no need to check for
+ 	  	     strcasecmp.(gl_STRCASE): call this ...
+ 	(AC_REPLACE_FUNCS): ... replacing checks for
+ 	strcasecmp and strncasecmp here.
+ 	* lib/system.h (memchr) [!HAVE_DECL_MEMCHR]: add conditional
+ 	     declaration.
+ 	(strcase.h) [!HAVE_DECL_STRNCASE]: add conditional include.
+ 	(strings.h) [HAVE_STRINGS_H]: include if
+ 	available, even if <string.h> is also available.
+ 	* info/session.c (strncasecmp) [M_XENIX]: remove this conditional
+ 	declaration, since we haven't been testing for M_XENIX in many
+ 	years.
+ 	* m4/Makefile.am (EXTRA_DIST): add strcase.m4.
+ 	* util/srclist.txt (lib/strcase.h, m4/strcase.m4): add, updating
+ 		from gnulib.
+ 
+ 2004-03-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/index.c:
+ 	* makeinfo/float.c: avoid use of snprintf, which is not available on
+ 	all platforms.  Bug report by Nelson and Vin Shelton (22mar03).
+ 
+ 	* automake 1.8.3.
+ 
+ 2004-03-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi (Searching Commands): typo from jesper.
+ 
+ 2004-03-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\indexnofonts): \definedummyletter needs to
+ 	define the control letters to be empty, without
+ 	taking any argument; most control letters, such as
+ 	@:, don't take arguments, and it won't hurt to
+ 	just always ignore them for index sorting.
+ 	Report from Arnold.
+ 
+ 	* info/doc.h (InfoFunction): cast NULL to VFunction *, to
+ 	prevent pgcc from complaining.  From Nelson.
+ 
+ 2004-03-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Structuring Command Types): be even more explicit
+ 	about @unnumbered vs. @heading.
+ 
+ 	* makeinfo/html.c (insert_html_tag_with_attributes): use the same
+ 	parameter names (start_or_end and tag) in both stdc and !stdc
+ 	cases.  Report from Nelson.
+ 
+ 	* info/m-x.c (info_execute_command): don't dereference
+ 	InfoFunction(command) as a function call if it's NULL.  Report
+ 	from Nelson, pgcc-5.1-3 complains.
+ 
+ 2004-03-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/signals.h [!SA_NOCLDSTOP]: borrow test from coreutils'
+ 	sort.c, to avoid using sigset_t when it's not
+ 	defined (apparently).
+ 
+ 	* makeinfo/html.c (escape_string): escape ", too, for @image's
+ 	alttext among others.
+ 	* makeinfo/html.h: doc fix.
+ 	* doc/texinfo.txi (Image Syntax): making empty alt text, do
+ 		escaping.
+ 
+ 	* util/dir-example: reorder.
+ 
+ 	* doc/texinfo.txi (title subtitle author): using them outside
+ 	@titlepage is an error, they're not actually "ignored".
+ 	* makeinfo/insertion.c (cm_author): one mdash suffices.
+ 
+ 2004-03-19  Jim Meyering  <jim@meyering.net>
+ 
+ 	* makeinfo/makeinfo.c (add_char): Use memmove, rather than strncpy,
+ 	since source and destination strings overlap.
+ 
+ 	* makeinfo/float.c (add_new_float): Avoid buffer overrun when
+ 	appending `.' to a chapter number.
+ 
+ 2004-03-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.6.92.
+ 
+ 2004-03-18  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* lib/xmalloc.c: Include "system.h" instead of declaring malloc
+ 	and realloc ourselves.
+ 	(xmalloc): Change type of size parameter to size_t.
+ 	(xrealloc): Likewise.
+ 
+ 	* lib/system.h (xmalloc, xrealloc): Change type of size parameter
+ 	to size_t.
+ 
+ 2004-03-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xref.c (cm_xref): ignore any directory part or extension
+ 	in html case, warn if nothing left.
+ 	* doc/texinfo.txi (HTML Xref Link Basics): ignore directory part in
+ 	@xref cmd.
+ 
+ 	* lib/getopt.h (__GNUC_PREREQ) [! __GNUC_PREREQ]: change
+ 	conditional to the actual symbol, instead of just
+ 	__GNUC, else --disable-nls compilation fails under
+ 	SunOS 5.8 with gcc 3.2.3 (at least).
+ 	Report from Vin Shelton, 15 Mar 2004 08:51:14 -0500.
+ 
+ 	* util/texindex.c: add some const declarations.
+ 	* util/install-info.c: add some const declarations.
+ 	(by no means all)
+ 
+ 	* doc/texinfo.txi (HTML Xref *): new nodes.
+ 
+ 2004-03-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xref.c (cm_xref): need ../ in reference to foreign html
+ 	manual, if splitting.
+ 
+ 2004-03-14  Jim Meyering  <jim@meyering.net>
+ 
+ 	* makeinfo/index.c (insert_index_output_line_no): Ensure that `i'
+ 	is larger than zero before (not after) using `i-1' as an array index.
+ 
+ 	* makeinfo/cmds.c (cm_acronym): Don't write description[-1]
+ 	when description is the empty string.
+ 
+ 	* makeinfo/makeinfo.c (insert): Avoid buffer under-run when
+ 	output_paragraph_offset is zero.
+ 	(canon_white): Rewrite not to use strcpy (was used with
+ 	overlapping source and destination)
+ 
+ 2004-03-14  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* info/session.c: Fix buffer overflows.
+ 
+ 2004-03-14  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xref.c (cm_xref): print the fifth arg (or fourth if it's
+ 	not available), in parens for the visible text of the HTML link.
+ 
+ 2004-03-14  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/tests/node-expand.txi:
+ 	* makeinfo/tests/node-whitespace.txi: added titles to @top.
+ 
+ 2004-03-14  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): check if title is
+ 	pointing to NULL before calling strlen (happens when there is no
+ 	@settitle before @top.)
+ 
+ 2004-03-14  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): warn if both @top and
+ 	@settitle are empty.
+ 	(sectioning_html, insert_and_underscore): use @settitle argument if
+ 	@top is empty.
+ 	(insert_and_underscore): removed with_char argument from function
+ 	declaration.
+ 
+ 	* makeinfo/sectioning.h: insert_and_underscore proto update.
+ 
+ 2004-03-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.6.91.
+ 
+ 	* info/*.[ch]: copyright dates, and final ugly casts.
+ 
+ 	* doc/texinfo.txi (Generating HTML): make its own chapter, since we
+ 	have lots to say about xrefs now.
+ 
+ 	* doc/texinfo.txi (Refilling Paragraphs): @ignore this, just
+ 	describe @refill better in the summary.
+ 	(Obtaining TeX): make a section of Hardcopy,
+ 	instead of its own appendix.
+ 	(Command Syntax): subnode of @@-Command List.
+ 	This reduction in the number of appendices will hopefully make the
+ 		manual less overwhelming.
+ 
+ 2004-03-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* info/dir.c:
+ 	* info/display.c:
+ 	* info/display.h:
+ 	* info/doc.h:
+ 	* info/dribble.c:
+ 	* info/dribble.h:
+ 	* info/echo-area.c:
+ 	* info/echo-area.h:
+ 	* info/filesys.c:
+ 	* info/filesys.h:
+ 	* info/footnotes.c:
+ 	* info/footnotes.h:
+ 	* info/gc.c:
+ 	* info/gc.h:
+ 	* info/indices.c:
+ 	* info/indices.h:
+ 	* info/info-utils.c:
+ 	* info/info-utils.h:
+ 	* info/info.c:
+ 	* info/info.h:
+ 	* info/infodoc.c:
+ 	* info/infokey.c:
+ 	* info/infomap.c:
+ 	* info/infomap.h:
+ 	* info/m-x.c:
+ 	* info/makedoc.c:
+ 	* info/man.c:
+ 	* info/man.h:
+ 	* info/nodemenu.c:
+ 	* info/nodes.c:
+ 	* info/nodes.h:
+ 	* info/search.c:
+ 	* info/search.h:
+ 	* info/session.c:
+ 	* info/session.h:
+ 	* info/signals.c:
+ 	* info/terminal.c:
+ 	* info/terminal.h:
+ 	* info/tilde.c:
+ 	* info/tilde.h:
+ 	* info/variables.c:
+ 	* info/variables.h:
+ 	* info/window.c:
+ 	* info/window.h:
+ 	* lib/system.h: protoized.
+ 
+ 2004-03-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): don't segfault when
+ 	generating xml if @top arg was empty.  Report from Pat.
+ 
+ 2004-03-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\pdfoutput): check also for \relax and 0, not
+ 	just \undefined, in case pdftex is being run in dvi mode.
+ 	Reported by Thomas Esser.
+ 
+ 	* lib/Makefile.am (libtxi_a_SOURCES): add getopt_int.h.
+ 
+ 2004-03-11  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/html.c (add_escaped_anchor_name): removed unnecessary
+ 	ampersand check.
+ 	(fix_filename): removed size calculation and memory reallocation for
+ 	filename as it is already PATH_MAX bytes.  Added a check so we don't
+ 	cross PATH_MAX boundary while expanding not-isalnum to hex values.
+ 
+ 	* makeinfo/toc.c (toc_add_entry): generate links following html cross
+ 	refs proposal from Patrice Dumas.
+ 
+ 2004-03-11  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.h: changed URL_SAFE_CHAR to isalnum.
+ 
+ 	* makeinfo/html.c (add_escaped_anchor_name, add_anchor_name)
+ 	(fix_filename): generate links following html cross refs proposal
+ 	from Patrice Dumas.
+ 
+ 	* makeinfo/xref.c (cm_xref): tweaked references to external manuals,
+ 	to better follow html cross refs proposal.
+ 
+ 2004-03-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* pretest version 4.6.90.
+ 
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): include multi.h.
+ 	* makeinfo/cmds.c (cm_verb): avoid spurious warning.
+ 
+ 2004-03-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/lang.c (cm_special_char): call add_encoded_char for Info
+ 	output too.
+ 
+ 2004-03-01  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_minus): use minus entity for HTML too.
+ 
+ 2004-03-01  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (reader_loop): disable multiple dashes and
+ 	quotes entity substitution for HTML and XML, if escape_html is not
+ 	true.
+ 
+ 2004-03-01  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* util/texinfo.dtd: added math element and updated footnote.
+ 
+ 2004-03-01  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_footnote): start <para> if not already
+ 	started.
+ 
+ 2004-03-01  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c (index_add_arg): make entry node name 'Footnotes'
+ 	if the output format is non-split HTML, and we are handling footnotes.
+ 
+ 	* makeinfo/footnote.c (output_pending_notes): added anchor at the
+ 	start of footnotes block for the non-split HTML output, so @printindex
+ 	can refer to that point as the nodename.
+ 
+ 2004-03-01  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/defun.c (defun_internal): use var element for HTML, instead
+ 	of i.
+ 
+ 2004-03-01  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): reset filling_enable to its previous
+ 	state after getting the cookie done.
+ 
+ 2004-03-01  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): insert magic cookie only if there's
+ 	a bitmap file (if all we have is a text file, skip the cookie.)
+ 
+ 2004-02-29  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/node.c (cm_node): moved node order handling to ...
+ 	(remember_node): here.
+ 
+ 2004-02-29  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/multi.c (draw_horizontal_separator): insert a space before
+ 	the newline so it looks different than @subsection's.
+ 
+ 2004-02-29  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (insert): do not strip trailing whitespace in
+ 	multitables.
+ 
+ 2004-02-29  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (execute_string): removed XML tag balance
+ 	checks.
+ 
+ 2004-02-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion): for rawxml,
+ 	rawhtml and rawdocbook blocks, change the state of escaping depending
+ 	on raw_output_block in order to avoid problems when these blocks are
+ 	used within a @rmacro.
+ 
+ 2004-02-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): for quotation use
+ 	default_indentation_increment.
+ 
+ 2004-02-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (info_trailer): call current_document_encoding
+ 	here too.
+ 
+ 2004-02-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/lang.h: new variable unknown_encoding.
+ 
+ 	* makeinfo/lang.c (cm_documentencoding): save and use the encoding
+ 	argument even if it's unknown.
+ 
+ 	* makeingo/html.c (html_output_head): call current_document_encoding
+ 	instead of checking document_encoding_code.
+ 
+ 2004-02-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): simplified entry generation.
+ 
+ 2004-02-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/files.h: new members node_order and index_order in
+ 	DELAYED_WRITE struct.
+ 
+ 	* makeinfo/files.c (register_delayed_write): save current node and
+ 	index order.
+ 	(handle_delayed_writes): update tag_table positions and index line
+ 	numbers by comparing orders, not line numbers they are defined.
+ 
+ 	* makeinfo/index.c: made index_counter not static and ...
+ 	* makeinfo/index.h: extern.
+ 
+ 	* makeinfo/node.h: new member order in TAG_ENTRY struct.
+ 
+ 	* makeinfo/node.c (cm_node): keep the order of the node entry.
+ 
+ 2004-02-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs.sh: generate ASCII in static file, not stdout, so
+ 	toc/index can get written.
+ 
+ 	* util/gendocs_template: XHTML version from
+ 	http://www.gnu.org/boilerplate.html, via John Darrington
+ 	<john@cellform.com.au>, 9 Jan 2004 07:24:27 +0800.
+ 
+ 2004-02-27  Jan Nieuwenhuizen  <janneke@gnu.org>
+ 
+ 	* doc/texinfo.txi (Image Syntax): Update.
+ 
+ 	* makeinfo/makeinfo.c (cm_image): Only insert a period between the
+ 	image's NAME and EXTENSION as a second guess, to retain backward
+ 	compatibility.
+ 
+ 2004-02-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_element_with_attribute): if we are
+ 	closing either TABLEITEM, ITEM or DEFINITIONITEM during string
+ 	execution, update relevant state.
+ 
+ 2004-02-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (execute_string): moved state updates below
+ 	insertion and element stack checks, so any code executed in those
+ 	checks will be aware of executing_string.
+ 
+ 2004-02-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_docbook_image): for Docbook, if paragraph
+ 	is open, use inlinemediaobject instead of mediaobject in an
+ 	informalfigure.
+ 	(xml_insert_element_with_attribute): indent after informalfigure.
+ 
+ 2004-02-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new element INLINEIMAGE.
+ 
+ 	* makeinfo/makeinfo.c (cm_image): for XML, use INLINEIMAGE or IMAGE
+ 	depending on paragraph state.
+ 
+ 2004-02-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): for Info, enclose text image in
+ 	brackets if @image is used inline (ie. paragraph is open).
+ 
+ 2004-02-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_noindent_cmd, cm_indent): start paragraph for
+ 	Info too.
+ 
+ 2004-02-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): for HTML, if paragraph is not open,
+ 	enclose image in a <div> block.
+ 
+ 2004-02-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_noindent_cmd, cm_indent): insert <p> for HTML.
+ 
+ 2004-02-26  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* util/texinfo.dtd: moved verbatim to &block;.
+ 
+ 2004-02-25  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	A first step towards general cleanup of sectioning macros:
+ 	* doc/texinfo.tex (\genhead): A generalized version of ...
+ 	  (\numhead, \apphead, unnmhead): ... these, which uses ...
+ 	  (\chapheadtype, \unmlevel, \maxseclevel): ... these "variables".
+ 
+ 2004-02-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/index.c (cm_printindex): insert cookie in Info output
+ 	for benefit of Info readers.
+ 
+ 2004-02-26  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): removed obsolete Docbook
+ 	indentation work-around.
+ 
+ 2004-02-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (cm_author): new function.
+ 	(cm_titlepage_cmds): removed @author parts.
+ 
+ 	* makeinfo/cmds.c: made @author call cm_author.
+ 
+ 2004-02-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: avoid duplicate index entries within the same
+ 	node (from Alper): syncodeindex, lines 9627 and 9633 TEXINPUTS,
+ 	lines 14157 and 14202 texinfo-format-buffer 15131 and 15159
+ 	texinfo-format-region 15130 and 15149
+ 
+ 2004-02-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.h: new variable example_indentation_increment.
+ 
+ 	* makeinfo/cmds.c (set_default_indentation_increment): renamed to
+ 	set_example_indentation_increment.
+ 	(cm_exampleindent): call set_example_indentation_increment.
+ 
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion): @example,
+ 	@display and the like now rely on example_indentation_increment.
+ 
+ 2004-02-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion): @float should
+ 	not play with indentation.
+ 
+ 2004-02-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): check if we are crossing the
+ 	caption boundaries looking for a space to break at.
+ 
+ 2004-02-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: TEXINFO_OUTPUT -> TEXINFO_OUTPUT_FORMAT,
+ 	after discussion with tar maintainer.
+ 
+ 2004-02-20  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\infochapter, \infosection, etc.): these stubs
+ 		of sectioning commands nuked.
+ 
+ 2004-02-24  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\centerchap): Fixed to work again,
+ 	  don't open group.
+ 	  (\centerparameters): New macro.
+ 	  (\centerchfplain): Nuked.
+ 
+ 	The following continues with prosecution of @setchapterstyle{open}:
+ 	* doc/texinfo.tex (\chfplain): renamed to \chapmacro.
+ 	  (\CHAPFplain): Nuked.
+ 	  (\setchapterstyle): Moved next to its deprecated friends.
+ 
+ 2004-02-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dofloat): start a paragraph.
+ 
+ 2004-02-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (cm_caption): check if the innermost
+ 	environment is @float.
+ 
+ 2004-02-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* info/session.c (info_menu_digit): if the menu entry has a line
+ 	number, go to that line.
+ 
+ 2004-02-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* info/info.c (main): make sure dir file is not listed for option
+ 	--where.
+ 
+ 2004-02-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_element_with_attribute, xml_add_char)
+ 	(xml_begin_table, xml_end_table, xml_begin_table_item)
+ 	(xml_continue_table_item): separated ITEM and TABLEITEM states to
+ 	handle @table environments better.
+ 
+ 2004-02-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* util/texinfo.dtd: added float and friends, updated tableitem and
+ 	Inline.reference.
+ 
+ 2004-02-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Structuring Command Types): slightly more info
+ 	about headings.  Fix other references, too.
+ 
+ 	* Makefile.am (EXTRA_DIST): explicitly list every file in djgpp,
+ 	so that the CVS directory is not included in the dist.tar.gz.
+ 
+ 2004-02-23  Arnold D. Robbins  <arnold@skeeve.com>
+ 
+ 	* makeinfo/cmds.c (cm_code): For @samp, using single quotes instead of
+ 	double quotes, to match TeX output more closely.
+ 
+ 2004-02-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.h: new output_file and entry_number members in
+ 	index_elt struct.
+ 
+ 	* makeinfo/index.c (index_add_arg, cm_printindex): rewrote hyperlink
+ 	generation for HTML to avoid duplicate anchors, and to work with
+ 	splitting enabled.
+ 
+ 2004-02-20  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): create HTML hyperlinks with
+ 	add_word instead of using @ref to avoid problems with commas in
+ 	captions.
+ 
+ 2004-02-20  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/node.c (cm_node): remove whitespace before the node
+ 	separator sequence.
+ 
+ 2004-02-20  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.c (handle_enum_increment): do not increment
+ 	counters for ENUM_SECT_NO heading commands (ie. @unnumbered,
+ 	@majorheading, etc.)
+ 
+ 2004-02-20  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/multi.c (multitable_item): unset hsep if item command is
+ 	not @headitem.
+ 
+ 2004-02-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: More hyphenation exceptions.
+ 	(\author, \quotation): implement @author inside
+ 	@quotation, for attribution purposes.
+ 
+ 2004-02-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_exampleindent): fixed paragraph handling after
+ 	@exampleindent lines.
+ 
+ 2004-02-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c (index_add_arg): create an anchor where @index is
+ 	used in HTML documents.
+ 	(cm_printindex): make index text an hyperlink to the created anchor.
+ 
+ 2004-02-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): skip empty lines following
+ 	@table, @ftable, @vtable and @itemize lines.
+ 
+ 2004-02-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* lib/substring.c,
+ 	* lib/xexit.c,
+ 	* lib/xmalloc.c,
+ 	* lib/system.h: ANSI-fy.  (Other lib files come from gnulib.)
+ 
+ 	* doc/texinfo.txi (Definition Commands): describe the argument/@var
+ 	situation more accurately.
+ 
+ 	* doc/texinfo.txi (Definition Commands): explicitly document the
+ 	implicit index entry creation in all cases.
+ 
+ 	* doc/texinfo.txi (Printing Indices & Menus, Indices, Predefined
+ 	Indices): remove redundancies, make different
+ 	purposes clear, etc.
+ 
+ 2004-02-18  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.h:
+ 	* makeinfo/xml.c (xml_get_assoc_for_id, xml_associate_title_with_id):
+ 	removed these functions.
+ 
+ 	* makeinfo/xref.c (cm_xref): do not call xml_get_assoc_for_id.
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): added xreflabel
+ 	attribute to @unnumbered for Docbook.
+ 
+ 2004-02-18  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xref.c (cm_xref): for Docbook, use lowercase ``see'' when
+ 	printing index.
+ 
+ 2004-02-18  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_indexentry): removed ``see'' from index
+ 	entries as cm_xref takes care of it.
+ 
+ 2004-02-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info.texi (Help-Int): mention the new line number feature.
+ 	* doc/texinfo.txi (Indices): plural correction.
+ 	* doc/info-stnd.texi (Invoking Info): matche typo.
+ 	(Searching Commands): grammar.
+ 	* info/session.c (info_menu_or_ref_item): need to subtract 1 from
+ 	the actual line number to get to the right place,
+ 	don't really know why.
+ 
+ 	* makeinfo/makeinfo.c, info/info.c, util/texindex.c,
+ 	utils/install-info.c, util/texi2dvi: update copyright year to
+ 	2004, and do not mark copyright line for translation, since
+ 	international law says to always use the English word "copyright".
+ 
+ 2004-02-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): use add_html_block_elt instead
+ 	of add_word for </pre> ending @example and the like.
+ 	* makeinfo/float.c (cm_listoffloats): use add_html_block_elt for <li>.
+ 
+ 2004-02-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): do not expand @copying for
+ 	HTML and Info too.
+ 	(cm_insert_copying): expand copying_text for all formats here.
+ 
+ 	* makeinfo/html.c (html_output_head): use text_expansion for copying
+ 	text.
+ 
+ 2004-02-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (float): mention @multitable and @image
+ 	as typical contents.  From Arnold.
+ 
+ 2004-02-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_element_with_attribute): removed check
+ 	to see if current element contains para before calling xml_start_para,
+ 	as that check is performed in xml_start_para too.
+ 
+ 2004-02-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): indent float caption.
+ 
+ 2004-02-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): for XML and Docbook, do not
+ 	expand @copying text.  Instead of calling @anchor, use <float
+ 	name="floatlabel"> for XML.
+ 	(cm_copying): removed ugly copying_text manipulation for Docbook.
+ 	Warn if there is no @copying before @insertcopying.
+ 
+ 	* makeinfo/xml.c: made floats contain para.
+ 	(xml_start_para): check if current element can contain para.
+ 	(xml_add_char): removed @copying checks.
+ 
+ 2004-02-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): if the output format is XML,
+ 	do not call close_insertion_paragraph after @end menu.
+ 
+ 2004-02-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_insert_element_with_attribute): indentation
+ 	fixes for @multitable.
+ 
+ 2004-02-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/multi.c (do_multitable): remove trailing newline when the
+ 	output format is Docbook or XML, as output_paragraph becomes unusable
+ 	later for xml_indent during select_output_environment.
+ 
+ 2004-02-16  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_bye): do not call flush_output as text appended
+ 	by convert_from_loaded_file may need to play with output_paragraph.
+ 
+ 2004-02-16  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_end_document): insert newline after </texinfo>
+ 	only if indentation is disabled (otherwise xml_indent takes care of
+ 	the newline.)
+ 	(xml_insert_indexentry): disable warnings when executing implicit
+ 	@xref commands  for Docbook, otherwise makeinfo will warn about
+ 	missing punctuation.
+ 
+ 2004-02-16  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): eat one newline after
+ 	@xml/@docbook blocks for proper indentation.
+ 
+ 2004-02-16  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_center): fixed line wrapping after the @center
+ 	command.
+ 
+ 2004-02-15  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_begin_document): disabled warnings around the
+ 	implicit register_delayed_write("@documentencoding") call.
+ 
+ 2004-02-15  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion): when handling
+ 	@xml, @html and @docbook blocks, do not touch para elements, and keep
+ 	whitespace as-is.
+ 
+ 2004-02-15  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.h: made xml_keep_space extern.
+ 
+ 2004-02-15  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_noindent_cmd, cm_indent): implicitly start
+ 	para element for Docbook and XML.
+ 
+ 2004-02-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\hyphenation): add more hyphenation exceptions,
+ 	gleaned from the log in TUGboat.
+ 	* doc/info-stnd.texi: document new option --where.
+ 	* info/info.c (main): in print_where_p case, ensure we don't try
+ 	to print NULL.
+ 
+ 2004-02-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\addtokens): had two identical definitions,
+ 	remove one.
+ 	(\maketoks): no space token after |ENDTOKS|,
+ 	although I guess it hasn't mattered.
+ 	(\entry): make clear what is the argument to
+ 	\pdfgettoks and what is output.
+ 	(\appendtomacro): use our own token registers,
+ 	for safety.
+ 	(\listoffloatsdoentry): fully expand the page
+ 	number, and don't expand the lof text.
+ 
+ 2004-02-14  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_strong):
+ 	* makeinfo/xml.c (xml_begin_index): cast output_paragraph to char, to
+ 	avoid warnings with -pedantic.
+ 
+ 2004-02-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c:
+ 	* makeinfo/cmds.h:
+ 	* makeinfo/defun.c:
+ 	* makeinfo/defun.h:
+ 	* makeinfo/files.c:
+ 	* makeinfo/files.h:
+ 	* makeinfo/float.c:
+ 	* makeinfo/float.h:
+ 	* makeinfo/footnote.c:
+ 	* makeinfo/footnote.h:
+ 	* makeinfo/html.c:
+ 	* makeinfo/html.h:
+ 	* makeinfo/index.c:
+ 	* makeinfo/index.h:
+ 	* makeinfo/insertion.c:
+ 	* makeinfo/insertion.h:
+ 	* makeinfo/lang.c:
+ 	* makeinfo/lang.h:
+ 	* makeinfo/macro.c:
+ 	* makeinfo/macro.h:
+ 	* makeinfo/makeinfo.c:
+ 	* makeinfo/makeinfo.h:
+ 	* makeinfo/multi.c:
+ 	* makeinfo/node.c:
+ 	* makeinfo/node.h:
+ 	* makeinfo/sectioning.c:
+ 	* makeinfo/sectioning.h:
+ 	* makeinfo/toc.c:
+ 	* makeinfo/toc.h:
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h:
+ 	* makeinfo/xref.c:
+ 	* makeinfo/xref.h: protoized functions.
+ 
+ 2004-02-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/multi.h: new file.
+ 
+ 2004-02-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\caption): make \long.
+ 	* doc/texinfo.txi (Nodes): mention that changing node names is bad.
+ 	(caption shortcaption, listoffloats): write these, finishing the
+ 	first cut at @float documentation.
+ 
+ 2004-02-12  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_verb): end @verb only if delimiter is followed
+ 	by a closing brace.
+ 
+ 2004-02-12  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/lang.c (cm_accent_generic): warn if accented character is
+ 	whitespace.
+ 
+ 2004-02-12  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertionc. (end_insertion): decrement current_indent
+ 	only if the output format is Info.
+ 
+ 2004-02-12  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): adjusted caption styles for
+ 	label and type conditions.
+ 	(begin_insertion, end_insertion): indent first paragraphs inside
+ 	@float, even if first paragraph in a chapter.  Increment/decrement
+ 	current_indent.
+ 
+ 2004-02-12  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/tests/defxcond: look for `--' instead of `-'.
+ 
+ 2004-02-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): change warning wording.
+ 
+ 2004-02-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dofloat): initialize caption macros here, not
+ 		globally.
+ 	(\Efloat): rewrite for more consistent caption
+ 	line, matching documentation.
+ 	(\appendtomacro): new macro.
+ 	(\currentparindent): this \newdimen was not used; removed.
+ 	* doc/texinfo.txi (float): continue documenting.
+ 
+ 	* makeinfo/files.c (register_delayed_write): change wording of msgs.
+ 
+ 2004-02-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/defun.c: --- (which gets reduced to --)
+ 	instead of -- (which gets reduced to -).
+ 	Report from Akim Demaille <akim@epita.fr>, 09 Feb 2004 18:06:29 +0100.
+ 
+ 2004-02-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\pickupwholefraction): allow the fraction to be
+ 	an integer without a decimal point, like `1'.  Report from: Dumas
+ 	Patrice <dumas@centre-cired.fr>, 9 Feb 2004 16:46:30 +0100.
+ 	* makeinfo/multi.c (setup_multitable_parameters): compute width
+ 	and pass it, for clarity.
+ 
+ 2004-02-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (cm_insert_copying): insert double newlines
+ 	instead of one in non XML outputs.
+ 
+ 2004-02-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_code): do not decrement in_fixed_width_font as
+ 	it gets decremented elsewhere.
+ 
+ 2004-02-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (next_nonwhitespace_character): also check
+ 	global input_text since filestack does not contain it.
+ 
+ 2004-02-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (next_nonwhitespace_character): go through the
+ 	whole filestack looking for the next character.
+ 
+ 2004-02-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\indexnofonts): define \bullet .. \result, so
+ 	they can be used in @?index commands.
+ 	Report from: Akim Demaille <akim@epita.fr>, 06 Feb 2004 13:34:15 +0100.
+ 
+ 2004-02-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/xref.c (add_xref_punctuation): if we insert anything,
+ 	make it a period.
+ 	(cm_xref): include command name in error message.
+ 	* doc/texinfo.txi (ref): mention generating a period, if needed.
+ 	Too many complaints when we made a warning for @ref not followed
+ 	by period or comma.
+ 
+ 2004-02-05  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* info/info-utils.c (info_parse_node): look for ``(line '' instead of
+ 	skipping any non-digit characters.
+ 
+ 2004-02-05  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c (insert_index_output_line_no): made ``(line NNN)'' not
+ 	translatable for Info output.
+ 
+ 2004-02-03  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (flush_output): increment node_line_number too.
+ 
+ 	* makeinfo/makeinfo.h: new variable node_line_number to hold the last
+ 	output line number the current node.
+ 
+ 	* makeinfo/nodes.c (cm_node): reset node_line_number just before the
+ 	node start cookie.
+ 
+ 	* makeinfo/files.h: new node member in DELAYED_WRITE struct.
+ 	* makeinfo/files.c (register_delayed_write): save current node name if
+ 	there's one.
+ 	(handle_delayed_writes): adjust line numbers in indices only if the
+ 	output is plaintext, or the index entry appears in the changed node.
+ 
+ 	* makeinfo/index.c (index_add_arg, cm_printindex): use
+ 	node_line_number instead of output_line_number if the output is an
+ 	Info file.
+ 
+ 2004-02-03  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* info/info-utils.h: new line_number member in REFERENCE struct.
+ 
+ 	* info/info-utils.c (info_parse_node): parse (line ...) strings
+ 	from menu items.
+ 	(info_references_internal): save parsed line number in the entry.
+ 
+ 	* info/session.c (info_menu_of_ref_item): if selected entry has a line
+ 	number associated with it, jump to that line after updating window.
+ 
+ 2004-02-02  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (add_xref_punctuation): new function that inserts
+ 	necessary punctuation after @ref and @pxref commands.
+ 	(cm_xref): call add_xref_punctuation when multiple parameters are
+ 	given, make use of next_nonwhitespace_character function in the END
+ 	case.
+ 	(cm_ref): do not call cm_xref in the END case.
+ 
+ 2004-02-02  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (next_nonwhitespace_character): new function.
+ 
+ 2004-02-02  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_code): call xml_start_para instead of tweaking
+ 	in_fixed_width_font, and use entities rather than quotes.
+ 
+ 2004-02-02  Arnold D. Robbins  <arnold@skeeve.com>
+ 
+ 	* makeinfo/cmds.c (cm_TeX, cm_LaTeX): Add docbook support.
+ 	(cm_code): Add opening and closing single quotes for @samp in the
+ 	Docbook output.
+ 	* makeinfo/xml.c (xml_begin_document): Add `tex' and `latex' entities.
+ 	* makeinfo/xref.c (cm_xref): Add `See' and `see' strings for docbook
+ 	and xml.
+ 
+ 2004-01-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (main): fixed ``--option: makeinfo'' messages.
+ 
+ 2004-01-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_TeX, cm_LaTeX): really ignore the arguments as
+ 	the warning suggests.
+ 
+ 2004-01-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_TeX, cm_LaTeX): warn if there are any arguments.
+ 
+ 2004-01-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/files.c (pop_path_from_include_path): do not mock with
+ 	include_files_path address directly, as it confuses realloc.
+ 
+ 2004-01-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (main, usage): new --output-indent option.
+ 
+ 2004-01-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_add_char): break long lines in paragraphs
+ 	when the output format is Docbook.
+ 
+ 2004-01-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/files.c (prepend_to_include_path, append_to_include_path)
+ 	(pop_path_from_include_path): new functions to manipulate
+ 	include_files_path.
+ 
+ 	* makeinfo/makeinfo.c (convert_from_file): prepend the loaded file's
+ 	path to include_files_path in order to make relative include files to
+ 	be found, then remove afterwards.
+ 	(main): make use of new functions for -I and -P options.
+ 
+ 2004-01-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* util/texinfo.dtd: added exdent element.
+ 
+ 2004-01-29  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): call
+ 	xml_begin_document after opening the output stream for writing.
+ 
+ 	* makeinfo/files.c (register_delayed_write): use delayed_command
+ 	instead of command in messages as it may differ from the actual
+ 	command name.  Check the usability of current_output_filename.
+ 
+ 2004-01-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (HTML Splitting): describe when two nodes are
+ 		written to one output file.
+ 
+ 	* doc/texinfo.tex (\TeX): \edef using original \TeX definition.
+ 
+ 2004-01-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/defun.c (process_defun_args, defun_internal):
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion): execute XML
+ 	only blocks for Docbook also.
+ 
+ 	* makeinfo/xml.c: added Docbook elements for definition commands.
+ 	(xml_begin_def_term): for Docbook, generate an Info-like @defun line.
+ 	(xml_insert_element_with_attribute): do not indent DEFINITION and
+ 	DEFINITIONTERM when the output is Docbook.
+ 
+ 2004-01-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c: changed majorheading and the like with bridgehead
+ 	for Docbook.
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): do not start sections
+ 	with @majorheading and the like, only insert title.
+ 
+ 2004-01-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new element EXDENT.
+ 
+ 	* makeinfo/cmds.c (cm_comment): save the paragraph state.
+ 	(cm_exdent): use EXDENT element for XML, LINEANNOTATION for Docbook.
+ 
+ 	* makeinfo/html.c (html_output_head):
+ 	* makeinfo/xml.c (xml_begin_document): erase output_paragraph.
+ 
+ 	* makeinfo/insertion.c (begin_insertion): canonize whitespace around
+ 	copying text.
+ 	(cm_insert_copying): comment fixes.  Do not append newline if the
+ 	output is Docbook.
+ 
+ 	* makeinfo/makeinfo.c (close_paragraph): return if Docbook too.
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): removed newline from
+ 	the end of titles.
+ 
+ 	* makeinfo/lang.c (cm_documentencoding): insert encoding attribute
+ 	into XML and Docbook prologs when handling delayed writes.
+ 
+ 	* makeinfo/xml.c (xml_begin_document): register a delayed write for
+ 	@documentencoding when writing the prolog.
+ 	(xml_end_para): removed docbook checks.
+ 	(xml_insert_element_with_attribute): skip indentation if
+ 	xml_keep_space is true, indent after table element.  When the output
+ 	is Docbook, do not insert xml:space attribute, and do not remove from
+ 	the end of group element and keep_space blocks.
+ 	(xml_add_char): join lines in a paragraph for Docbook too.
+ 
+ 2004-01-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/multi.c (out_char): simple use add_char for XML and Docbook
+ 	outputs too.
+ 
+ 	* makeinfo/makeinfo.c (close_paragraph): just return when the output
+ 	format is XML.
+ 
+ 	* makeinfo/makeinfo.h: new variable xml_indendation_increment.
+ 
+ 	* makeinfo/cmds.c (cm_comment): insert a newline before the comment,
+ 	if there is not already one.
+ 	(cm_noindent_cmd): skip whitespace after the command.
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new element DETAILMENU.
+ 
+ 	* makeinfo/xml.c: menuentry and menucomment should not contain para.
+ 	(xml_indent, xml_indent_end_para): use xml_indentation_increment
+ 	value, and indent only if it is a positive number.
+ 	(xml_start_para): apply indentation for XML output too.
+ 	(xml_end_para): add newline if xml_indentation_increment is positive.
+ 	(xml_insert_element_with_attribute): major indentation fixes.
+ 	(xml_start_menu_entry): skip whitespace at the start of menu comments.
+ 	(xml_add_char): fixed paragraph detection in menus, and added a check
+ 	to detect multiple whitespaces after newline in menu comments.  Do not
+ 	return when inside multitable to avoid concatenation of two lines
+ 	without a space char in between.
+ 
+ 	* makeinfo/insertion.c (cm_insert_copying, cm_lisp, cm_smalllisp)
+ 	(cm_format, cm_smallformat, cm_display, cm_smalldisplay, cm_example)
+ 	(cm_smallexample): do not insert newline when the output is XML.
+ 	(end_insertion): ditto for the above mentioned block commands and
+ 	@group.  Do not increment in_fixed_font for XML output.
+ 	(begin_insertion, end_insertion): enclose @detailmenu in a detailmenu
+ 	element.
+ 
+ 	* util/texinfo.dtd: added detailmenu, and fixed menucomment and
+ 	tableitem definitions.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* util/Makefile.am: substituted catalog in EXTRA_DIST with catalog.in,
+ 	and added catalog to CLEANFILES.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/files.h: new input_filename member in delayed_write struct.
+ 
+ 	* makeinfo/files.c (register_delayed_write): added input_filename to
+ 	saved variables, and adjusted line_number saving.
+ 	(handle_delayed_writes): set input_filename and line_number for
+ 	correct warning and error messages.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats):
+ 	* makeinfo/index.c (cm_printindex): decrement line_number only if
+ 	not handling delayed writes.
+ 
+ 	* makeinfo/float.c (float_type_exists): check if float has a label.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (main): updated copyright year in --version text.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/tests/Makefile.am: commented top2.texi to fix distcheck.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_begin_document): use PUBLIC id for TexinfoML
+ 	instead of SYSTEM.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/Makefile.am: removed texinfo.dtd and texinfo.xsl and ...
+ 
+ 	* util/Makefile.am: added here.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* utils/catalog.in: catalog file for texinfo.dtd.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/texinfo.dtd:
+ 	* makeinfo/texinfo.xsl: moved to ...
+ 
+ 	* utils/texinfo.dtd:
+ 	* utils/texinfo.xsl: here.
+ 
+ 2004-01-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/texinfo.dtd: added ordm and ordf entities and dmn element.
+ 	updated indexterm location in tables.
+ 
+ 2004-01-22  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dofloat): handle empty float type and empty
+ 	float label separately, matching makeinfo behavior.
+ 	* doc/texinfo.txi (Floats): new section, not yet fully written.
+ 	(Special Displays): new chapter to hold it.
+ 	(Footnotes, Images): move these sections to the new chapter.
+ 	(@@-Command Summary): list new commands.
+ 	* NEWS: mention new commands here too.
+ 
+ 2004-01-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_begin_index): move data to a temporary location
+ 	for delayed use and insert back when handling delayed writes.
+ 
+ 	* makeinfo/index.c (cm_printindex): call xml_begin_index when not
+ 	handling delayed writes too.
+ 
+ 2004-01-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: doc fix.
+ 
+ 2004-01-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\commondummies): dummify @tie and remaining
+ 	@<char> commands.
+ 	(\tocindent): reduce to 15pt to match \defaultparindent.
+ 	(\setref): use XR as control sequence prefix
+ 	instead of just X; seems nicer.  Change calls.
+ 
+ 	Finish implementing @listoffloats:
+ 	(\xrdef): keep lists of each float type.
+ 	(\dofloat): save the floattype in the aux file.
+ 	(\Efloat): write the lof text to the aux file.
+ 	(\iffloat, \doiffloat, \listoffloats,
+ 	\listoffloatsdo, \listoffloatsentry): new macros.
+ 	* bootstrap: autoheader should come after aclocal, I think.
+ 
+ 2004-01-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\doitemize): rename from \itemizey.
+ 	(\itemizeitem): do not set \parskip=0 if the last
+ 	thing was a \nobreak (e.g., from \sectionheading).
+ 	Report from: Jesper Harder <harder@ifa.au.dk>,
+ 	17 Jan 2004 22:03:51 +0100.
+ 
+ 	* doc/texinfo.txi (email): no angle brackets in TeX output.
+ 	Report from: Jesper Harder <harder@ifa.au.dk>,
+ 	17 Jan 2004 21:03:21 +0100.
+ 
+ 2004-01-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): Prefixed captions with
+ 	float_type.  For HTML, used an <ul> block.
+ 
+ 2004-01-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* info/info.c (main, info_short_help): new option -w, --where,
+ 	--location that prints the physical location of Info file.
+ 
+ 2004-01-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/defun.c (defun_internal):
+ 	* makeinfo/insertion.c (end_insertion): enclose paragraphs in @def
+ 	blocks in a blockquote element for indentation in the HTML output.
+ 
+ 2004-01-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/html.c (insert_html_tag_with_attribute): new function.
+ 	(insert_html_tag): only call insert_html_tag_with_attribute with
+ 	NULL attribute string and return.
+ 	(push_tag, pop_tag): keep the element attributes in stack too.
+ 	(html_output_head): fixed span.roman in the default CSS.
+ 
+ 	* makeinfo/html.h: new attribs member in hstack struct.
+ 
+ 	* makeinfo/cmds.c (cm_dmn, cm_code, cm_sc, cm_r): use
+ 	insert_html_tag_with_attribute for setting element class.
+ 
+ 2004-01-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\readauxfile): \ must have catcode other to
+ 	handle \ in node/section names.
+ 
+ 2004-01-16  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/toc.c (cm_contents): fixed Docbook element stack underflow.
+ 
+ 	* makeinfo/xml.c (xml_insert_indexterm): set xml_dont_touch_items_defs
+ 	for only XML output.
+ 
+ 2004-01-14  Simon Josefsson <jas@extundo.com>
+ 
+ 	* util/gendocs.sh: new option --html.
+ 
+ 2004-01-14  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/html.c (rollback_empty_tag): rewrote to also identify empty
+ 	elements with attributes.
+ 	(insert_html_tag): increment and decrement in_html_elt.
+ 
+ 	* makeinfo/index.c (index_add_arg): do not call flush_output for xml
+ 	and html outputs as they do not need an accurate output line number
+ 	tracking, and flush_output makes rollback_empty tag useless.
+ 
+ 2004-01-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_code): increment and decrement in_html_elt when
+ 	inserting the class attribute to avoid space char being replaced with
+ 	entities.
+ 	(cm_r, cm_dmn): use insert_string instead of add_word for the class
+ 	attribute.
+ 
+ 2004-01-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_r): changed add_word_args with insert_html_tag,
+ 	and changed inline style with a class attribute.
+ 
+ 	* makeinfo/html.c (insert_html_tag): when the current element is the
+ 	same with the last in the stack, do not return if it's span.
+ 	(html_output_head): new CSS class roman (for @r.)
+ 
+ 2004-01-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/node.c (cm_node): reset output_position when closing the
+ 	current HTML output file.
+ 
+ 	* makeinfo/files.c (handle_delayed_writes): fixed position updating of
+ 	the next writes.
+ 
+ 2004-01-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/files.c (register_delayed_write): reword warning, and
+ 	only warn if writing to stdout, not /dev/null.
+ 
+ 2004-01-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/node.c (glean_node_from_menu): removed unnecessary
+ 	line_number incrementation.
+ 
+ 2004-01-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats):
+ 	* makeinfo/index.c (cm_printindex): decrement line_number just after
+ 	get_rest_of_line to make messages refer to the correct line,
+ 	re-increment it just before returning.
+ 
+ 2004-01-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/node.c (cm_node): fixed prev, next, up nodes defaulting
+ 	code to not make use of @menus after @bye.
+ 
+ 2004-01-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c (cm_printindex): handle @printindex immediately
+ 	if the output format is Docbook, rather than waiting for delayed
+ 	writes.
+ 
+ 2004-01-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): insert xml elements also for
+ 	docbook.
+ 
+ 2004-01-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (float_type_exists): new function that checks if a
+ 	specific type of @float is previously used.
+ 	(cm_listoffloats): warn if requested float_type is unknown.
+ 
+ 2004-01-12  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/files.c (register_delayed_write): warn if delayed write is
+ 	requested when the output file is not seekable.
+ 
+ 2004-01-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Using Include Files): mention the possibility
+ 	of no nodes in an include file.  From Bob.
+ 
+ 2004-01-10  Simon Josefsson  <jas@extundo.com>
+ 
+ 	* makeinfo/node.c (cm_node): Only print ",\n" at correct places.
+ 
+ 2004-01-10  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/html.c (html_output_head): use insert_string instead of
+ 	add_word for css inclusion to avoid reformatting.
+ 
+ 2004-01-09  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new variable xml_dont_touch_items_defs.
+ 
+ 	* makeinfo/cmds.c (cm_comment, cm_sp):
+ 	* makeinfo/xml.c (xml_insert_indexterm): set and unset
+ 	xml_dont_touch_items_defs.
+ 
+ 	* makeinfo/xml.c (xml_insert_element_with_attribute)
+ 	(xml_add_char): do not do anything about @deffnx and @itemx commands
+ 	if xml_dont_touch_items_defs is non-zero.
+ 
+ 2004-01-09  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* info/Makefile.am: define INFODIR2 that points to $datadir/info.
+ 
+ 	* info/info.c (main): prepend INFODIR2 to infopath, if defined and if
+ 	not the same with INFODIR.
+ 
+ 2004-01-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c (cm_printindex): adapted to delayed writing,
+ 	decreased the space between the columns of plaintext output.
+ 
+ 	* makeinfo/float.c (cm_listoffloats): disabled menu header checks,
+ 	synced column_width with @printindex.
+ 
+ 2004-01-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c: moved INDEX_ELT and INDEX_ALIST typedefs to ...
+ 
+ 	* makeinfo/index.h: here
+ 
+ 	* makeinfo/files.h:
+ 	* makeinfo/files.c (register_delayed_write): save line number in input
+ 	document that the calling command is in.
+ 	(handle_delayed_writes): adjust byte offsets in tag table and output
+ 	line numbers in all of the indices,
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): when finished, write
+ 	the tag table after handling delayed writes.
+ 
+ 	* makeinfo/node.c (write_tag_table): accept a filename argument, and
+ 	open the file in append mode.
+ 
+ 2004-01-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (add_new_float):
+ 	* makeinfo/float.h: save the line number @float command used.
+ 
+ 2004-01-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/toc.c (cm_contents): moved the call to html_output_head
+ 	to ...
+ 
+ 	* makeinfo/files.c (register_delayed_write): here.
+ 
+ 2004-01-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): adapted for delayed writing,
+ 	and slightly fixed formatting with no_headers.
+ 
+ 2004-01-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c: use cm_contents for @shortcontents
+ 	and @summarycontents too.
+ 
+ 	* makeinfo/files.c (register_delayed_write)
+ 	(handle_delayed_writes): new functions.
+ 
+ 	* makeinfo/files.h: new delayed_write struct and
+ 	handling_delayed_writes variable.
+ 
+ 	* makeinfo/makeinfo.c (insert): use whitespace macro instead of
+ 	testing characters manually.
+ 	(convert_from_loaded_file): call handle_delayed_writes when finished.
+ 
+ 	* makeinfo/toc.c (contents_update_html, contents_update_info)
+ 	(shortcontents_update_html, shortcontents_update_info): changed file
+ 	read/writes with insert and insert_string.
+ 	(rewrite_top, contents_update, shortcontents_update)
+ 	(toc_update, cm_shortcontents): removed functions.
+ 	(cm_contents): for HTML and Info, only call register_delayed_write if
+ 	handling_delayed_writes is not true.  Call contents_update_html and
+ 	other variants according to output format and command name.
+ 
+ 	* makeinfo/toc.h: removed obsolete variables and functions.
+ 
+ 2004-01-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c (index_add_arg): keep line number of the index
+ 	entry where it appears in the output.
+ 	(insert_index_output_line_no): new function.
+ 	(cm_printindex): call insert_index_output_line_no for info and
+ 	plaintext outputs.
+ 
+ 2004-01-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.h: new variable output_line_number.
+ 
+ 	* makeinfo/makeinfo.c (flush_output): keep number of lines in the
+ 	flushed data, in output_line_number variable.
+ 
+ 2004-01-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): when there is no caption, do not
+ 	insert space between the float number and the colon.
+ 
+ 2004-01-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): use shorttitle only if it's
+ 	defined.
+ 
+ 2004-01-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c: new command @shortcaption.
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new element SHORTCAPTION.
+ 
+ 	* makeinfo/insertion.c (cm_caption): insert CAPTION or SHORTCAPTION
+ 	according to command.
+ 	(begin_insertion): read @shortcaption too.  Fixed XML floatpos
+ 	contents.
+ 
+ 	* makeinfo/float.h: added shorttitle and position to the float_elt
+ 	struct.
+ 
+ 	* makeinfo/float.c (add_new_float): accept a shorttitle argument.
+ 	(current_float_shorttitle, current_float_position): new functions.
+ 	(cm_listoffloats): if title is too long to fit into a line, try
+ 	shorttitle.
+ 
+ 2004-01-07  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.h: new variable node_has_listoffloats.
+ 
+ 	* makeinfo/float.c (cm_listoffloats): insert menu header string only
+ 	if node_has_listoffloats is not true.
+ 
+ 	* makeinfo/node.c (cm_node): reset node_has_listoffloats.
+ 
+ 2004-01-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): fixed a thinko in @float
+ 	arguments parsing code, regarding string termination; changed manual
+ 	input text skipping with skip_whitespace_and_newlines for proper
+ 	line_number handling; and changed magic number 10 with sizeof for
+ 	improved readability.
+ 
+ 	* makeinfo/float.c (cm_listoffloats): end paragraph before the menu
+ 	header.  Use add_html_block_elt to insert <div> element.
+ 
+ 2004-01-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/crossrefs.c:
+ 	* makeinfo/crossrefs.h: moved to ...
+ 
+ 	* makeinfo/xref.c:
+ 	* makeinfo/xref.h: new files.
+ 
+ 	* makeinfo/Makefile.am:
+ 	* makeinfo/cmds.c:
+ 	* makeinfo/footnote.c:
+ 	* makeinfo/html.c:
+ 	* makeinfo/makeinfo.c:
+ 	* makeinfo/node.c:
+ 	* makeinfo/node.h:
+ 	* makeinfo/sectioning.c:
+ 	* makeinfo/toc.c: adjusted for new names.
+ 
+ 2004-01-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c:
+ 	* makeinfo/makeinfo.h: moved cross referencing commands to ...
+ 
+ 	* makeinfo/crossrefs.c:
+ 	* makeinfo/crossrefs.h: new files.
+ 
+ 	* makeinfo/cmds.c:
+ 	* makeinfo/footnote.c:
+ 	* makeinfo/html.c:
+ 	* makeinfo/makeinfo.c:
+ 	* makeinfo/node.c:
+ 	* makeinfo/sectioning.c:
+ 	* makeinfo/toc.c: added crossrefs.h to includes.
+ 
+ 	* makeinfo/Makefile.am: added new files crossrefs.c and crossrefs.h
+ 
+ 2004-01-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/node.c (cm_node): removed ``Node: <nodename>'' from the
+ 	node headers.
+ 
+ 2004-01-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): keep line_number the same
+ 	before and after get_until, so messages issued inside full_expansion
+ 	have correct line numbers.
+ 
+ 2004-01-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (handle_menu_entry):
+ 	* makeinfo/node.c (glean_node_from_menu): adjust line_number.
+ 
+ 2004-01-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\rawbackslashxx): rename to \backslashcurfont,
+ 	to keep reducing the number of `xx's here.
+ 
+ 	* doc/texinfo.tex (\setref): call \atdummies, not \indexnofonts; we
+ 	need to keep the user's commands.
+ 	(\dofloat): call \indexnofonts and \turnoffactive
+ 	to support commands and special characters in the
+ 	float type name.
+ 
+ 	* doc/texinfo.txi (firstparindent): shorten name so it doesn't
+ 	break in the toc.
+ 
+ 2004-01-05  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/html.c (html_output_head): new CSS entry span.sc for
+ 	small-caps font variant.
+ 
+ 	* makeinfo/cmds.c (cm_sc): use span with class attribute sc, instead
+ 	of small.
+ 
+ 2004-01-04  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\commondummies, \indexnofonts): Merge the
+ 	  common part of these two to ...
+ 	  (\commondummiesnofonts): ... a new macro.
+ 	  (\indexdummylatex, \indexdummytex, \indexdummydots): Nuke,
+ 	  the time saved is not worth the hassle.
+ 
+ 2004-01-04  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\makedispenv): Determine the size of the fonts
+ 	  according to the value of SETdispenvsize, using ...
+ 	  (\setnormaldispenv, \setsmalldispenv, \SETdispenvsize, \smallword):
+ 	  (\nosmallword): ... these new macros.
+ 	  (\flushleft): No longer defined via \makedispenv.
+ 
+ 2004-01-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\TeX): new macro, copying plain but make a
+ 	period following end a sentence.  Idea from LaTeX.
+ 
+ 2004-01-02  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/node.c (clean_old_split_files): new function.
+ 	(split_file): moved filename generation code to a ...
+ 	(enumerate_filename): new function.
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): call
+ 	clean_old_split_files before calling split_file.
+ 
+ 2004-01-02  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (create_html_directory): new function.
+ 	(insert_toplevel_subdirectory): moved common if blocks to
+ 	create_html_directory.  Adjusted checks to reuse existing
+ 	directories, and remove existing <output>.html files, when
+ 	falling back to suffices.
+ 
+ 2004-01-02  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_code): for HTML, use span for @command, @env,
+ 	@file, @option and @samp, and insert command name as class attribute.
+ 
+ 2003-12-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (add_char, handle_menu_entry): end <ul> block
+ 	before inserting <p>, and restart afterwards.
+ 
+ 2003-12-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (handle_menu_entry): for HTML, append colon only
+ 	if there is a description following the menu item.
+ 
+ 2003-12-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (usage): removed short forms of output options.
+ 
+ 2003-12-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* cmds.c (cm_comment): do not output comments before HTML header is
+ 	written.
+ 
+ 2003-12-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (main): new option --plaintext.
+ 	(usage): added short forms of --html, --xml, --docbook and --plaintext
+ 	to the help text.
+ 
+ 2003-12-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/multi.c (multitable_item): removed thead and tbody from
+ 	HTML tables.  Added hsep after @headitem for Info.
+ 	(multitable_item, multitable_tab): for HTML, use th instead of td for
+ 	@headitem rows.
+ 
+ 	* makeinfo/xml.c (xml_begin_multitable): moved Docbook TGROUP code to
+ 	a ...
+ 	(xml_begin_multitable_group): new function.
+ 	(xml_end_multitable_row): restart TGROUP on @headitem.
+ 	(xml_end_multitable): warn if @headitem is the last item in
+ 	multitable, and output format is Docbook.  Joined common code between
+ 	XML and Docbook.
+ 
+ 2003-12-30  Arnold D. Robbins  <arnold@skeeve.com>
+ 
+ 	* makeinfo/cmds.c (cm_strong): Use <emphasis role="bold"> for docbook.
+ 
+ 2003-12-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): substituted fixed numbers with
+ 	the sizeof operator where possible, and commented code where not, to
+ 	improve code readability.
+ 
+ 2003-12-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): do not escape backslash and double
+ 	quote characters in plaintext output.
+ 
+ 2003-12-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): do not write magic cookie when
+ 	output format is plaintext.
+ 
+ 2003-12-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (add_char): added forgotten html check to
+ 	in_html_block_level_elt if block.
+ 
+ 2003-12-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: added new element alttext (IMAGEALTTEXT),
+ 	as a child of image.
+ 
+ 	* makeinfo/makeinfo.c (cm_image): moved alttext attribute to the new
+ 	alttext child in XML output, to keep markup intact.  Moved filename
+ 	CDATA to name attribute.
+ 
+ 	* makeinfo/texinfo.dtd: updated image element.
+ 
+ 2003-12-30  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): use HTML entities in alt attribute.
+ 
+ 2003-12-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (cm_item): do not call close_single_paragraph
+ 	and use rollback_empty_tag for empty <dd> removal.
+ 
+ 2003-12-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/html.c (rollback_empty_tag): new function.
+ 	(insert_html_tag): try rollback_empty_tag before closing both
+ 	tag and old_tag.
+ 
+ 2003-12-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_sp): for HTML use <pre>.
+ 
+ 	* makeinfo/defun.c (defun_internal): do not close paragraph when
+ 	outputting HTML to avoid empty <p> elements.
+ 	(process_defun_args): joined duplicate if/else blocks.
+ 
+ 	* makeinfo/html.c (insert_html_tag): removed redundant paragraph
+ 	starting code.
+ 
+ 	* makeinfo/insertion.c (begin_insertion): keep state of the first <dt>
+ 	child of a <dl> in the new html_deflist_has_term variable for ...
+ 	(cm_item): cleaner <br> insertion checks.  Fixed non-functional empty
+ 	<dd> rollback code.
+ 
+ 	* makeinfo/makeinfo.c (add_html_block_elt, add_html_block_elt_args):
+ 	new functions for inserting block level elements that must not be
+ 	preceded by a <p> element.
+ 	(add_char): insert <p> only if in_html_block_level_elt is not true.
+ 
+ 	* makeinfo/cmds.c (cm_comment, cm_center):
+ 	* makeinfo/footnote.c (output_pending_notes):
+ 	* makeinfo/html.c (html_output_head):
+ 	* makeinfo/index.c (cm_printindex):
+ 	* makeinfo/insertion.c (enum_html, begin_insertion, end_insertion)
+ 	(handle_verbatim_environment, cm_item):
+ 	* makeinfo/makeinfo.c (handle_menu_entry):
+ 	* makeinfo/multi.c (do_multitable):
+ 	* makeinfo/node.c (cm_node):
+ 	* makeinfo/sectioning.c (sectioning_html): use add_html_block_elt and
+ 	add_html_block_elt_args instead of add_word and add_word_args
+ 	respectively, when inserting <ul>, <div>, <h?> and the like.
+ 
+ 2003-12-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Def Cmd Continuation Lines): new node.
+ 	* NEWS: mention this new feature.
+ 
+ 2003-12-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): inhibit paragraph indentation
+ 	for more cases after example, display and the like environments.
+ 
+ 	* makeinfo/xml.c (xml_start_para, xml_end_para): made <para> and
+ 	</para> indentation more newline-aware.
+ 
+ 2003-12-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion, cm_example, cm_smallexample)
+ 	(cm_lisp, cm_smalllisp, cm_format, cm_smallformat, cm_display)
+ 	(cm_smalldisplay): unified whitespaces inside these elements
+ 	in XML and Docbook output (always one newline at the beginning
+ 	and one at the end).
+ 
+ 2003-12-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/lang.c (cm_accent_generic_no_headers): do not issue
+ 	warnings when substituting non-ASCII accents with punctuation.
+ 
+ 2003-12-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): rparen is not allowed after all,
+ 	confirmed by experimentation (thanks to Luc).
+ 	* doc/texinfo.txi (ref): remove it from doc.
+ 
+ 2003-12-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): when finished, do
+ 	not indent body and html closing tags, and do not use comment tags if
+ 	there is no trailing information.
+ 
+ 2003-12-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_acronym):
+ 	* makeinfo/cmds.h: save second arguments of acronym in acronyms_stack
+ 	and reuse them as title attributes of acronym element of HTML output,
+ 	when there is only one argument given.
+ 
+ 2003-12-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): use text_expansion for alt
+ 	attribute of images.
+ 
+ 2003-12-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): do not insert "%s "
+ 	unconditionally for title enumerations, which causes unnecessary
+ 	blanks for @unnumbered and @top.
+ 
+ 2003-12-23  Arnold D. Robbins  <arnold@skeeve.com>
+ 
+ 	* float.h (FLOAT_ELT): New member: `title_used'. Avoids reuse of
+ 	title inside nested floats.
+ 	(current_float_used_title, current_float_set_title_used): declared.
+ 
+ 	* float.c (add_new_float): Init `new->title_used' to zero.
+ 	(current_float_used_title, current_float_set_title_used): new
+ 	functions.
+ 
+ 	* xml.c (xml_begin_docbook_float): Make use of new functions to
+ 	avoid omitting title, tag, id if have already done so inside
+ 	nested float.
+ 
+ 2003-12-22  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): warn if character after @ref does
+ 		not produce a valid Info ref.
+ 	(cm_ref): call cm_xref in both START and END cases.
+ 	* doc/texinfo.txi (ref): make the second example being a "wrong"
+ 	        one explicit (report from Luc), and mention the warning.
+ 
+ 2003-12-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\comma): new command.
+ 	* makeinfo/cmds.c (cm_comma): new fn.
+ 	(command_table): use it for @comma.
+ 	* doc/texinfo.txi (Atsign Braces Comma): Rename node.
+ 	(Inserting a Comma): new node.
+ 	(@@-Command Summary): include it here.
+ 
+ 2003-12-20  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.13.1.
+ 
+ 2003-12-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\ordf, \ordm): use \lllsize instead of \lsize.
+ 	Advice from Steve Peter.
+ 
+ 	* doc/texinfo.txi (Printing Indices & Menus): typo, @@index ->
+ 		@@vindex.  From Luc.
+ 
+ 2003-12-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_acronym): read and make use of second argument
+ 	like texinfo.tex does.
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h:
+ 	* makeinfo/texinfo.dtd: new elements acronymword and acronymdesc.
+ 
+ 2003-12-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): insert float element for
+ 	docbook too.
+ 
+ 2003-12-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi, doc/info-stnd.texi: fix incorrect cross-manual
+ 	xrefs.  From: Juri Linkov <juri@jurta.org>, 18 Dec 2003 05:01:07 +0200.
+ 
+ 2003-12-18  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (insert): rollback unnecessary whitespace before
+ 	newline characters.
+ 
+ 2003-12-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\ordf, \ordm): new macros.
+ 	(\commondummies): include them.
+ 	(\indexnofonts): here too.
+ 	* makeinfo/makeinfo.c (command_table): add them.
+ 	* makeinfo/lang.c (cm_special_char): first cut at handling them.
+ 	* doc/texinfo.txi (Inserting Accents): document them.
+ 
+ 2003-12-16  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/defun.c (process_defun_args): use execute_string instead
+ 	of add_word so accent commands are honored.
+ 
+ 2003-12-16  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_begin_document): output xml process instruction
+ 	also in the Docbook prolog.
+ 
+ 2003-12-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (dots): document enddots spacing.
+ 
+ 2003-12-16  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\dots): Use \hfil instead of \hss and only
+ 	  the stretch factor in explicit skips; I don't suppose the dots
+ 	  will overlap.
+ 	  (\enddots): Merged with \dots.
+ 
+ 2003-12-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): quote the src= arg in the Info
+ 	case, since apparently that's what Jan implemented.  Report from:
+ 	Torsten Bronger <bronger@physik.rwth-aachen.de>, 16 Dec 2003
+ 	12:55:30 +0100.
+ 
+ 	* util/dir-example: wdiff tools.
+ 
+ 2003-12-15  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\dofloat): Move \startsavinginserts before
+ 	  the begin of the vtop; it's still local---within the group
+ 	  open by \float.
+ 	  (\dofloat, \Efloat): Fix indentation.
+ 
+ 2003-12-15  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\innerdef, \innernewcount): Nuked.
+ 	  (\getfloatno): New macro, to establish the right float count.
+ 
+ 2003-12-15  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\innernewbox): Nuked, the call expanded.
+ 
+ 2003-12-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/tests/*: unset TEXINFO_OUTPUT where necessary.
+ 
+ 2003-12-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Smallcaps, acronym): Compare and contrast these
+ 		a bit more fully.
+ 	* doc/texinfo.tex (\setfontstyle): just \def the string; since we
+ 		are \edef'd, we can't make ourselves a control sequence.
+ 	(\selectfonts): new macro.
+ 	(\doacronym): print acronym in smaller size, and \unsepspaces for
+ 		if we're called inside @display.
+ 	(\registeredsymbol): we can use \lllsize here too.
+ 
+ 	* configure.ac: gettext 0.13 (many generated files updated).
+ 
+ 	* Makefile.am (AUTOMAKE_OPTIONS): 1.8.
+ 
+ 	* makeinfo/makeinfo.c: give warning if TEXINFO_OUTPUT value is
+ 		unrecognized.
+ 	* doc/texinfo.txi (makeinfo options): document TEXINFO_OUTPUT.
+ 
+ 	* doc/texinfo.txi (tex): document @LaTeX.
+ 
+ 	* doc/texinfo.tex (\loggingall): reduce \errorcontextlines for
+ 	sake of infinite loops.
+ 	(\setfontstyle): \def better than \edef?
+ 	(\commondummies): LaTeX is a new dummy.
+ 	(\indexdummies): likewise.
+ 	(\indexdummylatex): sorted the obvious way.
+ 
+ 	* doc/texinfo.tex (\LaTeX): New macro for new command.
+ 	(\setfontstyle): new macro to remember current font style.
+ 	(\rm,\it,\sl,\bf,\tt,\sf,\ttsl): call it; all but
+ 	the last two are new too.
+ 	(\ssecsc): use correct magnification, we do for everything else.
+ 	(\reducedrm..\reducedsy): new fonts.
+ 	(\reducedfonts): new macro.
+ 	(\textfonts..\smallerfonts): set \lsize and \lllsize macros.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (main): changed TEXINFO_XML_OUTPUT to
+ 	TEXINFO_OUTPUT.  It now specifies the default output format.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/defun.c (defun_internal): implemented basic line
+ 	continuation.
+ 
+ 2003-12-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* CVSROOT/loginfo: put filename/version number in mail subject.
+ 
+ 	* util/srclist.txt (help2man): remove, we require cvs-builders to
+ 		have this installed now (or accept `missing's replacement),
+ 		along with the rest of the dev tools.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/defun.c (defun_internal):
+ 	* makeinfo/insertion.c (end_insertion): do not use tables for HTML
+ 	@deffns.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): strip whitespace from @float
+ 	arguments.
+ 
+ 	* makeinfo/sectioning.c: last_section_title and last_section_number
+ 	now default to empty strings.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_LaTeX): new function for @LaTeX{}.
+ 
+ 	* makeinfo/texinfo.dtd: new latex entity.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.h:
+ 	* makeinfo/xml.c: new element DIMENSION.
+ 
+ 	* makeinfo/cmds.c (cm_dmn): new function for @dmn.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (main): if TEXINFO_XML_OUTPUT envvar is set,
+ 	default to XML output.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (main): enabling one output format effectively
+ 	disables others.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/lang.h:
+ 	* makeinfo/lang.c (current_document_encoding): new function.
+ 
+ 	* makeinfo/xml.c (xml_begin_document): specify encoding in the XML
+ 	prolog if different from no_encoding.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/texinfo.dtd: moved documentlanguage out of para.
+ 
+ 2003-12-13  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (add_new_float): now expects position argument too.
+ 
+ 	* makeinfo/insertion.c (begin_insertion): read arguments from @float
+ 	line, do not look for @anchor.
+ 	(end_insertion): changed info caption style.
+ 	(cm_caption): use is_in_insertion_of_type instead of
+ 	current_insertion_type.
+ 
+ 	* makeinfo/xml.h:
+ 	* makeinfo/xml.c: new element floatpos.
+ 	(xml_begin_enumerate): check actual supplied value, not first digit.
+ 	Also special case for GPL's silly `@enumerate 0'.  From Aharon Robbins
+ 	<arnold@skeeve.com> Tue, 9 Dec 2003 12:38:04 +0200.
+ 
+ 2003-12-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (ifnotdocbook,ifnotxml): define these @-commands.
+ 	Report from Arnold.
+ 
+ 	* doc/texinfo.tex (\setfilename): make the \openout\auxfile be
+ 	\immediate, again.
+ 
+ 2003-12-09  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\envparseargdef): New macro, a combination
+ 	  of \envdef and \parseargdef.
+ 	  (\enumerate, \float): Use it.
+ 
+ 2003-12-09  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\float, \Efloat, \caption, \shortcaption):
+ 	(\listoffloats): Adapt to the new environment definition framework.
+ 
+ 2003-12-09  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\setref, \xrefX): Make the ``\indexnofonts''
+ 	  setups in these two consistent.
+ 
+ 2003-12-09  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\innernewbox): New macro, non-outer \newbox.
+ 	  (\newsaveinsX): Use it.
+ 
+ 2003-12-09  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex: after test for epsf.tex, \closein 1, even if the
+ 	  file wasn't there.
+ 	  (\summarycontents, \tryauxfile): Similarily, \closein 1 even if eof.
+ 	  (\startcontents, \contents, \summarycontents): fix indentation.
+ 
+ 2003-12-09  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\pdfmakeoutlines): Fix a typo, need
+ 		\def\thisubsecnum not \let.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\makedefun): Add `\def\deffnheader' or the like
+ 	  at the end; all calls of this macro changed.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\normaldefunargs): Renamed to ...
+ 	(\defunargs): ... this; all callers changed.
+ 	(\ampdefunargs): Nuked, the only call expanded.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\setfilename): Simplify the code for conditional
+ 	\input of texinfo.cnf.
+ 	(\contents): Call \pdfmakeoutlines only if .toc exists.
+ 	(\pdfmakeoutlines): Thus .toc must exist, no need to check again.
+ 	(\documentlanguage): Simplify, fix indentation.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\center): Separate the horizontal and vetical...
+ 	(\centerH, \centerV): ... versions; account for \leftskip in \centerV.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\group, \Egroup): Don't call \offinterlineskip;
+ 	to fix the line spacing after the group, propagate \prevdepth.
+ 	(Else, @exdent inside @group gets the wrong spacing.)
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\acronym): Check for second parameter, ...
+ 	(\doacronym): using this new function; remove smallcaps.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\pdfmakeoutlines): Make the counting macros
+ 	  robust, so that they won't break on incorrectly nested sections.
+ 	  (For instance, in the bzip2 manual.)
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\author): If appears inside a @quotation
+ 	environment, interpret it as an affiliation; otherwise it has to
+ 	appear directly inside @titlepage.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\argremovec, \argcheckspaces): Add support for
+ 	continued lines to \parsearg, while ...
+ 	(\domakedefun, \printdefunline): ... removing it from @defun's ...
+ 	(\parsedefunline): ... and thus nuking this.
+ 	(\startdefunx): Replaced by ...
+ 	(\dodefunx): ... this; it reuses the code of the respective @defun.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\defparsearg): Rename to ...
+ 	(\parseargdef): ... this; all uses changed.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	New framework for environments in texinfo.tex.  It's used like this:
+ 		\envdef\foo{...}
+ 		\def\Efoo{...}
+ 	It's the responsibility of \envdef to insert \begingroup before the
+ 	actual body; @end closes the group after calling \Efoo.
+ 	\envdef also defines \thisenv, so the current environment is known;
+ 	@end checks whether the environment name matches.
+ 	The \checkenv macro can be used also elsewhere to check whether the
+ 	current environment is the one expected.
+ 
+ 	Non-false conditionals (@iftex, @ifset) don't fit into this, so they
+ 	are not treated as enviroments; they don't open a group.
+ 	(The implementation of @end takes care not to call \endgroup in this
+ 	special case.)
+ 
+ 	* doc/texinfo.tex: All environment definitions, true conditionals and
+ 	@ifset, @ifclear, changed.
+ 
+ 	Another issue:
+ 	@set and @value allowed - and _ in variable names, but @clear, @ifset
+ 	and @ifclear were not ready to accept such variables.
+ 
+ 	* doc/texinfo.tex (@set, @clear, @ifset, @ifclear): Call
+ 	\makevalueexpandable.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\multitable): Move \everytab={} and the check
+ 	for saved inserts to \everycr; thus \item is \crcr again.
+ 	(\Emultitable): Call \setpercentfalse only after the last \crcr.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\readauxfile): Read it, unconditinally;
+ 	don't open the aux file for writing.
+ 	(\tryauxfile): A new wrapper around \readauxfile, which checks
+ 	whether the file exists.
+ 	(\setfilename): Call \tryauxfile, then open the aux file for writing.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\readauxfile): Don't hide serious problems by
+ 	setting the catcode of backslash to other.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\setref): Call \indexnofonts to get nicer names
+ 	of reference identifiers expanded in \edef.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\scanmacro): Add \spaceisspace, in case we are
+ 	  in an environment with active spaces; without this, \eatspaces
+ 	  didn't work.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\scanmacro): Define only one version, using ...
+ 	  (\scantokens): ... which is a primitive of e-TeX; under ordinary
+ 	  TeX, define a replacement.
+ 
+ 2003-12-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\spaceisspace): A macro which resets space's
+ 	catcode to its normal value; use where appropriate.
+ 
+ 2003-12-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: use etex/pdfetex if available.
+ 	(findprog): new helper fn.
+ 	* NEWS (texi2dvi): mention this.
+ 	* doc/texinfo.txi (Format with texi2dvi): use @TeX{} instead of
+ 	@code{tex}, since we don't literally run `tex' any more.
+ 
+ 	* info/session.c (info_select_reference_this_line): don't crash if
+ 	we have no window->line_starts, as it is after
+ 	set-screen-height to less than 5.
+ 	Report from: Christian Biere <christianbiere@gmx.de>,
+ 	8 Dec 2003 19:12:08 +0100.
+ 
+ 	* doc/texinfo.tex (\comma): new command.
+ 
+ 	* bootstrap: make need for --enable-maintainer-mode more explicit.
+ 
+ 	* doc/texinfo.tex (\xrefX): otherify everything before getting the
+ 	-title \csname, so that _'s (et al.) are allowed.
+ 
+ 2003-12-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\xrefX): handle float case.
+ 	(\parsefloat): take additional optional arg for xref label.
+ 	(\dofloat): call \setref to define the float in
+ 	the aux file.
+ 	(\Yfloat): new macro for \setref.
+ 	(\floatmagic): new macro for \xrefX and \dofloat
+ 	to communicate.
+ 
+ 2003-12-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Not Ending a Sentence): mention special
+ 	entities output for @: in Docbook and XML.
+ 
+ 2003-12-02  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_punct): new function to handle @., @! and @?
+ 	commands.
+ 	(cm_comment): crunch multiple dashes to a single dash for XML
+ 	validity.
+ 
+ 	* makeinfo/texinfo.dtd: new entities: period, eosperiod, quest,
+ 	eosquest, excl, eosexcl.
+ 
+ 2003-12-02  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): look for a newline before
+ 	@anchor and @caption commands in floatenv.
+ 
+ 2003-12-2 Arnold Robbins  <arnold@skeeve.com>
+ 
+ 	* makeinfo/insertion.c (end_insertion): Change tests for docbook
+ 	and insertion to check current insertion type instead of if deep
+ 	inside a float insertion.
+ 	(cm_example, cm_smallexample, cm_lisp, cm_smalllisp, cm_cartouche)
+ 	(cm_caption): Same.
+ 
+ 	* xml.h (FLOATCARTOUCHE): New constant.
+ 	* xml.c (texinfoxml_element_list, docbook_element_list): Add "sidebar"
+ 	for FLOATCARTOUCHE.  For docbook, map @display, @smalldisplay to
+ 	"literallayout".
+ 	(replacement_elements): Add entry for CARTOUCHE -> FLOATCARTOUCHE.
+ 	(xml_begin_docbook_float): Special case for CARTOUCHE, sidebars don't
+ 	have labels.
+ 
+ 2003-12-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\float, \listoffloats): new macros for new
+ 		@-commands -- skeletal implementation only now.
+ 
+ 	From: Aharon Robbins <arnold@skeeve.com>, 1 Dec 2003 17:43:12 +0200:
+ 	* makeinfo/float.h (current_float_type): declare.
+ 	* makeinfo/cmds.c (cm_colon): new fn.
+ 	(command_table): use it for @:.
+ 
+ 2003-11-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (@turnoffactive): include @unsepspaces, so
+ 	spaces in anchor names don't expand in the .aux file.  From
+ 	Stepan.
+ 
+ 2003-11-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Abstract Objects): class names are no longer
+ 	printed in rm by default.
+ 	* doc/texinfo.tex (\cite): redefine to always use \sl, never \ttsl.
+ 	* doc/texinfo.tex (\ttslanted): new macro.
+ 	(\normaldefunargs): use it for @var; go back to
+ 	\sl by default.
+ 
+ 	* doc/texinfo.txi: document @deftypecv.
+ 
+ 2003-11-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_comment): do not perform expansion.
+ 
+ 2003-11-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_r): also set font-weight to normal in HTML.
+ 
+ 2003-11-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_comment): new function to output comments in
+ 	HTML, XML and Docbook outputs.
+ 
+ 2003-11-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c: new section and section_name properties in
+ 	index_elt struct.
+ 
+ 	* makeinfo/index.c (index_add_arg): save current section number and
+ 	title for plain text output.
+ 	(cm_printindex): simplified printing with no_headers output.
+ 
+ 2003-11-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.h: new section and section_name properties in
+ 	float_elt struct.
+ 
+ 	* makeinfo/float.c (add_new_float): save current section number and
+ 	title for plain text output.
+ 	(cm_listoffloats): list floats with no_headers too, following
+ 	printindex @example.
+ 
+ 2003-11-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.h:
+ 	* makeinfo/sectioning.c (current_sectioning_number)
+ 	(current_sectioning_title): new functions.
+ 
+ 	* makeinfo/sectioning.c (get_sectioning_number): moved space char at
+ 	the end of numbers to ...
+ 	(insert_and_underscore, sectioning_html): here.
+ 	(get_sectioning_number, insert_and_underscore): keep track of the last
+ 	number/title to be used by @float, @cindex like commands that need to
+ 	know in which section they are used.
+ 
+ 2003-11-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_math): new function that encloses @math
+ 	statements in a math element in XML.
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new element math.
+ 
+ 2003-11-27  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): made the layout in Info output
+ 	the same with indices.
+ 
+ 2003-11-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c (cm_listoffloats): generate a menu for Info, with
+ 	automatically shortened captions.
+ 
+ 2003-11-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_acronym): use acronym element for HTML.
+ 	Report from: Torsten Bronger <bronger@physik.rwth-aachen.de>
+ 	Tue, 25 Nov 2003 10:30:52 +0100.
+ 
+ 2003-11-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.c (cm_appendix): reset numbers only when
+ 	changing enum_marker.
+ 
+ 2003-11-25  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c (cm_printindex): made Appendix matching locale
+ 	aware.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/index.c (cm_printindex): also catch Appendix and A.1 kind
+ 	of numbers with --no-headers Info output.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (cm_example):
+ 	* makeinfo/xml.c (xml_insert_docbook_image, xml_begin_multitable):
+ 	moved common floatenv handling to ...
+ 	(xml_begin_docbook_float): here.
+ 
+ 	* makeinfo/insertion.c (end_insertion, cm_smallexample, cm_lisp)
+ 	(cm_smalllisp): insert FLOATEXAMPLE for Docbook if inside @float.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (is_in_insertion_of_type): don't return the
+ 	level, as it is not useful.
+ 	(begin_insertion): instead of is_in_insertion_of_type, use
+ 	float_active.
+ 
+ 	* makeinfo/insertion.c (cm_example):
+ 	* makeinfo/xml.c (xml_insert_docbook_image, xml_begin_multitable):
+ 	insert empty label for @floats with no @anchor.
+ 
+ 2003-11-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (EXTRA_DIST): remove no-longer-defined
+ 	noinst_SCRIPTS.
+ 
+ 2003-11-24  Akim Demaille  <akim@epita.fr>
+ 
+ 	* configure.ac (HELP2MAN): Look for it.
+ 	* doc/help2man: Remove.
+ 	* doc/Makefile.am (HELP2MAN, noinst_SCRIPT): Remove.
+ 	(common_mandeps): Don't depend on HELP2MAN which can be a complex
+ 	command such as "missing --run help2man.
+ 
+ 2003-11-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: doc/\global fixes.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c: new command @listoffloats.
+ 
+ 	* makeinfo/float.c (count_floats_of_type_in_chapter): only count
+ 	floats with @anchors.
+ 	(cm_listoffloats): new function.
+ 
+ 	* makeinfo/insertion.c (end_insertion): do not prepend float type and
+ 	number if no @anchors.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new element listoffloats.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.h: number sections by default.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): if a reference is being made to a
+ 	float with only one parameter, use the float number in HTML, and
+ 	prepend it to the link in Info outputs.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.h:
+ 	* makeinfo/float.c (get_float_ref): new function to retrieve a float's
+ 	number by its id.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): indent the first paragraph
+ 	after @float.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c: new commands @float and @caption.
+ 
+ 	* makeinfo/insertion.h: new environment floatenv.
+ 
+ 	* makeinfo/insertion.c (cm_float, cm_caption): new functions.
+ 	(begin_insertion, end_insertion): handle floatenv.
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new elements float, floattype, caption, floattable,
+ 	floatfigure, floatexample.
+ 
+ 	* makeinfo/insertion.c (cm_example):
+ 	* makeinfo/xml.c (xml_insert_docbook_image, xml_begin_multitable):
+ 	insert label and id attributes, title element for docbook if used
+ 	inside @float.
+ 
+ 	* makeinfo/xml.c: replacements for multitable and informalfigure.
+ 	(xml_insert_element_with_attribute): special-cased float element for
+ 	docbook to make it appear in element stack and thus enable element
+ 	replacements inside floatenv.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/float.c:
+ 	* makeinfo/float.h: new files for float environment functions.
+ 
+ 	* makeinfo/Makefile.am: added new files to makeinfo_SOURCES.
+ 
+ 2003-11-24  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): xstrdup the result from
+ 	xml_get_assoc_for_id, as it gets freed later.
+ 
+ 	* makeinfo/xml.c (xml_get_assoc_for_id, xml_associate_title_with_id):
+ 	reimplemented unnumbered_labels handling.
+ 	(xml_insert_docbook_image): Docbook expects format attribute values to
+ 	be uppercase.
+ 
+ 2003-11-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: doc fix for multitable.
+ 	* util/gendocs.sh: docbook support, from Simon Josefsson.
+ 
+ 	* doc/texinfo.tex (\defttsl): new font.
+ 	(\df): set ttsl too.
+ 	(\deffngeneral,\deftypefngeneral,\deftypecvgeneral,
+ 	 \deftypheader): call \ampdefunargs or \normaldefunargs.
+ 	(\normaldefunargs): new macro, typesetting defun
+ 	 args in ttsl (instead of sl).
+ 	(\ampdefunargs): treat & specially and then call \normaldefunargs.
+ 	(\defname): typeset defun name in tt (instead of bf).
+ 
+ 	* doc/texinfo.tex: uniformly comment out eol with {% at macro
+ 	starts.
+ 
+ 2003-11-23  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (is_in_insertion_of_type): return the level
+ 	where the insertion is found.
+ 
+ 	* makeinfo/makeinfo.c (search_forward_until_pos): new function that
+ 	sets search_forward boundary.
+ 	(text_expansion): also reset docbook.
+ 
+ 	* makeinfo/sectioning.h:
+ 	* makeinfo/sectioning.c (current_chapter_number): new function that
+ 	returns top level chapter numbers.
+ 	(handle_enum_increment): always do the incrementation. but return
+ 	strings conditionally.
+ 
+ 	* makeinfo/xml.c: changed screen element's contained_in_para to 0 for
+ 	Docbook. @lisp/@smalllisp create programlisting.
+ 	(xml_insert_quotation): reimplemented quotation_stack handling.
+ 
+ 2003-11-22  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\tocentry): same as \entry, no second 1pt of
+ 	stretch.  And a couple doc fixes.
+ 
+ 	* doc/texinfo.txi (Conventions): finally, get rid of @vskip
+ 	-@baselineskip kludge, we handle index entries after @item's now.
+ 
+ 2003-11-22  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.txi: use new @quotation feature.
+ 
+ 	* texinfo.tex (\putwordDeftypevar, \putwordDeftypefun): Remove.
+ 	* txi-cs.tex, txi-de.tex, txi-en.tex, txi-es.tex, txi-fr.tex,
+ 	  txi-it.tex. txi-nl.tex, txi-no.tex, txi-pl.tex, txi-pt.tex,
+ 	  txi-tr.tex: The same.
+ 	[texinfo-20031120-deftype-del.patch]
+ 
+ 	* doc/texinfo.tex (\verbatim,\Everbatim): remove one extra level
+ 	of grouping; move two lines of code ...
+ 	(\setupverbatim): ... here.
+ 	(\doverbatiminclude): just call the new \setupverbatim.
+ 	(\setupverbatiminclude): remove.
+ 	[texinfo-20031121-verbatim2.patch]
+ 
+ 	* doc/texinfo.tex (\math): no need for \mathcode, and we actually
+ 		can use $ not \implicitmath.
+ 	[texinfo-20031121-math.patch]
+ 
+ 	* doc/texinfo.tex (\zeroskipmacro): new macro, so we can
+ 	check for true zero skip.
+ 	(\dosubindsanitize): use it.
+ 	[texinfo-20031120-zeroskip.patch]
+ 
+ 	* doc/texinfo.tex (\doignore): scan in verbatim mode.  Without this,
+ 	if the last line of ignored text ended with ``@'', the ``@end ifxxx''
+ 	tag was missed.
+ 	(\dodoignore): use \_STOP_ instead of \ST@P.
+ 	[texinfo-20031120-ignore-at.patch]
+ 
+ 	* doc/texinfo.tex (\defparsearg): new macro, to simplify places
+ 	where the user macro just calls \parsearg.  Use it in many places.
+ 	[texinfo-20031121-defparsearg.patch]
+ 
+ 	* doc/texinfo.tex (\begin): remove, this is undocumented
+ 	and unused.
+ 	[texinfo-20031121-begin.patch]
+ 
+ 	* doc/texinfo.tex (\title,\subtitle,\author,...): move to outer
+ 	level (was inside \titlepage), it's more readable than nested
+ 	definitions.
+ 	[texinfo-20031116-titlepage1.patch]
+ 
+ 	* doc/texinfo.tex (\evenheadingxxx,\oddfootingyyy): might as well
+ 		use \ and avoid changing catcode of @.
+ 	[texinfo-20031116-catofat.patch]
+ 
+ 	* doc/texinfo.tex (\set): use new macros: \parseargusing and
+ 	\makecsname.
+ 	[texinfo-20031116-set.patch]
+ 
+ 	* doc/texinfo.tex (\cartouche): avoid \par if we are already in
+ 	vertical mode, in case it has an effect, eg. in an @example;
+ 	avoid extra space from the @cartouche line itself.
+ 	(\Ecartouche): force vertical mode, so that the \kern has the desired
+ 	effect.
+ 	[texinfo-20031120-cart.patch]
+ 
+ 	* doc/texinfo.tex (\ptexfootnote,\ptexinsert): save orig definitions.
+ 	(\startsavinginserts): new macro (with relatives), call from
+ 		\cartouche, \group, \table.
+ 	[texinfo-20031118-saveins.patch]
+ 
+ 	* doc/texinfo.tex (\table, \ftable, \vtable, \tablex, \tabley,
+ 	\tablez): Cleaned up indentation, etc.
+ 	(\kitem, \kitemx, \xitem, \xtemx, \description): Removed; they
+ 	  didn't look as if they would work in their present state, anyway.
+ 	[texinfo-20031114-table.patch]
+ 
+ 	* doc/texinfo.tex (\filenamecatcodes): new macro.
+ 	(\include,\verbatiminclude): use it, with new \parseargusing.
+ 	(\pushthisfilestack,etc.): implement our own stack of filenames
+ 	instead of reading the @include argument in a group.
+ 	[texinfo-20031109-include.patch]
+ 
+ 	* doc/texinfo.tex (\indexbreaks): remove, and remove call.
+ 	(\entry): read arguments on the fly, to avoid fixing catcodes.
+ 	[texinfo-20031121-indexbreaks.patch]
+ 
+ 	* doc/texinfo.tex (\makevalueexpandable): new macro.
+ 	Change occurrences of \let\value=\expandablevalue to use it,
+ 	to reduce code duplication.
+ 	[texinfo-20031121-value.patch]
+ 
+ 	* doc/texinfo.tex (\parsedefunlineX,\defunchkspace,defunchktab,
+ 	\defunloop,\defunchkfinish,\replaceeols): New macros.
+ 	(\parsedefunline): start them off.  This is to support continuations
+ 	lines for @defun headers.
+ 	[texinfo-20031108-defun-cont.patch]
+ 
+ 	* doc/texinfo.tex (\defun and all related commands):
+ 	rewrite to use \parsearg and uniform command generation.
+ 	(\makecsname): New macro, to be used within \edef's only.
+ 	[texinfo-20031120-defun.patch]
+ 
+ 	* doc/texinfo.tex (=, \equalChar): remove active definition of =
+ 	and hacks that printed = in \tt sometimes.  We want to print
+ 	everything in \tt anyway, ultimately.
+ 	[texinfo-20031120-defun-pres3.patch]
+ 
+ 	* doc/texinfo.tex (\defopheader,\defcvarheader,defivarheader):
+ 	use \code for the class name.
+ 	[texinfo-defun-pres2.patch]
+ 
+ 	* doc/texinfo.tex (\parsearg): Reset the catcode of space before
+ 		we scan the argument; so we don't have to worry about
+ 		obeyed spaces before and after the argument.
+ 	(\parseargx, \parseargy): Nuke, it was wrong anyway--\obeyedspace,
+ 	which is a macro, was compared with \temp which could have been let
+ 	to an obeyed space, but it couldn't be a macro.
+ 	(\removeactivespaces,\removeactivespacesX,\removeactivespacesY): Nuke.
+ 	(\argremovespace): If the argument scanned by \parsearg ends with
+ 	a space, remove it.
+ 	[texinfo-20031108-parsearg-space.patch]
+ 
+ 	* doc/texinfo.tex: use \other, for clarity and efficiency;
+ 		use `\^^M instead of raw number 13.
+ 	[texinfo-20031108-other.patch]
+ 
+ 	* doc/texinfo.tex (\doverbatim): \xdef and \gobble, to avoid
+ 		the active space between `\end' and `verbatim'.
+ 	[texinfo-20031120-verbatim.patch]
+ 
+ 	* doc/texinfo.tex (\quotationlabel): new macro to print label,
+ 		with a \bf space.
+ 	(\quotation): change call so \parsearg is at the end.
+ 	[texinfo-20031118-quot.patch]
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): removed the warning about
+ 	@xrefs to @unnumbered sections, as there are many situations where
+ 	there is no way to fix them.
+ 
+ 	* makeinfo/insertion.c: removed lingering titlepage_cmd_present
+ 	declaration.
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_titlepage, cm_titlepage_cmds): moved to ...
+ 	* makeinfo/insertion.c: here.
+ 
+ 	* makeinfo/cmds.h (titlepage_cmd_present): moved to ...
+ 	* makeinfo/makeinfo.h: here.
+ 
+ 	* makeinfo/insertion.c (is_in_insertion_of_type): new function to
+ 	query insertion_stack to see if we are inside a given insertion type.
+ 
+ 	* makeinfo/makeinfo.h:
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion):
+ 	* makeinfo/xml.c (xml_add_char):
+ 	* makeinfo/xml.h: removed xml_in_copying and inside_titlepage_cmd
+ 	global variables in favor of the new query function.
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (discard_until, execute_string): reworded
+ 	multiline related error messages.
+ 	(discard_until): rollback input_text_offset only if not dealing with a
+ 	multiline error, otherwise the same block gets in the way repeatedly.
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.h:
+ 	* makeinfo/xml.c (xml_get_assoc_for_id, xml_associate_title_with_id):
+ 	new functions.
+ 	(xml_insert_indexentry): call execute_string(xref) instead of creating
+ 	references directly.
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): check to see if xref is being made to
+ 	an @unnumbered, and only one argument is given.  issue a warning, use
+ 	@unnumbered's title as the third argument.
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): keep track of
+ 	unnumbered sections, and their node names.
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): for Docbook, always
+ 	provide label attribute for chapter and unnumbered.
+ 	(handle_enum_increment): simplified enumeration constraints, and
+ 	changed to follow TeX way.  Moved marker handling to ...
+ 	(cm_chapter, cm_unnumbered, cm_appendix): here.
+ 	(cm_appendix): restart numbering.
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.h:
+ 	* makeinfo/insertion.c: new rawdocbook and rawxml insertion types to
+ 	provide better block names in error messages (instead of "rawhtml" for
+ 	everything.)
+ 	(current_item_function, insertion_type_pname, find_type_from_name)
+ 	(begin_insertion, end_insertion, discard_insertions, cm_docbook)
+ 	(cm_xml, cm_item): honor new types.
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): issue only a warning instead of an
+ 	error when .txt file is unreadable, to better comply with the manual.
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): insert label="" only
+ 	when the output format is Docbook.
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (cm_end): get rest of the line before returning
+ 	in case of error, so the parameter to @end does not get leaked into
+ 	the output document.
+ 
+ 	* makeinfo/makeinfo.c (discard_until): when the expected string is not
+ 	found, check to see if we are looking for @end, and if so issue a more
+ 	descriptive error message.
+ 	(execute_string): keep track of insertion stack to catch multiline
+ 	commands where they are not allowed.
+ 	Report from: Dumas Patrice <dumas@centre-cired.fr>, Wed, 18 Jun 2003
+ 	09:41:56 +0200.
+ 
+ 2003-11-21  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/multi.c (multitable_item): start <tbody> immediately if
+ 	this a regular @item, and first in the table
+ 
+ 2003-11-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/footnote.c (output_pending_notes): always output footnotes
+ 	with in_fixed_width_font = 0, so entity substitutions can take place.
+ 
+ 2003-11-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/footnote.c (cm_footnote, output_pending_notes): provide
+ 	back link from footnote marker.
+ 
+ 2003-11-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (cm_insert_copying): remove blockquote from
+ 	copying_text when inside bookinfo and the output format is Docbook.
+ 
+ 2003-11-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_value): return immediately instead of
+ 	just suppressing bogus warnings.
+ 
+ 2003-11-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_value): do not issue bogus warnings about
+ 	undefined values when @value is used inside a @menu environment, and
+ 	the output format is Docbook.
+ 
+ 2003-11-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.c (sectioning_underscore): use @settitle value
+ 	if @top parameter is empty.
+ 
+ 2003-11-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_begin_index): make sure we are removing the
+ 	label attribute and not something else.
+ 
+ 2003-11-19  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/sectioning.c (get_sectioning_number): do not append space
+ 	with Docbook.
+ 	(sectioning_underscore): insert label attribute to make
+ 	distinction between chapter and unnumbered in Docbook.
+ 	(handle_enum_increment): also increment for Docbook.
+ 
+ 	* makeinfo/xml.c (xml_begin_index): remove label attribute from index
+ 	element.
+ 
+ 2003-11-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* cmds.c (command_table): new commands @deftypecv, @deftypecvx.
+ 	* defun.c, insertion.[ch], xml.c: implement them.
+ 
+ 2003-11-18  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (execute_string): better para handling in case
+ 	of nested executions.
+ 
+ 2003-11-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Multi-column Tables): include cmd name in
+ 	section name.
+ 	(Multitable Rows): use @headitem in example.
+ 
+ 2003-11-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_begin_document): upgraded docbook DTD to Docbook
+ 	XML 4.2.
+ 
+ 	* makeinfo/makeinfo.c (cm_xref):
+ 	* makeinfo/xml.c (xml_insert_docbook_image, xml_insert_indexentry)
+ 	(xml_begin_multitable): close previously open-tag-only elements.
+ 
+ 2003-11-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* bootstrap: honor environment variables.
+ 
+ 2003-11-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (execute_string): end paragraphs if
+ 	executing @copying text with xml.
+ 
+ 	* makeinfo/xml.c: disallow nested quotations, legalnotice in abstract,
+ 	and samp in var with Docbook.
+ 
+ 2003-11-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): keep @copying state.
+ 	use legalnotice instead of abstract for @copying.
+ 	(cm_insert_copying): removed redundant work arounds.
+ 
+ 	* makeinfo/makeinfo.c (execute_string): try to keep tags balanced with
+ 	Docbook and xml.
+ 
+ 	* makeinfo/xml.c
+ 	(xml_current_stack_index, xml_end_current_element): new functions.
+ 	(xml_add_char): enclose @copying text in a quotation element with
+ 	Docbook.
+ 
+ 2003-11-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_settitle): do not automatically start bookinfo
+ 	element after settitle.
+ 
+ 2003-11-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c (xml_synindex): new function to keep track of index
+ 	redirections.
+ 	(xml_insert_indexterm): added a check to see if any index
+ 	redirections are made.
+ 
+ 	* makeinfo/index.c (cm_synindex): let xml_synindex() handle xml part.
+ 
+ 2003-11-17  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_uref):
+ 	* makeinfo/xml.c: use ulink for @uref with Docbook.
+ 
+ 2003-11-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/install-info.c: protoize.
+ 	* util/texindex.c: protoize.
+ 	* util/dir-example (protoize,unprotoize): add.
+ 
+ 	* doc/texinfo.tex (\everytab): new \toks.
+ 	(\headitem): use it to typeset in bold.
+ 	(\item): reset it.
+ 
+ 2003-11-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (quotation): document it.
+ 	* doc/texinfo.tex (\quotation): accept optional argument.
+ 	(\doquotation): new macro to test for and typeset it.
+ 
+ 	* doc/texinfo.txi (Multitable Rows): document @headitem.
+ 
+ 	* doc/texinfo.tex (\headitem): error by default, redefine inside
+ 	@multitable (= \dotable).  New command suggested by Arnold.
+ 
+ 2003-11-15  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (fatal): New function. Use it.
+ 	(txiversion): Be robust to broken texinfo.tex.
+ 
+ 	* doc/texinfo.txi (example): mention use of @r for annotations.
+ 
+ 2003-11-15  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c: new command @headitem.
+ 
+ 	* makeinfo/insertion.c (cm_headitem): new function.
+ 
+ 	* makeinfo/insertion.h: new variables to keep head item state.
+ 
+ 	* makeinfo/multi.c (multitable_item, end_multitable):
+ 	* makeinfo/xml.c (xml_end_multitable_row, xml_end_multitable):
+ 	insert thead element if @headitem is used.
+ 
+ 	* makeinfo/xml.h: new element THEAD.
+ 
+ 	* makeinfo/texinfo.dtd: updated multitable structure.
+ 
+ 	* NEWS: announced @headitem.
+ 
+ 2003-11-14  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): make use of third and fifth arguments
+ 	of @xref with Docbook.
+ 
+ 	* makeinfo/xml.c: use Docbook citetitle for @cite.
+ 
+ 2003-11-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: doc fixes.
+ 
+ 	* configure.ac, NEWS: autoconf 2.59.
+ 
+ 2003-11-13  Akim Demaille  <akim@epita.fr>
+ 
+ 	* configure.ac: Use AC_CHECK_DECLS, not txi_CHECK_DECLS.
+ 	Also use # instead of dnl for comments.
+ 	* acinclude.m4: Remove.
+ 
+ 2003-11-14  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_noindent): output continued paragraphs with
+ 	docbook and xml only when @noindent command is used.
+ 	(cm_noindent_cmd): new function.  Patch from Arnold Robbins
+ 	<arnold@skeeve.com>, 13 Nov 2003 15:43:02 +0200.
+ 
+ 2003-11-11  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_i, cm_b, cm_r): do not use lineannotation if we
+ 	are printing indices.
+ 
+ 	* makeinfo/insertion.c (cm_insert_copying): removed unnecessary xml
+ 	fix.
+ 
+ 	* makeinfo/texinfo.dtd: added OElig and oelig entities.
+ 
+ 2003-11-11  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_sp): disabled parameter expansion.
+ 
+ 2003-11-10  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c:
+ 	* makeinfo/insertion.c (cm_html): do not process @xml blocks.
+ 	(cm_xml): new function to process @xml.
+ 
+ 	* makeinfo/xml.c (xml_start_para, xml_end_para): skip para handling in
+ 	footnote.
+ 	(xml_insert_footnote): keep state in xml_in_footnote variable.
+ 
+ 	* makeinfo/texinfo.dtd: updated settitle definition.
+ 
+ 2003-11-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Output Formats): rewrite to fix underfull
+ 	boxes.
+ 
+ 2003-11-10  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* doc/texinfo.tex (\commondummies): added registeredsymbol.
+ 
+ 2003-11-09  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/makeinfo.c (main): fixed a segfault with --html
+ 	--no-header.
+ 
+ 2003-11-09  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/html.c (html_output_head): output node name in title first.
+ 
+ 2003-11-09  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new Docbook elements for quotation: tip, note,
+ 	important, warning, caution.
+ 
+ 	* makeinfo/xml.c: better font tags for Docbook.
+ 	(xml_insert_quotation): new function that is aware of specialized
+ 	Docbook elements for quotation.
+ 	(xml_insert_entity): use add_char() instead of insert() for correct
+ 	paragraph handling.
+ 
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion): use
+ 	xml_insert_quotation() for quotations.
+ 	(cm_quotation): removed quotation element insertion.
+ 	(cm_insert_copying): also work around xml tags.
+ 
+ 	* makeinfo/cmds.c (cm_b): really use bold with Docbook.
+ 
+ 	* NEWS: @quotation changes.
+ 
+ 2003-11-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (registeredsymbol): new node.
+ 
+ 	* doc/Makefile.am (HELP2MAN): invoke explicitly from $(srcdir), in
+ 	case . is not in PATH.
+ 
+ 	* configure.ac (AC_CONFIG_HEADERS): apparent AM_CONFIG_HEADERS is
+ 	obsolete now, and we get to use AC_CONFIG_HEADERS again.
+ 
+ 	* doc/texinfo.txi (Fonts): mention <lineannotation> feature in
+ 	Docbook feature.
+ 
+ 	* doc/texinfo.txi (itemx): warn not to use blank lines between
+ 	@itemx's.
+ 
+ 2003-11-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c (cm_i, cm_b, cm_r): for Docbook, use <lineannotation>
+ 	in @example-like environments.
+ 	(cm_r): For HTML use <span> to make sure we always get roman text.
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h: new docbook element <lineannotation>.  Added also to
+ 	replace_elements to avoid nesting.
+ 
+ 2003-11-08  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* doc/texinfo.txi (Custom Headings): removed a newline that broke
+ 	Docbook output.
+ 
+ 	* NEWS:
+ 	* makeinfo/cmds.c: new command @registeredsymbol
+ 
+ 	* makeinfo/cmds.c (cm_registeredsymbol): new function.
+ 	(cm_code): fixed in_fixed_width_font adjustment for XML and Docbook
+ 	outputs.
+ 	(cm_noindent, cm_indent): set xml_no_indent as well.
+ 
+ 	* makeinfo/makeinfo.c (reader_loop): use entities for double quotes
+ 	and dashes in HTML, XML and Docbook outputs.
+ 
+ 	* makeinfo/multi.c (setup_multitable_parameters): convert
+ 	@columnfractions to integer percentages (original code from Arnold
+ 	Robbins <arnold@skeeve.com>.)
+ 	(multitable_item, cm_tab): add width attribute to <td> element if
+ 	@columnfractions is used.
+ 
+ 	* makeinfo/texinfo.dtd: added an optional role attribute to para
+ 	element (used for @noindent.)  New attributes ldquo, rdquo, ndash,
+ 	mdash, registered.
+ 
+ 	* makeinfo/xml.c: replaced repeated command element with more
+ 	appropriate Docbook elements in docbook_element_list.
+ 	(xml_start_para, xml_end_para): new functions to centralize paragraph
+ 	handling.
+ 
+ 	* makeinfo/xml.h: new variable xml_no_indent.
+ 
+ 2003-11-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* bootstrap: run the various auto* tools we need instead of
+ 		autoreconf, which copies in older versions of files.
+ 
+ 	* doc/Makefile.am (texinfo): remove the special rule, it seems to
+ 		be fixed.
+ 
+ 	* Makefile.am (AUTOMAKE_OPTIONS): bump to 1.7.8.
+ 	* doc/version.texi, doc/version-stnd.texi: cvs add these again,
+ 	because with AM_MAINTAINER_MODE they are not created
+ 	(unless --enable-maintainer-mode is given).
+ 
+ 	* doc/Makefile.am (*.1) [MAINTAINER_MODE]: use this conditional
+ 	instead of TEXINFO_MAINT, now that we have it.
+ 	* configure.ac (TEXINFO_MAINT): no longer needed, since we call
+ 	AM_MAINTAINER_MODE.
+ 
+ 2003-11-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* bootstrap: ok, restore --force since it doesn't help Alper
+ 	anyway.
+ 
+ 	* AUTHORS: Silly syntax.
+ 	* bootstrap: no --force, everything is considered obsolete then
+ 	(thanks Alper).
+ 
+ 2003-11-06  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/html.c (html_output_head): add <link> elements pointing to
+ 	top, up, next, prev nodes when splitting output, and to top when not
+ 	splitting.  Also provide a link to Texinfo homepage.
+ 	(add_link): use nodename as title attribute.
+ 
+ 2003-11-05  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/html.c (html_output_head): append node name to title if
+ 	splitting.  Escape special chars in title.
+ 
+ 	* makeinfo/node.c (cm_node): removed <link> elements from HTML node
+ 	navigation <div> as they are only allowed in <head>.
+ 
+ 2003-11-05  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* doc/texinfo.txi (Installing Dir Entries): fixed @uref for Free
+ 	Software Directory.
+ 	(Command List): Escaped @/.
+ 
+ 	* info/display.c (handle_tag, handle_tag_start, handle_tag_end): new
+ 	functions.
+ 	(display_update_one_window): ignore the text between magic
+ 	tags/cookies.
+ 
+ 	* makeinfo/cmds.c (cm_dots, cm_enddots): use insert_string() for HTML
+ 	to avoid escaping.
+ 	(cm_bullet): use entity name (bull) instead of number (149).
+ 
+ 	* makeinfo/index.c (cm_printindex): escape expanded_index.
+ 
+ 	* makeinfo/lang.c (cm_accent_generic_html): handle @dotless{i}
+ 	correctly.
+ 	(cm_special_char): use entity names for @OE (OElig) and @oe (oelig)
+ 	instead of numbers.
+ 
+ 	* makeinfo/node.c (cm_node): escape node names in HTML output.
+ 
+ 	* makeinfo/xml.c (xml_id): check to see if the character is allowed.
+ 
+ 	* makeinfo/tests/accent-text.txi: new @dotless{j} lines.
+ 
+ 	* makeinfo/tests/accent: look for &acute;j instead of &acute;i.
+ 
+ 	* TODO: removed item about @dotless in HTML output.
+ 
+ 2003-11-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/Makefile.am (EXTRA_DIST): spurious space after trailing
+ 	backslash.
+ 
+ 	* configure.ac (AC_PREREQ): 2.58.
+ 
+ 2003-11-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/Makefile.am (EXTRA_DIST): add gdoc.
+ 
+ 2003-11-02  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs.sh: doc fix.
+ 
+ 	* doc/texinfo.txi (Using Texinfo): merge most details into ...
+ 	(Output Formats): ... this section.
+ 
+ 	* util/dir-example (VM): add.
+ 
+ 2003-11-01  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* doc/texinfo.txi (Conditional Commands): Docbook text should
+ 		really use @ifdocbook.
+ 
+ 	* info/info.c (raw_escapes_p): 1 by default.
+ 	(long_options): new option no-raw-escapes.
+ 	* doc/info-stnd.texi (Invoking Info): document it.
+ 
+ 2003-10-31  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h:
+ 	* makeinfo/insertion.c (handle_verbatim_environment): use
+ 	<![[CDATA...]]> for @verbatim in docbook output too.
+ 
+ 2003-10-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* TODO: image scaling in html needed.
+ 	* makeinfo/cmds.c (cm_strong): only give the warning if we're
+ 	actually producing Info output.
+ 
+ 	* makeinfo/cmds.c (cm_strong): reword message and check for only
+ 	*Note:, not *Note:*.  From: Kevin Ryde <user42@zip.com.au>, 31 Oct
+ 	2003 06:19:05 +1000.
+ 
+ 2003-10-29  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Def Cmd Template): shorten.
+ 	* makeinfo/makeinfo.c: help message.
+ 	* doc/texinfo.tex: version update.
+ 	* makeinfo/texinfo.dtd: update copyright.
+ 
+ 2003-10-28  Alper Ersoy  <dirt@gtk.org>
+ 
+ 	* makeinfo/cmds.c: output correct elements for @command,
+ 	@env, @file, @option and @samp commands, and also handle
+ 	@titlepage in xml output.  New commands: @docbook,
+ 	@ifdocbook and @ifnotdocbook for conditional docbook output.
+ 
+ 	* makeinfo/defun.c (args_from_string): allow comma to be
+ 	recognized as a separate token to help XML side of things.
+ 	(process_defun_args): let xml.c handle xml output.
+ 
+ 	* makeinfo/insertion.c: handle @verbatim properly when
+ 	outputting xml.  This means: surround data with a <verbatim>
+ 	block, use <![[CDATA ... ]]> and disable escaping.
+ 	Recognize @titlepage, @docbook, @ifdocbook and
+ 	@ifnotdocbook.
+ 	(cm_insert_copying): do not trust the consistency of
+ 	copying_text, because full_expansion doesn't let open
+ 	docbook elements to be closed.
+ 	(cm_item): generate correct index entries in xml output.
+ 
+ 	* makeinfo/insertion.h: new insertion types: ifdocbook,
+ 	ifnotdocbook, titlepage.
+ 
+ 	* makeinfo/lang.c: notify language changes with
+ 	@documentlanguage in xml output, using <documentlanguage
+ 	xml:lang=".." /> elements.
+ 
+ 	* makeinfo/makeinfo.c: trailing encoding settings in html
+ 	output are commented.  Do not append any encoding settings
+ 	to xml and docbook outputs.  Set process_docbook variable
+ 	for @docbook, etc. and updated --help about it.
+ 	(set):
+ 	(clear): Output @set and @clear in xml so it's possible to
+ 	pass variables to further processors.
+ 
+ 	* makeinfo/makeinfo.h: process_docbook and
+ 	inside_titlepage_cmd (to check validity of @author, @title,
+ 	@subtitle, etc.)
+ 
+ 	* makeinfo/sectioning.c: heading-only commands (@chaphading,
+ 	etc.) do not start/end sections in xml output.  They are now
+ 	equivalents of the title element.
+ 
+ 	* makeinfo/toc.c: @contents and @shortcontents now appear in
+ 	the output.
+ 
+ 	* makeinfo/xml.c: changed element_list typedefs to also note
+ 	whether an element is filled.  Prefilled elements get
+ 	xml:space="preserve" attribute.  Added xml prolog.  Root element
+ 	in xml output gets the document language like it does in
+ 	docbook, but with xml:lang.  Removed indentation for xml
+ 	output.  Also lines in paragraphs are joined.
+ 	(xml_process_defun_args):
+ 	(xml_begin_definition):
+ 	(xml_end_definition):
+ 	(xml_begin_def_term):
+ 	(xml_end_def_term): functions to handle @def environments.
+ 
+ 	* makeinfo/xml.h: new elements in xml_element enum:
+ 	TITLEPAGE, AUTHOR, BOOKTITLE, BOOKSUBTITLE, COMMAND_TAG,
+ 	ENV, FILE_TAG, OPTION, SAMP, CONTENTS, SHORTCONTENTS,
+ 	DOCUMENTLANGUAGE, VERBATIM, SETVALUE, CLEARVALUE, DEF*.
+ 	(Suffices of COMMAND_TAG and FILE_TAG are to avoid variable
+ 	name clashes.)
+ 
+ 	* makeinfo/texinfo.dtd: updated to reflect changes.
+ 
+ 	* doc/texinfo.tex: skip @docbook and @ifdocbook.
+ 
+ 2003-10-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs.sh: new -o option to specify output directory.
+ 
+ 2003-10-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* lib/system.h (LC_MESSAGES): no longer needed according to
+ 	Bruno, libintl.h defines it.
+ 	Message of 16 Jul 2003 18:17:23 +0200.
+ 
+ 2003-10-27  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\defname): be sure to declare the space
+ 	  we get from \rightskip in the first line.
+ 	  (\parsebodycommon): Be careful not to issue \medbreak after
+ 	  \penalty 2000.
+ 	  (\defxbodycommon): The penalty changed from 2000 to 3000;
+ 	  it should be higher that the one in \parsebodycommon.
+ 	  -- added "@c vim:sw=2:" near the end, for my comfort.
+ 
+ 2003-10-27  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	More cleanup of active chars in @defxx arguments:
+ 
+ 	* doc/texinfo.tex (\opnr, \clnr): Reimplemented, ...
+ 	  (\oprm, \clrm, \opnested, \ampnr): ... nuking these, and using ...
+ 	  (\parenfont, \infirstlevel, \bfafterword): ... 3 new macros, ...
+ 	  (\ifampseen): ... and a new \if.
+ 	  (\brackcount): New count, to count also square braces, ...
+ 	  (\lbrb, \rbrb): ... here.
+ 	  (\checkparencounts): Macros to check whether both counts get back
+ 	  to 0; ...
+ 	  (\badparencount, \badbrackcount): ... if not, issue an error
+ 	  message and reset the respective count.
+ 	  (\deftypefnheaderx): Don't call \normalparens, it has no effect.
+ 	  (\defvarargs): Call \boldbrax instead of \normalparens.
+ 	  (\normalparens): Nuked.
+ 
+ 2003-10-26  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/session.c (info_menu_or_ref_item): If point is before all
+ 	the cross-references, use the first one as the default, instead of
+ 	setting which to -1 and crashing.  (Patch originally sent 2000-10-09.)
+ 	Debian bug 74278, reported from: Josip Rodin <joy@cibalia.gkvk.hr>,
+ 	7 Oct 2000 19:44:24 +0200.
+ 
+ 2003-10-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.ac (AM_MAINTAINER_MODE): enable, to avoid lossage
+ 	when Texinfo sources are imported into other
+ 	repositories (NetBSD, TeX Live).
+ 	Most recently suggested by Thomas Klausner
+ 	<wiz@danbala.ifoer.tuwien.ac.at>, 9 Sep 2003 14:57:09 +0200.
+ 
+ 	* makeinfo/node.c (validate_file): ensure tem1 && tem2 before
+ 	running STREQ.  Report from: Akim Demaille <akim@epita.fr>,
+ 	13 Oct 2003 10:43:10 +0200.
+ 
+ 	* doc/Makefile.am (infokey.1): new target.
+ 	(man_MANS): include infokey.1.
+ 	Noticed this in Debian diff.
+ 
+ 	* util/texi2dvi: check for tex up front; inspired by Debian diff.
+ 
+ 	* TODO: makeinfo -E should do simple macro expansion, not
+ 	validity checking (even syntax, for @tex processing).
+ 
+ 	From: Stepan Kasal <kasal@ucw.cz>, 24 Oct 2003 19:10:02 +0200.
+ 	Start at making makeinfo -E behave more like a macro preprocessor,
+ 		avoiding consistency checks.
+ 	* makeinfo/insertion.c (cm_menu,cm_detailmenu): avoid checks if
+ 	macro_expansion_output_stream.
+ 	* makeinfo/makeinfo.c (main): set validating=0 if
+ 	macro_expansion_output_stream.
+ 
+ 	* util/texi2dvi (comment_iftex_sed): don't think we need to
+ 	comment out @ifhtml sections here, makeinfo will not expand them
+ 	by default.
+ 
+ 2003-10-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c: --raw-escapes affects Info files, not just man
+ 	pages.
+ 
+ 	* doc/texinfo.tex: novalis doesn't like my clarification, so make
+ 	it a special exception instead.
+ 
+ 2003-10-24  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\defname): Cleanup of this macro.
+ 	  (\boldbraxnoamp): Nuked, it's equivalent to \boldbrax;
+ 	  the caller changed.
+ 	  Other minor cleanups around active paretheses.
+ 	  (\defunargs): After reporting the "Unbalanced paretheses" error,
+ 	  reset the count.
+ 
+ 2003-10-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (makeinfo advantages): mention that plain text
+ 	--no-headers does --enable-encoding.
+ 
+ 2003-10-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/macro.c (define_macro): write the macro definition
+ 	itself to the output stream, to give texinfo.tex a chance at it.
+ 	Report from: Akim Demaille <akim@epita.fr>, 22 Oct 2003 17:15:34
+ 	+0200.
+ 
+ 	* doc/texinfo.tex (\readauxfile): make the \openout\auxfile be
+ 	\immediate, to avoid spurious terminal output from the
+ 	\immediate's in \setref.
+ 
+ 2003-10-23  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	Rewrite \parsearg:
+ 	* doc/texinfo.tex (\parsearg, \parseargusing): \parseargusing is
+ 	  a new macro which works just like good old \parsearg but takes
+ 	  one more parameter which contains code to be performed within
+ 	  a group just before we slurp the rest of the line---typically,
+ 	  some catcode chages go here.
+ 	  (\parseargx): Insert an \empty token before the arg to be read,
+ 	  to prevent loosing of braces.  (Thus @end{foo} no longer works.)
+ 	  (\parseargline, \argremovecomment, \argremovec): Change the way
+ 	  comments are stripped; do not use \toks0.
+ 	  (\removeactivespaces): is now called directly from \parsearg (via
+ 	  \parseargusing and \argremovec), and stripps only the trainling
+ 	  active spaces, doesn't perform expansion.
+ 	  (\finishparsearg): New macro, finishes \parsearg by nuking the
+ 	  added \empty token.
+ 	  (\end, \endxxx): Don't call \removeactivespaces, don't use \toks0;
+ 	  because of efficiency, move the error handling to ...
+ 	  (\badenderror): ... a new macro.
+ 	  (\doverbatim): ``\end{verbatim}'' changed to ``\end verbatim.''
+ 
+ 	Cleanup of various details with active spaces.
+ 	  (\parseargx): Do the \futurelet and move the rest ...
+ 	  (\parseargy): ... to a new macro;
+ 	  (\parseargusing): caller changed;
+ 	  (\parseargdiscardspace): the other caller nuked.
+ 	  (\obeyedspace, \sepspaces, \unsepspaces): Move near to \parsearg.
+ 	  (\obeyedspace): Is now a macro containing the active space.
+ 	  (\unsepspaces): No longer makes spaces active.
+ 	  (\ignoreactivespaces): Nuked, it's only appearance in ...
+ 	  (\aliasxxx): ... replaced by direct code.
+ 
+ 2003-10-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: comments at top.
+ 
+ 	* AUTHORS: add kama.  (kama's address is now khmarbaise@gmx.de.)
+ 
+ 2003-10-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/gendocs.sh: revision of mohit's original.
+ 	* util/Makefile.am (EXTRA_DIST): add gendocs.sh and
+ 		gendocs_template.
+ 
+ 2003-10-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (handle_include): only close_paragraph if
+ 	!insertion_stack, else we get extra blank lines when
+ 	used inside @example.
+ 	* makeinfo/insertion.c (handle_verbatim_include): likewise, plus
+ 		move the indentation around.
+ 	Report from: Brian Gough <bjg@network-theory.co.uk>,
+ 	20 Oct 2003 14:36:49 +0100.
+ 
+ 	* makeinfo/makeinfo.c (close_paragraph): formatting changes to
+ 		minimize lines.
+ 
+ 	* makeinfo/insertion.c (end_insertion): for html output in the
+ 	example/etc. case, kill_self_indent to get rid of
+ 	leading whitespace.
+ 	Report from: Brian Gough <bjg@network-theory.co.uk>,
+ 	20 Oct 2003 14:36:49 +0100.
+ 
+ 2003-10-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\shortcontbf): cmb10 scaled \magstep1, not cmb12,
+ 	since cmb12 is not a standard font.
+ 	Report from: Staszek Wawrykiewicz <staw@gust.org.pl>,
+ 	16 Oct 2003 06:44:40 +0200.
+ 
+ 2003-10-14  Karl Berry  <karl@gnu.org>
+ 
+ 	* lib/xstrdup.c: put old version back, we're not ready for gnulib
+ 	xmalloc yet.
+ 
+ 	* makeinfo/insertion.c: undo xml_no_para change, it causes more
+ 	problems than it solves, according to Alper (Ersoy, <dirt@gtk.org>).
+ 
+ 2003-10-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion,end_insertion): in rawhtml
+ 	case (also used for rawxml), increment and decrement xml_no_para.
+ 
+ 	* makeinfo/lang.c (cm_documentencoding): force the normal (info)
+ 	expansion when reading the arg, even when parsing xml/html/docbook.
+ 	Report from: Kevin Ryde <user42@zip.com.au>,
+ 	13 Oct 2003 10:02:23 +1000.
+ 
+ 2003-10-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\chapterzzz,...,\unnumberedsubsubseczzz): make
+ 	section number settings \global.  Otherwise, when chapters are
+ 	@included, they are ineffective and every chapter is numbered 1.
+ 	For instance, the Emacs and Elisp manuals.  Thanks to Stepan for
+ 	analysis.
+ 
+ 	* doc/texinfo.tex: add arch-tag for miles.
+ 
+ 2003-10-08  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\onepageout): At the beginning of \shipout, call
+ 	    \pdfdest directly, not via \pdfmkdest.
+ 	  (\pdfmkdest): Call also \atdummies before \pdfdest.
+ 	  (\donoderef): Remove the unsuccessful attempt to expand \lastnode
+ 	    before passing it to \setref (it only expanded `{' twice);
+ 	    things would screw up if \lastnode was expanded too much.
+ 	  (\setref): Rewritten, don't call \atdummies, don't expand
+ 	    \thissection.
+ 	  (\dosetq, \internalsetq, \Ypagenumber, \Ytitle): Nuked.
+ 	  (\chfplain): Remove referrence to \Ytitle from a comment.
+ 
+ 2003-10-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: spurious space and comment (from Stepan).
+ 
+ 	* NEWS: automake 1.7.8.
+ 	* util/dir-example: include netpbm.
+ 
+ 2003-10-07  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\defbf, shortcontbf): use \bfshape instead of
+ 	\bxshape, so we use cmb consistently instead of cmbx.
+ 
+ 	* doc/texinfo.txi: more index entries for em/en dashes, fix
+ 		capitalizations of cindex entries.
+ 
+ 2003-10-07  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\defname): Don't use \ifempty.
+ 	  (\ifempty): Nuke.
+ 
+ 2003-10-06  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\dosubind, \doind): Cleanup, move code ...
+ 	  (\dosubindwrite, \dosubindsanitize): ... to new macros,
+ 	  (\emptymacro): and nuke this one.
+ 
+ 	* doc/texinfo.tex (\Ypagenumber): Add `\noexpand,' so that ...
+ 	  (\dosetq): ... doesn't have to redefine \folio.  Move \iflinks ...
+ 	  (\setref): ... here.
+ 
+ 2003-10-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\setdeffont): remove; this used DEF instead of
+ 	def, and thus had no effect for some years, so
+ 	clearly no one has been using it.  Noticed by Stepan.
+ 
+ 2003-10-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: document hyphen -> dash suppression in literal
+ 	contexts, and verbatim commands not working inside other commands.
+ 	Report from: Luc Teirlinck <teirllm@dms.auburn.edu>, 2 Oct 2003
+ 	22:45:14 -0500,
+ 
+ 	* doc/texinfo.tex (\commondummies,\indexnofonts): no-op @verb; I
+ 	doubt this is sufficient to make @verb work in index entries etc.,
+ 	but it's a start.  Analysis from: Andreas Schwab <schwab@suse.de>,
+ 	02 Oct 2003 18:54:40 +0200.
+ 
+ 2003-09-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* TODO: add item for conversion of non-texinfo manuals.
+ 
+ 2003-09-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* CVSROOT/loginfo: back to log_accum.
+ 
+ 	* doc/texinfo.tex (\parsebodycommon): increase \penalty between
+ 	headers to 2000 from 0.
+ 	(\defxbodycommon): check for 10002, not 1000.  We don't want to
+ 	allow a page break after a section heading.  Hmm, but it seems
+ 	this should never be called next after a section heading?
+ 
+ 2003-09-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_strong): warn if argument is exactly
+ 	"Note:", since that conflicts with Info usage.  Suggestion from
+ 	rms.
+ 
+ 2003-09-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dosubind): must propagate penalty after all,
+ 	because we insert a non-discardable item (the whatsit), which
+ 	makes following glue a breakpoint.  Now I understand (maybe).
+ 	(\sectionheading): must end with \nobreak after
+ 	all, purely to make \lastpenalty 10000 so future code can check
+ 	that and avoid breaks.
+ 	(\parsebodycommon): such as this code; don't do a
+ 	\medbreak if lastpenalty >=10000.
+ 
+ 	* doc/texinfo.tex (\tocindent): decrease to 2pc.
+ 	(\{app,unn}sub{sub,}secentry): redefine so that they
+ 	indent properly.
+ 
+ 2003-09-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dosubind): remove my misbegotten idea of
+ 	propagating the penalty; all that did was increase the chance of a
+ 	valid breakpoint.  Bug report from: Werner LEMBERG <wl@gnu.org>,
+ 	23 Sep 2003 15:47:31 +0200.
+ 	(\numhead,\apphead,\unnmhead): avoid spurious
+ 	blank spaces, for cleanliness.
+ 
+ 	* CVSROOT/loginfo: syncmail instead of external log_accum.
+ 	* doc/texinfo.tex (\sectionheading): remove extraneous \nobreak,
+ 	found by Stepan (of course).
+ 
+ 2003-09-22  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\sectionheading): the space below a section
+ 	  heading should have fixed size; \nobreak after a \vskip is
+ 	  redundant.
+ 
+ 2003-09-21  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\sectionheading): make space below be half of
+ 	space above, and don't add \parskip to space above.  Suggestion
+ 	from Han-Wen Nienhuys <hanwen@cs.uu.nl>, implementation ideas from
+ 	Stepan Kasal <kasal@math.cas.cz>, 16 Sep 2003 11:30:43 +0200.
+ 
+ 2003-09-21  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\dosuppressfirstparagraphindent): change the
+ 	  redefinition of \indent and \noindent and factor out common
+ 	  parts of all redefinitions to ...
+ 	  (\restorefirstparagraphindent): ... a new macro.
+ 
+ 2003-09-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/macro.c (cm_alias): do not expand when calling
+ 	get_until_in_line, since xml/docbook expansion is empty.
+ 	Report from: Richard Kreuter <kreuter@anduril.rutgers.edu>,
+ 	17 Sep 2003 17:59:58 -0400.
+ 
+ 	* info/signals.c: Clear the screen when exiting from a SIGQUIT.
+ 	From: Wojciech Polak <polak@gnu.org>, 19 Sep 2003 10:27:28 +0200.
+ 
+ 2003-09-16  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\sectionheading): there is no need to insert
+ 	  \nobreak before a kern which is not followed by
+ 	  a glue.  Such a kern is not a permissible breakpoint.
+ 
+ 2003-09-16  Simon Law <sfllaw@uwaterloo.ca>
+ 
+ 	* doc/texinfo.tex (\dosuppressfirstparagraph): Gobble \noindent
+ 	if it occurs in the first paragraph.
+ 	(\ptexnoindent): for saving/restoring \noindent in @tex.
+ 	(\footnote): Neutralise the effect of @noindent within a footnote.
+ 
+ 2003-09-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: Changes to make pdf references go to the correct
+ 	place on the page.  This is most easily testable
+ 	at high magnifications (I used 400% and 800%).
+ 	(\output): put \the\pageno pdfdest at very
+ 	beginning of \shipout.(\dopdfoutline): new macro.
+ 	(\pdfmakeoutlines): recompute all section numbers.
+ 	(\unnumberedno): \newcount.
+ 	(\chapterzzz,\appendixzzz,\unnumberedzzz,
+ 	 ..., \unnumberedsubsubseczzz): abstract common
+ 	elements, keep track of numbering for everything.
+ 	(\doheading,\dosubheading,\dosubsubheading): call
+ 	\sectionheading directly instead of \plain*secheading.
+ 	(\chfplain, \sectionheading): take additional section type
+ 	argument; call \writetocentry and \donoderef.
+ 	(\unnchfopen): mention this is deprecated.
+ 	(\writetocentry): handle "omit" case, and
+ 	\global\pdfmakepagedesttrue.
+ 	(\startcontents, \summarycontents): sectioning
+ 	commands take an extra arg.
+ 	(\dosub*secentry): take extra arg with section
+ 	number; change callers.
+ 	(\pdfcatalog): move this call to the opening PDF
+ 	commands, for clarity.
+ 	(\unnumbnoderef): no longer needed, collapsed into
+ 	\donoderef.(\Yomitfromtoc): new xref constant.
+ 	(\Ynumbered,\Yappendix): renamed from
+ 	\Ysectionnumberedandtype and
+ 	\Yappendixletterandtype, for clarity.
+ 
+ 	* doc/texinfo.txi (cartouche): omit invalid @group.
+ 
+ 	* makeinfo/node.c (cm_node): restore accesskey= on the <link>s.
+ 	From hanwen.
+ 
+ 2003-09-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/dir-example: add guile-tut.
+ 
+ 	* info/session.c (info_follow_menus): take the first best_guess
+ 	rather than the last.
+ 	From: Rob Browning <rlb@defaultvalue.org>,
+ 	15 Sep 2003 01:26:17 -0500.
+ 
+ 2003-09-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* automake 1.7.7.
+ 
+ 	* makeinfo/insertion.c (begin_insertion): start cartouche html output
+ 	with <p>.  @cartouche can't be used meaningfully
+ 	within a paragraph.
+ 	Report from: Simon Josefsson <jas@extundo.com>,
+ 	11 Sep 2003 19:25:20 +0200.
+ 
+ 2003-09-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/tests/html-manuals: include -I../../doc for case when
+ 	version-stnd.texi is in build tree.
+ 	From: ezra peisach <epeisach@med-xtal.bu.edu>,
+ 	12 Sep 2003 13:53:32 -0400.
+ 
+ 2003-09-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Cartouche): document that @cartouche needs to
+ 		be outside the @example for HTML output to work.  This
+ 		is painful to fix in the current makeinfo.
+ 	Report from: Simon Josefsson <jas@extundo.com>,
+ 	11 Sep 2003 15:21:44 +0200.
+ 
+ 2003-09-10  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/sectioning.c (section_alist): add entry for centerchap,
+ 	so at least makeinfo does not bomb out.  (No centering is actually
+ 	done.)  From: Denys Duchier <duchier@ps.uni-sb.de>, 10 Sep 2003
+ 	21:35:24 +0200.
+ 
+ 	* lib/system.h: __CYGWIN__ in comments, too.
+ 
+ 2003-09-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* bootstrap: --include=m4.  From Werner.
+ 
+ 2003-09-08  Karl Berry  <karl@gnu.org>
+ 
+ 	* lib/system.h: make that __CYGWIN__, not __unix__.  From Eli.
+ 	* lib/system.h (DEFAULT_TMPDIR,PATH_SEP) [O_BINARY && !__unix__]:
+ 	new case for cygwin, from: Thomas Klausner
+ 	<wiz@danbala.ifoer.tuwien.ac.at>, 8 Sep 2003 13:43:29 +0200
+ 	(for cross-building netbsd).
+ 
+ 2003-09-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.txi (Conventions): say more about quotations and dashes,
+ 	based on a report to help-texinfo from
+ 	David.Billinghurst@riotinto.com, 18 Jul 2003 16:07:00 +1000.
+ 
+ 	* NEWS: mention @tex/@iftex are executed in a group.
+ 
+ 2003-09-03  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Macro Details): mention some makeinfo
+ 	limitations too, from recent bug reports by Patrice Dumas
+ 	<dumas@centre-cired.fr> and (16 Jul 2003 17:21:56 +0200) Jesper
+ 	Harder <harder@ifa.au.dk>.
+ 	* makeinfo/macro.c (define_macro): "end rmacro" is 10 chars long.
+ 
+ 2003-08-29 Reiner Steib <Reiner.Steib@gmx.de>
+ 
+ 	* makeinfo/lang.c (encoding_table): Downcase coding system
+ 	names, since Emacs does not recognize the uppercase names.
+ 
+ 	* makeinfo/lang.h: doc fixes.
+ 
+ 2003-08-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* bootstrap: new file (cvs only).
+ 	* README.dev: mention it.
+ 	Report from hanwen@cs.uu.nl, sample script from
+ 	Akim Demaille <akim@epita.fr>.
+ 	* aclocal.m4: remove from cvs repository.
+ 
+ 2003-08-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/node.c (cm_node): add <LINK> tags. This will produce a
+ 	navigation bar in Mozilla 1.4 (and perhaps earlier).  Original
+ 	code from Han-Wen Nienhuys <hanwen@cs.uu.nl>.
+ 
+ 2003-08-23  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: Run tex --help in $tmpdir, to avoid leaving
+ 	texput.log for old TeX versions.  Report from Patrick Welche
+ 	<prlw1@newn.cam.ac.uk>, patch from Akim.
+ 
+ 2003-08-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/defun.c (cm_defun): skip @ifset/@ifclear insertions
+ 	when looking for the @defun going with this @defunx.  Report from:
+ 	Akim Demaille <akim@epita.fr>, 14 Aug 2003 12:10:37 +0200.
+ 
+ 	* makeinfo/insertion.c (cm_end): rewrite error message for
+ 	clarity.
+ 
+ 2003-08-13  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/indices.c (info_index_apropos): correct typo, whoses ->
+ 	whose.  From: Jesper Harder <harder@ifa.au.dk>, 13 Aug 2003
+ 	14:49:26 +0200.
+ 
+ 2003-08-11  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: excise spurious spaces, etc.
+ 
+ 2003-08-09  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: don't use @ifinfo/@heading construct to replace
+ 	@section any more, the XML output is wrong.
+ 
+ 	* doc/texinfo.tex (\pdfmakeoutlines): doc fixes, and use \def once
+ 	instead of \let twice.
+ 
+ 	* doc/texinfo.txi: rewrite @ifinfo text sections to take better
+ 	 account of HTML.  Suggestion from: Dumas Patrice
+ 	<dumas@centre-cired.fr>, 8 Aug 2003 17:19:22 +0200.
+ 
+ 2003-08-07  Derek Price  <derek@ximbiot.com>
+ 
+ 	* makeinfo/insertion.c (cm_direntry): Skip @direntry in --no-headers
+ 	mode.
+ 
+ 2003-08-05  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Beginning a File, title, titlefont): more
+ 	clarifications.  Suggestions from Patrice.
+ 
+ 	* doc/texinfo.txi (emph & strong): inconsistent source & example.
+ 	From Jesper Harder.
+ 
+ 2003-08-04  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (titlefont): discuss html output a bit.
+ 	Suggestion from Patrice.
+ 
+ 2003-07-31  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\doignorecount): no need to initialize.
+ 	(\doignoreyyy): doc fix.
+ 	From Stepan.
+ 
+ 2003-07-29  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\doignorecount): No need to initialize the
+ 	  count while reading texinfo.tex.
+ 	  (\doignoreyyy): Tiny comment change.
+ 
+ 2003-07-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/html.c (process_css_file): @c (for @charset) should
+ 	also put us into import_state.
+ 
+ 	* doc/texinfo.txi (Conditional Nesting): new section; also change
+ 	other conditional sections slightly.
+ 
+ 	* doc/texinfo.tex (\doignoretext, \doignoretextyyy): Only look for
+ 	conditionals at the beginning of a line, to avoid problems with a
+ 	commented conditional.  Fix from: Stepan Kasal
+ 	<kasal@math.cas.cz>, 28 Jul 2003 02:50:41 +0200.
+ 
+ 2003-07-27  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\doignore): Rewritten to handle nesting.
+ 	  (\ignoremorecommands, \obstexwarn, \ifwarnedobs): No longer needed.
+ 	  (\nestedignore): No longer needed.
+ 	  (\readauxfile): Remove reference to \warnedobstrue.
+ 
+ 2003-07-27  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/dir-example: lowercase automake.
+ 
+ 2003-07-26  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/html.c (process_css_file): in null_state, only consider
+ 	@i to be the start of an @import, since @media can get misparsed.
+ 	Report from: Dumas Patrice <dumas@centre-cired.fr>, 22 Jul 2003
+ 	12:13:29 +0200.
+ 
+ 2003-07-25    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Raise/lower sections): mention difficulties with
+ 	node pointer creation and top nodes.
+ 	Report from: Dumas Patrice <dumas@centre-cired.fr>,
+ 	22 Jul 2003 13:08:24 +0200.
+ 
+ 2003-07-24    <karl@gnu.org>
+ 
+ 	* makeinfo/sectioning.c (what_section): take additional SECNAME
+ 		argument; change callers.
+ 	* makeinfo/sectioning.h (what_section): remove redundant decl.
+ 	* makeinfo/node.c (cm_node): change what_section call here, too.
+ 	Report from: Dumas Patrice <dumas@centre-cired.fr>,
+ 	22 Jul 2003 13:09:19 +0200.
+ 
+ 	* doc/texinfo.tex (\doheading,\dosubheading,\dosubsubheading):
+ 	rationalize names.
+ 	(\heading,\subheading,\subsubheading): change
+ 	calls.  (yesterday's patch called the undefined
+ 	\subsecheadingyyy, etc.)
+ 
+ 2003-07-23  Stepan Kasal  <kasal@ucw.cz>
+ 
+ 	* doc/texinfo.tex (\heading, \subheading, \subsubheading): Call
+ 	  \suppressfirstparagraphindent after setting the heading.
+ 	  (\headingyyy, \subheadingyyy, \subsubheadingyyy): New macros.
+ 	  (\chapheadingzzz): Call \suppressfirstparagraphindent at the end
+ 	  and move \chapbreak ...
+ 	  (\chapheading): ... here.
+ 	  (\majorheading): Do a modified \chapbreak, then call \chapheadingzzz.
+ 	  (\majorheadingzzz): Deleted.
+ 
+ 2003-07-16    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (makeinfo Pointer Creation): must pxref Menus,
+ 	since Menu Location is not a valid xref point for
+ 	TeX, because of the special @heading stuff.
+ 
+ 	* makeinfo/insertion.c (begin_insertion): lack of */ caused
+ 	display: and smalldisplay: cases to be ignored.
+ 
+ 	* lib/system.h (LC_MESSAGES) [!defined (HAVE_LC_MESSAGES) &&
+ 	!defined (LC_MESSAGES)]: change conditional.  Report from
+ 	Christian Krackowizer <ckrackowiz@std.schuler-ag.com>, 16 Jul 2003
+ 	14:40:30 +0200.
+ 
+ 2003-07-14    <karl@gnu.org>
+ 
+ 	* util/install-info.c (ensure_dirfile_exists): replace literal ^_ with
+ 	\x1f.  Report from Trond Endrestøl
+ 	<trond@ramstind.gtf.ol.no>, 14 Jul 2003 13:31:29 +0200.
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): forgot to change closing </hN>
+ 	to match opening <hN> (that is, maximum h3).
+ 	Report from: Jesper Harder <harder@ifa.au.dk>,
+ 	14 Jul 2003 15:04:04 +0200.
+ 
+ 2003-07-03    <karl@gnu.org>
+ 
+ 	* doc/info.texi: copy from Emacs (with revisions by Luc).
+ 
+ 2003-07-02   Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi: Add thumbpdf support.
+ 	Use FD 6 instead of /dev/null so that when --debugging, the output
+ 	from auxiliary tools can be observed.
+ 
+ 2003-07-02    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (kbd): document actual makeinfo behavior.
+ 
+ 2003-07-01    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Menus): require that menus come at the end of the
+ 	node, since Info readers can't determine the end
+ 	of a menu.
+ 	Report from: Luc Teirlinck <teirllm@dms.auburn.edu>,
+ 	29 Jun 2003 21:33:19 -0500.
+ 
+ 	* makeinfo/insertion.c (begin_insertion): do not increment
+ 	in_fixed_width_font for @display or @format; this
+ 	incorrectly caused quotes to be omitted in @kbd
+ 	output in those environments.
+ 	Report from: Luc Teirlinck <teirllm@dms.auburn.edu>,
+ 	26 Jun 2003 21:59:48 -0500.
+ 
+ 2003-06-24    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (tex): misplaced period.
+ 	From: Jesper Harder <harder@ifa.au.dk>.
+ 	(GNU Sample Texts): don't end the $Id index entries with a :.
+ 	Report from: Luc Teirlinck <teirllm@dms.auburn.edu>.
+ 
+ 2003-06-20    <karl@gnu.org>
+ 
+ 	* makeinfo/defun.c (process_defun_args): only insert the HTML
+ 	start/end tags if we're actually generating html.
+ 	Report from: Shawn Betts <sabetts@sfu.ca>, 12 Jun 2003
+ 	16:48:50 -0700.
+ 
+ 	* TODO: support translated manuals, from polak@gnu.org.
+ 
+ 	* doc/texinfo.txi: Edit Options node no longer exists in the Emacs
+ 		manual.  From: Luc Teirlinck <teirllm@dms.auburn.edu>.
+ 
+ 2003-06-18    <karl@gnu.org>
+ 
+ 	* config.{guess,sub}, install-sh, lib/xalloc.h: update from gnulib.
+ 
+ 2003-06-10    <karl@gnu.org>
+ 
+ 	* version 4.6.
+ 
+ 
+ Copyright 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.
diff -Nrc2 texinfo-4.12/ChangeLog.46 texinfo-4.13/ChangeLog.46
*** texinfo-4.12/ChangeLog.46	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/ChangeLog.46	Wed Aug 11 06:15:31 2004
***************
*** 0 ****
--- 1,12516 ----
+ 2003-06-10    <karl@gnu.org>
+ 
+ 	* version 4.6.
+ 
+ 2003-06-04    <karl@gnu.org>
+ 
+ 	* config.sub: update from gnulib.
+ 
+ 2003-06-03    <karl@gnu.org>
+ 
+ 	* mkinstalldirs: update from gnulib.
+ 
+ 2003-06-02 Akim Demaille <akim@epita.fr>
+ 
+ 	* util/texi2dvi (tex_envvars): New.
+ 	Use it to forward -I directories to BIBINPUTS and BSTINPUTS, in
+ 	addition of INDEXSTYLE and TEXINPUTS.
+ 
+ 2003-06-02    <karl@gnu.org>
+ 
+ 	* makeinfo/html.c (html_output_head): don't output the <link>, to
+ 		avoid having mozilla put up a document navigation bar when
+ 		we don't have anything else to support it yet.  Report from:
+ 		Per Bothner.
+ 	* makeinfo/makeinfo.c: no need to declare add_link or
+ 		add_escaped_anchor_name, since they are not used.
+ 
+ 	* doc/texinfo.txi (Contents): recommend @contents at the beginning
+ 		more strongly.  Suggestions from Kevin Ryde.
+ 
+ 2003-06-01    <karl@gnu.org>
+ 
+ 	* makeinfo/macro.c (apply): make \\ expand to \ even if the macro
+ 	has no arguments.  Report from: Jesper Harder <harder@ifa.au.dk>,
+ 	31 May 2003 02:56:20 +0200.
+ 
+ 2003-05-31    <karl@gnu.org>
+ 
+ 	* util/dir-example (C++ libraries): new category, suggested by Bruno.
+ 
+ 2003-05-29    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.5.93.
+ 
+ 2003-05-29  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.12.1.
+ 
+ 2003-05-26    <karl@gnu.org>
+ 
+ 	* util/texi2dvi: spurious \ in tex_args assignment.
+ 
+ 	* doc/texinfo.txi (Contents): trim excess words.
+ 
+ 2003-05-25    <karl@gnu.org>
+ 
+ 	* util/texi2dvi: extra quotes for the tex_args assignment in
+ 	--batch mode.
+ 
+ 2003-05-19    <karl@gnu.org>
+ 
+ 	* lib/xexit.c: translate fflush error messages, add newlines
+ 	(report from Jim Meyering).
+ 	* util/{texindex.c,install-info.c},
+ 	* makeinfo/makeinfo.c,
+ 	* info/info.c: use xexit again, with redundant return to avoid
+ 	warnings.
+ 
+ 2003-05-18    <karl@gnu.org>
+ 
+ 	* lib/xexit.c (xexit): fputs not fprintf, so we get newline;
+ 	translate the messages, too.  Report from Jim Meyering.
+ 
+ 	* util/dir-example: move gcc/automake entries.
+ 
+ 	* pretest version 4.5.92.
+ 
+ 	* update to automake 1.7.5.
+ 
+ 	* makeinfo/html.c (append_char): forgot to increment length, duh.
+ 	Report from: "Torsten Bronger" <bronger@physik.rwth-aachen.de>,
+ 	18 May 2003 14:36:23 +0200.
+ 
+ 2003-05-17    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (defining_copying): new fn.
+ 	(add_char): call it, when testing if we should
+ 	call html_output_head.
+ 	Report from: Torsten Bronger <bronger@physik.rwth-aachen.de>,
+ 	17 May 2003 22:10:42 +0200.
+ 
+ 	* configure.ac: pretest version 4.5.91.
+ 
+ 2003-05-16    <karl@gnu.org>
+ 
+ 	* makeinfo/index.c (sort_index): don't deref NULL.  Report from Jan.
+ 
+ 2003-05-13    <karl@gnu.org>
+ 
+ 	* makeinfo/html.c (append_char): appease sgi compiler.
+ 	* makeinfo/html.c (insert_html_tag): remove spurious arg to pop_tag,
+ 	From: ezra peisach <epeisach@med-xtal.bu.edu>, 13
+ 	May 2003 12:13:40 -0400.
+ 
+ 	Fix a few GCC warnings, reported by Jim Meyering:
+ 
+ 	* info/nodes.c: parenthesize assignment used as truth value.
+ 	* info/nodemenu.c (format_node_info): strcpy instead of sprintf,
+ 		since there's no format.
+ 	* makeinfo/makeinfo.c (isolate_nodename): remove spurious decl.
+ 	* makeinfo/xml.c (xml_insert_indexterm): declare as void.
+ 	* info/key.c: initialize with 0,0 at end.
+ 	* info/infokey.c (main): return instead of xexit, and remove
+ 	unused variable.
+ 	* makeinfo/html.c (init_buffer): forgot to return buf.
+ 	* info/info.c (remember_info_program_name): remove spurious
+ 	declaration.
+ 
+ 	* makeinfo/sectioning.c,
+ 	* info/infomap.c: remove unused variables.
+ 
+ 	* makeinfo/makeinfo.c (insert_toplevel_subdirectory),
+ 	* info/man.c,
+ 	* info/infodoc.c (info_find_or_create_help_window): parenthesize
+ 	&& within ||.
+ 	* info/display.c (display_update_one_window): initialize rep to
+ 	NULL, parenthesize && within ||.
+ 
+ 	* util/install-info.c,
+ 	* info/info.c (main),
+ 	* info/makedoc.c (main): return instead of xexit.
+ 
+ 2003-05-13  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (get_xref_files): Pass --file-line-error-style
+ 	to TeX when supported.
+ 
+ 2003-05-12    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.5.90.
+ 
+ 	* Makefile.am (EXTRA_DIST): add onceonly.m4.
+ 
+ 	* makeinfo/tests/accentenc: must discard stderr since we expect
+ 	two errors in this case.
+ 
+ 	* makeinfo/makeinfo.c (main): new option --css-include.
+ 	(usage): add to --help message.
+ 	* makeinfo/makeinfo.h (css_include): new global.
+ 	* makeinfo/html.c (append_char, process_css_file): new fns
+ 	implementing it.
+ 	(html_output_head): call it.
+ 	* doc/texinfo.txi (HTML CSS): new node describing it.
+ 	Also split up the Generating HTML node into subnodes.
+ 
+ 	* config.{guess,sub}: update from gnulib.
+ 
+ 2003-05-10    <karl@gnu.org>
+ 
+ 	* makeinfo/index.c (sort_index): allocate the sorted index in new
+ 	memory, and set the original index to that, to avoid problems with
+ 	@printindex being called twice on the same index.
+ 	(cm_printindex): do not free the returned index.
+ 	Report from: Dumas Patrice <dumas@centre-cired.fr>, 9 May 2003
+ 	15:12:21 +0200.
+ 
+ 2003-05-09    <karl@gnu.org>
+ 
+ 	* makeinfo/defun.c (cm_defun): issue error message without extra
+ 	x's.  Report from: Dumas Patrice <dumas@centre-cired.fr>, 9 May
+ 	2003 17:24:25 +0200.
+ 
+ 2003-05-07  Akim Demaille  <akim@epita.fr>
+ 
+ 	* util/texi2dvi (textra_cmd): New.
+         (textra): Escape escapes from sed's evaluation.
+ 	Use them to support additional TeX/LaTeX commands.
+ 	Support --command as a synonym for --texinfo.
+ 
+ 2003-05-06    <karl@gnu.org>
+ 
+ 	* util/dir-example: finish getting rid of GNU packages.
+ 
+ 2003-05-04    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\itemizey): if no arg to @itemize, default to
+ 	@bullet.  Fix from: Stepan Kasal <kasal@math.cas.cz> 2 May 2003
+ 	09:32:11 +0200, report from: Jesper Harder <harder@ifa.au.dk>.
+ 
+ 2003-04-30    <karl@gnu.org>
+ 
+ 	* makeinfo/.gdbinit: no colon on local variables.
+ 
+ 	* doc/texinfo.txi (documentencoding): Document new Info output feature.
+ 	makeinfo/lang.h (encoding_type): rename `ecname' member to `encname'.
+ 	makeinfo/html.c, lang.c: change usage.
+ 	makeinfo/lang.c (cm_documentencoding): fix typo in warning.
+ 	makeinfo/makeinfo.h (SPLIT_SIZE_THRESHOLD): remove.
+ 	(info_trailer): declare.
+ 	makeinfo/makeinfo.c (info_trailer): new fn to generate Local
+ 		Variables: section if --enable-encoding and
+ 		@documentencoding are given.
+ 	(convert_from_loaded_file): call it.
+ 	* makeinfo/node.c (split_file): write trailer into each split
+ 		file.  Also, simply split files if file size is less than
+ 		--split-size, removing SPLIT_SIZE_THRESHOLD.
+ 
+ 	* doc/texinfo.tex: remove trailing whitespace.
+ 
+ 2003-04-29    <karl@gnu.org>
+ 
+ 	* makeinfo/node.c (cm_anchor): normalize_node_name so that an
+ 	anchor named "TOP" or "top" or whatever is not allowed.  Report
+ 	from: Dumas Patrice <dumas@centre-cired.fr>, 29 Apr 2003 18:56:51
+ 	+0200.
+ 
+ 2003-04-28    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: whitespace cleanup.
+ 
+ 	* doc/texinfo.tex (\doprintindex): don't \kern-\parindent, it makes
+ 	the first index entry stick out to the left.
+ 	Report from: Jesper Harder <harder@ifa.au.dk>,
+ 	28 Apr 2003 03:10:36 +0200.
+ 
+ 	From Akim Demaille  <akim@epita.fr>:
+ 	* makeinfo/makeinfo.c (cm_value): Warn for undefined flags.
+ 
+ 2003-04-27    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\footnote, \smartitalicx): use \ptexslash
+ 	for italic correction instead of \/, since we've redefined \/ now.
+ 	Report from: Jesper Harder <harder@ifa.au.dk>, 27 Apr 2003
+ 	23:30:29 +0200.
+ 
+ 	* util/dir-example (mailutils): more from Wojciech Polak.
+ 	(autoconf): align/edit/sort entries.
+ 
+ 2003-04-26    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Image Syntax): second and following @image args
+ 	 optional. Report from: Max Techter <mtechter@gmx.de>, 26 Apr 2003
+ 	15:50:02 +0200.
+ 
+ 	* util/dir-example (anubis): request from Wojciech Polak.
+ 
+ 2003-04-25    <karl@gnu.org>
+ 
+ 	* makeinfo/defun.c (defun_internal): whitespace needed in docbook
+ 	output for deftype*.  From: José Fonseca
+ 	<j_r_fonseca@yahoo.co.uk>, 25 Apr 2003 13:07:13 +0100.
+ 
+ 2003-04-21    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dofirstparagraphindent): forgot to rename the
+ 	        \...word's.
+ 	(\suppressfirstparagraphindent): forgot to rename
+ 	to \dosuppress...  Reported by Simon.
+ 
+ 2003-04-20    <karl@gnu.org>
+ 
+ 	* Installed changes from Simon for suppressing indentation on the
+ 	first paragraph after section headings, and for new @indent command:
+ 
+ 	2003-04-12  Simon Law  <sfllaw@engmail.uwaterloo.ca>
+         * doc/texinfo.tex (\firstparagraphindent): implement suppression
+         of the indentation of the first paragraph.
+         (\dofirstparagraphindent): for parsing arguments.
+         (\suppressfirstparagraphindent): suppress, or don't suppress.
+         (\dosuppressfirstparagraphindent): the actual gobbling of indentation.
+         (\footnote): Compensate for the hanging-indent side-effect.
+         (\numhead, \apphead, \unnmhead): call \dosuppress...
+         * makeinfo/cmds.c (command_table): add "firstparagraphindent"
+         (as cm_firstparagraphindent)
+         (set_firstparagraphindent, cm_firstparagraphindent): implement
+         @firstparagraphindent parsing of options.
+         * makeinfo/makeinfo.h: declare "do_first_par_indent".
+         * makeinfo/sectioning.c (sectioning_underscore): suppress
+         indentation if requested.
+         * doc/texinfo.txi: document it.
+ 
+         * doc/texinfo.tex (\indent): override \indent primitive to
+         clear \everypar.
+         (\ptexindent): for saving/restoring \indent in @tex.
+         (\footnote): Neutralise the effect of @indent
+         within a footnote.
+         * makeinfo/cmds.c (command_table): add "indent" (as cm_indent).
+         (cm_indent): un-inhibit_paragraph_indentation.
+         * doc/texinfo.txi: document it.
+ 
+         * doc/texinfo.txi (Conventions): remove spurious extra vertical space
+         from bulleted itemize which starts with a quote.
+ 
+         * makeinfo/cmds.c (command_table): fix @novalidate definition.
+ 
+ 
+ 	* Installed changes from Jan for @image support in Info format:
+ 
+ 	2003-04-14  Jan Nieuwenhuizen  <janneke@gnu.org>
+ 	* info/display.c (display_update_one_window): Skip new style
+ 	image tag/cookie.
+ 
+ 	2003-04-09  Jan Nieuwenhuizen  <janneke@gnu.org>
+ 	* makeinfo/makeinfo.c (cm_image): Write ^@^H[image ...^@^H] tag.
+ 
+ 
+ 	* makeinfo/html.c (html_output_head): use <style> to get the
+ 	regular roman font instead of typewriter for @format and @display;
+ 	likewise to reduce the font size for @small*.  Suggestion from:
+ 	"Torsten Bronger" <bronger@physik.rwth-aachen.de>, 20 Apr 2003
+ 	11:03:59 +0200.
+ 
+ 2003-04-18    <karl@gnu.org>
+ 
+ 	* configure.ac (ncurses/termcap.h): move test to after termlib's
+ 	definition, of course.  Reported by Norton Allen
+ 	<allen@huarp.harvard.edu>, 18 Apr 2003 13:31:35 -0400.
+ 
+ 	* configure.ac: remove comma from comment in AC_TRY_LINK program,
+ 	to avoid spurious misinterpretation as an argument delimiter.
+ 
+ 2003-04-08    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (usage): avoid double blank line.
+ 
+ 2003-04-05    <karl@gnu.org>
+ 
+ 	* Makefile.am (all of them): use $(VAR) instead of @VAR@, since
+ 	automake now emits definitions for all substituted variables.
+ 
+ 	* makeinfo/makeinfo.h (DEFAULT_SPLIT_SIZE): increase to 300,000.
+ 	(SPLIT_SIZE_THRESHOLD): increase to 500,000.
+ 	Implicit suggestion via Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>.
+ 
+ 2003-04-04    <karl@gnu.org>
+ 
+ 	* util/texi2dvi (replace_empty): new variable to do the empty path
+ 	element detection; don't hardwire path separator as :.
+ 
+ 2003-04-02    <karl@gnu.org>
+ 
+ 	* doc/txi-pl.tex: new file, from polak@gnu.org.
+ 	* doc/Makefile.am (TXI_XLATE): add it.
+ 
+ 2003-04-01    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (main): correct wording of html/no-headers/split
+ 	error message, and don't complain if output is to stdout.
+ 
+ 	* makeinfo/insertion.c (end_insertion): for @end menu html output,
+ 	don't output </ul> if no_headers.  Report from: Jesper
+ 	Harder <harder@ifa.au.dk>, 01 Apr 2003 00:00:37 +0200.
+ 
+ 	* info/infomap.c (fetch_user_maps): don't complain if .info
+ 		doesn't exist.
+ 
+ 2003-03-31    <karl@gnu.org>
+ 
+ 	* makeinfo/lang.c (iso8859_2_map): new encoding map.
+ 	(encoding_table): enable it.
+ 
+ 	* info/pcterm.c (pc_up_line): use MAX instead of max (no longer
+ 	defined).  Reported by Richard Dawes.
+ 
+ 	* doc/texinfo.txi (documentencoding): mention that all processors
+ 	recognize the command.
+ 
+ 2003-03-30    <karl@gnu.org>
+ 
+ 	* makeinfo/lang.c (cm_special_character): incorrectly added html
+ 	sequences for @oe and @OE even in info output.
+ 
+ 2003-03-25    <karl@gnu.org>
+ 
+ 	* util/srclist.txt (COPYING): get from gnulib/doc, not gnulib.
+ 
+ 2003-03-24    <karl@gnu.org>
+ 
+ 	* TODO: need to write real definition of Info format.
+ 
+ 	* makeinfo/node.c (cm_node): use &nbsp; instead of ` ', to avoid
+ 	line breaks.
+ 
+ 2003-03-22    <karl@gnu.org>
+ 
+ 	* makeinfo/node.c (cm_node): output a space after the Node: and
+ 	similar headers, since Bob wants one.
+ 
+ 	* info/pcterm.c (MIN,MAX): moved to system.h.
+ 	* info/session.c (MIN): moved to system.h.
+ 	* makeinfo/sectioning.c (MIN): move to system.h.
+ 	* lib/system.h (MIN,MAX): define here.
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): don't go smaller than <h3>.
+ 	Reported by Bob.
+ 	(MIN): new macro.
+ 
+ 	* info/session.c (MIN) [MIN]: #undef first if already #define'd.
+ 
+ 	* doc/texinfo.tex (\nodexxx): use a control sequence instead of
+ 	brackets to parse the parts of @node.  Otherwise node names with
+ 	brackets cause spurious output.  Reported by Bob.
+ 	(\xrefprintnodename): separate this out from
+ 	\xrefX, for easier redefining by Bob.
+ 
+ 2003-03-18    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (cm_item): ensure we don't go off the end
+ 	of the string when using strncmp.  From: Peter N Lewis
+ 	<peter@stairways.com.au>, 13 Mar 2003 16:08:27 +0800.
+ 
+ 	* doc/texinfo.txi (Raw Formatter Commands): mention using \gdef
+ 	within @tex, not \def.
+ 
+ 2003-03-12    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Preparing for TeX): mention extra colons.
+ 
+ 2003-03-07    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\/): new command to allow a line break.
+ 	(\ptexslash): for saving/restoring primitive \/ in @tex.
+ 	* makeinfo/cmds.c (command_table): add "/" (as cm_no_op).
+ 	* makeinfo/makeinfo.c (self_delimiting): add /.
+ 	* doc/texinfo.txi (Line Breaks, Command Summary): document it.
+ 	Suggestion from wl.
+ 
+ 	* doc/texinfo.tex (\hyphenation): time-stamp.
+ 
+ 2003-03-06    <karl@gnu.org>
+ 
+ 	* info/session.c (nearest_xref): new fn.
+ 	(info_menu_or_ref_item): call it when we are
+ 	searching for xrefs, instead of just looking on
+ 	the current line.
+ 	* info/info-utils.c (info_copy_reference): new fn.
+ 	* info/info-utils.h (info_copy_reference): declare.
+ 	Bug report from: rich@phekda.freeserve.co.uk,
+ 	04 Mar 2003 17:51:47 +0000.
+ 
+ 	* */.gdbinit: set env MALLOC_CHECK_.
+ 
+ 	2003-03-06  Ralph Schleicher  <rs@nunatak.allgaeu.org>
+ 	* makeinfo/files.h (get_file_info_in_path): Declare function.
+ 	* makeinfo/files.c (get_file_info_in_path): Remove static keyword.
+ 	* makeinfo/makeinfo.c (cm_image): Lookup image file name in the
+ 	search path for include files.
+ 
+ 2003-03-05    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (insert_toplevel_subdirectory): always make
+ 	subdirectory for html. Before, if the current directory happened
+ 	to be named `foo' and the @setfilename was foo.info, we would
+ 	write the split html files into the current directory.  Reported
+ 	by rich@phekda.freeserve.co.uk, 01 Mar 2003 12:03:13 +0000.
+ 
+ 	* makeinfo/files.c (filename_part): simplify assignment.
+ 
+ 2003-02-24    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (get_item_function): check for @item in
+ 	argument to @itemize.  Report from: Dumas Patrice
+ 	<dumas@centre-cired.fr>, 24 Feb 2003 13:13:52 +0100.
+ 
+ 	* makeinfo/makeinfo.c (remember_brace): say `braces' instead of
+ 	`{...}', since often we don't actually expect text inside the
+ 	braces.
+ 
+ 2003-02-21    <karl@gnu.org>
+ 
+ 	* aclocal.m4: automake 1.7.3.
+ 
+ 2003-02-19    <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: omit all node pointers.
+ 
+ 2003-02-18    <karl@gnu.org>
+ 
+ 	* util/texindex.c (maketempname): use already-set `tempdir' instead
+ 	of half-redoing the logic.
+ 	(concat): only need two args, not three; change callers.
+ 	(perror_with_name): really call perror, putting
+ 	the name first a la gcc.
+ 	(pfatal_with_name): call perror_with_name.
+ 
+ 	* util/texi2dvi (get_xref_files): a file whose first line is
+ 	\input texinfo is not an index file.  Report from: Anton Ertl
+ 	<anton@a0.complang.tuwien.ac.at>, 18 Feb 2003 14:41:47 +0100.
+ 
+ 2003-02-16    <karl@gnu.org>
+ 
+ 	* makeinfo/index.c (init_indices): don't try to free indexes that
+ 	undefindex already freed.  Report from: Arkadiusz
+ 	Miskiewicz <misiek@pld.ORG.PL>,
+ 	15 Feb 2003 13:22:49 +0100.
+ 
+ 	* configure.ac (curses): forgot to quote arg to AC_TRY_LINK.
+ 	From vojta and te, 16 Feb 2003 01:37:09 +0100.
+ 
+ 2003-02-13    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): for html cartouche
+ 	output, add class="cartouche".  Suggestion from Stephen.
+ 
+ 2003-02-11    <karl@gnu.org>
+ 
+ 	* Installed patch:
+ 	2003-02-10    Peter Breitenlohner <peb@mppmu.mpg.de>
+ 	* info/indices.c, info/info.c, info/info.h, info/nodemenu.c,
+ 	info/session.c, info/window.c, makeinfo/defun.c, makeinfo/html.c,
+ 	makeinfo/index.c, makeinfo/insertion.c, makeinfo/makeinfo.c,
+ 	makeinfo/makeinfo.h, makeinfo/node.c: declare all constant
+ 	strings as such in order to avoid lots of gcc warnings (for
+ 	--disable-nls and maybe without that as well).
+ 
+ 	* doc/texinfo.tex (\registeredsymbol): new command for Arnold.
+ 
+ 	* util/dir-example: dc to basics.
+ 
+ 	* doc/texinfo.txi (Defining Macros): document new requirements on
+ 	macro names.  Report from: Alper Ersoy
+ 	<dirt@gtk.org>, 11 Feb 2003 05:11:35 +0200.
+ 
+ 2003-02-07    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): output a table with a border
+ 	for @cartouche.
+ 	(end_insertion): end the table.
+ 	From: Joshua N Pritikin <vishnu@pobox.com>,
+ 	7 Feb 2003 21:59:49 +0530.
+ 
+ 2003-02-05    <karl@gnu.org>
+ 
+ 	* info/info.c (short_options): add h.
+ 	(main): treat -h same as --help.
+         From: rwhron@earthlink.net, 31 Aug 2002 19:56:57 -0400.
+ 
+ 	* info/session.c (show_isearch_prompt): compute length of
+ 	translated "Failing ", don't assume 20 is enough.
+ 	(It's 21 bytes in UTF-8 Russian.)
+ 	Report from: varg@thsun1.jinr.ru,
+ 	25 Jul 2002 15:26:42 +0400.
+ 
+ 	* info/display.c (display_update_one_window): don't derefence null
+ 	`entry' (if the screen is very small).
+ 	From: Danny Yoo <dyoo@hkn.eecs.berkeley.edu>,
+ 	8 Jul 2002 15:21:14 -0700.
+ 
+ 	* doc/.cvsignore: ignore *.info and texput.log.
+ 
+ 2003-02-04    <karl@gnu.org>
+ 
+ 	* Version 4.5 (that info bug was a killer).
+ 
+ 	* configure.ac (AC_CHECK_HEADERS): test for sys/stream.h.
+ 	(sys/ptem.h): write separate test since it needs
+ 	sys/stream.h on Solaris.  From: Lars Hecking
+ 	<lhecking@nmrc.ucc.ie>, 4 Feb 2003 19:47:54 +0000.
+ 
+ 	* doc/texinfo.txi: comment about using @example instead of
+ 	@verbatim due to automake doesn't apply any more.
+ 
+ 2003-02-03    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\verbatiminclude): use \other instead of 12.
+ 
+ 2003-02-02    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\cartouche): explicit \par, as @cartouche does
+ 	not work inside a paragraph.
+ 	Bug report from: Stephen Gildea <gildea@intouchsys.com>,
+ 	15 Oct 1999 09:25:31 EDT.
+ 
+ 2003-02-01    <karl@gnu.org>
+ 
+ 	* util/fix-info-dir, util/gen-dir-node, util/install-info-html,
+ 	util/tex3patch, util/txitextest: test && test instead of test -a, etc.
+ 	From: Paul Eggert <eggert@twinsun.com>,
+ 	31 Jan 2003 22:59:35 -0800.
+ 
+ 2003-01-31    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\groupbox): \newbox.
+ 	(\vfilllimit): new \def.
+ 	(\group): insert an explicit \page if the group is
+ 	big, and doesn't fit on the current page.
+ 	Otherwise, the previous page gets stretched unreasonably.
+ 	From: Werner LEMBERG <wl@gnu.org>,
+ 	31 Jan 2003 19:19:33 +0100.
+ 
+ 	* doc/texinfo.tex (\defargscommonending): insert \penalty10002.
+ 	(\parsebodycommon): check for \penalty10002 to
+ 	allow a breakpoint between @def's, not 10000.
+ 
+ 	* doc/texinfo.tex (\defargscommonending): new macro.
+ 	(\defunargs, etc.): call it, instead of repeating code.
+ 	(No functional change.)
+ 
+ 	* info/filesys.c (extract_colon_unit): return last colon unit
+ 	before claiming we're done.  Report from: Alexandre Duret-Lutz
+ 	<duret_g@lrde.epita.fr>, 31 Jan 2003 18:18:22 +0100.
+ 
+ 	* Version 4.4.
+ 
+ 2003-01-30    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dosubind): need full expansion of the index
+ 		sort string.
+ 
+ 	* doc/texinfo.tex (\startcontents,\contents,\shortcontents):
+ 	assignments to \pageno must be \global; otherwise
+ 	if it's run inside a group, as in
+ 	@ifnothtml
+ 	@contents
+ 	@end ifnothtml
+ 	the rest of the pages in the document get roman numerals.
+ 	Reported by rlp.
+ 
+ 	* doc/texinfo.tex (\dosubind): need space between entry and
+ 	subentry in printed output.  Bug report from: Robin Lee Powell
+ 	<rlpowell@digitalkingdom.org>, 30 Jan 2003 15:13:48 -0800.
+ 	(\defophead, \defcvarhead, \defivarheader): show
+ 	method name in \code.
+ 
+ 	* doc/texinfo.tex (\dosubind): need to \vskip-\skip0, not
+ 	-\lastskip, since \lastskip gets cleared by the \nobreak.  Bug
+ 	report from: Werner LEMBERG <wl@gnu.org>, 29 Jan 2003 09:18:16
+ 	+0100.
+ 
+ 2003-01-29    <karl@gnu.org>
+ 
+ 	* info/signals.c (initialize_info_signal_handler): initialize the
+ 	sigaction struct here, not statically, since we can't rely on the
+ 	ordering of the elements; it's different on IRIX and FreeBSD, at
+ 	least.  Patch from: ezra peisach <epeisach@med-xtal.bu.edu>, 28
+ 	Jan 2003 13:09:18 -0500 (EST).
+ 
+ 2003-01-28    <karl@gnu.org>
+ 
+ 	* util/dir-example: bring emacs section up to date.
+ 
+ 2003-01-27    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.3d.
+ 
+         More changes to use @ fully in the .aux file, otherwise something
+ 	as simple as:
+           @node foo
+           @section @code{foo}
+         was broken.
+ 	* doc/texinfo.tex (\setref): call \atdummies.
+ 	(\atdummies): new macro, based on \indexdummies.
+ 	(\commondummies): separate out common redefinitions.
+ 	(\lbraceatcmd,\rbraceatcmd): @{ and @}, as strings.
+ 
+ 	* configure.ac (AC_CHECK_FUNCS): add sigaction.
+ 	* info/signals.c (set_termsig) [HAVE_SIGACTION]: second arg to
+ 	sigaction is a pointer, not a struct.
+ 
+ 	From: AIDA Shinra <aida-s@jcom.home.ne.jp>, 25 Jan 2003 18:53:19 +0900:
+ 	* info/signals.c (mask_termsig,set_termsig,restore_termsig): new fns.
+ 	(initialize_info_signal_handler): use sigaction if we have it.
+ 	(info_signal_proc): reread window size in case it has changed
+ 	while we were suspended.
+ 
+ 	Mon Jan 27 08:09:07 CET 2003 Stepan Kasal <kasal@math.cas.cz>
+ 	* doc/texinfo.tex (\acuteaccent): the workaround is no longer needed.
+ 	(\xrefX): \normalturnoffactive changed to \turnoffactive, since
+ 	we \otherbackslash right afterwards anyway.
+ 
+ 2003-01-24    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: These changes allow ' in node and anchor names:
+ 	(\internalsetq): use @ instead of ' as the escape
+ 	character for .aux files.
+ 	(\xrdef): don't need to play games with \ now.
+ 	(\readauxfile): don't set catcode' to 0, and do
+ 	set catcode@ to 0.
+ 
+ 	These changes allow \ in node and anchor names
+ 	(this worked once, but we broke it somewhere along the line):
+ 	(\setref, \xrefX, \dosetq, \refx): call \otherbackslash.
+ 	(\otherbackslash): new macro to make an active
+ 	backslash expand to a literal `\' character with
+ 	catcode other.
+ 
+ 
+ 	* configure.ac: pretest version 4.3c.
+ 
+ 	* doc/texinfo.tex (\smallenvironments): remove, and change callers.
+         (\small...x): rename to just \small...
+ 	(\smallexamplefonts): set to \smallfonts, not
+ 	\smallerfonts, at least until people complain again.
+ 
+ 	The effect of these changes is to make the
+ 	@small... commands print in a smaller font (9pt)
+ 	for all formats, not just @smallbook and @afivepaper.
+ 
+ 
+ 	* info/filesys.c (extract_colon_unit): rewrite so that an empty
+ 	unit does not stop us from processing the rest.  Report from:
+ 	Werner LEMBERG <wl@gnu.org>, 24 Jan 2003 07:01:09 +0100.
+ 
+ 
+ 	Date: Mon, 02 Dec 2002 01:06:37 +0900
+ 	From: AIDA Shinra <aida-s@jcom.home.ne.jp>
+ 
+ 	* "info infokey" says key bindings in .info take precedence over
+ 	the default mapping, but this is not true. Only bindings to
+ 	undefined keys take effects.
+ 	* Binding to "invalid" action results crash.
+ 	* No code to disable prefix keys. Some users might want to bind
+ 	escape or C-x to a non-prefix key, but this does not allowed.
+ 	... It always allows '^h' in incremental
+ 	search. Some terminals map 'backspace' to '^h' by default.
+ 
+         These are the changes:
+ 	* info/session.c (incremental_search): check for Control('h') as
+ 	well as DEL.
+ 	* info/infomap.c (find_function_keyseq, add_function_keyseq,
+ 	remove_function_keyseq): new fns.
+ 	(keymap_copy_keymap, keymap_discard_keymap): take
+ 	rootmap arg.
+ 
+ Wed Jan 22 14:25:39 CET 2003  Stepan Kasal  <kasal@math.cas.cz>
+ 
+ 	* doc/texinfo.tex (\footnotezzz): the very beginning was moved
+ 	  to \startfootins;
+ 	  (\startfootins): new macro;
+ 	  (\multitable, \dotable): redefine \startfootins to get footnotes
+ 	  saved, use \crcrwithfootnotes;
+ 	  (\crcrwithfootnotes): check for postponed footnotes each time a row
+ 	  of a multitable is finished;
+ 	  (\tab): no longer defined globally, just \let to & inside
+ 	  @multitable.
+ 
+ 2003-01-22    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: doc fix.
+ 	* doc/texinfo.tex (\dofootnote): rename from \footnotezzz.
+ 
+         Wed Jan 22 14:23:51 CET 2003  Stepan Kasal  <kasal@math.cas.cz>
+ 	* doc/texinfo.tex (\cartouche, \footnotezzz): removed \long, it
+ 	  has no effect for macros without a parameter;
+         (\fo@t, \f@@t, \f@t, \@foot): removed, local \def has no effect.
+ 
+ 2003-01-21    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Output Formats): new section.
+ 
+ 2003-01-19    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.3b.
+ 
+ 	* makeinfo/tests/include-value: need -I $srcdir.
+ 
+ 	* util/texindex.c:
+ 	* util/install-info.c:
+ 	* info/infokey.c:
+ 	* info/info.c:
+ 	* makeinfo/makeinfo.c:
+ 	* util/texi2dvi: 2003.
+ 
+ 2003-01-18    <karl@gnu.org>
+ 
+ 	* makeinfo/node.c: add `(perhaps incorrect sectioning?)' to some of
+ 	the error messages. Unfortunately we can't easily
+ 	determine when the error stems from actual
+ 	mistyped node pointers, and when from incorrect
+ 	menus causing the implicit pointer creation to fail.
+ 
+ 2003-01-17    <karl@gnu.org>
+ 
+ 	Thu Jan 16 10:28:32 CET 2003  Stepan Kasal  <kasal@math.cas.cz>
+ 	* doc/texinfo.tex (\refx): Set locally \indexdummies before expanding
+ 	  the \csname, in case there are macros; foreign accents, for example.
+ 	Bug report from Dumas Patrice <dumas@centre-cired.fr>.
+ 
+ 	* makeinfo/makeinfo.c (COMMAND_CHAR): new macro, and exclude ^ and
+ 	_ from command names.
+ 	(read_token): call it.
+ 
+ 	* makeinfo/makeinfo.h (command_char): move to makeinfo.c, since
+ 	it's only used in one place.
+ 
+ 2003-01-16    <karl@gnu.org>
+ 
+ 	* TODO: @else
+ 
+ 2003-01-12    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\dounmacro): simplify method for removing from
+ 	macro list.  From Stepan.  (Also rename from \unmacroxxx.)
+ 	(\unmacrodo): new macro, called with new method.
+ 
+ 	* doc/texinfo.tex (\dotChar, questChar, exclamChar, colonChar,
+ 	semiChar, commaChar, underChar): names for catcode chars, defined using
+ 	\chardef.  From Stepan.
+ 
+ 	* doc/texinfo.tex (\conditionalsucceed): back to the easy
+ 	definition, since @set is global now.  From Stepan.
+ 
+ 	* doc/texinfo.tex (\doifclear,\doifset): use \let\next instead of
+ 	\expandafter, so that we'll succeed on no
+ 	conditional text.  From Stepan.
+ 	Also rename from \ifclearxxx and \ifsetxxx.
+ 
+ 	* doc/texinfo.tex (\expandablevalue): give a \message if the
+ 	variable is not set.  Based on patch from Stepan.
+ 
+ 	* doc/texinfo.tex (\setuptable): insert an actual \space after
+ 	\unskip.  From Stepan.
+ 
+ 	* doc/texinfo.tex (\kbdinputstyle): give error if unknown argument,
+ 	and call the macro to set the default.  From Stepan.
+ 
+ 	* doc/texinfo.tex: typo from Stepan.
+ 
+ 	* doc/texinfo.tex (\docenter): rename from \centerzzz and do \hfil
+ 	instead of using plain's \centerline and \hss.  Also force line
+ 	breaks before and after in horizontal mode.
+ 	Based on patch from Stepan, 11 Apr 2000 19:44:31 +0200.
+ 
+ 	* doc/texinfo.tex: use \other and \active consistently.
+ 	From: Stepan Kasal <kasal@suse.cz>, 11 Apr 2000 19:44:31 +0200.
+ 
+ 	* makeinfo/cmds.c (handle_include): call text_expansion on the
+ 	filename, so @value constructs are expanded.
+ 
+ 	* doc/texinfo.txi (verbatiminclude, Using Include Files): mention
+ 	@value expansion.
+ 	Also, update samples to be copyright 2003.
+ 
+ 	* doc/texinfo.tex (\doverbatiminclude, \verbatimzzz): expand
+ 			@value(but nothing else).
+ 	Bug from: Alper Ersoy <aersoy@tfz.net>,
+ 	6 Jan 2003 13:14:28 +0200.
+ 
+ 2003-01-11    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\definedummyword): new macro.
+ 	(\indexdummies): call it, instead of defining each
+ 	command separately; many trailing spaces had been omitted.
+ 	Alternate implementation of a patch from: Stepan
+ 	Kasal <kasal@math.cas.cz>, 10 Jan 2003 22:42:05 +0100.
+ 
+ 	* doc/texinfo.tex (\acuteaccent): new defn.
+ 	(\indexdummies): use it instead of \' in the aux file.
+ 	Variation of a patch from: Stepan Kasal <kasal@math.cas.cz>,
+ 	10 Jan 2003 21:28:40 +0100.
+ 
+ 	* doc/texinfo.tex: doc fix.
+ 
+ 2003-01-10    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\indexnofonts, \indexdummies): handle more
+ 		accent commands.
+ 	(\indexdummyfont): not needed, use \asis instead.
+ 
+ 	* doc/texinfo.tex (\indexdummies,\indexnofonts): indent, no other
+ 		changes.
+ 
+ 	* doc/texinfo.tex (\chapter .. \subsubsection): indent the
+ 	definitions; no other change.
+ 
+ 	* doc/texinfo.txi (Macro details): no multiple-line args is
+ 		another limitation.
+ 
+ 	Fri Jan 10 07:12:23 CET 2003 Stepan Kasal <kasal@math.cas.cz>
+         * texinfo.tex (\writetocentry): The
+           common work on building the line for \write\tocfile was
+           moved into the macro itself and thus all callers has been changed.
+ 
+ 2003-01-09    <karl@gnu.org>
+ 
+ 	* info/session.c (incremental_search): don't interpret the
+ 	`function' element as an InfoCommand when it's really a Keymap.
+ 	This caused arrow keys to be inserted literally under Solaris, but
+ 	not GNU/Linux.  Bug report from: Jeremy Lin
+ 	<jjlin@OCF.Berkeley.EDU>, 5 Jan 2003 01:59:29 -0800.
+ 
+ 	* info/infomap.c: add comment about strange pointer cast.
+ 
+ 2003-01-08    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\ignoremorecommands): define \Edef... and
+ 	\def...x for all @def... commands, and use \empty
+ 	instead of \relax.  Bug report from Paul Eggert
+ 	<eggert@twinsun.com>, 7 Jan 2003 22:29:07 -0800.
+ 
+ 2003-01-06    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (table): mention @option as a useful indicating
+ 	command, and need for blank lines before and
+ 	after.  Suggestion from: Kevin Ryde
+ 	<user42@zip.com.au>, 03 Jan 2003 10:02:55 +1000.
+ 
+ 2003-01-05    <karl@gnu.org>
+ 
+ 	* util/texi2dvi: make egrep a variable (EGREP).  Suggestion from:
+ 	Kurt Hornik <hornik@ci.tuwien.ac.at>.
+ 	Also, replace fgrep with grep.
+ 
+ 	* doc/Makefile.am (TXI_XLATE): include txi-tr.tex from Alper Ersoy
+ 	<dirt@gtk.org>.
+ 
+ 2003-01-02    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (end_insertion): in table case, call
+ 	close_insertion_paragraph.  Bug report from: Kevin
+ 	Ryde <user42@zip.com.au>, 03 Jan 2003 08:09:54 +1000.
+ 
+ 	* doc/texinfo.tex: remove spurious CTRL-G.
+ 
+ 	* util/srclist.txt: more m4 files from gnulib now.
+ 
+ 2003-01-01    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\_): more space afterwards, so __ comes out
+ 	better.  Noticed in the gcc manual.
+ 
+ 2002-12-31    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (usage): omit all the help message when something
+ 	goes wrong in argument parsing, as intended.
+ 
+ 2002-12-26    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\insertcopying): ignore @c, @comment, and
+ 	@ignore...@end ignore as best we can.  Report from
+ 	"Joseph S. Myers" <jsm28@cam.ac.uk>, 24 Dec 2002
+ 	18:08:10 +0000 (GMT), for the gcc manual, which
+ 	uses these constructs for automatic man page generation.
+ 
+ 2002-12-23    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (example): note that Texinfo commands are
+ 		expanded, plus other changes.  Suggestion from Nelson Beebe.
+ 
+ 2002-12-20    <karl@gnu.org>
+ 
+ 	* config.guess: update from prep.
+ 
+ 2002-12-17    <karl@gnu.org>
+ 
+ 	* makeinfo/texinfo.dtd (indexterm): index not INDEX.
+ 	(node): only any block, not just para|menu.
+ 	* makeinfo/xml.c (texinfoml_element_list): format and like can
+ 		contain para.
+ 	From: Alper Ersoy <aersoy@tfz.net>.
+ 
+ 2002-12-14    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (makeinfo in Emacs): does not prompt for
+ 	filename.
+ 	From: Kevin Ryde <user42@zip.com.au>.
+ 
+ 2002-12-13    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: short sample needs @top (from jas), gnu sample
+ 	can use @verbatim (automake fix).
+ 
+ 2002-12-11    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: typos.
+ 
+ 2002-12-07    <karl@gnu.org>
+ 
+ 	* makeinfo/xml.c: use lowercase, allow more chars in id's.  From:
+ 	Jaime Davila <jdavila@engr.uconn.edu>, 6 Dec 2002 11:00:25 -0500.
+ 
+ 2002-12-05    <karl@gnu.org>
+ 
+ 	* util/dir-example: alphabetize make.
+ 
+ 	* NEWS: change texinfo.tex url.
+ 
+ 	* doc/texinfo.tex (\obstexwarn): fix url's to TeX.README and
+ 	texinfo.tex.
+ 
+ 2002-12-02    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Line Breaks): fixes.
+ 
+ 2002-12-01    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.3a.
+ 
+ 2002-11-30    <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (texinfo): restore rule since this won't quite
+ 	be fixed until automake 1.7.2 or later.
+ 
+ 2002-11-29 19:19  feloy
+ 
+ 	* makeinfo/xml.c: Fix the <para>&lt; bug in XML, reported by K.
+ 	Ryde
+ 
+ 2002-11-29    <karl@gnu.org>
+ 
+ 	* lib/strdup.c: gnulib update.
+ 
+ 2002-11-29  Alexandre Duret-Lutz  <adl@gnu.org>
+ 
+ 	* doc/Makefile.am (.texi.info, texinfo): Remove.  Automake 1.7+
+ 	no longer output info files in the source tree.
+ 
+ 2002-11-26    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (cm_insertion_copying): flush_output, so that
+ 	output_position gets updated, which in turn makes
+ 	the tag table positions reflect the copying text.
+ 	Report from: "W. L. Estes" <wlestes@uncg.edu>, 15
+ 	Nov 2002 15:57:04 -0500.
+ 
+ 	* makeinfo/index.c (init_indices): undefindex after we know
+ 	name_index_alist[i] is not null.
+ 	From: "Ronald F. Guilmette" <rfg@monkeys.com>, 26 Nov 2002
+ 	01:08:04 -0800.
+ 
+ 	* doc/Makefile.am (texinfo): depend on version
+ 	files.  Report from: Kevin Ryde
+ 	<user42@zip.com.au>, 27 Nov 2002 07:52:57 +1000.
+ 
+ 2002-11-25    <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_verb): use <tt> not <pre>, as this is an
+ 	inline construct.  Also, decrement
+ 	in_fixed_width_font, else the next paragraph does
+ 	not get a <p>.
+ 	Report from: Torsten Bronger <bronger@physik.rwth-aachen.de>
+ 	26 Nov 2002 00:37:35 +0100.
+ 
+ 	* doc/texinfo.tex (\dospecials): must include all other characters
+ 	that we set active, namely <>|_", or they got
+ 	mysteriously lost as the first character on a
+ 	verbatim line.
+ 	Report from: Torsten Bronger <bronger@physik.rwth-aachen.de>
+ 	25 Nov 2002 18:26:12 +0100.
+ 
+ 	(\doverbatim): ignore everything up to the first
+ 	^^M, to avoid an extra blank line in the output.
+ 
+ 	* lib/getopt*, strdup.c, tempname.c: update from gnulib (bruno
+ 	changes + gpl).
+ 
+ 2002-11-24    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Multiple Spaces): xref tie rather w for
+ 	unbreakable spaces.
+ 
+ 2002-11-22    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: editorial changes from Max's editor.
+ 
+ 2002-11-21    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Conventions): add item for blank lines as
+ 	paragraph separator.  Report from: Maxim Masiutin
+ 	<max@ritlabs.com>, 21 Nov 2002 00:03:07 +0200.
+ 
+ 2002-11-19    <karl@gnu.org>
+ 
+ 	* util/install-info.c (ensure_dirfile_exists): don't translate the `*
+ 	Menu' keyword.  Report from: Ingo Krabbe
+ 	<i.krabbe@dokom.net>, 19 Nov 2002 09:24:45 +0100.
+ 
+ 2002-11-18    <karl@gnu.org>
+ 
+ 	* po/.cvsignore: exclude *.gmo instead of listing each individually.
+ 	From: Frédéric L. W. Meunier <0@pervalidus.net>,
+ 	15 Nov 2002 20:16:09 -0200 (BRST).
+ 
+ 	* configure.ac (--enable-multiplatform): new option for teTeX and
+ 	TeX Live.  From te.
+ 
+ 2002-11-14    <karl@gnu.org>
+ 
+ 	* configure.ac, util/texi2dvi, NEWS: release version 4.3.
+ 
+ 	* util/texi2dvi, mkinstalldirs: use `for var<newline>do"' instead
+ 	 of  `for var; do', for Solaris.
+ 
+ 	* doc/texinfo.txi (math): emphasize that makeinfo does not interpret
+ 	the arg.
+ 
+ 	* config.{guess,sub}: update from prep.
+ 
+ 2002-11-13    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.2f.
+ 
+ 	* makeinfo/xml.c (INDEX_SEP): define as a string that will never
+ 	appear, so that we don't try to break index terms
+ 	at commas.  Idea from: Stepan Kasal
+ 	<kasal@math.cas.cz>, problem reported by José
+ 	Fonseca <j_r_fonseca@yahoo.co.uk>.
+ 
+ 2002-11-12    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: make sure command is non-null, for sake of bogus
+ 	input (\def\x{}).  Report from
+ 	Neil.Turton@broadcom.com, debian bug#168689.
+ 
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): remove docbook.[ch],
+ 	per feloy the docbook stuff is in xml.[ch] now.
+ 
+ 2002-11-12 19:48  feloy
+ 
+ 	* makeinfo/: lang.c, makeinfo.c: (docbook) Entities for accented
+ 	characters are written correctly
+ 
+ 2002-11-12 19:34  feloy
+ 
+ 	* makeinfo/xml.c: (docbook) Do not expand @set contents
+ 
+ 2002-11-11 18:14  feloy
+ 
+ 	* makeinfo/xml.c: Better <bookinfo> support
+ 
+ 2002-11-11 13:37  feloy
+ 
+ 	* makeinfo/: cmds.c, insertion.c, xml.c, xml.h: Better use of
+ 	<bookinfo> and <abstract> with docbook output
+ 
+ 2002-11-11 01:57  feloy
+ 
+ 	* makeinfo/: defun.c, xml.c, xml.h: Removed all references to
+ 	docbook.[ch] which was the old sources for docbook output, replaced
+ 	by xml.[ch]
+ 
+ 2002-11-10 23:31  feloy
+ 
+ 	* makeinfo/: insertion.c, xml.c, xml.h: Some bugfixes in docbook
+ 	output
+ 
+ 2002-11-09 18:47  feloy
+ 
+ 	* makeinfo/insertion.c: In Docbook, Copying paragraph is not
+ 	inserted at @copying/@end copying point.
+ 
+ 2002-11-08 21:01  feloy
+ 
+ 	* makeinfo/xml.c: take care of indexterm at beginning of table
+ 
+ 2002-11-08 20:52  feloy
+ 
+ 	* makeinfo/xml.c: Text before first @item in @table is inserted as
+ 	the <title> of <variablelist>
+ 
+ 2002-11-08 20:24  feloy
+ 
+ 	* makeinfo/xml.c: subsubheading is simplesect and not sect3
+ 
+ 2002-11-08 19:13  feloy
+ 
+ 	* makeinfo/: makeinfo.c, xml.c, xml.h: makeinfo/xml.c (xml_id):
+ 	Added more forbidden characters makeinfo/{xml.c,xml.h,makeinfo.c}:
+ 	Defined xml_in_xref_token variable
+ 
+ 2002-11-07    <karl@gnu.org>
+ 
+ 	* makeinfo/sectioning.c: doc.
+ 	* makeinfo/sectioning.c: revert last change, it breaks gcc.
+ 
+ 	* makeinfo/xml.c (xml-add_char): don't insert BOOKINFO and ABSTRACT
+ 	if executing_string.  From Jos? Fonseca.
+ 
+ 	* configure.ac: pretest version 4.2e.
+ 
+ 	From: José Fonseca <j_r_fonseca@yahoo.co.uk>,
+               7 Nov 2002 00:31:28 +0000.
+ 	* makeinfo/index.c (cm_printindex): in docbook case, pass the
+ 	unexpanded index term.
+ 	* makeinfo/xml.c (xml_insert_indexterm): execute_string instead of
+ 		insert_string.
+ 	(Otherwise, <>& are not escaped in the docbook index output.)
+ 
+ 	* util/dir-example: sed.
+ 
+ 	* makeinfo/lang.c: copyright.
+ 	* makeinfo/lang.h: copyright.
+ 
+ 2002-11-07  Stephen Gildea
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): have A tag enclose
+           section name rather than preceding it.
+ 
+ 	* makeinfo/toc.c (contents_update_html): put name attribute into
+           existing A tag rather than making a separate tag for it.
+ 
+ 2002-11-07  Stephen Gildea
+ 
+ 	* makeinfo/lang.c: support @documentencoding US-ASCII:
+ 	Put NULL at end of map tables so they can be of varying lengths.
+ 	(us_ascii_map): new iso_map_type table.
+ 	(encoding_table): add US_ASCII.
+ 	(cm_search_iso_map): don't assume all maps are the same length.
+ 	(cm_documentencoding): don't assume ISO_8859_1 is first table entry.
+ 	* makeinfo/lang.h (encoding_code_type): add US_ASCII.
+ 
+ 2002-11-05    <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: untabify.
+ 	* doc/info-stnd.texi: document that.
+ 	* info/footnotes.c (auto_footnotes_p): turn off by default.
+ 
+ 	* info/infodoc.c (info_internal_help_text): had
+ 	scroll-{forward,backward} twice instead of {next,prev}-line.
+ 	* info/infodoc.c: untabify.
+ 
+ 	* util/texi2dvi: untabify.
+ 	* doc/texinfo.tex: untabify.
+ 	* util/texindex.c: untabify.
+ 	* util/install-info.c: untabify.
+ 	* makeinfo/makeinfo.c: indentation fix.
+ 	* makeinfo/cmds.c: doc fix.
+ 
+ 2002-11-04    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.2d.
+ 	* doc/fdl.texi: better line break to avoid overfull hbox.
+ 
+ 2002-11-04  Stephen Gildea
+ 
+         * makeinfo/{footnote.c,cmds.c,html.c,index.c,insertion.c,
+         makeinfo.c,node.c,toc.c,sectioning.c}: add a class attribute
+         to tags generated in special circumstances that wouldn't be
+         obvious to a user agent.
+ 
+         Quote all attribute values (for XHTML).
+ 
+ 2002-11-04    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (File End): grammar.
+ 
+         These changes from gildea:
+ 	* makeinfo/cmds.c (cm_titlepage): new fn, and use it for @titlepage.
+ 
+ 	* makeinfo/cmds.h (titlepage_cmd_present): new global.
+ 	* makeinfo/html.c (html_output_head): check titlepage_cmd_present
+ 	before outputting the <h1>.
+ 
+ 	* makeinfo/html.c (html_output_head): put a class on the <h1> from
+ 	settitle.
+ 
+ 	* makeinfo/cmds.c (cm_titlefont): put the class directly on the h1
+ 	rather than a separate <span> element.
+ 
+ 2002-10-31    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\mathactive): new fn.
+ 	(\math): call it, to change definitions of active characters.
+ 	(\ptex{gtr,hat,less,plus}): save original characters.
+ 	Report from wl.
+ 
+ 	* doc/texinfo.tex (\itemzzz): \penalty10001 instead of 10000
+         before the putative \parskip.
+         (\aboveenvbreak): insert \parskip if penalty!=10000,
+         rather than <10000. Otherwise, @item some long item label /
+         @example has too little spacing.
+ 	Report from: Werner LEMBERG <wl@gnu.org>,
+ 	26 Apr 2002 08:37:41 +0200 (CEST).
+ 
+ 	* makeinfo/makeinfo.c (executing_macro): new static.
+ 	(read_command): set it, if we execute a macro.
+ 	(add_char): if it is set, call html_output_head.
+ 	This is so if a macro expansion is first in the document body, the
+ 	html head gets written before the macro body.
+ 	Report from: Stephen Gildea <gildea@stop.mail-abuse.org>,
+ 	10 Jul 2002 13:35:13 -0400.
+ 
+ 	* makeinfo/html.c (html_title_written),
+ 	* makeinfo/html.h (html_title_written): make available.
+ 	* makeinfo/cmds.c (cm_titlefont): set html_title_written for html
+ 		output.
+ 
+ 	* util/texindex.c: texindex.c (need_initials, first_initial): New
+ 	globals.
+ 	(main): Clear them for each index.
+ 	(parsefile): Set need_initials when there is more than one
+ 	initial in this index.
+ 	(indexify): Do not emit \initial commands unless need_initials
+ 	is set.  Use toupper.
+ 
+ 	From: Zack Weinberg <zack@codesourcery.com>
+ 	Date: Tue, 26 Mar 2002 17:20:06 -0800
+ 
+ 	* lib/system.h: doc fix from gildea.
+ 
+ 2002-10-30    <karl@gnu.org>
+ 
+         (Following reported by Bob Wilson.)
+ 
+ 	* doc/texinfo.tex (\sectionheading): add either
+ 	\normalbaselineskip or \parskip after the heading, whichever is
+ 	larger, instead of hardwiring 10pt.
+ 
+ 	* doc/texinfo.tex (\defxbodycommon): new defn, including a
+ 	potential breakpoint if we have multiple consecutive @def...x commands.
+ 	(\def*parsebody): use it.
+ 
+ 	* doc/texinfo.tex (\singlespace): remove, since we fixed the
+         regular line spacing a long time ago to not be double-spaced.
+         In @smallbook mode, it ironically caused excessive line spacing.
+ 	(\nonfillstart, \quotation): don't call it.
+ 
+ 	* doc/texinfo.tex (\smartslanted, \smartitalic): use \ttsl if in
+ 	typewriter.
+ 	From: Bob Wilson <bwilson@tensilica.com>.
+ 
+ 	* doc/texinfo.tex (\defmethparsebody): pass \empty to \smallsplit
+ 	to keep a brace-delimited argument to @deffn from having the braces
+ 	stripped.
+ 	(Report from: Han-Wen Nienhuys <hanwen@cs.uu.nl>.)
+ 
+ 2002-10-28    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\loggingall): rewrite to minimize log file
+ 	output (ideas from Frank Mittelbach's trace.sty) and explicitly
+ 	show the etex changes.
+ 
+ 	* configure.ac: pretest version 4.2c.
+ 
+ 	* NEWS: mention Werner's fixes.
+ 
+ 2002-10-27  Werner Lemberg  <wl@gnu.org>
+ 
+ 	* makeinfo/html.c (insert_html_tag): Fix handling of nested,
+ 	identical tags.
+ 
+ 2002-10-27    <karl@gnu.org>
+ 
+ 	* configure.ac (AM_INIT_AUTOMAKE): add dist-bzip2 option.
+ 
+ 2002-10-26    <karl@gnu.org>
+ 
+ 	* 2002-10-24  Werner Lemberg  <wl@gnu.org>
+ 	Fix html font tags, i.e., make the output similar to
+ 	texinfo.tex.  The main idea is to avoid nested font tags.
+ 
+ 	* makeinfo/html.c (push_tag, pop_tag): New functions.
+ 	(insert_html_tag): Use them.
+ 	Don't emit more than a single font attribute.
+ 
+ 	* makeinfo/html.h (HSTACK): New structure.
+ 
+ 	* makeinfo/defun.c: Include cmds.h and html.h.
+ 	(process_defun_args): Don't apply <i>...</i> to parentheses
+ 	and brackets.
+ 	(defun_internal): Use insert_html_tag for emitting font tags.
+ 
+ 	* makeinfo/cmds.c (cm_url): Use insert_html_tag for emitting
+ 	font tag.
+ 	(cm_r): Simplify.
+ 
+ 2002-10-25  Alexandre Duret-Lutz  <adl@gnu.org>
+ 
+ 	* util/texi2dvi: Preserve empty components when expansing
+ 	TEXINPUTS and INDEXSTYLE.
+ 
+ 2002-10-24    <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: missing period.
+ 
+ 	* m4/{check-decl.m4,mkstemp.m4,prereq.m4}: new files from gnulib.
+ 	* lib/mkstemp.c, lib/tempname.c: likewise.
+ 	* aclocal.m4, configure.ac: support for mkstemp instead of mktemp.
+ 	* util/texindex.c: use mkstemp instead of mktemp.
+ 
+         2002-10-24  Alexandre Duret-Lutz  <adl@gnu.org>
+ 	* util/texi2dvi: Turn relative entries $TEXINPUTS and $INDEXSTYLE
+ 	into absolute paths.  (Allows --clean to work with relative dirs
+ 	in TEXINPUTS, etc.)
+ 
+ 	* doc/texinfo.tex: update \texinfoversion timestamp.
+ 
+ 2002-10-22    <karl@gnu.org>
+ 
+ 	2002-10-16  Werner Lemberg  <wl@gnu.org>
+ 
+ 	* texinfo.tex (\appendixbox): New macro to compute a
+ 	fixed-width box for the appendix entry in the TOC.
+ 	(\appendixzzz, \appendixentry): Use it.
+ 
+ 	(\shortconttt): New font.
+ 	(\summarycontents): Use it to set the font size of the \tt
+ 	font properly.
+ 
+ 	(\authortt): New macro.
+ 	(\authorfont): Use it to provide a proper font size for
+ 	@email used within @author.
+ 
+ 2002-10-21    <karl@gnu.org>
+ 
+ 	* automake 1.7.1.
+ 
+ 2002-10-18    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\defname): get rid of the unused
+ 	 \deftypemargin; typeset the function type word flush right, in
+ 	 brackets.  Partially suggested by bob.
+ 
+ 2002-10-16    <karl@gnu.org>
+ 
+ 	* makeinfo/html.c: Just > after all on <meta> and <link> to
+ 	appease HTML 4.01 (and break XHTML).  From Janis.
+ 
+ 2002-10-15    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.2b.
+ 
+ 	* makeinfo/cmds.c (cm_dots, cm_enddots): don't use small if
+ 	in_fixed_width_fonts; this violates the html specs, which don't
+ 	want you to change fonts within <pre>. (Argh.)
+ 	Report from: Janis Johnson <janis187@us.ibm.com>,
+ 	14 Oct 2002 15:59:16 -0700.
+ 
+ 2002-10-14  Alexandre Duret-Lutz  <adl@gnu.org>
+ 	* util/texi2dvi (common, txincludes): Fix definitions so that
+ 	an empty $txincludes doesn't result in a empty path element
+ 	in TEXINPUTS.
+ 
+ 2002-10-14    <karl@gnu.org>
+ 
+ 	* info/infokey.c: copyright 2002 not 02.
+ 	* makeinfo/lang.c: copyright 2001 not 01.
+ 
+ 	* makeinfo/insertion.c (begin_insertion): for enumerate, set
+ 	in_paragraph=0 as we do for itemize.
+ 	Otherwise a </p> gets inserted at the next @item, which is wrong.
+ 
+ 	Report from: Janis Johnson <janis187@us.ibm.com>, 14 Oct 2002
+ 	12:35:30 -0700.
+ 
+ 2002-10-13    <karl@gnu.org>
+ 
+ 	* util/install-info.c (longopts): make --infodir a synonym for
+ 	--info-dir, for some compatibility with the Debian install-info.
+ 	Reported by Bob Chassell, Yves Codet <ycodet@club-internet.fr>,
+ 	and many others.
+ 
+ 	* doc/texinfo.txi (makeinfo advantages): document various options
+ 	that have crept in to the source.  (Werner Lemberg noted that
+ 	--iftex and companions were missing.)
+ 
+ 2002-10-10    <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_tie): new fn for new cmd @tie{}.
+ 	* doc/texinfo.txi: document it.
+ 
+ 2002-10-09    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: recommend free software directory categories
+ 	(suggestion from rms),
+         more info about @noindent (fut_nis@d3.dion.ne.jp and ryk@dspwiz.com),
+         version specification (spectorhome@rcn.com).
+ 
+ 	* makeinfo/{cmds,footnote,html,insertion,makeinfo,multi,node}.c:
+ 	use <br /> instead of plain <br>, for the sake of XHTML.  Likewise
+         with <hr /> and <meta />, and quote all <meta> values.
+         Suggestion (and assurance of compatibility) from
+         Janis Johnson <janis187@us.ibm.com>
+         and Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+         (the gcc web page maintainers).
+ 
+ 	* util/infosrch: new contrib script.
+ 	* util/Makefile.am (EXTRA_DIST): add infosrch.
+ 
+ 2002-10-04    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest version 4.2a.
+ 
+ 	* TODO: more info on dir categories.
+ 
+ 2002-10-02    <karl@gnu.org>
+ 
+ 	* doc/.cvsignore: ignore tex output files.
+ 
+ 	* util/dir-example: remove unused categories, etc.
+ 
+ 2002-10-01    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\xml,\ifxml): more \doignore's.
+ 	(\copying,\insertcopying): new implementation to save the uninterpreted
+ 	tokens instead of typesetting a box, so that the page size, fonts,
+ 	etc., don't have to be defined before @copying is run.
+ 
+ 	These changes from Werner Lemberg <wl@gnu.org>:
+ 	(\internalpagesizes): take two new arguments for the physical paper
+ 	height and width.
+ 	(\smallbook,\afourpaper,\afivepaper,\letterpaper,\afourwide,
+  	 \pagesizes): pass them.
+ 
+ 2002-09-30    <karl@gnu.org>
+ 
+ 	* util/texi2dvi: doc fixes.
+ 
+ 	* README: mention autoreconf.
+ 
+ 2002-09-29    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\pdfmakeoutlines): call \turnoffactive to handle all special characters
+ 	except \{}.
+ 	(\normalturnoffactive): call \turnoffactive instead of repeating all the
+ 	redefinitions.
+ 
+ 	* doc/texinfo.tex (\afourpaper, \afourlatex, \afourwide): new
+ 		formatting values.
+ 	From: Eric.Belpaire@equant.com, 30 Aug 2002 19:03:30 +0200.
+ 
+ 	* aclocal.m4: $Id now omitted.
+ 
+ 	* doc/texinfo.txi: document @xml and @ifxml.
+ 
+ 	* makeinfo/makeinfo.c (usage): mention the new options.
+ 	* info/Makefile.am (BUILT_SOURCES): define this unconditionally,
+ 		no more TEXINFO_MAINT.  We handle it in the top-level
+ 		Makefile.am by defining distcleancheck_listfiles.
+ 
+ 	* acinclude.m4: can't have $Id, then it gets propagated to
+ 		aclocal.m4.
+ 
+     From: Philippe Martin <feloy@free.fr>, 11 Aug 2002 20:17:44 +0200.
+ 	* makeinfo/cmds.c: new commands @ifnotxml, @ifxml, @xml.
+ 	* insertion.c: likewise.
+ 	(cm_ifxml, cm_ifnotxml): new functions.
+ 	* insertion.h: likewise.
+ 	* makeinfo.c: new options --ifxml, --no-ifxml.
+ 	(cm_image): better xml output.
+         * makeinfo.h (process_xml): new global.
+         * xml.c: call xml_close_sections.
+ 
+ 2002-09-28    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): only do <pre>, not
+ 	<br><pre>; suggestion from Werner.
+ 
+ 	* info/infodoc.c: document the bug regarding where_is_rep_index,
+ 	but don't fix it since it's in the [!INFOKEY] code.
+ 
+    2002-05-18  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	These changes make @example be indented in HTML output, and make
+ 	@exdent work inside an @example in HTML.
+ 
+ 	* makeinfo/insertion.c (begin_insertion) <example>: Insert spaces
+ 	after <pre> to produce indentation of the first line in HTML mode.
+ 
+ 	* makeinfo/makeinfo.c (indent): Do indent even in HTML mode.
+ 
+     These patches from: Thierry Vignaud <tvignaud@mandrakesoft.com>,
+ 	24 Apr 2002 20:52:37 +0200.
+ 
+ 	* makeinfo/insertion.c: doc fix.
+ 
+ 	* info/infomap.c: had h and l functions reversed in vi mode.
+ 
+ 	* util/install-info.c: bzip2 support.
+ 
+ 	* util/texi2dvi: don't allow whitespace as one of the ?'s around
+ 	the o in foo.?o?, that could lead to misparsing.
+ 
+ 2002-09-27    <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (*.1): call the binary, not the source file.
+ 
+ 	* util/texindex.c (sort_in_core): int not off_t.
+ 	(main): cast argument to sort_in_core to int.
+ 	(sort_offline): nfiles parameter is not actually passed (or used);
+ 	need to pass &tempfiles[i] to sort_in_core.
+ 	From: Christopher League <league@contrapunctus.net>,
+ 	26 Apr 2002 22:45:45 -0400.
+ 
+ 	* doc/texinfo.tex (\unnumb...entry): make analogous to \...entry
+ 	(except when actually outputting the text, of course), so pdf
+ 	bookmarks can go to the right level.
+ 	From: Christopher League <league@contrapunctus.net>,
+ 	25 Apr 2002 15:29:24 -0400.
+ 
+ 	* install-sh: update from gnulib.
+ 
+ 	* makeinfo/insertion.c (handle_verbatim_environment): need to
+ 	quote & and <.
+ 	From: Philippe Martin <feloy@free.fr>, 18 Aug 2002 15:39:10 +0200.
+ 
+         2002-06-04  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/cmds.c (cm_exdent): Call start_paragraph to restore
+ 	previous indentation of text.  (exponent.tex test.)
+ 
+         2002-05-11  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/node.c (remember_node): If the argument FNAME is NULL,
+ 	as it happens for "Top", use the basename of current_output_filename.
+ 
+ 2002-09-26    <karl@gnu.org>
+ 
+ 	* lib/system.h [MIKTEX]: include gnu-miktex.h, define S_ISDIR.
+ 	[! MIKTEX]: declare substring.
+ 	From: Stephen Gildea <gildea@stop.mail-abuse.org>,
+ 	08 May 2002 18:12:58 -0400.
+ 
+ 	* doc/texinfo.tex: spurious \let when setting \mainmagstep.
+ 	From: Stephen Gildea <gildea@stop.mail-abuse.org>,
+ 	08 May 2002 08:38:39 -0400.
+ 
+ 	* doc/texinfo.txi: copyright symbol: use @code{@copyright@{@}},
+ 	with the braces in the @code.
+ 	From: Paul Eggert <eggert@twinsun.com>, 1 Apr 2002 11:37:52 -0800.
+ 
+ 	* info/infodoc.c (replace_in_documentation): always allocate at
+ 	least one byte for replen, otherwise things crash when MALLOC_CHECK_=2.
+ 	From: "Andreas Herrmann" <AHERRMAN@de.ibm.com>.
+ 
+ 	* lib/Makefile.am (libtxi_a_SOURCES): include xalloc.h.
+ 
+ 	* doc/Makefile.am (EXTRA_DIST): skip macro.texi and userdoc.texi now.
+ 	(common_mandeps): new var.
+ 	(*.1): use that, and depend on the source files with the version strings
+ 	instead of the binaries.  Suggestion from Alexandre.
+ 
+ 	* util/Makefile.am (bin_PROGRAMS, ginstall_info_SOURCES,
+ 	transform): build as ginstall-info, to avoid clashing with the
+ 	install-info target inserted by Automake.  (Suggestion from Akim.)
+ 
+ 	* Makefile.am (distcleancheck_listfiles): new definition so
+ 	distcheck doesn't complain about our generated files in info/,
+ 	which are conditionalized on TEXINFO_MAINT.
+ 
+ 	* lib/gettext.h: update from gettext 0.11.5.
+ 
+ 2002-09-24    <karl@gnu.org>
+ 
+ 	* util/srclist.txt: m4 files from aclocal rather than gnulib.
+ 
+         * Makefile.am, util/Makefile.am, dir-example: move dir-example to util.
+ 
+ 2002-09-23    <karl@gnu.org>
+ 
+ 	* INSTALL.generic: update from autoconf 2.54.
+ 
+ 2002-09-20  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.11.5.
+ 
+ 2002-09-12    <karl@gnu.org>
+ 
+ 	* util/srclist.txt: INSTALL to INSTALL.generic.
+ 
+ 2002-08-04    <karl@gnu.org>
+ 
+ 	* doc/texinfo.5:
+ 	* lib/system.h:
+ 	* doc/texinfo.tex:
+ 	* doc/info-fr.texi:
+ 	* configure.ac: non-copyright notice.
+ 	* doc/info-fr.texi:
+ 	* doc/info-stnd.texi:
+ 	* doc/texinfo.txi: copyright years should be written out in full.
+ 
+ 2002-07-23    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: verbatim license sample per rms and chassell.
+ 
+ 2002-07-19    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi:
+ 
+ 2002-06-05    <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (TXI_XLATE): txi-it.tex from Paolo Bonzini
+ 		<bonzini@gnu.org>.
+ 
+ 2002-06-04    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\defparsebodycommon): do \penalty0 if the last
+ 	item was a \nobreak, since that means we have two function headers
+ 	in a row.  Report from: Brian Gough <bjg@network-theory.co.uk>.
+ 
+ 	(\defparsebody,...): use \defparsebodycommon instead of repeating code.
+ 
+ 2002-05-09    <karl@gnu.org>
+ 
+ 	* doc/texinfo.5: lowercase NAME to `texinfo' for Solaris man.
+ 	From gildea.
+ 
+ 2002-04-29    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: mention it.
+ 	* util/texi2dvi: allow -E as well as -e.
+ 
+ 2002-04-10    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi:
+ 
+ 2002-04-01    <karl@gnu.org>
+ 
+ 	* configure.ac: version 4.2.
+ 	* util/texi2dvi: 4.2
+ 
+ 	* makeinfo/toc.c: doc fix.
+ 	* util/install-info-html:
+ 	* makeinfo/texinfo.xsl: Fixes From: Ville Skyttä
+ 		<ville.skytta@iki.fi>.
+ 
+ 	* makeinfo/insertion.c (begin_insertion): (copying case) omit
+ 		cm_insert_copying if no_headers.
+ 	Bug report from Stephen Gildea.
+ 
+ 2002-03-28    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest 4.1d.
+ 
+ 	* doc/texinfo.txi:
+ 	* makeinfo/cmds.c: ignore headings commands.  From Stephen Gildea.
+ 
+ 	* doc/texinfo.txi: @ifplaintext
+ 
+ 2002-03-26    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\ifplaintext,\ifnotplaintext): new output
+ 		format conditional.
+ 
+ 	* makeinfo/cmds.c (cm_settitle):
+ 	* makeinfo/node.c (cm_node): need to pass output filename arg to
+ 		* xml_begin_document.
+ 
+ 	* makeinfo/cmds.c (cm_sp): need close_single_paragraph instead of
+ 	close_paragraph to avoid an extra blank line.  Bug report from Stephen Gildea.
+ 
+ 	* doc/texinfo.tex (\doignore): can't do c kludge for
+ 		documentdescription.  Bug report from Stephen Gildea.
+ 
+ 	* doc/texinfo.txi: missing t in documentdescription example, from
+ 	Stephen Gildea.
+ 
+ 2002-03-24    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: invar sec
+ 
+ 2002-03-23    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest 4.1c.
+ 
+ 2002-03-23  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/search.c (skip_non_whitespace): Don't go beyond the
+ 	terminating null character.
+ 
+ 	* info/filesys.c (filesys_read_info_file)
+ 	(filesys_read_compressed): Null-terminate the contents of the file
+ 	we've read, so it could be used as a C string.
+ 
+ 2002-03-23  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (insert_toplevel_subdirectory): Fix
+ 	computation of output_filename's length, to avoid overrunning
+ 	malloc'ed buffer.  If mkdir returns with EEXIST, assume we can use
+ 	an existing directory only if the existing file is indeed a
+ 	directory.  On MS-DOS, allow for EACCES in addition to EEXIST.
+ 	<max_name_len>: Remove this variable.
+ 
+ 	* makeinfo/makeinfo.c (expansion): Protect execute_string from too
+ 	long strings.
+ 	(EXECUTE_STRING_MAX): New macro.
+ 	(execute_string): Use EXECUTE_STRING_MAX, not 4000.
+ 
+ 2002-03-23    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi:
+ 	* makeinfo/insertion.h:
+ 	* makeinfo/texinfo.dtd:
+ 	* makeinfo/xml.h:
+ 	* makeinfo/xml.c:
+ 	* makeinfo/makeinfo.h:
+ 	* makeinfo/insertion.c:
+ 	* makeinfo/html.c:
+ 	* makeinfo/cmds.c:
+ 	* doc/info-stnd.texi: @permissions -> @copying.
+ 	* doc/texinfo.tex: permissions -> copying.
+ 
+ 2002-03-22    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest 4.1b.
+ 
+ 	* info/Makefile.am (BUILT_SOURCES): conditionalize on
+ 		TEXINFO_MAINT, to appease distcheck.
+ 
+ 	* From: Matthew Woodcraft <mattheww@chiark.greenend.org.uk>:
+ 	* makeinfo/makeinfo.h (next_menu_item_number): New global.
+ 	* makeinfo/insertion.c (begin_insertion): Initialise it.
+ 	* makeinfo/makeinfo.c (handle_menu_entry): Emit accesskey attribute
+ 	in html output, according to next_menu_item_number.
+ 	* makeinfo/node.c (cm_node): Emit accesskey attributes in html output.
+ 
+ 	* doc/texinfo.txi: GNU texts.
+ 
+ 	* doc/info-stnd.texi: @syncodeindex, not @synindex.
+ 
+ 2002-03-21    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: @permissions.
+ 
+ 2002-03-20    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: document --no-headers a bit better.
+ 	* makeinfo/makeinfo.c: better description of --no-headers,
+ 		suggested by Stephen Gildea.
+ 
+ 	* makeinfo/makeinfo.c (insert_toplevel_subdirectory): use
+ 		command-line specified output name unchanged.
+ 
+ 	* makeinfo/makeinfo.c (full_expansion): new routine, separated
+ 	from expansion, that does not tamper with the formatting parameters.
+ 	* makeinfo/insertion.c: copying -> permissions.
+ 	(cm_insert_permissions): insert rather than add.
+ 	* makeinfo/texinfo.dtd:
+ 	* makeinfo/xml.h:
+ 	* makeinfo/xml.c:
+ 	* makeinfo/cmds.c: copying -> permissions.
+ 	* makeinfo/makeinfo.h: copying -> permissions.
+ 	(full_expansion): declare.
+ 
+ 	* doc/texinfo.txi: @copying -> @permissions, @include fdl.texi.
+ 	* doc/info-stnd.texi: @copying -> @permissions, always include the FDL.
+ 
+ 	* makeinfo/html.c (html_output_head): copying -> permissions, use
+ 	insert_string.
+ 	* makeinfo/insertion.h: copying -> permissions.
+ 	* doc/texinfo.tex: \copying -> \permissions.
+ 
+ 	* doc/Makefile.am (EXTRA_DIST): include fdl.texi.
+ 
+ 2002-03-19    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (cm_insert_copying): use insert_string in
+ 		the xml case, sigh.
+ 
+ 	* doc/info-stnd.texi: copying
+ 
+ 	* dir-example: info standalone.
+ 
+ 	* makeinfo/html.c: copyright_text -> copying_text.
+ 	* makeinfo/texinfo.dtd:
+ 	* makeinfo/insertion.c:
+ 	* makeinfo/insertion.h:
+ 	* makeinfo/makeinfo.h:
+ 	* makeinfo/xml.c:
+ 	* makeinfo/xml.h:
+ 	* makeinfo/cmds.c: copyrighttext -> copying.
+ 	* doc/info-stnd.texi: copyrighttext -> copying.
+ 	* doc/texinfo.tex (\copying, \insertcopying): rename from
+ 		copyrighttext per rms.
+ 
+ 	* makeinfo/index.c (index_add_arg): don't emit warning for index
+ 	entries containing : after all.
+ 
+ 	* info/infokey.c: remove non-ansi trailing commas from last items
+ 	of enums.  From: Albert Chin-A-Young <china@thewrittenword.com>.
+ 
+ 2002-03-18    <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: @include after @setfilename.
+ 	* doc/texinfo.txi: @insertcopyrighttext, @settitle GNU ...
+ 
+ 	* doc/texinfo.txi: mention @setfilename and source filename
+ 		exceptions at the top.
+ 
+ 	* makeinfo/defun.c (scan_group_in_string): handle escaped @{ and @}.
+ 	Bug report from Werner Lemberg.
+ 
+ 	* doc/info-stnd.texi: add version number to title a la Texinfo.
+ 	* doc/info-stnd.texi: file -> manual.
+ 	* doc/info-stnd.texi: use @copyrighttext.
+ 
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion):
+ 			copyrighttext case.
+ 	* makeinfo/makeinfo.h (copyright_text): declare/define.
+ 	* makeinfo/html.c (html_output_head): output copyrighttext.
+ 	* makeinfo/texinfo.dtd: Add copyrighttext.
+ 	* makeinfo/xml.h (xml_element): add COPYRIGHTTEXT.
+ 	* makeinfo/xml.c (texinfoml_element_list, docbook_element_list):
+ 			copyrighttext case.
+ 
+ 2002-03-17    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.h (insertion_type): include copyrighttext.
+ 	* makeinfo/cmds.c (command_table): new command copyrighttext.
+ 
+ 	* doc/texinfo.tex (\copyrighttext, \insertcopyrighttext): new
+ 	 Texinfo commands to handle the copyright and permission text cleanly.
+ 	(\dblarrowbox,\longdblarrowbox,\pushcharbox,\equivbox,\bullbox):
+ 		remove these definitions that have not been used for ages.
+ 
+ 	* configure.ac: call AC_CANONICAL_BUILD before the termcap
+ 	checking.  Bug report from Eli.
+ 
+ 2002-03-16  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/node.c (cm_anchor): When recording the anchor position,
+ 	account for output_paragraph_offset, since the current paragraph
+ 	might not be closed yet (happens inside a menu, for example).
+ 
+ 	* djgpp/config.sed: Tweak to adapt to the new Automake/Autoconf.
+ 
+ 	* djgpp/README: Update.
+ 
+ 2002-03-15    <karl@gnu.org>
+ 
+ 	* dir-example: GNU organization.
+ 
+ 2002-03-14    <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_titlepage): do not declare nonexistent
+ 	function.
+ 
+ 2002-03-14    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: don't say specifically html 3.2, since <html
+ 			lang=...> is not 3.2.
+ 	Bug reprt from: Matthew Woodcraft <mattheww@chiark.greenend.org.uk>.
+ 
+ 2002-03-13    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\writetocentry): set \pdfmakepagedesttrue here.
+ 	(\Etitlepage): instead of here.  In case the document has no
+ 		@titlepage.  Bug report from Stephen Gildea.
+ 
+ 	* util/texi2dvi: be verbose after the definition of cmd, not
+ 	before.  From Andreas Schwab.
+ 
+ 2002-03-12    <karl@gnu.org>
+ 
+ 	* pretest 4.1a.
+ 	* doc/info-stnd.texi: update to FDL.
+ 
+ 2002-03-11    <karl@gnu.org>
+ 
+ 	* util/texi2dvi:
+ 	* util/texindex.c:
+ 	* util/install-info.c:
+ 	* makeinfo/makeinfo.c:
+ 	* info/infokey.c:
+ 	* info/info.c: home page and help message.
+ 
+ 	* doc/texinfo.txi (math): document @\ (aka \\) for literal \.
+ 	regularize index entries.
+ 	* makeinfo/cmds.c (command_table): \\ -> insert_self.
+ 
+ 	* doc/texinfo.tex (\mathbackslash): new definition.
+ 	(\math): handle \\ too.
+ 	(\codeunder): handle @code{\} in mmode.
+ 
+ 	* makeinfo/html.c: make home page be gnu's.
+ 
+ 	* doc/texinfo.txi (Conventions): rewrite description of quotes so
+ 	as to work in all formats; there was no output for HTML.
+ 	Report from: David Merrill <david@lupercalia.net>.
+ 
+ 2002-03-10    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Texinfo Copying Conditions): mention this
+ 	manual's license specifically.
+ 
+ 2002-03-09  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/indices.c (add_index_to_index_nodenames): Fix an off-by-one
+ 	error when computing the number of the last index entry.
+ 
+ 2002-03-08    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: Rewrite unnumbered toc handling to keep track
+ 	of their sequence, so they can be handled correctly in
+ 	the PDF toc (= bookmarks).
+ 	From: Werner LEMBERG <wl@gnu.org>.
+ 
+ 	* configure.ac: AC_MSG_WARN if can't find a term library.  From:
+ 	Marc.Herbert@ens-lyon.fr.
+ 
+ 	* info/info.c: alphabetize.
+ 	* info/info.c: include short option names.
+ 
+ 2002-03-08  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/display.c (display_update_one_window): Dynamically reallocate
+ 	printed_line[] as needed.  When under -R, ignore ANSI escapes for
+ 	the purposes of line wrap display.  Clear the line to EOL if it
+ 	used escape sequences.  Reallocate entry->text if the new
+ 	printed_line is longer than screenwidth.
+ 
+ 	* info/window.c (string_width): Don't count ANSI escape sequences
+ 	in string width, when under -R..
+ 	(calculate_line_starts): Don't count ANSI escape sequences in line
+ 	width, when under -R.
+ 	(window_get_cursor_column, window_chars_to_goal): When under -R,
+ 	ANSI escapes don't affect the horizontal position.
+ 
+ 	* info/info-utils.c (printed_representation): If -R is in effect,
+ 	treat ESC as a normal character.
+ 
+ 2002-03-08    <karl@gnu.org>
+ 
+ 	* util/Makefile.am:
+ 	* info/Makefile.am:
+ 	* makeinfo/Makefile.am:
+ 	* lib/Makefile.am: doc fix.
+ 
+ 	* doc/Makefile.am (install-tex): prefix the install directories
+ 	with $(DESTDIR), because that is what automake does for all
+ 	generated install rules.  The file pdfcolor.tex should be
+ 	installed as such (and not as epsf.tex).
+ 	From: Peter Breitenlohner <peb@mppmu.mpg.de>.
+ 
+ 	* configure.ac (AC_INIT): now pass [GNU Texinfo].
+ 	(AM_INIT_AUTOMAKE): now no args, for automake 1.6.
+ 
+ 2002-03-05    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: history
+ 
+ 2002-03-04    <karl@gnu.org>
+ 
+ 	* configure.ac: version 4.1.
+ 	* util/texi2dvi: version.
+ 
+ 	* doc/texinfo.txi: @settitle is used in html output (from Eli),
+ 		various underfull hbox fixes.
+ 
+ 2002-03-02    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest 4.0k
+ 
+ 	* info/info.c: declare add_file_to_directory to avoid warning.
+ 
+ 	* doc/info-stnd.texi: info standalone so as not to collide with
+ 		`standards' in dir.
+ 
+ 2002-03-01  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/insertion.c (end_insertion): Insert the /td and /tr
+ 	directives in lower case.  From Per Bothner <per@bothner.com>.
+ 
+ 	* makeinfo/macro.c (cm_alias): Ignore whitespace around the alias
+ 	name, like the manual promises.
+ 
+ 	* doc/texinfo.txi (Invoking Macros, Macro Details): Document that
+ 	commas in macro arguments don't work in TeX.  Advise texi2dvi -e
+ 	when macros don't work with TeX.
+ 
+ 	* doc/texinfo.txi (Node Line Requirements): Add restrictions about
+ 	parens and some punctuation characters in node names.
+ 	(Def Cmd Template): Document that macros are not expanded.
+ 
+ 	The following two changes allow to say "info foo" if there's an
+ 	Info file `foo' somewhere along INFOPATH.
+ 
+ 	* info/info.c (add_file_directory_to_path): New function, code
+ 	moved from `main'.
+ 	(main): Use add_file_directory_to_path.
+ 
+ 	* info/session.c (info_follow_menus): If the first menu entry
+ 	couldn't be found as an item in DIR's menu, try it as a file name.
+ 
+ 	2001-06-19  Mark Montague  <markmont@umich.edu>
+ 
+ 	* info/filesys.c: Fix for sparc64 (offsets should be "long"s).
+ 
+ 	* info/session.c: Fix typos in function calls.
+ 
+ 	2001-08-23  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/footnote.c (cm_footnote): Don't allow footnotes inside
+ 	footnotes.
+ 	(output_pending_notes): Increment already_outputting_pending_notes
+ 	in the HTML case as well, to protect execute_string from
+ 	recursively entering output_pending_notes.
+ 
+ 2002-03-01    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex: fix mismatched $'s for sake of emacs font-lock.
+ 	From: Stephen Gildea <gildea@stop.mail-abuse.org>.
+ 
+ 2002-02-27    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest 4.0j.
+ 
+ 	* info/infodoc.c: 1scroll-forward typo.
+ 
+ 2002-02-26    <karl@gnu.org>
+ 
+ 	* lib/system.h [! ENABLE_NLS]: let's not go const.
+ 
+ 2002-02-26  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* djgpp/config.sed: Add tweaking of file names in "install-info"
+ 	and "uninstall-info" targets.
+ 
+ 	* doc/inf-stnd.texi (Custom Key Bindings, Invoking infokey):
+           Add footnotes about DOS file names.
+ 
+ 	* info/infokey.c (main) [__MSDOS__]: If HOME is not defined,
+ 	default to the current directory.
+ 
+ 2002-02-26    <karl@gnu.org>
+ 
+ 	* lib/system.h (LC_MESSAGES) [! LC_MESSAGES]: need this after all.
+ 
+ 2002-02-25    <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: contents at top, avoid overfull hbox.
+ 	* lib/Makefile.am (libtxi_a_sources): include gettext.h.
+ 
+ 	* lib/system.h (LC_MESSAGES): don't need conditional, Bruno says
+ 		that locale.h or libintl.h does so.
+ 
+ 	* configure.ac: pretest 4.0i.
+ 
+ 	* dir-example: infokey.
+ 	* doc/info-stnd.texi: invoking infokey.
+ 	* info/infokey.c (short_help): reorganize slightly.
+ 
+ 	* lib/system.h: use "gettext.h" instead of <libintl.h> per gettext
+ 	0.11 recommendation.
+ 
+ 2002-02-25  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* Makefile.am (SUBDIRS): Add intl.
+ 	* configure.ac (AC_CONFIG_FILES): Add intl/Makefile.
+ 
+ 2002-02-25    <karl@gnu.org>
+ 
+ 	* util/Makefile.am (LDADD):
+ 	* makeinfo/Makefile.am (LDADD):
+ 	* info/Makefile.am (LDADD): @LIBINTL@ per gettextize.
+ 
+ 	* configure.ac: gettextize changes.
+ 	* Makefile.am: gettextize changes.
+ 
+ 2002-02-25  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* Makefile.am (SUBDIRS): Add m4.
+ 	(SUBDIRS): Remove intl.
+ 	(ACLOCAL_AMFLAGS): New variable.
+ 	(EXTRA_DIST): Add config.rpath.
+ 	* configure.ac (AC_CONFIG_FILES): Add m4/Makefile.
+ 	(AC_CONFIG_FILES): Remove intl/Makefile.
+ 
+ 2002-02-23    <karl@gnu.org>
+ 
+ 	* pretest 4.0h.
+ 
+ 	* 2002-02-23  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* doc/info-stnd.texi (Invoking Info): Add a reference to the
+ 	description of index-apropos and index-search.  Document the
+ 	--raw-escapes option.
+ 	(Searching Commands): Describe index-search and index-apropos.
+ 
+ 	* info/man.c (clean_manpage): If raw_escapes_p is not set, remove
+ 	ANSI escape sequences from the man page.
+ 
+ 	* info/info.h: Declare raw_escapes_p.
+ 
+ 	* info/info.c: <raw_escapes_p>: New variable.
+ 	New option --raw-escapes or -R.
+ 	(main): Handle it.
+ 	(info_short_help): Document it.
+ 	(main): Honor --output together with --usage, by dumping the node
+ 	we found to the named file.
+ 
+ 	2002-02-23  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/html.c (nodename_to_filename): Call
+ 	nodename_to_filename_1 with the last argument 1, not 0.
+ 
+ 	* makeinfo/toc.c (shortcontents_update_html)
+ 	(contents_update_html): Don't omit the entry for the Top node.
+ 
+ 	* 2002-01-30  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/node.c (cm_node): Don't condition splitting on
+ 	top_node_seen being non-zero.  If current_node is NULL, use the
+ 	current output file name to get at the file name for the previous
+ 	node.  Don't compute a new file name for a node if we didn't close
+ 	the current file.
+ 
+ 	2002-02-01  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/node.c (cm_node): Call html_output_head whenever we
+ 	create a new split-HTML file.
+ 
+ 	* makeinfo/html.c (html_output_head): Make html_title static.
+ 	Compute it only once, and don't free it.  Output the <h1> title
+ 	header only once per run.
+ 
+ 	2002-02-02  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/toc.c (contents_update_html): Fix the condition for
+ 	omitting duplicate TOC entries.  Fix comparison with the TOC entry
+ 	for "Top".
+ 
+ 2002-02-14    <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (DISTCLEANFILES): use this variable instead of
+ 	the distclean-aminfo target, which apparently is no longer used.
+ 
+ 	* pretest 4.0g.
+ 
+ 	* doc/texinfo.tex (\appendixentry): new macro for typesetting
+ 	appendix toc entries.
+ 	(\appendixzzz, \summarycontents, \pdfoutlines): use it, instead of
+ 	usurping \chapentry.  This allows the bookmarks in the pdf output
+ 	to come out right.  Report from: Kurt Hornik
+ 	<Kurt.Hornik@ci.tuwien.ac.at>.
+ 
+ 2002-02-13    <karl@gnu.org>
+ 
+ 	* configure.ac: ALL_LINGUAS is deprecated as of gettext 0.11.
+ 	* doc/texinfo.tex (\image): remove spurious \loggingall.
+ 
+ 	* doc/texinfo.txi: @math now implies @tex.
+ 	* doc/texinfo.tex (\math): imply @tex.
+ 
+ 2002-02-11    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (handle_verbatim_environment): save and
+ 	restore filling_enabled and inhibit_paragraph_indentation.  Bug
+ 	report from: Alexandre Duret-Lutz <duret_g@lrde.epita.fr>.
+ 
+ 	* makeinfo/makeinfo.c (reader_loop): don't worry about bare braces
+ 	inside @math.
+ 
+ 2002-02-08    <karl@gnu.org>
+ 
+ 	* info/infodoc.c: keep underlines with the text they refer to, for
+ 		translation purposes.
+ 	Pointed out by Christian Rose <menthos@menthos.com>, 20 nov 2001.
+ 
+ 	* doc/info.texi: recommend setting INFOPATH.
+ 
+ 	* doc/Makefile.am (install-tex): need $(srcdir) for install.
+ 	From: istry <istry@mail.ru>.
+ 
+ 	* doc/texinfo.tex: replace $$$ delimiter with $.$, for sake of
+ 	font-lock in Emacs 21.1.  Suggestion from: Stephen Gildea
+ 	<gildea@stop.mail-abuse.org>.
+ 
+ 	2002-01-26  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* info/infomap.c (default_emacs_like_info_keys)
+ 	(default_emacs_like_ea_keys, default_vi_like_info_keys)
+ 	(default_vi_like_ea_keys): Fix default keybindings to be
+ 	consistent with non-INFOKEY branch.  Add bindings for Home, End,
+ 	and Delete keys.
+ 
+ 	2002-01-23  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/toc.h <TOC_ENTRY_ELT>: New member html_file.
+ 
+ 	* makeinfo/toc.c (toc_add_entry): Compute and set the html_file
+ 	member.
+ 	(shortcontents_update_html): Produce the toc_* links correctly,
+ 	without duplicating the link text.  Fix comparison with "Top".
+ 	Handle the case when there's @shortcontents, but no @contents.
+ 	(contents_update_html): Fix the way toc_* anchors are produced
+ 	from toc_entry_alist[i]->name: take only the node name from the
+ 	string in toc_entry_alist[i]->name.  Fix comparison with "Top".
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): Take the toc_anchor
+ 	substring before closing the anchor with </a>.  Fix the closing
+ 	</hN> tag--add 2 to level, not 1.  Use sizeof instead of a magic
+ 	value of 9.
+ 
+ 	* makeinfo/cmds.c: Make @summarycontents call cm_shortcontents, as
+ 	promised by the docs.
+ 
+ 	2002-01-19  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* djgpp/config.sed: Fix a problem with AC_CONFIG_LINKS that
+ 	prevented building from a directory on another drive.
+ 
+ 	* djgpp/config.bat: Fix problems with long --srcdir diectory names.
+ 
+ 	* djgpp/README: Update.
+ 
+ 2002-01-31    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: mention dvips
+ 
+ 2002-01-28    <karl@gnu.org>
+ 
+ 	* configure.ac (ALL_LINGUAS): add hr.
+ 
+ 2002-01-22    <karl@gnu.org>
+ 
+ 	* makeinfo/defun.c (defun.c): only warn about ( immediately
+         following a defun name, since the groff manual needs other
+         characters there where whitespace is incorrect.
+ 	Reported by Werner Lemberg <wl@gnu.org>.
+ 
+ 	* doc/info-stnd.texi: alphabetize variable list.
+ 
+ 	* doc/texinfo.txi: no :'s in index entries, index @page/@group
+ 	some more.
+ 
+ 	* makeinfo/index.c (index_add_arg): warn if index entry contains a
+ 	colon.  From: Kenneth Lorber <keni@his.com>.
+ 
+ 2002-01-21    <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c: </pre not /<pre, reported by Mike
+ 	Benefield <mike@duckbrain.com>.
+ 
+ 2002-01-18    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest 4.0f.
+ 
+ 	* util/texindex.c:
+ 	* util/install-info.c:
+ 	* makeinfo/makeinfo.c:
+ 	* info/info.c: it's 2002.
+ 
+ 	* info/session.c: pass right args to info_scroll_half_screen_up.
+ 	From Eli.
+ 
+ 2002-01-18  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/multi.c (multitable_item): Always return a value.
+ 
+ 	* util/install-info.c (xmalloc, xrealloc, pfatal_with_name)
+ 	(open_possibly_compressed_file, parse_input): Call `fatal' with 3
+ 	arguments, to avoid compiler warnings.
+ 	(main): Call `fatal', `error', and `warning' with the right number
+ 	of arguments.
+ 
+ 	* makeinfo/makeinfo.c (main): Remove extraneous first arg of
+ 	usage().
+ 
+ 	* info/window.c (build_message_node): Supply a 4th argument to
+ 	build_message_buffer.
+ 
+ 
+ 2002-01-18  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): End the anchor properly
+ 	with a </a>.
+ 
+ 	* info/session.c (info_menu_or_ref_item): If we didn't find a
+ 	cross-reference on this line, try the one before.
+ 
+ 	* info/infomap.c (fetch_user_maps): Provide two different
+ 	translations for ``file too small'' and ``file too big'' error.
+ 
+ 	* info/info.c (info_short_help): Print the --speech-friendly
+ 	option together with the other options, not at the end of the help
+ 	screen.
+ 
+ 2002-01-18  Andreas Schwab  <schwab@suse.de>
+ 
+ 	* makeinfo/html.c (escape_string): When string is empty don't read
+ 	past end of it.
+ 
+ 2002-01-17    <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: overfull box in table.
+ 
+ 2002-01-16    <karl@gnu.org>
+ 
+ 	* configure.ac: pretest 4.0e.
+ 
+ 	* doc/info.texi: update from emacs.
+ 
+ 2002-01-03  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (file_line_error): New function.
+ 
+ 	* makeinfo/insertion.c (discard_insertions): Call file_line_error
+ 	instead of changing global variables.
+ 
+ 	* makeinfo/sectioning.c (cm_top): Ditto.
+ 
+ 	* makeinfo/node.c (validate_file): Ditto.
+ 
+ 	* makeinfo/makeinfo.c (discard_braces, handle_variable_internal):
+ 	Ditto.
+ 
+ 	* makeinfo/macro.c (define_macro): Ditto.
+ 
+ 	2001-12-31  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/node.h (TAG_ENTRY): New struct member html_fname.
+ 
+ 	* makeinfo/node.c (find_node_by_fname): New function.
+ 	(remember_node): Accept an additional argument FNAME, the node's
+ 	file name, and record it in the list of nodes; callers changed.
+ 	(cm_node): Call find_node_by_fname to see if this node's file name
+ 	clashes with another node or anchor.  If it clashes with another
+ 	node, append the new node to the same file instead of erasing the
+ 	other node.  If it clashes with an anchor, print an error message
+ 	and overwrite the anchor's file.
+ 	(cm_anchor): If this anchor's file name clashes with another
+ 	anchor or node, print an error message and ignore the anchor.
+ 
+ 	* makeinfo/files.c (normalize_filename): New function.
+ 
+ 	* makeinfo/files.h <normalize_filename>: Add declaration.
+ 
+ 	* makeinfo/html.c (nodename_to_filename_1): Call
+ 	normalize_filename before returning the file name to the caller.
+ 	Disable the code which adds #Nodified-filename to the file name we
+ 	produce.
+ 
+ 	* makeinfo/makeinfo.c (add_char): Don't replace whitespace with
+ 	&nbsp; if we are producing an HTML directive.
+ 	(add_html_elt): New function.
+ 	(cm_xref, cm_inforef, cm_uref, cm_email, cm_image): Use
+ 	add_html_elt instead of add_word, where appropriate.
+ 
+ 	* makeinfo/html.c (add_link): Ditto.
+ 
+ 	* makeinfo/footnote.c (cm_footnote): Ditto.
+ 
+ 	* makeinfo/defun.c (defun_internal): Ditto.
+ 
+ 	2001-12-27  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/node.c (cm_node): Don't omit links to (DIR) from the
+ 	navigation bar, add_anchor_name will DTRT now.
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): Produce a split-HTML file name
+ 	from arg1, the node name, not from arg3 or arg2, which are the
+ 	reference name.  Use arg2 or arg3 for the text to be displayed as
+ 	a link between ">" and "</a>".  Use add_anchor_name instead of
+ 	add_nodename_to_filename.
+ 	(cm_inforef): Use add_anchor_name instead of
+ 	add_nodename_to_filename.  Handle the case of a missing second
+ 	argument in @inforef.
+ 
+ 	* makeinfo/html.c (add_anchor_name): Always add # and the anchor
+ 	name, even if we are splitting.  If the node is "(dir)", treat it
+ 	as if it were "dir".
+ 	(nodename_to_filename_1): Don't append #Top for the Top node.
+ 	(add_link): Don't punt if nodename is "(dir)".  Output "</a>"
+ 	after the link.
+ 
+ 	2001-12-25  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref, cm_inforef): Output the target
+ 	file name via add_nodename_to_filename.
+ 
+ 	2001-12-20  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/html.c (nodename_to_filename_1): Make references to Top
+ 	to refer to index.html#Top.
+ 	(add_nodename_to_filename): Accept additional argument HREF;
+ 	callers changed.
+ 
+ 	* makeinfo/toc.c (rewrite_top): If the filename to rewrite is
+ 	stdout or the null device, do nothing.
+ 
+ 	* makeinfo/makeinfo.c (insert_toplevel_subdirectory): Use
+ 	FILENAME_CMP instead of strcmp.  Search for a period forward, not
+ 	backward.  Make index_name[] a static const array, and its len
+ 	computed at compile time.
+ 	(convert_from_loaded_file): If output_filename is the null device,
+ 	turn off HTML splitting.
+ 	(cm_xref): Use add_anchor_name, rather than add_escaped_anchor_name,
+ 	in the 5-argument case in HTML mode.
+ 	(cm_inforef): Fix external references in HTML mode.
+ 
+ 	* makeinfo/node.c (cm_node): Use FILENAME_CMP instead of strcmp.
+ 	Don't open a new file if the new node's name is empty.  Take the
+ 	directory part of split-HTML files from current_output_filename,
+ 	not from toplevel_output_filename (the latter doesn't include the
+ 	manual's subdirectory part).
+ 
+ 	* makeinfo/html.c (nodename_to_filename_1): Use FILENAME_CMPN
+ 	instead of strncmp.  Support *.inf files in references.
+ 
+ 2001-12-11  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* djgpp/config.bat, djgpp/config.sed, djgpp/config.site: Update
+ 	for Texinfo 4.0d.
+ 
+ 	* makeinfo/makeinfo.c (insert_toplevel_subdirectory): Use IS_SLASH
+ 	instead of literal `/'.
+ 	(convert_from_loaded_file): Flush the output stream before
+ 	creating the TOC.
+ 
+ 
+ 2002-01-14    <karl@gnu.org>
+ 
+ 	* info/info.c: translate --speech-friendly (from Eli).
+ 	* makeinfo/index.c: formatting.
+ 
+ 	2001-12-24  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* info/infomap.c (initialize_info_keymaps): Bind the user-defined
+ 	keys on top of the default ones, not the other way around.
+ 
+ 2002-01-11    <karl@gnu.org>
+ 
+ 	* info/info.c: can't do #ifdef inside of printf any more.
+ 	From: Tyler <tyler@zerodivide.cx>
+ 
+ 	* configure.ac (ALL_LINGUAS): add he, from Eli.
+ 
+ 2002-01-09  Eli Zaretskii <eliz@is.elta.co.il>
+ 
+ 	* info/window.c (calculate_line_starts): Cast node->contents[i] to
+  	unsigned char.
+ 
+ 2002-01-04    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\footnotezzz): \noindent=\relax.
+ 
+ 2002-01-03    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\imagexxx): handle pdf and dvi cases the same.
+         (\dopdfimage): need \immediate to avoid seg fault when including the
+ 	same image twice.
+ 	Bug reports from Alexandre Duret-Lutz <duret_g@lrde.epita.fr>.
+ 
+ 2001-12-31    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): check *ext_arg as well as
+ 		ext_arg when computing length of fullname.
+ 
+ 	* makeinfo/defun.c: docbook changes.
+ 	* makeinfo/docbook.c (docbook_punctuation): remove deprecated
+ 		default: at end of statement.
+ 
+ 	* makeinfo/docbook.c: initial.
+ 	* makeinfo/docbook.h: initial.
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): add docbook.[ch].
+ 	* makeinfo/makeinfo.c (add_char): use &nbsp; in docbook case.
+ 
+ 	* doc/texinfo.tex (\footnotezzz): use \everypar={\hang} instead of
+ 	just \hang in case a footnote extends for multiple paragraphs.
+ 
+ 2001-12-18    <karl@gnu.org>
+ 
+ 	* info/Makefile.am (BUILT_SOURCES): include $(EXEEXT) on makedoc
+ 	dependency since automake doesn't do it.
+ 
+ 	2001-12-11  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* djgpp/config.bat, djgpp/config.sed, djgpp/config.site: Update
+ 	for Texinfo 4.0d.
+ 
+ 	* info/infomap.c (fetch_user_maps): Initialize `filename' to NULL
+ 	and don't try to call `open' if `filename' is NULL.
+ 	[__MSDOS__]: Try the current directory if neither $INFOKEY nor
+ 	$HOME are defined.
+ 
+ 	* makeinfo/makeinfo.c (insert_toplevel_subdirectory): Use IS_SLASH
+ 	instead of literal `/'.
+ 	(convert_from_loaded_file): Flush the output stream before
+ 	creating the TOC.
+ 
+ 	2001-12-10  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/infokey.c (main): Use FOPEN_WBIN instead of "w".
+ 
+ 	* info/infokey.h (INFOKEY_SRCFILE, INFOKEY_FILE) [__MSDOS__]:
+ 	Special definitions for MS-DOS.
+ 
+ 	2001-12-09  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* lib/system.h: Condition inclusion of libintl.h on ENABLE_NLS.
+ 	(gettext, bindtextdomain, textdomain) [!ENABLE_NLS]: Provide
+ 	trivial definitions for when NLS is not used.
+ 	(LC_MESSAGES) [!ENABLE_NLS]: Define if undefined by locale.h.
+ 
+ 2001-12-18  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/infomap.c (decode_keys): Change the return type to int;
+ 	callers changed.  Return zero if some of the special keys in SRC
+ 	are not defined by the terminal; return non-zero otherwise.
+ 	(section_to_keymaps): If decode_keys returns zero, don't bind the
+ 	key sequence.
+ 
+ 2001-12-18  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/xml.c (xml_insert_element_with_attribute)
+ 	(xml_insert_element): Rename the argument `element' to `elt'.
+ 
+ 	* info/infokey.c (compile): Use \033 instead of (non-standard) \e.
+ 
+ 2001-12-17    <karl@gnu.org>
+ 
+ 	2001-12-16  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/pcterm.c (pc_initialize_terminal) [INFOKEY]: Store term_kh,
+ 	term_ke, term_ki, and term_kx sequences.
+ 	(DJGPP_keytab): Map Home, End, and Insert to escape sequences, not
+ 	to C-a, C-e, etc.
+ 
+ 	* info/infomap.c (default_emacs_like_info_keys)
+ 	(default_emacs_like_ea_keys, default_vi_like_info_keys)
+ 	(default_vi_like_ea_keys): Add the leading suppress-default flag,
+ 	to be consistent with the table which comes from a file.
+ 
+ 	* info/session.c (info_do_lowercase_version): Add a doc string.
+ 
+ 	* info/infodoc.c (describe_key) [INFOKEY]: If keystroke is bound
+ 	to do-lowercase-version, but its lower-case variant is undefined,
+ 	say that keystroke is also undefined.
+ 
+ 
+ 2001-12-12    <karl@gnu.org>
+ 
+ 	* makeinfo/files.c (find_and_load): remove conditionals on
+ 		 VMS|O_BINARY, always just read as many bytes as we can.
+ 
+         2001-12-11  Eli Zaretskii  <eliz@is.elta.co.il>
+         * new files for djgpp/.
+ 
+         2001-09-09  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* info/echo-area.c (build_completions): Look for a candidate
+ 	completion which matches user's request including the letter-case,
+ 	use that as the value of LCD_completion.
+ 
+         2001-12-06  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* info/echo-area.c (build_completions): When looking for the best
+ 	completion candidate, only compare as much characters as the user
+ 	typed.
+ 
+ 
+ 2001-12-04    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\pdfmkpgn): remove trailing @ in link names
+ 		again.  Also from Kurt.
+ 
+ 	* doc/texinfo.tex (\image): need five commas to ignore additional
+ 	optional args to @image.  From Kurt.Hornik@ci.tuwien.ac.at.
+ 
+ 	* doc/texinfo.tex (\afourlatex): reset \globaldefs=0 explicitly.
+ 	From Trond Endrestøl <trond@ramstind.gtf.ol.no>.
+ 
+ 2001-12-01    <karl@gnu.org>
+ 
+ 	* makeinfo/files.c (find_and_load): remove O_BINARY from open
+ 	call, this messes up under Windows.  From eli.
+ 
+ 2001-11-20    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): reword error messages.
+ 
+ 2001-11-19    <karl@gnu.org>
+ 
+ 	* Pretest 4.0d.
+ 	* doc/texinfo.txi: index ragged right/left.
+ 
+ 	* info/window.c (build_message_buffer): handle %1$s as used in
+ 	ja.po.  From Fumitoshi UKAI <ukai@debian.or.jp>.
+ 
+ 	* configure.ac (ALL_LINGUAS): add sv.
+ 
+ 2001-11-16    <karl@gnu.org>
+ 
+ 	* Makefile.am (EXTRA_DIST): add COPYING.DOC.
+ 
+         1999-10-30  Andrew Bettison  <andrewb@zip.com.au>
+ 
+ 	All these changes are to implement user-configurable key mapping
+ 	using the new 'infokey' program.  For the time being, the new
+ 	code is conditional on [INFOKEY] and the old code is still there
+ 	in case we want to revert.
+ 
+ 	* info/session.c (incremental_search): test for printable chars
+ 	_before_ isearch command keys -- makes a difference if the
+ 	isearch commands are bound to printable chars.
+ 
+ 	* info/doc.h,
+ 	* info/infodoc.c,
+ 	* info/infomap.c,
+ 	* info/m-x.c,
+ 	* info/session.c: New typedef InfoCommand, plus a bunch of
+ 	supporting macros, to abstract a "command" away from being a
+ 	function pointer.
+ 
+ 	* info/doc.h (pretty_keyseq),
+ 	* info/infodoc.c (pretty_keyseq),
+ 	* info/session.c (pretty_keyseq): Moved definition from
+ 	session.c into infodoc.c, and rewrote to recognise special
+ 	terminal sequences (PgUp, PgDn, etc.).
+ 
+ 	* info/infodoc.c (create_internal_info_help_node,
+ 	replace_in_documentation, info_where_is),
+ 	* info/m-x.c (info_execute_command): Cleaned up references to
+ 	hardwired keystrokes.
+ 
+ 	* info/infodoc.c (replace_in_documentation):
+ 	Extended the \\[foo] syntax to recognise \\%-X.Y[foo], which
+ 	causes the replacement text to be inserted using sprintf("%-X.Ys").
+ 
+ 	* info/session.c (_scroll_forward, _scroll_backward,
+ 	scroll_forward_page_only, scroll_backward_page_only,
+ 	scroll_forward_page_only_set_window,
+ 	scroll_backward_page_only_set_window): New functions, eliminating
+ 	need for SPC and DEL hack.
+ 
+ 	* info/session.c (scroll_forward, scroll_backward,
+ 	scroll_forward_set_window, scroll_backward_set_window): Call
+ 	_scroll_forward and _scroll_backward to do all the work.
+ 
+ 	* info/infomap.c (initialize_info_keymaps)[!INFOKEY]: set 'v'
+ 	and Control('v') key bindings to info_scroll_backward_page_only
+ 	and info_scroll_forward_page_only respectively.
+ 
+ 	* info/Makefile.am (bin_PROGRAMS): Added new executable `infokey'.
+ 	(infokey_SOURCES): Defined.
+ 	(EXTRA_DIST): Added `sample_infokey'.
+ 	(BUILT_SOURCES): Added `key.c'.
+ 
+ 	* info/infokey.h,
+ 	* info/infokey.c: Created, for new program `infokey' which
+ 	creates a $HOME/.info file by compiling a text source file with
+ 	syntax very similar to that used by `lesskey' in less 3.4.0.
+ 
+ 	* info/makedoc.c: Generate new file `key.c' defining an array to
+ 	map command names to codes.
+ 
+ 	* info/key.h: Created, to define contents of new `key.c' now
+ 	created by makedoc.
+ 
+ 	* info/info.h (INFOKEY): Define, to enable all following changes.
+ 	(set_variable_to_value)[INFOKEY]: Declare new function.
+ 
+ 	* info/makedoc.c [INFOKEY]: Write '#define A_' numeric command
+ 	code definitions into `funs.h' to support new key binding system.
+ 
+ 	* info/session.c (info_dispatch_on_key, info_numeric_arg_digit_loop)
+ 	[INFOKEY],
+ 	* info/infomap.c [INFOKEY],
+ 	* info/infodoc.c (function_documentation, function_name,
+ 	describe_key, pretty_keyname, pretty_keyseq_internal,
+ 	where_is_internal)[INFOKEY],
+ 	* info/terminal.h (term_kh, term_ke, term_kx, term_ki)[INFOKEY],
+ 	* info/terminal.c (term_kh, term_ke, term_kx, term_ki,
+ 	terminal_initialize_terminal)[INFOKEY],
+ 	* info/variables.c (set_variable_to_value)[INFOKEY],
+ 	* info/sample_infokey: Added infokey functionality, copied more
+ 	or less wholesale from 'lesskey' in GNU Less 3.4.0.  Added a new
+ 	typedef struct FUNCTION_KEYSEQ, and a new element `keys' to
+ 	typedef struct FUNCTION_DOC, to give the user some control over
+ 	the keystrokes that appear in the documentation node generated
+ 	by get-help-window, and to improve efficiency a little.
+ 
+ 	* info/infodoc.c (info_internal_help_text,
+ 	create_internal_info_help_node)[INFOKEY]: Rewrote all code that
+ 	assumes fixed keystrokes, replacing %10s sequences with \\%10[foo]
+ 	sequences instead.
+ 
+ 	* doc/info-stnd.texi: Documented above changes.
+ 
+ 2001-09-19    <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c: </ not /<, duh :).  From janneke.
+ 
+ 2001-09-12    <karl@gnu.org>
+ 
+ 	* configure.ac (AC_SYS_POSIX_TERMIOS, AC_HEADER_TIOCGWINSZ): use
+ 	 these new autoconf macros instead of the old automake ones.
+ 
+ 	* info/terminal.c: remove unconditional include of sys/ioctl.h.
+ 	* info/termdep.h: <sys/ioctl.h> [GWINSZ_IN_SYS_IOCTL]: include outside of HAVE_TERMIOS_H,
+ 	per autoconf manual.
+ 
+ 	* doc/Makefile.am (install-info-am): remove override of automake's
+ 	 target, instead enable looking in . for info files within automake.
+ 
+ 	* doc/info-stnd.texi: include separate version-stnd.texi
+ 	* configure.ac: autoconf 2.52, and rename to configure.ac.
+ 
+ 2001-09-11    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: recommend against using - and _ in @set names,
+ 		* and rearrange that section.
+ 
+ 	* info/infodoc.c (replace_in_documentation): free fun_name to fix
+ 		memory leak.
+ 	From: "Art Haas" <ahaas@neosoft.com>, Sat, 4 Aug 2001 08:34:31 -0500.
+ 
+ 	* makeinfo/lang.c: encoding support for info output from kama.
+ 	* makeinfo/lang.h: encoding support for info output from kama.
+ 
+ 	* makeinfo/html.c: include document encoding code unless
+ 	no_encoding.
+ 	* makeinfo/insertion.c (cm_direntry): don't call begin_insertion
+ 	if ignoring.
+ 	(cm_documentdescription): moved here, and likewise.
+ 	(begin_insertion): don't need output format conditionals here.
+ 
+ 	* makeinfo/cmds.c (cm_documentdescription): move to insertion.c.
+ 	* makeinfo/makeinfo.h (enable_encoding): new global.
+ 	* makeinfo/makeinfo.c: new option --enable-encoding, rearrange help.
+ 
+ 	Sun Oct 31 18:44:24 UTC 1999 Karl Heinz Marbaise <kama@hippo.fido.de>
+ 
+ 	    - lang.{c,h}:
+ 	      o added translation map between HTML markups and 8-Bit
+ 		(ISO-8859-1 codes; supplemental is Unicode for the future).
+ 	      o added cm_search_iso_map:
+ 		search for characters based on HTML markup names for
+ 		translation 8-Bit code.
+ 	      o recognizing of @documentencoding improved.
+ 		now we can recognize things like ISO-8859-{1...15}
+ 
+ 	    - makeinfo.{c,h}:
+ 	      o added two command line switches.
+ 		+ info-encoding to activate the encoding for info output
+ 		  which is correctly shown by info. Default is NOT to
+ 		  encode the output to be compatible with earlier versions.
+ 		+ no-encoding to suppress encoding e.g. while producing
+ 		  ASCII output (--no-headers) results in that you get
+ 		  "A for &Auml; as before.
+ 	      o help output changed to document the switches.
+ 
+ 	    - html.c:
+ 	      charset encoding in html based on @documentencoding.
+ 
+ 
+ 2001-07-31    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: mention pdfcolor.tex.
+ 	* doc/texinfo.tex: doc.
+ 	* doc/Makefile.am (install-tex): install pdfcolor.tex too.
+ 	* doc/pdfcolor.tex: new file, since Kurt.Hornik@ci.tuwien.ac.at
+ 		reports that not all pdftex installations include it.
+ 
+ 2001-07-25    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\Etitlepage): need \HEADINGSon before the
+ 	\...aftertitlepage checks to get page numbers. Report from
+ 	3diff@gnu.org.
+ 
+ 2001-07-06    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: mention http://docbook2X.sourceforge.net/.
+ 
+ 2001-06-29    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: make output to stdout imply --no-split for
+ 		HTML, too.
+ 
+ 	* makeinfo/html.c (html_output_head): use documentdescription if set.
+ 	* makeinfo/insertion.h (insertion_type): new case documentdescription.
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion,
+ 	insertion_type_names): new case for documentdescription.
+ 	* makeinfo/cmds.c (cm_documentdescription): new fn.
+ 	* makeinfo/makeinfo.h (document_description): new global.
+ 	* doc/texinfo.txi: @documentdescription.
+ 	@documentdescription implementation from patches by Will Estes.
+ 
+ 2001-06-26    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: documentdescription
+ 	* doc/texinfo.tex: Ignore @documentdescription ... @end
+ 	documentdescription.
+ 
+ 	* doc/texinfo.txi: document sequential punctuation in @footnote is
+ 	normal, suggested by rms.
+ 
+ 2001-06-21    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\textfonts): call \setleading here, so that we can
+ 	switch font sizes back and forth inside @tex with \globaldefs=1
+ 	and not lose the leading.
+ 
+ 	* doc/texinfo.txi: allow @smallbook to run without overfull or
+ 		underfull boxes.
+ 
+ 2001-06-19    <karl@gnu.org>
+ 
+ 	* doc/texinfo.tex (\imagexxx): ignore new optional args to @image.
+ 
+ 	* makeinfo/html.c (html_output_head): include <h1>title</h1> at
+ 	beginning of document.
+ 	* makeinfo/sectioning.c (cm_top): don't include explicit links in
+ 	HTML output, the regular code for @node will do it.
+ 	(sectioning_html): use <h2> for chapter instead of <h1>, etc.
+ 	* makeinfo/node.c (cm_node): do not include code to output the
+ 	HTML <head>, we do that elsewhere now.
+ 
+ 	1999-11-26 W. L. Estes <will@fumblers.org>
+ 	* makeinfo/insertion.c (begin_insertion): add an explicit <br>
+ 	before beginning a <pre> block. for flushleft and flushright, use
+ 	<div> tag with an align attribute set.
+ 	* makeinfo/insertion.c (end_insertion): for flushleft and
+ 	flushright, end the </div> block.
+ 
+ 	* makeinfo/makeinfo.c (cm_image): new variable, alt_arg now allows
+ 	user-supplied alt attribute value and
+ 	ext_arg allows user-supplied extension for image files.
+ 
+ 	* makeinfo/toc.c (contents_update_html): add anchors at chapter
+ 	level entries
+ 	(shortcontents_update_html): hrefs in shortcontents point to the
+ 	above anchors in the detailed contents
+ 
+ 	* doc/texinfo.txi: document changes to @image and the new behavior
+ 	of shortcontents entries
+ 
+ 2001-06-14    <karl@gnu.org>
+ 
+ 	* makeinfo/node.c: no need for size_t.
+ 
+ 2001-06-13    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\pdfmkdest): \normalturnoffactive, so refs and
+ 	defs match.
+ 	(\xrefX): pdf link defs no longer use @, so link refs shouldn't use @
+ 	either. (All xrefs in pdf were failing.)
+ 	(\mkpgn): remove redundant second definition.
+ 
+ 	* texinfo.tex (\smallerfonts): new font size.
+ 	(\smallexample, et al.): use it, in all cases, not just @smallbook.
+ 
+ 	1999-11-30 Andreas Schwab <schwab@suse.de>
+ 	* doc/texinfo.tex (\xrefX): Turn off active characters when writing
+ 	out the link name for pdf.
+ 
+ 2001-06-13    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: document that @smallexample is smaller in all
+ 		page formats now.
+ 
+ 2001-06-11    <karl@gnu.org>
+ 
+ 	* 4.0c.
+ 	* util/Makefile.am: Don't need automake patch any more, with
+ 		automake 1.4p4.
+ 
+ 	* configure.in (AC_FUNC_SETVBUF_REVERSED): only needed on
+ 	pre-sysvr3 systems that nobody has anymore?  Or so Russ Allbery
+ 	informs me ...
+ 
+ 2001-06-08    <karl@gnu.org>
+ 
+ 	* makeinfo/Makefile.am (EXTRA_DIST): include texinfo.{dtd,xsl}.
+ 
+ 	* util/Makefile.am: automake-1.4p3 now.
+ 
+ 2001-06-07    <karl@gnu.org>
+ 
+ 	* util/texi2dvi: comment out conditional text, from Werner LEMBERG
+ 	       <wl@gnu.org>.
+ 
+        2001-06-02  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* info/echo-area.c (info_read_completing_internal): If there are
+ 	no completions, say that instead of "Not complete".
+ 
+ 	* configure.in (ALL_LINGUAS): add da
+ 
+ 	* makeinfo/Makefile.am (pkgdata_DATA): include texinfo.xsl.
+ 
+ 	* configure.in: update for autoconf 2.50.
+ 
+ 2001-06-04    <karl@gnu.org>
+ 
+ 	* util/Makefile.am (EXTRA_DIST): automake-14p2.patch now.
+ 	* util/automake-14p2.patch: rename from 14p1.
+ 
+ 2001-05-22    <karl@gnu.org>
+ 
+ 	* changes from feloy for lowercase xml names, etc.
+ 
+ 2001-05-21    <karl@gnu.org>
+ 
+ 	* util/Makefile.am (EXTRA_DIST): add automake-14p1.patch.
+ 	* makeinfo/Makefile.am (pkgdata_DATA): define to install
+ 	        texinfo.dtd.
+ 
+         2001-05-17  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/makeinfo.c (cm_xref, cm_inforef): Don't allow empty
+ 	first arguments in cross references.
+ 
+ 	* makeinfo/makeinfo.c: redo --help, basic patch from ke@suse.de.
+ 
+ 2001-05-03    <karl@gnu.org>
+ 
+ 	* doc/info.texi: move help-cross to be subnode of cross-refs,
+ 	instead dangling out in space.
+ 	* doc/info.texi: update from eli
+ 
+ 2001-05-02    <karl@gnu.org>
+ 
+ 	* makeinfo/xml.c (xml_push_current_element): need to select the
+ 		`name' member.
+ 
+ 2001-05-01    <karl@gnu.org>
+ 
+ 	* configure.in: 4.0b
+ 
+ 	* doc/info.texi (Help-Cross): subsection of Cross-refs.
+ 
+ 	* lib/system.h (va_alist, etc.): moved from makeinfo.c.
+ 	* makeinfo/makeinfo.c (va_alist, etc.): move to system.h
+ 
+ 	* makeinfo/xml.[ch]: new files from Philippe Martin <feloy@free.fr>.
+ 	* pretty much all files also modified for XML/DocBook output.
+ 	* doc/texinfo.txi: minimally mention --xml and --docbook.
+ 	* makeinfo/xml.c: convert to K&R until we can do ansi2knr.
+ 
+ 	* util/texindex.c,
+ 	* util/install-info.c,
+ 	* info/info.c: it's 2001.
+ 
+ 2001-04-15    <karl@gnu.org>
+ 
+ 	* doc/info.texi: major update from eli.
+ 
+ 2001-04-13    <karl@gnu.org>
+ 
+         1999-10-16  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/node.c (cm_node): Don't generate cross-references to
+ 	"(DIR)".
+ 	* makeinfo/html.c (add_link): Likewise.
+ 
+         1999-10-16  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/makeinfo.c (insert): Don't call html_output_head here.
+ 	(add_char): Call html_output_head here...
+ 	* makeinfo/cmds.c (cm_sp): ...and here...
+ 	* makeinfo/toc.c (cm_contents, cm_shortcontents): ...and here...
+ 	* makeinfo/node.c (cm_anchor): ...and here.
+ 
+ 	* makeinfo/html.c (html_output_head): `free' html_title if
+ 	expanded.  Make <head> and <body> stand out.
+ 
+ 2001-04-12    <karl@gnu.org>
+ 
+ 	1999-12-26  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* makeinfo/defun.c (defun_internal): Use execute_string instead
+ 	add_word_args to expand defined_name, type_name and category (in
+ 	HTML mode).
+ 
+ 2001-03-29    <karl@gnu.org>
+ 
+ 	* Makefile.am: simple license.
+ 
+ 2001-02-27    <karl@gnu.org>
+ 
+ 	1999-12-17  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
+ 		* info/terminal.h, info/terminal.c (term_kh, term_ke, term_kD):
+ 		New variables to hold Home, End, Delete key sequences.
+ 		* info/infomap.c (initialize_emacs_like_keymaps,
+ 		initialize_vi_like_keymaps): Set them.
+ 
+ 	* makeinfo/makeinfo.h,
+ 	* makeinfo/makeinfo.c: --split-size option from Yoshiki:
+ 	1999-12-09  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
+ 		* makeinfo/makeinfo.h (split_size): New option.
+ 		* makeinfo/makeinfo.c (long_options): Add split_size.
+ 		(usage): Ditto.	Suggested by Richard Y. Kim.
+ 
+ 	* util/texi2dvi: -o support from Akim.
+ 
+ 2001-02-02    <karl@gnu.org>
+ 
+ 	* dir-example: don't need zsh twice.
+ 
+ 	From: Nishio Futoshi <fut_nis@d3.dion.ne.jp>, 02 Apr 2000.
+ 	* doc/texinfo.txi: capitalization fixes.
+ 	* doc/info.texi: up pointer fixes.
+ 	* doc/texinfo.txi: installing an info file.
+ 
+ 	* makeinfo/makeinfo.c: --output is for split html, not non-split.
+ 	From: Karl Eichwalder <keichwa@gmx.net>
+ 
+ 2001-01-12    <karl@gnu.org>
+ 
+ 	1999-10-15  Eli Zaretskii  <eliz@is.elta.co.il>
+ 		* makeinfo/cmds.c (cm_sc): Don't print the warning about
+ 		all-uppercase argument in menus under --no-headers.
+ 
+ 	* makeinfo/files.c: pass O_BINARY flag to open, suggested by bfox.
+ 
+ 2001-01-11    <karl@gnu.org>
+ 
+ 	* info/terminal.c [HAVE_TERMIOS_H && TCOON]: tcflow TCOOFF/TCCON
+ 	to resume output if user presses CTRL-S at the beginning of
+ 	things.
+ 	[HAVE_TERMIO_H && TCXONC]: ditto.
+ 	From Kevin Ryde <user42@zip.com.au>, 16jun2000;
+ 	cf. emacs/src/sysdep.c.
+ 
+ 2001-01-08    <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c: afivepaper, afourwide, afourlatex.
+ 	* doc/texinfo.txi: afivepaper
+ 
+ 2001-01-05    <karl@gnu.org>
+ 
+ 	* doc/info.texi: typo from: Martin Buchholz <martin@xemacs.org>.
+ 	* doc/info.texi: typo fixes from meyering.
+ 
+ 2001-01-02    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (remember_brace_1): don't assume command is
+ 	 non-null, an (erroneous) input line like \hbox to7in{ passes in a
+ 	 null.
+ 
+ 	* makeinfo/toc.c: fix from jan
+ 	* makeinfo/html.c: fix from jan for top-level references.
+ 
+ 2000-12-22    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: --help changes.
+ 	* doc/texinfo.txi: -o means the directory name for HTML output.
+ 
+ 2000-12-21    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: switch to fdl
+ 
+ 	* makeinfo/html.c: doc fix.
+ 	* makeinfo/insertion.c: no space after _ I guess.
+ 	* makeinfo/cmds.c: no space after _ I guess.
+ 
+ 	* makeinfo/html.c (nodename_to_filename_1): fix up external
+ 	* top-node references.
+ 
+ 2000-12-20    <karl@gnu.org>
+ 
+ * HTML table patch from Jan:
+     2000-12-19  Jan Nieuwenhuizen  <janneke@gnu.org>
+ 
+ 	    * makeinfo/multi.c (multitable_item),
+ 	    (cm_tab): close html table columns.  Also, align cell contents to
+ 	    top, which is probably the most sensible thing to do for text.
+ 
+ 
+ 2000-12-19    <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (insert_toplevel_subdirectory): try
+ 		name.html if just name doesn't work.
+ 
+ 	* doc/texinfo.txi: document html output in .html directory
+ 		sometimes.
+ 
+ 	* util/Makefile.am (EXTRA_DIST): add install-info-html.
+ 
+ 	* util/texindex.c: 2000
+ 	* util/install-info.c: 2000
+ 	* info/info.c: 2000
+ 	* configure.in: 4.0a
+ 
+ 	* lib/system.h: include limits.h
+ 
+ 	* Applied HTML splitting changes from Jan:
+     2000-11-10  Jan Nieuwenhuizen  <janneke@gnu.org>
+ 
+ 	    * makeinfo: removed code for numbered split HTML output, removed
+ 	    SPLIT_JCN conditional.
+ 
+     2000-11-09  Jan Nieuwenhuizen  <janneke@gnu.org>
+ 
+ 	    * makeinfo/html.c: prepared nodifying filename functions for
+ 	    linking not non-spit HTML documents, by adding ``#anchor'' to
+ 	    external refernces.
+ 
+ 	    * doc/texinfo.txi (Installing HTML info): updated doco for --html
+ 	    option, added node Installing HTML info.
+ 
+ 	    * util/install-info-html.in: new script.  The bare minimum
+ 	    required for generating HTML index.
+ 
+ 	    * lib/system.h:	compilation fix.
+ 
+     2000-11-08  Jan Nieuwenhuizen  <janneke@gnu.org>
+ 
+ 	    * makeinfo/makeinfo.c (convert_from_loaded_file): [SPLIT_JCN]:
+ 	    overloaded already way too hairy function with logic to put split
+ 	    html output into subdirectory with basename of toplevel output
+ 	    file.
+ 
+ 	    * makeinfo/html.c (fix_filename): new function.
+ 
+     2000-11-07  Jan Nieuwenhuizen  <janneke@gnu.org>
+ 
+ 	    * toc.c (toc_add_entry):
+ 	    (contents_update_html):
+ 	    (shortcontents_update_html): [SPLIT_JCN]: use hrefs for nodename based
+ 	    html files.
+ 
+ 	    * node.c (cm_node): [SPLIT_JCN]: create html filename based on
+ 	    nodename (instead of a numbered node<num>.html filename).
+ 
+ 	    * makeinfo/makeinfo.c (main): [SPLIT_JCN]: enable splitting of
+ 	    html output.
+ 
+ 	    * makeinfo/html.c
+ 	    (add_url_name,add_nodename_to_filename,nodename_to_filename): new
+ 	    functions.
+ 
+ 2000-12-15    <karl@gnu.org>
+ 
+ 	* configure.in (AC_CHECK_HEADERS): add limits.h explicitly.
+ 
+ 2000-11-10    <karl@gnu.org>
+ 
+ 	* dir-example: update
+ 	* info/nodes.c: doc fixes, etc.
+ 
+ 	* incorporated verbatim patch from janneke:
+     2000-04-14    <janneke@gnu.org>
+ 
+ 	    * applied texinfo-3.12s.jcn4 patch
+ 
+     1999-09-02    <janneke@gnu.org>
+ 
+ 	    * makeinfo/cmds.c,
+ 	    * makeinfo/insertion.c: @verbatiminclude file
+ 	    * doc/texinfo.tex: @verbatiminclude file
+ 	    * doc/texinfo.txi: @vebatiminclude file doco
+ 	    * NEWS: added @verbatiminclude to Language section
+ 
+     1999-09-01    <janneke@gnu.org>
+ 
+ 	    * makeinfo/makeinfo.c: bf: @exdent (urg6.texi) -- Rolled into 4.0
+ 	    * NEWS: added verb* to Language section
+ 	    * doc/texinfo.txi: @verb, @verbatim doco
+ 	    * doc/texinfo.tex: tricky tex-fix for @verb{<char>..<char>}
+ 	    * doc/texinfo.tex: real tab expansion for @verbatim mode
+ 	    * doc/texinfo.tex: proper start of environment, no indentation
+ 
+     1999-08-31    <janneke@gnu.org>
+ 
+ 	    * makeinfo/cmds.c:
+ 	    * makeinfo/insertion.{c,h},
+ 	    * makeinfo/makeinfo.{c,h}: redo of @verbatim, @verb{<char>..<char>}
+ 	    * doc/texinfo.tex: fixed @verb{<char>..<char>}
+ 
+     1999-08-30  Jan Nieuwenhuizen <janneke@gnu.org>
+ 
+ 	    * makeinfo/cmds.c,
+ 	    * makeinfo/insertion.{c,h},
+ 	    * makeinfo/makeinfo.{c,h}: added @verbatim (and preliminary @verb)
+ 	    support
+ 	    * doc/texinfo.tex: added @verbatim (and preliminary @verb) support
+ 
+     1999-08-24  Jan Nieuwenhuizen <janneke@gnu.org>
+ 
+ 	    * bf: empty node: makeinfo/node.c:cm_node () -- Rolled into 4.0
+ 
+ 
+ 2000-10-18    <karl@gnu.org>
+ 
+ 	* doc/info.texi: eli update
+ 
+ 2000-09-22    <karl@gnu.org>
+ 
+ 	* makeinfo/defun.c: warn if non-whitespace follows @defun'd name
+ 	  (suggestion from Akim).
+ 
+   Installed some patches:
+ 
+   2000-08-04  Paul Eggert  <eggert@twinsun.com>
+ 	  * makeinfo/multi.c (find_template_width):
+ 	  Don't access before start of *PARAMS.
+ 
+   2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	  * info/filesys.c (info_file_in_path): Reject FILENAME if it is
+ 	  empty, or ".", or "..".
+ 
+   2000-08-23  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	  * info/session.c (info_menu_or_ref_item): If the user have chosen
+ 	  menu item or xref that's identical to defentry's label, use
+ 	  defentry instead of looking for its label.  Otherwise, select the
+ 	  entry whose position is the closest to the window's point, in
+ 	  case there's more than a single entry with that label.
+ 
+ 2000-09-12    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: it's 2000 now.
+ 	* doc/texinfo.txi: document the only real (and rare) reason for not using implicit pointer
+ 	creation.
+ 
+ 2000-09-06    <karl@gnu.org>
+ 
+ 	* configure.in: test all termcap variables for existence.  From
+ 	andy@rz.uni-karlsruhe.de.
+ 
+ 	* configure.in (ALL_LINGUAS): include ja.
+ 	* lib/system.h [HAVE_IO_H]: make #include <io.h> conditional for
+ 	BeOS.  Reported by Dan Moore, dan@moore.cx.
+ 	* configure.in (AC_CHECK_HEADERS): add io.h.
+ 
+ 2000-06-05    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: forgot to escape {}.
+ 
+ 2000-05-30    <karl@gnu.org>
+ 
+ 	* info/filesys.c (is_dir_name): check all info suffixes as well as
+ 	the compression suffixes.  Fixes segmentation fault on a dir.info
+ 	file ending after the * Menu.
+ 
+ 2000-05-28    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Forgot {arg} in @rmacro example.  From Olaf B.
+ 
+ 2000-05-27    <karl@gnu.org>
+ 
+ 	* doc/txi-cs.tex: update from: Stepan Kasal <kasal@suse.cz>.
+ 
+ 	* doc/Makefile.am (install-data-local): reformat warning per
+ 	François to hopefully make it more noticeable.
+ 
+ 	2000-02-08  Eli Zaretskii  <eliz@is.elta.co.il>
+ 		* info/session.c (incremental_search): Don't retain RET when
+ 		exiting isearch.  Suggested by Hrvoje Niksic <hniksic@iskon.hr>.
+ 
+ 2000-05-22    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: pageparams -> pagesizes
+ 
+ 2000-05-18    <karl@gnu.org>
+ 
+ 	* makeinfo/lang.c (cm_accent_tilde): need N in list.
+ 	From: kama@hippo.fido.de (Karl Heinz Marbaise)
+ 
+ 	* makeinfo/files.c (find_and_load): read only the number of bytes
+ 	available in the buffer.  Also, remove one-byte-at-a-time reading
+ 	in the WIN32 case.
+ 	From: "J. David Bryan" <dbryan@bcpl.net>
+ 
+ 	* info/man.c: use eli's patch after all, we re-increment j at the
+ 	top of the loop.
+ 
+ 2000-05-16    <karl@gnu.org>
+ 
+ 	* info/man.c (clean_manpage): don't write before the beginning of
+ 	newpage.
+ 	(based on patch from Eli).
+ 
+ 2000-02-03    <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: remove spurious space. from kaja.
+ 
+ 1999-10-12  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (install-tex): install all txi-?? files.
+ 
+ 1999-10-01  W. L. Estes  <will@fumblers.org>
+ 
+ 	* makeinfo/cmds.c: dont treat @center as separate paragraph,
+ 	use div element to output center
+ 
+ 1999-09-29  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* djgpp/README: Say `dir-example', not DIR.
+ 
+ 	* lib/system.h (DEFAULT_INFOPATH) [__DJGPP__]: Define.
+ 
+ 1999-09-28  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in,
+ 	util/texi2dvi: version 4.0.
+ 	* doc/texinfo.txi: New isbn.
+ 
+ 1999-09-24  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Fixes from Oleg.
+ 
+ 1999-09-20  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/node.c: Don't write region at an anchor.
+ 	From: Thomas Esken <esken@nmlab.informatik.fh-dortmund.de>
+ 
+ 	* info/terminal.c: Only set dumb terminal if tgetent returns < 0,
+ 		not 0.
+ 	For HP-UP 11.
+ 	From jeff.hull@state.co.us.
+ 
+ 	* makeinfo/footnote.c: Don't translate the `Footnotes' string
+ 		according to LANG, it should be according to
+ 		@documentlanguage, which isn't implemented yet.
+ 	From: Jan Nieuwenhuizen <janneke@gnu.org>
+ 
+ 	* doc/texinfo.txi: @end direntry from kama.
+ 
+ 1999-09-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: \ninett is now \smalltt.
+ 
+ 	* doc/texinfo.txi: arnold changes
+ 
+ 	1999-09-03  Akim Demaille  <akim@epita.fr>
+ 	* texi2dvi (getopt): batch has to be assigned `eval', not `echo'.
+ 	(bibtex): Launch BibTeX also when the LOG file complains that
+  	there are no BBL file.
+ 
+ 	* doc/texinfo.txi: Document that @anchor ignores spaces.
+ 
+ 	* makeinfo/cmds.c (cm_shyph): remove, &shy; is not supported in
+ 		browsers.
+ 	From: Thomas Esken <esken@nmlab.informatik.fh-dortmund.de>
+ 
+ 	* makeinfo/makeinfo.c: Don't crash if current_indent = 0.
+ 	From: Jan Nieuwenhuizen <janneke@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: Avoid blank lines between @menu entries.
+ 	* configure.in: 3.12t
+ 
+ 	1999-08-31  Eli Zaretskii  <eliz@is.elta.co.il>
+ 	* info/info.c (info_short_help): Document --apropos.
+ 
+ 1999-09-18  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/html.c (html_output_head): use text for <title>, not
+ 		html markup.  From François.
+ 	* makeinfo/makeinfo.c (text_expansion): new routine.
+ 	* makeinfo/cmds.c (cm_settitle): don't expand the title here,
+ 		we'll do it later.
+ 
+ 	* makeinfo/makeinfo.h (text_expansion): declare.
+ 
+ 	* info/indices.c,
+ 	* info/infodoc.c,
+ 	* info/session.c,
+ 	* info/footnotes.c: translate errors.
+ 	* info/info.h: Use `' instead of "" in errors.
+ 
+ 1999-09-06  Karl Berry  <karl@gnu.org>
+ 
+ 	+1999-08-24  Jan Nieuwenhuizen <janneke@gnu.org>
+ 	* makeinfo/node.c:cm_node: don't compare current_node when null.
+ 
+ 	1999-08-23  W. L. Estes  <will@fumblers.org>
+ 	*  makeinfo/node.c (cm_node): write <a name=> tags even
+            ifusing --no-headers
+ 
+ 	* configure.in: ospeedlib -> trylib
+ 	From: Andreas Schwab <schwab@suse.de>
+ 
+ 	* makeinfo/makeinfo.c (read_command): add explicit 0 to return if
+ 	enclosure command.  From: Andreas Jaeger <aj@arthur.rhein-neckar.de>.
+ 
+ 1999-08-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in: add missing quotes, logic in new termcap library
+ 	check.
+ 
+ 1999-08-17  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/multi.c,
+ 	* makeinfo/sectioning.c,
+ 	* makeinfo/node.c,
+ 	* makeinfo/macro.c: omit unused vars
+ 	* info/session.c (info_goto_invocation_node): omit unused decl.
+ 
+ 	* configure.in: Check for extra termlib variable necessary on
+ 		HP-UX 9.
+ 	From: Olaf Bachmann <obachman@mathematik.uni-kl.de>
+ 
+   1999-08-16  Andreas Schwab  <schwab@suse.de>
+ 	  * info/terminal.c (terminal_initialize_terminal): Try tcgetattr
+ 	  and cfgetospeed in preference to TIOCGETP.
+ 	  (original_tchars, original_ltchars): Define them only if needed.
+ 
+ 1999-08-16  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infodoc.c (create_internal_info_help_node): rename arg.
+ 	(info_find_or_create_help_window): avoid deref of null eligible.
+ 
+ 	* info/terminal.c (TIOCGETP, TIOCGETC, TIOCGLTC) [alpha && linux]:
+ 	#undef.  Useless stubs are present.
+ 
+ 1999-08-15  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/nodes.c: Remove reference to nonexistent RFC for Info
+ 	files.
+ 
+ 1999-08-11  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/nodes.c (info_find_file_internal): If the file's contents
+ 	were gc'ed since last time it was loaded, reload the file.
+ 
+ Wed Aug 11 06:42:47 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (EXTRA_DIST): add txi-pt.tex from Lalo.
+ 
+ Mon Aug  9 16:28:18 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: Support preloaded texinfo.tex, from Stephen.
+ 
+ 	* makeinfo/makeinfo.c (add_char): restore ugly check for first
+  		character being <.
+ 
+ 	* makeinfo/cmds.c (cm_kbd): Increment in_fixed_width_font for
+  		html.
+ 
+ 	* doc/texinfo.txi: effect not affect
+ 
+ 	* makeinfo/makeinfo.c: Rearrange help.
+ 
+ 	* makeinfo/toc.c: Cast %* arguments to (int) to placate gcc
+  		-Wformat.
+ 
+ Fri Aug  6 13:03:14 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/install-info.c: Hardwire the File: dir, Node: top part of
+ 		the skeleton dir file.
+ 	Report from: Stanislav Brabec <utx@k332.feld.cvut.cz>
+ 
+ 	* info/Makefile.am (BUILT_SOURCES): rm -f $(BUILT_SOURCES), a
+  		kludge.
+ 
+     1999-07-28  Karl Eichwalder  <ke@gnu.franken.de>
+ 
+ 	    * makeinfo/makeinfo.c: Fix help string (-o).
+ 
+     1999-07-30  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	    * makeinfo/makeinfo.c (cm_uref, cm_email): Don't collapse -- and
+ 	    `` in the URL part of the reference.
+ 
+     1999-08-03  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	    * util/install-info.c (main): For entries given on command line,
+ 	    set entry_sections and entry_sections_tail members to NULL, and
+ 	    set text_len member to the entry length.  After processing the
+ 	    Info file, update the entry_sections pointers of all entries that
+ 	    came from the command line.
+ 
+ 	* util/texindex.c (sort_offline, sort_in_core): use off_t rather
+ 		than long.
+ 	Found on FreedBSD 2.2.8 by "Trond Endrestol" <endrestol@hotmail.com>.
+ 
+ Mon Jul 19 17:16:46 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in: 3.12n
+ 
+ 	* makeinfo/makeinfo.c (add_char): Don't insert <p> if we're in
+  		@html.
+ 
+ 	* makeinfo/html.c (add_escaped_anchor_name),
+ 	* makeinfo/toc.c (toc_add_entry): use URL_SAFE_CHAR.
+ 	* makeinfo/makeinfo.h (HTML_SAFE, URL_SAFE_CHAR): new macros.
+ 
+ Sun Jul 18 14:47:40 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* dir-example: Add bzip2.
+ 
+ 	* configure.in: 3.12m.
+ 
+ 	* doc/texinfo.txi (@afourlatex,@afourwide): add to command list.
+ 
+ 1999-07-17  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): Don't collapse `` and -- while
+ 	expanding node names.  Generate a terminating period for
+ 	@pxref, when it has more than a single argument.
+ 
+ 	* makeinfo/index.c (cm_printindex): Don't collapse `` and -- while
+ 	expanding node names.
+ 
+ Sat Jul 17 16:33:45 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* 3.12l.
+ 
+ 	* doc/texinfo.txi: @alias, @definfoenclose, etc.
+ 
+ 	* util/texindex.c (indexify): error message instead of abort(2)
+  		when no page number.
+ 
+ Fri Jul 16 18:00:26 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Overfull boxes, help2man, etc.
+ 
+ 	* util/Makefile.am (EXTRA_DIST): texi-outline.gawk is really
+ 	outline.gawk, add fixref.gawk and prepinfo.awk and
+ 		texi-docstring-magic.el.
+ 
+ Thu Jul 15 18:57:54 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: .fmt, etc.
+ 	* doc/texinfo.txi: More macro docs, etc.
+ 
+ Wed Jul 14 19:58:47 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Give good quote.
+ 
+ 	* util/Makefile.am (EXTRA_DIST): add texi-outline.gawk.
+ 
+ 	From: kama@hippo.fido.de (Karl Heinz Marbaise)
+ 	* makeinfo/toc.c (contents_update_html): go back to start level.
+ 	* doc/texinfo.txi: deftypeop
+ 
+ 	From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
+ 	* makeinfo/toc.c (toc_add_entry): don't assume sprintf return type
+  		is int.
+ 	* makeinfo/sectioning.c (insert_and_underscore): declare more
+  		unsigned char *.
+ 	* makeinfo/macro.h (itext_info, itext_size): remove declarations,
+ 		they're defined static.
+ 	* makeinfo/makeinfo.c: Split up help string even more.
+ 
+ Tue Jul 13 17:16:18 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Document @rmacro.
+ 	* makeinfo/macro.c (cm_rmacro): new command to do @allow-recursion
+  		by default.
+  	(define_macro): split off from cm_macro.
+ 
+ 	* makeinfo/macro.h (cm_rmacro): declare.
+ 	* makeinfo/macro.h (delete_macro): do not need to export.
+ 	* makeinfo/cmds.c (rmacro): new command.
+ 
+ 	* makeinfo/html.c,
+ 	* makeinfo/toc.c,
+ 	* makeinfo/lang.c,
+ 	* makeinfo/makeinfo.c: Use strchr instead of member.
+ 
+ Mon Jul 12 08:01:19 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: document this.
+ 	* makeinfo/macro.c (apply): warn if \ in macro body is not
+ 		followed by a parameter name or \, instead of silently
+ 		accepting it, for compatibility with TeX.
+ 
+ 	* makeinfo/macro.c: Doc fix.
+ 
+ Sun Jul 11 12:49:50 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/macro.c (cm_macro): do @quote-arg implicitly if single
+  		argument to macro.
+ 	* doc/texinfo.txi: Document this.
+ 
+ 	* doc/texinfo.txi (Smallcaps): Document makeinfo warning if arg is
+  		all uppercase.
+ 	* makeinfo/cmds.c (cm_sc): warn if arg is all upper (suggested by
+  		Jim Meyering).
+ 
+ 	* makeinfo/cmds.c (cm_var): warn if argument contains any of ,[]()
+ 		which are unlikely to be allowable in real variable names.
+ 		Suggested by rms.
+ 
+ 	* makeinfo/makeinfo.h (member): remove weird masking macro.
+ 
+ 	* doc/texinfo.txi: Probably ok to indent @example.
+ 
+ 	* configure.in: 3.12k.
+ 
+ 	* makeinfo/html.c (add_escaped_anchor_name): Cast to unsigned char
+ 		for 8-bit chars. From Yoshiki.
+ 
+ 	* makeinfo/makeinfo.c: complain -> warn for sake of <80 chars.
+ 
+ 1999-07-09  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/multi.c (multitable_item): Quote the value of align=
+ 	property.
+ 
+ 	* makeinfo/defun.c (defun_internal): Ditto.
+ 
+ 	* makeinfo/cmds.c (cm_center): Ditto.
+ 
+ 	* makeinfo/toc.c (toc_add_entry): New argument ANCHOR; all callers
+ 	changed.  In HTML mode, expand NODE_NAME, or use ANCHOR, if
+ 	non-NULL, and save it together with the TOC name in the name
+ 	member of the TOC entry.
+ 	(toc_add_entry, toc_find_section_of_node): Add a warning in a
+ 	comment that the NODE argument must be unexpanded.
+ 	(contents_update_html): Terminate the TOC entry with </a>.
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): If the sectioning
+ 	command is outside any node, generate explicit anchor and pass it
+ 	to toc_add_entry.
+ 
+ 	* makeinfo/node.c (expand_node_name): Now external instead of
+ 	static.
+ 	(cm_node): Output expanded node name in the navigation bar.
+ 
+ 	* makeinfo/node.h: Declare expand_node_name.
+ 
+ 	* makeinfo/index.c (cm_printindex): Produce valid HTML links, even
+ 	if index->node is NULL or empty.  Fix format of index under
+ 	--no-headers.
+ 
+ Fri Jul  9 18:09:28 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Pair @end html properly.  From Olaf B.
+ 
+ 	* doc/Makefile.am (EXTRA_DIST): add txi-nl.tex from Marcel van der Boom
+ 	<marcel@virtualprojects.org>.
+ 
+ 	* doc/txi-en.tex: Doc fix.
+ 
+ Wed Jul  7 16:07:44 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am: Doc fix.
+ 
+ 	* configure.in (txi_CHECK_DECLS): call this new macro (in
+  		acinclude.m4).
+  	* acinclude.m4: new file.
+ 
+ Tue Jul  6 19:12:37 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.h,
+ 	* makeinfo/insertion.c,
+ 	* makeinfo/cmds.c,
+ 	* makeinfo/defun.c: new command @deftypeop.
+ 	Suggestion from: booth@us.ibm.com.
+ 
+ 1999-07-05  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (cm_value): Don't convert quotes and dashes
+ 	in the argument of @value, since @set doesn't.
+ 
+ Mon Jul  5 16:43:23 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (get_item_function): return "@ " rather
+  		than "@".	(command_needs_braces): new fn.
+ 	(cm_item): handle @itemize markers that don't take braces.
+ 	Bug reported by Stephen, prototype fix from Yoshiki.
+ 
+ 	* doc/texinfo.txi (Contents): @contents ignored at beginning when
+  		outputting to stdout.
+ 	Installed this.
+ >1999-05-02  Eli Zaretskii  <eliz@is.elta.co.il>
+ >	* makeinfo/toc.c (cm_contents, cm_shortcontents): If writing to
+ >	stdout, output the contents and short contents immediately, and
+ >	assign NULL to contents_filename and shortcontents_filename, so
+ >	that toc_update won't try to rewrite stdout.
+ 
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): declare starting_pos
+ 		and ending_pos as unsigned char * since they're based on
+ 		output_paragraph.
+ 
+ 	* makeinfo/insertion.c: Cast output_paragraph to char * for sake
+ 		of strncmp prototype (on IRIX 4).
+ 	From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>
+ 
+ 
+ 	* info/man.c (get_manpage_contents): restore previous (default)
+  		SIGCHLD handler so the pclose when gunzipping info files
+  		doesn't fail with `No child processes' (because
+  		reap_children reaped it).
+  	From: Josip Rodin <jrodin@public.srce.hr>
+  	njs@uclink4.berkeley.edu, 38063-forwarded@bugs.debian.org
+ 
+ Fri Jul  2 14:26:22 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	From gildea:
+ 	* info/terminal.c (TIOCGETC) [M_XENIX && TIOCGETC]: #undef.
+ 	* info/session.c (strncasecmp) [M_XENIX]: declare.
+ 
+ Thu Jul  1 19:25:12 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_value): erroneous capitalization in
+  		error message.
+ 
+ 	* makeinfo/insertion.c (end_insertion): @end html should turn html
+  		escaping back on. From esr.
+ 
+ 	* makeinfo/makeinfo.c (cm_pxref): No period needed to terminate
+  		cross-reference.
+ 
+ Sun Jun 13 16:12:41 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Remove some more node links.
+ 
+ Sat May  1 16:01:36 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.c: Single space for option indent to match others.
+ 
+ 	* makeinfo/makeinfo.c,
+ 	* util/texindex.c,
+ 	* util/install-info.c: Must indent option list for help2man.
+ 
+ 	* info/infodoc.c [HELP_NODE_GETS_REGENERATED]: set to true.
+ 	(info_internal_help_text): put moving cmds first so they know how to go
+ 	forward in the help window.
+ 	(create_internal_info_help_node): can't always quit help with C-x 0.
+ 	(info_find_or_create_help_window): pass !one_window_p.
+ 
+ 1999-04-29  Yoshiki Hayashi  <g740685@komaba.ecc.u-tokyo.ac.jp>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): Don't collapse --- to -- etc.,
+ 	in references.
+ 
+ Mon Apr 26 16:41:55 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/node.c (validate): arrange to translate the reference type.
+ 	Report from Sergio.
+ 
+ 	* makeinfo/makeinfo.c (validate): should not be declared here.
+ 
+ 	* makeinfo/index.c (cm_printindex): <ul compact> is not
+  		translatable.  From Yoshiki.
+ 
+ 	* doc/Makefile.am (EXTRA_DIST): include new txi-es.tex from Adrian
+  		Perez Jorge <alu1415@csi.ull.es>.  And new txi-en.tex.
+ 
+ Sun Apr 25 16:08:27 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_settitle): don't output html head here.
+ 
+ 	* makeinfo/makeinfo.c: Move html routines to html.c.
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): add html.[ch].
+ 	* makeinfo/html.[ch]: new files.
+ 
+ 	* makeinfo/makeinfo.c: Restore -- in --output line.  From Sergio.
+ 
+ 1999-04-23  Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp>
+ 
+ 	* makeinfo/cmds.c (cm_center): Recover the previous state when
+ 	called with --html.
+ 
+ 1999-04-24  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/cmds.c (cm_bye): Flush the output, in case some command
+ 	produced it immediately before @bye.
+ 
+ 	* makeinfo/toc.h (TOC_ENTRY_ELT): New member: containing_node.
+ 
+ 	* makeinfo/toc.c (lots_of_stars): New variable.
+ 	(toc_add_entry): Add a new parameter node_name; all callers
+ 	changed.  Record the name of the node containing the section.
+ 	(toc_find_section_of_node): New function.
+ 	(toc_free): Free the new containing_node member.
+ 	(contents_update_info, shortcontents_update_info): Underline the
+ 	title with stars.  Output two empty lines after the TOC.
+ 	(contents_update): Fix off-by-one error in writing the rest of the
+ 	file after updating the TOC.
+ 
+ 	* makeinfo/index.c (cm_printindex): Save and restore line_number
+ 	and input_filename.  Don't output the "* Menu" header when
+ 	--no-headers is in effect.  Make the fake node name for index
+ 	entries that are outside any node be more explanatory, and emit an
+ 	error for such index entries.  Under --no-headers, output a
+ 	reference to the section name, as returned by a call to
+ 	toc_find_section_of_node, instead of a node name.
+ 
+ 1999-04-24  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/index.c (struct index_elt): Add a new member
+ 	entry_text.
+ 	(free_index, make_index_entries_unique): Free the entry_text
+ 	member.
+ 	(index_add_arg): Don't HTML-escape the index entry here.
+ 	(index_add_arg): Initialize the entry member to NULL.  Put the
+ 	entry text into the entry_text member.
+ 	(sort_index): Expand the index entries as if in non-HTML mode.
+ 	Put the expansion into the entry member of struct index_elt.
+ 	(cm_printindex): Allocate the line[] array in Info mode only.
+ 	In HTML mode, escape and expand the original index entry text,
+ 	don't use the results of expansion inside sort_index.
+ 
+ 	* makeinfo/cmds.c (cm_r): Undo the effect of @code while printing
+ 	one of the "code"-style indices in HTML mode.
+ 
+ 1999-04-23  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/infomap.c (initialize_vi_like_keymaps): Bind DEL in echo
+ 	area to ea_rubout, except for __MSDOS__.
+ 
+ 	* doc/info-stnd.texi (Node Commands): Document that `I' only
+ 	produces its effect for programs documented in the current Info
+ 	file.  Tell them to invoke `I' from DIR if it doesn't work from
+ 	current place.
+ 
+ Thu Apr 22 09:59:02 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c,
+ 	* info/info.c: Rewrite help string a little more.
+ 
+ 	* doc/info-stnd.texi: Change chapter name to match node name,
+ 		* other changes.
+ 
+ 	* makeinfo/cmds.c (cm_bye): call discard_braces.
+ 
+ 	* makeinfo/cmds.c (cm_settitle): output more meta and link tags.
+ 
+ 	* configure.in (ALL_LINGUAS): add eo.
+ 
+ 	* util/install-info.c [STRIP_DOT_EXE]: #if not #ifdef
+ 
+ Wed Apr 21 19:40:51 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: Doc fix.
+ 
+ 	* makeinfo/sectioning.c (insert_and_underscore): do not output
+  		html anchor here.
+ 	* makeinfo/node.c (cm_node): do anchor at node name not sectioning
+  		title.
+ 
+ 	* makeinfo/node.c: Newlines on node lines.
+ 
+ Tue Apr 20 13:02:46 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/man.c (get_manpage_contents): freopen stdin and stderr to
+         /dev/null rather than closing them. http://bugs.debian.org/14787
+ 
+ Mon Apr 19 14:12:09 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Document possibility of `titlepage' stuff for
+ 		plain text output using @ifinfo.
+ 	Report from: Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at>.
+ 
+ 	* makeinfo/cmds.c: Screw that.
+ 	* doc/texinfo.txi: Fix up frontmatter a bit.
+ 
+ 	* dir-example: Spaces not tabs.
+ 	* dir-example (R FAQ): add.
+ 
+ 	* makeinfo/makeinfo.c: Lowercase makeinfo in first line.
+ 
+ 	* doc/info.texi (The node reached...): is a @subsection not a
+  		@subsub.
+ 
+ 	* doc/texinfo.txi: Document option rename.
+ 	* makeinfo/makeinfo.c: Rename option to commands-in-node-names.
+ 
+ 	* makeinfo/index.h (index_compare_fn): declare.
+ 	* makeinfo/index.c (index_element_compare): call through new
+  		variable index_compare_fn, and set it to strcoll if
+ 	 	@documentlanguage was used and LANG != en.
+ 	 	#include lang.h.
+ 
+ Sat Apr 17 14:46:47 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (current_item_function, cm_item): rewrite
+  		to skip all conditionals.
+  	(cm_item): use current_item_function rather than current_insertion_type
+ 	to check what to use for @item, so @ifset etc. can be used around
+ 		@items.
+ 	Report from: "W. L. Estes" <wlestes@br20920.uncg.edu>.
+ 
+ 	* makeinfo/makeinfo.c (current_insertion_type): no need to
+  		declare.
+ 
+ 	* makeinfo/makeinfo.c: Add examples to help message.
+ 
+ 	* util/texindex.c (usage): Rearrange --help, avoid extra newline.
+ 
+ 	* info/info.c: Sort --help in the usual place.
+ 
+ 	* makeinfo/makeinfo.c: Reindent help message, rename
+ 	       --expensive-validation to --commands-in-nodes.
+ 
+ Fri Apr 16 17:53:48 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_ignore_arg): new routine.
+ 	(cm_ignore_line_no_op): remove, can use cm_ignore_line.
+ 
+ Tue Apr 13 16:45:39 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: Frontmatter changes.
+ 
+ 	* doc/info.texi: Remove advanced remark in first node.
+ 
+ 	* doc/texinfo.txi: Texinfo.tex does macros now. From Eli.
+ 
+ 	* doc/texinfo.txi: Document @w{ } to produce an unbreakable space.
+ 
+ 	* util/texi2dvi: Update from Akim, avoid Solaris ucb echo weirdness.
+ 
+ 	* info/infodoc.c: Parenthesize function calls, don't depend on
+  		gettext being there.  Report from: Doug Semler
+  		<doug@seaspace.com>.
+ 
+ 1999-04-12  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/infomap.c (initialize_vi_like_keymaps): Initialize the echo
+ 	are keymap *before* it is filled up with keys.
+ 
+ 1999-04-10  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/macro.c (execute_macro): Reset the line number to where
+ 	the macro argumenst begin, before executing its expansion.
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): Expand the name of arguments
+ 	before writing them in HTML mode.
+ 	(handle_menu_entry): Expand the name of the gleaned node before
+ 	writing it in HTML mode.
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): Expand the name of the
+ 	current node when producing the <a name=... anchor.
+ 
+ 	* makeinfo/node.c (cm_node): Expand the name of node and its links
+ 	before outputting them in HTML mode.
+ 
+ 	* makeinfo/index.c (cm_printindex): Expand node names to which the
+ 	index points.
+ 
+ 	* makeinfo/footnote.c (cm_footnote): Call execute_string instead
+ 	of add_word_args, since current_node needs to be expanded.  Expand
+ 	the name of the Footnotes node before calling
+ 	remember_node_reference.
+ 
+ 	* makeinfo/tests/node-expand.txi: New test, for testing how node
+ 	names are expanded in @node, @menu, cross-references, and
+ 	indices.
+ 
+ 	* makeinfo/makeinfo.c (add_char): If we output <p>, adjust the
+ 	affected brace positions by 3, so cm_xxx functions get what they
+ 	expect in START and END.
+ 	(insert_html_tag): Likewise.
+ 
+ 	* makeinfo/cmds.c (cm_sc): Remove the kludge that looks for the
+ 	beginning of <small>, it is no longer needed.
+ 
+ 	* makeinfo/macro.c (cm_definfoenclose): Don't stop at the first
+ 	blank after the second comma: the blank may belong to the second
+ 	delimiter.
+ 
+ 	* makeinfo/tests/htmlpara.txi: New test, for the commands affected
+ 	by the <p> output at paragraph beginning.
+ 
+ 	* makeinfo/makeinfo.h (expensive_validation): New option.
+ 
+ 	* makeinfo/makeinfo.c (long_options): Add expensive_validation.
+ 	(usage): Likewise.
+ 
+ 	* makeinfo/node.c (find_node): If NAME isn't found verbatim, try
+ 	expanding it and every node name in tag table, before comparing
+ 	them, but only if expensive_validation is non-zero.
+ 	(find_node_reference): Likewise.
+ 	(cm_node): Don't expand node name and its links here.
+ 	(validate_file): If direct comparisons fail, try expanding the
+ 	comparees before giving up, unless expensive_validation is zero.
+ 	Switch the order of NODE and UP in error message about a lacking
+ 	menu item.
+ 
+ 1999-04-07  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/index.c (cm_printindex): Don't output "Menu" header.
+ 
+ 	* makeinfo/node.c (get_node_token): Collapse whitespace in node
+ 	names.
+ 	(glean_node_from_menu, expand_node_name): Likewise.
+ 
+ 	* info/infomap.c (initialize_vi_like_keymaps): Bind all the 256
+ 	keys to ea_insert, like the Emacs-like case does.
+ 
+ 	* doc/info-stnd.texi (Invoking Info): Document support for files
+ 	compessed with bzip2, and the --vi-keys option.
+ 	(Many places): Document key bindings under --vi-keys.
+ 
+ 1999-04-06  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/session.c (info_last_node, info_first_node): With a numeric
+ 	argument, go to ARGth node counting from the beginning.  Skip
+ 	anchor tags when looking for the target node--the last tag can be
+ 	an anchor, for example.
+ 	(last_search_direction, last_search_case_sensitive): New
+ 	variables.
+ 	(last_search_for_string): Remove variable.
+ 	(info_search_internal): Always move point by one notch before
+ 	beginning the search, to avoid complications in repeated search
+ 	commands.  When looking for the next node tag, skip any anchor
+ 	tags.
+ 	(info_search_1): Accept a 5th argument ASK_FOR_STRING, and only
+ 	prompt for search string if it's non-zero.  All callers changed.
+ 	Look for the COUNTth occurence of the string.
+ 	(info_search, info_search_backward, info_search_case_sensitively):
+ 	Set last_search_direction and last_search_case_sensitive.
+ 	(info_search_next, info_search_previous): New commands, repeat
+ 	last search in the same or reverse direction without prompting the
+ 	user for the string.
+ 
+ 	* info/infomap.c (initialize_emacs_like_keymaps): Bind `C-x n' to
+ 	info_search_next and `C-x N' to info_search_previous.
+ 	(initialize_vi_like_keymaps): Bind `n' to info_search_next and `N'
+ 	to info_search_previous.
+ 
+ 1999-04-04  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (get_rest_of_line): Don't expand non-macros,
+ 	so that macro-expanded output will still have them.
+ 
+ 1999-04-03  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/node.c (cm_node): Expand the node name and its links
+ 	completely before using them, so that they could use e.g. @value{}
+ 	etc.
+ 
+ 	* makeinfo/makeinfo.c (replace_with_expansion): Don't
+ 	remember_itext if we are executing_string.
+ 
+ 	* makeinfo/sectioning.c (sectioning_html): Remove #ifdef
+ 	HAVE_MACROS.  Don't call me_execute_string if already
+ 	executing_string.
+ 
+ 	* makeinfo/toc.c (toc_add_entry): Expand macros in TOCNAME right
+ 	here, since the macro can be later redefined.
+ 	(contents_update_html, contents_update_info,
+ 	shortcontents_update_html, shortcontents_update_info): Use stdio
+ 	functions for output instead of add_word etc.
+ 	(rewrite_top, contents_update, shortcontents_update, toc_update):
+ 	New functions, replace the TOC placebo with the actual TOC.
+ 	(cm_contents): Output a placebo instead of writing the TOC.
+ 	(cm_shortcontents): Output a placebo instead of writing the short
+ 	TOC.
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): Call toc_update
+ 	if appropriate.
+ 
+ 	* makeinfo/sectioning.c (cm_top): Don't output the HTML header
+ 	here, since the Top node might be preceeded by other commands,
+ 	like @contents.
+ 
+ 	* makeinfo/cmds.c (cm_settitle): Output the HTML header here.
+ 
+ 	* makeinfo/node.c (set_current_output_filename): New function,
+ 	saves the name of the actual file we are now writing, including in
+ 	the case of split-HTML output.
+ 	(cm_node): Call it to record the name of output file.
+ 
+ 	* makeinfo/footnote.c (free_pending_notes): Re-initialize
+ 	current_footnote_number to 1.
+ 
+ 	* makeinfo/index.c (index_add_arg): Remove redundant xstrdup.
+ 	(cm_printindex): Don't free index->entry: it is freed in
+ 	free_index, if, e.g., there's more than one file to convert.
+ 
+ 	* makeinfo/makeinfo.c (init_internals): Call toc_free.
+ 
+ Mon Apr  5 16:53:33 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am: Texmf_{texinfo,dvips}: dirs not files.  From
+  		Kurt Hornik.
+ 
+ Wed Mar 31 13:50:09 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* Pretest 3.12h.
+ 
+ 	* makeinfo/node.c (last_node_p): new fn.
+ 	(split_file): call it, instead of assuming no more entries means
+ 		no more nodes.  (Loses with anchors.)
+ 	Report from: "Oleg S. Tihonov" <ost@benetnash.ffke-campus.mipt.ru>.
+ 
+ 	* makeinfo/index.c (sort_index): whether an entry is @code or not
+ 		depends on the element, not the index, because of synindex.
+ 
+ 	* doc/Makefile.am (install-tex): Must use $(TEXMF), do
+ 		$(mkinstalldirs) on tex dirs.
+ 	From: Nathan Sidwell <nathan@acm.org>.
+ 
+ 	* doc/texinfo.txi: Document need for blank line before @image if
+  		you want space.
+ 
+ 	* Install changes from Eli:
+ 
+ 	1999-03-09  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/infodoc.c (info_internal_help_text): Remove hard-wired key
+ 	names, use %-10s instead.
+ 	(info_help_keys_text): New variable, holds two variants of keys
+ 	that invoke basic commands, indexed by vi_keys_p.
+ 	(create_internal_info_help_node): Use info_help_keys_text[].
+ 
+ 	* info/window.c (build_message_buffer): Support more general
+ 	format strings, like %-10.15s, %+4d etc.
+ 
+ 	* info/infomap.c (initialize_vi_like_keymaps): Bind ESC-h, ESC-t,
+ 	C-x LFD and C-x RET.
+ 
+ 	1999-03-08  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* util/install-info.c (output_dirfile): Sort the entries and
+ 	output them in alphabetic order.  Output each entry only in those
+ 	sections where it belongs.
+ 	(parse_input): New function, code moved from main.  Process
+ 	sections and entries in a single loop, and record with each entry
+ 	the list of sections where that entry belongs.  Record each entry
+ 	separately, not all of them together as a single block.
+ 	(parse_dir_file): New function, code moved from main.
+ 	(main): Move code to parse_input and parse_dir_file.  Put the new
+ 	entries only into sections where they belong.
+ 	(compare_entries_text): New function, called when sorting new
+ 	entries.
+ 
+ 	* info/infomap.c (initialize_vi_like_keymaps): New function.  Bind
+ 	keys a-la Less, including new functions from session.c below.
+ 	(initialize_emacs_like_keymaps): New function, with the guts of
+ 	initialize_info_keymaps.
+ 
+ 	* info/session.c (info_scroll_forward, info_scroll_backward): If
+ 	default_window_size is non-negative, use it as the default number
+ 	of lines to scroll.
+ 	(info_scroll_forward_set_window, info_scroll_backward_set_window,
+ 	info_down_line, info_up_line, info_scroll_half_screen_down,
+ 	info_scroll_half_screen_up, info_search_backward): New functions,
+ 	for Less-like look and feel.
+ 
+ Tue Mar 30 16:44:53 UTC 1999 Karl Heinz Marbaise <kama@hippo.fido.de>
+ 
+         * doc/txi-de.tex:
+             - added additional putwordin
+         * doc/texinfo.txi:
+             - changed defivar into deftypeivar
+         * makeinfo/sectioning.c:
+             - changed output of anchors based on problems with ie.
+         * makeinfo/defun.c:
+             - output in HTML mode changed to be on previous state.
+         * makeinfo/insertion.c:
+             - fixed up HTML output for deftypeivar.
+ 
+ 1999-03-30  Akim Demaille  <demaille@inf.enst.fr>
+ 
+         * texi2dvi ($tmpdir): Avoid security holes.
+ 
+ Fri Mar 26 17:06:55 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c (cm_exdent): rewrite to preserve blank lines.
+ 	Bug from: "Oleg S. Tihonov" <ost@benetnash.ffke-campus.mipt.ru>.
+ 
+ 	* makeinfo/cmds.c (cm_exdent): arg is in `roman'.
+ 
+ Thu Mar 25 16:21:27 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c,
+ 	* makeinfo/defun.c,
+ 	* makeinfo/insertion.h (insertion_type): add deftypeivar.
+ 	* makeinfo/defun.h (cm_defun): declare here.
+ 	* makeinfo/cmds.c (defun.h): include.
+ 	* doc/texinfo.txi (deftypeivar[x]): new commands.
+ 	* makeinfo/cmds.c (deftypeivar[x]): new commands.
+ 
+ 	* makeinfo/cmds.c (cm_exdent): save, set and restore
+  		in_fixed_width_font.
+ 
+ 	* doc/texinfo.txi (uref): rewrite.
+ 
+ 	* info/info.c (info_short_help): more spaces for new help2man.
+ 
+ 	* makeinfo/node.c (cm_node): output node name in html, change
+  		navbar punctuation.
+ 
+ 	* doc/texinfo.5: Fix URL.
+ 
+ 	* Finally installed this:
+ 	1998-05-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): When the file
+ 	contains no @setfilename then always look for \input (not
+ 	\include) in the first line and skip that.  Don't skip the first
+ 	line if no \input was found.
+ 
+ 1999-03-24  Akim Demaille  <demaille@inf.enst.fr>
+ 
+ 	* configure.in (AC_HEADER_STAT): Added.
+ 	* util/texindex.c (main): Check infiles are not directories.
+ 
+ 1999-03-24  Akim Demaille  <demaille@inf.enst.fr>
+ 
+ 	* texi2dvi (index_files): Don't use `!' to run sed -e "s!foo$!!"
+         since the shell will interpret `$!'.
+ 
+ Tue Mar 23 16:41:08 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (uref): rewrite to make HTML output read more
+  		nicely.  From Tim S.
+ 
+ 	* info/info.c (info_short_help): include examples.
+ 
+ 	* makeinfo/makeinfo.c (close_paragraph_with_lines): move earlier
+  		so can be static.
+ 
+ 	* makeinfo/sectioning.c,
+ 	* makeinfo/node.c,
+ 	* makeinfo/makeinfo.h,
+ 	* makeinfo/makeinfo.c,
+ 	* makeinfo/macro.c,
+ 	* makeinfo/insertion.c,
+ 	* makeinfo/cmds.c,
+ 	* makeinfo/files.c,
+ 	* makeinfo/footnote.c (size_of_input_text): rename to
+  		input_text_length.
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): make wrong-char-following a warning.
+  	(replace_with_expansion): remove bogus conditional that was duplicated
+ 	unconditionally.
+ 	From: Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+ 
+ Mon Mar 22 14:39:59 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/Makefile.am (install-tex): parenthesize.
+ 
+ 	* Makefile.am (dist-hook): remove, it uses hard links so we chmod
+  		all our sources.
+ 
+ 	* makeinfo/toc.c,
+ 	* makeinfo/defun.c,
+ 	* makeinfo/sectioning.c: Use _, not N_.
+ 
+ 	* info/Makefile.am (ginfo_SOURCES): include $(BUILT_SOURCES)
+  		explicitly.
+ 
+ 	* makeinfo/lang.c,
+ 	* makeinfo/lang.h: ISO-639 updates.
+ 
+ 	* makeinfo/cmds.c: exampleindent changes.
+ 
+ 	* info/info.c (info_short_help): reformat somewhat, and don't say
+ 		info info options any more.
+ 
+ 	* doc/info-stnd.texi (Invoking): make description format somewhat
+  		more standard.
+ 
+ 	* info/infomap.c (Initialize_info_keymaps): do ea_insert bindings
+ 		first so subsequent bindings (e.g., for ESC) override.
+ 
+ Sun Mar 21 17:31:00 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/multi.c (output_multitable_row): remove unnecessary
+ 	trailing whitespace from output, output blank row for blank @item.
+ 
+ 	* doc/texinfo.txi: Remove extra @item in language multitable.
+ 
+ Sat Mar 20 12:30:25 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Update language table from ISO 639:
+ 	http://www.iro.umontreal.ca/contrib/po/iso-639.  From kama.
+ 
+ 	* doc/texinfo.txi (exampleindent): document.
+ 
+ 	* doc/texinfo.txi (Creating an Info File): use this for the node name.
+ 
+ 	* doc/info.texi: Make Texinfo references consistent, etc.
+ 
+ 1999-03-18  Yoshiki Hayashi  <g740685@komaba.ecc.u-tokyo.ac.jp>
+ 
+ 	* makeinfo/makeinfo.c (set_default_indentation_increment): new
+ 	routine.
+ 	* makeinfo/insertion.c (cm_exampleindent): new routine.
+ 	Call set_default_indentation_increment.
+ 
+ Mon Mar 15 17:06:15 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/Makefile.am (ginfo_SOURCES): Remove doc.c and funs.h in
+ 		hopes they then won't be distributed.  Report from Andreas.
+ 
+ 	* makeinfo/cmds.c (cm_sp): close paragraph and disable filling to
+ 		produce blank lines in info.
+ 	Report from: Michael Vanier <mvanier@bbb.caltech.edu>.
+ 
+ 	* doc/texinfo.txi: Attempt to get Edition info on one line.
+ 
+ 	* makeinfo/makeinfo.h (cr_or_whitespace): use whitespace and check
+  		for \r.	(skip_whitespace_and_newlines, command_char): use it.
+  	Report from bonzini@gnu.org.
+ 
+ 	* makeinfo/cmds.c (cm_center): save and restore filling_enabled,
+  		so @center can be used inside an @example.  Bug from kama.
+ 
+ 1999-03-13  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/footnote.c (cm_footnote): In separate footnote style,
+ 	generate a reference to "foo-Footnote-NN" for each footnote.
+ 	(output_pending_notes): In separate footnote style, generate an
+ 	anchor "foo-Footnote-NN" for each footnote, so that the link in
+ 	the parent node would lead directly to the footnote.
+ 
+ 	* info/footnotes.c (make_footnotes_node): Recognize the new
+ 	"foo-Footnote-NN" style of footnote references.
+ 
+ 1999-03-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+ 
+ 	* configure.in (AC_OUTPUT): Remove command to create po/Makefile,
+ 	already done by AM_GNU_GETTEXT.
+ 
+ Tue Mar  9 17:48:46 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* Makefile.am (dist-hook): make distribution directory writable.
+ 
+ 	* Installed these changes:
+ 
+   1999-03-04  Akim Demaille  <demaille@inf.enst.fr>
+ 
+ 	    * texi2dvi (bibtex): Allow several runs of bibtex, this can be
+ 	    used if bibentries reference other bibentries.  Moreover, looking
+ 	    for `Citation' in the LOG should be enough to avoid uneless runs.
+ 
+   Sun Mar  7 15:15:00 1999 UTC Karl Heinz Marbaise <kama@hippo.fido.de>
+ 
+       * makeinfo/sectioning.{c,h}:
+ 	      - using defines instead of literals.
+ 	      - cleaned up some stylistic matters like Karl Berry
+ 		suggested. Handling of things like:
+ 		@unnumbered ..
+ 		@section ...
+ 		now it works correct.
+ 
+       * makeinfo/toc.{c,h}
+ 	      - addTocEntry, freeToc changed into toc_add_entry
+ 		toc_free. stylistics changed.
+ 
+       * makeinfo/iso2cht.pl,iso-639: script, table from the web.
+ 	      - perl script converting the iso-639 table from the web
+ 		into the appropiate files (isoenum.h, isotab.c and
+ 		iso.texi) which can be inserted directly into
+ 		lang.c, lang.h and texinfo.txi.
+ 
+ Tue Mar  9 17:47:59 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in: Bump to 3.12g.
+ 
+ Sun Mar  7 07:01:19 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infomap.c: Don't do isprint, just bind everything.
+ 
+ Fri Mar  5 14:31:42 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi,
+ 	* makeinfo/makeinfo.c: Document that --no-headers writes to stdout
+  		by default.
+ 
+ 	* doc/texinfo.txi: @setchapternewpage doesn't change
+ 	\bindingoffset, just headers. Recommend not including it in the
+ 		manual source at all.
+ 
+ 	* makeinfo/node.c (write_tag_table_internal): set
+  		in_fixed_width_font while constructing this so --- doesn't
+  		collapse to --, etc.  Bug report from Sergio.
+ 
+ 	* dir-example: Add a2ps stuff.
+ 
+ 	* info/session.c: Allow any character in search string.
+ 
+ 	* info/infodoc.c (describe_key): don't assume non-latin1
+  		characters are undefined.
+ 
+ 	* info/infomap.c (initialize_info_keymaps): make all characters
+ 		insertable by default in echo area.  From Eli.
+ 
+ 	* Installed these changes:
+ 
+   Wed Feb 23 22:00:00 1999  Karl Heinz Marbaise <kama@hippo.fido.de>
+ 
+       * makeinfo/sectioning.{c,h}:
+ 	      - added to hold complete handling of sectioning
+ 		a little step towards modularization ;-)
+ 
+       * makeinfo/cmds.c:
+ 	      - sectioning_alist moved to sectioning.c and
+ 		added information about enumerated chapter,
+ 		section ..., appendix or not. Everything
+ 		which has any relationship with sectioning
+ 		moved to sectioning.{c,h} I hope I have found
+ 		all.
+ 
+       * makeinfo/toc.{c,h}:
+ 	      - added for complete handling of "table of contents"
+ 		"short contents". Better ASCII only support
+ 		(--no-headers) so no Text "Menu" is printed.
+ 		May be we can do more.
+ 
+       * makeinfo/makeinfo.{c,h}:
+ 	      - added new command line switch --number to enumerate
+ 		chapter, sections etc.
+ 
+       * doc/texinfo.txi:
+ 	      - --number option documented.
+ 
+   1999-02-28  Yoshiki Hayashi  <g740685@komaba.ecc.u-tokyo.ac.jp>
+ 
+ 	  * makeinfo/insertion.c (in_paragraph): New variable.
+ 	  (cm_item): Add </p> only if <p> is open.
+ 	  * makeinfo/makeinfo.c (handle_menu_entry): Ditto.
+ 
+ 	  * makeinfo/insertion.c (begin_insertion),
+ 	  * makeinfo/makeinfo.c (handle_menu_entry): If commentary
+ 	  precedes first menu item, put them outside of <ul>.
+ 	  Put <p> and </p> correctly.
+ 
+   1999-02-27  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	  * info/info.c (info_short_help): Document --show-options and
+ 	  --usage.
+ 
+   1999-02-26  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	  * info/makedoc.c (main) [STRIP_DOT_EXE]: Strip the .exe suffix, so
+ 	  that doc.c says "./makedoc.c", not "./makedoc.exe.c".
+ 
+ 	  * info/info.c (goto_invocation_p): New variable.
+ 	  (long_options): New options --show-options and its alias --usage.
+ 	  (main): Don't update the display until we find the first node to
+ 	  be displayed, to avoid flushing incorrect display.  If user wants
+ 	  to see the command-line options node right away, display whatever
+ 	  info_intuit_options_node finds.
+ 
+ 	  * info/session.c (info_intuit_options_node): New function, uses
+ 	  heuristics to find the node which describes program's invocation.
+ 	  (info_goto_invocation_node): New command, asks for a program's
+ 	  name and displays the invocation node of that program.
+ 	  (entry_in_menu): New function, fuzzily looks for a menu entry in a
+ 	  node's menu.
+ 	  (program_name_from_file_name): New function, suggests a program
+ 	  name given a name of its Info file.
+ 	  (info_search_in_node): Accept an additional argument: a flag to
+ 	  search case-sensitively; all callers changed.  If case-sensitive
+ 	  search is required, don't turn on the case-fold flag in the search
+ 	  binding.
+ 	  (info_search_internal): Accept an additional argument: a flag to
+ 	  search case-sensitively; all callers changed.  Share the last
+ 	  search string between normal and case-sensitive search commands.
+ 	  (info_search_1): New function, with the guts that previously
+ 	  belonged to info_search.  If the search is case-sensitive,
+ 	  mentions that in the prompt for the search string.  If the search
+ 	  string includes upper-case characters, searches case-sensitively.
+ 	  (info_search): Calls info_search_1 with zero case-sensitivity
+ 	  flag.
+ 	  (info_search_case_sensitively): New command, calls info_search_1
+ 	  with non-zero case-sensitivity flag.
+ 	  (incremental_search): If the search
+ 	  string includes upper-case characters, searches case-sensitively.
+ 
+ 	  * info/search.c (search_backward): Fix bug in case-sensitive
+ 	  search.
+ 
+ 	  * info/infomap.c (initialize_info_keymaps): `-' in info window map
+ 	  produces negative arguments.  `S' invokes case-sensitive search.
+ 	  `O' and `I' invoke goto-invocation.
+ 
+ 	  * doc/info-stnd.texi (Invoking Info): Document --show-options.
+ 	  (Node Commands): Document `O', goto-invocation.
+ 	  (Searching Commands): Document `S' and the case-sensitive search
+ 	  when the search string includes upper-case letters.  Document `/'
+ 	  as a synonym for `s'.
+ 	  (Miscellaneous Commands): Document `M--' and `-'.
+ 
+   1999-02-25  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	  * info/info.c (main): Under --index-search, search indices *after*
+ 	  following menus, so that we don't look for an index in DIR.
+ 
+ 
+ Wed Mar  3 17:20:07 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c: Do not output <small> in info mode.
+ 	From: Eli Zaretskii <eliz@is.elta.co.il>.
+ 
+ 	* makeinfo/insertion.c (enum_html): Remove unused var temp.
+ 	From: Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp>
+ 
+ 	* info/infodoc.c: Avoid translation of blank lines.
+ 
+ 	* info/tilde.c,
+ 	* info/man.c,
+ 	* makeinfo/index.c (index_add_arg): avoid use of alloca.
+ 
+ 	* info/echo-area.c: Don't pause for an additional 75 microseconds.
+ 	Noted by Eli.
+ 
+ 	* configure.in: Bump to 3.12f.
+ 
+ 	* doc/texinfo.txi: findex enddots.  From Eli.
+ 
+ 1999-03-01  Yoshiki Hayashi  <g740685@komaba.ecc.u-tokyo.ac.jp>
+ 
+ 	* makeinfo/makeinfo.c (insert_html_tag): Add <p> when
+ 	paragraph is not opened.
+ 	(sectioning_html): Call close_paragraph so that paragraph
+ 	will be started.
+ 
+ 1999-02-26  Akim Demaille  <demaille@inf.enst.fr>
+ 
+         * texi2dvi (get_xref_files): Take $filename_noext as $1.
+         (get_xref_files): Look for $1.idx only, not *.idx.
+         (get_xref_files): Look for $1.cb files (\usepackage{changebar}).
+         * texi2dvi: Look for rerun requests in LOG files in addition to
+         xref files comparison.
+         (bibtex): Remove useless `./' (already added in
+         command_line_filename).
+         (filename_dir): Smarter sed expression that handles file names
+         with no directory part.
+         (txiversion): Removed useless () (`` already guarantee a subshell).
+ 
+ 1999-02-25  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+ 
+ 	* makeinfo/multi.c (find_template_width): Fix operator precedence.
+ 
+ Tue Feb 23 10:35:53 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* dir-example: ccmode not cc-mode.  From hds.
+ 
+ Mon Feb 22 07:34:00 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/lang.c,
+ 	* doc/texinfo.txi: Fix kazakhkh typo.
+ 
+ 1999-02-21  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* djgpp/config.sed: Add pcterm.c to terminal.o dependencies.
+ 
+ 1999-02-21  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+ 
+ 	* makeinfo/lang.c (cm_accent_generic): Emit the accent character
+ 	only once, after the argument.
+ 
+ Sun Feb 21 16:36:14 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (handle_menu_entry): new routine.
+ 	(reader_loop): call it, allowing for comments in menus.
+ 
+ 	* makeinfo/node.c: Rearrange functions to make static, etc.
+ 
+ 	* doc/Makefile.am (EXTRA_DIST, install-tex): Add txi-cs and txi-no.
+ 
+ 1999-02-20  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* util/install-info.c (open_possibly_compressed_file): Output
+ 	explicit message about empty input files.
+ 	(insert_entry_here): Insert multiple entries in alphabetical order.
+ 
+ Fri Feb 19 09:13:28 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (enum_html): new routine.
+ 	(begin_insertion): call it.
+ 	Based on code from: Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp>.
+ 
+ 	* lib/xexit.c (EXIT_FAILURE) [!defined EXIT_SUCCESS && VMS]: weird
+ 		long value.
+ 	From: Lars Hecking <lhecking@nmrc.ucc.ie>
+ 
+ Thu Feb 18 16:42:10 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/node.h (remember_node_reference): decl.
+ 	* makeinfo/makeinfo.c (find_unused_reference): dump unused decl.
+ 
+ 1999-02-18  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/cmds.c (cm_dots, cm_enddots): Don't produce &#133; for
+ 	HTML, as too many browsers don't support it; use "..." in a
+ 	smaller font (with <small>).
+ 	(cm_top): Output the lang= attribute inside <html>.
+ 
+ 	* makeinfo/node.c (cm_node): Output the lang= attribute inside
+ 	<html>.
+ 
+ 	* makeinfo/footnote.c (output_pending_notes): Generate <ol>
+ 	instead of <dl compact>.  Make the text of each footnote start a
+ 	new paragraph.
+ 
+ 1999-02-17  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/insertion.c (cm_item): Remove <dd> when immediately
+ 	followed by a <dt>.  Add a <br> before every <dt>, except if we
+ 	are converting @itemx, or in the first item after <dl>.
+ 	(begin_insertion): Use <dl> for tables, to make it look closer to
+ 	the Info output.  Don't output a newline after a <pre>.
+ 
+ 1999-02-17  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (handle_variable): Don't backup input
+ 	pointer if we hit the end of text (usually, inside
+ 	execute_string).
+ 	* makeinfo/insertion.c (get_item_function): Likewise.
+ 
+ Wed Feb 17 15:09:06 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Better indexing of space entries.
+ 
+ 	* makeinfo/multi.c (find_template_width): new routine to really
+  		parse @multitable {...} templates.
+  	(setup_multitable_parameters): call it.
+ 	Bug report from: Sergio Pokrovskij <pok@nbsp.nsk.su>.
+ 
+ 	* lib/system.h (substring): declare.
+ 
+ 	* lib/Makefile.am (libtxi_a_SOURCES): add substring.c.
+ 
+ 	* makeinfo/defun.c: Move substring to lib.
+ 
+ 	* util/texindex.c (tempcopy): no longer used.
+       	(maketempname): make static.
+ 
+ 	* Installed these changes:
+ 
+ 1999-02-13  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/cmds.c (cm_acronym): New function, makes @acronym
+ 	produce a smaller font size in HTML mode.
+ 	(cm_sc): Produce smaller font size in HTML mode.
+ 
+ 	* makeinfo/footnote.c (cm_footnote): In HTML output, make the
+ 	footnote number be a superscript; remove [] around the link.
+ 
+ 	* makeinfo/cmds.c (cm_var_sc): Separated into two functions:
+ 	cm_var and cm_sc, since @var and @sc have different effects in
+ 	HTML output.
+ 
+ 	* makeinfo/makeinfo.c (cm_xref, cm_inforef): Don't put "[]" around
+ 	HTML links.
+ 
+ 	* info/pcterm.c (DJGPP_keytab): Add translation for Alt-PgUp and
+ 	Alt-PgDn, to support the new M-prior key.
+ 
+ Wed Feb 17 11:50:46 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Don't mention texi2roff so prominently.
+ 
+ 	* makeinfo/makeinfo.c: Pass enclose_expand to remember_brace
+  		rather than enclose_command.  From Eli.
+ 
+ 	* makeinfo/macro.c (cm_alias, cm_definfoenclose): Expand macros in
+ 		first call to get_until_in_line.  From Eli.
+ 
+ 	* info/makedoc.c,
+ 	* info/session.c,
+ 	* info/man.c,
+ 	* info/tilde.c,
+ 	* info/info.c,
+ 	* makeinfo/files.c,
+ 	* makeinfo/multi.c,
+ 	* makeinfo/node.c,
+ 	* makeinfo/makeinfo.c: Use xexit.
+ 	* makeinfo/makeinfo.h (NO_ERROR, FATAL, SYNTAX): remove.
+ 
+ 	* info/terminal.c: Avoid sleep unless on sun-cmd terminal.
+ 
+ 	* lib/xexit.c (EXIT_FAILURE) [!EXIT_FAILURE]: #define to 1 to fix
+ 		Sony NEWS-OS 4.0C lossage.  From Akim.
+ 
+ 	* info/infodoc.c: Translate where is doc string, underline lines
+  		in help.
+ 	From: Trond Endrestol <trond@agamemnon.gtf.ol.no>
+ 
+ 	* makeinfo/cmds.c (cm_dots, cm_enddots): go back to ... and ....,
+ 		&#133; apparently doesn't work widely enough.
+ 
+ Tue Feb 16 07:37:54 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in (ALL_LINGUAS): add de_AT.
+ 
+ 	* util/texi2dvi: Redirect cd output to /dev/null when determining
+  		txiversion.
+ 
+ Mon Feb 15 13:43:37 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/install-info.c,
+ 	* util/texindex.c: Call xexit instead of exit.
+ 
+ 	* lib/system.h (xexit): Declare.
+ 
+ 	* lib/Makefile.am (libtxi_a_SOURCES): Add xexit.c.
+ 
+ 	* doc/texinfo.txi: Document that @documentencoding is used in the
+  		HTML output.
+ 
+ 	* makeinfo/cmds.c (cm_top): use document_encoding if set.
+ 	(command_table): call cm_documentencoding instead of no-op.
+ 	* makeinfo/lang.c (document_encoding, cm_documentencoding): define.
+ 	* makeinfo/lang.h (document_encoding, cm_documentencoding): declare.
+ 
+ 	* makeinfo/insertion.c: Restore </p> before <li>.
+ 
+ 	* util/texi2dvi: If texinfo.tex version is too low for macros, use
+  		makeinfo.
+ 
+ 	* makeinfo/cmds.c (cm_center): save and restore value of
+ 	       indented_fill, otherwise @center within an @enumerate (say)
+ 	       also closes the indentation.
+ 	Bug from: Sergio Pokrovskij <pok@nbsp.nsk.su>.
+ 
+ Sun Feb 14 15:25:02 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: Doc fix.
+ 
+ 	* doc/texinfo.txi: Be enthusiastic if people want to implement
+ 		more output formats, but use makeinfo to do the job.
+ 
+ 	* makeinfo/index.c (index_element_compare): Use strcoll if it's
+  		available.
+ 	* configure.in: Call AC_FUNC_STRCOLL.
+ 	* makeinfo/makeinfo.c (main): Use LC_CTYPE and LC_COLLATE
+  		categories.  Suggestion from Oleg.
+ 
+ 	* lib/system.h (setlocale) [!HAVE_SETLOCALE]: #define away.
+ 	Suggestion from Akim.
+ 
+ 	* doc/texinfo.txi: Document @paragraphindent working in TeX now.
+ 
+ 	* doc/texinfo.txi,
+ 	* makeinfo/lang.c,
+ 	* makeinfo/lang.h (language_code_type): abbrev changes from Oleg.
+ 
+ 	* makeinfo/cmds.c,
+ 	* makeinfo/node.c: Only translate `Next:', `Previous:', and `Up:',
+  		not the whole href.  From Eli.
+ 
+ 	* doc/texinfo.txi: Document that only unsplit html output is
+  		supported in this release.
+ 
+ Sat Feb 13 17:55:30 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in: Check for termlib before termcap for sake of
+  		Solaris (judging from less-332 configure.in) and maybe
+  		HP-UX 11.
+ 
+ 	* doc/texinfo.txi (Footnote commands): incoherency reported by Aharon.
+ 	Language vs country fixes from Oleg.
+ 
+ 1999-02-13  Karl Eichwalder  <ke@gnu.franken.de>
+ 
+ 	* makeinfo/node.c (cm_node): Tag navigation links as translatable.
+ 	* makeinfo/cmds.c (cm_top): Ditto.
+ 
+ Wed Feb 10 22:00:00 1999  Karl Heinz Marbaise <kama@hippo.fido.de>
+ 
+     * makeinfo/defun.h:
+             - new because we need get_base_type-function
+               accessible in insertion.c
+ 
+     * makeinfo/defun.c:
+             - complete HTML handling of the @def... things.
+ 
+     * makeinfo/Makefile.am:
+             - defun.h added as part of makeinfo.
+ 
+     * makeinfo/makeinfo.c:
+             - define looking_at moved into header-file, because
+               we need it in defun.c
+ 
+     * makeinfo/insertion.c:
+             - some minor changes made to support the @def...
+               things in HTML.
+ 
+     * makeinfo/lang.c: (cm_accent_generic)
+             - bug fixed. Using umlaut (accent ...)
+               would produce &A only if an umlaut follows
+               an empty line.
+             - bug fixed. Because things like &tilde; &grave;
+               and &circ; do not exist as standalone characters
+               in HTML.
+             - cm_special_char now produce correct HTML for
+               @O{} and @o{}.
+             - warning using _("Text") instead "Text" (gettext).
+ 
+     * makeinfo/cmds.c:
+             - @url fixed. Display the given Text.
+ 
+     * doc/texinfo.txi:
+             - corrected the references for @uref, because
+               they were given as "url" instead of "uref".
+               @uref has three arguments, so show them in
+               command list.
+ 
+ Wed Feb 10 17:27:58 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Rewrite for overfull box.
+ 
+ Tue Feb  9 19:03:16 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Document more HTML output stuff.  Based on esr
+  		changes.
+ 	* makeinfo/macro.c,
+ 	* makeinfo/macro.h,
+ 	* makeinfo/makeinfo.c: Do alias and definfoenclose expansion.
+   		From esr.
+ 
+ Mon Feb  8 14:41:07 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/cmds.c: New commands @alias and @definfoenclose.
+ 	From: "Eric S. Raymond" <esr@snark.thyrsus.com>.
+ 
+ 	* doc/texinfo.txi: Document @documentlanguage and
+  		@documentencoding.
+ 
+ 	* makeinfo/cmds.c: Move accent support to lang.c.
+ 
+ 	* makeinfo/makeinfo.c (add_char): add &nbsp; rather than an 8-bit
+  		char for html.
+ 
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): add lang.[ch].
+ 
+ 	* doc/texinfo.txi: Be even more emphatic that @url is not
+ 		typically what you want.
+ 	* doc/texinfo.txi: Document that macro calls must use empty
+  		braces.
+ 
+ 	* info/session.c: Do not translate node pointers.  From Karl E.
+ 
+ 	* makeinfo/cmds.c (cm_dfn): Use <dfn>.  Suggestion from Eli.
+ 
+ Sun Feb  7 07:00:08 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: Make --html imply --no-split.
+ 
+ 	* makeinfo/cmds.c (cm_top): don't core dump if the top node has no
+  		next.
+ 
+ 	* makeinfo/makeinfo.c (replace_with_expansion): compare length
+ 		after expansion with length of full input text before
+ 		expansion, not just the length of the expanded text.
+                 Bug (contents2) reported by kama.
+ 
+ 	* info/infodoc.c (create_internal_info_help_node): gettext calls
+ 		to help msg strings. From Ulrich.
+ 
+ Fri Feb  5 17:35:13 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: set makeinfo= for latex case.
+ 
+ 	* doc/texinfo.txi (@deftp summary): ref Data Types node that
+ 		actually describes it.  From kama.
+ 
+ Thu Feb  4 07:39:10 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: Take it back.  Emacs info needs that text
+  		before the CTRL-_.
+ 	* makeinfo/makeinfo.c: Don't bother to output the header (This is
+  		-, produced ...) to stdout.
+ 
+ 	* doc/texinfo.txi (Other Info Directories): Mention that dir files
+  		must be named dir.
+ 
+ 	* makeinfo/makeinfo.c (cm_uref): implement optional third
+  		argument.
+ 	* doc/texinfo.txi (uref): document it.
+ 	Suggestion from: Charles Karney <karney@pppl.gov>
+ 
+ 	* doc/Makefile.am (info_TEXINFOS): put texinfo.txi first so
+ 		UPDATED reflects its modtime, rather than info-stnd's.
+ 
+ 	* makeinfo/files.c (full_pathname) [!WIN32]: #endif in wrong place.
+ 	From: Yoshiki Hayashi <g740685@komaba.ecc.u-tokyo.ac.jp>
+ 
+ 	* makeinfo/cmds.c (cm_url): Remove URL: from output.  It's ugly.
+ 
+ Wed Feb  3 16:05:03 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infodoc.c: Doc fix, zero not oh.
+ 
+ 	* makeinfo/makeinfo.c (add_char): don't ignore if
+ 		only_macro_expansion, even in no_headers case.
+ 		Otherwise menu items don't get remembered and defaulting
+ 		doesn't work.  Macros suck!
+ 
+ 	* util/texi2dvi (common): include orig_pwd.
+ 	(language): reguess for each file if not explicitly set.
+ 
+ Tue Feb  2 16:22:32 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in: Bump to 3.12d now.
+ 
+ Mon Feb  1 14:46:45 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c (cm_item): For itemize and enumerate, do
+ 		</p> before the <li> for html. Bug from Eli.
+ 
+ 	* makeinfo/index.c: Installed change in index.c:
+ 	Mon Dec 28 12:50:14 1998  Matthew Fredette  <fredette@mit.edu>
+ 		* makeinfo.c (index_add_arg): Use xstrdup on input_filename
+ 		when saving it in the new index entry.
+ 
+ 	* util/texi2dvi: cd / before cd $orig_pwd in case of DOS drive
+  		change.
+ 
+ Sun Jan 31 16:39:01 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: Used sed to expand only the @{if,}tex parts of
+ 	the source since makeinfo's conditional options aren't ready yet
+ 		(from Akim).
+ 	Also use ${1+"$@"} for Digital Unix "$@" expansion bug (from Noah).
+ 
+ 	* util/install-info.c: Doc fix from Eli.
+ 
+ 	* doc/texinfo.txi: Oops, said we looked for .png twice.
+ 
+ Sat Jan 30 17:18:14 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/session.c (forward_move_node_structure): remove tangled
+ 	code to merely print words instead of numbers; too hard to translate.
+ 
+ 	* info/session.c: Missing _'s for more i18n.  From Trond.
+ 
+ 	* doc/Makefile.am (EXTRA_DIST): Include txi-no.tex from Trond.
+ 
+ Sun Jan 24 09:28:12 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* Makefile.am (EXTRA_DIST): Use djgpp by itself instead of listing
+ 		each file separately (new feature in automake 1.4).
+ 
+ 	* makeinfo/insertion.c (begin_insertion): for quotation, always
+ 		increment current_indent even if html output, why not.
+ 		(Otherwise must not decrement current_indent in end_insertion.)
+ 
+ 	* doc/texinfo.txi: More overfull box fixes.
+ 
+ 	* makeinfo/insertion.c: Add some assertions and the beginnings of
+  		handling @tex.
+ 
+ 	* doc/texinfo.txi: Fix overfull boxes, but tables of contents at
+  		the front.
+ 
+ 	* util/texi2dvi: Can't pass --no-ifinfo --iftex to makeinfo yet,
+  		it's not ready.
+ 
+ Sat Jan 23 10:22:16 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: Pass --no-ifinfo --iftex to makeinfo.
+ 
+ Fri Jan 22 19:09:49 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Include version.texi before @settitle so
+  		@value{VERSION} gets expanded in the html title.  From kama.
+ 
+ 	* These patches from Tim Singletary <talon@clark.net>.
+ 	* makeinfo/makeinfo.c: Simplify and improve html menus.
+ 	* makeinfo/insertion.c (begin_insertion): simplify html menu case
+  		and set had_menu_commentary.
+ 	* makeinfo/insertion.h (had_menu_commentary): declare new global.
+ 	* makeinfo/node.h (glean_node_from_menu): declare.
+ 	* makeinfo/node.c (glean_node_from_menu): new arg to specify what
+  		type of reference to remember as.
+ 
+ 	Date: Sun, 29 Nov 1998 09:21:01 -0500 (EST)
+ 	From: Tim Singletary <tsingle@talon.clark.net>
+ 	To: texinfo-pretest@tug.org
+ 	Subject: explanation of previous patches
+ 
+ 	> These diffs introduce some non-trivial changes into very
+ 	> sensitive parts of makeinfo, and it is hard to judge them without
+ 	> knowing what exactly do they solve.
+ 
+ 	At a high level, these patches fix (or at least significantly improve)
+ 	the html conversion of menus.  Specifically, they fix bugs in the
+ 	conversion of menu commentary and detailmenu entries.
+ 
+ 	The menu commentary fixes require some justification:  The unpatched
+ 	makeinfo attempts, with many bugs, to place menu commentary outside
+ 	the <menu> by adding </ul> and <ul> tags.  While I understand the
+ 	motivation for this, that there might be browsers that don't support
+ 	<p> within <menu>, I'm not aware of any such browser and don't see any
+ 	compelling reason to continue the </ul> kludge.
+ 
+ 	Certainly
+ 			<menu>
+ 			<li>First paragraph.
+ 			 <p>Second paragraph.
+ 			<li>Second item.
+ 			</menu>
+ 	is valid html!
+ 
+ 	Anyway, here's what my patches do:
+ 
+ 	1) Deleted the `<h4>Menu</h4>' at the beginning of each menu.  Using
+ 	   `<h4>' is wrong since menus don't usually come after an `h3'
+ 	   header.  `<b>' looks the same on most browsers, but my opinion is
+ 	   that there's no need for any header at all!
+ 
+ 	2) Deleted the `<li>' kludge at the begining of each menu.  It's no
+ 	   longer needed since I'm deleting the </ul> kludge.
+ 
+ 	3) Replace `in_menu_para', declared static in makeinfo.c:add_char()
+ 	   with `had_menu_commentary', declared globally.  Modified
+ 	   insertion.c:begin_insertion() to initialize had_menu_commentary to
+ 	   1 when beginning a menu.  Now there's enough state information for
+ 	   menu commentary to be processed within <menu> ... </menu>; the
+ 	   commentary can be seperated from the rest of the menu by bracketing
+ 	   it between <p>'s.
+ 
+ 	   Note that the first patch had a bug initializing
+ 	   had_menu_commentary; the second patch fixes this bug.
+ 
+ 	4) Changed the semantics of the argument to
+ 	   node.c:glean_node_from_menu().  Previously, glean_node_from_menu()
+ 	   only called remember_node_reference() when the argument was
+ 	   non-zero.  But add_char() didn't call `glean_node_from_menu(1)'
+ 	   when processing detailmenu entries.  In other words, detailmenu
+ 	   entries didn't get registered as references, which lead to the html
+ 	   conversion of detailmenu entries not producing proper hrefs!
+ 
+ 	   The new semantics are that glean_node_from_menu always calls
+ 	   remember_node_reference(), but calls it with `menu_reference' when
+ 	   the first arg to glean_node_from_menu() is 1 and with
+ 	   `followed_reference' otherwise.  Now, detailmenu entries get
+ 	   registered as `followed_reference' (normal menu entries still get
+ 	   registered as `menu_reference') and the html conversion produces
+ 	   proper hrefs.
+ 
+ 	5) The above changes made it possible to streamline the section of
+ 	   add_char() that deals with html menu text.
+ 
+ 	6) In an otherwise unrelated change, rewrote a section of
+ 	   glean_node_from_menu to no longer use `goto save_node;'.
+ 
+ 
+ Thu Jan 21 12:55:42 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: OK, let's try restoring the @include
+  		version.texi with the new automake.
+ 
+ 	* makeinfo/cmds.c: Improve HTML @pounds, @bullet, etc.
+ 
+ 	* doc/Makefile.am (install-tex): new target.
+ 	(EXTRA_DIST): Include txi-??.tex.
+ 	txi-de.tex: new file from kama.
+ 
+ 	* Makefile.am (AUTOMAKE_OPTIONS): Bump to 1.4.
+ 	(install-tex): new target.
+ 
+ 	* util/texi2dvi: Restore "$@" for explicitness in main loop.
+ 
+ 	* doc/Makefile.am (*.1) [TEXINFO_MAINT]: Conditionalize.
+ 
+ 	* configure.in (AC_PREREQ): Bump to 2.13.
+ 	(TEXINFO_MAINT): Define this AM_CONDITIONAL.
+ 
+ 	* doc/texinfo.txi: Document that the HTML output name is derived
+  		from @setfilename.
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): Use @setfilename
+ 		for basename of html output.
+ 
+ 	* doc/texinfo.txi (url): Use example.org for the example.
+ 
+ 	* makeinfo/cmds.c (cm_url): @url should not produce a link, sorry
+  		to say.
+ 
+ Wed Jan 20 16:31:55 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texindex.c,
+ 	* util/install-info.c,
+ 	* makeinfo/makeinfo.c,
+ 	* info/info.c: It's 1999.
+ 
+ 	* doc/info.texi (Advanced info commands): Fix typos from Gildea.
+ 
+ 	* makeinfo/makeinfo.c (end_of_sentence_p): don't check negative
+ 		array offset.
+ 	From: Enrico Scholz <enrico.scholz@wirtschaft.tu-chemnitz.de>
+ 
+ Sun Jan 17 16:42:16 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: Restore --batch, handle changing escape character
+ 		more cleanly.  From Akim (as always).
+ 
+ Thu Jan 14 16:47:41 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in (ALL_LINGUAS): Add no.
+ 	From: Trond Endrestol <trond@agamemnon.gtf.ol.no>
+ 
+ 	* util/texi2dvi: Doc fix from Akim and do not always exit 1 from trap.
+ 	And it's 1999.
+ 
+ 	* doc/texinfo.txi (image): Document imagename.pdf.
+ 
+ 	* Apply this change from Eli:
+ 
+   1998-11-20  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	  * makeinfo/makeinfo.h (meta_char_pos): New variable.
+ 	  * makeinfo/makeinfo.c (init_paragraph): Initialize it.
+ 	  (add_char): Use META to create a non-breakable space character.
+ 	  (add_meta_char): New function.
+ 	  (end_of_sentence_p): Don't handle characters at meta_char_pos as
+ 	  normal sentence enders.
+ 	  (flush_output): Only unMETA the non-breaking space character.
+ 	  Reset meta_char_pos to zero.
+ 	  (do_flush_right_indentation): Call adjust_braces_following.
+ 	  (indent): Likewise.
+ 	  (cm_value): Save and restore the value of meta_char_pos.
+ 	  (expansion): Likewise.
+ 	  * makeinfo/macro.c (me_execute_string_keep_state): Save and
+ 	  restore the value of meta_char_pos.
+ 	  * makeinfo/node.c (cm_node): Save and restore the value of
+ 	  meta_char_pos.
+ 	  * makeinfo/cmds.c (cm_accent): Make the dot we add due to
+ 	  @dotaccent be a meta-character.
+ 	  (cm_code, cm_dfn): Call add_meta_char to insert the closing
+ 	  quote.
+ 	  (cm_cite): Call add_char instead of add_word.
+ 
+ Thu Jan  7 18:04:26 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: Handle pdf files more cleanly.  From Akim.
+ 
+ Wed Jan  6 17:49:11 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): Check for .png also.
+ 
+ Sun Dec 20 07:54:47 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* util/texi2dvi: Add --pdf.
+ 
+ 	* util/texi2dvi: New option -@ to use @input and @nonstopmode, in
+ 		case texinfo is preloaded.
+ 	From: Khimenko Victor <khim@sch57.msk.ru>
+ 	Date: Sun, 20 Dec 1998 02:04:12 +0300 (EET)
+ 
+ Sat Dec 19 17:37:37 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi (Multitable Column Widths): leading zero ok for
+  		@columnfractions.
+ 
+ 	* util/texi2dvi: New version from Akim, plus --quiet is like
+  		--batch, etc.
+ 
+ Fri Dec 18 17:22:44 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Document that the Texinfo source can't be
+ 	arbitrarily ordered (for print) even if all pointers are supplied.
+ 
+ 	* makeinfo/insertion.c (end_insertion): In itemize case,
+ 		close_insertion_paragraph so @end itemize cause a line break.
+         Report from: Sergei Pokrovsky <pok@nbsp.nsk.su>
+         Date: Sun, 22 Nov 1998 19:45:21 +0700 (GMT)
+ 
+ Tue Dec 15 16:21:51 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: More fixes from Oleg.
+ 
+ 	* configure.in: Bump version to 3.12c for next pretest.
+ 
+ 	* util/install-info.c (open_possibly_compressed_file)
+ 		[STRIP_DOT_EXE]: logic for compression_program assignment
+ 		was reversed.
+ 	From: wlestes@wlestes.uncg.edu
+ 
+ Sat Dec 12 18:02:48 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* Merged these changes from Andreas:
+ 
+ 1998-12-06  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+ 
+ 	* makeinfo/node.c (cm_node): When searching for @menu don't
+ 	require a space after it.
+ 
+ 1998-12-06  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+ 
+ 	* makeinfo/cmds.c (cm_top): free top_name only after done using it.
+ 
+ Sat Dec 12 15:40:13 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Various typos and fixes from Oleg.
+ 
+ 	* doc/texinfo.txi: Move @node's outside of @ifinfo for the sake of
+  		HTML processing.
+ 
+ 	* doc/texinfo.txi (titlepage): @pxref was not in parens.  From Oleg.
+ 
+ Sun Dec  6 16:49:09 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* dir-example: Amd is now am-utils.
+ 
+ 	* doc/Makefile.am: Reinstate help2man invocations for development.
+ 
+ 	* doc/texinfo.txi: Document @set...contentsaftertitlepage (from kama).
+ 	Fix incorrect sense for @image and Hungariam typo (from Oleg).
+ 
+ 	* lib/system.h: #include libintl.h here instead of acconfig.h, so
+ 		the system include files have a chance to #define NULL
+ 		before it does.
+ 	* acconfig.h: Remove libintl.h and #defines from here.
+ 	From: "Philippe De Muyter" <phdm@macqel.be>
+ 	Date: Fri, 4 Dec 1998 00:56:25 +0100 (CET)
+ 
+ 	* info/signals.c: Start #ifdef's in column one for cc on sysv68
+ 		(m68k-motorola-sysv).
+ 	From: "Philippe De Muyter" <phdm@macqel.be>
+ 	Date: Fri, 4 Dec 1998 00:56:25 +0100 (CET)
+ 
+ 	* info/filesys.c (is_dir_name): use strcpy instead of automatic
+ 		array initialization.
+ 	From: "Philippe De Muyter" <phdm@macqel.be>
+ 	Date: Fri, 4 Dec 1998 00:56:25 +0100 (CET)
+ 
+ 	* configure.in (ALL_LINGUAS): add ru.
+ 
+ Fri Dec  4 08:12:11 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/infodoc.c: Gettextize the help buffer string.
+ 
+ Sun Nov 29 17:12:35 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Use @ifnottex rather than @ifinfo for @top.
+ 	(makeinfo top): document this.
+ 
+ 	* doc/info-stnd.texi,
+ 	* doc/info.texi: Use @ifnottex rather than @ifinfo for @top.
+ 
+ 	* makeinfo/insertion.c (cm_menu): Implicitly insert @top command
+         so we can construct the node tree as usual when we see @menu
+  	before @node.  Probably this is when the input uses
+  	@ifinfo instead of @ifnottex, as virtually all existing
+  	manuals do.
+ 
+ 	* makeinfo/insertion.c (discard_insertions): Let any conditional
+ 	cross node boundary.  (So the @top node can be wrapped
+ 	in @ifnottex, for example.)
+ 
+ 	* Installed these:
+ 
+ 1998-11-21  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (expansion): Save and restore
+ 	last_inserted_character and last_char_was_newline.
+ 
+ 	* makeinfo/cmds.c (cm_dircategory): Kill any indentation before
+ 	INFO-DIR-SECTION.  install-info relies on this.
+ 
+ 1998-11-20  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/multi.c (struct env): Add meta_char_pos member.
+ 	(select_output_environment): Save and restore meta_char_pos.
+ 	(out_char): Output characters by switching environment to #0 and
+ 	calling insert.  Call flush_output when a newline is output.
+ 	(output_multitable_row): Update the current environment's
+ 	output_paragraph_offset as well, after removing trailing
+ 	whitespace.  Fix typo in loop index.
+ 	(do_multitable): Call close_single_paragraph.
+ 	(end_multitable): Call close_insertion_paragraph.  Don't output
+ 	an extra newline.
+ 
+ 1998-11-20  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.h (meta_char_pos): New variable.
+ 	* makeinfo/makeinfo.c (init_paragraph): Initialize it.
+ 	(add_char): Use META to create a non-breakable space character.
+ 	(add_meta_char): New function.
+ 	(end_of_sentence_p): Don't handle characters at meta_char_pos as
+ 	normal sentence enders.
+ 	(flush_output): Only unMETA the non-breaking space character.
+ 	Reset meta_char_pos to zero.
+ 	(do_flush_right_indentation): Call adjust_braces_following.
+ 	(indent): Likewise.
+ 	(cm_value): Save and restore the value of meta_char_pos.
+ 	(expansion): Likewise.
+ 	* makeinfo/macro.c (me_execute_string_keep_state): Save and
+ 	restore the value of meta_char_pos.
+ 	* makeinfo/node.c (cm_node): Save and restore the value of
+ 	meta_char_pos.
+ 	* makeinfo/cmds.c (cm_accent): Make the dot we add due to
+ 	@dotaccent be a meta-character.
+ 	(cm_code, cm_dfn): Call add_meta_char to insert the closing
+ 	quote.
+ 	(cm_cite): Call add_char instead of add_word.
+ 
+ Sun Nov 29 16:30:06 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* info/info.h,
+ 	* info/footnotes.h (FOOTNOTE_LABEL),
+ 	* info/indices.c (APROPOS_NONE): Use N_ rather than _.
+ 
+ 	* info/infodoc.c (create_internal_info_help_node,
+ 	function_documentation): Do not translate the empty string.
+ 	Date: Fri, 25 Sep 1998 15:09:42 +0400
+ 	From: "Oleg S. Tihonov" <tihonov@ffke-campus.mipt.ru>
+ 
+ 	* doc/info-stnd.texi: Mention PRIOR as another alias for
+  		PREVIOUS/PageUp.
+ 
+ 	* doc/texinfo.txi: @emph produces _emph_ not *emph*.  Spurious
+ 		junk before makeinfo bison example.
+ 	From: tihonov@ffke-campus.mipt.ru.
+ 
+ 1998-11-16  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/defun.c (defun_internal): Don't expand the arguments to
+ 	@defun and its ilk.
+ 
+ 	* makeinfo/makeinfo.c (expansion): Copy the name of the currently-
+ 	executing command and restore it after expansion.
+ 
+ Sun Nov 15 17:40:51 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: Rearrange usage, allow -v for verbose, only
+ 		output `Making' line when verbose.
+ 	* makeinfo/makeinfo.h (process_html, process_info, process_tex):
+  		declare.
+ 	* makeinfo/cmds.c: Use conditional commands.
+ 	* makeinfo/insertion.c (find_type_from_name): Handle rawhtml and
+  		rawtex.
+ 	(conditional commands): Allow individual switching on and off.
+ 
+ 	* makeinfo/insertion.h: Declare conditionals.
+ 
+ 1998-11-14  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/insertion.c (begin_insertion, end_insertion): Use <pre>
+ 	to convert @display and @smalldisplay into HTML.
+ 
+ 	* makeinfo/cmds.c (cm_asterisk): Don't insert an extra newline in
+ 	HTML mode, since input includes a newline right after the @*.
+ 	(cm_sp): Output "<br><p>\n" as many times as the argument says.
+ 	(cm_url): Don't include "<a href=" in the anchor text in HTML
+ 	output.
+ 
+ 	* makeinfo/makeinfo.c (cm_pxref): Don't add a period after @pxref
+ 	if in HTML mode.
+ 	(get_rest_of_line): Accept an additional argument EXPAND, and
+ 	expand the rest of line if it's non-zero.  All callers changed.
+ 	(close_paragraph): When in HTML mode, honor the formatting of the
+ 	source paragraphs by generating "<p>" for every closed paragraph;
+ 	follow it by as many "<p>"'s as paragraph_spacing specifies.
+ 
+ Sat Nov 14 17:38:27 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/insertion.c: Use <ul compact> instead of deprecated <menu>.
+ 	Omit extra <li> after the menu beginning.
+ 
+ 	* makeinfo/index.c: Use <ul compact> instead of deprecated <menu>.
+ 
+ Thu Nov 12 16:33:09 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* Makefile.am (EXTRA_DIST): add djgpp/config.sed.
+ 
+ 	* info/terminal.c: #include <sys/ioctl.h> to define TIOCGWINSZ
+  		under LynxOS.  From: Marius Groeger <mag@sysgo.de>.
+ 
+ 1998-11-06  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+ 
+ 	* makeinfo/insertion.c (begin_insertion): Correctly handle
+ 	ifnottex and ifnothtml.
+ 	(end_insertion): Likewise.
+ 
+ Sun Nov  8 17:30:23 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/index.c,
+ 	* makeinfo/insertion.c: Menu is special to Info.
+ 	* makeinfo/node.c: Top is a special name, don't translate it.
+ 	* info/session.c (info_top_node): Top is a special name, don't
+ 		translate it.
+ 	From: "Oleg S. Tihonov" <tihonov@ffke-campus.mipt.ru>.
+ 
+ Fri Nov  6 17:18:43 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in: Version 3.12b.
+ 
+ 	* util/texi2dvi: Fixes from Eli and Christoph Martin.
+ 
+ 	Mon Oct  5 13:58:53 1998  Dave Glowacki  <dglo@ssec.wisc.edu>
+ 	* util/install-info.c: Fix off-by-one error in findlines()
+ 
+ 	* util/texindex.c (usage): avoid trigraph until Ulrich fixes
+  		po2tbl.sed.in.  From Paul Eggert.
+ 
+ 1998-11-03  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): Don't bypass the test that an
+ 	xref ends with a period or a comma if the reference has a single
+ 	argument.
+ 
+ 1998-10-31  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/insertion.c (end_insertion): Don't decrement
+ 	in_fixed_width_font when leaving a menu, the previous value is
+ 	restored by pop_insertion.
+ 
+ 	* makeinfo/makeinfo.c (add_char): Don't increment output_column
+ 	twice when a newline is inserted into the output.
+ 
+ 	* doc/texinfo.txi (emph & strong): Document the use of underscores
+ 	for @emph in the Info output.
+ 
+ 1998-10-30  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* djgpp/config.bat: Make sure intl/po2tblsed.in exists before we
+ 	begin the configure boogie.
+ 	* djgpp/config.sed: Sed script, to be run by config.bat.
+ 
+ 	* doc/info-stnd.texi (Node Commands): Document the new G command.
+ 
+ 	* info/session.c (info_follow_menus): Step over a possible leading
+ 	space in a menu entry in menus[].
+ 	(split_list_of_nodenames): Renamed from split_words.  Split the
+ 	string on commas, not on spaces, since a menu entry can have
+ 	embedded whitespace.  Get past the null byte after inserting it.
+ 	(info_menu_sequence): Don't crash if there's no DIR node; try
+ 	using Top of the current Info file, and if that doesn't work
+ 	either, throw an error.
+ 
+ 	* util/texi2dvi: Use $path_sep in TEXINPUTS.  Don't include any
+ 	dots in $tmpdir, 8+3 filesystems won't like that.
+ 
+ 	* makeinfo/makeinfo.c (reader_loop): Expand any macros in a menu
+ 	entry when creating a <menu> item for HTML.  Fix an off-by-one
+ 	error in counting input lines.
+ 
+ 	* makeinfo/files.c (expand_filename): Don't treat .foo/bar as
+ 	absolute file name.
+ 
+ 	* makeinfo/makeinfo.c (add_char): Use strncpy instead of memcpy,
+ 	since the buffers overlap.  If the line being refilled includes
+ 	nothing but the indentation and the word being added, do NOT add
+ 	an extra newline.
+ 
+ 	* util/install-info.c (strip_info_suffix, menu_item_equal,
+ 	open_possibly_compressed_file) [__MSDOS__]: Allow .inz and .igz as
+ 	suffuxes for compressed files.
+ 	(open_possibly_compressed_file): Return an indication whether we
+ 	opened a file or a pipe.  Use FOPEN_RBIN from system.h.
+ 	[STRIP_DOT_EXE]: Use gzip.exe with an explicit .exe extension.
+ 	[O_BINARY]: If the file is not compressed, switch its stream to
+ 	text mode.
+ 	(readfile): Close the file or the pipe.
+ 	(output_dirfile): Call pclose to actually run the compressor.
+ 
+ Thu Nov  5 08:33:06 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: effect -> affect
+ 	From: Eric Hanchrow <offby1@blarg.net>
+ 
+ Tue Nov  3 14:26:59 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): Allocate enough space for the
+  		zero byte.
+ 
+ 	* doc/texinfo.txi: Document epsf.tex standard location.
+ 
+ Tue Oct 27 10:45:47 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* Makefile.am (TEXINFO_TEX): add definition.
+ 
+ 	* doc/info-stnd.texi: Avoid unnecessary overfull boxes from
+  		examples.
+ 
+ 	* doc/Makefile.am (install-data-local): missing ".
+ 
+ 	* doc/Makefile.am: Don't try to run help2man in distribution.
+ 
+ Mon Oct 26 13:43:53 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* configure.in (TEXMF): lose this whole block.  It is too painful
+ 		to maintain with the different tex installations out there.
+ 
+ 	* util/Makefile.am (EXTRA_DIST): update-info renamed to
+  		fix-info-dir.
+ 
+ 	* makeinfo/footnote.h: Doc fix.
+ 
+ 	* makeinfo/multi.c: #include "insertion.h"
+ 	* makeinfo/cmds.c: #include "node.h"
+ 	* makeinfo/makeinfo.h,
+ 	* makeinfo/makeinfo.c: Move globals, functions for insertions and
+  		nodes.
+ 	* makeinfo/defun.c: #include "insertion.h"
+ 	* makeinfo/Makefile.am: Add insertion.[ch], node.[ch].
+ 	* node.[ch], insertion.[ch]: New files.
+ 
+ 	* makeinfo/makeinfo.c,
+ 	* makeinfo/makeinfo.h: Move globals for cmds.h.
+ 	* makeinfo/index.h: Include cmds.h.
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): Add cmds.h, cmds.c.
+ 	* cmds.c, cmds.h: New files.
+ 
+ Sat Oct 24 17:28:14 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c,
+ 	* makeinfo/makeinfo.h: Globals for files.c.
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): add files.[ch].
+ 
+ Tue Oct 20 17:03:10 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): add macro.c and
+  		macro.h.
+ 	* makeinfo/makeinfo.c: Move macro code to macro.h and macro.c.
+ 	* makeinfo/makeinfo.h: Move macro stuff to macro.h, expose global
+ 		last_char_was_newline for macro.c.
+ 	* makeinfo/index.c,
+ 	* makeinfo/footnote.c: #include macro.h.
+ 
+ Wed Oct  7 16:24:07 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/info-stnd.texi: For now don't include version.texi due to
+  		automake error.
+ 
+ 	* makeinfo/index.h: #include makeinfo.h for sake of COMMAND type.
+ 	* makeinfo/index.c: No need to include makeinfo.h, index.h does
+  		now.
+ 
+ 	* makeinfo/makeinfo.c: Move footnote code to footnote.c.
+ 	* makeinfo/makeinfo.h: Globals for footnote.c.
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): add footnote.[ch].
+ 
+ 	* makeinfo/makeinfo.c: Move defun code to defun.c, necessary
+  		global to makeinfo.h.
+ 	* makeinfo/makeinfo.h (default_indentation_increment): move here
+  		for defun.c.
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): add defun.c.
+ 
+ 	* Makefile.am: Doc fix.
+ 
+ 	* configure.in (AC_OUTPUT): generate makeinfo/tests/Makefile.
+ 
+ 	* makeinfo/makeinfo.c,
+ 	* makeinfo/makeinfo.h,
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): add index.[ch].
+ 
+ Fri Oct  2 17:42:26 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* lib/system.h (STREQ): new macro.
+ 
+ Thu Oct  1 09:26:57 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* doc/texinfo.txi: Delete spare copy since out of date,
+ 	add makeinfo html to menu,
+ 	detailmenu doesn't take braces in summary.
+ 
+ Wed Sep 30 14:38:21 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* makeinfo/makeinfo.c: Remove != NULL comparisons,
+ 	xmalloc/xrealloc casts, assignments in if statements.
+ 
+ Wed Sep 30 14:16:01 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c: Remove NULL casts and parentheses in return
+  		statements.
+ 
+ 	* makeinfo/makeinfo.c (add_link): Don't add a link if the node is null.
+  	(reader_loop): don't glean_node_from_menu if detailmenu, even if html.
+ 	Various formatting changes.
+ 
+ 	* doc/help2man: Always exit successfully.
+ 
+ 	* makeinfo/Makefile.am (SUBDIRS): add.
+ 	(makeinfo_SOURCES): no more html.h.
+ 
+ Fri Sep 11 18:47:15 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c: Fiddle with html output.
+ 
+ 1998-09-07  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (maybe_update_execution_strings): Only
+ 	reallocate TEXT if the existing storage is too small, otherwise
+ 	leave TEXT alone.
+ 	(replace_with_expansion): Call maybe_update_execution_strings to
+ 	reallocate input_text if we are executing_string, since storage
+ 	for execution_string is assumed to be large enough to hold every
+ 	possible string.
+ 	(me_execute_string): xstrdup the argument, so callees could freely
+ 	relocate it as needed.
+ 
+ 1998-09-06  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (replace_with_expansion): Don't remember
+ 	macro-expansion pointers if we are executing_string.
+ 
+ 1998-09-05  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/filesys.c (info_suffixes): Put the empty suffix last in the
+ 	list, so that `foo.info' is found before `foo', if both exist.
+ 
+ 1998-09-05  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (maybe_update_execution_strings): New
+ 	function, updates an entry in execution_strings[] array after
+ 	input_text is relocated by replace_with_expansion.
+ 	(replace_with_expansion): Call it.
+ 
+ 1998-09-04  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (expand_macro): If a macro is called with
+ 	too many arguments, return NULL and print the line number where
+ 	the call begins.
+ 	(execute_macro): If expand_macro returns NULL, return
+ 	immediately.
+ 
+ Sun Sep  6 19:11:28 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c,
+ 	* makeinfo/makeinfo.h,
+ 	* makeinfo/multi.c: Html output.  Specifically, these changes:
+ 
+     Fri Jul  4 22:58:29 1997  Dave Love  <d.love@dl.ac.uk>
+ 
+ 	     * doc/makeinfo.texi: Document HTML output.
+ 
+ 	     * makeinfo/makeinfo.c: Wrap strings in _() in bits changed for
+ 	     HTML.
+ 	     (cm_image): Generate <img> for HTML.
+ 
+     Sun Jun 22 22:50:07 1997  Dave Love  <d.love@dl.ac.uk>
+ 
+ 	    * makeinfo/makeinfo.c (NAMED_NODE_ANCHORS): New define.
+ 	    (title, outstanding_node, node_number, node_node_references,
+ 	     escape_html, ifinfo_as_html): New variables.
+ 	    (tentry.number, node_ref.number, fn.number): New fields.
+ 	    (CommandTable): Various additions and alterations for HTML.
+ 	    (long_options): Add html and no-info-as-html.
+ 	    (main): Extra code for HTML.
+ 	    (usage): Add HTML stuff.
+ 	    (expand_filename): Deal with .html.
+ 	    (escape_string): New procedure.
+ 	    (convert_from_loaded_file): Extra code for HTML.
+ 	    (init_internals): Call free_node_references, initialize
+ 	    node_number.
+ 	    (reader_loop): Process menu items for HTML hyperlinks.  Escape
+ 	    HTML special characters.
+ 	    (add_char): Code for line breaks and paragraph insertions in
+ 	    HTML.
+ 	    (flush_output): Don't UNMETA for HTML.
+ 	    (indent): Do nothing for HTML.
+ 	    (current_item_function): Case for ifhtml.
+ 	    (begin_insertion): Deal with HTML in various cases.
+ 	    (insert_html_tag): new procedure.
+ 	    (cm_asterisk, cm_copyright, cm_accent, cm_code, cm_kbd,
+ 	    cm_angle_brackets, cm_var, cm_defn, cm_var, cm_emph, cm_string,
+ 	    cm_cite, cm_top, cm_xref, cm_inforef, cm_uref, cm_direntry,
+ 	    cm_ifinfo, cm_item, process_defun_args, defun_internal, cm_sp,
+ 	    cm_dircategory, cm_center, cm_result, cm_expansion, cm_error,
+ 	    cm_exdent, index_add_arg, make_index_entries_unique,
+ 	    cm_printindex, cm_footnote, output_pending_notes,
+ 	    me_execute_string): Code for HTML.
+ 	    (cm_shyph): New procedure.
+ 	    (cm_special_char): Add start, end args.  Code for HTML.
+ 	    (cm_email, cm_url, cm_i, cm_b, cm_r): New procedures.
+ 	    (sectioning_html): New procedure.
+ 	    (sectioning_underscore): Use it.
+ 	    (add_link): New procedure.
+ 	    (remember_node): Add number field and update node_number.  Note
+ 	    next, etc. nodes for HTML.
+ 	    (add_escaped_anchor_name, add_anchor_name): New procedures.
+ 	    (cm_node): New code for HTML.  Move some other code to more
+ 	    useful place.
+ 	    (remember_node_reference): Add number field and update
+ 	    node_number.
+ 	    (remember_node_node_reference, free_node_node_references,
+ 	    number_of_node): New procedures.
+ 	    (cm_ifhtml, cm_html): New procedures.
+ 	    (expansion): Take care of HTML escaping.
+ 	    (cm_settitle): New procedure.
+ 	    (remember_note): Set number field.
+ 
+ 	    Declare various procedures in advance.
+ 
+ 	* doc/texinfo.txi: Makeinfo --html documentation from Dave Love.
+ 	Typo fixes from: Paul DuBois <dubois@primate.wisc.edu>.
+ 
+ Thu Sep  3 11:11:01 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/Makefile.am (makeinfo_SOURCES): add html.[ch].
+ 
+ 1998-08-28  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c (cm_uref, cm_email): Use get_xref_token to
+ 	gather arguments.
+ 	(get_xref_token): Keep track of input line number when expanding
+ 	xref arguments.
+ 
+ Tue Aug 25 14:36:44 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/texi2dvi: Exit the script if TeX exits with bad status.
+ 
+ 1998-08-16 Eli Zaretskii <eliz@is.elta.co.il>
+ 
+ 	* info/indices.c (info_index_apropos): In the *Apropos*
+ 	menu, print the label first, then the Info file name and
+ 	the node name.  Make the Info file name part of the menu
+ 	entry, so that all entries are distinct.
+ 	(apropos_in_all_indices): Scan each Info file only once, thus
+ 	avoiding multiple identical entries in the *Apropos* menu.
+ 	Free xstrdup'ed buffer, to avoid leaking memory.
+ 
+ Thu Aug 13 12:54:58 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in: Set version to 3.12a.
+ 
+ 	* Makefile.am (AUTOMAKE_OPTIONS): bump required version to 1.3,
+  		add readme-alpha option.
+ 
+ 	* util/texindex.c (program_name),
+ 	* util/install-info.c (progname),
+ 	* info/info.c (program_name),
+ 	* makeinfo/makeinfo.c (progname): hardwire per coding standards.
+ 	* doc/help2man: Remove ginfo special case.
+ 
+ Tue Aug 11 17:41:15 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/gen-dir-node: New version from drk@sgi.com.
+ 
+ Mon Aug 10 13:55:37 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* dir-example: Add entries from Linux.
+ 
+ 	* info/info-utils.c (get_window_of_node): New fn.
+ 	* info/info-utils.h (get_window_of_node): New fn.
+ 	* (strchr,...) [!HAVE_STRCHR]: remove these #defines.
+ 	* info/infodoc.c (info_find_or_create_help_window): Call
+ 		get_window_of_node instead of get_internal_info_window.
+ 	This is so pressing ? repeatedly will always get to the same Help
+ 		window instead of popping up new ones.
+ 	From: "Brian J. Fox" <bfox@prospero.datawave.net>
+ 
+ 	* info/signals.c: Ignore SIGWINCH if we're in the midst of it.
+ 	We might get a whole lot of them.  Noticed on Afterstep.
+ 	From: "Brian J. Fox" <bfox@prospero.datawave.net>
+ 
+ 1998-07-25  Bruno Haible  <bruno@linuix.math.u-bordeaux.fr>
+ 
+         * install-info.c (findlines): Allocate room for one more line,
+         to avoid crash if dir file has exactly 512 lines.
+ 
+ Tue Aug  4 07:14:35 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/info.c: Improve help message.
+ 
+ 	* dir-example: Add mtools.
+ 
+ Fri Jul 31 13:29:52 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/help2man: Various hacks for texinfo.
+ 
+ 	* doc/texinfo.txi: Make dir entries more consistent.
+ 
+ 	* doc/Makefile.am: Generate man pages with help2man.
+ 
+ 	* util/texi2dvi,
+ 	* util/install-info.c,
+ 	* makeinfo/makeinfo.c,
+ 	* util/texindex.c: Improve help message.
+ 
+ 	* doc/info.5: Initial.
+ 	* doc/texinfo.5: Section 5.
+ 
+ Thu Jul 30 17:31:42 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/info-stnd.texi,
+ 	* doc/texinfo.txi: Use Automake-standard VERSION and UPDATED.
+ 
+ Wed Jul 29 17:34:41 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: Describe macro limitations a bit more.
+ 
+ 	* dir-example: Correct makeinfo link.
+ 
+ Tue Jul 28 16:44:06 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (remember_brace_1): xstrdup command, since
+  		we free it later.
+ 
+ Mon Jul 27 16:27:30 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/session.c (node_printed_rep): New fn.
+ 	Change calls.
+ 
+ 	* info/session.c (info_set_node_of_window): Simplify by taking new
+ 		argument to say whether to call
+ 		set_remembered_pagetop_and_point.  Change calls.
+ 	* info/indices.c: Change call.
+ 
+ 	* info/info.c: Rewrite initial menu-sequence following stuff as a
+ 		function in session.c, and call it.
+ 
+ 	* info/infomap.c: Define `G' as info_menu_sequence.
+ 	* info/session.h (info_menu_sequence, info_follow_menus): declare
+  		new fns.
+ 	* info/session.c (info_follow_menus, split_words,
+ 		* info_menu_sequence): New functions for new command.
+ 
+ Thu Jul 23 16:44:42 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/session.c (info_scroll_other_window_backward): new command.
+ 	* info/infomap.c (initialize_info_keymaps): bind M-DEL and M-prior to
+ 	scroll-other-window-backward.
+ 	Report from: Vladimir Alexiev <vladimir@cs.ualberta.ca>
+ 	Date: 	Tue, 2 Dec 1997 14:54:30 -0700
+ 
+ 	* info/info-utils.c (printed_representation): If ISO_Latin_p, show
+ 		characters as-is.  Don't assume iscntrl(x) returns false
+ 		for meta characters.
+         Report from: Francois Pinard <pinard@iro.umontreal.ca>
+ 	Date: 15 Jan 1998 17:48:51 -0500
+ 
+ 	* info/pcterm.c (pc_initialize_terminal): now no need to set it
+  		here.
+ 	* info/info-utils.c (ISO_Latin_p): set to 1 by default.
+ 
+ 	* doc/info-stnd.texi: Document SPC, add goto-node anchor.
+ 
+ Wed Jul 22 18:58:38 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/window.c (message_buffer_to_node),
+ 	* info/session.c (kill_node),
+ 	* info/nodes.c (info_get_node_of_file_buffer,
+  		info_node_of_file_buffer_tags),
+ 	* info/man.c (manpage_node_of_file_buffer),
+ 	* info/footnotes.c (make_footnotes_node): set display_pos member
+  		in new node.
+ 
+ Tue Jul 21 14:04:52 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+         (all of this is to make SPC/DEL not move outside the current
+ 	        document, i.e., not up through dir)
+ 	* info/info-utils.h (info_label_was_found): Move from here.
+ 	* (info_prev_label_of_node): Don't use it any more.
+ 	* info/session.c (INFO_LABEL_WAS_FOUND): Move to here, add test
+  		for filename not dir.
+  	(forward_move_node_structure): Change calls, notice if no more nodes.
+ 	(backward_move_node_structure): Check for moving outside current
+ 	document to dir.
+ 	* info/filesys.c (compression_suffixes): Add bz2 for bunzip2.
+ 	(is_dir_name): New fn.
+ 	* info/filesys.h: Declare it.
+ 	* info/nodes.c (info_get_node, info_find_file_internal): Use it.
+ 
+ 	* makeinfo/makeinfo.c: Set in_fixed_width_font to avoid munging
+  		node names.
+ 
+ Sat Jul 18 17:14:10 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/man.c (reap_children): Call wait (NULL), since we don't
+ 		actually use the return status for anything.  NEXTSTEP 3.3
+ 		doesn't like an int * even though that is the POSIX
+ 		specification.
+ 	Date: Fri, 22 Aug 1997 13:55:42 +0200
+ 	From: "Felix H. Gatzemeier" <fxg@imib.rwth-aachen.de>
+ 	Via: Thomas Esser <te@informatik.uni-hannover.de>
+ 
+ 	* info/session.c (kill_node): Restore point when we go back.
+ 
+ Thu Jul 16 18:54:04 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (BRACE_ELEMENT): Add `command' to the save
+  		stack.
+  	(MAYBE_BRACE_ARGS): New possibility, somewhat like TeX's
+ 	  next-token-as-argument.
+ 	(command_table): Use cm_accent and MAYBE_BRACE_ARGS for all accents.
+ 	(read_command): Implement MAYBE_BRACE_ARGS.
+ 	(init_brace_stack): save current command.
+ 	(pop_and_call_brace): restore current command.
+ 	(cm_accent): move almost all accent characters to after the argument.
+ 	Suggested by Fran,cois.
+ 
+ 	* info/info.c (version_string): Remove defn.
+ 	Change call for --version option.
+ 	* info/session.c (display_startup_message_and_start): Just use
+  		VERSION.
+ 	* info/info.h (version_string): Remove decl.
+ 
+ Tue Jul 14 16:46:58 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.h: Doc fix.
+ 
+ 	* makeinfo/makeinfo.c (validate_file): Don't complain about
+  		unreferenced anchors.
+ 
+ 	* doc/texinfo.txi: Document @anchor.
+ 
+ Sun Jul 12 14:14:50 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (remember_node): Only set `current_node' if
+  		this is not an anchor.
+ 
+ 	* info/nodes.c (get_tags_of_indirect_tags_table): Don't set
+ 	nodelen to -1 when fixing up the subfile entries, it might be 0
+ 	from an anchor.
+ 
+ 	* info/nodes.c (find_node_of_anchor): Offset display_pos for
+ 	anchor tags by the amount that node references are off by (- 1).
+ 
+ Sat Jul 11 17:37:18 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_anchor): Add output_column for anchors
+  		embedded in a line.
+ 
+ Fri Jul 10 16:28:21 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/session.c (info_menu_or_ref_item): Don't search for the
+ 		xref text if it's an anchor.
+ 	* info/nodes.h (N_FromAnchor): New NODE flag.
+ 	* info/nodes.c (find_node_of_anchor): New fn.
+ 	(info_node_of_file_buffer_tags): Handle anchor case.
+ 
+ Wed Jul  8 17:48:59 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/window.c (window_set_node_of_window): Set window->point to
+ 		node->display_pos.
+ 	Remove unneeded casts.
+ 
+ Tue Jul  7 08:06:14 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (add_word_args) [!VA_SPRINTF]: Use buffer,
+ 		not the undeclared temp_string.
+ 	From:     Tobias Naehring <naehring@eeetw3.et.tu-dresden.de>
+ 	To:       egcs-bugs@cygnus.com
+ 	Date:     Mon, 6 Jul 98 13:51:55 +0200
+ 
+ Mon Jul  6 17:43:25 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/nodes.h (NODE): Add display_pos member.
+ 
+ Sun Jul  5 08:17:43 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/nodes.h (INFO_REF_LABEL): Define.
+ 
+ 	* util/texi2dvi: Rationalize use of `index' vs. more general
+  		`xref'.
+ 
+ Thu Jul  2 18:53:43 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c: Don't translate -Footnotes, it's a magic
+  		cookie.  From Eli.
+ 
+ Wed Jul  1 08:42:41 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi (url): Missing word `command'.
+ 
+ Tue Jun 30 10:35:48 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/info.c: Missing \n in try --help msg.
+ 
+ 	* makeinfo/makeinfo.c (cm_anchor): New fn for new cmd.
+ 	(TAG_FLAG_ANCHOR): New flag for tag entries.
+ 	(write_tag_table_internal): Handle anchor case.
+ 	(TAG_FLAG_{{PREV,NEXT,UP}_ERROR,NO_WARN,IS_TOP}): Add TAG_FLAG_ prefix
+ 	for clarity, change uses.
+ 
+ 	* doc/texinfo.txi: Remove warning about footnotes with @item, that
+  		works now.
+ 
+ Mon Jun 29 10:17:50 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in (AM_CONFIG_HEADER): Use second argument to be 8.3
+ 		compliant.
+ 	* config.h.in: Rename to config.in.
+ 
+ 	* info/Makefile.am (EXTRA_DIST),
+ 	* info/terminal.c [__MSDOS__]: Change #include to pcterm.c and
+ 		rename file.
+ 
+ Sun Jun 28 14:29:27 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/Makefile.am (EXTRA_DIST): Add pc_term.c.
+ 
+ 	* makeinfo/makeinfo.c (HAVE_MACROS): Remove this conditional, we
+  		always want macros now.
+ 
+ 	* info/indices.c: Copyright.
+ 
+ 1998-06-26  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* makeinfo/makeinfo.c: (only_macro_expansion): New variable,
+ 	suppresses all expansions except macros.
+ 	(replace_with_expansion): New function, replaces a portion of
+ 	input text with its expansion.  Avoids moving the text around if
+ 	we are positive it will expand into itself.  If the length of the
+ 	expanded text is the same as the length of the original text, just
+ 	replaces the original text without moving the rest.  Resyncs the
+ 	remembered text pointers with the realloc'ed input_text, when it
+ 	is realloc'ed.
+ 	(reader_loop): When only_macro_expansion is non-zero, only handle
+ 	macros, but leave the rest of input intact.
+ 	(read_command): Now returns an int, zero means no known command or
+ 	macro is found after the prefix character; all callers changed.
+ 	Support operation under non-zero only_macro_expansion.
+ 	(cm_node): Expand only the macros in the @node line.  Allocate and
+ 	generate the macro-expanded @node line in one swell whoop.
+ 	(glean_node_from_menu): Expand macros in menu entries.
+ 	(get_xref_token): A new argument EXPAND, when non-zero, means
+ 	expand macros in the entire brace-delimited argument before
+ 	looking for the next comma; all callers changed.
+ 	(expansion): Save and restore additional state variables important
+ 	for output generation machinery.  Disable indentation and filling
+ 	during the recursive expansion, so that the output buffer offset
+ 	is not invalidated by filling.
+ 	(me_execute_string_keep_state): New function, calls
+ 	me_execute_string, but saves and restores state variables
+ 	important for output generation, so that -E doesn't change the
+ 	generated Info output.
+ 	(index_add_arg, cm_footnote): Call me_execute_string_keep_state.
+ 	(expand_macro): New function, returns the macro expansion as a
+ 	malloc'ed string.
+ 	(execute_macro): Call expand_macro.
+ 	(me_execute_string): Avoid memory leak by freeing input_filename.
+ 	(get_until_in_braces, replace_with_expansion, add_char,
+ 	cm_footnote, cm_macro, cm_unmacro, get_brace_args,
+ 	extract_colon_unit): Use the faster memcpy/memmove instead of
+ 	strncpy.
+ 
+ Sat Jun 27 14:18:54 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/info.texi: Use @subsubsection instead of
+ 		@unnumberedsubsubsection, since it's in a numbered chapter.
+ 
+ 	* Started installation of following DOS patches from Eli.
+ >1998-05-16  Eli Zaretskii  <eliz@is.elta.co.il>
+ >
+ >	* info/session.c (info_goto_node): Don't show the nodes of the
+ >	current Info file twice in *Completions*.
+ >	* info/echo-area.c (ea_possible_completions): Actually pass the
+ >	number of completions to printf_to_message_buffer.
+ >
+ >	* info/man.c (manpage_node_of_file_buffer): xstrdup the nodename
+ >	member of manpage nodes, since the tags are freed and recomputed
+ >	when a new man page is added to *manpages* file_buffer.
+ >	(get_manpage_node): Recompute info_windows[]->nodes[] for all
+ >	windows showing the man pages after nodes[]->contents are
+ >	invalidated by reallocation of file_buffer->contents.
+ >
+ >1998-05-15  Eli Zaretskii  <eliz@is.elta.co.il>
+ >
+ >	* lib/system.h (DEFAULT_INFO_PRINT_COMMAND) [__MSDOS__]: Define to
+ >	">PRN".
+ >	* info/session.c (print_node): Support ">printer" in
+ >	INFO_PRINT_COMMAND, to mean write to the named file/device insead
+ >	of piping to it as a program.
+ >	(kill_node): Compare window in addition to the nodename, when
+ >	looking for the node to kill.
+ >
+ >1998-05-09  Eli Zaretskii  <eliz@is.elta.co.il>
+ >
+ >	* lib/system.h (SET_SCREEN_SIZE_HELPER) [__MSDOS__]: Define a new
+ >	macro.
+ >	* info/m-x.c (set_screen_height): Use SET_SCREEN_SIZE_HELPER, if
+ >	defined.  If the screen size did'n change, redisplay the previous
+ >	screen contents.
+ >
+ >	* info/infomap.c (initialize_info_keymaps) [__MSDOS__]: Bind DEL
+ >	to ea_delete in the echo-area keymap.
+ >	* info/session.c (incremental_search): If the key is
+ >	isearch_terminate_search_key, but buffered input is pending, don't
+ >	gobble the ESC key.
+ >
+ >	* info/info.c (main): Switch the order thet terminal_prep_terminal
+ >	and terminal_clear_screen are called, to make it consistent with
+ >	what initialize_info_session does when called with non-zero second
+ >	argument.  Call terminal_unprep_terminal last, after moving the
+ >	cursor to the bottom of the screen.  If user_filename is of the
+ >	form "d:foo", add "d:." to the INFOPATH, not "d:".
+ >
+ >	* info/signals.c (initialize_info_signal_handler): Save old
+ >	SIGUSR1 handler.
+ >	(info_signal_handler): Handle SIGUSR1.
+ >
+ >	* info/indices.c (info_apropos): Print the results to stdout.
+ >
+ >1998-05-02  Eli Zaretskii  <eliz@is.elta.co.il>
+ >
+ >	* makeinfo/makeinfo.c (ALSO_NULL_DEVICE): New macro, for alternate
+ >	null device name.
+ >
+ >	* info/man.c (get_manpage_contents): Redirect stderr of the man
+ >	page formatter to the null device.
+ >	(executable_file_in_path): Use IS_SLASH.
+ >
+ >	* info/session.c (info_gather_typeahead) [__DJGPP__]: Call
+ >	pc_term_chars_avail to get the number of pending characters.
+ >
+ >	* info/filesys.c (convert_eols): New function, converts DOS-style
+ >	EOLs to a single Newline.
+ >	(filesys_read_info_file, filesys_read_compressed): Call it.
+ >	(filesys_read_compressed) [STRIP_DOT_EXE]: Use explicit .exe
+ >	suffix.
+ >	(filesys_read_compressed): Check return status of `pclose'.
+ >
+ >1998-05-01  Eli Zaretskii  <eliz@is.elta.co.il>
+ >
+ >	* info/filesys.c (filesys_read_info_file): Add additional
+ >	parameter: is_compressed.  All callers changed.
+ >
+ >	* makeinfo/makeinfo.c (convert_from_loaded_file): Compare file
+ >	names with FILENAME_CMP.  Use NULL_DEVICE.
+ >	(cm_node): Compare file names with FILENAME_CMP.
+ >	* info/tilde.c (tilde_find_suffix, tilde_expand_word): Use
+ >	IS_SLASH.
+ >
+ >	* info/pc_term.c: New file, handles the PC terminal on MS-DOS and
+ >	MS-Windows.
+ >	* info/terminal.c [__MSDOS__]: Include pc_term.c.
+ >	* info/Makefile.in (ginfo_SOURCES): Add pc_term.c
+ >	Add pc_term.c to dependencies of terminal.o.
+ >
+ >	* info/session.c (info_get_input_char): Reassign tty after EOF
+ >	from a non-stdin input stream.
+ >
+ >1998-04-30  Eli Zaretskii  <eliz@is.elta.co.il>
+ >
+ >	* info/session.c (info_set_input_from_file): Use binary input.
+ >	(info_gc_file_buffers): Compare file names with FILENAME_CMP.
+ >	* info/search.c (skip_whitespace_and_newlines): Use
+ >	whitespace_or_newline macro instead of reinventing the wheel.
+ >	* info/nodes.c (info_find_file_internal): Use IS_ABSOLUTE and
+ >	FILENAME_CMP.
+ >	(info_load_file_internal): Call filename_non_directory to find out
+ >	where the basename begins.
+ >	(get_tags_of_indirect_tags_table): Call filename_non_directory.
+ >	containing_dir of "d:foo" is "d:.", not "d:".
+ >	(forget_info_file): Compare file names with FILENAME_CMP.
+ >	* info/nodemenu.c (get_visited_nodes): Use FILENAME_CMP to find
+ >	duplicate lines.
+ >
+ >	* lib/system.h (PIPE_USE_FORK): New macro.
+ >	* info/man.c (get_manpage_contents): Use it to determine whether
+ >	to call pipe/fork/exec or popen/pclose to run the man page
+ >	formatter.
+ >	(executable_file_in_path): Search for the file with several known
+ >	extensions such as .exe, where appropriate.
+ >
+ >	* lib/system.h (NULL_DEVICE): A new macro.
+ >	* info/makedoc.c (main): Use it.
+ >	(maybe_dump_tags): Switch output strem to binary mode when
+ >	appropriate.
+ >	(process_one_file): Update file_size after reading the file.
+ >
+ >	* info/infodoc.c: Add TAB, RET, and `i' to the list of important
+ >	commands in info_internal_help_text.
+ >
+ >	* info/info.c (main): Support the --speech-friendly option.  Use
+ >	PATH_SEP to separate directories.
+ >	(info_short_help) [__MSDOS__]: Mention the --speech-friendly
+ >	option.
+ >
+ >	* info/info-utils.c (filename_non_directory): Use HAVE_DRIVE and
+ >	IS_SLASH.
+ >	* info/indices.c (do_info_index_search, index_entry_exists): Use
+ >	FILENAME_CMP to compare file names.
+ >	* info/filesys.c: Add ".inf" to the list of known extensions.
+ >	Look for .z before .Z, for the sake of case-insensitive
+ >	filesystems.  Add DOS-specific extensions to work around 8+3
+ >	namespace restrictions.
+ >	(info_absolute_file): New function.
+ >	(info_find_fullpath): Call it for candidates which are absolute
+ >	file names.  Use IS_SLASH and IS_ABSOLUTE.
+ >	(info_file_in_path): Use IS_SLASH.
+ >	(extract_colon_unit, info_add_path): Use PATH_SEP instead of ":".
+ >	(lookup_info_filename): Compare file names with FILENAME_CMP.
+ >	(filesys_read_info_file): Read Info files in binary mode.
+ >	(filesys_decompressor_for_file): Read Info files in binary mode.
+ >	Compare file names with FILENAME_CMP.  On MS-DOS, allow files
+ >	whose names end with a `z' be decompressed with gunzip.
+ >	* info/dribble.c (open_dribble_file): Open dribble file in
+ >	FOPEN_WBIN mode.
+ >	* info/dir.c (maybe_build_dir_node): Use IS_SLASH.
+ >	* util/texindex.c (maketempname): Put the numeric suffix after the
+ >	dot, to salvage 3 more characters on 8+3 filesystems.
+ >
+ >1998-04-29  Eli Zaretskii  <eliz@is.elta.co.il>
+ >
+ >	* util/texindex.c (main): Use IS_SLASH to find the basename of
+ >	argv[0].  Lose the .exe suffix, if any.
+ >	(decode_command): Look at $TEMP and $TMP in addition to $TMPDIR.
+ >	Use DEFAULT_TMPDIR.
+ >	* util/texi2dvi: Use either `:' or `;' as directory separator in
+ >	TEXINPUTS, computed at run time.  Save previous versions of index
+ >	files in a separate backup directory.
+ >	* util/install-info.c (main): Support backslashes in file names by
+ >	using IS_SLASH.  Avoid recomputing length of infile_basename
+ >	unnecessarily.  Use FILENAME_CMP for comparing file names
+ >	case-insensitively, where appropriate.  Allow foo.inf as well as
+ >	foo.info to be an Info file name.
+ >	* lib/system.h (PATH_SEP, STRIP_DOT_EXE, FILENAME_CMPN,
+ >	DEFAULT_TMPDIR): New macros.
+ >
+ >1998-04-25  Eli Zaretskii  <eliz@is.elta.co.il>
+ >
+ >	* lib/system.h (O_BINARY, SET_BINARY, FOPEN_RBIN, FOPEN_WBIN,
+ >	IS_SLASH, HAVE_DRIVE, IS_ABSOLUTE, FILENAME_CMP, PATH_SEP,
+ >	HAVE_LONG_FILENAMES): New macros.
+ >	* makeinfo/makeinfo.c (find_and_load): Use O_BINARY to decide when
+ >	read returning a value different from what st_size says is not an
+ >	error.  Realloc the buffer after we've read the file.
+ >	(skip_directory_part): New function, skips leading directory in a
+ >	way that works on DOSISH systems.
+ >	(filename_non_directory, pathname_part): Call it.
+ >	(filename_part): Call filename_non_directory.
+ >	(expand_filename, full_pathname): Use IS_ABSOLUTE and IS_SLASH.
+ >	(convert_from_file): Check .txi extension first.
+ >	(split_file): Support splitting output files on 8+3 filesystems.
+ >	(main, extract_colon_unit): Use PATH_SEP instead of ':'.
+ >	(get_file_info_in_path): Use IS_ABSOLUTE and IS_SLASH.
+ 
+ 
+ 	* doc/texinfo.txi: Changes from Eli for MS-DOS stuff.
+ 	* doc/info-stnd.texi: Fixes from Eli: he documented all the
+  		missing keys and command-line options, corrected
+  		inaccuracies (probably left-overs from previous versions),
+  		and added some clarifications where I thought the manual
+  		was not clear enough.
+ 	* Makefile.am (EXTRA_DIST): Add djgpp files.
+ 
+ 	* makeinfo/makeinfo.c: New no-op commands @setcontentsaftertitlepage
+ 	and @setshortcontentsaftertitlepage.
+ 	* doc/texinfo.txi: Document the new @set{,short}contentsaftertitlepage
+ 	commands and the possibility of putting @contents and
+         @shortcontents after @end titlepage.
+ 
+ 	* util/texi2dvi: Check that the toc file has not changed (as well
+  		as .aux and .??).
+ 
+ Thu Jun 25 16:58:46 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: Document new commands @env, @command, @option.
+ 
+ 	* makeinfo/makeinfo.c (option, command, env): New markup commands, same
+  		as @code in info.
+ 
+ Wed Jun 24 15:39:38 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c: New no-op command @acronym.
+ 
+ 	* doc/texinfo.txi: Document new command @acronym.
+ 
+ 	* util/install-info.c (strip_info_suffix, menu_item_equal): New fns.
+  	(main): Call them instead of doing the filename test inline; all the
+ 	.info variations are too confusing to write out twice.
+ 
+ Tue Jun 23 18:01:40 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: Fix some overfull boxes.
+ 
+ Mon Jun 22 19:22:17 1998  Karl Berry  <karl@north>
+ 
+ 	* configure.in: Remove AC_LINK_FILES call, that was an old gettext
+  		thing, no longer necessary, and causes problems with Autoconf.
+ 
+ Sun Jun 14 07:00:15 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/texi2dvi: Indent options so help2man will work.  From Akim.
+ 
+ Sat Jun 13 10:45:25 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in (ALL_LINGUAS): Add nl.
+ 
+ 	* util/texi2dvi: Avoid tabs.
+ 
+ Wed Jun 10 17:38:21 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (gen_defindex): Use xmalloc instead of alloca.
+ 	This was our only use of alloca, so also remove all the #if junk
+ 	at the beginning to define it.
+ 
+ 	* makeinfo/makeinfo.c: Fix grammar in multiply-defined-node error
+ 		message.
+ 
+ Tue Jun  9 17:53:54 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: Document new commands @smallformat,
+  		@smalldisplay.
+ 
+ 	* makeinfo/makeinfo.c: New commands @smalldisplay and @smallformat.
+ 	Suggestion from: Eli Zaretskii <eliz@is.elta.co.il>.
+ 
+ 	* makeinfo/makeinfo.h (insertion_type, insertion_type_names):
+ 	Declare smalldisplay and smallformat.
+ 
+ Mon Jun  8 07:57:52 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: Document possibility of combining @titlefont
+  		and @title.  From Eli.
+ 
+ 	* util/texi2dvi: Set verbose to : instead of false by default.
+ 
+ 	* util/texi2dvi: Missing \\ for sed with -t text.  From Akim.
+ 
+ Sun Jun  7 13:02:13 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: Document @pagesizes and texidvi -t.
+ 
+ 	* makeinfo/makeinfo.c: Define no-op @pagesizes and @afourpaper.
+ 	(major_version, minor_version): Remove these globals, just use the
+ 	Texinfo package version.
+ 	(print_version_info): Ditto.
+ 
+ Fri Jun  5 17:54:16 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: Change texi2dvi documentation a bit.
+ 
+ 	* util/texi2dvi: Handle --option=argument style of specifying
+  		arguments.
+ 
+ Sat May 30 14:01:37 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: More.
+ 
+ 	* util/install-info.c (open_possibly_compressed_file): Finish
+  		implementation.
+ 
+ 	* doc/texinfo.txi: Document install-info compression support.
+ 
+ Fri May 29 08:01:43 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/install-info.c (open_possibly_compressed_file): Initial
+  		implementation.
+ 
+ 	* util/install-info.c (output_dirfile): Attempt to write dir.gz if
+  		that's what we read.
+  	(readfile): Pass back the actual opened filename, too.
+ 
+ 	* info/indices.c: Check in Eli's patch.
+ 
+ Thu May 28 17:09:45 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/install-info.c (readfile): Set up to handle compressed
+ 	input (and output) files. Change callers.
+ 	Rearrange function order to avoid forward declarations.
+ 
+ 	* configure.in: Remove check for libz, we'll fork gzip instead.
+ 
+ Tue May 26 18:01:13 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/install-info.c (print_help): Missing \n\ in help string.
+ 
+ 	* makeinfo/makeinfo.c (POST_SENTENCE): Rename from post_sentence.
+   	Change calls.
+ 	(flush_output): Strip 8th bit if post_sentence char as well as space.
+ 	(cm_code, etc.): Change add_char calls for post_sentence chars to set
+ 	8th bit.
+ 
+ 1998-05-23  Eli Zaretskii  <eliz@is.elta.co.il>
+ 
+ 	* info/indices.c (info_next_index_match): Call
+ 	info_set_node_of_window to display the node, so that footnotes are
+ 	displayed as well.
+ 
+ Thu May 21 11:05:50 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/install-info.c (output_dirfile): New function, extracted
+  		from the end of main.
+ 
+ 	* makeinfo/makeinfo.c (begin_insertion): Ignore @group in all the
+ 	example-like environments, not just @example.  Otherwise the first
+ 	line in the environment is not indented correctly. Reported by rms.
+ 
+ Wed May 20 17:44:38 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/install-info.c: Doc fixes.
+ 
+ 	* util/install-info.c: Handle XEmacs-style dir entries:
+ 	* FILENAME::PROGRAM  DESCRIPTION.
+ 	Date: Wed, 13 May 1998 13:58:28 +0900
+ 	From: KIRIYAMA Kazuhiko <kiri@kiri.toba-cmt.ac.jp>
+ 
+ 	Also, do not set something_deleted on continuation lines; they are only
+ 	deleted if the entry was deleted.
+ 
+ Tue May 19 17:22:50 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/install-info.c: Do not read the dir file if we are only
+ 	deleting -- it might not exist, and we don't actually need it.
+ 	From: David Kaelbling <drk@sgi.com>
+ 	Date: Tue, 12 May 1998 11:05:26 -0400
+ 
+ 	* util/gen-dir-node:
+ 	From: David Kaelbling <drk@sgi.com>
+ 	Date: Tue, 12 May 1998 16:05:16 -0400 -
+ 	- The "dir" moobler header is slightly different from the default
+ 		dir file.
+ 	- If all files in ${infofiles} appear in the skeleton the last one
+  		is processed twice.
+  	- INFO-DIR-SECTION data is ignored.
+   	- Don't generate entries for directories.
+ 
+ Sat May 16 17:16:56 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_novalidate): New fn for new command
+  		@novalidate, like --no-validate.
+ 
+ Thu May 14 18:02:31 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: Document the @novalidate command.
+ 
+ Wed May 13 17:47:20 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi: Document limitation on @set/@value names in
+  		index commands.
+ 
+ Fri May  1 14:12:15 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi (Command List): @deftypevar out of order.
+ 
+ 	* configure.in (ALL_LINGUAS): Add cs.
+ 
+ Tue Apr 28 09:33:41 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (strcasecmp): This is in lib now.
+ 
+ 1998-04-26 Richard Stallman <rms@psilocin.gnu.org>
+ 
+ 	* util/install-info.c (print_help): Doc clarifications.
+ 
+ Sun Apr 19 15:55:10 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* lib/system.h (strcasecmp, strncasecmp) [!HAVE_STR[N]CASECMP]:
+  		Declare these.
+ 
+ 	* info/search.h (str[n]casecmp): Remove decl from here.
+ 
+ 	* configure.in (AC_REPLACE_FUNCS): Check for strcasecmp and
+  	strncasecmp here.
+ 	(AC_CHECK_FUNCS): Instead of just strcasecmp here.
+ 
+ 	* configure.in (texconfig): Use TEXMFMAIN in preference to TEXMF
+  		for post-0.4 teTeX.
+ 
+ Wed Apr 15 17:20:31 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.txi (Reporting Bugs): New section.
+ 	Suggestion from: Andrew Shapira <shapiraa@cs.rpi.edu>
+ 	Date: Mon, 4 Aug 1997 19:06:06 -0400 (EDT)
+ 
+ 	* info/infomap.c: Define / to be info_search.
+ 	Suggestion from: Egil Kvaleberg <egil@kvaleberg.no>
+ 	Date: Fri, 1 Aug 1997 08:16:45 +0200 (MET DST)
+ 
+ 	* doc/texinfo.txi (uref): Document reason for not using <URL: format.
+ 	Also use ftp.gnu.org instead of ftp.gnu.ai.mit.edu throughout.
+ 
+ Tue Apr 14 10:43:39 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	1998-04-05 Karl Eichwalder <ke@suse.de>
+ 	* makeinfo/makeinfo.c (begin_insertion): No need to
+  	gettext; it's a keyword.  From carl-friedriech.spilcke-liss@ensae.fr.
+  	(cm_printindex): ditto.
+ 
+ 	* util/texi2dvi: Always remove the $tmp_dir's.
+ 	From: Dean Gaudet <dgaudet@arctic.org>
+ 	Date: Tue, 14 Apr 1998 00:55:36 -0700 (PDT)
+ 
+ Mon Apr 13 18:02:57 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in: Include
+ 	AM_SYS_POSIX_TERMIOS
+ 	AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL
+ 	to avoid window resizing being ignored under glibc2 systems,
+ 	e.g., Red Hat Linux 5.0.  Actually any system where the ioctls are not
+ 	defined in <termios.h>.
+ 	See also http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl/full/206.
+ 	* acconfig.h (GWINSZ_IN_SYS_IOCTL): New #undef for autoheader.
+ 	* info/termdep.h [GWINSZ_IN_SYSIOCTL]: #include <sys/ioctl> if
+  		this is defined.
+ 	From: Mark Jefferys <mjeffery@cse.ogi.edu>
+ 	Date: Thu, 9 Apr 1998 12:38:27 -0700 (PDT)
+ 
+ Fri Apr  3 01:18:22 1998  Philippe De Muyter  <phdm@macqel.be>
+ 
+ 	* info/info.c (main): Use 0, not NULL, as ? : alternative.
+ 
+ Tue Mar  3 13:29:17 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in: Version 3.12.
+ 
+ 	* po/de.po: New version.
+ 
+ 	* po/POTFILES.in: Do not include doc.c; that gets built at
+ 	runtime, thus causing texinfo.pot to try to get rebuilt.  Besides,
+ 	it doesn't have any translatable strings.
+ 
+ Sun Mar  1 10:38:47 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/install-info.c: No need for i18n on version message.  From
+  		ke@suse.de.
+ 
+ Fri Feb 27 16:06:23 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in: Run texconfig conf instead of confall.
+ 
+ 	* doc/Makefile.am (INSTALL_INFO): New variable.
+ 	(install-info-am): Use install-info from our distribution.
+ 
+ 	* info/info.c (info_minor_version): Increment.
+ 	* (info_patch_level),
+ 	* info/info.h (info_patch_level): Remove.
+ 
+ 	* info/info.c (program_name): Move decl.
+ 
+ 	* util/install-info.c (ensure_dirfile_exists): Use commas and \t
+ 	 instead of an explicit tab, which make dist expands.
+ 
+ 	* doc/texinfo.txi: @prep.ai.mit.edu -> @gnu.org.
+ 
+ 	* info/info.c: Make help messages consistent with others.
+ 
+ 	* util/install-info.c (print_help): Format consistently.
+ 
+ 	(readfile): Support gzipped files via libz.
+ 	From: Elliot Lee <sopwith@redhat.com>
+ 	Date: Mon, 1 Sep 1997 23:37:14 -0400 (EDT)
+ 
+ Thu Feb 26 16:13:14 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/echo-area.c: Whoops, _ might not start with parens.
+ 
+ 	* configure.in: Check for libz.
+ 	Do not output emacs/Makefile.
+ 
+ 	* Makefile.am (AUTOMAKE_OPTIONS): Set to 1.2f.
+ 
+ 	* util/texi2dvi: Always remove temporary directories. (From Akim.)
+ 	Formatting changes.
+ 
+ Wed Feb 25 15:26:26 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/texi2dvi: New options --batch, --clean.
+ 	From: Akim Demaille <demaille@inf.enst.fr>
+ 	Date: 15 Aug 1997 18:05:33 +0200
+ 	* doc/texinfo.txi (Format with texi2dvi): Mention --help.
+ 
+ 	Applied this:
+ 1997-08-09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* makeinfo/makeinfo.c (me_executing_string): New variable.
+ 	(me_execute_string): Use it instead of executing_string.
+ 	(popfile): Check for me_executing_string as well as
+ 	executing_string.
+ 	(get_until_in_line): Likewise.
+ 	(insert_and_underscore): Do not write any expansion output if
+ 	executing a string.
+ 	(cm_node, cm_include, index_add_arg, cm_footnote, execute_macro,
+ 	cm_macro, cm_unmacro): Likewise.
+ 	(cm_footnote): Include the footnote marker in the expansion
+ 	output.
+ 	(append_to_expansion_output): Do nothing if the input_text wasn't
+ 	a remembered text.
+ 	(defun_internal): Make the index entry even if expanding macros.
+ 	(expansion): Don't reset macro_expansion_output_stream around call
+ 	to execute_string.
+ 	(apply): Fix typo.
+ 
+ Tue Feb 24 17:33:44 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	1997-11-10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+ 	* makeinfo/makeinfo.c (get_until_in_line): Don't use xstrdup on
+ 		the unterminated input_text.
+ 
+ 	* makeinfo/makeinfo.c: Don't assume all \'s in macro bodies are
+ 		arguments.
+ 	From: Mathias.Herberts@irisa.fr (Mathias Herberts)
+ 	Date: Tue, 6 Jan 1998 18:54:26 +0100
+ 
+ 	* configure.in: Check for sigblock in libc before libbsd.
+ 	* From: hjl@lucon.org (H.J. Lu)
+ 	* Date: Fri, 23 Jan 1998 21:50:25 -0800 (PST)
+ 
+ Mon Feb 23 16:26:31 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/window.c (character_width): If ISO_Latin_p is set, make
+ 		printable_limit 255, not 160.  ISO Latin 1 uses
+ 		essentially all of the 256 characters.
+ 	Reported by: Marius Groeger <mag@sysgo.de>
+ 	Date: Wed, 17 Dec 1997 16:05:27 +0100
+ 
+ 	* info/info.c: Improve help message.
+ 
+ Sun Feb 22 17:38:32 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* Makefile.am (SUBDIRS): Remove emacs; we'll just distribute the
+ 		Elisp files with Emacs.
+ 
+ 	* doc/Makefile.am (info_TEXINFOS, texinfo): Rename manual to
+ 		texinfo.txi to avoid DOS filename clash with texinfo.tex.
+ 
+ 	* info/tilde.c: Copy slightly updated alloca stuff from makeinfo.
+ 
+ 	* util/texindex.c (main): Declare as returning int to placate
+  		warnings.
+ 
+ 	* info/Makefile.am: Uncomment BUILT_SOURCES stuff and add missing _.
+ 	From: "Joel N. Weber II" <devnull@gnu.org>
+ 	Date: Fri, 30 Jan 1998 17:21:38 -1000
+ 
+ 	* util/texindex.c,
+ 	* util/install-info.c,
+ 	* makeinfo/makeinfo.c,
+ 	* info/info.c: Change help address to @gnu.org.
+ 
+ 	1998-01-22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+ 	* makeinfo/makeinfo.c (usage): Fix order of arguments to help
+ 		format string.
+ 
+ 	* makeinfo/makeinfo.c (cm_top): Error message wording.
+ 
+ 	* doc/texinfo.texi (Functions in Typed Languages): Remove
+ 		duplicate description of @deftypemethod.
+ 	From: KHMarbaise@p69.ks.fido.de (Karl Heinz Marbaise)
+ 	Date: Wed, 07 Jan 1998 11:11:50 +0100
+ 
+ 	* info/session.c (info_get_input_char) [EINTR]: Keep reading if we
+ 		get EINTR.
+ 	From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+ 	Date: 22 Dec 1997 10:32:53 +0100
+ 
+ Sat Feb 21 17:41:26 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (find_and_load): Malloc enough room for the
+ 		null as well as the newline.
+ 	From: "John W. Eaton" <jwe@bevo.che.wisc.edu>
+ 	Date: Tue, 30 Sep 1997 21:12:01 -0500
+ 
+ 	* util/texindex.c (--version),
+ 	* makeinfo/makeinfo.c (cm_today),
+ 	* makeinfo/makeinfo.c (print_version_info): Version strings etc. do not
+ 		need translation.
+ 	From: Karl Eichwalder <ke@suse.de>
+ 	Date: 13 Sep 1997 16:20:02 +0200
+ 
+ 	* info/echo-area.c: Rewrite pluralization to be translatable.
+ 	From: Karl Eichwalder <ke@suse.de>
+ 	Date: 13 Sep 1997 16:20:02 +0200
+ 
+ 	* util/texindex.c,
+ 	* info/info.c,
+ 	* makeinfo/makeinfo.c,
+ 	* util/install-info.c: --version: Give year as argument to printf,
+ 		to reduce the number of translations needed.
+ 	From: Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
+ 	Date: 02 Sep 1997 18:01:26 +0200
+ 
+ 	* util/texindex.c: Remove the fnctl.h and sys/file.h conditional #includes, they are
+ 	already in lib/system.h.
+ 	From: "Philippe De Muyter" <phdm@macqel.be>
+ 	Date: Thu, 21 Aug 1997 20:16:49 +0200 (MET DST)
+ 
+ 	* info/terminal.c (terminal_begin_using_terminal,
+  	  terminal_end_using_terminal): #ifdef SIGWINCH settings for
+ 	 	  m68k-motorola-sysv.
+ 	From: "Philippe De Muyter" <phdm@macqel.be>
+ 	Date: Thu, 21 Aug 1997 20:16:49 +0200 (MET DST)
+ 
+ 	* info/filesys.c (info_suffixes): Add /index as a possibility for
+ 		subdirectories.
+ 	From: Matthew Wilcox <willy@odie.barnet.ac.uk>
+ 	Date: Wed, 6 Aug 1997 15:55:16 +0100 (BST)
+ 
+ 	* configure.in: Redirect texconfig input from /dev/null to avoid
+ 		stoppage.
+ 	From: Thomas Esser <te@informatik.uni-hannover.de>
+ 	Date: Mon, 4 Aug 1997 18:15:49 +0200
+ 
+ 	* makeinfo/makeinfo.c (find_and_load): Null-terminate the input text.
+ 	From: Kenneth Stailey <kstailey@disclosure.com>.
+ 
+ 	* info/Makefile.am (INCLUDES): Add -I.. -I$(srcdir).
+ 
+ Fri Aug 22 16:24:59 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Adjust ISBN, edition number for print run.
+ 
+ Mon Aug  4 16:12:42 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/info.c (main) [INFODIR]: Add this to infopath, if set.
+ 	* info/Makefile.am (DEFS): New define, include -DINFODIR.
+ 	From: Larry Schwimmer <rosebud@cyclone.Stanford.EDU>.
+ 
+ 	* util/install-info.c (ensure_dirfile_exists): Use tabs instead of
+  		spaces on the File: dir line.
+  	Bug from: Dave Love <d.love@dl.ac.uk>.
+ 
+ Sat Aug  2 12:43:57 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_value, cm_email, cm_uref): Have to cast
+  		from unsigned char * to char * or IRIX cc complains.
+ 	From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>.
+ 
+ Fri Aug  1 14:05:10 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* Makefile.am (EXTRA_DIST): Remove README-alpha.
+ 	From: "ir. Mark M._Kettenis" <kettenis@phys.uva.nl>.
+ 
+ 1997-07-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* configure.in: Use AC_CHECK_HEADERS, not AC_CHECK_HEADER.
+ 
+ Thu Jul 31 11:57:46 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	*  Version 3.11.
+ 
+ 	* info/man.c (reap_children): Declare status as int, not unsigned,
+ 		since that's what POSIX says the arg to wait should be.
+ 
+ 	* makeinfo/makeinfo.c (cm_uref, cm_email): Rewrite to do macro
+  		expansion in the arguments.
+ 
+ 	* makeinfo/makeinfo.c (main): setlocale LC_MESSAGES and LC_TIME,
+ 		instead of LC_ALL.
+ 	From: Akim Demaille <demaille@inf.enst.fr>.
+ 
+ 	* makeinfo/makeinfo.c (cm_today): Let the %d %s %d be translated,
+ 		so other languages can change the order of day/month/year.
+ 	From: Akim Demaille <demaille@inf.enst.fr>.
+ 
+ 	* info/infomap.c: Doc fix.
+ 
+ 	* lib/system.h [!O_RDONLY]: Prefer <fcntl.h> to <sys/fcntl.h>.
+ 
+ 	* configure.in (AC_CHECK_HEADERS): Check for fcntl.h.
+ 
+ 	* doc/Makefile.am (install-data-local): Suggest tex/generic/dvips
+ 		for epsf.tex.
+ 	From: Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>.
+ 
+ 	* configure.in (TEXMF): Move check to block with other program
+  		checks.
+ 
+ Wed Jul 30 11:20:37 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (defun_internal): Allow extra text after
+ 		most @def... commands, for tzname[2] in libc.texinfo.
+ 
+ 	* info/info.c: Include indices.h.
+ 	* configure.in (AC_CHECK_HEADERS): Test for sys/wait.h, info/man.c
+  		uses it.
+ 	From: Erick Branderhorst <Erick.Branderhorst@asml.nl>.
+ 
+ Tue Jul 29 15:55:19 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in: Version 3.9j.
+ 
+ 	* info/terminal.c (output_character_function): Return int (the
+  		arg), not void.
+ 
+ 	* info/infomap.c: Don't define term_kP as 'v', since that's undefined.
+ 	From: Tom Hageman <tom@basil.icce.rug.nl>.
+ 
+ 	* makeinfo/makeinfo.c: Parameterize some messages to avoid
+  		duplicate translations.
+ 
+ 	* info/terminal.c: Only try to declare ospeed, PC, tputs, etc. if
+ 		we don't have <ncurses.h/termcap.h> or <termcap.h>.
+ 
+ 	* makeinfo/makeinfo.c (cm_email): New function, like cm_uref.
+ 
+ Sun Jul 27 17:09:20 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in: Only check for <ncurses/termcap.h> if we're using
+ 		-lncurses.
+ 	From: Bo Johansson <bo.johansson@mbox2.swipnet.se>.
+ 
+ 	* info/dir.c (new_dir_file_p): Avoid automatic struct
+ 		initialization, SunOS 4 etc. cc can't handle it.
+ 	From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>.
+ 
+ Sat Jul 26 15:08:13 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* Version 3.9i.
+ 
+ 	* configure.in: Check for termcap.h and ncurses/termcap.h.
+ 	From: bo.johansson@mbox2.swipnet.se.
+ 
+ Fri Jul 25 14:09:05 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Document new second optional arg to email.
+ 
+ 	* info/infodoc.c: Document CTRL-x 0 as the way to get out of help.
+ 
+ 	* info/dir.c (maybe_build_dir_node): Really check for the same dir
+ 		file twice, not just by name.
+ 	(new_dir_file_p): New function.
+ 
+ 	* util/install-info.c: Tell them about --help in doc strings.
+ 
+ Thu Jul 24 14:25:44 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/texindex.c (memory_error): Move to avoid incorrect implicit
+  		decl.
+ 
+ 	* makeinfo/makeinfo.c,
+ 	* makeinfo/multi.c,
+ 	* util/install-info.c,
+ 	* util/texindex.c,
+ 	* info/tilde.c,
+ 	* info/man.c,
+ 	* info/gc.c,
+ 	* info/session.c (info_replace_key_to_typeahead): Remove unused
+          function,
+ 	* info/nodemenu.c,
+ 	* info/man.c,
+ 	* info/m-x.c,
+ 	* info/footnotes.c
+ 	* info/info.c
+ 	* info/indices.c,
+ 	* info/filesys.c: Parenthesize to avoid -Wall warnings
+ 	remove unused variables,
+ 	make return types explicit,
+ 	printf type corrections.
+ 
+ 	* lib/system.h: <ctype.h>: Include this.
+ 	* util/texindex.c,
+ 	* makeinfo/makeinfo.c,
+ 	* info/echo-area.c,
+ 	* info/display.c: ctype.h: Included in system.h now.
+ 
+ 	* info/echo-area.c: Parenthesize to avoid -Wall warnings.
+         (ctype.h): #include for isprint.
+ 	(echo_area_stack_depth): Remove unused function.
+ 	* info/display.c: Parenthesize to avoid -Wall warnings.
+         (ctype.h): #include for isprint.
+ 	* info/dir.c: Parenthesize to avoid -Wall warnings.
+ 	(build_dir_node_internal): Remove declaration of nonexistent function.
+ 	From: Erick Branderhorst <Erick.Branderhorst@asml.nl>.
+ 
+ 	* configure.in (TEXMF): Call texconfig to discover the default value,
+ 	for the sake of the warning in doc/Makefile.
+ 	From: Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>.
+ 
+ 	* doc/Makefile.am (TEXMF): New variable.
+         (install-data-local): Use it in warning.
+ 	From: Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>.
+ 
+ 	* info/session.c (initialize_info_session): Only call
+ 	terminal_prep_terminal if clear_screen is true.  Otherwise, failed
+         --index-searches prep the terminal but do not unprep it.
+ 	From: William Edward Webber <wew@yallara.cs.rmit.EDU.AU>.
+ 
+ 	* info/nodemenu.c: Doc fix.
+ 
+ Mon Jul 21 17:11:09 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Comment out @smallbook and @set smallbook so
+  		people at other sites can print it the way they want.
+ 	From: Thomas Walter <walter@pctc.chemie.uni-erlangen.de>
+ 
+ Sun Jul 20 07:52:25 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in: 3.9h.
+ 
+ 	* doc/Makefile.am (install-info-am, distclean-aminfo): New targets
+ 		to avoid assuming info files are in srcdir.
+ 
+ 	* lib/system.h (xstrdup): Returns char *, not void *.
+ 
+ 	* doc/Makefile.am (.texi.info),
+ 	* doc/Makefile.am (texinfo): Don't run in $(srcdir).
+ 
+ 	* util/install-info.c (main): Remove unnecessary decl of strrchr.
+ 
+ 	* info/tilde.c: Include info.h (for config.h) before alloca stuff.
+ 
+ 	* makeinfo/makeinfo.c (validate_file): Rename `valid' to `valid_p'
+ 		to avoid conflict with SunOS 4 header files.
+ 	From: "Kaveh R. Ghazi" <ghazi@caip.rutgers.edu>.
+ 
+ 	* info/session.c (initialize_info_session): Call
+           terminal_prep_terminal here (before calling terminal_clear_screen).
+ 	(info_session): Instead of here.
+ 	From: William Edward Webber <wew@yallara.cs.rmit.EDU.AU>.
+ 
+ 	* Makefile.am (EXTRA_DIST): Add README-alpha.
+ 
+ Sat Jul 19 13:50:27 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/terminal.c: Use `keypad transmit' sequence if it's defined:
+ 	(term_keypad_on, term_keypad_off): New statics.
+ 	(terminal_begin_using_terminal): If term_keypad_on, send it.
+ 	(terminal_end_using_terminal): If term_keypad_off, send it.
+ 	(terminal_initialize_terminal): Look up ks and ke termcap strings.
+ 	From: William Edward Webber <wew@yallara.cs.rmit.EDU.AU>.
+ 
+ 	* info/infomap.c (initialize_info_keymaps): Initialize hardwired
+  		cases for arrow keys a la readline.  Found by John Eaton,
+  		jwe@bevo.che.wisc.edu.
+ 
+ 	* makeinfo/makeinfo.c (output_pending_notes): Remove footnote
+         macro expansion code I #if 0'd out some time ago.  And doc fixes.
+ 
+ 	* Applied this patch:
+ 
+ Sat Jul 19 16:29:01 1997  Karl Eichwalder  <ke@suse.de>
+ 
+ 	* info/info.c (main): setlocale, bindtextdomain, and textdomain.
+ 
+ Fri Jul 18 10:02:18 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/Makefile.am (install-data-local),
+ 	* emacs/Makefile.am (install-data-local): Give subdir in warning.
+ 
+ 	* configure.in: Version 3.9f.
+ 
+ 	* doc/texinfo.texi: Correct \^ to @^.
+ 	From Andreas S.
+ 
+ 	* Merged these changes:
+ 
+ 1997-07-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* info/display.c (display_cursor_at_point): Flush ouput.
+ 
+ 1997-07-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* info/session.c (remember_window_and_node): Don't crash when the
+ 	current window has no current node.
+ 
+ 1997-07-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* util/texindex.c (usage): Translate the doc strings.
+ 	* makeinfo/makeinfo.c (cm_today): Translate the month names.
+ 	* info/variables.c (describe_variable): Translate the doc strings.
+ 	* info/nodes.h: Don't translate the strings defining the info format.
+ 
+ 1997-07-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* makeinfo/makeinfo.c (get_item_function): Remove superfluous call
+ 	to canon_white after get_rest_of_line.
+ 	(cm_end): Likewise.
+ 	(handle_variable): Likewise.
+ 	(cm_item): Likewise.
+ 	(cm_unmacro): Likewise.
+ 
+ 1997-07-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* info/nodemenu.c (list_visited_nodes): Don't clear the internal
+ 	flag, this and other functions depend on it.  Don't insist on
+ 	displaying the menu below the current window.
+ 
+ 1997-07-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* makeinfo/makeinfo.c (cm_uref): Fix memory leaks.
+ 	(cm_inforef): Likewise.  Handle empty cross reference name.
+ 
+ 1997-07-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* info/echo-area.c (ea_possible_completions): Check that the
+ 	current window can actually be split.
+ 
+ Thu Jul 17 17:19:34 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 
+ 	* emacs/Makefile.am (*clean-lisp): Define, as Automake didn't.
+ 	From: Kenneth Stailey <kstailey@disclosure.com>.
+ 
+ 	* doc/Makefile.am: Do not distribute info.1.
+ 	* makeinfo/macros: Do not distribute this directory, it's merged
+ 		into the main documentation.
+ 	* doc/makeinfo.texi: Don't distribute this either, it's in the
+ 		main manual.
+ 
+ 	* util/install-info.c: Use \n\ for multiline string constant.
+   		From: Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>.
+ 
+ Wed Jul 16 15:29:50 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: @set must be after @setfilename, I guess.
+ 	Noted by Erick Branderhorst.
+ 
+ 	* Applied this change:
+ 
+ Tue Nov 12 22:20:22 1996  John Eaton  <jwe@bevo.che.wisc.edu>
+ 
+ 	* makeinfo.c (INDEX_ALIST): Use two indices, read_index and
+ 	write_index, instead of just one.
+ 	(find_index_offset): If a match is found, return index to the
+ 	current INDEX_ALIST struct, not the index pointing to the list of
+ 	index entries.
+ 	(translate_index): Return read_index from the matching
+ 	INDEX_ALIST.
+ 	(undefindex): Delete the list of index elements pointed to by
+ 	read_index from the INDEX_ALIST that matches name.
+ 	(defindex): Initialize read_index and write_index.
+ 	(index_add_arg): Add entries to the list pointed to by write_index
+ 	from the INDEX_ALIST matching name.
+ 	(index_append): Delete unused function.
+ 	(cm_synindex): Don't merge indcies, just make the write_index for
+ 	redirectee the same as the write_index for redirector.
+ 
+ Tue Jul 15 09:32:04 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Bump edition number for 2.24.
+ 
+ 	* util/Makefile.am (localedir): Define.
+ 
+ 	* info/window.h: Rename __window__ to window_struct.
+ 
+ 	* info/window.h,
+ 	* info/variables.h,
+ 	* info/search.h,
+ 	* info/man.h,
+ 	* info/info-utils.h,
+ 	* info/gc.h,
+ 	* info/footnotes.h,
+ 	* info/filesys.h,
+ 	* info/echo-area.h,
+ 	* info/display.h: Avoid leading _ in #define for #include protection.
+ 
+ 	* makeinfo/makeinfo.c: Version 1.68.
+ 	* info/info.c: Version 2.17.
+ 
+ 	* Most all files: Untabify.
+ 
+ 	* doc/Makefile.am (texinfo): Add explicit target.
+ 
+ 	* emacs/Makefile.am (noinst_LISP): Remove the obsolete
+ 		detexinfo.el (makeinfo --no-headers is better) and
+ 	        texnfo-tex.el (now handled by TeX modes in general).
+ 
+ Mon Jul 14 15:21:03 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/texi2dvi: Update RCS file from 3.9 distribution.
+ 
+ 	* util/Makefile.am (EXTRA_DIST): Add update-info, from
+  		rhawes@dmapub.dma.org
+ 
+ Sun Jul 13 17:05:03 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/signals.c: Use RETSIGTYPE instead of hardwiring void.
+ 	From: "Jeffery L. JT Vogt" <lfm@atw.earthreach.com>.
+ 
+ 	* info/session.c (info_history_node): Rewrite as
+   	      info_kill_node (current_node).
+         (kill_node, read_nodename_to_kill): New functions from info_kill_node.
+ 	(info_kill_node): Now this just calls them.
+ 
+ Fri Jul 11 11:56:58 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Fix `Conditionals' xref.
+ 
+ Thu Jul 10 17:58:12 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/info.texi: Don't say SPC clears ? screen.
+ 
+ Sun Jul  6 16:26:41 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/info-stnd.texi: Document --index-search.
+ 
+ 	* info/tilde.c,
+ 	* info/session.c: Remove redundant getenv decl.
+ 
+ 	* Installed following change:
+ Tue Nov 12 14:44:00 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+ 
+ 	* info/info.c (main): Handle new option, --index-search STRING.
+ 	(index_search_p, index_search_string): New static variables, used
+ 	to handle --index-search option.
+ 
+ 	* info/session.c (initialize_info_session): New arg,
+ 	clear_screen.  Change all callers.
+ 
+ 	* info/indices.h (do_info_index_search, index_intry_exists):
+ 	Provide declarations here.
+ 
+ 	* info/indices.c (do_info_index_search): New function, extracted
+ 	from info_index_search.
+ 	(info_index_search): Simply call do_info_index_search() with
+ 	search_string set to NULL.
+ 	(index_entry_exists): New function.
+ 
+ Sat Jul  5 17:17:14 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Document @kbdinputstyle.
+ 
+ 	* makeinfo/makeinfo.c (kbdinputstyle): New command.
+ 	(cm_no_op_line_arg): New function.
+ 
+ 	* info/termdep.h (HAVE_TERMIOS_H) [NeXT]: #undef.
+ 	From: Gregor Hoffleit <flight@mathi.uni-heidelberg.de> et al.
+ 
+ Fri Jul  4 14:18:08 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/Makefile.am (EXTRA_DIST),
+ 	* util/Makefile.am (EXTRA_DIST),
+ 	* makeinfo/Makefile.am (EXTRA_DIST),
+ 	* lib/Makefile.am (EXTRA_DIST): Include README.
+ 
+ 	* doc/texinfo.texi (makeinfo options): Document --paragraph-indent
+  		values more completely.
+ 	* makeinfo/makeinfo.c (set_paragraph_indent): Allow translated
+  		asis or none, improve doc.
+  	From ke.
+ 
+ 	* doc/Makefile.am (dist-info): New empty target so that we do not
+  		distribute info files.
+  	From Erick Branderhorst.
+ 
+ 	* doc/texinfo.texi (Invoking install-info): Document that the dir
+ 		file is created now if need be.
+ 	* Makefile.am (EXTRA_DIST): No longer need dir.
+ 	* util/install-info.c (ensure_dirfile_exists): New routine.
+ 	(main): Call it before trying to open dirfile for reading.
+ 
+ 	* doc/texinfo.texi: Document install-info --delete a little better.
+ 	* util/install-info.c: Set something_deleted when we delete a
+  		normal line.
+ 	Bug from: Denis Kosygin <dkosygin@math.Princeton.EDU>.
+ 
+ 	* util/install-info.c: If no info dir entry, give warning and exit 0.
+ 
+ Wed Jul  2 06:35:17 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in (ALL_LINGUAS): Add fr.
+ 
+ 	* makeinfo/makeinfo.h (insertion_type, insertion_type_names): Add
+ 		ifnot... entries. Alphabetize.
+ 
+ Tue Jul  1 17:21:54 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (sort_index): Set defining_line and
+ 		input_filename so errors in index entries are reported at
+ 		the correct location.  From rms.
+ 
+ 	* makeinfo/makeinfo.c (cm_ifnothtml, etc.): Routines for new
+  		commands.
+ 
+ Sun Jun 29 09:44:01 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Document new @ifnot... commands, etc.
+ 	* doc/texinfo.texi: Document @image, etc.
+ 
+ Thu Jun 26 17:57:37 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_image): New routine for new command @image.
+ 	(cm_end): Move to better place, doesn't need its own page.
+ 	Doc fixes.
+ 
+ Mon Jun 23 16:54:03 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* Makefile.am (SUBDIRS): Do intl first.
+ 
+ 	* doc/Makefile.am (EXTRA_DIST): Include epsf.tex.
+ 	(install-data-local): Suggest possible installation directory.
+ 	* epsf.tex: New file.
+ 
+ Wed Jun 18 17:51:52 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Document texinfo.cnf.
+ 
+ Sun Jun 15 14:37:58 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi (Command List): Various commands missing or
+ 		erroneous.
+ 	From: Karl_Heinz_Marbaise@p69.ks.fido.de.
+ 
+ 	* makeinfo/makeinfo.c: Oops, failed to break out of loop.
+ 
+ 	* util/texindex.c: Use <getopt.h> not "getopt.h".
+ 
+ 	* All source files: Merge gettext changes from Karl E.;
+ 	his ChangeLog entries below.
+ 
+ Sat Jun 14 17:04:28 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* Makefile.am,
+ 	* makeinfo/Makefile.am: Doc fix.
+ 	* util/Makefile.am (EXTRA_DIST): Add texi2dvi.  From Karl E.
+ 
+ Fri Jun 13 17:39:34 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c [WIN32]: Handle read bogosity and c:\
+ 		absolute paths.
+ 	From: Eric Hanchrow <erich@MICROSOFT.com>.
+ 
+ 	* configure.in (AC_CHECK_HEADERS): Check for pwd.h.
+ 	* info/tilde.c (pwd.h): Move #include to system.h.
+ 
+ 	* makeinfo/makeinfo.c (main): New option -P to prepend to search path.
+ 	From: Kenneth Stailey <kstailey@cvs.openbsd.org>.
+ 
+ 	* doc/texinfo.texi (Invoking makeinfo),
+ 	* doc/makeinfo.texi: Mention -P.
+ 
+ Thu Jun 12 16:25:40 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/signals.h (SIGCHLD): #define as SIGCLD if undefined, for sysV68.
+ 	From: "Philippe De Muyter" <phdm%labauto1@ulb.ac.be>.
+ 
+ 	* util/install-info.c (O_RDONLY): Remove this stuff, it's in system.h.
+  	(main): Handle existing entry in dir file having .info extension.
+ 	From: "Bradley C. Kuszmaul" <bradley@GRANITE.SYSTEMSX.CS.YALE.EDU>.
+ 
+ 	* makeinfo/makeinfo.c (get_char_len): Don't count 8-bit characters
+ 		as two chars in the output.
+ 	From: Sung-Hyun Nam <namsh@amuna.rms.lgic.co.kr>.
+ 
+ Wed Jun 11 16:36:51 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi (Other Info Directories): Document new trailing
+  		: in INFOPATH feature.
+ 
+ 	* info/info.c (main): Have trailing : in INFOPATH expand to the
+  		default path.
+ 
+ Fri Jun  6 13:22:02 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi (uref): New node for new command.
+ 
+ Thu Jun  5 18:13:48 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_uref): New function to accept optional
+ 		second argument.  Call it in command table.
+ 
+ Sat Jun 14 10:54:16 1997  Karl Eichwalder  <ke@suse.de>
+ 
+ 	* mkinstalldirs: Update from automake-1.1p.
+ 
+ 	* configure.in: Touch po/ChangeLog (gettext needs it).
+ 
+ Thu Jun 12 08:37:52 1997  Karl Eichwalder  <ke@ke.Central.DE>
+ 
+ 	* util/texindex.c: Include system.h, remove config.h.
+ 
+ 	* po/POTFILES.in: Fill it.
+ 
+ 	* makeinfo/multi.c: Include system.h.
+ 
+ 	* info/Makefile.am:
+ 	* makeinfo/Makefile.am:
+ 	* util/Makefile.am:
+  	(localedir): Set.
+ 	(INCLUDES): Add intl/ and LOCALEDIR.
+ 	(LDADD): Add @INTLLIBS@.
+ 
+ 	* makeinfo/makeinfo.c (main):
+ 	* util/texindex.c (main):
+ 	* util/install-info.c (main):
+  	setlocale, bindtextdomain, and textdomain.
+ 
+ 	* lib/system.h: Include locale.h and libintl.h.
+ 
+ 	* acconfig.h: Include libintl.h.
+ 	(_, N_): Define.
+ 	Add ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_LC_MESSAGES,
+ 	HAVE_STPCPY for libintl.
+ 	Add @TOP@ and @BOTTOM@.
+ 
+ 	* configure.in (AM_GNU_GETTEXT): Add.
+ 	(AC_OUTPUT): Process Makefiles in intl/ and po/.
+ 	(ALL_LINGUAS): Available languages.
+ 
+ 	* Makefile.am (AUTOMAKE_OPTIONS): Now use 1.1p.
+ 
+ Wed Jun 11 17:05:37 1997  Karl Eichwalder  <ke@ke.Central.DE>
+ 
+ 	* Makefile.am (SUBDIRS): Add intl/ and po/ for NLS.
+ 
+ 	* run `gettextize -c' to get the i18n skeleton.
+ 
+ Wed Jun  4 17:51:08 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (uref): New command, another alias for @code
+  		for now.
+ 
+ Wed Jun  4 02:02:33 1997  Miles Bader  <miles@gnu.ai.mit.edu>
+ 
+         * doc/texinfo.texi (email): { and } need @ escapes.
+ 
+ Sun Jun  1 16:34:12 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi (itemx): @itemx should always follow @item.
+ 
+ 	* makeinfo/makeinfo.c (cm_item): Insert blank line if two
+ 		consecutive @item's.
+ 	From: Karl Eichwalder <ke@ke.central.de>.
+ 	Also various doc fixes.
+ 
+ Tue May 27 17:20:44 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi (various): Document @deftypemethod.
+ 	(email): @ should have been @@ in the example.
+ 	From: Mate Wierdl <mw@wierdlmpc.msci.memphis.edu>
+ 
+ Mon May 26 16:56:26 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/multi.c (setup_multitable_parameters): Avoid use of %n
+ 		for sake of m68k-hp-bsd.
+ 	From: Derek L Davies <ddavies@world.std.com>.
+ 
+ 	* info/terminal.c (terminal_begin_using_terminal,
+         terminal_end_using_terminal): Call fflush and sleep to handle
+ 	cmdtool/shelltool with scrollbars.  Also ignore
+  	SIGWINCH so we do not prematurely exit.  Move call.
+ 	(terminal_prep_terminal): Disable LNEXT (CTRL-V).
+ 	From: strube@physik3.gwdg.de (Hans Werner Strube).
+ 
+ 	* configure.in (AC_TYPE_SIGNAL): Check this.
+ 
+ Sun May 25 16:49:58 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (discard_insertions): Take arg saying
+  		whether ifinfo/ifset/etc. are ok.
+         (convert_from_loaded_file): At `finished', call discard_insertions.
+ 	(handle_variable_internal): Complain if we reach eof before the
+ 		@end for a false condition.
+ 	From: HERBERT@boevm4.vnet.ibm.com.
+ 
+ 	* info/Makefile.am (ginfo_SOURCES): Add doc.h.
+ 	* lib/Makefile.am (libtxi_a_SOURCES): Add system.h.
+ 
+ Sat May 24 18:08:27 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c: Check that we have macro_expansion_filename
+  		before using strcmp.
+ 
+ Thu May 22 17:59:46 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/makeinfo.texi: Minimally document --force.
+ 
+ 	* makeinfo/makeinfo.c (--force): New option.
+ 	(-E): Allow stdout via `-'.
+ 	(convert_from_loaded_file): Unlink output files if errors and !force.
+ 
+ Tue May 20 17:48:42 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c: Change all strdup calls to xstrdup.
+ 	(xmalloc, xrealloc, memory_error): Remove these functions, they're
+ 		in lib.
+ 	(set_paragraph_indent, cm_paragraph_indent): Move to misc page.
+ 	(cm_footnote): Expand macros in the arg for the macro expansion output.
+ 
+ Fri May 16 17:26:59 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_macro): Allocate an empty body if the
+  		macro was empty.
+  	(cm_unmacro): Allocate one more byte for the null.
+ 	From: Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>.
+ 
+ Sun May 11 17:51:21 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* makeinfo/makeinfo.c (cm_printindex): Fix calculation of the
+ 	length of an index line.
+ 
+ Sun May 11 14:47:42 1997  Tom Tromey  <tromey@cygnus.com>
+ 
+ 	* makeinfo/makeinfo.c (main): Don't unconditionally run usage when
+ 	-e specified.
+ 
+ Sun May 11 17:47:42 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (init_indices): Free the source for an @synindex.
+ 	(undefindex): Do not go further if the target was already freed.
+ 	(free_index): Do not free the node names, as init_tags already did.
+ 	(cm_synindex, index_add_arg): Improve error message.
+ 	(program_index, function_index, etc.): Remove these unused #defines.
+ 
+ Tue May  6 17:53:37 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (init_internals): Do not free current_node,
+         it already is, at least when multiple input files are specified.
+ 	From: Karl Eichwalder <ke@ke.central.de>.
+ 
+ Mon May  5 16:14:39 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Mention both alignment and non-alignment of
+  		continuation description lines in menus (Arnold).
+ 
+ Sun Apr 27 16:12:44 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (apply): Handle body being `\string'.
+ 	Also, avoid dereferencing a null pointer when a macro has no named
+ 	parameters.
+ 	From: Eli Zaretskii <eliz@is.elta.co.il>.
+ 
+ 	* makeinfo/makeinfo.c: Wording changes/fixes in warnings.
+ 
+ 	* info/session.c (info_get_input_char): Do not mix stdio with raw I/O.
+ 	From: Egil Kvaleberg <egilk@sn.no>.
+ 
+ 	From Tom Hageman <tom@basil.icce.rug.nl>.  These changes make
+         arrow keys work:
+ 	* info/infomap.c: Add arrow key bindings.
+         (keymap_bind_keyseq): New support function.
+ 	(initialize_info_keymaps): Use it.
+ 	(term_ku,term_kd,term_kl,term_kr): Remove explicit declarations;
+ 	use #include "terminal.h" instead.
+ 	* info/session.c (initialize_info_session): Unbuffer stdin.
+ 	(info_get_another_input_char): Fix bug in `ready' logic.
+ 	* info/terminal.h,
+ 	* info/terminal.c (term_kP, term_kN): New variables to hold
+  		PageUp, PageDown key sequences.
+ 	  (terminal_initialize_terminal): Set them.
+ 
+ 	* util/texindex.c (main),
+ 	* util/install-info.c (main),
+ 	* makeinfo/makeinfo.c (print_version_info),
+ 	* info/info.c (main): Use PACKAGE and VERSION from Automake for
+  		printing version number.
+ 
+ Sat Apr 26 19:19:46 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (get_until_in_line): Do not expand if
+ 		executing_string.
+ 	Also, free temporary strings.
+ 	Also, untabify entire file.
+ 
+ 	* doc/texinfo.texi: Many corrections from Arnold.
+ 
+ Thu Apr 24 16:31:09 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/multi.c (draw_horizontal_separator): Account for indent
+  		here also.  From Ulrich.
+ 
+ Wed Apr 23 15:15:34 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_today): Use time_t instead of long;
+  		everyone else does.
+  	(LOCALTIME_CAST): Remove kludge, we'll always use time_t now.
+ 
+ 	* info/Makefile.am (ginfo_SOURCES): Remove general.h, that got
+  		merged into system.h.
+ 
+ Mon Apr 21 17:13:25 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/multi.c (output_multitable_row): Account for
+  	column_indent, both the global one and for each column.
+ 	(setup_multitable_parameters): Account for column_indent in the table
+ 	width in the columnfrac case, but don't bother with the template
+  		case for now.
+ 
+ Sun Apr 20 16:32:00 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (output_stream): Remove redundant
+         definition; it's in makeinfo.h,
+ 	and a vaxstation-ultrix4.3 fails to link because of the two defns.
+ 	From: Anders Olofsson <anders@kid025.ericsson.se>.
+ 
+ 	* makeinfo/makeinfo.c (expansion): Inhibit appending to the macro
+  		expansion stream.
+  	(get_until_in_line): Possibly expand the text.
+ 	Change caller in get_node_token to do the expansion,
+ 	all other calls to remain the same.
+ 
+ 	* makeinfo/makeinfo.c (cm_node): No need to call strlen to check
+  		for the empty string.
+ 
+ 	* doc/texinfo.texi: Restore missing @c for initial comment.
+ 
+ Fri Apr 18 17:41:36 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Mention that .info is unnecessary in the info
+ 		file name argument of an xref.
+ 
+ 	* doc/texinfo.texi: Mention texi2dvi -t instead of embedding
+  		@smallbook or @afourpaper in the document source.
+ 
+ Sun Apr 13 15:19:08 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* lib/system.h (_GNU_SOURCE): #define.
+ 
+ Mon Apr  7 16:30:11 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/info.texi,
+ 	* doc/info-stnd.texi,
+ 	* doc/texinfo.texi: Do not make (dir) the previous ptr from the top node,
+ 	and tell people not to do that in the manual.
+ 	From: rmedina@kanojo.ivic.ve (Rodrigo Medina),
+ 	confirmed by rms.
+ 
+ Fri Apr  4 16:30:33 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c: Move error page to top to avoid
+ 	prototypes, and do add prototypes for add_word_args and execute_string,
+ 	so we can use <stdarg.h>.
+ 
+ 	* info/makedoc.c,
+ 	* info/nodemenu.c: Use %ld instead of %d for file offsets.
+ 	* makeinfo/makeinfo.c (delete_macro): Decrement macro_list_len.
+ 	(get_macro_args): Decrement line number if see \n.
+ 	* utils/texindex.c (indexify): Use fputs instead of fprintf
+ 	for constant string.
+ 	From: Eli Zaretskii <eliz@is.elta.co.il>.
+ 
+ Thu Apr  3 17:40:52 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in (AC_CHECK_HEADERS): No need to check for vararg.h
+ 	here, AC_FUNC_VPRINTF does it.
+ 	(AC_CHECK_FUNCS): Likewise for vsprintf and vfprintf.
+ 	* makeinfo/makeinfo.c (add_word_args, execute_string): Rewrite
+ 	like the error functions.
+ 
+ Wed Apr  2 17:46:28 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in: Add AC_FUNC_VPRINTF.
+ 	* makeinfo/makeinfo.c (error, line_error, warning): Rewrite a la
+         error.c from the *utils to use <stdarg.h> if available.
+ 
+ Tue Apr  1 11:48:40 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* doc/texinfo.texi: Tabs are a bad idea.
+ 
+ 	* doc/userdoc.texi,
+ 	* doc/info.texi: Untabify.
+ 
+ Sun Mar 30 17:36:47 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (end_of_sentence_p): New function.
+ 	(add_char): Call it, instead of simply sentence_ender.
+ 	(post_sentence): New macro.
+ 	Also, remove some #include's now in system.h.
+ 	* lib/system.h [VMS]: #include <perror.h>, from makeinfo.
+ 
+ Thu Mar 27 17:41:03 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/search.c (skip_node_characters): Do not arbitrarily
+ 	strip trailing period from end of node name; this is valid.
+ 
+ Mon Mar 24 16:44:42 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* configure.in (AC_OUTPUT): Don't need to create stamp-h here,
+ 	tromey says AM_CONFIG_HEADER will do it.
+ 
+ 	* info/Makefile.am, util/Makefile.am, makeinfo/Makefile.am (INCLUDES):
+         Don't need -I.. (for config.h) or -I$(srcdir), says tromey.
+         Automake includes those already.
+ 
+ Fri Mar 14 15:05:17 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/Makefile.am: Build as ginfo, install as info,
+ 	to avoid conflict with the standard info target.
+ 
+ 	* lib/system.h: New file.
+ 	* makeinfo/makeinfo.c (strerror): Remove declaration,
+ 	include system.h, remove other redundant #if stuff.
+ 	* info/general.h: Include system.h instead of doing common stuff.
+ 	* util/install-info.c (my_strerror): Remove this, use strerror,
+ 	include system.h.
+ 
+ 	* info/terminal.c (terminal_prep_terminal): Only use OCRNL and
+ 		ONLCR if they are defined.  Reported by many people.
+ 
+ 	* Installed:
+ 
+ 	Sun Dec  1 19:23:54 1996  Karl Eichwalder  <ke@ke.Central.DE>
+ 
+ 		* configure.in (TERMLIBS): Add ncurses.
+ 
+ Thu Mar 13 13:59:45 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* lib/Makefile.am (libtxi_a_SOURCES): Add xstrdup.c.
+ 	* info/*.c: Use xstrdup instead of strdup everywhere.
+ 
+ 	* info/tilde.c: Do not include clib.h, move stdlib.h include to
+ 	* info/general.h: here.
+ 
+ 	* configure.in (AC_CONFIG_HEADER): Use this,
+ 	to avoid hugely long compile line with all the -D's.
+ 	* info/general.h: Include <config.h>.
+ 
+ 	* emacs/Makefile.am (install, install-data): Do @echo
+ 	to tell the user to compile/install the elisp manually.
+ 
+ 	* configure.in (AC_REPLACE_FUNCS): Move strerror check to here.
+ 	(AC_CHECK_FUNCS): From here.
+ 
+ 	* lib/strerror.c: New file, from enscript (et al.) distribution.
+ 
+ Tue Mar 11 16:36:25 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/Makefile.am (info_SOURCES): Add doc.c, dribble.c, infodoc.c.
+ 	(LDADD): Add @TERMLIBS@.
+ 
+ 	* info/info.h: HANDLE_MAN_PAGES, NAMED_FUNCTIONS: Define these.
+ 
+ 	* info/filesys.h: Spurious ! when DEFAULT_INFOPATH is not defined.
+ 
+ 	* configure.in (AC_OUTPUT): Do lib first and doc last.
+ 
+ 	* info/echo-area.c,
+ 	* info/echo-area.h,
+ 	* info/info.h: Rename echo_area to echo-area.
+ 
+ Mon Mar 10 17:59:05 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* */Makefile.am: Write Makefile.am files for Automake.
+ 	* doc: New subdirectory, move all manuals and texinfo.tex there.
+ 	* AUTHORS, THANKS, config.guess, config.sub, mkinstalldirs: New files,
+ 	required by Automake.
+ 	* lib/xmalloc.c: Move from info/.
+ 
+ Fri Oct  4 07:49:49 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* Version 3.9.
+ 
+ 	* Makefile.in (install): Say to install texinfo.tex manually.
+ 
+ 	* util/texi2dvi,
+ 	* util/texindex.c,
+ 	* makeinfo/makeinfo.c,
+ 	* info/info.c: Include only the current year in the copyright message.
+ 
+ 	* util/texi2dvi: Exit successfully.
+ 	From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>.
+ 
+ Thu Oct  3 12:58:32 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* Rename install.sh to the preferred install-sh.
+ 
+ 	* Makefile.in (VERSION),
+ 	* util/texi2dvi,
+ 	* util/texindex.c,
+ 	* util/install-info.c,
+ 	* makeinfo/makeinfo.c (minor_version, print_version_info),
+      	* info/info.c: Update version number.
+ 
+ 	* util/texi2dvi: Only show diff if verbose.
+ 
+ 	* util/install-info.c (main): Check for a missing dir file as well
+  	as a missing info files.
+ 	(main): At start of a node, completely initialize the newly-malloced
+ 	node structure.
+ 
+ 	* texinfo.texi: Fix incorrect uses of @key,
+ 	insert missing newline in Installing Dir Entries' @menu item,
+ 	document install-info invocation.
+ 
+ 	* Makefile.in (DISTFILES): Do not put .gdbinit's in distribution.
+ 	(dist): Use || instead of && (and invert sense) so make doesn't think
+ 	the command failed.
+ 	(dist): Exclude more junk.
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): Back out patch from Tom T., since
+         we generate a good-enough error message that is suppressible
+         without it.
+ 
+ 	* util/gen-dir-node: The recommended name for the top-level info
+  	file is dir, not dir.info.
+ 
+ 	* util/install-info.c (main): At `Mark the end of the Top node',
+         make sure the node name is non-NULL before comparing it. From
+         lvirden@cas.org.
+ 
+ 	* configure.in (AC_REPLACE_FUNCS): Use this for memcpy, memmove,
+ 	and strdup.
+         (AC_CHECK_FUNCS): Instead of this.
+ 	Because both bcopy and memmove are missing on the 3b2, as reported by
+ 	Gaylen Miller <gaylen@proaxis.com>, hence we must provide our own.
+ 	* libtxi/Makefile.in (LIBOBJS): New variable.
+ 	(OBJS): Include it.
+ 	* libtxi/memcpy.c, libtxi/memmove.c, libtxi/strdup.c: New files,
+ 	taken from fileutils 3.13.
+ 	* makeinfo/makeinfo.c,
+ 	* info/clib.c (strdup): Move to libtxi.
+ 
+ Wed Oct  2 18:23:30 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/info-utils.h (memcpy) [!HAVE_MEMCPY],
+ 	* info/termdep.h (memcpy) [!HAVE_MEMCPY],
+ 	* makeinfo/makeinfo.c (memmove) [!HAVE_MEMMOVE]: Remove this
+         #ifdef, as we now include it in libtxi if missing.
+ 
+ Tue Oct  1 17:41:52 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/Makefile.in (install),
+ 	* info/Makefile.in (install),
+ 	* Makefile.in (install): Use new option name --info-dir instead of
+  	--infodir.
+ 
+ 	* makeinfo/multi.c (out_char): New fn.  Replace all calls to
+ 	putc/fprintf with calls to this.
+ 
+ 	* util/install-info.c: Rename --infodir to info-dir.
+ 
+ Mon Sep 30 10:07:21 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* Version 3.8.
+ 
+ 	* texinfo.tex: Untabify.
+ 
+ 	* texinfo.tex (\ptexl, \ptexL): Do not save, we have our own
+ 	commands now.
+ 	(\onepageout): Reformat for readability, and call \indexdummies
+ 	to avoid expansion of Texinfo commands (e.g., accents) in \write's.
+ 	(\,, \dotaccent, \ringaccent, \tieaccent, \ubaraccent, udotaccent,
+ 	\questiondown, \exclamdown, \dotless): New macros.
+ 	(\l): Let plain TeX definition remain, instead of switching
+ 	to ``lisp'' font.
+ 	(\multitable): Ensure space between the columns,
+ 	insert struts to make interline spacing constant,
+ 	use real strut instead of a box containing `Xy'.
+ 	(\indexdummies): Do not define \rm, \char, but
+ 	do define \@, \{, \}, \dotless, and \,.  And \t should generate
+ 	\t, not \r.
+ 	(\indexnofonts): Define \, and \dotless as \indexdummyfont,
+ 	and let \@ be @.
+ 	(\doind): Reformat for readability, and use temp control sequence
+ 	names that actually make sense.
+ 	(\doublecolumnout, \pagesofar, \enddoublecolumns): Restore
+ 	Knuth's original code to avoid spurious overfull vbox messages.
+ 	(No boxes are actually overfull).
+ 	(\shortcontents): Do not allow hyphenations.
+ 	(\dochapentry, \tocentry): Make glue above and below flexible, to allow
+ 	better page breaks.
+ 	(\tex): Reset \, to its plain TeX meaning,
+ 	and do not reset \l.
+ 
+ 	* COPYING: Update for new FSF address (from gcc dist).
+ 
+ 	* libtxi/Makefile.in: Various simplifications.
+ 
+ Sun Sep 29 12:58:44 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/texi2dvi: Use $progname instead of $0 for --version.
+ 
+ 	* util/install-info.c (xmalloc, xrealloc): Declare malloc and
+ 	realloc as returning void *,
+ 	to avoid ptr/int problems on Digital Unix.
+ 
+ 	* info/tilde.c (tilde_expand_word): Declare getenv as returning char *,
+ 	to avoid warning on Digital Unix.
+ 
+ 	* makeinfo/multi.c (multitable_active): Declare extern here to
+  	avoid ld warning on rs6000.
+ 
+ 	* util/texindex.c (usage): Avoid ??' trigraph.
+ 
+ 	* util/install-info.c: Include <sys/fcntl.h> or <fnctl.h>,
+ 	according to HAVE_SYS_FCNTL_H,
+ 	and only include <sys/file.h> if HAVE_SYS_FILE_H.
+ 	(readlines): Oops, had NULL's and 0's reversed for ptr/int members.
+ 
+ 	* info/terminal.c (terminal_goto_xy): Remove spurious extra ;.
+ 
+ 	* util/install-info.c: Untabify.	(input_sections): Initialize.
+ 	(find_lines): Initialize the terminating element of the array.
+ 	(print_help): Document --infodir.
+ 	(main): Compare the basename of infile sans .info to the dir entry,
+ 	not infile itself.
+ 	* util/Makefile.in (clean): Remove the install-info binary.
+ 
+ 	* info/Makefile.in (distclean): Remove *.info* files.
+ 
+ 	* Makefile.in (install),
+ 	* info/Makefile.in (install),
+ 	* makeinfo/Makefile.in (install): Use --infodir instead of --info-file.
+ 
+ 	* info/info.c,
+ 	* makeinfo/makeinfo.c: Avoid newlines in string constants for the
+  		sake of SunOS cc.
+ 
+ 	* makeinfo/multi.c: Do not assume ANSI C.
+ 
+ 	* info/info.texi: Oops, need @end vtable for a @vtable.
+ 
+ Sat Sep 28 16:31:28 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* Makefile.in (texinfo): Do not depend on sub-all, as then
+         makeinfo is always run.  Instead, depend on texinfo.texi.
+ 
+ 	* makeinfo/Makefile.in (info, dvi): New targets.
+ 	makeinfo.info, makeinfo.dvi: Do not depend on macro.texi for now.
+ 
+ 	* info/Makefile.in (install): Must call install-info twice.
+ 
+ 	* info/info-stnd.texi,
+ 	* info/info.texi,
+ 	* makeinfo/makeinfo.texi: Include direntry.
+ 
+ 	* emacs/Makefile.in: Use && after cd, etc.
+ 
+ 	* texinfo.texi: Kludges so makeinfo -E will not create spurious
+         differences.  Add new direntries.
+ 
+ 	* util/install-info.c,
+ 	* util/texindex.c,
+ 	* makeinfo/makeinfo.c,
+ 	* info/info.c: Standardize --version output.
+ 
+ 	* makeinfo/makeinfo.c (defun_internal): Don't insert index command
+  	if expanding macros.
+ 	(cm_footnotestyle): Don't change the footnote style if it was set
+ 	on the command line.
+ 
+ 	* util/texi2dvi: Recompute original index files each time through loop.
+ 	Make indentation uniform.
+ 	Use same basename for the temp input files.
+ 	Standardize --version output.
+ 
+ 	* info/Makefile.in (install),
+ 	* makeinfo/Makefile.in (install): Insert $(POST_INSTALL).
+ 
+ Fri Sep 27 13:27:30 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.texi (Format with texi2dvi): Rewrite now that the script
+  	runs in a loop.
+ 
+ 	* info/Makefile.in (MAKEINFO): Simplify to ../makeinfo/makeinfo.
+ 
+ Fri Sep 27 00:26:03 1996  Miles Bader  <miles@gnu.ai.mit.edu>
+ 
+ 	* info/terminal.c [HAVE_TERMIOS_H] (terminal_prep_terminal,
+ 	terminal_unprep_terminal): Add code for termios.
+ 	[HAVE_TERMIOS_H] (original_termios, ttybuff): New variables.
+ 	* info/termdep.h: [HAVE_TERMIOS_H]: Add include of <termios.h>.
+ 	* configure.in: Add check for <termios.h>.
+ 
+ Thu Sep 26 10:46:34 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* emacs/texnfo-upd.el,
+ 	* emacs/texinfo.el,
+ 	* emacs/texinfmt.el: Update from bob for new Texinfo commands, etc.
+ 
+ 	* emacs/info.el, emacs/informat.el, emacs/makeinfo.el,
+ 	emacs/texnfo-tex.el: Update from Emacs 19.34 dist.
+ 
+ 	* emacs/elisp-comp: Use TMPDIR if set.
+ 
+ 	* util/Makefile.in (libdir): Remove.
+ 
+ 	* makeinfo/Makefile.in (install),
+ 	* Makefile.in (install),
+ 	* info/Makefile.in (install): Run install-info.
+ 	(libdir): Remove.
+ 
+ 	* texinfo.texi: Various fixes as I make this go through TeX.
+ 
+ 	* util/install-info.c: Quote newlines in help message.
+ 
+ 	* util/texi2dvi (texi2dvi): Run TeX until the aux/index files
+         stabilize, instead of just twice.  From: David Shaw
+         <daves@gsms01.alcatel.com.au>.
+ 
+ Tue Sep 24 14:43:03 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* dir: Blank dir file for installation on new systems.
+ 
+ Mon Sep 23 12:18:43 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (args_from_string): Do not back up at a };
+  		that leads to an infinite loop.
+ 
+ Sat Sep 21 17:48:04 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_xref): Do not seg fault if outside of
+  	any node.  From: Tom Tromey <tromey@creche.cygnus.com>.
+ 	(cm_ctrl): Make obsolete.
+ 
+ Tue Sep 17 13:30:08 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\inforef): Move to more appropriate place.
+ 	(\pounds): Remove spurious extra $.
+ 	(\email): Typeset argument in angle brackets.
+ 	(\macro): Use \doignore for robustness, instead of just letting TeX
+ 	parse the argument.
+ 	(\unmacro): Define.
+ 
+ Sat Sep 14 16:17:35 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.texi: Document multitables, new ISBN number.
+ 
+ Wed Sep 11 18:01:24 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/multi.c (struct env): Remove unused output_position
+         field; this needs to be global.
+         (setup_multitable_parameters): Implement template-defined multitables.
+ 	(output_multitable_row): Remove trailing whitespace.
+ 
+ 	* makeinfo/makeinfo.c (_READ_BUFFER_GROWTH, struct _defines):
+ 	Remove leading underscore for POSIX/ANSI pedants.
+ 	(init_conversion): Initialize output_position here.
+ 	(init_paragraph): Instead of here, where it loses with the
+ 	multitable calls, eventually resulting in negative counts to the
+ 	write call when the output file is split.
+ 
+ 	* texinfo.texi: First cut at macro documentation.
+ 	Change accent doc to use tables.
+ 	Remove whitespace experiments, they are now the default.
+ 
+ Mon Sep  9 14:16:24 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c: Use putc instead of fprintf where possible.
+         (cm_accent): Put _ from @ubaraccent after argument.
+ 
+ 	* util/texindex.c (strerror) [!strerror]: Conditionalize
+  		declaration.
+ 
+ Sat Sep  7 14:13:24 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (commandTable): Obsolete @setchapterstyle.
+ 
+ Thu Sep  5 15:45:11 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): Oops, fix
+  		wording of initial output comment.
+ 
+ 	* makeinfo/makeinfo.c (cm_angle_brackets): Rename from cm_key.
+         (commandTable): @email should produce angle brackets.
+ 	@key: Change name.
+ 
+ Tue Sep  3 14:52:17 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\hsize): Decrease.
+         (\hoffset): Increase.
+ 	(\setleading): Decrease dramatically.
+ 	This change affects 8.5x11 format only.
+ 
+ 	* texinfo.texi: Document accent commands.
+ 
+ Mon Sep  2 11:10:49 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (commandTable): Deprecate @ichapter and
+ 	@titlespec.
+ 	Move all the deprecated @i<section> commands to the end of the list.
+ 
+ 	* texinfo.texi: Document @pounds{} and @centerchap{}.
+ 
+ 	* texinfo.tex (\centerchfplain): Rewrite to use \chfplain, and to
+  	actually center.
+ 	(\unnchfplain): Just call \chfplain.
+ 	(\chfplain): Rewrite to be generally callable.
+ 	(\centerparametersmaybe): Hook, a no-op except with @centerchap.
+ 
+ Sun Sep  1 15:01:49 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.texi: Document @<whitespace>, rearrange spacing section.
+ 
+ 	* makeinfo.c (commandTable): Make @. @? @! insert themselves,
+  	not be sentence-non-enders.  They are sentence *enders*.  Also,
+  	make @\t and @\n insert a normal space character, not themselves.
+   	Also, define @hyphenation.
+ 	(insert_space): New function.
+ 	(cm_ignore_sentence_ender): Remove this.
+ 	(flush_output): Check only for META-SPC, not META-<sentence-ender>.
+ 
+ Fri Aug 30 18:55:30 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.texi: Document @- and @hyphenation{}.
+ 	Miscellanous fixes.
+ 
+ 	* makeinfo/makeinfo.c (commandTable): Define @- as cm_no_op, since
+  	makeinfo doesn't do hyphenation.
+ 
+ Thu Aug 29 13:05:38 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\key): Do not uppercase the argument; key names
+ 	can be mixed case, e.g., `Control'.
+ 
+ 	* makeinfo/makeinfo.c: @infotop, @infounnumbered,
+ 	@infounnumberedsec, @infounnumberedsubsec,
+ 	@infounnumberedsubsubsec, @infoappendix, @infoappendixsec,
+ 	@infoappendixsubsec, @infoappendixsubsubsec, @infochapter,
+ 	@infosection, @infosubsection, @infosubsubsection:
+ 	  Remove these long-since obsolete commands.
+ 	@iappendix, @iappendixsection, @iappendixsec, @iappendixsubsec,
+ 	@iappendixsubsubsec, @ichapter, @isection, @isubsection,
+ 	@isubsubsection, @iunnumbered, @iunnumberedsec, @iunnumberedsubsec,
+ 	@iunnumberedsubsubsec:
+  	  Deprecate these.
+ 	@infoinclude:
+ 	  Obsolete this.
+ 	@,: Have to take an argument, since have to do @,{c} not c@,; can't
+ 	feasibly implement the latter in TeX.
+ 
+ 	* makeinfo/makeinfo.c: Rename @d to @udotaccent, since this is
+  		relatively infrequently used.
+ 
+ Tue Aug 27 14:58:56 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/info.c (print_short_help),
+ 	* util/install-info.c (print_help),
+ 	* util/texi2dvi,
+ 	* makeinfo/makeinfo.c (usage) Include bug reporting address.
+ 
+ Mon Aug 26 15:27:17 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (commandTable): Remove @input, @medbreak,
+  		@smallbreak, @overfullrule, @br.
+ 
+ Sun Aug 25 17:25:48 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (commandTable): Unify commands that perform
+         the same operation, such as cm_file, cm_samp, cm_email,
+         etc., which all do cm_code.
+ 
+ 	* texinfo.texi: Document @ifhtml ... @end ifhtml.  Change
+ 	`PlainTeX' to `plain TeX'.
+ 
+ Fri Aug 23 16:03:16 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\pounds): New Texinfo command @pounds{}.
+ 	(\parskip): New smaller value.
+ 	(\chapheadingskip, \secheadingskip, \subsecheadingskip): New smaller
+ 	values, both for 8.5x11 and @smallbook formats. From Bob.
+ 
+ 	* makeinfo/makeinfo.c (cm_special_char): @pounds{} prints a #.
+ 	(commandTable): Add new command @pounds.
+ 
+ Tue Aug 20 13:47:20 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (CommandTable): Restore "!", accidentally
+         removed previously.
+ 
+ 	* texinfo.tex (\key): Typeset a lozenge around the argument (from
+ 	gildea@intouchsys.com).
+ 	* makeinfo/makeinfo.c (cm_key): Surround arg with <...> to match
+         new lozenge style in TeX.
+ 
+ Wed Aug 14 16:59:23 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.texi: Propagate change from rms.
+ 
+ Tue Aug 13 11:33:27 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.texi: Propagate change from rms.
+ 
+ 	* texinfo.texi: Document other @headings options.
+ 
+ Sun Aug 11 13:19:42 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_accent, cm_special_char, cm_dotless):
+ 	New functions.
+ 	(CommandTable): Add new commands for all of plain.tex's
+ 	accents and non-English characters.
+ 
+ Fri Aug  9 14:12:07 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (convert_from_loaded_file): Say we're making
+  	``text'' file if no_headers.  Also, use `input_filename' instead
+  	of just `name' for clarity.
+ 	(suffixes): Check for no suffix last, i.e., prefer `foo.texi' as an
+ 	input file to `foo'.  (The latter is probably a binary.)
+ 
+ Mon Aug  5 13:52:39 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\heading, \subheading, \subsubheading): Can no
+  	longer call the nonexistent \*secheadingi series. Instead, call
+  	\plain*secheading.
+ 	(\plainsubsecheading, \plainsubsubsecheading): New macros, by analogy
+ 	with \plainsecheading.
+ 	(\unnumberedsubseczzz, \unnumberedsubsubseczzz): Call them.
+ 
+ Sun Aug  4 16:46:10 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* makeinfo/makeinfo.c (flush_output): Mask out eighth bit, that we
+  	turned on in non-sentence enders.
+ 
+ Sat Aug  3 14:03:10 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\HEADINGSdouble, \HEADINGSsingle,
+  	HEADINGSdoubleafter, \HEADINGSsingleafter, \CHAPPAGoff,
+  	\CHAPPAGon, \CHAPPAGodd): Set \contentsalignmacro, analogous to
+  	\pagealignmacro.
+ 	(\startcontents): Call \contentsalignmacro instead of \pagealignmacro.
+ 
+ Mon Jul 29 14:44:33 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\indexfonts): Make leading be 12pt. Otherwise, it's
+  	too crammed.
+ 	(\smalllispx): Remove \setleading{10pt}. That was too small.
+ 	(\doprintindex): Do not call \tex ... \Etex.  Index files are Texinfo
+ 	source, not TeX source, except for using \ instead of @ as the
+  	escape character (for now).
+ 
+ Sun Jul 28 13:37:05 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (paragraphindent): Move to more reasonable place in
+         the source file.
+         (chapfonts, secfonts, subsecfonts, indexfonts): Call \setleading.
+ 	(\chfplain, \secheading, \plainsecheading, \subsecheading,
+ 	 \subsubheading): Rewrite to properly \hangindent the title.
+      	(\sectionheading): New generic macro to print section titles.
+ 
+ 	* texinfo.texi: Update the `Obtaining TeX' node.
+ 
+ Fri Jul 26 14:11:48 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/texi2dvi: Do macro expansion with makeinfo before running TeX.
+ 	Various expansion safety measures added for test; avoid use of -o.
+ 
+ 	* makeinfo/makeinfo.c (usage): More usage message tweaks.
+ 
+ Fri Jul 26 11:55:37 1996  Karl Berry  <karl@laurie>
+ 
+ 	* util/texi2dvi: Format usage message to conform to the other *utils.
+ 
+ Thu Jul 25 17:05:47 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* emacs/Makefile.in: Do not compile the Elisp by default.  We
+ 	don't install it, so it confuses people to compile it.
+ 
+ Sun Jul 21 07:20:09 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* util/Makefile.in (install-info): Dependency should be
+  	  install-info.o, not install-info. Also, update copyright years.
+ 
+ 	* makeinfo/makeinfo.c (cm_printindex): Don't call execute_string
+         to print index entries, we've already done the expansion now.
+ 
+ 	* makeinfo/makeinfo.h: Add copyright.  Finish merge of rms changes.
+ 	* makeinfo/makeinfo.c: Finish merge, add my expansion changes again.
+ 	* makeinfo/multi.c: Add copyright message.
+ 
+ Fri Jul 19 10:35:22 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* info/info.c: Update copyright date.
+ 
+ 	* info/info.texi,
+ 	* util/install-info.c,
+ 	* emacs/Makefile.in,
+ 	* emacs/texnfo-tex.el,
+ 	* emacs/Makefile.in: Change FSF address.
+ 
+ 	* Merged changes from bfox -- below, plus multitable changes, plus
+ 	lots more.
+ 
+ 	    Sun Apr 14 08:49:50 1996  Brian J. Fox  <bfox@nirvana.samsara.com>
+ 
+ 		    * makeinfo/makeinfo.c (remember_node_reference): Numerous commands
+ 		    call remember_node_reference.  If a node has not yet been defined,
+ 		    use the empty string as the current node for those cases.
+ 
+ 	    Mon Feb 12 17:35:38 1996  Brian J. Fox  <bfox@nirvana.samsara.com>
+ 
+ 		    * makeinfo/makeinfo.c (push_node_filename): Clean up calls to
+ 		    xmalloc and xrealloc.  Only have to call xrealloc.
+ 
+ 	    Fri Jan 26 08:00:38 1996  Brian J. Fox  <bfox@nirvana.samsara.com>
+ 
+ 		    * info/session.c (info_input_buffer_space_available): Fix typo
+ 		    which forced the limitation of the sizeof (int) instead of sizeof
+ 		    (buffer).
+ 
+ 		    * Makefile.in (PACKVER): now at 3.8.  Add TERMIOS support to
+ 		    Info.  Minor bugs fixed in Makeinfo.
+ 
+ Sat Jul 13 11:58:57 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.texi (ftable vtable): Mention example.
+ 
+ Sun Jun 30 14:59:51 1996  Karl Berry  <karl@goldman.gnu.ai.mit.edu>
+ 
+         * makeinfo/makeinfo.c (cm_email): New function for new @email command.
+ 	* texinfo.texi (email): New node documenting it.
+ 
+ Wed Apr 17 18:07:34 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_kbd): Do nothing if in @example or @code.
+ 	(struct brace_element): New field in_fixed_with_font.
+ 	(remember_brace_1): Save in_fixed_with_font.
+ 	(pop_and_call_brace): Restore in_fixed_with_font.
+ 	(cm_code): Don't decrement in_fixed_with_font at end of construct.
+ 	(struct istack_elt): New field in_fixed_with_font.
+ 	(push_insertion, pop_insertion): Save and restore in_fixed_with_font.
+ 	(end_insertion): Don't decrement in_fixed_with_font here.
+ 	(not_fixed_width): New function.
+ 	(cm_sc, cm_var, cm_italic, cm_roman, cm_titlefont):
+ 	Use not_fixed_width.
+ 
+ Sat Apr 13 23:22:05 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* util/install-info.c (main): Fatal error if no input file spec'd.
+ 	Look for START-INFO-DIR-ENTRY, not BEGIN-INFO-DIR-ENTRY.
+ 
+ Thu Apr 11 18:21:50 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_enddots): New function.
+ 	(self_delimiting): Accept -, ^ and ".
+ 	(CommandTable): Add commands -, ^, ", enddots, centerchap.
+ 
+ Sun Mar 24 12:18:32 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* makeinfo/makeinfo.c (enum insertion_type): Add `direntry'.
+ 	(insertion_type_names): Add "direntry".
+ 	(cm_dircategory): New function.
+ 	(cm_direntry): New function.
+ 	(CommandTable): Add "dircategory" and "direntry".
+ 	(insert_string): New function.
+ 	(end_insertion): Handle direntry.
+ 	(begin_insertion): Handle direntry.
+ 
+ Sun Mar 24 11:10:05 1996  Karl Berry  <karl@spiff.gnu.ai.mit.edu>
+ 
+         * makeinfo/makeinfo.c (cm_url): New function for new @url command.
+ 
+ Fri Feb 23 21:14:40 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* info/Makefile.in (install, uninstall): Use manprefix.
+ 
+ Fri Feb 23 19:50:18 1996  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
+ 
+ 	* util/Makefile.in (install-info, install-info.o): New targets.
+ 	(all): Depend on install-info.
+ 	(install, uninstall): Operate on install-info.
+ 
+ 	* install-info.c: New file.
+ 
+ Wed Jan  3 10:01:45 1996  Brian J. Fox  <bfox@nirvana.datawave.net>
+ 
+         * makeinfo/makeinfo.c (make_index_entries_unique): Be a little bit
+ 	stricter about what makes two index entries identical.
+ 
+ Fri Dec 29 13:00:24 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* makeinfo/makeinfo.c (Whole File): Add @detailmenu for allowing
+ 	detailed menu listings to appear while still defaulting nodes.
+ 
+ Wed Dec 27 13:54:30 1995  Brian Fox  <bfox@albert.gnu.ai.mit.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_code): Always notice that we are in
+ 	fixed_width_font, even if other formatting changes are not to take
+ 	place.
+ 
+ Sat Dec 23 11:48:43 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* info/man.c: (clean_manpage) Remove ^L's from page.
+ 
+ 	* makeinfo/makeinfo.c (get_brace_args): Change some memcpy's to
+ 	memmoves.
+ 
+ 	* info/info.c (main): Prefer caseless matches over partial
+ 	matches.
+ 
+ 	* Makefile.in (All Subdir Targets): Change suggested by Debian
+ 	people which allows errors in recursive makes to kill the
+ 	top-level make.
+ 
+ 	* makeinfo/Makefile.in (makeinfo.dvi): New target.
+ 
+ 	* info/info.c (main): Print version of containing texinfo package.
+ 
+ 	* makeinfo/makeinfo.c (flush_output): Don't strip high-bit from
+ 	sentence_enders.
+ 	Print the version number of the containing texinfo package.
+ 
+ 	* info/man.c (locate_manpage_xref): Count the 0th entry.
+ 
+ 	* makeinfo/makeinfo.c (cm_menu): If a menu is seen before a node
+ 	has been defined, warn, and create the node `Top'.
+ 
+ Wed Jun 21 03:19:39 1995  Brian Fox  <bfox@albert.gnu.ai.mit.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_infoinclude): Clean up after printing
+ 	error if the file couldn't be included.
+ 	(discard_braces): Print errors only for those unmatched open
+ 	braces that belong to a texinfo command.
+ 
+ 	* */Makefile.in: Use @CFLAGS@ and @LDFLAGS@.
+ 
+ 	* makeinfo/makeinfo.c: End `node_search_string' and friends with a
+ 	terminating null character.
+ 
+ Wed Jun 21 01:23:49 1995  Jim Meyering (meyering@comco.com)
+ 
+ 	* makeinfo/makeinfo.c: Close comment after #endif.
+ 
+ Tue Jun 20 04:58:26 1995  Brian Fox  <bfox@albert.gnu.ai.mit.edu>
+ 
+ 	* emacs/Makefile.in (install): Fix typo: "fle" -> "file".
+ 
+ 	* Makefile.in (VERSION): Bump to 3.6
+ 
+ 	* info/clib.c: Include general.h for `info_toupper' and friends.
+ 
+ 	* info/clib.h: strncmp and strncascmp return an int.  What kind of
+ 	drugs was I on?
+ 
+ Mon Jun 19 23:34:47 1995  Brian Fox  <bfox@albert.gnu.ai.mit.edu>
+ 
+ 	* makeinfo/makeinfo.c (make_index_entries_unique): Copy the last
+ 	index entry.
+ 
+ Mon Jun 19 21:55:49 1995  Noah Friedman  <friedman@prep.ai.mit.edu>
+ 
+         * util/texi2dvi (--version): New option.
+         Cosmetic changes.
+ 
+ Mon Jun 19 16:06:40 1995  Brian Fox  <bfox@albert.gnu.ai.mit.edu>
+ 
+ 	* makeinfo/makeinfo.c (cm_macro): Fix typo.  `x != y' is not the
+ 	same as `x |= y'.
+ 
+ 	* info/Makefile.in (exec_prefix): Use @exec_prefix@ not $(prefix).
+ 	* makeinfo/Makefile.in (exec_prefix): Use @exec_prefix@ not $(prefix).
+ 	* util/Makefile.in (exec_prefix): Use @exec_prefix@ not $(prefix).
+ 	* libtxi/Makefile.in (exec_prefix): Use @exec_prefix@ not $(prefix).
+ 
+ 	* emacs/Makefile.in (uninstall): New target.
+ 	(install): Use the definition of $(lispdir), don't dynamically
+ 	find it.  Use INSTALL_DATA not cp.
+ 	(exec_prefix): use @exec_prefix@ not $(prefix).
+ 
+ 	* makeinfo/makeinfo.c (apply): If there isn't an actual argument
+ 	for a named argument, default it to "".
+ 
+ 	* Makefile.in (VERSION): Now at 3.5.
+ 	(texinfo): Make ./makeinfo/makeinfo depend on sub-all for parallel
+ 	makes.
+ 
+ 	* emacs/Makefile.in (ELISP_OBJS): Explictly declare .el and .elc
+ 	in the SUFFIXES list.
+ 
+ 	* makeinfo/makeinfo.c (cm_today): Special case for losing alpha.
+ 	* (minor_version): Increase to 63.
+ 
+ 	* info/info.c (version_string): Now at 2.14.
+ 	* info/tilde.c: Declare getenv to return (char *).
+ 	* info/window.c (build_message_buffer): Jump through hoops to keep
+ 	DEC Alpha's happy.
+ 
+ 	* info/xmalloc.c: Declare malloc and realloc as (void *) returning
+ 	functions.
+ 
+ Sun Jun 18 12:47:21 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* emacs/detexinfo.el (detexinfo-line-cmds-without-arg):
+ 	Handle ifhtml.
+ 
+ Fri Jun 16 13:48:14 1995  Brian Fox  <bfox@albert.gnu.ai.mit.edu>
+ 
+ 	* util/texindex.c: Update TEXINDEX_VERSION_STRING for texinfo 3.4
+ 
+ 	* (All *.c *.h *.in): Change FSF old address to new.
+ 	* texinfo.texi (Obtaining TeX): Change FSF old address to new
+ 	address.  Change Old phone numbers to new phone numbers.
+ 
+ 	* Makefile.in (VERSION): Change to 3.4.
+ 
+ Thu Jun 15 22:49:07 1995  Robert J. Chassell  <bob@hill.gnu.ai.mit.edu>
+ 
+         * texinfo.texi, emacs/=development/cover.texi: update
+           Texinfo distribution package version number
+ 
+ Thu Jun 15 09:23:02 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* info/info.c: (minor_version): Set to 13.
+ 
+ 	* info/clib.c,h: New files gather together replacement functions
+ 	for those POSIX-style C library functions that are not present on
+ 	the target system.
+ 
+ 	* info/Makefile.in (SRCS): Add clib.c and clib.h.  makedoc now
+ 	needs clib.o to build on systems missing various string.h stuff.
+ 
+ 	* info/variables.c (whole file): Call strdup, not savestring.
+ 	* info/tilde.c (whole file): Call strdup, not savestring.
+ 	* info/search.c (whole file): Call strdup, not savestring.
+ 	* info/nodes.c (whole file): Call strdup, not savestring.
+ 	* info/nodemenu.c (whole file): Call strdup, not savestring.
+ 	* info/man.c (whole file): Call strdup, not savestring.
+ 	* info/makedoc.c (whole file): Call strdup, not savestring.
+ 	* info/m-x.c (whole file): Call strdup, not savestring.
+ 	* info/info.c (whole file): Call strdup, not savestring.
+ 	* info/indices.c (whole file): Call strdup, not savestring.
+ 	* info/echo_area.c (whole file): Call strdup, not savestring.
+ 	* info/session.c (whole file): Call strdup, not savestring.
+ 	* info/filesys.c (whole file): Call strdup, not savestring.
+ 
+ 	* makeinfo/makeinfo.c (minor_version): Change to 1.62.
+ 	* makeinfo/makeinfo.c (get_execution_string): Initialize `i' to 0
+ 	in case there are no execution_strings.
+ 
+ Wed Jun 14 17:48:06 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* texinfo.texi: include "texinfo.tex", not "texinfo".
+ 	* info/session.c (forget_window_and_nodes): Place a sequence point
+ 	in between "info_windows[i] = info_windows[++i];" as per various
+ 	compiler experts.
+ 
+ 	* makeinfo/makeinfo.c (strdup): Create this function if the system
+ 	doesn't have it.
+ 	(discard_insertions): Use the insertion's filename, not the
+ 	current input file.
+ 	(push_insertion): Remember the current input file with each
+ 	insertion.
+ 	(pop_insertion): Free storage used by remembered input file.
+ 
+ 	* makeinfo/makeinfo.c (whole file): Use `strdup' instead of
+ 	`savestring'.
+ 	* configure.in: Check for `strdup'.
+ 
+ Wed Jun 14 15:58:51 1995  Brian Fox  <bfox@albert.gnu.ai.mit.edu>
+ 
+         * libtxi/Makefile.in (prefix): Use @prefix@, not /usr/local/
+ 
+ Wed Jun 14 10:50:57 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* Makefile.in (DISTFILES): Don't include *.elc files in the list
+ 	  of files to distribute.
+ 	  (installdirs): Include `emacs' in the list of sub-dirs with
+ 	  Makefile.in's.
+ 
+ 	* emacs/elisp-comp: Shell script which batch compiles the *.el files.
+ 	* emacs/Makefile.in: New file contains targets to build the elc files.
+ 	* configure.in: Add `emacs/Makefile' to the list of created makefiles.
+ 	* makeinfo/makeinfo.c (whole file): Give every function a return
+ 	  type.  All cm_xxx functions are now void.  Add declarations for
+ 	  functions to top of file.
+ 
+ Mon Jun 12 12:00:57 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* info/man.c (reference_section_starters): Add versions of "SEE
+ 	ALSO" and "RELATED INFORMATION" with tabs instead of spaces as
+ 	well.
+ 
+ 	* util/texindex.c: Back out changes for OFF_T.  Explicity coerce
+ 	the result of lseek to a long, and use longs everywhere.
+ 
+ 	* texinfo.texi: Change "@end shorttitlepage" to "@end titlepage".
+ 	* makeinfo/makeinfo.c: Make @shorttitlepage ignore the rest of the
+ 	line.
+ 
+ 	* util/texindex.c (strrchr): Create if not present.
+ 	Test for HAVE_STRCHR and HAVE_STRING_H.
+ 	(main): Make PROGRAM_NAME be just the last path componenet of argv[0].
+ 	(decode_command): Rewrite.
+ 	(usage): Rewrite.  Now texindex handles --version.
+ 
+ 	* makeinfo/makeinfo.c (make_index_entries_unique): Rewrite from
+ 	scratch.
+ 
+ 	* Don't distribute created info files with texinfo.  After all,
+ 	the user will have the tools necessary to create them, yes?
+ 
+ 	* Makefile.in (distclean): Remove *.log
+ 
+ 	* info/man.c (read_from_fd): Change timeout value for select to 15
+ 	seconds.  Some systems (e.g., albert.ai.mit.edu) actually need
+ 	more than 10 seconds to format a man page.
+ 
+ 	* info/tilde.c: Fix typo in declaration for
+ 	`tilde_expansion_failure_hook'.
+ 
+ Wed Jun  7 13:36:53 1995  Brian Fox  <bfox@albert.gnu.ai.mit.edu>
+ 
+ 	* info/tilde.h: Change type of tilde_expansion_failure_hook to
+ 	a pointer to a function returning a (char *).
+ 	* info/tilde.c: Change type of tilde_expansion_failure_hook to a
+ 	pointer to function returning a (char *).
+ 
+ 	* makeinfo/makeinfo.c (get_execution_string): Don't use `i' in the
+ 	latter assignment, use `execution_strings_index' instead.
+ 
+ 	* info/man.c (read_from_fd): Change logic to avoid using FIONREAD.
+ 
+ 	* info/xmalloc.c (xrealloc): Use (void *), not (caddr_t *).
+ 	* info/xmalloc.c (xmalloc): Use (void *), not (caddr_t *).
+ 
+ 	* Makefile.in (DISTFILES): Don't find RCS no "=" directories.
+ 
+ 	* util/Makefile.in (prefix): Use @prefix@ as the value.
+ 	* info/Makefile.in (prefix): Use @prefix@ as the value.
+ 	* makeinfo/Makefile.in (prefix): Use @prefix@ as the value.
+ 
+ Wed Jun  7 12:29:28 1995  Robert J. Chassell  <bob@hill.gnu.ai.mit.edu>
+ 
+         * texinfo.texi: Correct minor typos.
+ 
+         * emacs/texinfmt.el:  Don't require @shorttitlepage to be inside
+           of @iftex ... @end iftex
+ 
+ Mon May  8 18:33:52 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* info/nodes.c: #include "man.h" if HANDLE_MAN_PAGES.
+ 	(info_get_node_of_file_buffer): If the file buffer is one
+ 	associated with manpages, call the manpage node finding
+ 	function instead.
+ 	(info_find_file_internal): If the file buffer is one associated
+ 	with manpages, avoid doing any file I/O.
+ 	(info_reload_file_buffer_contents): Ditto.
+ 	(info_find_file_internal): Call create_manpage_file_buffer instead
+ 	of info_load_file_internal.
+ 
+ 	* info/info.c: #include "man.h" if HANDLE_MAN_PAGES.
+ 	(main): If the initial node cannot be found, perhaps find it as a
+ 	manpage.
+ 	* info/info-utils.c: #include "man.h" if HANDLE_MAN_PAGES.
+ 	(info_xrefs_of_node): If handling man pages, and this is a manpage
+ 	node, use xrefs_of_manpage.
+ 
+ 	* info/session.c (info_set_input_from_file): Only fclose (stream)
+ 	if it is non-null and not stdin.
+ 	#include "man.h" if HANDLE_MAN_PAGES.
+ 	(info_menu_or_ref_item): If handling man pages, and this is a
+ 	manpage node, get the xrefs from manpage_xrefs_in_binding.
+ 	(info_man): Compile in for M-x man if handling man pages.
+ 	(info_move_to_xref): If handling man pages, and the current node
+ 	is a manpage node, use locate_manpage_xref to get xrefs.
+ 
+ Thu May  4 08:55:23 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* info/info.c (main): If the output device is not a terminal, and
+ 	no output filename has been specified, make user_output_filename
+ 	be "-", so that the info is written to stdout, and turn on the
+ 	dumping of subnodes.
+ 
+ Thu Apr 13 18:05:06 1995  Daniel Hagerty  <hag@churchy.gnu.ai.mit.edu>
+ 
+ 	* texinfo.texi: Fixed @end titlepage/@end shorttitlepage
+ 
+ Sat Apr  8 12:51:49 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+ 
+ 	* makeinfo/makeinfo.c [! HAVE_STRERROR] (strerror): New function,
+  	snarfed from ../info/filesys.c.
+ 	(cm_infoinclude): Use strerror instead of sys_errlist.
+ 
+ Tue Apr  4 18:44:00 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* util/texindex.c (sort_offline): Change TOTAL to be an off_t.
+ 	* util/texindex.c (sort_in_core): Change TOTAL to be an off_t.
+ 	* util/texindex.c (MAX_IN_CORE_SORT): Cast to off_t.
+ 
+ Sun Apr  2 16:20:13 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* info/Makefile.in: Define DEFAULT_INFOPATH in case we are
+ 	compiling in the current directory.
+ 	* info/Makefile.in (info.o): Add filesys.h because of DEFAULT_INFOPATH.
+ 	* info/(search.c,h, nodes.c info-utils.c) Use strcasecmp and
+ 	strncasecmp instead of stricmp and strnicmp.  Define strcasecmp
+ 	and strncasecmp in search.c if !HAVE_STRCASECMP.
+ 	* info/search.c: If HAVE_STRING_H include it.
+ 	* info/nodes.c: If HAVE_STRING_H include it.
+ 	* info/info-utils.c: If HAVE_STRING_H include it.
+ 	* info/info.h: If HAVE_STRING_H include it.
+ 	* configure.in (AC_HAVE_FUNCS): Check for strcasecmp.
+ 	* makeinfo/makeinfo.c (strcasecmp): Define if !HAVE_STRCASECMP.
+ 	* makeinfo/makeinfo.c (entire file): Use `strcasecmp' instead of
+ 	`stricmp'.
+ 	* makeinfo/makeinfo.c (cm_ifeq): New command takes three args.
+ 	Compares first two, executes remainder if the first two are
+ 	string-wise eq.
+ 	* makeinfo/makeinfo.c (ifhtml): Add to command list.  Shouldn't be
+ 	used, but it is by people who don't want to hack macros.
+ 
+ Sat Apr  1 09:20:14 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* makeinfo/makeinfo.c (begin_insertion): Fix reversed arguments to
+ 	line_error.
+ 
+ 	* info/info-stnd.texi: Use "end" footnote style instead of "separate".
+ 
+ 	* info/Makefile.in: Change "rm -f" to $(RM).
+ 
+ 	* info/general.h: Define zero_mem in terms of memset if we have
+ 	it, else in terms of bzero if we have that, else as inline code.
+ 
+ 	* info/NEWS: Updated to reflect changes in 2.11.
+ 
+ Fri Mar 31 22:38:31 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* Makefile (DISTFILES): Don't include *.a, *orig, nor *.e
+ 	files.
+ 	(DISTFILES):
+ 
+ Sat Mar  4 12:16:29 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* Makefile.in: Use @prefix@ instead of hardwired `/usr/local'.
+ 	  Clean up makefile rules which make in subdirs.
+ 	  (ALL_SUBDIRS): Add makeinfo/macros to list of subdirectories.
+ 
+ 	* configure.in (AC_CHECK_FUNCS): Add `bcopy' to list of things to
+ 	check for.
+ 
+ Fri Mar  3 13:54:10 1995  Robert J. Chassell  <bob@hill.gnu.ai.mit.edu>
+ 
+         * texinfo.texi: Minor changes for incremental new edition 2.20.
+ 
+ Fri Mar  3 19:01:36 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* filesys.c (filesys_read_info_file): Local variable ST_SIZE is a
+ 	long which has the value of finfo->st_size casted to it.
+ 	* nodes.c (whole file): Similar changes.
+ 
+ 	These changes and the following for makedoc.c were required for
+ 	proper operation on HPm68k NetBSD.
+ 
+ Mon Feb 27 15:16:27 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* makedoc.c (process_one_file): Local variable FILE_SIZE is a long
+ 	which has the value of finfo.st_size casted to it.
+ 
+ 
+ Fri Mar  3 18:58:38 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* makeinfo.c (find_and_load): Cast fileinfo.st_size to a long for
+ 	internal use.  This makes things work on NetBSD.
+ 
+ 
+ Fri Mar  3 13:54:10 1995  Robert J. Chassell  <bob@hill.gnu.ai.mit.edu>
+ 
+         * texinfo.texi: Minor changes for incremental new edition 2.20.
+ 
+ Fri Mar  3 09:41:39 1995  Brian J. Fox  <bfox@wizard.datawave.net>
+ 
+ 	* configure.in (TERMLIBS): Use AC_CHECK_LIB instead of
+ 	AC_HAVE_LIBRARY.
+ 
+ Mon Jan  9 16:55:31 1995  Brian Fox  <bfox@churchy.gnu.ai.mit.edu>
+ 
+ 	* Makefile.in (DISTFILES): Add the directory EMACS-BACKUPS to the
+ 	list of things to avoid distributing.
+ 
+ Tue Nov 29 17:48:37 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
+ 
+ 	* configure.in: Check for off_t.
+ 	* util/texindex.c (main): Use it.
+ 
+ Fri Nov 11 14:46:28 1994  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>
+ 
+ 	* configure.in: Update for Autoconf v2.
+ 
+ Thu Oct 13 02:17:38 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* emacs/detexinfo.el (detexinfo): Handle @!, @?, @^, @".
+ 
+ Mon Aug  1 03:26:13 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texindex.c: Move the memset define down past string.h include.
+ 
+ Tue Jun 28 14:21:43 1994  David J. MacKenzie  (djm@churchy.gnu.ai.mit.edu)
+ 
+ 	* makeinfo/makeinfo.c: Add --help option.
+ 	(usage): Take args for stream and error code.
+ 	Change callers.
+ 	(print_version_info): Write to stdout, not stderr.
+ 
+ Wed May 18 18:55:24 1994  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* info/session.c (forget_window_and_nodes): Negate test for
+ 	internal_info_node_p.  We only want to free the text if it is
+ 	not an internal node.
+ 
+ Thu Mar 10 03:07:18 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texindex.c (memset): Fix invalid parm name (was 0).
+ 
+ Thu Feb 10 12:56:52 1994  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * makeinfo/makeinfo.c (current_item_function): Don't loop if elt
+         is NULL.
+ 
+ Wed Feb  9 12:21:09 1994  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* makeinfo/makeinfo.c (minor_version): Release now at 1.60.
+ 
+ 	* makeinfo/makeinfo.c (expand_filename): Additional fixes.  Now
+ 	when called with NULL filename, makes an output filename from the
+ 	input filename.
+ 	(convert_from_loaded_file): If REQUIRE_SETFILENAME is #defined (no
+ 	longer the default case) then error if no @setfilename was found
+ 	in the file.  If REQUIRE_SETFILENAME is not #defined, the input
+ 	file starts either at the first line, or at the second line if the
+ 	first line contains the text "\input", and the output filename is
+ 	the input file name without directory and with ".info" replacing
+ 	any extension found.
+ 	(convert_from_loaded_file): Fixed bug in search for first
+ 	occurence of "@setfilename".
+ 
+ Tue Feb  8 14:16:58 1994  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * configure.in: Check for sys/file.h.
+         info/dir.c, info/filesys.c, info/makedoc.c, info/nodes.c,
+         info/session.c, info/termdep.h, makeinfo/makeinfo.c
+         [HAVE_SYS_FILE_H]: Include <sys/file.h>.
+ 
+         * makeinfo/makeinfo.c (convert_from_loaded_file): Print
+         real_output_filename instead of output_filename, so user knows
+         exactly where output file is going.
+ 
+         Fri Jun 11 14:34:30 1993  Ian Lance Taylor  (ian@cygnus.com)
+        	* configure.in: Check for sigprocmask and sigsetmask.
+ 	* info/signals.h (HAVE_SIGSETMASK): Don't define.
+ 	(HAVE_SIGPROCMASK): Use instead of _POSIX_VERSION.
+ 	(BLOCK_SIGNAL, UNBLOCK_SIGNAL): If neither HAVE_SIGPROCMASK nor
+ 	HAVE_SIGSETMASK is defined, define these to do nothing.
+ 	* info/signals.c (sigprocmask): Don't compile if HAVE_SIGSETMASK
+ 	is not defined.
+ 
+ 	* info/terminal.c (terminal_prep_terminal): Don't clobber VINTR
+ 	and VQUIT in conditionals.
+ 
+ Mon Feb  7 18:10:22 1994  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* makeinfo/makeinfo.c (full_pathname): Correct to really return
+ 	the full pathname of the input argument.  Now makeinfo
+ 	/foo/bar.texi, where /foo/bar.texi contains "@setfilename
+ 	bar.info", correctly leaves the output file in "./bar.info".
+ 	Note that "@setfilename ../bar.info" still works; this is already
+ 	an absolute pathname.
+ 
+ Sat Feb  5 13:04:05 1994  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* makeinfo/makeinfo.c: Version 1.59 released.
+ 
+ 	* makeinfo/makeinfo.c (whole file):  Large number of changes allow
+ 	the "-E filename" option to be used to write a macro expanded
+ 	output file.  On a file which contains no @include's and no
+ 	@macro's, the output file is identical to the input file.
+ 
+ 	* makeinfo/makeinfo.c (declarations): Remove cm_tex ().  It is
+ 	never used since it is implemented with `command_name_condition'.
+ 
+ 	* makeinfo/makeinfo.c (add_char): Shift braces following the
+ 	current break point if we have deleted any characters.
+ 	(adjust_braces_following): New function adjusts all of the markers
+ 	in the brace stack which follow HERE by AMOUNT.  This fixes a bug
+ 	where (for example) @var{} immediately following a line break
+ 	which is the end of a sentence modified the output incorrectly.
+ 
+ Wed Feb  2 14:14:03 1994  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* makeinfo: Version 1.58.
+ 
+ 	* makeinfo/makeinfo.c (cm_node): Add extra hair to allow
+ 	backtracking through execution strings.  Add extra hair to allow
+ 	the first node seen after a @top node is seen to adjust the
+ 	sectioning level of the @top node and associated menus.
+ 	Fix a few typos.
+ 	Add facility for macros to invoke the original definition.  This
+ 	works by not allowing a single macro to recurse.  Mutual recursion
+ 	is also disallowed with this plan.
+ 
+ 	* makeinfo/macros: New directory contains shippable macros.
+ 	* makeinfo/macros/simpledoc.texi: Macros which simplify the most
+ 	common uses of TeXinfo.  See the example file.
+ 	Macros are now a reasonable way to get people started using
+ 	TeXinfo.
+ 
+ Mon Jan 31 12:54:36 1994  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* makeinfo/makeinfo.c (minor_version): Increase to 57.
+ 
+ 	* makeinfo/makeinfo.c (cm_node): Call execute_string on the node,
+ 	next, prev, and up pointers.
+ 	(reader_loop): Change logic for `@bye'.  No longer required at the
+ 	ends of executed strings.
+ 	(execute_string): Do not append `@bye' to the string to execute.
+ 
+ 	* makeinfo/makeinfo.c (whole file): Use COMMAND_PREFIX instead of
+ 	hardcoding `@' character in strings and searches.
+ 
+ 	* makeinfo/makeinfo.c (read_command): If HAVE_MACROS is defined,
+ 	then recognize and execute macros here.
+ 	(CommandTable): Add "macro" and "unmacro" to table if HAVE_MACROS
+ 	is defined.
+ 
+ 	* makeinfo/makeinfo.c (cm_macro, cm_unmacro, execute_macro)
+ 	  makeinfo/makeinfo.c (get_macro_args, find_macro, add_macro)
+ 	  makeinfo/makeinfo.c (delete_macro, array_len, apply):
+ 	  New functions implement macro facility if HAVE_MACROS is
+ 	  defined.
+ 
+ 	* makeinfo/macro.texi (new file): Examples of using the new macro
+ 	facility.
+ 
+ Mon Jan 31 10:24:52 1994  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * makeinfo/makeinfo.c (executing_string): Restore global
+         declaration.
+ 
+ Mon Jan 24 23:48:26 1994  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * texinfo.texi: Various typo fixes from Bob Chassell
+         <bob@gnu.ai.mit.edu>.
+ 
+ Thu Jan  6 13:34:21 1994  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * texinfo.texi: Turned on smallbook format and @set smallbook.
+ 
+ Wed Dec 15 20:08:43 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * info/filesys.h (DEFAULT_INFOPATH): Added /usr/local/info,
+         /opt/gnu/info, /usr/share/info, and /usr/local/share/info.
+ 
+ Tue Dec 14 19:10:20 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * libtxi/Makefile.in (ALLOCA): Define from configure.
+ 
+ Fri Dec 10 04:33:12 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/texi2dvi: Put under RCS control.
+ 
+ Sun Dec 26 11:55:46 1993  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* info/session.c (info_numeric_digit_arg_loop): Fix doc string.
+ 
+ 	* info/infodoc.c (create_internal_info_help_node): Print out list
+ 	of functions which have to keystroke equivalent if we support
+ 	NAMED_FUNCTIONS.
+ 
+ 	* info/filesys.c (compress_suffixes): Add ".gz" for "gunzip" to
+ 	alist.
+ 
+ 	* info/footnotes.c (make_footnotes_node): If refs[i] doesn't have
+ 	a nodename, then it couldn't be a reference to a footnote.
+ 
+ 	* info/nodemenu.c (get_visited_nodes): Handle the case where
+ 	filter_func has left no possible buffers to select.
+ 
+ Sat Dec 25 10:35:56 1993  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* info/infodoc.c (create_internal_info_help_node): Conditionalize
+ 	generation of the help node based on the #define
+ 	HELP_NODE_GETS_REGENERATED.  When this is not set (the default)
+ 	the help node is generated exactly once, and is not gc'able.
+ 	Otherwise, a new node is always created for the help window, and
+ 	the old node gets garbage collected by the gc system.
+ 	(info_find_or_create_help_window): Conditionalize window node
+ 	selected based on the #define HELP_NODE_GETS_REGENERATED.
+ 
+ 	* info/dir.c (add_menu_to_file_buffer): Place exactly one blank
+ 	line between directory entries.
+ 
+ 	* info/info.c (version_string): Update minor version to "11".
+ 
+ 	* info/info.h: Update comment to "2.11".
+ 
+ 	* info/dir.c (maybe_build_dir_node): Only add the contents of a
+ 	new file if it is not identical to the file of the DIR buffer.
+ 
+ 	* info/nodes.c (info_get_node): Call `maybe_build_dir_node' on
+ 	"dir" as well as "localdir" to mimic emacs-19.22 "dir" merging
+ 	behaviour.
+ 
+ Fri Dec  3 13:41:44 1993  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* info/info-utils.c (canonicalize_whitespace): Suppress whitespace
+ 	found at the start of STRING.
+ 
+ Sat Nov 20 14:00:50 1993  Brian J. Fox  (bfox@hippie)
+ 
+ 	* info/indices.c (DECLARE_INFO_COMMAND): Fix typo in assignment to
+ 	`old_offset' (= instead of ==).
+ 
+ Tue Nov  2 12:22:40 1993  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* makeinfo/makeinfo.c (make_index_entries_unique): New function
+ 	makes a sorted array have all unique entries by appending numbers
+ 	to the ends of strings.
+ 	(sort_index): Call `make_index_entries_unique'.
+ 
+ Mon Sep 20 12:04:05 1993  Brian J. Fox  (bfox@ai.mit.edu)
+ 
+ 	* makeinfo/makeinfo.c (get_execution_string): New Function returns
+ 	a pointer to an  EXECUTION_STRING structure.
+ 	(execute_string): No longer uses a static string; call
+ 	`get_execution_string' instead in order to get a free buffer for
+ 	consing.
+ 
+ Sun May 23 07:00:20 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * Texinfo 3.1 released.
+ 
+ Sat May 22 18:21:27 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * info/info.c (info_patch_level): Increment constant to 1.
+ 
+         * info/Makefile.in (DEFAULT_INFOPATH): Default definition deleted.
+         Makefile.in: Put it here instead.
+         * Makefile.in (MDEFINES): Add DEFAULT_INFOPATH.
+ 
+         * configure.in: check for vfprintf and vsprintf.
+ 
+         * makeinfo/makeinfo.c: Version 1.55.
+ 
+         * makeinfo/makeinfo.c (add_word_args, execute_string) [HAVE_VARARGS_H]:
+         Don't use this definition unless HAVE_VSPRINTF is also defined.
+         (error, line_error, warning) [HAVE_VARARGS_H]: Don't use this
+         definition unless HAVE_VFPRINTF is also defined.
+         Remove indentation of all cpp directives, except for #pragma.
+ 
+ Fri May 21 14:34:24 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * texinfo.texi: Rename to texi.texi.
+         Change @setfilenname and START-INFO-DIR-ENTRY to `texi.info'.
+ 
+         * Makefile.in (MDEFINES): Pass LDFLAGS to sub-makes.
+         (realclean): Delete `configure'.
+         Changed all references to texinfo.info to texi.info
+ 
+         * configure.in: Add AC_PROG_RANLIB, and AC_CONST.
+         Check for `rindex' function.
+         Check for varargs.h.
+         Clean up symbol names for header files so a single AC_HAVE_HEADERS
+         can be used.
+         (AC_INIT): Use texi.texi instead of makeinfo/makeinfo.c
+ 
+         * info/info-utils.h: Copy definitions of bcopy, index, and rindex
+         (with appropriate #ifdef wrappers) from termdep.h.  These are
+         included by a mutually exclusive set of files.
+ 
+         * info/termdep.h [HAVE_SYS_PTEM]: Use HAVE_SYS_PTEM_H instead.
+ 
+         * info/terminal.c, info/termdep.h [HAVE_TERMIO]: Use HAVE_TERMIO_H
+         instead.
+ 
+         * info/makedoc.c, info/filesys.c [!O_RDONLY]: Include fcntl.h or
+         sys/fnctl.h, depending on whether HAVE_SYS_FCNTL_H is set.
+ 
+         * info/termdep.h: Remove all indentation in #-exprs.
+         Remove old assumptions about bcopy, index, and rindex.
+         [HAVE_BCOPY]: Define bcopy.
+         [HAVE_RINDEX]: Define index and rindex.
+ 
+         * info/nodes.c (info_get_node): Don't call stricmp if nodename is
+         NULL. Remove indentation in #-exprs.
+ 
+         * info/echo_area.c (echo_area_stack_depth): Declare static.
+ 
+         * info/Makefile.in (DEFAULT_INFOPATH): Make separate Makefile
+         variable so it can be overridden more easily by the user.  Add `.'
+         to beginning of path.
+         (clean): Delete core.* (386bsd core files).
+         (MAKEDOC): Variable removed.  Refer to `makedoc' explicitly.
+         (funs.h): Add `:' commands after if, to avoid spurious nonzero
+         exit statuses.
+ 
+         * info/userdoc.texi: Improved comments explaining its purpose.
+ 
+         * makeinfo/makeinfo.c [HAVE_VARARGS_H]: Include varargs.h.
+         (error, line_error, warning, add_word_args,
+           execute_string)[HAVE_VARARGS_H]: New versions that
+         use varargs.  From bfox.
+ 
+         * makeinfo/Makefile.in (clean): Delete core.* (386bsd core files).
+ 
+         * util/Makefile.in (clean): Remove core.* (386bsd core files).
+ 
+         * libtxi/Makefile.in: Remove all references to $(common).
+         (RANLIB): New variable, set from autoconf.
+         (libtxi.a): Use $(RANLIB) instead of `ranlib' in target rules.
+         (clean): Delete core.* (386bsd core files).
+ 
+ Tue May 18 12:08:24 1993  Robert J. Chassell (bob at grackle.stockbridge.ma.us)
+ 
+         * emacs/texinfmt.el (texinfo-format-refill): Do not fill a section
+         title line with the asterisks, hyphens, etc. that underline
+         it in any circumstance.
+ 
+ Sun May 16 13:53:43 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/mkinstalldirs: handle relative pathnames.
+ 
+ Fri May 14 20:18:49 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/mkinstalldirs: initialize IFS if unset.
+ 
+ Tue May 11 06:33:14 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * makeinfo/makeinfo.c (cm_item): don't dereference item_func if NULL.
+ 
+ Mon May 10 14:50:31 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * Texinfo 3.0 released.
+ 
+         * Makefile.in (ALLOCA): Provide for substitution.
+ 
+ Mon May 10 10:12:53 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * emacs/texinfmt.el (texinfmt-version): Updated year.
+ 
+ Fri Apr 16 04:48:03 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * makeinfo/makeinfo.c: Version 1.54 from bfox.
+ 
+         * util/fixfonts: Replace instances of `[..]' with `test'.
+         Use more portable `test' arguments: `z$foo = z' instead of `! $foo'.
+         Robustify quoting in eval assignments.
+         (textfmdir, texpkdir, texgfdir): Don't override definition from
+         environment, if any.
+         Trap EXIT, SIGHUP, SIGINT, SIGQUIT, SIGTERM to delete temp files
+         instead of trying to remove them explicitly before calling exit.
+         When changing cwd, do so in subshell, in case various tex*dir
+         variables are relative.
+         Don't use `head', `dirname', or `basename'.  These don't behave
+         consistently and/or don't even exist on some systems.  They can
+         all be emulated with `sed' anyway.
+         (tempfile2_line1): New variable.  Use it instead of running
+         process to extract first line out of tempfile2 multiple times.
+         Eliminate some gratuitous uses of $tempfile2, such as in for loops.
+ 
+ Fri Mar 26 23:25:13 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * texinfo.texi: @setfilename texinfo.info.
+ 
+         * makeinfo/makeinfo.c (reader_loop, end_insertion): Fix typos in
+         comments.
+         (handle_variable_internal): Handle the case that there further
+         menu text after a false ifset/ifclear.
+ 
+         * util/texi2dvi: Version 0.4
+         Replace all instances of `[ ... ]' with `test'.
+         Updated bug-reporting address.
+ 
+ Thu Mar 25 12:31:30 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * info/Makefile.in (install): Install info.1 man page.
+         (uninstall): Remove installed info.1 man page.
+ 
+         * info/infoman.texi: Standalone manual renamed to info-stnd.texi.
+         Makefile.in: Targets updated appropriately.
+ 
+         * info/Makefile.in (LDEFS): New variable.  Use it for info-local
+         macros, since DEFS will be inherited from parent make and any
+         local definitions will get clobbered.
+ 
+         * info/RELEASE: Renamed to info/NEWS.
+ 
+         * README: New file.
+ 
+         * Makefile.in (topclean): New target.
+ 
+         * Getting-started: Renamed to INTRODUCTION.  Former name is too
+           long (over 14 chars).
+ 
+         * New-features: Renamed to NEWS.
+ 
+         * Makefile.in (MDEFINES): Set it.
+ 
+         * Makefile.in (dist): Use --gzip option to tar to make sure
+           resulting file is compressed with gzip.  Change tar file
+           extension from `.Z' to `.z'.
+ 
+         * Makefile.in (DISTFILES): Filter out any file or directory names
+           starting with `='.
+ 
+         * fixfonts: Moved to util/fixfonts.
+ 
+         * RELEASE: Deleted.
+ 
+         * makeinfo/Makefile.in (VPATH): Use $(srcdir), not @srcdir@.
+         (common): Use ../libtxi, not ../common.
+         (makeinfo.in): Run makeinfo with --no-split.
+ 
+         * makeinfo/makeinfo.texi: Changes from bob.
+ 
+         * util/Makefile.in (VPATH): Use $(srcdir), not @srcdir@.
+         (common): Use ../libtxi, not ../common.
+ 
+         * util/fixfonts: Moved from top-level directory.
+ 
+ Wed Mar 24 10:21:31 1993  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-format-region): Do not require
+         `@setfilename' line; delete `\input texinfo' line if part of
+         region.
+ 
+         * emacs/texinfmt.el (texinfo-raise-lower-sections): Raise or lower the
+         hierarchical level of chapters, sections, etc. according to
+         `@raisesections' and `@lowersections' commands.
+ 
+ Thu Mar 18 16:02:27 1993  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfo.el (texinfo-show-structure): Indent *Occur* buffer
+         according to the structure of the file.
+ 
+ Sat Mar  6 05:16:44 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/texi2dvi: use ${1+"$@"}, not just "$@".
+ 
+ Tue Feb  2 08:38:06 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * info/Makefile.in: Replace all "--nosplit" arguments to makeinfo
+         with "--no-split"
+ 
+ Sun Jan 31 18:16:58 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/texi2dvi: Don't put .dvi and related auxillary files in same
+         directory as source files.  Put them in current directory instead.
+         (TEXINPUTS_orig): New variable.
+         (file_texi): Variable removed.
+         (filename_texi): New variable.
+         (command_line_filename): Use this wherever references to file_texi
+         occured except in setting filename_noext.
+         (TEXINPUTS): Current directory and source directory where input
+         file resides prepended to standard path before invoking TeX.
+ 
+ Wed Jan 27 16:24:37 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/Makefile.in: overhauled.
+ 
+ Tue Jan 26 21:04:23 1993  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * Makefile.in, info/Makefile.in, makeinfo/Makefile.in: Overhauled.
+ 
+         * configure.in: Renamed from texinfo.in.
+           Incorporated makeinfo/makeinfo.in, info/info.in, and
+           util/util.in.  Create all child Makefiles.
+ 
+         * makeinfo/makeinfo.in, info/info.in: Deleted (incorporated into
+         top configure.in).
+ 
+         * util/util.in: Deleted (incorporated into ../configure.in).
+ 
+ Mon Jan 25 10:59:49 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/info.c: New version 2.9; new variable INFO_PATCH_LEVEL
+         appears in the version string if it is non-zero.  New function
+         version_string () produces the current version string, as in 2.8-p1.
+ 
+         * info/dir.c: New file implements Gillespies `localdir' hacks.
+ 
+         * info/nodes.c (info_get_node): Now calls maybe_build_dir_node ()
+         if the file name to look for is "dir".
+ 
+         * info/nodes.h: New flag N_CannotGC unconditionally prevents garbage
+         collection of a file buffer's contents.  Used when "dir" is made
+         from at least one "localdir".
+ 
+ Fri Jan 22 11:36:42 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/footnotes.c: Do not declare auto_footnotes_p as "extern" in
+         this file.
+ 
+ Thu Jan 21 08:57:08 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/info.c: New version 2.8.
+ 
+         * info/userdoc.texi, info/infoman.texi, info/info.texi: Fully
+         document Info; create both online and printed manual versions.
+         "userdoc.texi" contains exactly the documentation for GNU Info 2.x.
+         "infoman.texi" is a wrapper for that file; it is meant to produce
+         printed documentation. "info.texi" has the user documentation as a
+         complete chapter within itself, but continues to contain the Info
+         tutorial.
+ 
+         * info/makedoc.c: Convert "ea_" into "echo_area_" when creating the
+         command name.
+ 
+ Fri Jan 15 16:50:35 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/search.c (skip_node_characters): New argument NEWLINES_OKAY if
+         non-zero says that newlines should be skipped over during parsing.
+ 
+         * info/info-utils.c (info_parse_node): New argument NEWLINES_OKAY if
+         non-zero says that newlines should be skipped while parsing out
+         the nodename specification.
+ 
+ Wed Jan 13 14:42:33 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/makedoc.c: Remove "info_" from the front of the command name
+         before installing it.
+ 
+         * info/session.c (info_menu_or_ref_item): A label of "Menu" is okay if
+         the builder is not info_menu_of_node ();
+ 
+         * info/m-x.c: New function replace_in_documentation () replaces \\[foo]
+         with the keystrokes you type to get that command.  Now used in
+         indices.c, info.c, infodoc.c.
+ 
+ Mon Jan 11 10:27:41 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/variables.c, h: New files contain describe-variable and stuff
+         moved out of m-x.c.
+ 
+         * info/m-x.c: Move VARIABLE_ALIST and variable functions into
+         variables.c.  Add documentation string to variable definition.
+ 
+         * info/echo_area.c (push_echo_area): Zero the contents of
+         echo_area_completion_items after pushing the vars.
+ 
+ Sat Jan  9 11:59:47 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/Makefile.in: Add footnotes.c,h,o to the appropriate Makefile
+         variables.
+ 
+         * info/window.c (window_tile_windows): New function divides the
+         available space among the visible windows.
+ 
+         * info/session.c (info_tile_windows): New function calls
+         window_tile_windows.
+ 
+         * info/footnotes.c, footnotes.h: New file implements functions for
+         aiding automatic footnote display when entering a node which has
+         footnotes.
+ 
+         * info/m-x.c: New user-variable "automatic-footnotes".
+ 
+         * info/window.c (window_physical_lines) New function counts the
+         carriage returns found in NODE.
+ 
+ Wed Jan  6 11:24:19 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/general.h: #include <unistd.h> if we have it.
+ 
+ Tue Jan  5 11:12:33 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/info-utils.c (info_concatenate_references): If either arg is
+         NULL, return the other arg.
+ 
+         * info/indices.c (info_indices_of_file_buffer): Simplified and
+         corrected loop through tags/nodes of file buffer looking for
+         indices.
+ 
+         * info/search.c (skip_node_characters): Rewrite "if" statement for
+         clarification and conciseness.
+ 
+ Fri Jan  1 03:18:26 1993  Brian Fox  (bfox@cubit)
+ 
+         * info/info.in: Check for setvbuf (), and check to see whether the args
+         are reversed.
+ 
+         * info/dribble.c (open_dribble_file) Check HAVE_SETVBUF and
+         SETVBUF_REVERSED when setting the buffering on info_dribble_file.
+ 
+ Thu Dec 31 20:14:13 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/session.c (info_select_reference) If the node couldn't be found,
+         look for the label as a filename (i.e., "(LABEL)Top").
+ 
+ Wed Dec 30 01:57:50 1992  Brian Fox  (bfox@cubit)
+ 
+         * New Version 2.7 Beta.
+ 
+         * info/echo_area.c: Numerous functions now do something with the
+         numeric argument.  Kill ring implemented, as well as yank and
+         yank_pop.  Also transpose-chars.
+ 
+         * info/window.c (window_make_modeline): Check node->flags for
+         N_IsCompressed and display "zz" in the modeline if the node comes
+         from a file which is compressed on disk.
+ 
+ Mon Dec 28 17:33:12 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/filesys.c, info/nodes.c: New member of FILE_BUFFER "FILESIZE"
+         contains the size of file_buffer->contents.  finfo.st_size is no
+         longer relied upon to read the contents of files, since the new
+         function (filesys_read_info_file) can read compressed files.
+ 
+         * info/filesys.c (info_find_fullpath) If a file starts with a slash (or
+         tilde expansion causes it to start with a slash) still call
+         info_find_file_in_path () on it so that we can find files with
+         compression suffixes.
+ 
+         * info/m-x.c: New variable "gc-compressed-files".
+ 
+ Tue Dec 22 03:45:28 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/info.c: Version 2.6 Beta.
+ 
+         * info/indices.c (info_index_next): Improve the final search for the
+         matched index entry.
+ 
+         * info/session.c (move_to_screen_line): New function implements `M-r'.
+         Given a numeric argument, move point to the start of that line in
+         the current window; without an arg, move to the center line.
+         * infomap.c: Put move_to_screen_line () on `M-r'.
+ 
+         * info/nodes.c (adjust_nodestart): Don't set N_UpdateTags unless the
+         node came from a tags table.
+ 
+         * info/nodes.c (info_find_file_internal): If the filename being looked
+         for doesn't start with a `/', then additionally compare the
+         filename against the fullpath of the file buffer sans the
+         directory name.  This can happen when selecting nodemenu items.
+ 
+ Mon Dec 21 10:07:18 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/session.c, info/display.c: Remove all references to
+         active_window_ch, active_window_cv, cursor_h, and cursor_v.  The
+         single function display_cursor_at_point () is used for all cursor
+         movement, and to place the terminal's cursor at the right location
+         on the screen.
+ 
+ Sat Dec 19 12:01:33 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/nodemenu.c: New file implements a few functions for manipulating
+         previously visited nodes.  `list-visited-nodes' produces a menu of
+         the nodes that could be reached by info_history_node () in some
+         window.  `select-visited-node' is similar to `list-visited-node'
+         followed by `info-menu-item', but doesn't display a window with
+         the visited nodes menu.
+ 
+         * info/session.c (info_numeric_arg_digit_loop): If redisplay had been
+         interrupted, then redisplay all of the windows while waiting for
+         input.
+ 
+         * info/display.c (display_was_interrupted_p): New variable keeps track
+         of interrupted display.  Used in
+         info/session.c:info_numeric_arg_digit_loop ().
+ 
+         * info/session.c (info_global_next, info_global_prev): Use the numeric
+         argument passed to determine how many nodes to move.
+ 
+         * info/session.c (info_scroll_forward, info_scroll_backward): If the
+         invoking key is not SPC or DEL only do Page Only scrolling.
+ 
+ Thu Dec 17 01:34:22 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/display.c (display_update_one_window): Allow W_NoWrap to affect
+         window display.
+ 
+         * info/window.c (calculate_line_starts): Now takes a WINDOW * as an
+         argument, and simply does the calculation, placing the results
+         into window->line_starts and window->line_count.  It also handles
+         W_NoWrap in window->flags.
+ 
+ Mon Dec 14 02:18:55 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/session.c (info_backward_scroll): Don't try to get previous node
+         if the top of the node isn't currently being displayed.
+ 
+         * info/window.c (window_adjust_pagetop) Use new variable
+         "window_scroll_step" to attempt to control the amount which the
+         window scrolls.
+ 
+         * info/m-x.c (info_variables) Add "scroll-step" to the list.
+ 
+ Thu Dec 10 08:52:10 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/m-x.c: New variable entry show-index-matches.  When set to
+         non-zero the matched portion of the search string is indicated
+         with ` and '.  Perhaps I should use `|' inst|ea|d?
+ 
+         * info/echo_area.c (ea_possible_completions): Always build completions
+         before checking to see how many there were.
+ 
+         * info/info-utils.c: (info_concatenate_references): New utility
+         function concatenates references.
+ 
+         * info/Makefile.in: Add indices.c and indices.h to SRCS and HDRS.
+           Add indices.c to CMDFILES.
+ 
+         * info/indices.c, info/indices.h: New file implements `i' and `,'
+         commands of info, and provides index searching capabilities.
+ 
+         * info/echo_area.c (info_read_completing_in_echo_area):  Split off into
+         separate callable function info_read_completing_internal ().
+ 
+         * info/echo_area.c (info_read_maybe_completing): New function calls
+         info_read_completing_internal () with non-forcing argument.
+ 
+         * info/session.c: Rename down_next_upnext_or_error () and
+         prev_up_or_error () to forward_move_node_structure (), and
+         backward_move_node_structure ().  Implement new commands
+         info_global_next () and info_global_prev ().
+ 
+         * info/infomap.c (initialize_info_keymaps): Bind `[' and `]' to
+         backward_, forward_move_node_structure () respectively.
+ 
+         * info/session.c (info_menu_digit): Called with "0" as arg, select the
+         last menu item.
+ 
+         * info/infomap.c (initialize_info_keymaps): "0" calls
+         info_menu_digit ().
+ 
+         * info/session.c (info_move_to_xref): Take dir into account when there
+         are xrefs and menu items in the node and we are wrapping
+         backwards.
+ 
+ Tue Dec  8 09:57:58 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/info.c: Version 2.5 Beta.
+ 
+         * info/terminal.c (terminal_insert_lines, terminal_delete_lines) Do not
+         expect tgoto to return a new string; it returns the address of a
+         static buffer.
+ 
+         * info/infodoc.c (info_find_or_create_help_window) Correct check for
+         prior existing help node.
+ 
+         * info/m-x.c (set_variable): Allow variables to have a list of choices.
+         Add new variable scroll-behaviour.
+ 
+         * info/session.c (down_next_upnext_or_error, prev_up_or_error) New
+         functions implement user-controlled behaviour when attempting to
+         scroll past the bottom or top of a node.  New variable
+         info_scroll_behaviour is user visible as "scroll-behaviour".
+ 
+         * info/session.c (info_scroll_forward, info_scroll_backward) Call new
+         functions for user-controlled scroll behaviour.
+ 
+         * info/terminal.c (terminal_initialize_terminal) Set PC from BC not
+         from BUFFER.
+ 
+ Mon Dec  7 11:26:12 1992  Brian Fox  (bfox@cubit)
+ 
+         * util/texindex.c: Change EXIT_SUCCESS and EXIT_FATAL to TI_NO_ERROR
+         and TI_FATAL_ERROR respectively.  This avoids namespace conflicts
+         on NeXT 2.0.
+ 
+ Sat Dec  5 00:07:59 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/info.c: New option "--subnodes" says to recursively dump the
+         menus of the nodes that you wish to dump.  Menu items which point
+         to external nodes are not dumped, and no node is dumped twice.
+ 
+ Thu Dec  3 16:11:02 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/session.c (info_error) Don't ring the bell if
+         info_error_rings_bell_p is zero.  (info_abort_key) Ring the bell
+         if printing "Quit" in the echo area wouldn't do it.
+ 
+         * info/m-x.c (set_variable) New functions allows setting of
+         variables in the echo area.  Currently, only visilble-bell and
+         errors-ring-bell are implemented.
+ 
+ Wed Dec  2 13:11:37 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/nodes.c, info/makedoc.c: If O_RDONLY is not defined by
+         sys/file.h, include sys/fcntl.h.
+ 
+         * info/filesys.c (info_file_in_path): Expand leading tildes found
+         within directory names.
+ 
+         * info/terminal.c (terminal_initialize_terminal) Set ospeed to 13 if
+         not settable any other way.  It is an index into an array of
+         output speeds.
+ 
+         * info/display.c (free_display) Do not free a NULL display.
+ 
+         * info/display.c (string_width): New functions returns the width of
+         STRING when printed at HPOS.
+ 
+ Sun Nov 29 01:24:42 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/info.c: New version 2.4 beta.
+ 
+         * info/general.h: #define info_toupper and info_tolower which check
+         their arguments before performing any conversion.
+ 
+         * info/search.c, info/echo_area.c: Use info_toupper.
+ 
+ Sat Nov 28 14:23:24 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/session.c (info_scroll_forward, info_scroll_backward) If at
+         last/first page of the node, and the last command was
+         forward/backward, do info_next/prev/_node.
+ 
+         * info/session.c: New function info_select_reference_this_line gets
+         menu or cross reference immediately.
+ 
+         * info/infomap.c (initialize_info_keymaps): Add info_keymap[LFD] to
+         invoke info_select_reference_this_line ().
+ 
+         * info/session.c (info_last_reference) Rename to
+         info_history_reference.  Wrote info_last_reference, and
+         info_first_reference which go to the last or first node of an info
+         file.
+ 
+ Fri Nov 27 00:59:02 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/info.c: New version 2.3.  Completed implementing contents of
+         TODO file.
+ 
+         * info/session.c (info_redraw_display): Fix C-l with numeric arg.
+ 
+ Thu Nov 26 20:14:18 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/m-x.c: New file implements reading named commands in the echo
+         area, along with a new function "info-set-screen-height".
+         Compilation of this file and some code in others controlled by the
+         Makefile variable NAMED_COMMANDS (set to -DNAMED_COMMANDS).
+ 
+         * info/window.c (window_new_screen_size) Rewrite from scratch, allowing
+         clean growth and shrinkage of the screen.  New variable
+         window_deletion_notifier is a pointer to a function to call when
+         the screen changes size, and some windows have to get deleted.
+         The function is called with the window to be deleted as an
+         argument, and it should clean up dangling references to that
+         window.
+ 
+         * info/session.c (initialize_info_session): Set
+         window_deletion_function to forget_window_and_nodes.
+ 
+         * info/display.c (display_update_one_window): If the first row of the
+         window to display wouldn't appear in the_screen, don't try to
+         display it.  This happens when the screen has been made
+         unreasonably small, and we attempt to display the echo area.
+ 
+ Tue Nov 24 00:47:20 1992  Brian Fox  (bfox@cubit)
+ 
+         * Release Info 2.2.
+ 
+         * info/session.c: New functions implement reading typeahead and
+         implement C-g flushing typed ahead characters.
+         (info_search_internal): allows C-g to exit multi-file searches.
+ 
+ Mon Nov 23 01:53:35 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/nodes.c: Remove calls to sscanf (), replacing them with calls to
+         atol (), since that is much faster.
+         (get_nodes_of_tags_table) Only check for "(Indirect)" if we
+         haven't parsed any nodes out of the tags table.  Increase the
+         amount that file_buffer->nodes grows to 100 from 50.  These two
+         together sufficiently speed up the parsing process.
+ 
+         * info/nodes.c: info_get_node_of_file_buffer_tags (),
+         info_get_node_of_file_buffer_nodes (): Search the appropriate list
+         and return a node.  This was simply a cut and paste edit to
+         functionalize the code.
+ 
+         * info/TODO: Remove suggestion for partial tag parsing, since tag
+         parsing is much faster now.
+ 
+ Sat Nov 21 02:48:23 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/makedoc.c: New File replaces makedoc.sh shell script.
+ 
+         * info/infomap.c: Install info_isearch (on C-s) and
+         info_reverse_isearch (on C-r) for Info windows.
+ 
+         * info/session.c (incremental_search, info_isearch,
+         info_reverse_isearch) New functions implement incremental
+         searching.
+ 
+ Fri Nov 20 00:01:35 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/terminal.c (terminal_initialize_terminal): Declare and set up
+         `ospeed'.  Turn off C-s and C-q processing.
+ 
+         * info/session.c (info_show_point) When this function is called, the
+         desired result is to show the point immediately.  So now it calls
+         set_window_pagetop () if the new pagetop is not the same as the
+         old one.  This means that info_prev_line (), info_next_line (),
+         info_forward_word (), and info_backward_word () can all scroll the
+         window if they have to.
+ 
+ Thu Nov 19 12:27:07 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/session.c (set_window_pagetop): Add scrolling to make this
+         faster.
+ 
+         * info/echo_area.c (push/pop_echo_area): Remember the list of items to
+         complete over.
+ 
+         * info/session.c (info_forward_char): Don't let point get equal to
+         nodelen, only to nodelen - 1.
+ 
+         * info/display.c: New function display_scroll_display () scrolls the
+         rmembered display as well as the text on the actual display.
+ 
+         * info/terminal.c: New functions terminal_scroll_terminal (),
+         terminal_scroll_down (), and terminal_scroll_up ().  All
+         implemented using "al" and "dl" termcap capabilities. (i.e.,
+         insert and delete line).
+ 
+ Wed Nov 18 15:05:14 1992  Brian Fox  (bfox@cubit)
+ 
+         * info/termdep.h: Only define HAVE_FCNTL_H if !aix and !ultrix.
+ 
+ Tue Nov 17 20:35:08 1992  Brian Fox  (bfox@cubit)
+ 
+         * First Beta Release of Info 2.0.
+ 
+ Sun Nov  1 02:21:05 1992  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/texi2dvi (--force): Option removed.  Always run tex at least
+         once, don't bother checking if .dvi file is newer than source.
+ 
+ Fri Oct 30 02:16:28 1992  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/texi2dvi (-D): debugging option renamed from '-d'.
+         Made check to enable debugging more terse.
+         When checking if index files have changed, use
+         variable $this_file instead of $file in for loop.
+         (file_texi): wherever the variable $file was used to reference
+         the texinfo file, substituted $file_texi.
+ 
+ Sat Oct 17 07:30:34 1992  Brian J. Fox  (bfox@helios)
+ 
+         * util/texindex.c: Remove references to USG replacing them with a
+         define declaring the actual feature required or missing.
+ 
+ Thu Oct 15 16:17:47 1992  Robert J. Chassell  (bob@nutrimat.gnu.ai.mit.edu)
+ 
+         * emacs/texinfmt.el (texinfo-format-setfilename): Remove date from
+         Info file header so regression testing is easier.
+ 
+ Tue Sep 15 16:28:35 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfmt-version): New variable.
+         (texinfo-format-setfilename): Include date and
+         version in Info file header.
+         Better documentation for @definfoenclose
+         Handle whitespace after @end iftex, etc.
+ 
+ Thu Sep  3 09:25:37 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texnfo-upd.el: Fix typo re `texinfo-sequential-node-update.'
+ 
+ Tue Aug 18 08:56:24 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-value): Revise syntax.
+ 
+         * emacs/texnfo-upd.el (texinfo-start-menu-description):
+         New function to insert title as description in a menu.
+         (texinfo-make-menu-list): Remove automatic title insertion.
+ 
+         * emacs/texinfo.el (texinfo-mode-map): Add keybinding for
+         texinfo-start-menu-description.
+ 
+ Wed Jul 29 11:58:53 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-set): Revise to set a string to the flag.
+         (texinfo-value): @value{flag}: New command which inserts the
+         string to which the flag is set.
+ 
+ Tue Jul  7 15:10:52 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texnfo-upd.el (texinfo-master-menu): Error message if file
+         contains too few nodes for a master menu.
+         (texinfo-insert-master-menu-list): Only attempt to insert detailed
+         master menu if there is one.
+ 
+ Wed Jun 10 15:26:18 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-append-refill): Refill properly when lines
+         begin with within-paragraph @-commands.
+ 
+ Tue Jun  9 12:28:11 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el: Add `texinfo-deffn-formatting-property' and
+         `texinfo-defun-indexing-property' to @deffn commands.
+ 
+ Mon Jun  8 11:52:01 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texnfo-upd.el: Replace `(mark-whole-buffer)' with
+         `(push-mark (point-max) t) (goto-char (point-min))'
+         to avoid `Mark set' messages.
+ 
+ Fri Jun  5 15:15:16 1992  Robert J. Chassell  (bob@kropotkin.gnu.ai.mit.edu)
+ 
+         * emacs/texnfo-upd.el (texinfo-check-for-node-name): Offer section
+         title as prompt.
+         (texinfo-copy-next-section-title): Copy title correctly.
+ 
+ Thu May 28 20:34:17 1992  Robert J. Chassell  (bob@hill.gnu.ai.mit.edu)
+ 
+         * emacs/texinfmt.el: @vtable defined, parallel to @ftable, for
+         variables.
+         (texinfo-append-refill): set case-fold-search nil so @TeX is not
+         confused with @tex.
+ 
+ Thu Mar 26 21:36:41 1992  Robert J. Chassell  (bob@kropotkin.gnu.ai.mit.edu)
+ 
+         * emacs/makeinfo.el: Rename temp buffer from `*Makeinfo*' back to
+         `*compilation*' so `next-error' works; unfortunately,
+         `*compilation*' is written into the code as the name
+         `next-error' needs.
+         Rename `makeinfo-recenter-makeinfo-buffer' back to
+         `makeinfo-recenter-makeinfo-buffer'
+ 
+ Thu May 14 21:14:25 1992  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/fixfonts: Enclosed most variable references with "" to prevent
+         potential globbing and other weirdness.  Eliminated uses of
+         ${var-value}, which unfortunately isn't portable.
+ 
+         * util/texi2dvi: rewritten from scratch.
+ 
+ Sat Apr 18 23:46:25 1992  Charles Hannum  (mycroft@hal.gnu.ai.mit.edu)
+ 
+         * util/fixfonts: Re-evaluate prefix and libdir if inherited (to resolve
+         variable references from make).
+         (texlibdir): Don't add '/tex', since it's already there.
+ 
+ Fri Apr 10 14:51:23 1992  Noah Friedman  (friedman@prep.ai.mit.edu)
+ 
+         * util/fixfonts: set prefix and libdir only if they are not already
+         defined (i.e. not inherited from the environment).
+         Changed default path for libdir to be consistent with Makefile.
+ 
+ Tue Mar  3 13:17:42 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texnfo-upd.el (texinfo-insert-master-menu-list): Insert a
+         master menu only after `Top' node and before next node.
+         (texinfo-copy-menu): Error message if menu empty.
+ 
+ Mon Feb 24 15:47:49 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-format-region): Make sure region ends in a
+         newline.
+         (texinfo-itemize-item): Recognize all non-whitespace on same line
+         as @item command.
+ 
+ Sat Feb 22 02:15:00 1992  Brian Fox  (bfox at gnuwest.fsf.org)
+ 
+         * util/texindex.c: New version 1.45 has cleanups, should compile under
+         VMS quietly.
+ 
+ Wed Feb 12 10:50:51 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/makeinfo.el: Rename temp buffer as *Makeinfo*.
+         Rename `makeinfo-recenter-compilation-buffer'.
+         (makeinfo-buffer): Offer to save buffer if it is modified.
+         (makeinfo-compile): Do not offer to save other buffers.
+         (makeinfo-compilation-sentinel): Switch to Info file.
+ 
+ Tue Feb  4 13:07:39 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-print-index): Format so that node names in
+         the index are lined up.
+ 
+ Mon Feb  3 09:08:14 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-itemize-item): Format entry when text
+         is on the same line as @item command.  Also, handle @-commands.
+         (texinfo-format-region, texinfo-format-buffer-1): Set fill column
+         to local value of Texinfo buffer.
+ 
+         * emacs/texnfo-upd.el (texinfo-pointer-name):  Find only those
+         section commands that are accompanied by `@node' lines.
+ 
+ Tue Jan 14 16:10:16 1992  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texnfo-upd.el: Ensure that no commands depend on the value of
+         case-fold-search.
+ 
+ Fri Jan 10 15:13:55 1992  Robert J. Chassell  (bob at kropotkin)
+ 
+         * emacs/texinfmt.el (texinfo-append-refill): Replace use of
+         unsupported function `looking-at-backward' with
+         `re-search-backward'.
+ 
+ Mon Dec 23 23:46:42 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
+ 
+         * util/texindex.c: Change POSIX ifdefs to HAVE_UNISTD_H and
+         _POSIX_VERSION.
+ 
+ Mon Dec 16 15:01:36 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-append-refill): New function appends
+         @refill to all appropriate paragraphs so you no longer need to
+         append @refill command yourself.
+         (texinfo-format-region, texinfo-format-buffer-1,
+         texinfo-format-include): Call `texinfo-append-refill'.
+ 
+ Fri Dec  6 01:25:09 1991  David J. MacKenzie  (djm at wookumz.gnu.ai.mit.edu)
+ 
+         * util/texindex.c: Conditionalize on _AIX (which is predefined) instead
+         of AIX, just like makeinfo does.
+ 
+ Tue Nov 26 10:21:04 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texnfo-upd.el (texinfo-section-types-regexp): `@subtitle' no
+         longer treated as subsection.
+ 
+ Sat Nov 16 08:27:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+         * util/fixfonts: New file, from Karl Berry.
+ 
+ Tue Nov 12 16:13:24 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el: Create @end smalllisp.
+ 
+ Mon Nov 11 16:50:13 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfo.el (texinfo-environment-regexp): Add all other block
+         enclosing Texinfo commands.
+ 
+ Thu Nov  7 10:23:51 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfo.el (texinfo-insert-@end): Attempt to insert correct end
+         command statement, eg, @end table.  Fails with nested lists.
+          (texinfo-insert-*): Accept prefix arg to surround following N
+          words with braces for command.
+ 
+ Thu Oct 31 21:31:41 1991  Robert J. Chassell  (bob at kropotki)
+ 
+         * emacs/texinfmt.el (texinfo-clear): Clear flag even if flag not
+         previously set.
+ 
+ Wed Oct 23 11:15:58 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfo.el (texinfo-mode): page-delimiter now finds top node as
+         well as chapters.
+ 
+ Tue Oct 22 11:46:12 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-do-flushright): Test whether a line is too
+         long for the flush right command (line length must be less than
+         the value of fill column).
+ 
+         * emacs/texnfo-tex.el (texinfo-tex-buffer): Prompt for original file
+         even if point moved to *texinfo-tex-shell*.
+         texinfo-tex-original-file: variable to hold file name.
+ 
+ Wed Oct 16 08:32:05 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el (texinfo-format-center): Expand string before
+         centering so @-commands not included.
+ 
+ Thu Oct 10 22:01:47 1991  Robert J. Chassell  (bob at kropotki)
+ 
+         * emacs/texnfo-tex.el (texinfo-show-tex-print-queue): Do not kill a
+         running process; do start a process none exists.
+ 
+ Thu Sep 26 21:58:47 1991  Robert J. Chassell  (bob at kropotki)
+ 
+         * util/texi2dvi: Misc. bugs fixed.
+ 
+         * emacs/texinfo.el: Remove extraneous references to TeX.
+ 
+ Thu Sep 19 20:45:29 1991  Robert J. Chassell  (bob at kropotki)
+ 
+         * emacs/texinfmt.el: add @cartouche as a noop (makes box with rounded
+         corners in TeX)
+ 
+ Tue Sep 10 20:44:57 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texnfo-upd.el (texinfo-make-one-menu): Copy node-name correctly
+         for message.
+ 
+ Thu Aug 29 17:54:07 1991  Robert J. Chassell  (bob at kropotki)
+ 
+         * emacs/texnfo-tex.el (texinfo-quit-tex-job): Do not set mark.
+ 
+ Wed Aug 21 10:36:21 1991  Robert J. Chassell  (bob at grackle)
+ 
+          * emacs/texnfo-upd.el: (texinfo-copy-menu-title): Copy title as it
+          should rather than node line.
+ 
+ Mon Aug  5 15:27:12 1991  Robert J. Chassell  (bob at grackle)
+ 
+          * emacs/texinfmt.el (texinfo-format-convert): Changed regexp that
+          looks for three hyphens in a row to find those between word
+          constituent characters, as now, for Oxford Univ. style dashes and
+          also between spaces, for Cambridge Univ. Press style dashes.
+ 
+         * emacs/texnfo-tex.el (texinfo-tex-start-shell): Runs "/bin/sh" so
+         `explicit-shell-file-name' is not set globally.
+ 
+         * emacs/texnfo-upd.el: Rewrite messages.
+         (texinfo-find-higher-level-node): Stop search at limit.
+         (texinfo-copy-menu-title): Rewrite to handle outer include files.
+         (texinfo-multi-file-update): Update all nodes properly;
+         rewrite doc string and interactive.
+ 
+ Sat Aug  3 10:46:13 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texnfo-upd.el (texinfo-all-menus-update): Fixed typo that
+         caused the function to create a master menu when it shouldn't.
+ 
+         * emacs/texinfo.el (texinfo-mode): Make `indent-tabs-mode' a local
+         variable and set to nil to prevent TABs troubles with TeX.
+ 
+ Wed Jul 31 11:07:08 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texnfo-tex.el (texinfo-quit-tex-job): New function: quit
+         currently running TeX job, by sending an `x' to it.
+         (texinfo-tex-shell-sentinel): New function to
+         restart texinfo-tex-shell after it is killed.
+         (texinfo-kill-tex-job): Rewrite to use kill-process rather than
+         quit-process; uses `texinfo-tex-shell-sentinel' to restart
+         texinfo-tex-shell after it is killed.
+         (texinfo-tex-region, texinfo-tex-buffer): Replace
+         texinfo-kill-tex-job with quit-process.
+ 
+         * emacs/texinfo.el (texinfo-define-common-keys): Add keybinding for
+         texinfo-quit-tex-job
+ 
+ Wed Jul 10 15:15:03 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el: New commands @set, @clear, @ifset...@end
+         ifset, and @ifclear...@end ifclear.
+         Definition functions rewritten to make them easier to
+         maintain.
+ 
+ Wed Jul  3 19:37:04 1991  Robert J. Chassell  (bob at kropotki)
+ 
+         * emacs/texinfmt.el (texinfo-format-deftypefn-index): Remove reference
+         to data-type to make consistent with texinfo.tex and makeinfo.
+         texinfo.el: Fix page-delimiter and texinfo-chapter-level-regexp
+         variables.
+ 
+ Thu Jun 27 18:35:36 1991  Robert J. Chassell  (bob at nutrimat)
+ 
+         * emacs/texinfmt.el: Add @dmn as `texinfo-format-noop'.
+         texinfo2.texi: Document @dmn.
+         texinfmt.el (texinfo{,-end}-{eleterate,ecapitate} renamed
+         {alphaenumerate, capsenumerate}.
+ 
+ Fri Jun 14 12:46:32 1991  Robert J. Chassell  (bob at churchy.gnu.ai.mit.edu)
+ 
+         * emacs/texinfmt.el (texinfo-format-defun-1): @defivar prints name
+         correctly.
+ 
+ Thu Jun  6 21:38:33 1991  Robert J. Chassell  (bob at churchy.gnu.ai.mit.edu)
+ 
+         * emacs/texinfo.el (texinfo-mode): Set page delimiter to
+         'texinfo-chapter-level-regexp' so that page commands work by
+         chapter or equivalent.
+ 
+         * emacs/texinfmt.el (texinfo-format-defun-1): @defop prints name
+         correctly.
+         (batch-texinfo-format): replace unsupported
+         'buffer-disable-undo' with 'buffer-flush-undo'
+ 
+ Fri Apr  5 15:17:17 1991  Robert J. Chassell  (bob at wookumz.gnu.ai.mit.edu)
+ 
+         * emacs/makeinfo.el (makeinfo-compilation-sentinel): Check for
+         existance of makeinfo-temp-file to avoid harmless error message.
+         texinfo2.texi: Minor typos fixed.
+ 
+ Thu Mar 28 19:13:24 1991  Robert J. Chassell  (bob at pogo.gnu.ai.mit.edu)
+ 
+         * util/texi2dvi: Revised.
+ 
+ Mon Mar 11 12:35:51 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * emacs/texinfmt.el: (@footnotestyle): New command to set
+         footnotestyle.
+         (@paragraphindent): New command to set indentation.
+         (texinfo-format-refill): Add indentation feature so as to
+         indent paragraph or leave indentation asis before refilling
+         according to value set by @paragraphindent command.
+         (texinfo-format-region): Insert header, if any, into Info buffer.
+         (texinfo-format-separate-node, texinfo-format-end-node): Run
+         texinfo-format-scan on footnote text only once.
+         (texinfo-format-scan): Shorten `---' to `--'.
+ 
+         * emacs/texinfo.el: Define key for `texinfo-master-menu'; define
+         start and end of header expressions.
+ 
+         * emacs/texnfo-upd.el (texinfo-all-menus-update): Update
+         pre-existing master menu, if there is one.
+ 
+ Fri May 11 14:36:07 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+         * util/texindex.c: Rename `lines' to `nlines'.
+         (bzero): Pass arg to lib$movc5 through non-register var.
+         (perror_with_file, pfatal_with_file): Move extern decls and includes
+         to top of file.
+         [VMS]: If not using VMS C, define away `noshare' keyword.
+         Include perror.h.
+ 
+ Mon Jul 11 18:02:29 1988  Chris Hanson  (cph at kleph)
+ 
+         * util/texindex.c (indexify): when comparing to initial strings to
+         decide whether to change the header, must use `strncmp' to avoid
+         comparing entire strings of which initials are a substring.
+ 
+ Sun Jun 26 18:46:16 1988  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+         * util/texindex.c (sort_in_core, sort_offline, parsefile):
+         Give up on input file if any line doesn't start with backslash.
+ 
+ /* changelog for texinfo.tex before 19jun01.  */
+ 
+ 2001-05-24    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\smallbreak, \medbreak, \bigbreak): add check for
+ 	\ifnum\lastpenalty to plain tex definitions, so that we won't
+ 	insert space right after a section title.
+ 	(\aboveenvbreak): similar check of \lastpenalty.
+ 
+ 2001-05-21    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\pdfurl): \let\value=\expandablevalue, so at least
+ 	some cases can be properly handled.
+ 
+ 2001-03-28    <karl@gnu.org>
+ 
+ 	* texinfo.tex: Copyright.
+ 
+ 	* texinfo.tex (\pdfmkdest): remove trailing @ in target names;
+ 	suggestion from: Reiner Schlotte <R.Schlotte@science-computing.de>.
+ 	(\imagexxx): call \normalturnoffactive so _ (among others) will be
+ 	allowed in filenames; report from arnold@skeeve.com.
+ 
+ 2001-02-02    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\secondary): handle pdf case.
+ 	(\dosubind): secondary index entry not written as separate arg for
+ 		texindex.
+ 	From: Trevin Beattie <trevin@eyring.com>
+ 	Date: Tue, 21 Mar 2000 13:04:06 -0700
+ 
+ 2001-01-12    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\dopdfimage): different syntax for filename
+ 	inclusion (foo vs {foo}).  From: <Kurt.Hornik@ci.tuwien.ac.at>,
+ 	22dec99.
+ 
+ 2001-01-08    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\afivepaper): new command from Jose Romildo
+ 	Malaquias <romildo@urano.iceb.ufop.br>.
+ 
+ 2000-12-12    <karl@gnu.org>
+ 
+ 	* texinfo.tex: oops, had outside page reversed.
+ 
+ 2000-12-11    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\inmargin): allow lefttext and righttext as args.
+ 
+ 2000-11-10    <karl@gnu.org>
+ 
+ 	* texinfo.tex: implementation of new commands @verbatim, @verb,
+ 	and @verbatiminclude from janneke@gnu.org.
+ 
+ 2000-11-09    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\inmargin): rewrite to allow for placing the
+ 	material either in the right or left margin.
+ 
+ 2000-10-27    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\dosynindex): new macro subroutine, do not
+ 	\closeout twice the index being redirected.
+ 	(\synindex, \syncodeindex): call it.
+ 
+ 2000-10-18    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\inmargin): rewrite to allow argument to be vmode
+ 	material, such as a box from an image.
+ 
+ 2000-09-06    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\doublecolumnout): must subtract \ht\partialpage
+ 	here, not in \begindoublecolumns.  Otherwise the \partialpage on
+ 	the first page of double columns affects every subsequent page,
+ 	e.g., if @setchapternewpage off.  Reported by Aharon Robbins
+ 	<arnold@skeeve.com> for standards.texi.
+ 
+ 2000-05-28    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\linkcolor): replace Cyan with Blue.
+ 	(\output): do \pdfmkdest at top.
+ 	(\pdfmakeoutlines): set \_ to \normalunderscore.
+ 	From: Trevin Beattie <trevin@eyring.com>.
+ 
+ 2000-05-27    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\today): only define if undefined.
+ 	From: Stepan Kasal <kasal@suse.cz>.
+ 
+ 2000-05-16    <karl@gnu.org>
+ 
+ 	* texinfo.tex (\deftypeivarheader): need defheaderxcond.  From:
+ 	Marcel van der Boom <marcel@hsdev.com>.
+ 
+ 1999-10-01  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\afourwide): had hsize and vsize reversed.
+ 	From: Pascal Obry <pascal_obry@csi.com>
+ 
+ 1999-09-25  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\alias): fix from Andreas.
+ 
+ 1999-09-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\key): rename the \smallrm and \smallsy here.
+ 
+ 	* texinfo.tex (\indexfonts): rename to \smallfonts, along with
+ 		\indrm, etc.
+ 	Define all the fonts, too.
+ 	(\footnotezzz): use \smallfonts.
+ 
+ 	* texinfo.tex (\needx): get better leading; do nothing if @need
+ 	       value is less than one linespace.  From Arnold.
+ 	(\douref, \xrefX, \doemail [pdf]): make spaces normal again, so our
+ 	\ignorespaces commands are effective even in an @display.
+ 
+ 	* texinfo.tex (\finishtitlepage): remove FINISH TITLE debugging
+ 		message.
+ 
+ 	* texinfo.tex (\anchor): rewrite to always \ignorespaces.
+ 	Bug from esken.
+ 
+ 	* texinfo.tex (\indexnofonts): dummy up \acronym.
+ 	From: Thomas Esken <esken@nmlab.informatik.fh-dortmund.de>
+ 
+ 1999-09-06  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\texinfoversion): update.
+ 
+ 	* texinfo.tex: Avoid multiparagraph cells losing linespace between
+ 	paragraphs.  From: Andreas Schwab <schwab@suse.de>.
+ 	Bug from: Lalo Martins <lalo@webcom.com>.
+ 
+ 1999-08-19  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\shortchaplabel): move computation of width of
+ 	"Appendix" inside, in case it's been changed by a language.
+ 
+ Mon Aug  9 16:31:55 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: pdf updates from Han.
+ 
+ Fri Aug  6 13:48:22 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\charcode): remove unused counter.
+ 	From: Akira KAKUTO <kakuto@fsci.fuk.kindai.ac.jp>.
+ 
+ Thu Jul 22 19:08:19 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: Update from Han.
+ 
+ Tue Jul 20 17:13:16 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: More pdf improvements from Han.
+ 
+ Mon Jul 19 16:33:31 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: Better pdf support from: Han The Thanh
+  		<thanh@informatics.muni.cz>.
+ 
+ Sun Jul 18 14:21:03 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: pdfimage takes braces.
+ 
+ Tue Jul  6 19:40:14 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\deftypeop): New command.
+ 
+ Mon Jul  5 17:17:33 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\contents): call \pdfmakeoutlines here instead of
+  	inline (!).
+ 	(\pdfmakeoutlines): call \indexnofonts instead of making a separate
+ 	attempt at it.
+ 
+ Tue May 25 06:16:06 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (time-stamp-format): use %02H.
+ 
+ 	* texinfo.tex: Had PDF and DVI transposed.
+ 
+ Sun Apr 25 15:30:00 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\appendixletter): restore \the, necessary for .toc.
+ 
+ Thu Apr 22 19:22:12 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\emergencystretch): Increase to .15\hsize.
+ 
+ Tue Apr 20 05:11:04 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\defunargs): use \tensl\hyphenchar\font to work
+ 		better with Gildea's PostScript version.
+ 
+ 	* texinfo.tex (\tab): Change back to just &.
+ 	From: Nathan Sidwell <nathan@acm.org>.
+ 
+ 	* texinfo.tex: No \fi.
+ 
+ Mon Apr 19 17:38:54 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\pdflink) [!\ifpdf]: define to ignore arg.
+ 
+ 	* texinfo.tex: Add pdf support.  Merge from: Kurt Hornik
+  		<Kurt.Hornik@ci.tuwien.ac.at>.
+ 
+ Wed Mar 31 13:24:16 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\defopheader): missing word space before `on'.
+   		Report from: Chris Hanson <cph@martigny.ai.mit.edu>.
+ 
+ Fri Mar 26 17:00:41 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\imagexxx): Equalize space above and below if in
+  		vmode.  From rms.
+ 
+ Thu Mar 25 20:00:00 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\deftypeivar): new command.
+ 
+ Tue Mar 23 17:53:37 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (&): be sure active & is defined for @deftypefn
+ 		operator&.
+ 	Report from: Nathan Sidwell <nathan@acm.org>.
+ 
+ Sat Mar 20 12:31:53 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\exampleindent): new command.  From Yoshiki.
+ 
+ 	* texinfo.tex: Changes from Andreas to use \sl\$ inside italics
+ 		and to avoid extra spaces around @anchor.
+ 
+ 	* texinfo.tex (\image, \imagexx): move pdf test to imagexxx for
+  		correct filename parsing.
+ 
+ Mon Mar 15 16:51:20 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\imagexxx): reset catcode ^^M in case we're inside
+  		in an example.  Report from kama.
+ 
+ 	* texinfo.tex (\putwordin): new macro for word `in'.
+ 	(\xrefX): use it.
+ 	Report from: "Alexey A. Nikiforov" <A.A.Nikiforov@inp.nsk.su>
+ 
+ Sun Feb 21 16:47:28 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: Expand tabs.
+ 
+ Sun Feb 14 16:02:29 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\paragraphindent): implement.
+ 	Suggestion from: Paul DuBois <dubois@primate.wisc.edu>.
+ 
+ Tue Feb  9 07:25:07 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\alias): use def rather than \let.
+ 	Change timestamp format to include hours.
+ 
+ 	* texinfo.tex: New commands @alias and @definfoenclose.
+ 	From: "Eric S. Raymond" <esr@snark.thyrsus.com>.
+ 
+ Mon Feb  8 14:46:56 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\scanmacro): Use \endinput to avoid spurious space,
+  		and various other space fixes.  From: Andreas Schwab
+  		<schwab@ls5.informatik.uni-dortmund.de>.
+ 
+ Thu Feb  4 15:24:40 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\uref): implement optional third arg.
+ 
+ 	* texinfo.tex (\dosubind): Include index entry in third arg to
+ 		\entry instead of writing as bogus fourth arg.
+ 	Report from: kama@hippo.fido.de (Karl Heinz Marbaise).
+ 
+ 	* texinfo.tex (\setemergencystretch): Increase somewhat.
+ 
+ 	* texinfo.tex (\putwordof): rename from \putwordOf.
+ 	* texinfo.tex (defivarhead, \defcvarheader): Use \putwordof.
+ 
+ Tue Feb  2 16:57:00 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\documentlanguage, \documentencoding): new
+ 	commands.  \documentlanguage based on an implementation by kama.
+ 
+ Sat Jan 30 17:23:45 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\putwordMMai): Should be MMay.  From Trond.
+ 
+ Fri Jan 29 17:52:16 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: Fix @macro expansion inside @section.  Patch from
+  	Andreas:
+ 
+ 	From: Andreas Schwab <schwab@ls5.informatik.uni-dortmund.de>
+ 
+ 	The general idea is to construct a list a all defined macros in
+  		the form \do\macro1\do\macro2..., then temporarily define
+  		\do to something appropriate and execute the list to do
+  		whatever is needed.  Here is a patch, and i have also
+  		fixed a few other bugs that i found while browsing through
+  		the @macro implementation.  Additionally i have added a
+  		check to prevent the user from doing silly things like
+  		@macro shipout.
+ 
+ Sun Jan 24 09:59:42 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\obstexwarn): Don't use *** in message, it
+  		interferes with make output parsing.
+ 
+ Thu Jan 21 15:45:20 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: Internationalization improvements from kama.
+ 
+ Wed Jan 20 17:12:52 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\contents, \shortcontents): Run \contentspagealignmacro.
+  	From: Trond Endrestol <trond@agamemnon.gtf.ol.no>
+ 
+ Thu Jan 14 16:53:43 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\begindoublecolumns): Ship out \partialpage
+ 	immediately if it is nonvoid, instead of saving it.  This avoids a
+ 	bug where the index could end up printing one line per page (see
+ 	the indexspread.tex test).
+ 	From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* texinfo.tex (\image): If running pdftex, do \pdfimage{imagefile.pdf}.
+  	From: Samuel Tardieu <sam@inf.enst.fr>
+ 
+  	Also, update copyright year.
+ 
+ Tue Jan  5 17:50:45 1999  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\enddoublecolumns): Move \pagegoal reset to after
+  		the \endgroup so we get the restored single-column \vsize
+  		as intended.
+ 
+ Sun Dec 20 17:57:22 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\indexdummies): Set \{ and \} to \mylbrace and
+ 	\mybrace to avoid braces in the index file, which
+ 	texindex can't handle.
+ 
+ Sat Dec 19 18:13:16 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\pickupwholefraction): Ignore whole-number part.
+ 	(\setuptable): Always pass whole-number part and decimal point.  This
+ 	allows leading zeroes.
+ 	Suggestion from: Ben Bullock <ben@hayamasa.demon.co.uk>.
+ 	Date: Fri, 21 Aug 1998 14:06:50 +0100 (BST)
+ 
+ Tue Dec 15 16:38:07 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\indexdummies): set \{ and \} to \lbracecmd and
+         \rbracecmd to avoid lossage if @tex is active during \shipout.
+ 	Report from: "Peter Kabal" <Kabal@ece.mcgill.ca>.
+ 
+ Sun Dec  6 17:11:17 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: Doc fix.
+ 
+ 1998-11-11  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+ 
+ 	* doc/texinfo.tex (\onepageout): Put the cropmarks in vboxes of
+ 	zero height so that they don't contribute space themselves.
+ 	Compensate for \topandbottommargin.
+ 	(\internalpagesizes): Advance \outervsize by 2\topandbottommargin,
+ 	not only 0.6in.
+ 
+ Fri Nov  6 17:27:57 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex: Use standard time-stamp.el package instead of
+  		update-date.el.
+ 
+ Sat Oct 31 19:23:02 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\indexnofonts,\indexdummies): add \url and \uref to
+  		list.
+ 
+ Fri Oct 30 08:16:23 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (\expandablevalue): Delete spurious `v' character.
+ 
+ Tue Oct 27 11:18:40 1998  Karl Berry  <karl@gnu.org>
+ 
+ 	* texinfo.tex (@env, @command, @option): Must disable for index
+  		and xref commands.  Also, \input plain if necessary before
+  		using {} in the version number.
+ 
+ Wed Sep 30 11:40:36 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: Use date as version number instead of RCS, and
+  		update-date to update it.
+ 
+ Thu Sep 17 13:22:44 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: Fix @macro expansion of @code with _ in the
+  		argument.
+  	From: Zack Weinberg <zack@rabi.columbia.edu>.
+ 
+ Fri Aug 28 10:30:29 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\itemzzz): take \itemmargin into account when
+  		unhboxing.  Reported by Bob.
+ 
+ Fri Aug 14 16:56:58 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: Change @defun environments so that right margin is
+  		not changed, and instead the defun type label is outdented
+  		into the margin.
+ 
+ Thu Aug 13 13:31:41 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\smartslanted): define this separately from
+  	\smartitalic.
+ 	(\emph, \i): use \smartitalic for true italics.
+ 
+ Mon Aug 10 11:51:13 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\value): handle active _ or - in argument (happens
+  		if called from @code).
+  	Report from: Dave Love <d.love@dl.ac.uk>.
+ 
+ Sun Jul 19 09:49:23 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\dosubind): Don't do \vskip to preserve \lastskip
+  		unless we are in vertical mode.  Otherwise we might end a
+  		paragraph prematurely, and \folio won't get expanded by
+  		\output.
+  	Report from: "Richard E. Stone" <res@rstone.mn.org>
+ 
+ Thu Jul 16 15:33:37 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: Keep track of how negative the page numbers have
+  	gotten:
+ 	(\lastnegativepageno): New \count register.
+ 	(\startcontents): Use it.
+ 	(\contents, \summarycontents): set it.
+ 
+ Mon Jul 13 16:58:11 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\imagexxx): Add some space around the image if it's
+  		by itself.
+ 
+ 1998-07-09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* texinfo.tex (chapterzzz): Put a space before the chapter number
+ 	in the message.
+ 	(appendixzzz): Use \putwordAppendix in the message.
+ 
+ Thu Jul  9 08:39:53 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\macro): Globalize assignments since it's done
+ 		inside a group.  From Zack.
+ 
+ Mon Jul  6 17:21:25 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\comment): Speed up.
+ 	(\loggingall): Turn on eTeX's extended tracing.
+ 	More macro fixes.
+ 	Date: Sat, 04 Jul 1998 14:51:49 -0400
+ 	From: Zack Weinberg <zack@rabi.phys.columbia.edu>
+ 
+ Thu Jul  2 10:20:32 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\contents, \summarycontents, \startcontents): Use
+  		roman numerals for toc, arabic outside, even when toc is
+  		at the beginning.
+ 
+ Mon Jun 29 10:05:28 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\anchor): New command @anchor.
+ 	(\xrefX): Avoid double space when xref to an @anchor or an @unnumbered.
+ 
+ 	* texinfo.tex (\itemzzz): Use kerns and \unhbox when item text
+ 		fits in the space, so footnotes can work.
+ 
+ 	* texinfo.tex (\setref): Take additional argument for the -snt
+  	xref.  Call \indexdummies.
+ 	(\donoderef, \appendixnoderef, \unnumbnoderef): Change \setref calls.
+ 
+ Sat Jun 27 19:16:34 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\contents, \summarycontents): Must not be \outer.
+ 
+ Fri Jun 26 16:15:14 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\writetocentry): New macro.
+ 	(\chapternofonts): No longer needed.
+ 	(\chapter, ..., \unnumberedsubsubsec): Change all the sectioning
+ 		commands to call \writetocentry instead of doing it inline.
+ 	Also, do not call \chapternofonts, we avoid expansion with
+ 		\the\toks instead.
+ 	(\opencontents): No longer needed, instead \writetocentry opens
+ 		the file when necessary.
+ 	(\setfilename): Don't call \opencontents.
+ 	(\ifsetcontentsaftertitlepage, \ifsetshortcontentsaftertitlepage):
+ 		New conditionals.
+ 	(\Etitlepage): Call \contents and/or \shortcontents if
+ 		conditionals are set.
+ 
+ 	Global: use \nobreak instead of \penalty 10000 for epsilon efficiency.
+ 
+ Thu Jun 25 08:29:32 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\option,\env,\command): New markup commands.
+ 	Suggested by arnold@gnu.org.
+ 
+ 	* texinfo.tex (\afourpaper): More reasonable margins.
+ 	From: Wilhelm Mueller <muewi@hb.senbvs43.uni-bremen.de>
+ 	Date: Thu, 25 Jun 1998 10:48:13 +0200 (MET DST)
+ 
+ Wed Jun 24 17:46:43 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\acronym): New Texinfo command.
+ 
+ Tue Jun 23 17:36:39 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\dots, \enddots): Missing \leavevmode.
+ 	Report from: Thomas Esken <esken@nmlab.informatik.fh-dortmund.de>
+ 	Date: Tue, 23 Jun 1998 14:22:27 +0200 (MET DST)
+ 
+ Mon Jun 22 16:00:53 1998  Karl Berry  <karl@north>
+ 
+ 	* texinfo.tex: Rewrite of index stuff to do better column breaking
+ 	and balancing.
+ 	The old code failed miserably when the index was just the wrong size,
+ 	e.g., the Autoconf manual with @afourpaper.
+ 	Bug report from: Wilhelm Mueller <muewi@hb.senbvs43.uni-bremen.de>
+ 	Date: Fri, 12 Jun 1998 16:34:49 +0200 (MET DST)
+ 	(\initial): Add more glue around the initial, and make it a
+ 		multiple of \baselineskip.
+ 	(\entry): Add glue before each entry so the columns can always be the
+ 	 same height.
+ 	(\doublecolumnout): Available space no longer needs to handle
+ 	 \partialpage specially.
+ 	(\pagesofar): Take \ht\partialpage into account with \vsize.
+ 	(\enddoublecolumns): Reset \output to avoid calling
+ 		\balancecolumns twice
+ 	(\balancecolumns): Format for readability.
+ 	(\initialskipamount): No longer needed, remove.
+ 
+ 	(\hbadness): Increase a bit, boxes that are a little underfull look ok.
+ 
+ Sun Jun 21 16:48:38 1998  Karl Berry  <karl@north>
+ 
+ 	* texinfo.tex (\ninettsl): cmsltt10 is not standard, so use
+ 		cmsltt10 scaled 900.
+  	Date: Mon, 15 Jun 1998 12:35:41 +0200 (MET DST)
+  	From: Werner Struckmann <struck@ips.cs.tu-bs.de>.
+ 
+ Thu Jun 18 08:32:15 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: @macro fixes from Zack Weinberg
+   	     <zack@rabi.phys.columbia.edu>.
+  	- @ifblah did not work inside @macro
+         - spaces in parameter lists in macro definitions caused errors
+         - leading spaces in parameter lists in macro invocations were
+ 	  preserved inappropriately.
+ 
+ Wed Jun 10 16:50:53 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\smallformatx, \smalldisplayx): New macros.
+ 	(\smallbook): Arrange to use them.
+ 	(\display, \flushleft, etc.): Rewrite to avoid duplication.
+ 
+ Sun Jun  7 18:13:45 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\pagesizes): Rename to \internalpagesizes.
+ 	(\custompaper): Rename to \pagesizes.
+ 
+ Sat Jun  6 13:16:32 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: Rewrite paper size definitions, add @custompaper.
+ 
+ 	* texinfo.tex: Fix for macros in arguments to other commands.
+   		From Zack.
+ 
+ Thu Jun  4 11:21:07 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: Better @macro implementation.
+ 	From: Zack Weinberg <zack@rabi.phys.columbia.edu>.
+ 
+ Tue May 26 17:43:21 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\imagexxx): Center image if it is not part of a
+  		paragraph.
+ 
+ Tue May 19 17:17:12 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: \linkstrue by default.
+ 	Also, first implementation of @macro; can only handle some cases,
+  		but that is better than nothing.
+ 	From: Zack Weinberg <zack@rabi.phys.columbia.edu>
+ 
+ Thu May 14 17:32:47 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: New command @novalidate along the lines of makeinfo
+ 		--no-validate.
+ 	Date: Sun, 26 Oct 1997 18:54:47 -0500
+ 	From: Zack Weinberg <zack@rabi.phys.columbia.edu>
+ 
+ Tue May 12 16:19:35 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\valuexxx): Split up into expandable and
+  		non-expandable parts.
+ 	(\expandablevalue): New macro.
+ 	(\indexdummies): \let\value = \expandable value.
+ 
+ 	* texinfo.tex: Doc fixes.
+ 
+ 	* texinfo.tex (\doind): Just call \dosubind with empty third arg.
+ 	(\dosubind): Replace with \doind definition and suitable code to handle
+ 	possible third arg.  And propagate glue past the whatsit from the
+  	\write so index entries don't cause extra space between
+  	@defuns (for example).
+ 
+ Wed May  6 12:51:27 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\deftypemethparsebody): Handle the extra arg in
+  	@deftypemethodx, too.
+ 	(\deftypefunx): Error definition was misspelled as \deftypeunx.
+ 
+ Fri May  1 17:31:58 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo/texinfo.tex (\putwordon, \putwordMethodon): New macros.
+   	Use in \def... commands.
+ 	(\indexdummies): make `\ ' be just ` ' for sorting.
+ 	(\deftypemethparsebody): New macro.
+ 	(\defmethod): Call it.
+ 	Various doc fixes.
+ 	Repored by: KHMarbaise@p69.ks.fido.de (Karl Heinz Marbaise)
+ 	Date: Wed, 07 Jan 1998 10:19:42 +0100
+ 
+ Fri Apr 10 16:54:48 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: @cartouche: Align right side correctly.
+ 	From: dale.smith@bellhow.com (Dale Smith)
+ 	Date: Fri, 06 Mar 1998 14:47:02 GMT
+ 
+ Sun Apr  5 17:19:03 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\dosetq): Use \normalturnoffactive instead of just
+  	\turnoffactive, so \'s in node names are handled properly.
+ 	(\tie): Move definition to more rational position in the file.
+ 	(\@, \{, etc.): Use decimal numbers in all cases, to avoid use of '.
+ 	Paranoia only.
+ 	(\+): Turn off once and for all at the beginning, and define as
+ 	\tabalign in @tex.
+ 
+ Tue Mar 31 19:33:31 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\synindex, \syncodeindex): \closeout the redirected
+ 		index.
+ 	From: Jakob Stoklund Olesen <stoklund@mi.aau.dk>
+ 
+ 	* texinfo.tex (\doignore): Ignore everything after `c', so @end
+  	ifinfo and the like can be commented out.
+ 	(\macrocsname): New macro.
+ 	Reported by: "James A. Lupo" <lupoja@feynman.ml.wpafb.af.mil>
+ 
+ Wed Feb 25 15:48:51 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\doprintindex): Change catcode of @ before \read,
+ 		in case of \initial{@} being the line that is read.
+ 	Reported by: Drew Csillag <drew_csillag@geocities.com>
+ 
+ 	* texinfo.tex (\dotable): Add \leftskip to \hsize in the first column.
+ 	Don't inherit \rightskip from surrounding environment.
+ 	Set \item to \crcr to avoid empty first row.
+         Prepend \parskip glue before table.
+         Set \everycr locally outside of alignment, don't reset it
+ 	        explicitly in \Emultitable.
+ 	All from Andreas Schwab, to avoid overfull hboxes.
+ 
+ 	Also, work on leading commentary in file a bit.
+ 
+ Tue Feb 24 17:48:29 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: \!: Save and restore this for @tex.
+ 	From: Jean-Pierre Moreau <jpmoreau@ciframedical.com>
+ 	Date: Fri, 22 Aug 1997 16:47:36 -0400
+ 
+ 	* texinfo.tex (\angleleft, \angleright): New macros.
+ 	(\refx, \email, \key): Use them.
+ 	From: Stephen Gildea <gildea@intouchsys.com>
+ 	Date: Fri, 26 Dec 1997 11:43:32 EST
+ 
+ Mon Feb 23 17:34:23 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	1997-08-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+ 	* doc/texinfo.tex (xrdef): Read the second argument with \
+  	as an escape character.
+ 
+ 1998-01-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+ 
+ 	* texinfo.tex (\tocentry): Don't \turnoffactive before typesetting
+ 		the arguments, it causes special characters to be printed
+ 		incorrectly.
+ 
+ Mon Jan 19 10:58:25 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texi2html: Correct version number, home page reference.
+ 
+ Sat Jan 17 15:12:03 1998  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texi2html: Version 1.54.  Handle @image better, etc.
+ 	* From: Bob Friesenhahn <bfriesen@simple.dallas.tx.us>.
+ 
+ Wed Dec 24 13:59:07 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\dots, \enddots): Use current font instead of
+  		always using math italic.  From Stephen Gildea.
+ 
+ Tue Dec 23 11:33:07 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex: Spurious xepsf.tex should be epsf.tex.
+ 
+ Mon Oct 13 15:49:28 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\titlefont): Explicitly set \rm.
+ 
+ Sat Jul 26 15:12:37 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\email): Let to \uref instead of \code, as a second
+  		optional argument makes sense for this, too.
+ 
+ Mon Jul 14 13:43:43 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\indexdummies): Add \value.
+ 
+ Thu Jul 10 13:34:30 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\authorrm): Must use \def instead of \let, as
+  		\secrm is not yet defined.
+ 
+ 1997-07-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\titlefont): Define again, using \titlefonts.
+ 
+ Wed Jul  9 16:45:30 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\startcontents): Leave ^ catcode as other.
+ 
+ Sat Jul  5 17:16:40 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\titlefonts): New macro to set title font styles,
+  	so italic etc. work in @title.
+ 	(\titlefont): No longer needed.
+ 	(\titlepage): Call \titlefonts instead of \titlefont.
+ 	(\chapsf, \ssecsy, \ssecttsl): Correct magstep values.
+ 	From: Stephen Gildea <gildea@intouchsys.com>.
+ 
+ 	* texinfo.tex (\onepageout): Back up to 2\baselineskip per Stephen.
+ 	(\kbdinputstyle): New command.
+ 
+ 1997-04-03  00:07:28 1997  Richard Stallman  <rms@gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\kbdfont, \kbdexamplefont): New macros, parms that
+ 	tell @@kbd what to do.
+ 	(\setkbdinputdistinct, \setkbdinputexample): New commands set them.
+ 	(\kbd): Use those parms.
+ 
+ Thu Jul  3 16:52:39 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\onepageout): Leave only one line space above the
+  	footline, to be more like plain.  Suggested by Stephen Gildea.
+ 	(\evenfootline): Left one too many line spaces here, so reduce by two.
+ 
+ 	(\ifnottex): Another ignore command.
+ 	(\ifnothtml,\ifnotinfo): New commands.
+ 	(\doignore): Ignore brace characters, so mismatched braces in ignored
+ 	text do not cause complaints.
+ 
+ Fri Jun 27 15:09:16 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\image): New definition for new @image command.
+ 
+ Wed Jun 18 15:58:20 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\oddfootingxxx),
+ 	(\onepageout): Leave space for the footline if present.
+ 	(\everyfootingxxx, \everyheadingxxx): Call \oddfootingxxx and
+ 	\evenfootingxxx instead of repeating their code.  From: Stephen
+  	Gildea <gildea@intouchsys.com>.
+ 
+ 	(\setfilename): Read texinfo.cnf if present.
+ 
+ 	(\indexdummies, \indexnofonts): No-op additional commands @result @equiv
+ 	@expansion @print @error @point.  From: Dave Bodenstab
+  		<imdave@ais.net> (for texi2www doc).
+ 
+ Fri Jun  6 10:31:34 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\setmultitablespacing): Restore bad typing mistake
+  		from yesterday.
+ 
+ Thu Jun  5 18:04:26 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\uref): Write real definition, taking one mandatory
+ 		argument and one optional one.
+ 
+ Wed Jun  4 17:16:09 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\mainmagstep): Define this as a \count variable
+  	instead of with \let, to make changing to \magstep1 more transparent.
+  	From: HERBERT@boevm4.vnet.ibm.com.
+ 	(\uref): New command a la \url.
+ 
+ Sat May 24 18:06:41 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\deftypemethod, \deftypemethodheader): New macros
+ 		to implement new commands @deftypemethod and @deftypemethodx.
+ 	Suggestion from: KHMarbaise@p69.ks.fido.de (Karl Heinz Marbaise).
+ 
+ Wed May 21 17:17:52 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\opnr, \clnr): Increment/decrement \parencount, for
+    	  @defun lines with nested parens.  From Bill Schelter
+  	  <wfs@fireant.ma.utexas.edu>.
+ 	(\itemizeitem): Correct \errmessage.
+ 
+ Mon May 19 17:34:40 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\codeunder): Use \_ and \ifusingtt to avoid
+  	dotaccent from _ in roman fonts, e.g., @deftypefn.
+ 	(\tex): Remove spurious spaces at the end of subdefinitions.
+ 	From: "John W. Eaton" <jwe@bevo.che.wisc.edu>.
+ 	(\url, \email): \let to \code; no quotes or angle brackets.
+ 
+ Mon May  5 17:06:35 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\onepageout): \ifcropmarks, center the page body.
+   	Lost this when merged \croppageout with \onepageout.  Found by
+  	Arnold.
+ 
+ 	(\doprintindex): Do not bother to go into double column mode unless
+ 	there actually is a non-empty index.
+ 
+ 	(\begindoublecolumns): Include any existing \partialpage in the new one,
+ 	lest we lose a whole page of output.  Found by M J Morley
+  	<mjm@scs.leeds.ac.uk>.
+ 
+ 	(\chapternofonts): Remove spurious spaces, both in the definitions that
+ 	get output to the aux file(s) and in this macro.
+ 
+ 	Fix comments and rationalize whitespace in various other places.
+ 
+ Sun Apr 27 15:41:16 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\chapter, etc.): Avoid expansion of section title
+         when writing the toc.
+ 
+ Thu Apr 24 16:35:46 1997  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\onepageout): Integrate cropmarks case here,
+ 	instead of having a completely different routine.
+ 	(\croppageout): Remove this.
+ 
+ Sun Jun  9 14:26:42 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+ 	* texinfo.tex (\ignoremorecommands): Ignore \defcodeindex, and do
+         not ignore \message.
+ 
+ Thu Apr 11 12:59:42 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\macro): New macro.
+ 	(\enddots, \endldots): New macros.
+ 	(\centerchap, \centerchapyyy): New macros.
+ 	(\centerchfplain, \centerchfopen): New macros.
+ 	(\CHAPFplain, \CHAPFopen): Set \centerchapmacro.
+ 
+ Wed Mar 13 11:42:17 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+         * texinfo.tex (\url): New macro, like \samp for now.
+ 
+ Sun Mar 10 13:05:08 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex: Changes in @multitable code.
+ 	Change meaning of @multitablelinespace.
+ 
+ Tue Mar  5 18:56:08 1996  Dave Love  <d.love@dl.ac.uk>
+ 
+ 	* texinfo.tex (\set): Set catcode of space explicitly (inside a
+  	group) to avoid losing inside @example, say.
+ 
+ Sun Mar  3 17:01:27 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+         * texinfo.tex (\itemxpar): Protect the \vskip here with \nobreak,
+         to avoid a possible page break at an @itemx.
+ 
+ Sun Feb 25 14:53:15 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+         * texinfo.tex (\obstexwarn): Use \global to avoid ever getting the
+         warning twice.
+ 
+         * texinfo.tex (\include): Allow underscores and other such
+         characters we made active in the file name argument.
+ 
+ Tue Feb  6 15:06:27 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\afourlatex): Delete the old duplicate definition
+ 	of \afourlatex.
+ 
+ Sun Feb  4 15:20:16 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\tab): New definition.
+ 	(\setuptable): Fix previous change.
+ 	(\multitablecolspace): Renamed from \multitablecolmargin.
+ 	(\multitablelinespace): Renamed from \multitablelineskip.
+ 
+ Fri Feb  2 02:20:16 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\multitableparskip): Renamed from \intableparskip.
+ 	Allocate with \newskip.
+ 	(\multitableparindent): Renamed from \intableparindent.  Use \newskip.
+ 	(\multitablelineskip): Renamed from \spacebetweenlines.  Use \newskip.
+ 	(\multitablecolmargin): Renamed from \spacebetweencols.
+ 	(\columnfractions): Renamed from \percentofhsize.
+ 	(xcolumnfractions): Renamed from \xpercentofhsize.
+ 
+ 	* texinfo.tex (\setuptable): Handle >1 digits after @percentofsize.
+ 	(\pickupwholepercent): New macro.
+ 
+ Sun Jan 28 21:14:46 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\key, \kbdfoo): Use \ttsl unconditionally.
+ 	(\setkeyfont): Definition deleted.
+ 
+ Tue Jan 23 14:57:23 1996  Karl Berry  <karl@cs.umb.edu>
+ 
+         * texinfo.tex: @kbd within @example selects slanted tty font:
+ 	(\ttsl, \ttslshape): Define this new font shape.
+         (\kbdfoo): Set the font to \ttsl if already using \tt.
+         (\setkeyfont, \ifmonospace): New macros.
+ 
+ Wed Jan 17 23:57:48 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\changepagesizes): Additional arg for topskip.
+ 	(\afourlatex): Total rewrite.
+ 	(\afourwide): Pass new arg to \changepagesizes.
+ 
+ Wed Jan  3 17:15:00 1996  Stephen Gildea  <gildea@x.org>
+ 
+         * texinfo.tex (\slbshape, \itbshape): Use bold slant and and
+ 	bold italic in titles to match the bold roman.  Do not use
+         bold sf or bold tt, which would be too heavy.
+ 
+         * texinfo.tex (\setfont): Pass font name in more pieces.
+         (\*shape): New macros defining symbolic names for all font
+ 	shapes so can use other font families with different naming
+ 	conventions.
+ 
+ Wed Jan  3 15:52:18 1996  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\ignoremorecommands): Turn off @everyheading and
+ 	friends, @headings, @setchapternewpage, @setchapterstyle.
+ 
+ Sat Dec 30 17:20:48 1995  Karl Berry  <karl@cs.umb.edu>
+ 
+         * texinfo.tex (\inmargin): Don't allow a break before the vertical
+         kern.  Do allow a whole paragraph of marginal text, not just one line.
+ 	Use \inmarginspacing.
+ 
+ Thu Dec 28 23:22:08 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\inmargin): New command @inmargin.
+ 	(\dircategory): Ignore @dircategory.
+ 
+ Tue Dec 12 17:25:36 1995  Karl Berry  <karl@cs.umb.edu>
+ 
+         * texinfo.tex (\lvvmode): Remove this; use \leavevmode as usual,
+         so spaces/underscores at beginnings of lines inside @example work.
+         Bogus index entries should be (and now are, I think) handled in
+         other ways.
+ 
+ Mon Nov 13 16:07:09 1995  Karl Berry  <karl@cs.umb.edu>
+ 
+         * texinfo.tex (\xrefX): Test for xref-automatic-section-title
+         being @set correctly, and remove spurious redefinition of
+         \printednodename in that case.
+ 
+ Mon Oct 16 15:16:34 1995  Karl Berry  <karl@cs.umb.edu>
+ 
+         * texinfo.tex (\unsepspaces): New macro to make active space
+         expand into a normal space char in index entries.
+ 	(\indexdummies): Use \unsepspaces.
+ 
+ Thu Oct 12 14:56:52 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\tie): Use \lvvmode, not \leavevmode.
+ 	Don't use \@M directly either.
+ 
+ Sun Aug 27 21:17:09 1995  Paul Eggert  <eggert@twinsun.com>
+ 
+ 	* texinfo.tex (\appendixsection): Fix misspelled defn.
+ 
+ Mon Jul 31 23:57:57 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\ttfont): Don't call \nohyphenation.
+ 
+ Sun Jul 30 18:30:47 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\tocentry): Use \turnoffactive.
+ 
+ Sun Feb  5 05:34:13 1995  Richard Stallman  <rms@pogo.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\boldbraxnoamp): New function.
+ 	(\deftypefunargs): Use that, not \boldbrax.
+ 
+ Tue Jan 31 12:15:28 1995  Karl Berry  <karl@cs.umb.edu>
+ 
+         * texinfo.tex (\set): Use \gdef, not \xdef.
+ 
+ Sat Jan 21 16:39:36 1995  Richard Stallman  <rms@pogo.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex: Initially make _ and + \active,
+ 	then later make them \other.
+ 	(\otherifyactive): New command.
+ 
+ Thu Jan 19 21:59:22 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\afourwide): New command.
+ 
+ Mon Jan 16 09:29:38 1995  Stephen Gildea  <gildea@x.org>
+ 
+ 	* texinfo.tex: Initially make + and _ "other" characters.
+ 	(\fixbackslash, \everyjob): Make + and _ active characters.
+ 
+ Tue Jan 10 19:16:09 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex: At beginning, \input plain if necessary.
+ 	(\deftypefunargs): Use \boldbrax, not \functionparens.
+ 
+ Sun Dec 18 16:40:11 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\indsc): Use csc10 (at 9pt), not indrm.
+ 
+ Mon Oct 31 00:51:20 1994  Richard Stallman  <rms@pogo.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\changepapersizes): Fix definition syntax.
+ 	(\fontprefix): Define only if not yet defined.
+ 
+ 	* texinfo.tex (\margin): Define a new insert.
+ 	(\SETmarginindex): Initialize to \relax.
+ 	(\doindex): Optionally put the entry in the margin.
+ 	(\pagecontents): Print the index entries put in the margin.
+ 
+ Sat Oct 29 19:50:10 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\auxhat): New macro.
+ 	(\dosetq): Use \auxhat.
+ 	(reading the aux file): Give ^ catcode 7.
+ 
+ Wed Oct 26 03:28:04 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\setfont): New macro.  Use it for specifying
+ 	most of the fonts that are normally cm fonts.
+ 	(\fontprefix): New macro, normally `cm'.
+ 
+ Mon Oct 24 01:27:09 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\startcontents): Set catcode of ^.
+ 
+ Thu Oct 13 02:19:43 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\ifhtml, \html, \enddots, \?, \!): New commands.
+ 
+ Fri Sep 16 16:30:52 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\defheaderxcond): New macro.
+ 	(\deftypefnheaderx): Use defheaderxcond when calling defname.
+ 	(\deftypefunheaderx, \deftypevarheader, \deftypevrheader): Likewise.
+ 
+ Fri Aug 26 03:08:08 1994  Amy Hendickson  <amyh@ai.mit.edu>
+ 
+ 	* texinfo.tex (\multitable): New command.
+ 
+ Mon Aug  1 14:28:57 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+ 
+ 	* texinfo.tex (\changepagesizes, \afourlatex): New macros.
+ 
+ Tue Jul 12 11:45:58 1994  Karl Berry  (karl@cs.umb.edu)
+ 
+         * texinfo.tex (\quotation): Set \parskip to zero to avoid extra
+         space below the environment.
+ 	(\quotation): Clean up comments and indentation.
+ 
+ Wed Jul 13 05:36:40 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xrefX): Put back, and correct, the test of
+ 	SETxref-automatic-section-title.
+ 
+ Thu Jul  7 15:57:52 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* Set catcodes of chars 128-255 to \other.
+ 
+ Mon Jul  4 15:32:41 1994  Karl Berry  (karl@cs.umb.edu)
+ 
+         * texinfo.tex (\tie): Set \catcode of @ to 11 before using \@M.
+ 
+         * texinfo.tex (\xrefX): Undo \turnoffactive while printing the node
+         name, so _ in node names doesn't come out as the dot accent.
+ 
+ Sat Jul  2 14:49:26 1994  Karl Berry  (karl@cs.umb.edu)
+ 
+         * texinfo.tex (\tie): Ensure we're in horizontal mode before the
+         \penalty.
+ 
+ Tue May 10 01:21:28 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\donoderef, \unnumbnoderef, \appendixnoderef):
+ 	Set \lastnode globally.
+ 
+ Sun Apr 17 15:35:43 1994  Karl Berry  (karl@ra.cs.umb.edu)
+ 
+         * texinfo.tex (\~): Define to be a tie.
+         (\ptextilde): New defn to save the plain's tilde accent.
+         (\tex): Restore plain tilde.
+ 
+ Sun Mar 27 23:35:17 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\smallbook): Set \defbodyindent and \deftypemargin.
+ 
+ Sun Mar 20 19:47:59 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xrefX): Define and use \correctnodename.
+ 	(@turnoffactive): Move after @ becomes available
+ 	and turn off backslash as well as other chars.  Use @realbackslash.
+ 	(@normalturnoffactive): Like @turnoffactive but use @normalbackslash.
+ 
+ Sat Mar 19 12:26:25 1994  Karl Berry  (karl@cs.umb.edu)
+ 
+         * texinfo.tex (\singlespaceskip): Increase to 12.5pt.
+         (\singlespace): Call \setleading instead of just assigning to
+         \baselineskip, so the strut box will be reset.
+         (\smalllispx): Likewise.
+ 
+ Sun Mar 13 20:32:28 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\dots): Change back to \ldots.
+ 
+ Sat Mar 12 22:34:10 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\indexnofonts): Add %'s to suppress newlines after \def.
+ 
+ Sat Feb 26 15:51:37 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\deftexinfoversion): New macro.
+ 	(\texinfoversion): Define using \deftexinfoversion.
+ 
+ Wed Jan 26 12:40:52 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\putwordSee, \putwordInfo, \putwordfile)
+ 	(\putwordChapter, \putwordAppendix, \putwordSection)
+ 	(\putwordsection, \putwordpage)
+ 	(\putwordTableofContents, \putwordShortContents): New macros.
+ 	Used in various places instead of fixed words.
+ 
+ Mon Jan 24 22:51:36 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\ignoremorecommands): Turn off @item and @message.
+ 
+ Thu Jan 20 17:01:53 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\indexnofonts): Treat accents as dummies.
+ 	Turn modified European letters into one or more ordinary letters.
+ 
+ Tue Jan 18 14:54:32 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\indexdummies): Handle tex accents and European letters.
+ 
+ Wed Nov 24 16:11:51 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\dots): Use $\,$ for spacing.
+ 
+ Sun Nov 21 22:16:21 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\dots): Avoid using \ldots; use periods and kern.
+ 	(\indexdotfill): Use italic periods.
+ 
+ Fri Nov 19 20:50:31 1993  Roland H. Pesch  (pesch@apple-gunkies.gnu.ai.mit.edu)
+ 
+         * texinfo.tex (\deftypefunargs): use \tclose rather than \code to
+         avoid side effects on active chars
+ 
+ Tue Sep 28 16:01:58 1993  Roland H. Pesch  (pesch@apple-gunkies.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\obeyedspace defn): remove blank after \sepspaces
+ 	(left destructive penalty in vertical list)
+ 
+ Mon Aug 30 14:17:27 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\setref, \unnumbsetref, \appendixsetref): Uncomment
+ 	\dosetq for title.
+ 	(\Ytitle): Define as \thissection instead of \thischapter.
+ 	(\xrefX): If there is no printed-title arg given, and @ifset
+ 	xref-automatic-section-title, try to use the real section title.
+ 
+ Tue Jul 27 12:47:24 1993  Charles Hannym  (mycroft@trinity.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\ifitemxneedsnegativevskip): New \if; set immediately
+ 	following a short \item.
+ 	(\itemxpar): \par and then if \ifitemxneedsnegativevskip is set, do
+ 	a \vskip-\parskip.
+ 	(\internalBitemx, \internalBxitemx, \internalBkitemx): Use \itemxpar
+ 	rather than \par.
+ 	(\itemzzz): Set \ifitemxneedsnegativevskip as appropriate.
+ 
+ Thu Jul 22 16:08:33 1993  Charles Hannum  (mycroft@trinity.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\titlezzz, \finishtitlepage): Explicitly make hrules
+ 	have a width of \hsize so they aren't too long in smallbook format.
+ 
+ Tue Jun 29 15:56:19 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (\deftypefnheaderx): call \normalparens to permit
+ 	normal typesetting of strings (e.g. for C++ docn) containing `&'
+ 
+ Fri Jun 25 14:08:44 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (\nestedignore): turn off \ind... fonts too
+ 	(primarily for use within @smallexample)
+ 
+ Wed Jun 23 11:58:48 1993  Jim Kingdon  (kingdon@wombat.gnu.ai.mit.edu)
+ 
+ 	* longopts.table: Update GDB options.
+ 
+ Sun Jun 20 22:00:11 1993  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+ 
+ 	* lgpl.texinfo: Use @smallexample instead of @example.  Reformat
+ 	example disclaimer to avoid overfull \hbox.
+ 
+ Mon Jun 14 04:09:47 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\entry): Don't make a line of dots
+ 	if there are no page numbers.
+ 
+ Fri Jun 11 16:35:23 1993  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\defparsebodycommon): New macro from \defvrparsebody.
+ 	(\deftpparsebody): Call it; can't use \defvrparsebody.
+ 	(\deftpheaderline, \removeemptybraces): New macros.
+ 
+ Sat May  8 10:49:25 1993  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\itemzzz): Only change \parskip temporarily, and
+ 	unskip by it later if the item text is on its own line.
+ 
+ 	* texinfo.tex (\tablez): Do \afterenvbreak before the \endgroup,
+ 	so the \parskip value is the table's, not the surrounding text's.
+ 	(\vtable, \ftable, \itemizey): Likewise.
+ 	Note: for most environments, \nonfillfinish deals with this.
+ 
+ 	* texinfo.tex (\smalllisp): New definition for non-small case, a
+ 	la @smallexample.
+ 
+ 	* texinfo.tex: Delete \message{} at beginning; it does nothing.
+ 
+ 	(These changes are all trying to make space above and below
+ 	environments more equal.)
+ 	* texinfo.tex (\singlespace): Don't insert a kern.
+ 	(\group): Do \offinterlineskip, and reset \par to insert a blank
+ 	line's worth of space.
+ 	(\lisppar): Delete meaningless call to \obeyspaces before making
+ 	the definition.
+ 	(\Elisp [the outer one]): Rename to \nonfillfinish, and end the
+ 	paragraph before the group.
+ 	(\lisp): Set \Elisp (the inner one) to \nonfillfinish
+ 	(\example, \smallexample, \display, \format, \flushleft,
+ 	\flushright, \quotation): Use \nonfillfinish.
+ 	(\lineskipfactor, \strut{height,depth}percent): Set to more exact
+ 	values.
+ 	(\setleading): Set \normallineskip and call \normalbaselines, for
+ 	cleanliness.
+ 
+ Thu May  6 16:00:59 1993  Jeffrey Osier  (jeffrey@deneb.cygnus.com)
+ 
+ 	* texinfo.tex (\ignoremorecommands): Turn off \set and \clear.
+ 
+ Tue Apr 20 17:02:34 1993  Roland H. Pesch  (pesch@apple-gunkies.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\codex): Delete space.
+ 
+ Thu Apr 15 14:59:04 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (\ignoremorecommands): Turn off @raisesections, @up,
+ 	@lowersections, @down within false conditionals.
+ 
+ Sun Apr 18 04:33:13 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\code): Define - and _ to permit line-breaking
+ 	despite the fact that hyphenation is disabled.
+ 	(\codex, \codedash, \codeunder): New macros.
+ 
+ Tue Mar 16 18:19:16 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (\ignoremorecommands): Turn off @printindex within
+ 	false conditionals.
+ 
+ Sun Mar 14 10:47:36 1993  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\footnote): Don't bother to take the footnote text
+ 	as an argument, and hence don't define as \long.
+         (\footnotezzz): Do \footstrut after we start the paragraph.
+         (Also reformat these macros to make them easier to read.)
+ 
+ Fri Feb 26 13:02:44 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (@include): Use \thisfile rather than #1 as \input arg.
+ 
+ 	* texinfo.tex (\readauxfile): Call \warnedobstrue to turn off warning
+ 		      re TeX 3.0 on second and subsequent runs.
+ 
+ Thu Feb 25 18:03:38 1993  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\realeverypar): Delete, as it was unused.
+ 
+ 	* texinfo.tex (\group): Do a \strut in \everypar.
+ 
+ Mon Feb 22 17:10:06 1993  Karl Berry  (karl@claude.cs.umb.edu)
+ 
+ 	* texinfo.tex (\obeyedspace): Define to be whatever \sepspaces
+ 	does (and move the definition to after \sepspaces).
+ 
+ Wed Feb 17 01:55:20 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\nonfillstart): Do \singlespaces and \let\par
+ 	before \obeylines.
+ 
+ Fri Feb 12 12:32:56 1993  Roland H. Pesch  (pesch at el_bosque.cygnus.com)
+ 
+ 	* texinfo.tex (\obstexwarn): issue message re bug in TeX 3.0.
+           (\nullfont): commented-out redefinition, to enable w/TeX 3.0.
+           (\nestedignore): call \obstexwarn for manuals that may trip bug
+ 
+ 	* texinfo.tex (\nestedignore): avoid @tex contents with \doignore
+ 
+ Thu Feb 11 15:41:06 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (\indexdummies): enable @dfn and @emph in index entries
+ 
+ Thu Feb 11 13:32:32 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (\ignoremorecommands): ignore @include within
+           failing conditionals
+ 
+ Sat Feb  6 19:44:28 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\nestedignore): Set \globaldefs--make all defs local.
+ 
+ Tue Feb  2 15:57:37 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (@raisesections, @lowersections): new commands.
+ 	* (@up, down): original BFox synonyms for above.
+         * (\numhead, \apphead, \unnmhead): internal macros to map headings
+ 	to appropriate level
+ 	* (@nwnode): new synonym for @node, used in newest
+ 	makeinfo
+ 
+ Tue Jan 26 17:05:02 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (\include): avoid group around file contents
+ 
+ Tue Jan 19 18:58:56 1993  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (\ignoremorecommands, used in \nestedignore): also
+ 	ignore cross-ref commands and \settitle
+         (\setyyy, used in @set): make definitions global
+         (\clearxxx, used in @clear): clear definitions globally
+ 
+ Thu Jan 14 17:43:32 1993  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex: Added \shorttitlepage.
+ 
+ Sat Jan  2 15:01:45 1993  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\tclose): Use \spaceskip instead of modifying
+ 	\fontdimen's to normalize the interword space.
+ 
+ 	* texinfo.tex (\t, \key, \tclose): Use \hyphenchar instead of
+ 	\exhyphenpenalty, to turn off hyphenation for real.
+         (\{no,restore}hyphenation): New macros.
+ 
+ Sat Jan  2 15:01:45 1993  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\t, \key, \tclose): Use \hyphenchar instead of
+ 	\exhyphenpenalty, to turn off hyphenation for real.
+         (\{no,restore}hyphenation): New macros.
+ 
+ Tue Jan  5 19:15:46 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\deftpparsebody): Make synonymous with \defvrparsebody.
+ 
+ Sun Dec 27 09:40:08 1992  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\inforef, \inforefzzz): Use the \ignorespaces
+ 	primitive instead of \losespace.
+         (\losespace): Delete.
+ 
+ 	* texinfo.tex (\menu, \direntry): Handle like \ifinfo.
+ 
+ 	* texinfo.tex (\unmatchedenderror, \defineunmatchedend): New macros.
+         (\endxxx): Call it, instead of just doing it inline.
+         (\conditionalsucceed, \nece): More new macros.
+         (\iftex): Call \conditionalsucceed.
+         (\Eiftex): Define to give an error at the outer level.
+ 
+ 	* texinfo.tex (\ignoremorecommands, \nestedignore): New macros.
+         (\ifset, \ifclear): Expand a macro on success as well as failure;
+         also switch to using expansion instead of assignments to act after
+         the conditional.
+         (\if{set,clear}succeed): Call \conditionalsucceed.
+         (\if{set,clear}fail): Call \nestedignore instead of \doignore.
+ 
+ 	* texinfo.tex (\clear): Don't insert a spurious space.
+ 
+ 	* texinfo.tex (\value): Put comment next to definition.
+ 
+ 	* texinfo.tex (\setyyy): Call \setzzz, and define the variable as
+ 	simply the parameter, no \unskip.
+         (\setzzz): New macro; do not globally define the variable.
+ 
+ Thu Dec  3 17:24:05 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (croppageout): use same escape-char switching as
+ 	default output routine.  Permits using _ in TOC entries.
+ 
+ Fri Nov 13 17:35:38 1992  Charles Hannum  (mycroft@gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (indexing): Rewrote double-column mode to fix a
+ 	rare breakage.
+ 
+ Sun Oct 25 07:13:31 1992  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\obeyedspace): No need to define with \gdef, we're
+ 	at the outer level.
+ 
+ Fri Oct 16 18:04:40 1992  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+ 
+ 	* lgpl.texinfo: Change "This program" to "This library" in example
+ 	copying notice.
+ 
+ Sat Oct 10 09:43:45 1992  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\bullet, \minus): Use \implicitmath instead of $.
+ 
+ Fri Oct  2 08:35:51 1992  Karl Berry  (karl@cs.umb.edu)
+ 
+ 	* texinfo.tex (\Egroup): Don't do the \strut and \nointerlineskip.
+ 
+ Sat Sep 26 09:08:59 1992  Karl Berry  (karl@cs.umb.edu)
+ 
+         * texinfo.tex (\doignore, \enddoignore): New macros.
+         (\ifinfo): Call \doignore.
+         (\ifxinfoxxx): Deleted.
+ 	(\ignore, \ifsetfail, \ifclearfail): use \doignore.
+ 
+         * texinfo.tex (\unnumbered): Expand the arg only once for the \message.
+ 
+         * texinfo.tex (\deftpparsebody, \parsetpheaderline): New macros.
+         (\deftp): Call \deftpparsebody.
+ 
+ Thu Sep 24 10:12:45 1992  Karl Berry  (karl@cs.umb.edu)
+ 
+         * texinfo.tex (\entry): Do \par first; add comments.
+         (\short{chap,unnumbered}entry,\do{chap,sec,subsec,subsubsec}entry):
+           Call \tocentry, instead of using \vbox.
+         (\tocentry): New macro.
+ 
+ Sat Sep 19 14:36:11 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\`, \'): Definitions deleted.
+ 
+ Fri Sep 18 14:33:09 1992  Roland H. Pesch  (pesch@cygnus.com)
+ 
+ 	* texinfo.tex (\ifset, \ifclear): Standardize catcode of space as
+ 	for \ignore.
+ 
+ Fri Sep 11 15:25:01 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\finalout): Move out of final section of file,
+           which claims not to define new control words.
+ 
+         * texinfo.tex (\setleading): New macro.
+         (outer level, @smallbook, @afourpaper): Call it, instead of
+         setting \baselineskip directly.
+ 
+         * texinfo.tex (\|): New definition for changebars.
+ 
+ Tue Sep  1 17:32:48 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\begindoublecolumns): Exactly double \vsize.
+ 
+ Sat Aug 29 10:12:16 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\group): Define \Egroup to use struts instead of
+           letting TeX do its own interline spacing.
+ 
+         * texinfo.tex (\{remove,ignore}activespaces): New macros.
+         (\end): Call \removeactivespaces; give the correct error messages;
+           don't try to expand a nonexistent \E... macro.
+ 
+         * texinfo.tex (\EMsimple): End the help message with a period.
+ 
+         * texinfo.tex (\gobble): New macro.
+         (\lisp): Call it (instead of defining it every time).
+         (\example, \smallexample): Define \E... within the macro.
+ 
+ Tue Aug 25 11:56:26 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex (\readauxfile): Make + normal while reading aux file.
+ 
+ Thu Aug 20 21:32:34 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\doublecolumnhsize): Compute value in
+           \begindoublecolumns.
+         (\afourpaper, \smallbook, <outer level>): Remove these (virtually
+           identical) computations.
+ 
+         * texinfo.tex (\doublecolumnvsize): Deleted.
+         (\afourpaper, \smallbook): Don't compute it.
+         (\begindoublecolumns): Just double \vsize here (thus decreasing
+           the value considerably from the old value of 19.1in, which was far
+           too large.)
+ 
+ Fri Aug 14 10:16:42 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\parseargx): Use \expandafter instead of
+         \aftergroup to continue the processing.
+         (\parsearglinex): Renamed to \parseargline, since the former
+         \parseargline is no longer needed.
+ 
+ 	* texinfo.tex (\parseargline) Remove a trailing @c or @comment.
+         (\argremovec, \argremovecomment): New macros.
+ 
+ Thu Aug  6 11:28:55 1992  Roland H. Pesch  (pesch@fowanton.cygnus.com)
+ 
+ 	* texinfo.tex: extended @set to define expandable vars;
+ 	  @value expands same.  Auxiliary macros \setxxx, \setyyy
+ 	  used for @set.
+ 
+ Sun Aug  2 14:34:48 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\entry): do line-breaking on the index entry.
+ 
+ Wed Jul  1 17:05:26 1992  Karl Berry  (karl@claude.cs.umb.edu)
+ 
+         * texinfo.tex (\lparen, \rparen): new definitions.
+         ((,[,],)): new global definitions for these four active
+           characters, so parens and brackets can be used in @deffn names.
+ 
+ Sat Jun 27 11:32:58 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\shortchaplabel): new macro to align chapter and
+           appendix labels.
+         (\shortchapentry): call it.
+         (\shortappendixwidth): new dimen register.
+ 
+ Wed Jun 24 09:45:34 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\afterenvbreak): make the same as \aboveenvbreak,
+           so space below environments doesn't get lost.
+         (\aboveenvskipamount): rename to \envskipamount, since it's used
+           both above and below.
+ 
+ Wed Jun 24 09:45:34 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\group): do @comment at the end, to avoid excessive
+           white space when called inside @group.
+ 
+ Wed Jun 24 16:36:04 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\startcontents): End page before setting pageno.
+ 
+ Thu May 28 20:27:25 1992  Robert J. Chassell  (bob@hill.gnu.ai.mit.edu)
+ 
+         * texinfo.tex (\vtable): Like @ftable, but for variables.
+ 
+ Fri May 22 07:04:32 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\w): do \leavevmode before the \hbox.
+ 
+ Sat May 16 11:16:27 1992  Karl Berry  (karl@hayley)
+ 
+         * texinfo.tex (\smallbook): decrease \topskip somewhat.
+ 
+         * texinfo.tex (\group): use \vtop instead of \vbox.
+ 
+         * texinfo.tex (\newlinechar): define for use in help strings.
+         (\groupinvalidhelp): define this for use with \errhelp.
+         (\group): set \errhelp to above.
+ 
+ Thu Apr 30 16:19:17 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\need): Rewritten by karl.
+ 
+ Sat Apr 18 16:24:00 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\exdentamount): New var, set by environments.
+ 	(\exdent, \exdentyyy): Define suitably for filled environments.
+ 	Always exdent by innermost indentation step.
+ 	(\nofillexdent, \nofillexdentyyy): Alternates for nofill envs.
+ 	(\lisp, \smalllispx, \display): Set \exdent to \nofillexdent.
+ 
+ Thu Apr  2 15:04:15 1992  Robert J. Chassell  (bob@kropotkin.gnu.ai.mit.edu)
+ 
+         * texinfo.tex (\Esmalllisp): Smaller baseline skip for smallexamples.
+ 
+ Sun Mar 29 20:44:49 1992  Brendan Kehoe  (brendan@cs.widener.edu)
+ 
+ 	* texinfo.tex (\startcontents): Always close contentsfile and
+ 	adjust the page.
+ 
+ Fri Mar 27 17:41:52 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\chapternofonts): Deal with \result, \equiv, etc.
+ 
+ Sat Mar 21 08:22:29 1992  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\entry): format entries better if the page number
+           and entry text don't fit on one line.
+ 
+         * texinfo.tex (\loggingall, \gloggingall): new macros to help with
+           debugging.
+ 
+ Fri Mar 20 15:35:42 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\result, \expansion, \print, \equiv):
+ 	Don't copy prefabricated boxes; must adapt to current font.
+ 	(\dblarrowbox, \longdblarrowbox, \pushcharbox, \equivbox): Deleted.
+ 	(\bullbox): Deleted.
+ 
+ Thu Mar 19 22:17:14 1992  Robert J. Chassell  (bob@kropotkin.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\widowpenalty, \clubpenalty): Set them to 10000, since
+           8000 did not work.
+ 
+ Fri Mar  6 13:26:36 1992  Robert J. Chassell  (bob@kropotkin.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\widowpenalty, \clubpenalty): Set them to 8000, since
+           2000 did not work (but \widowpenalty at 20000 did work).
+ 
+ Thu Feb 27 12:27:14 1992  Karl Berry  (karl@wombat.gnu.ai.mit.edu)
+ 
+         * texinfo.tex (\widowpenalty): set to 2000, not 20000.
+ 
+ Sat Feb  8 14:34:45 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\widowpenalty, \clubpenalty): Set them to 2000.
+ 	(\itemizeitem): Use penalty 1200.
+ 	(\itemzzz): Add \nobreak near beginning.
+ 
+ 	* texinfo.tex (\quotation): Increase right margin, instead of
+ 	left margin twice.
+ 
+ Wed Feb  5 12:08:30 1992  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\alphaenumerate, \capsenumerate): redefine as a call
+           to \enumerate.
+         (\{lower,upper}caseenumerate): Rename from \{alpha,caps}enumerate.
+ 
+ Sun Feb  2 21:07:19 1992  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\itemzzz): Compensate in line-by-itself case for
+ 	a table that is indented.
+ 
+ Mon Jan 13 21:04:07 1992  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex: Use 26 instead of control-z as character constant.
+ 
+ Sat Jan 11 02:20:58 1992  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
+ 
+ 	* gpl.texinfo: Unfilled Yoyodyne example.
+ 
+ Sat Dec  7 16:16:54 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\cartouche): Set \nonarrowing.
+ 	(\lisp, \smalllisp, \quotation, \display): If set, don't narrow.
+ 
+ Mon Dec  2 08:15:08 1991  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\itemzzz): don't start a paragraph if the item text
+           is on a line by itself; don't allow a page break after that
+           line; always do \par before typesetting anything.
+ 
+ Tue Nov 26 15:13:13 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
+ 
+ 	* lgpl.texinfo: @ifset lgpl-appendix, use @appendix instead of
+ 	@unnumbered.
+ 
+ Sun Nov 10 12:00:06 1991  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\doprintindex): only \read if the file existed;
+           \closein the test stream in all cases.
+         (\initial, \entry): do not \outer, so that \read does not get an
+           error if the index exists.
+ 
+ Fri Nov  8 18:13:28 1991  Michael Bushnell  (roland@churchy.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\itemizey): missing %'s in macro defn.
+ 	  Also, add \begingroup; accidentally deleted by Karl Berry.
+ 
+ Thu Nov  7 11:41:25 1991  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\doprintindex): \read from the index file to make
+           \ifeof true when the file exists but is empty.
+ 
+ Tue Nov  5 08:29:13 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * texinfo.tex (@thischaptername): Provide default value for when
+           @chapter not defined.
+ 
+ Sat Nov  2 17:59:02 1991  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\itemizezzz): do \begingroup here, since \itemizey
+           can't any longer.
+ 
+ Tue Oct 29 12:17:41 1991  Robert J. Chassell  (bob at grackle)
+ 
+         * texinfo.tex: @paragraphindent defined as a no op.
+ 
+ Fri Oct 25 15:19:47 1991  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\enumeratey): allow any lowercase letter, uppercase
+           letter, or number as argument; initialize \itemno and begin the
+           environment's group here.
+           (\itemizey): don't initialize \itemno here.
+           (\numericenumerate, \startenumeration): new macro.
+ 
+ Wed Oct 23 16:26:30 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\ifclear, \ifset): Remove \outer.
+ 
+ 	* texinfo.tex (\afourpaper): Set various parameters.
+ 
+ Tue Oct 22 18:42:31 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\alphaenumerate, \capsenumerate):
+ 	Let @end enumerate end these.
+ 	(\Ealphaenumerate, \Ecapsenumerate): Aliases for \Eenumerate.
+ 
+ Sun Oct 20 18:23:18 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\mainmagstep): New parameter macro.
+ 	(Defining fonts): Use that parameter to scale them.
+ 	If \bigger is defined, use 12 point fonts.
+ 
+ Tue Sep 24 00:30:07 1991  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)
+ 
+ 	* texi2dvi: Iterate over the right variable to look for new idx files.
+ 
+ 	* texi2dvi: GPL 2.
+ 
+ 	* texi2dvi: Fix 2nd invocation of texindex to pass right args.
+ 
+ Wed Sep 11 20:52:42 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\cartouche): New macro.
+ 
+ Fri Aug 23 16:13:46 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\section, \subsection, \subsubsection):
+ 	Initially define for numbered chapters.
+ 
+ Fri Aug  2 01:46:09 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\footnote): Use \unskip instead of \removelastskip.
+ 
+ Mon Jul 29 14:06:54 1991  Roland H. Pesch  (pesch at cygint.cygnus.com)
+ 
+ 	* texinfo.tex (\majorheadingzzz, \chapheadingzzz, \chfplain,
+ 	\unnchfplain, \unnchfopen, \secheadingi, \subsecheadingi,
+ 	\subsubsecheadingi): allow line breaks in headings.
+ 	(\shortchapentry, \shortunnumberedentry, \dochapentry, \dosecentry,
+ 	\dosubsecentry, \dosubsubsecentry): allow line breaks in table of
+ 	contents entries.
+ 
+ Thu Jul 18 19:01:53 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\secfonts, \indexfonts): Fix typos.
+ 
+ Sun Jul  7 16:36:28 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\afourpaper): New command.
+ 
+ 	* texinfo.tex (\numberedsec): Renamed from \section.
+ 	(\numberedsubsec): Renamed from \subsection.
+ 	(\numberedsubsubsec): Renamed from \subsubsection.
+ 	(\chapter, \appendix, \unnumbered): Define \section, \subsection,
+ 	and \subsubsection here according to type of chapter.
+ 
+ Thu Jul  4 14:19:32 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defvarparsebody, \defvrparsebody, \defopvarparsebody):
+ 	New functions.
+ 	(\defvar, \defvr, \defopt, \defcv, \defivar): Use them.
+ 	(\deftypevar, \deftypevr): Likewise.
+ 
+ Mon Jul  1 13:49:25 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\group): Report error if used outside @example, etc.
+ 
+ 	* texinfo.tex (\defname): Reduce \leftskip
+ 	to cancel temporarily the increase made in \defparsebody.
+ 
+ 	* texinfo.tex (\enumerate): Allow optional arg to specify type
+ 	of counting.
+ 
+ 	* texinfo.tex (\set, \clear): New commands.
+ 
+ Mon Jun 24 12:22:44 1991  Roland McGrath  (roland@albert.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\eleterate): Renamed to \alphaenumerate.  Sigh.
+ 	(\ecapitate): Likewise \capsenumerate.
+ 
+ Thu Jun  6 20:02:48 1991  Roland McGrath  (roland@geech.gnu.ai.mit.edu)
+ 
+ 	* lgpl.texinfo: Created from /fsf/rms/gnuorg/lgpl.text.
+ 
+ 	* gpl.texinfo: Created from /fsf/rms/gnuorg/gpl.text (GPL v2).
+ 
+ 	* texinfo.tex (\eleterate, \ecapitate): New commands, like @itemize,
+ 	but with [a..z] or [A..Z] instead of [1..n].
+ 
+ Tue May 21 15:46:32 1991  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\dmn): new command to typeset a dimension.
+ 
+ Tue May 21 20:58:22 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\doind, \dosubind): Make new group around \indexdummies
+ 	and most of body, excluding the \penalty commands.
+ 
+ Mon May 20 21:16:32 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\tex): Typo in redefining \@.
+ 
+ 	* texinfo.tex (\_): Use \lvvmode, not \leavevmode.
+ 	(\lvvmode): New macro.
+ 
+ 	* texinfo.tex (\authorrm, \titlerm): Move to after section fonts.
+ 
+ Tue May 14 21:13:29 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defunargs): Set \hyphenchar in \tensl, not \sl.
+ 
+ Thu May  9 17:07:08 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\ignore): Standardize catcode of space.
+ 
+ Wed May  8 13:49:45 1991  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\sffam, \sf): New macros; support sans serif
+ 	type style in math.
+         (top level): Set up \textfonts early on, so we can create boxes w/ it.
+         (\tenrm...\tensf): Define these to be \textrm...\textsf instead.
+         (\df, \textfonts, \chapfonts, \secfonts, \subsecfonts):
+         (\indexfonts): Redefine \tenrm (etc.) instead of just \rm, so that
+ 	the math family assignment doesn't get lost; call \resetmathfonts.
+         (\resetmathfonts): New macro; redefines \textfont of each math family.
+         (\indsc, \indi, \indsy \chapsc, \chapi, \chapsy, \secsc, \seci):
+         (\secsy, \ssecsc, \sseci, \ssecsy): New font definitions.
+ 
+ Mon May  6 21:30:19 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\indexdummies): Write \_ when an _ is seen.
+ 
+ Mon Apr 29 01:41:44 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defname): Use \dimen2, \dimen3 for outer margins.
+ 	Use outer margins for influencing \rightline.
+ 	(\tclose, \key, \t): Turn off line breaks at hyphens.
+ 
+ Fri Apr 12 03:12:14 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\authorrm): Move definition to top level; copy \secrm.
+ 
+ Tue Apr  2 22:48:39 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defname): Adjust size of \rlap box, not \dimen0
+ 	or \dimen1, for current width.
+ 
+ 	* texinfo.tex (\Yappendixletterandtype): End with {}.
+ 
+ Sat Mar 30 16:13:25 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xrefX): Really use \cite.
+ 	(\inforefzzz): Use \samp for node name.
+ 
+ 	* texinfo.tex (\defname): Use current width for \dimen0, \dimen1.
+ 
+ 	* texinfo.tex (\doprintindex): Put lots of whitespace before index.
+ 
+ Fri Mar 29 17:00:58 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xrdef): Take out last change.
+ 
+ 	* texinfo.tex (\needx): Turn off \baselineskip.  Use kern, and no glue.
+ 
+ 	* texinfo.tex (\shortcontrm): Renamed from \truesecrm.
+ 	(\shortcontbf, \shortcontsl): New fonts for short contents lines.
+ 	(\summarycontents): Use them.
+ 
+ 	* texinfo.tex (\defname): Don't set \leftskip to 0; just decrease by
+ 	one indent level.
+ 	(\defparsebody, \def*parsebody): Increment both margins by one level.
+ 
+ Tue Mar 26 22:41:38 1991  Richard Stallman  (rms at mole.gnu.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xrdef): Change catcode before reading args.
+ 
+ Wed Mar 20 14:21:57 1991  Roland McGrath  (roland at geech.gnu.ai.mit.edu)
+ 
+ 	* texi2dvi: Use p modifier in sed -n command, so it works.
+ 	Duplicate code to find the index files, instead of being smart in
+ 	one place and dumb in another.
+ 
+ Thu Mar  7 17:08:32 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defaultparindent): New variable.
+ 	(\footnotezzz): Reset \parindent to default.
+ 	(\xrefX): Use \cite for printed manual and node names.
+ 
+ Tue Mar  5 13:39:34 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\emergencystretch feature): Use \thisisundefined.
+ 
+ Mon Mar  4 00:35:57 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\ftablex): Define \Eftable; undefine \Etable.
+ 
+ 	* texinfo.tex (\footnote): Discard preceding whitespace.
+ 
+ 	* texinfo.tex: Use the \emergencystretch feature if available.
+ 
+ Fri Feb 22 03:50:58 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\tex): Make + not active.
+ 
+ Fri Feb 15 10:05:24 1991  Roland McGrath  (mcgrath at cygint.cygnus.com)
+ 
+ 	* texi2dvi: Use $TEXINFO in place of $TEX (falling back to $TEX
+ 	if $TEXINFO is undefined).
+ 
+ 	* texi2dvi: Renamed from texinfo.  Bob (I believe) did this at some
+ 	point at and didn't make a ChangeLog entry.  I'd shoot him myself if
+ 	he weren't the person who signs my paychecks.
+ 
+ Sun Feb 10 22:51:52 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\doprintindex): If index is empty, print a dummy.
+ 	(\need): Use vskips and penalties; don't use \pagetotal.
+ 
+ Fri Feb  8 17:36:53 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\ignoresections):
+ 	Turn off \contents, \smallbook and \titlepage.
+ 
+ 	* texinfo.tex (\Etitlepage): Do a page break before ending the group.
+ 
+ 	* texinfo.tex (\setref, \unnumbsetref, \appendixsetref):
+ 	Comment out recording the chapter title.
+ 
+ Thu Jan 24 23:28:41 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\top): Synonym for \unnumbered.
+ 	(\infotop): Synonym for \infounnumbered.
+ 	(\ignoresections): Handle \top.
+ 
+ Thu Jan 24 12:41:33 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex: Delete spurious character at beginning.
+ 
+ Thu Jan 17 16:34:25 1991  Roland McGrath  (roland at cygint.cygnus.com)
+ 
+ 	* texinfo: Check the exit status of tex and texindex.  Don't procede
+ 	after a failing run.
+ 
+ Thu Jan 10 15:16:47 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xrefX): Get rid of blank line.
+ 
+ Wed Jan  9 18:06:20 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\entry, \secondary): Use \indexdotfill.
+ 	(\indexdotfill): New macro.
+ 
+ Tue Jan  8 17:44:01 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\donoderef): Define a ...-title cross-reference.
+ 	(Ytitle): Subroutine for that.
+ 	(xrefX): Use the real title by default (but this is commented out).
+ 
+ Tue Jan  1 23:18:21 1991  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\indexnofonts): Delete troublemaking blank line.
+ 
+ Sat Dec 22 00:47:21 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xrefX): Prevent extra space.
+ 
+ Fri Dec 21 21:14:50 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\comment, \commentxxx): Ignore @ in comment.
+ 
+ Thu Dec 13 22:38:31 1990  Chris Hanson  (cph at kleph)
+ 
+ 	* texinfo.tex (\defivarheader): Capitalize "Variable".
+ 
+ Sun Dec  2 01:46:04 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\indexdummies, \indexnofonts): Handle \t like \r.
+ 
+ 	* texinfo.tex (heading fonts): New fonts based on cm...12.
+ 
+ Tue Nov 27 16:59:35 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\indexnofonts): Also supersede \TeX and \dots.
+ 
+ Sun Nov 18 16:18:14 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\*): End with \ignorespaces.
+ 
+ Fri Nov  2 17:41:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\*): Output empty hbox to avoid losing whitespace.
+ 	(\deftypevarheader, \deftypevrheader): End the paragraph
+ 	with suitable penalties.
+ 	(\deftypevrheader): Do print the data type.
+ 
+ Thu Nov  1 12:04:52 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defmethodheader): Print `method', not `operation'.
+ 
+ Fri Oct 26 17:11:08 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\indexdummies): Temporarily redefine \_.
+ 	(\ptexdots): Copy of plain tex \dots.
+ 	(\tex): Temporarily reinstall that.
+ 
+ Fri Oct 19 16:57:48 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\subsubsecheadingi, \subsecheadingi): New subroutines.
+ 
+ Mon Oct  8 13:34:19 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (active _): Use \normalunderscore.
+ 
+ Tue Sep 25 22:32:55 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\deftypefn, \deftypevar, \deftypevr): New macros.
+ 	Their subroutines also new.
+ 
+ Tue Sep 25 16:42:52 1990  Roland McGrath  (roland at geech.ai.mit.edu)
+ 
+ 	* texinfo: Recognize `.tex' as a suffix.
+ 
+ Tue Sep 25 01:46:54 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\deftypefun): New macro.
+ 	(\deftypefunheader, \deftypefunheaderx, \deftypefunargs): Also new.
+ 
+ Fri Sep 14 00:38:28 1990  Roland McGrath  (roland at churchy.ai.mit.edu)
+ 
+ 	* texinfo: Weed out files that have two-letter extensions but don't
+ 	start with a backslash, and therefore aren't index files.
+ 
+ 	* texinfo: Handle index files that have any two-letter extension,
+ 	rather than using a static list of extensions.
+ 
+ 	* texinfo: Handle .texi extension as well as .texinfo.
+ 
+ 	* texinfo: New file, a sh script to do .texinfo -> .dvi.
+ 
+ Mon Sep 10 13:14:39 1990  Richard Stallman  (rms at mole.ai.mit.edu)
+ 
+ 	* texinfo.tex (\math): New macro.
+ 
+ Tue Sep  4 07:43:33 1990  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\chfplain): Do not print a period after the chapter
+         number, for consistency with sections et al.
+ 
+         * texinfo.tex (\refX): hyphenate `undefined' so that the ligature
+         is not lost.
+ 
+         * texinfo.tex (_): use \_ unless we're in tt.
+         (\ifusingtt): new macro for such conditionalization.
+ 
+         * texinfo.tex (\xrefX): don't use \unhbox to print the node names,
+         since that loses on hyphens.
+ 	Use \ignorespaces rather than \losespace.
+ 
+ Thu Aug  2 07:03:26 1990  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\linenumber): new macro.
+         (\refx): give the line number in the message.
+ 
+ Tue Jul 31 09:13:32 1990  Karl Berry  (karl at hayley)
+ 
+         * texinfo.tex (\refx): improve warning messages, remove
+         unnecessary groups, and improve logic.
+ 
+ Thu Jul 26 20:53:38 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\subheading, \subsubheading): Missing macros defined.
+ 
+ Thu Jul 19 22:48:26 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\titlepage): Don't print rule for \page unless already
+ 	printed a rule.
+ 	(\abstract): Deleted.
+ 	(\direntry): New command, much like \ignore.
+ 
+ Sun Jul 15 16:28:42 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\abstract): New construct; trivial in tex.
+ 
+ Sun Jun 17 01:03:16 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defcv): Protect space before `of'.
+ 	(\defspec): Capitalize `Form'.
+ 
+ Sat Jun 16 19:36:56 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\kbd, \kbdfoo): Use \par to term. arg to \kbdfoo.
+ 
+ Fri Jun 15 10:47:12 1990  Robert J. Chassell  (bob at pogo.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defcv): Use \defcvarheader instead of (undefined)
+ 	\defcvheader.
+ 
+ Fri May 25 18:04:31 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xrefX): Use \turnoffactive.
+ 
+ Mon May 21 21:17:34 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\turnoffactive): New command.
+ 	(\normaldoublequote, ...): New commands.
+ 	(\dosetq): Use \turnoffactive.
+ 
+ Sat May 19 12:31:17 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\indit): Use slanted font, not italic.
+ 	(\smalllispx): Do \indexfonts.
+ 
+ Fri May	 4 17:35:04 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\footnote, \footnotezzz): Make it \long.
+ 
+ Wed May	 2 01:19:55 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\titlerm): Go back to cmbx10 scaled \magstep5.
+ 	(\hsize): Don't set it, use the default.
+ 
+ Fri Mar 23 21:07:02 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\footnote): Read arg in braces, not as a line.
+ 
+ Mon Mar 19 19:30:08 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\unnumbsubsubsecentry): Typo in name being defined.
+ 
+ Tue Mar 13 18:49:27 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defvarargs): Add penalty at end.
+ 
+ 	* texinfo.tex (\synindex, \syncodeindex): Copy one index file name
+ 	into the other.
+ 
+ Tue Mar	 6 16:58:54 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\deftt): Make this a distinct font.
+ 
+ 	* texinfo.tex (\initial): Define \tt like \tentt.
+ 
+ 	* texinfo.tex (\ifinfo): End with \losespace.
+ 	(\ignore, \ifsetfailxxx, \ifclearfailxxx): Likewise.
+ 
+ Sun Mar	 4 19:55:57 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\lbrb, \rbrb): Use \bf.
+ 
+ Sat Mar	 3 17:53:22 1990  Richard Stallman  (rms at geech)
+ 
+ 	* texinfo.tex (\onepageout): Set \escapechar here.
+ 
+ 	* texinfo.tex (\rawbackslash): Define using \chardef.
+ 
+ 	* texinfo.tex (\@): Use ttfont.
+ 
+ Thu Mar	 1 16:37:46 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (Ysectionnumberandtype, Yappendixletterandtype):
+ 	Capitalize "chapter", "appendix" and "section".
+ 
+ Mon Feb 19 20:26:22 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xkey): Attempt to eliminate spurious space from
+ 	output.	 Look at y-or-n-p.
+ 
+ Mon Feb 12 16:34:00 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\errorbox): Get \dimen0 from \tentt.
+ 
+ Sun Feb 11 15:11:57 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\defunargs): Use ragged right for args.
+ 	Add large penalty at end.
+ 
+ 	* texinfo.tex: Make active definition for = using \tt, but disable.
+ 	(\defparsebody): Make = active.
+ 	(\defunheader, etc.): Make inactive again.
+ 
+ 	* texinfo.tex (\errorbox): Try to equalize outside space to both sides.
+ 
+ Fri Feb	 2 14:47:21 1990  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\appendix): Don't use \the before \appendixletter.
+ 
+ Sat Dec 16 14:02:56 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\chapter, \appendix): Make defn of \thischapter
+ 	refer to \thischaptername, and store actual name there.
+ 	(\chapternofonts): Turn off more macros.
+ 	(\indexdummies): Likewise.
+ 
+ Sun Nov 19 15:29:47 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\titlerm): There were two definitions of this command.
+ 	Put them together and commented out one of them.
+ 	(\subtitlerm): Was same as \tenrm, so just copy that.
+ 	(\ninett): Always define this.
+ 	(\indtt): Copy from \ninett.
+ 
+ Sat Nov 18 22:57:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\ssecrm, etc.): Scale by 1315, rather than to 13pt.
+ 
+ Wed Nov	 8 18:38:33 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\titlepage): Turn on iffinishedtitlepage so
+ 	bottom rule is not printed.
+ 	(\titlezzz): Turn it off, so bottom rule is printed.
+ 
+ Mon Nov	 6 09:23:29 1989  Karl Berry  (karl at hayley)
+ 
+ 	* texinfo.tex (\chapterzzz, \appendixzzz): include `Chapter
+ 	\the\chapno' and `Appendix \appendixletter' in \thischapter; use
+ 	\xdef instead of \gdef to define \thischapter, to avoid timing
+ 	problems with \chapno or \appendixletter.
+ 	(\startcontents): don't bother putting `Table of Contents' or
+ 	`Short Contents' in the headline.
+ 
+ Fri Oct 20 09:11:35 1989  Karl Berry  (karl at hayley)
+ 
+ 	* texinfo.tex (\titlepage): remove obsolete code for subtitles.
+ 	(\titlezzz): end with \relax, to avoid misinterpretation of a
+ 	following `plus' or `minus'
+ 	(\page (inside \titlepage)): call \finishtitlepage.
+ 	(\Etitlepage): call \finishtitlepage, if it hasn't been.
+ 	(\finishtitlepage): new macro to print a rule and leave some space
+ 	at the bottom of the title page.
+ 	(\iffinishedtitlepage): new; says whether \finishtitlepage has been
+ 	called.
+ 
+ Mon Nov	 6 21:35:34 1989  Robert J. Chassell  (bob at rice-chex)
+ 
+ 	* texinfo.tex: Replaced `GNU CC' in the copyleft of this file with
+ 	  the phrase `this texinfo.tex file'.
+ 
+ Fri Oct 27 10:36:32 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\setfilename): Do nothing except 1st time used.
+ 	(\titlepage): Brace misplaced in \titlezzz.
+ 	(\indexdummies, \indexnofonts): Handle @w.
+ 
+ 	(\readauxfile): Set \ifhavexrefs true.
+ 	(\refX): Warn for every use of an undefined xref,
+ 	but if no xref values are known, warn just once that none are known.
+ 
+ Tue Sep 19 04:12:51 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\xrefX): Go back to `section N [Foo], page M'.
+ 	(\exp): Delete it.
+ 
+ Mon Sep 18 15:29:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\chapentryfonts): Try using \rm for chap title.
+ 
+ Tue Sep 12 03:41:10 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\titlepage): Missing closeparen after \title.
+ 	Delete excess paren after \page.
+ 
+ 	* texinfo.tex (\samp): Use \tclose.
+ 
+ Mon Sep 11 23:28:04 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\tclose): Make `@ ' a full-width space.
+ 
+ Sat Sep	 9 20:11:29 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\balancecolumns): Handle properly the case where
+ 	the index ends before one page is output, so \partialpage is nonempty.
+ 	In this case we may need to output two pages if the data
+ 	would just barely fit if not for \partialpage.
+ 
+ Wed Aug 30 22:45:31 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\refx): New 2nd operand, output if xref is non-null.
+ 	(\xrefX): Use that to output the comma after the section number.
+ 	(\appendixnoderef, \appendixsetref, \Yappendixletterandtype):
+ 	Define xrefs for appendices that say "Appendix N".
+ 	Used in \appendix, \appendixsec, etc.
+ 
+ 	* texinfo.tex (\smartitalic): The actual italic correction was omitted.
+ 
+ Mon Aug 28 00:21:33 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+ 
+ 	* texinfo.tex (\ref): New kind of cross-reference.
+ 	(\xrefX): Put single quotes around section name.
+ 	(\refx): Allow hyphenation in `undefined'.
+ 
+ 	* texinfo.tex (+): Make it active.
+ 	(Altmode): Delete active defn.
+ 
+ 	* texinfo.tex (\defunargs): Prevent hyphenation at `-' in args.
+ 	Move the penalty at the end so that it works.
+ 	(\defvarargs): Move the penalty at the end so that it works.
+ 
+ 	* texinfo.tex (\defparsebody): Do increase right margin.
+ 
+ 	* texinfo.tex (\defbodyindent): Now .4 inch.
+ 
+ 	* texinfo.tex (\point, \result, \expansion, \print, \equiv, \error):
+ 	New macros for Lisp manual.
+ 
+ 	* texinfo.tex (\tex): Set = to code 12.
+ 
+ 	* texinfo.tex (\entry): Hairier way to output dots.
+ 
+ 	* texinfo.tex (\kbd): If arg consists of one \key command, be a no op.
+ 
+ 	* texinfo.tex (\sc): Delete spurious \.
+ 
+ 	* texinfo.tex (\smartitalic): New macro, does italic correction at end.
+ 	(\i, \var, \dfn, \emph, \cite): Use that.
+ 
+ 	* texinfo.tex (\node): Do \ENVcheck.
+ 
+ 	* texinfo.tex (\initial): Infinite penalty at end.
+ 
+ 	* texinfo.tex (\chapternofonts): New macro, sets \code, etc. to
+ 	output selves into file.  Also undef \frenchspacing and \rawbackslash.
+ 	(\xhapterzzz, etc.): Call that.	 Make a group to undo it.
+ 	(\indexdummies): Do like \chapternofonts.
+ 
+ Sun Aug 27 16:05:23 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+ 
+ 	* texinfo.tex (\frenchspacing): Our own definition, using
+ 	decimal numbers for all character codes.  The standard one fails.
+ 
+ 	* texinfo.tex (\indexnofonts): Handle \file, \tt, and many more.
+ 
+ Fri Aug 25 22:05:24 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+ 
+ 	* texinfo.tex (\chapter, etc.): Undefine \tclose around \edef\temp.
+ 
+ Mon Aug 21 15:42:47 1989  Richard Stallman  (rms at apple-gunkies.ai.mit.edu)
+ 
+ 	* texinfo.tex (\tclose): Like \t but make space same width
+ 	as in surrounding text.
+ 	(\code, \kbd): Use \tclose.
+ 
+ Tue Jul	 4 20:53:52 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (titlepage): Don't set \everypar; start just one group.
+ 	See comments in the code.
+ 
+ 	* texinfo.tex (defop,defcv): Use defopparsebody.
+ 	* texinfo.tex (defopparsebody): Like defmethparsebody but defines
+ 	def...x for more arguments.
+ 
+ Sat Jun 17 13:49:13 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\titlepage): Rename @subtext, etc., to @subtitle, etc.
+ 
+ 	* texinfo.tex (\titlepage): Don't print the title automatically.
+ 	Define @title to print it, and the rule underneath it.
+ 	This should make @titlepage upward compatible with the old one.
+ 
+ 	* texinfo.tex (\titlepage): Revert local definition of @page
+ 	to previous.  Don't print a rule.
+ 
+ Mon Jun 12 20:49:17 1989  Karl Berry.  (karl at mote)
+ 
+ 	* texinfo.tex (\titlepage): allow intensional definition of the
+ 	items on the title page.  New control sequences (allowed only
+ 	within the titlepage environment:)
+ 	 (@subtext): may take either a paragraph (e.g., a brief
+ 	 description of the program) or just a line (e.g., the date).
+ 	 May appear more than once.
+ 	 (@author): must come after all the @subtext's.	 Can appear more
+ 	 than once, also.
+ 	 Also, use the title defined by @settitle.
+ 	 (\subtextfont, \authorfont): switch to using the appropriate
+ 	 fonts with appropriate leading.
+ 	 (\titlepagetopglue, \titlepagebottomglue): define space that
+ 	 never stretches or shrinks.
+ 	 (\realeverypar): formatting for the @subtext's.
+ 
+ Sun Jun	 4 15:04:59 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (\shortchapentry, \shortunnumberedentry):
+ 	Use dots, right justify page numbers.  Don't use italics.
+ 
+ Fri Jun	 2 14:40:28 1989  Karl Berry.  (karl at mote)
+ 
+ 	* texinfo.tex (\entry, \secondary): use plain TeX \dotfill for
+ 	better leaders than the homegrown one.
+ 	(\Dotsbox): Deleted.
+ 	(\dotfill): Deleted; use Plain TeX definition.
+ 
+ Wed May 31 17:19:30 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (ignore): Undefine the chapter/section macros
+ 	while reading the args, since they are \outer.
+ 	(ifinfo): Likewise
+ 	(ifsetxxx, ifclearxxx): Call another macro to parse the
+ 	conditionalized text, and do to that macro as with \ignore.
+ 
+ Tue May 30 15:04:37 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex (unnumbered): Change back from \long to \outer.
+ 
+ 	* texinfo.tex: Changes by Karl Berry for toc format.
+ 	Rewrite the table of contents for appearance's sake.  Add a
+ 	synonym for \summarycontents, \shortcontents, since that is the
+ 	traditional name.  Two subroutines are now shared by \contents and
+ 	\summarycontents: \prepareforcontents, to reset the page number
+ 	and such; and \startcontents, which begins the \unnumbered and
+ 	resets catcodes before \input \jobname.toc.  Some other macros --
+ 	\labelspace, \dopageno, \shortpageno -- are shared by the printing
+ 	macros.
+ 
+ 	* texinfo.tex (\truesecrm): New font, section-size roman, used in the
+ 	new toc. (cmr12)
+ 
+ Sun May 28 07:25:42 1989  Karl Berry.  (karl at mote)
+ 
+ 	* texinfo.tex (\eatinput): Do not print the `\input texinfo' if a
+ 	.fmt file is being used; ignore it, instead.  This is the initial
+ 	definition for `\' now.
+ 	(\fixbackslash): on the other hand, subsequent backslashes should
+ 	be printed, and if the file does not have an `\input texinfo', the
+ 	first one should be printed.  This new macro makes the definition
+ 	for `\' be \normalbackslash, if it is \eatinput.
+ 	(\setfilename): use \fixbackslash.
+ 
+ Wed May 24 15:34:59 1989  Joseph Arceneaux  (jla at apple-gunkies.ai.mit.edu)
+ 
+ 	* texinfo.tex: Changed def of unnumbered from \outer to \long.
+ 
+ Tue May 23 12:27:59 1989  Karl Berry.  (karl at mote)
+ 
+ 	* texinfo.tex: Allow one to make a texinfo.fmt file (with the
+ 	invocation:
+ 	   initex \&plain texinfo
+ 	and then saying
+ 	   @dump
+ 	after texinfo.tex has been read.
+ 	Changes:
+ 	(\setfilename): Instead of being a no-op, read the xref info, and
+ 	open the contents and index files.  These actions were done as
+ 	texinfo.tex was read before.
+ 	(\opencontents, \openindices): new macros to open those files.
+ 	(\readauxfile): and one to read the aux file.
+ 
+ Sat Apr 29 22:28:02 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex: `@headings on' no longer does a page break.
+ 
+ Sun Apr	 2 11:22:29 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex: Defined `@headings single' and `@headings double'.
+ 	`@headings on' picks one of them: `@setchapternewpage odd'
+ 	says `@headings	on' means double; otherwise it means single.
+ 
+ Mon Jan 30 22:00:35 1989  Robert J. Chassell  (bob at rice-krispies.ai.mit.edu)
+ 
+ 	* texinfo.tex: Changed the size of the subsection fonts so they
+ 	are scaled at13pt rather than at magstep 2. This makes them
+ 	smaller than the section fonts, which are scaled at magstep 2.
+ 	In addition, changed the ssecrm font from cmbx to cmb.
+ 
+ Fri Jan	 6 15:00:44 1989  Richard Stallman  (rms at sugar-bombs.ai.mit.edu)
+ 
+ 	* texinfo.tex: Changed @lisp, @smalllisp, @display not to change
+ 	the right margin.
+ 
+ Mon Dec	 5 22:01:49 1988  Robert J. Chassell  (bob at rice-krispies.ai.mit.edu)
+ 
+ 	* texinfo.tex: Tested the use of `cmbx10' vrs `cmb10' font and
+ 	stayed with cmb10 font since cmb10 looks better when the bold face
+ 	is part of a sentence although the cmbx10 font looks better on its own.
+ 
+ Mon Aug 15 14:33:51 1988  Robert J. Chassell  (bob at spiff)
+ 
+ 	* texinfo.tex:	Changed the (undocumented) @today command from a
+ 	Month Day, Year format to a Day Month Year format.  Left old
+ 	version commented out.
+ 
+ 
+ Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
+ 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ 
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.
+ 
+ 
+ Local Variables:
+ mode: indented-text
+ left-margin: 8
+ fill-column: 76
+ version-control: never
+ End:
diff -Nrc2 texinfo-4.12/INSTALL texinfo-4.13/INSTALL
*** texinfo-4.12/INSTALL	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/INSTALL	Thu Jul 12 16:18:34 2007
***************
*** 0 ****
--- 1,49 ----
+ $Id: INSTALL,v 1.8 2007/07/12 23:18:34 karl Exp $
+ 
+      Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+      2001, 2002, 2003, 2004, 2005, 2006, 2007
+      Free Software Foundation, Inc.
+ 
+      Copying and distribution of this file, with or without modification,
+      are permitted in any medium without royalty provided the copyright
+      notice and this notice are preserved.
+ 
+ For generic installation instructions on compiling and installing this
+ Automake-based distribution, please read the file `INSTALL.generic'.
+ 
+ Installation notes specific to Texinfo:
+ 
+ * texinfo.tex and the other *.tex files are not installed by `make
+   install'.  This is because there is no reliable way to know where to
+   install them.  Instead, you have to run an additional make command
+   after the normal make install:
+     make TEXMF=/your/texmf install-tex
+   texinfo.tex is installed in ${TEXMF}/tex/texinfo/texinfo.tex, etc.
+ 
+ * On the other hand, if you're maintaining a TeX distribution, you don't
+   want your users to see the installation warnings, because you already
+   have the files installed.  (And you're keeping them up to date, right?)
+   In this case, run configure --disable-install-warnings, or set
+   enable_install_warnings=no in the environment.
+ 
+ * On MacOSX, if configure fails with the error:
+ 	ac_cv_build='config.sub: invalid option -apple-darwin7.2.0
+ this is probably because your uname -p is returning "unknown".  Use
+ /usr/bin/uname instead.
+ 
+ * For instructions on compiling this distribution with DJGPP tools
+   for MS-DOS and MS-Windows, see the file djgpp/README.
+ 
+ * The Info tree uses a file `dir' as its root node; the `dir-example'
+   file in this distribution is included as a possible starting point.
+   Use it, modify it, or ignore it just as you like.
+ 
+ * You can create a file texinfo.cnf to be read by TeX when
+   processing Texinfo manuals.  For example, you might like to use
+   @afourpaper by default.  See the `Preparing for TeX' node in
+   texinfo.txi for more details.  You don't have to create the file if
+   you have nothing to put in it.
+ 
+ * If your info files are not in $prefix/info, you may wish to add a line
+ #define DEFAULT_INFOPATH "/mydir1:/mydir2:..."
+   to config.h after running configure.
diff -Nrc2 texinfo-4.12/INSTALL.generic texinfo-4.13/INSTALL.generic
*** texinfo-4.12/INSTALL.generic	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/INSTALL.generic	Thu Jun 15 06:17:13 2006
***************
*** 0 ****
--- 1,234 ----
+ Installation Instructions
+ *************************
+ 
+ Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+ 2006 Free Software Foundation, Inc.
+ 
+ This file is free documentation; the Free Software Foundation gives
+ unlimited permission to copy, distribute and modify it.
+ 
+ Basic Installation
+ ==================
+ 
+ Briefly, the shell commands `./configure; make; make install' should
+ configure, build, and install this package.  The following
+ more-detailed instructions are generic; see the `README' file for
+ instructions specific to this package.
+ 
+    The `configure' shell script attempts to guess correct values for
+ various system-dependent variables used during compilation.  It uses
+ those values to create a `Makefile' in each directory of the package.
+ It may also create one or more `.h' files containing system-dependent
+ definitions.  Finally, it creates a shell script `config.status' that
+ you can run in the future to recreate the current configuration, and a
+ file `config.log' containing compiler output (useful mainly for
+ debugging `configure').
+ 
+    It can also use an optional file (typically called `config.cache'
+ and enabled with `--cache-file=config.cache' or simply `-C') that saves
+ the results of its tests to speed up reconfiguring.  Caching is
+ disabled by default to prevent problems with accidental use of stale
+ cache files.
+ 
+    If you need to do unusual things to compile the package, please try
+ to figure out how `configure' could check whether to do them, and mail
+ diffs or instructions to the address given in the `README' so they can
+ be considered for the next release.  If you are using the cache, and at
+ some point `config.cache' contains results you don't want to keep, you
+ may remove or edit it.
+ 
+    The file `configure.ac' (or `configure.in') is used to create
+ `configure' by a program called `autoconf'.  You need `configure.ac' if
+ you want to change it or regenerate `configure' using a newer version
+ of `autoconf'.
+ 
+ The simplest way to compile this package is:
+ 
+   1. `cd' to the directory containing the package's source code and type
+      `./configure' to configure the package for your system.
+ 
+      Running `configure' might take a while.  While running, it prints
+      some messages telling which features it is checking for.
+ 
+   2. Type `make' to compile the package.
+ 
+   3. Optionally, type `make check' to run any self-tests that come with
+      the package.
+ 
+   4. Type `make install' to install the programs and any data files and
+      documentation.
+ 
+   5. You can remove the program binaries and object files from the
+      source code directory by typing `make clean'.  To also remove the
+      files that `configure' created (so you can compile the package for
+      a different kind of computer), type `make distclean'.  There is
+      also a `make maintainer-clean' target, but that is intended mainly
+      for the package's developers.  If you use it, you may have to get
+      all sorts of other programs in order to regenerate files that came
+      with the distribution.
+ 
+ Compilers and Options
+ =====================
+ 
+ Some systems require unusual options for compilation or linking that the
+ `configure' script does not know about.  Run `./configure --help' for
+ details on some of the pertinent environment variables.
+ 
+    You can give `configure' initial values for configuration parameters
+ by setting variables in the command line or in the environment.  Here
+ is an example:
+ 
+      ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+ 
+    *Note Defining Variables::, for more details.
+ 
+ Compiling For Multiple Architectures
+ ====================================
+ 
+ You can compile the package for more than one kind of computer at the
+ same time, by placing the object files for each architecture in their
+ own directory.  To do this, you can use GNU `make'.  `cd' to the
+ directory where you want the object files and executables to go and run
+ the `configure' script.  `configure' automatically checks for the
+ source code in the directory that `configure' is in and in `..'.
+ 
+    With a non-GNU `make', it is safer to compile the package for one
+ architecture at a time in the source code directory.  After you have
+ installed the package for one architecture, use `make distclean' before
+ reconfiguring for another architecture.
+ 
+ Installation Names
+ ==================
+ 
+ By default, `make install' installs the package's commands under
+ `/usr/local/bin', include files under `/usr/local/include', etc.  You
+ can specify an installation prefix other than `/usr/local' by giving
+ `configure' the option `--prefix=PREFIX'.
+ 
+    You can specify separate installation prefixes for
+ architecture-specific files and architecture-independent files.  If you
+ pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+ PREFIX as the prefix for installing programs and libraries.
+ Documentation and other data files still use the regular prefix.
+ 
+    In addition, if you use an unusual directory layout you can give
+ options like `--bindir=DIR' to specify different values for particular
+ kinds of files.  Run `configure --help' for a list of the directories
+ you can set and what kinds of files go in them.
+ 
+    If the package supports it, you can cause programs to be installed
+ with an extra prefix or suffix on their names by giving `configure' the
+ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+ 
+ Optional Features
+ =================
+ 
+ Some packages pay attention to `--enable-FEATURE' options to
+ `configure', where FEATURE indicates an optional part of the package.
+ They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+ is something like `gnu-as' or `x' (for the X Window System).  The
+ `README' should mention any `--enable-' and `--with-' options that the
+ package recognizes.
+ 
+    For packages that use the X Window System, `configure' can usually
+ find the X include and library files automatically, but if it doesn't,
+ you can use the `configure' options `--x-includes=DIR' and
+ `--x-libraries=DIR' to specify their locations.
+ 
+ Specifying the System Type
+ ==========================
+ 
+ There may be some features `configure' cannot figure out automatically,
+ but needs to determine by the type of machine the package will run on.
+ Usually, assuming the package is built to be run on the _same_
+ architectures, `configure' can figure that out, but if it prints a
+ message saying it cannot guess the machine type, give it the
+ `--build=TYPE' option.  TYPE can either be a short name for the system
+ type, such as `sun4', or a canonical name which has the form:
+ 
+      CPU-COMPANY-SYSTEM
+ 
+ where SYSTEM can have one of these forms:
+ 
+      OS KERNEL-OS
+ 
+    See the file `config.sub' for the possible values of each field.  If
+ `config.sub' isn't included in this package, then this package doesn't
+ need to know the machine type.
+ 
+    If you are _building_ compiler tools for cross-compiling, you should
+ use the option `--target=TYPE' to select the type of system they will
+ produce code for.
+ 
+    If you want to _use_ a cross compiler, that generates code for a
+ platform different from the build platform, you should specify the
+ "host" platform (i.e., that on which the generated programs will
+ eventually be run) with `--host=TYPE'.
+ 
+ Sharing Defaults
+ ================
+ 
+ If you want to set default values for `configure' scripts to share, you
+ can create a site shell script called `config.site' that gives default
+ values for variables like `CC', `cache_file', and `prefix'.
+ `configure' looks for `PREFIX/share/config.site' if it exists, then
+ `PREFIX/etc/config.site' if it exists.  Or, you can set the
+ `CONFIG_SITE' environment variable to the location of the site script.
+ A warning: not all `configure' scripts look for a site script.
+ 
+ Defining Variables
+ ==================
+ 
+ Variables not defined in a site shell script can be set in the
+ environment passed to `configure'.  However, some packages may run
+ configure again during the build, and the customized values of these
+ variables may be lost.  In order to avoid this problem, you should set
+ them in the `configure' command line, using `VAR=value'.  For example:
+ 
+      ./configure CC=/usr/local2/bin/gcc
+ 
+ causes the specified `gcc' to be used as the C compiler (unless it is
+ overridden in the site shell script).
+ 
+ Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+ an Autoconf bug.  Until the bug is fixed you can use this workaround:
+ 
+      CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+ 
+ `configure' Invocation
+ ======================
+ 
+ `configure' recognizes the following options to control how it operates.
+ 
+ `--help'
+ `-h'
+      Print a summary of the options to `configure', and exit.
+ 
+ `--version'
+ `-V'
+      Print the version of Autoconf used to generate the `configure'
+      script, and exit.
+ 
+ `--cache-file=FILE'
+      Enable the cache: use and save the results of the tests in FILE,
+      traditionally `config.cache'.  FILE defaults to `/dev/null' to
+      disable caching.
+ 
+ `--config-cache'
+ `-C'
+      Alias for `--cache-file=config.cache'.
+ 
+ `--quiet'
+ `--silent'
+ `-q'
+      Do not print messages saying which checks are being made.  To
+      suppress all normal output, redirect it to `/dev/null' (any error
+      messages will still be shown).
+ 
+ `--srcdir=DIR'
+      Look for the package's source code in directory DIR.  Usually
+      `configure' can determine that directory automatically.
+ 
+ `configure' also accepts some other, not widely useful, options.  Run
+ `configure --help' for more details.
+ 
diff -Nrc2 texinfo-4.12/INTRODUCTION texinfo-4.13/INTRODUCTION
*** texinfo-4.12/INTRODUCTION	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/INTRODUCTION	Sun Apr 11 10:56:45 2004
***************
*** 0 ****
--- 1,108 ----
+ $Id: INTRODUCTION,v 1.3 2004/04/11 17:56:45 karl Exp $
+ Getting started with Texinfo.
+ 
+   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ 
+ 
+ Getting Started with Texinfo
+ ============================
+ 
+ "Texinfo" is a documentation system that uses a single source file to
+ produce both on-line information and printed output.  Using Texinfo,
+ you can create a printed document with the normal features of a book,
+ including chapters, sections, cross references, and indices.  From the
+ same Texinfo source file, you can create a menu-driven, on-line Info
+ file with nodes, menus, cross references, and indices.
+   
+ The name of the Texinfo source documentation file is `texinfo.txi'.
+ You can produce both on-line information and printed output from this
+ source file.  The documentation describes Texinfo in detail, including
+ how to write Texinfo files, how to format them for both hard copy and
+ Info, and how to install Info files.
+ 
+ To get started, you need to create either a printed manual or an
+ on-line Info file from the `texinfo.txi' file.  You do not need to
+ create both, although you will probably want both eventually.
+ 
+ To learn how to use Info, read the info documentation.  You can do this in
+ one of two ways: using the standalone `info' program, or using Info mode in
+ GNU Emacs.
+ 
+   * If you want to use the `info' program, run
+ 
+          info -f info-stnd
+ 
+   * If you want to use Emacs, start up emacs and type `C-h i' [M-x info].
+     Follow the instructions to learn how to use Info.
+ 
+ After learning how to use Info, you can read the Texinfo documentation.
+ Using the standalone `info', type the following at the shell prompt:
+ 
+          info -f texinfo
+ 
+ To use read this manual in Emacs, you first need to edit the Info-directory
+ menu (the file `dir' in the system info directory) to contain the
+ appropriate node.  To learn how to do this, see node: Add in the Info
+ documentation.
+ 
+ The Texinfo documentation describes Texinfo in detail; among other things,
+ it tells how to install Info files in the usual manner.  (See node: Install
+ an Info File.)
+ 
+ The `info-stnd.info' file describes the standalone Info reader in detail.  To
+ read this file, type
+ 
+          $ info -f info-stnd
+ 
+ 
+ To create a printed manual
+ ==========================
+ 
+ You need:
+ 
+   * The `tex' program, which typesets the manual using TeX.
+   * The `texinfo.tex' definition file that tells TeX how to typeset
+     a Texinfo file.
+   * The `texindex' program, which sorts the unsorted index files
+     created by TeX.
+   * A printing program such as `lp' or `lpr',
+   * A printer.
+ 
+ This Texinfo distribution package contains `texinfo.tex', the C source
+ for `texindex', and the handy shell script `texi2dvi'.  The `tex'
+ program is not part of this distribution, but is available separately.
+ (See `How to Obtain TeX' in the Texinfo documentation.)
+ 
+   * Install `tex'.  (`texindex' is installed automagically by 
+     `make install' in this distribution.)
+ 
+   * Move the `texinfo.tex' file to an appropriate directory; the current
+     directory will do.  (`/usr/local/lib/tex/inputs' might be a good place.
+     See ``Preparing to Use TeX'' in the Texinfo manual, for more
+     information.)
+ 
+ After following those instructions, type the following to make the .dvi
+ files:
+ 
+       $ (cd doc; make dvi)
+ 
+ You can then print the resulting .dvi files with the `lpr' or `lp'
+ commands, or maybe `dvips'.
+ 
+ For example, the command to print the texinfo.dvi file might be:
+ 
+       $ lpr -d texinfo.dvi
+ 
+ The name of the printing command depends on the system; `lpr -d' is
+ common, and is illustrated here.  You may use a different name for the
+ printing command.
+ 
+ Please report bugs to bug-texinfo@gnu.org.
+ 
+ Happy formatting.
diff -Nrc2 texinfo-4.12/Makefile.am texinfo-4.13/Makefile.am
*** texinfo-4.12/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/Makefile.am	Sat Jul  5 16:32:19 2008
***************
*** 0 ****
--- 1,74 ----
+ # Makefile.am for texinfo.
+ # $Id: Makefile.am,v 1.25 2008/07/05 13:37:39 karl Exp $
+ # Process this file with automake to produce Makefile.in in all directories.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ # Find our headers and gnulib headers.
+ ACLOCAL_AMFLAGS = -I gnulib/m4
+ 
+ # Additional files to distribute.
+ EXTRA_DIST = ChangeLog.46 INSTALL.generic INTRODUCTION README.dev system.h \
+   djgpp/README djgpp/config.bat djgpp/config.sed djgpp/config.site \
+   gnulib/m4/gnulib-cache.m4
+ 
+ # This is to prevent texinfo.tex from being included in the top-level
+ # distribution directory.
+ TEXINFO_TEX = doc/texinfo.tex
+ 
+ if TOOLS_ONLY
+   # Build native tools only.
+   SUBDIRS = lib info install-info makeinfo util
+ else
+   # All subdirectories.
+   # Do libs first since the C programs depend on it.
+   # Do doc last so makeinfo will be built when we get there.
+   # Others are alphabetical.
+   SUBDIRS = $(native_tools) gnulib/lib lib \
+             install-info info makeinfo po util doc 
+ endif
+ 
+ # One special target for installers to use by hand if desired.
+ install-tex:
+ 	cd doc && $(MAKE) TEXMF=$(TEXMF) install-tex
+ 
+ distclean-local:
+ 	-test -d "$(native_tools)" && rm -rf "$(native_tools)"
+ 
+ # Don't install native tools for cross compile.
+ if TOOLS_ONLY
+ install:
+ 
+ endif
+ 
+ # From coreutils.
+ # Verify that all source files using _() are listed in po/POTFILES.in.
+ # Run this before making pretests, as well as official releases, so that
+ # translators will see changed string.
+ po-check:
+ 	if test -f po/POTFILES.in; then					\
+ 	  grep -E -v '^(#|$$)' po/POTFILES.in				\
+ 	    | grep -v '^src/false\.c$$' | sort > $@-1;			\
+ 	  files=;							\
+ 	  for file in $$($(CVS_LIST_EXCEPT)) `find [a-z]* -name '*.[ch]'`; do \
+ 	    case $$file in						\
+ 	    djgpp/* | man/*) continue;;					\
+ 	    esac;							\
+ 	    case $$file in						\
+ 	    *.[ch])							\
+ 	      base=`expr " $$file" : ' \(.*\)\..'`;			\
+ 	      { test -f $$base.l || test -f $$base.y; } && continue;;	\
+ 	    esac;							\
+ 	    files="$$files $$file";					\
+ 	  done;								\
+ 	  grep -E -l '\b(N?_|gettext *)\([^)"]*("|$$)' $$files		\
+ 	    | sort -u > $@-2;						\
+ 	  diff -u $@-1 $@-2 || exit 1;					\
+ 	  rm -f $@-1 $@-2;						\
+ 	fi
diff -Nrc2 texinfo-4.12/Makefile.in texinfo-4.13/Makefile.in
*** texinfo-4.12/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/Makefile.in	Thu Sep 18 11:46:25 2008
***************
*** 0 ****
--- 1,936 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # Makefile.am for texinfo.
+ # $Id: Makefile.am,v 1.25 2008/07/05 13:37:39 karl Exp $
+ # Process this file with automake to produce Makefile.in in all directories.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ subdir = .
+ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ 	$(srcdir)/Makefile.in $(srcdir)/config.in \
+ 	$(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \
+ 	INSTALL NEWS TODO build-aux/compile build-aux/config.guess \
+ 	build-aux/config.rpath build-aux/config.sub build-aux/depcomp \
+ 	build-aux/install-sh build-aux/mdate-sh build-aux/missing \
+ 	build-aux/texinfo.tex
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+  configure.lineno config.status.lineno
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = config.h
+ CONFIG_CLEAN_FILES =
+ SOURCES =
+ DIST_SOURCES =
+ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ 	html-recursive info-recursive install-data-recursive \
+ 	install-dvi-recursive install-exec-recursive \
+ 	install-html-recursive install-info-recursive \
+ 	install-pdf-recursive install-ps-recursive install-recursive \
+ 	installcheck-recursive installdirs-recursive pdf-recursive \
+ 	ps-recursive uninstall-recursive
+ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+   distclean-recursive maintainer-clean-recursive
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = @native_tools@ gnulib/lib lib install-info info \
+ 	makeinfo po util doc
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ distdir = $(PACKAGE)-$(VERSION)
+ top_distdir = $(distdir)
+ am__remove_distdir = \
+   { test ! -d $(distdir) \
+     || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+          && rm -fr $(distdir); }; }
+ DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.lzma
+ GZIP_ENV = --best
+ distuninstallcheck_listfiles = find . -type f -print
+ distcleancheck_listfiles = find . -type f -print
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ 
+ # Find our headers and gnulib headers.
+ ACLOCAL_AMFLAGS = -I gnulib/m4
+ 
+ # Additional files to distribute.
+ EXTRA_DIST = ChangeLog.46 INSTALL.generic INTRODUCTION README.dev system.h \
+   djgpp/README djgpp/config.bat djgpp/config.sed djgpp/config.site \
+   gnulib/m4/gnulib-cache.m4
+ 
+ 
+ # This is to prevent texinfo.tex from being included in the top-level
+ # distribution directory.
+ TEXINFO_TEX = doc/texinfo.tex
+ @TOOLS_ONLY_FALSE@SUBDIRS = $(native_tools) gnulib/lib lib \
+ @TOOLS_ONLY_FALSE@            install-info info makeinfo po util doc 
+ 
+ @TOOLS_ONLY_TRUE@SUBDIRS = lib info install-info makeinfo util
+ all: config.h
+ 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+ 
+ .SUFFIXES:
+ am--refresh:
+ 	@:
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+ 	      cd $(srcdir) && $(AUTOMAKE) --gnu  \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnu  Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    echo ' $(SHELL) ./config.status'; \
+ 	    $(SHELL) ./config.status;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	$(SHELL) ./config.status --recheck
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(srcdir) && $(AUTOCONF)
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+ 
+ config.h: stamp-h1
+ 	@if test ! -f $@; then \
+ 	  rm -f stamp-h1; \
+ 	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+ 	else :; fi
+ 
+ stamp-h1: $(srcdir)/config.in $(top_builddir)/config.status
+ 	@rm -f stamp-h1
+ 	cd $(top_builddir) && $(SHELL) ./config.status config.h
+ $(srcdir)/config.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
+ 	cd $(top_srcdir) && $(AUTOHEADER)
+ 	rm -f stamp-h1
+ 	touch $@
+ 
+ distclean-hdr:
+ 	-rm -f config.h stamp-h1
+ 
+ # This directory's subdirectories are mostly independent; you can cd
+ # into them and run `make' without going through this Makefile.
+ # To change the values of `make' variables: instead of editing Makefiles,
+ # (1) if the variable is set in `config.status', edit `config.status'
+ #     (which will cause the Makefiles to be regenerated when you run `make');
+ # (2) otherwise, pass the desired values on the `make' command line.
+ $(RECURSIVE_TARGETS):
+ 	@failcom='exit 1'; \
+ 	for f in x $$MAKEFLAGS; do \
+ 	  case $$f in \
+ 	    *=* | --[!k]*);; \
+ 	    *k*) failcom='fail=yes';; \
+ 	  esac; \
+ 	done; \
+ 	dot_seen=no; \
+ 	target=`echo $@ | sed s/-recursive//`; \
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  echo "Making $$target in $$subdir"; \
+ 	  if test "$$subdir" = "."; then \
+ 	    dot_seen=yes; \
+ 	    local_target="$$target-am"; \
+ 	  else \
+ 	    local_target="$$target"; \
+ 	  fi; \
+ 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ 	  || eval $$failcom; \
+ 	done; \
+ 	if test "$$dot_seen" = "no"; then \
+ 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ 	fi; test -z "$$fail"
+ 
+ $(RECURSIVE_CLEAN_TARGETS):
+ 	@failcom='exit 1'; \
+ 	for f in x $$MAKEFLAGS; do \
+ 	  case $$f in \
+ 	    *=* | --[!k]*);; \
+ 	    *k*) failcom='fail=yes';; \
+ 	  esac; \
+ 	done; \
+ 	dot_seen=no; \
+ 	case "$@" in \
+ 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ 	  *) list='$(SUBDIRS)' ;; \
+ 	esac; \
+ 	rev=''; for subdir in $$list; do \
+ 	  if test "$$subdir" = "."; then :; else \
+ 	    rev="$$subdir $$rev"; \
+ 	  fi; \
+ 	done; \
+ 	rev="$$rev ."; \
+ 	target=`echo $@ | sed s/-recursive//`; \
+ 	for subdir in $$rev; do \
+ 	  echo "Making $$target in $$subdir"; \
+ 	  if test "$$subdir" = "."; then \
+ 	    local_target="$$target-am"; \
+ 	  else \
+ 	    local_target="$$target"; \
+ 	  fi; \
+ 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ 	  || eval $$failcom; \
+ 	done && test -z "$$fail"
+ tags-recursive:
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ 	done
+ ctags-recursive:
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ 	done
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	mkid -fID $$unique
+ tags: TAGS
+ 
+ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	here=`pwd`; \
+ 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ 	  include_option=--etags-include; \
+ 	  empty_fix=.; \
+ 	else \
+ 	  include_option=--include; \
+ 	  empty_fix=; \
+ 	fi; \
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  if test "$$subdir" = .; then :; else \
+ 	    test ! -f $$subdir/TAGS || \
+ 	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ 	  fi; \
+ 	done; \
+ 	list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ 	  test -n "$$unique" || unique=$$empty_fix; \
+ 	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ 	    $$tags $$unique; \
+ 	fi
+ ctags: CTAGS
+ CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	list='$(SOURCES) $(HEADERS) config.in $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ 	     $$tags $$unique
+ 
+ GTAGS:
+ 	here=`$(am__cd) $(top_builddir) && pwd` \
+ 	  && cd $(top_srcdir) \
+ 	  && gtags -i $(GTAGS_ARGS) $$here
+ 
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+ 	$(am__remove_distdir)
+ 	test -d $(distdir) || mkdir $(distdir)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ 	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ 	  if test "$$subdir" = .; then :; else \
+ 	    test -d "$(distdir)/$$subdir" \
+ 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+ 	    || exit 1; \
+ 	    distdir=`$(am__cd) $(distdir) && pwd`; \
+ 	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ 	    (cd $$subdir && \
+ 	      $(MAKE) $(AM_MAKEFLAGS) \
+ 	        top_distdir="$$top_distdir" \
+ 	        distdir="$$distdir/$$subdir" \
+ 		am__remove_distdir=: \
+ 		am__skip_length_check=: \
+ 	        distdir) \
+ 	      || exit 1; \
+ 	  fi; \
+ 	done
+ 	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ 	|| chmod -R a+r $(distdir)
+ dist-gzip: distdir
+ 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ 	$(am__remove_distdir)
+ 
+ dist-bzip2: distdir
+ 	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ 	$(am__remove_distdir)
+ dist-lzma: distdir
+ 	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+ 	$(am__remove_distdir)
+ 
+ dist-tarZ: distdir
+ 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ 	$(am__remove_distdir)
+ 
+ dist-shar: distdir
+ 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ 	$(am__remove_distdir)
+ 
+ dist-zip: distdir
+ 	-rm -f $(distdir).zip
+ 	zip -rq $(distdir).zip $(distdir)
+ 	$(am__remove_distdir)
+ 
+ dist dist-all: distdir
+ 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ 	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+ 	$(am__remove_distdir)
+ 
+ # This target untars the dist file and tries a VPATH configuration.  Then
+ # it guarantees that the distribution is self-contained by making another
+ # tarfile.
+ distcheck: dist
+ 	case '$(DIST_ARCHIVES)' in \
+ 	*.tar.gz*) \
+ 	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ 	*.tar.bz2*) \
+ 	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ 	*.tar.lzma*) \
+ 	  unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+ 	*.tar.Z*) \
+ 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ 	*.shar.gz*) \
+ 	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ 	*.zip*) \
+ 	  unzip $(distdir).zip ;;\
+ 	esac
+ 	chmod -R a-w $(distdir); chmod a+w $(distdir)
+ 	mkdir $(distdir)/_build
+ 	mkdir $(distdir)/_inst
+ 	chmod a-w $(distdir)
+ 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ 	  && cd $(distdir)/_build \
+ 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ 	    $(DISTCHECK_CONFIGURE_FLAGS) \
+ 	  && $(MAKE) $(AM_MAKEFLAGS) \
+ 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ 	  && $(MAKE) $(AM_MAKEFLAGS) check \
+ 	  && $(MAKE) $(AM_MAKEFLAGS) install \
+ 	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ 	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ 	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ 	        distuninstallcheck \
+ 	  && chmod -R a-w "$$dc_install_base" \
+ 	  && ({ \
+ 	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ 	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ 	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ 	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ 	  && rm -rf "$$dc_destdir" \
+ 	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+ 	  && rm -rf $(DIST_ARCHIVES) \
+ 	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+ 	$(am__remove_distdir)
+ 	@(echo "$(distdir) archives ready for distribution: "; \
+ 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+ distuninstallcheck:
+ 	@cd $(distuninstallcheck_dir) \
+ 	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ 	   || { echo "ERROR: files left after uninstall:" ; \
+ 	        if test -n "$(DESTDIR)"; then \
+ 	          echo "  (check DESTDIR support)"; \
+ 	        fi ; \
+ 	        $(distuninstallcheck_listfiles) ; \
+ 	        exit 1; } >&2
+ distcleancheck: distclean
+ 	@if test '$(srcdir)' = . ; then \
+ 	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ 	  exit 1 ; \
+ 	fi
+ 	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ 	  || { echo "ERROR: files left in build directory after distclean:" ; \
+ 	       $(distcleancheck_listfiles) ; \
+ 	       exit 1; } >&2
+ check-am: all-am
+ check: check-recursive
+ all-am: Makefile config.h
+ installdirs: installdirs-recursive
+ installdirs-am:
+ @TOOLS_ONLY_FALSE@install: install-recursive
+ install-exec: install-exec-recursive
+ install-data: install-data-recursive
+ uninstall: uninstall-recursive
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-recursive
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ clean: clean-recursive
+ 
+ clean-am: clean-generic mostlyclean-am
+ 
+ distclean: distclean-recursive
+ 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-generic distclean-hdr distclean-local \
+ 	distclean-tags
+ 
+ dvi: dvi-recursive
+ 
+ dvi-am:
+ 
+ html: html-recursive
+ 
+ info: info-recursive
+ 
+ info-am:
+ 
+ install-data-am:
+ 
+ install-dvi: install-dvi-recursive
+ 
+ install-exec-am:
+ 
+ install-html: install-html-recursive
+ 
+ install-info: install-info-recursive
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-recursive
+ 
+ install-ps: install-ps-recursive
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-recursive
+ 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ 	-rm -rf $(top_srcdir)/autom4te.cache
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-recursive
+ 
+ mostlyclean-am: mostlyclean-generic
+ 
+ pdf: pdf-recursive
+ 
+ pdf-am:
+ 
+ ps: ps-recursive
+ 
+ ps-am:
+ 
+ uninstall-am:
+ 
+ .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ 	install-strip
+ 
+ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ 	all all-am am--refresh check check-am clean clean-generic \
+ 	ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+ 	dist-lzma dist-shar dist-tarZ dist-zip distcheck distclean \
+ 	distclean-generic distclean-hdr distclean-local distclean-tags \
+ 	distcleancheck distdir distuninstallcheck dvi dvi-am html \
+ 	html-am info info-am install install-am install-data \
+ 	install-data-am install-dvi install-dvi-am install-exec \
+ 	install-exec-am install-html install-html-am install-info \
+ 	install-info-am install-man install-pdf install-pdf-am \
+ 	install-ps install-ps-am install-strip installcheck \
+ 	installcheck-am installdirs installdirs-am maintainer-clean \
+ 	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ 	pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
+ 
+ 
+ @TOOLS_ONLY_TRUE@  # Build native tools only.
+ @TOOLS_ONLY_FALSE@  # All subdirectories.
+ @TOOLS_ONLY_FALSE@  # Do libs first since the C programs depend on it.
+ @TOOLS_ONLY_FALSE@  # Do doc last so makeinfo will be built when we get there.
+ @TOOLS_ONLY_FALSE@  # Others are alphabetical.
+ 
+ # One special target for installers to use by hand if desired.
+ install-tex:
+ 	cd doc && $(MAKE) TEXMF=$(TEXMF) install-tex
+ 
+ distclean-local:
+ 	-test -d "$(native_tools)" && rm -rf "$(native_tools)"
+ 
+ # Don't install native tools for cross compile.
+ @TOOLS_ONLY_TRUE@install:
+ 
+ # From coreutils.
+ # Verify that all source files using _() are listed in po/POTFILES.in.
+ # Run this before making pretests, as well as official releases, so that
+ # translators will see changed string.
+ po-check:
+ 	if test -f po/POTFILES.in; then					\
+ 	  grep -E -v '^(#|$$)' po/POTFILES.in				\
+ 	    | grep -v '^src/false\.c$$' | sort > $@-1;			\
+ 	  files=;							\
+ 	  for file in $$($(CVS_LIST_EXCEPT)) `find [a-z]* -name '*.[ch]'`; do \
+ 	    case $$file in						\
+ 	    djgpp/* | man/*) continue;;					\
+ 	    esac;							\
+ 	    case $$file in						\
+ 	    *.[ch])							\
+ 	      base=`expr " $$file" : ' \(.*\)\..'`;			\
+ 	      { test -f $$base.l || test -f $$base.y; } && continue;;	\
+ 	    esac;							\
+ 	    files="$$files $$file";					\
+ 	  done;								\
+ 	  grep -E -l '\b(N?_|gettext *)\([^)"]*("|$$)' $$files		\
+ 	    | sort -u > $@-2;						\
+ 	  diff -u $@-1 $@-2 || exit 1;					\
+ 	  rm -f $@-1 $@-2;						\
+ 	fi
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/NEWS texinfo-4.13/NEWS
*** texinfo-4.12/NEWS	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/NEWS	Thu Sep 18 11:45:56 2008
***************
*** 0 ****
--- 1,888 ----
+ $Id: NEWS,v 1.179 2008/09/18 18:45:56 karl Exp $
+ This NEWS file records noteworthy changes, very tersely.
+ See the manual for detailed information.
+ 
+   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ *** NEWS FOR ALL AUTHORS OF TEXINFO MANUALS ***
+ 
+ As of version 4.2, Texinfo has a new command @copying to define the
+ copyright and copying permissions for a manual.  If you haven't already,
+ please switch to using it in your next release, because the historical
+ method of doing copyright permissions using @ifinfo failed to output
+ copyright information in the HTML (or XML) formats.  The manual has
+ detailed explanations and examples.  For convenience, here's a url to
+ one of the relevant sections:
+   http://www.gnu.org/software/texinfo/manual/texinfo/html_node/Document-Permissions.html
+ 
+ -------------------------------------------------------------------------------
+ 
+ 4.13 (18 September 2008)
+ 
+ * A reference card for Texinfo is now available, in doc/refcard.  For
+   convenience, preformatted PDF's for letter-size and A4 paper are included.
+ 
+ * makeinfo:
+   . new option --internal-links for HTML output, to write a tsv file
+     mapping indexed/toc terms to links, for easy reference from external
+     documents.
+   . - as an input file name reads standard input. 
+ 
+ * info:
+   . support for multibyte encodings such as UTF-8.
+   . new option --show-malformed-multibytes, to display malformed multibyte
+   sequences.
+   . new environment variable INFO_MAN_COMMAND sets the name of man binary
+   (use it if you a need to override PATH settings).
+   
+ * install-info:
+   . bug fix: support names with embedded periods (e.g., config.status) again.
+ 
+ * Distribution:
+   . autoconf 2.63.
+ 
+ 
+ 4.12 (20 April 2008)
+ 
+ * Language:
+   . new commands @clicksequence, @click, and @clickstyle for documenting
+     GUI sequences, and @arrow for the default glyph used.
+   . new commands @geq{} and @leq{} for the normal >= and <= relations.
+ 
+ * install-info:
+   . lzma compression supported.
+   . Much work towards compatibility with Debian's independent
+     implementation.  Changes in behavior:
+     - new entries are formatted to start at column 34 by default.
+     - existing entries are replaced by default.
+     - new sections are alphabetized among existing sections.
+     - if an entry being removed is the last one in a section, the
+       section is also removed.
+   . Also many new options:
+     --section REGEX TITLE.
+     --no-indent: disable formatting of new entries.
+     --menuentry, --name: specify left-hand side of an entry.
+     --dry-run: alias for --test.
+     --regex REGEX: renamed from --section regex, adds to all sections
+       matching REGEX by default.
+     --add-once: add only to first specified or matching section.
+     --align COL: start description at column COL.
+     --calign COL: start continuation lines in description at COL.
+     --max-width COL: wrap the description at COL.
+   . New section in the Texinfo manual describing all this.
+ 
+ * info:
+   Our goal with these changes to the default interface is to make Info
+   documents more easily and quickly readable, especially by non-experts.
+   . the PageUp and PageDown keys move through the whole document by
+     default, instead of just the current node.
+   . the h command shows the basic help, and H starts the Info tutorial.
+   . the newly-bound x command deletes the current window, e.g., within help.
+   . the scroll-step variable is set to 1 by default, for smooth scrolling.
+   . the cursor-movement-scrolls-p variable is set to 1 by default, so
+     link searches look through the whole document.
+   . regular expression searches are supported, and are the default for
+     both regular and incremental searches.
+   . the new R command toggles between regexp and literal-string searches.
+   . the new variable scroll-last-node controls scrolling at the end of
+     the last node; by default, it now simply reports there are no more
+     nodes.  To restore the old behavior, set scroll-last-node=Scroll.
+   . the precise line number specified in index entries is used if available.
+   . --usage=info shows usage for standalone Info.
+   . lzma compression supported.
+ 
+ * Distribution:
+   . language support for no removed/renamed to nb, per Norwegian translators.
+   . new translation: es.
+   . bug fixes in make check (and elsewhere).
+   . gettext 0.17, automake 1.10.1, autoconf 2.62.
+ 
+ 
+ 4.11 (9 September 2007)
+ 
+ * Language:
+   . @documentlanguage now supports an optional country code
+     specification after the language code, a la gettext.
+   . new command @allowcodebreaks controls breaks at _ and - within @code.
+   . new command @frenchspacing controls spacing after sentences.
+   . new command @fonttextsize allows changing body text font size to 10pt.
+   . new command @textdegree{} produces the normal degrees symbol.
+   . new command @thischapternum can be used in TeX headers/footers.
+   . new commands for quotes: @quotedblleft @quotedblright
+      @quoteleft @quoteright  @quotedblbase @quotesinglbase
+      @guillemetleft @guillemetright @guilsinglleft @guilsinglright.
+   . new option @set txicodequoteundirected produces an undirected quote
+     in code and example output, instead of the regular right quote.
+   . new option @set txicodequotebacktick produces a grave accent in
+     code and example output, instead of the regular left quote.
+ * makeinfo:
+   . The @documentlanguage locale is used to translate various document strings.
+   . --enable-encoding is now the default, meaning Info and plain text
+     output use 8-bit characters given a supported @documentencoding.
+   . new option --css-ref=URL for creating a stylesheet <link> in HTML output.
+   . new option --transliterate-file-names to use a reduction-to-ASCII
+     algorithm for split HTML file names, useful for non-Latin-based languages.
+   . @enddots{} outputs three dots instead of four, for consistency with
+     texinfo.tex.
+   . the Local Variables coding: setting written by --enable-encoding now
+     comes at the very end, after the tags table, so that Emacs can find
+     it in more cases.
+   . @allow-recursion (never documented) is deprecated and produces a warning.
+   . @quote-args (never documented) is now the default behavior.
+   . centering and such take account of character widths.
+   . the --reference-limit option is now a no-op.
+   . improvements to XML and Docbook output and the DTD.
+ * texinfo.tex:
+   . @thissection can now be used in custom headings, and @thischapter
+     works reliably even without @set chapternewpage.  Custom headings
+     have additional flexibility as well.
+ * texi2dvi:
+   . pdftexi2dvi is a new wrapper to `texi2dvi --pdf', equal to texi2pdf,
+     for the sake of AUC-TeX which prepends `pdf' to the compilation
+     command when requested to produce PDF.
+ * info:
+   . look for info files in the current directory first, by default.
+   . when calling man, use -a if no explicit section is found.
+   . avoid showing the top(1) man page for nonexistent info files.
+ * install-info:
+   . new options --section-regex, --remove-exactly, --debug, --test.
+ * Distribution:
+   . autoconf 2.60, automake 1.10, gettext 0.16.1.
+   . gettext support now [external].
+   . new translations: hu (Hungarian), rw (Kinyarwandan), vi (Vietnamese).
+   . most common sources imported from gnulib.
+ 
+ 4.10 (omitted)
+ 
+ 
+ 4.9 (29 June 2007)
+ * GPLv3.
+ * texi2dvi:
+   . new mode --build=tidy which supports compilation in a separate
+     directory, where intermediate files are preserved.
+   . new option --build-dir, to specify where the tidy build will take
+     place, either locally or globally.  This allows avoiding the clutter
+     while preserving auxiliary files.
+   . new support for AUC-TeX: texi2dvi (weakly) supports arguments a la
+     TeX such as `\nonstopmode\input{file.tex}'.
+   . new options --ps and --dvipdf, useful especially for pstricks documents.
+   . new option --src-specials, passed to TeX.
+ * texinfo.tex:
+   . Latin1, Latin2, Latin9, and UTF-8 are supported -- only as well as
+     the Computer Modern fonts can manage, which means primarily English
+     and western European languages, to a limited extent.
+   . png and jpg images supported in pdf output.
+   . new Russian, Serbian, and Ukrainian translations for texinfo.tex:
+     txi-ru.tex, txi-sr.tex, txi-uk.tex.
+   . section names with \ characters work properly in pdf outlines.
+   . have .toc files use @ as the escape character, instead of \.
+ 
+ 
+ 4.8 (31 December 2004)
+ * Language:
+   . new command @euro for the Euro currency symbol, and
+     @documentencoding has some support for ISO-8859-15.
+   . new command @abbr for general abbreviations.
+   . new command @slanted to typeset text in a slanted font,
+     and @sansserif to typeset in a sans serif font.
+ * makeinfo:
+   . An empty first argument to cross-reference commands, such as @xref,
+     causes an error.  This change was made in 4.1, but not mentioned in NEWS.
+   . HTML output:
+     - <a name="..."> constructs are added for the old-style
+       conversion of node names to HTML names, so that external references
+       to them can continue to work.
+     - "g_t" prefixed to targets for node names beginning with a
+       nonletter, for XHTML compatibility.
+   . Docbook output: recognize more image formats.
+ * texi2dvi:
+   . new option --recode, to call recode for input character translation.
+ * Distribution:
+   . new convenience script texi2pdf, equivalent to texi2dvi --pdf (from tetex).
+   . some cross-compiling support in configure && make.
+   . new configure option --disable-install-warnings, for TeX.
+     distributions which do have the files installed.
+   . automake 1.9.4.
+ 
+ 
+ 4.7 (9 April 2004)
+ * Language:
+   . new commands @float, @caption, @shortcaption, @listoffloats for
+     initial implementation of floating material (figures, tables, etc).
+     Ironically, they do not yet actually float anywhere.
+   . new commands @docbook, @ifdocbook, @ifnotdocbook for conditional Docbook.
+   . new commands @ordf{} and @ordm{} for Spanish feminine/masculine ordinals.
+   . new commands @deftypecv[x] for class variables in typed OO languages.
+   . new command @registeredsymbol for the r-in-a-circle symbol.
+   . new command @headitem to make a heading row in @multitable.
+   . new command @LaTeX{} for the LaTeX logo.
+   . new command @comma{} to avoid comma-parsing problems.
+   . @url is now a synonym for @uref; new command @indicateurl has the
+     old meaning of just displaying a url as text.
+   . @quotation now accepts an optional argument for labelling the text
+       as a `Note', `Tip', etc.
+   . @defun (et al.) heading lines can now be continued with a lone @.
+   . @acronym accepts an optional argument for the meaning of the acronym.
+ * makeinfo:
+   . New environment variable TEXINFO_OUTPUT_FORMAT determines the output
+     format at runtime, if no options are specified.
+   . New option --plaintext, equivalent to --no-headers with Info output.
+   . All outputs:
+     - sections are numbered by default.
+   . Info output:
+     - punctuation is inserted after @pxref and @ref, if needed to make
+       cross-references valid.
+     - line numbers included in index menus, so Info readers can go to
+       the exact line of an entry, not just a node.  Also in plaintext output.
+     - ^@^H[index^@^H] cookie included in index menus, so Info readers
+       can handle the ] etc. commands better.
+   . HTML output:
+     - new algorithm for cross-references to other manuals, for maximum
+       portability and stability.
+     - include node name in <title> with split output.
+     - @multicolumn fractions become percentages.
+     - entities used for bullets, quotes, dashes, and others.
+     - index entries are links to the exact locations.
+     - <h4> and <h5> used for @sub and @subsubsections again.
+     - accented dotless i supported.
+   . XML output: many new tags and structure to preserve more source features.
+   . Docbook output:
+     - upgraded DTD to Docbook XML 4.2, no longer using Docbook SGML.
+     - improved translation in general, for instance:
+     - line annotations and marked quotations.
+ * texi2dvi:
+   . if available, use etex (pdfetex if --pdf) by default.
+   . if the input file includes thumbpdf.sty (for LaTeX), then run thumbpdf.
+   . more output if --debug.
+ * texinfo.tex:
+   . @defun names are now printed in typewriter (instead of bold), and
+     within the arguments, @var text is printed in slanted typewriter.
+   . @tex code is executed inside a TeX group, so that any changes must
+     be prefixed with \global (or the equivalent) to be effective.  (This
+     change was actually made years ago, but never made it into the NEWS.)
+ * info:
+   . new option --where (aka --location, -w) to report where an Info file
+     would be found, instead of reading it.
+   . by default, output ANSI terminal escape sequences as-is; new option
+     --no-raw-escapes overrides this.
+   . use the newly-generated index line numbers.
+ * Distribution:
+   . new script gendocs.sh (not installed), for use by GNU maintainers in
+     getting their manuals on the GNU web site.  Documented in
+     maintain.texi (http://www.gnu.org/prep/maintain/).
+   . Most code uses ANSI C prototypes, to some extent.
+   . New translation: nb.
+   . automake 1.8.3, autoconf 2.59, gettext 0.14.1.
+ 
+ 
+ 4.6 (10 June 2003)
+ * Language:
+   . new command @/ specifies an allowable breakpoint within a line.
+   . new command @dofirstparagraphindent to control whether the first
+     paragraph following a section heading is indented.  Default is to
+     omit this indentation, unlike the output up to now.
+   . new command @indent for explicitly indenting a paragraph.
+   . makeinfo writes a new construct for @image in Info output, so that
+     graphical Info browsers (such as Emacs Info under X) can display an
+     actual image.  (Standalone Info ignores this, since it runs in a tty.)
+ * makeinfo:
+   . Common:
+     - search for image files in the include file search path.
+     - warns if @value is used on an undefined variable.
+   . Info output:
+     - default --split-size now 300,000 bytes, up from 50,000.
+     - with --enable-encoding and a given @documentencoding,
+       output a Local Variables section specifying that encoding, for use
+       with Emacs.
+   . HTML output:
+     - uses <h3> at the smallest.
+     - a few css <style> definitions are included to better
+       implement @format, @display, @small..., etc.
+     - new option --css-include=FILE includes FILE in the <style>.
+     - @cartouche now outputs a <table> with a border.
+ * texinfo.tex:
+   . new Polish translation txi-pl.tex.
+ * texi2dvi:
+   . --command=CMD replaces --texinfo=CMD; it inserts CMD at the first
+     line of LaTeX files now, or after the @setfilename for Texinfo files.
+ * info:
+   . RET now goes to the nearest xref (rather like Emacs Info),
+     instead of the next xref starting on the current line.
+ * Distribution:
+   . new Romanian (ro) translation.
+   . variables now declared const where appropriate.
+   . gettext 0.12.1, automake 1.7.5.
+ 
+ 
+ 4.5 (4 February 2003)
+ * info:
+   . a bug in 4.4 prevented compressed info files from being found.
+ * Distribution:
+   . detect sys/ptem.h on Solaris.
+ 
+ 
+ 4.4 (31 January 2003)
+ * Language:
+   . The ' (ASCII apostrophe/right quote) character is finally allowed in
+     node and anchor names.  Thus, after installing this texinfo.tex,
+     existing .aux files will cause errors!  Remove them and rerun TeX to
+     generate good ones.
+   . @value constructs are now expanded in the filename arguments to
+     @include and @verbatiminclude.
+ * makeinfo:
+   . @macro names may no longer include ^ or _, for the sake of math mode.
+   . bug fix: @copying text is now reflected in tag table positions;
+     before, nodes may not have been found with a long-enough @copying.
+   . bug fix: html @verb arg is quoted properly, and does not imply
+     a paragraph break.
+ * texinfo.tex:
+   . @smallexample and the like now output in a smaller font (9pt) in all
+     paper formats, not just @smallbook and @afourpaper.
+   . new translation txi-tr.tex.
+   . bug fix: <>| and other characters do not disappear when they are
+     first on a line in @verbatim.
+ * install-info:
+   . bug fix: don't translate the `* Menu' info keyword.
+ * info:
+   . CTRL-H is treated like DEL in incremental search.
+   . arrow keys once again work in isearch contexts under Solaris.
+ * infokey:
+   . use .info key bindings before defaults.
+   . allow prefix keys to be disabled.
+ * Distribution:
+   . update to GNU FDL 1.2 (http://www.gnu.org/licenses/fdl.html).
+   . getopt and other common library files updated from gnulib
+     (http://savannah.gnu.org/projects/gnulib/).
+   . autoconf 2.57, automake 1.7.2.
+ 
+ 
+ 4.3 (14 November 2002)
+ * Language:
+   . new command @tie{} to do a real tie (unbreakable interword space).
+ * makeinfo:
+   . html output for @defun and friends now has font changes.
+   . html output has some class attributes.
+   . xml and docbook output improved in many details.
+ * texinfo.tex:
+   . new Italian translations, txi-it.tex.
+   . pdf bookmarks for unnumbered sections work.
+   . type name for @defun and friends no longer extends into margin.
+ * info:
+   . automatic-footnotes now off by default, for emacs compatibility.
+   . crash when MALLOC_CHECK_=2 fixed.
+ * install-info:
+   . new option --infodir synonym for --info-dir, for compatibility with
+     the Debian install-info.
+   . support for bzip2-compressed files.
+ * texindex:
+   . omit initial if the entire index is under one character.
+ * Distribution:
+  . development sources now available under CVS, see
+    http://savannah.gnu.org/projects/texinfo/
+  . Turkish message translation.
+  . gettext 0.11.5, autoconf 2.54, automake 1.7.1.
+ 
+ 
+ 4.2 (1 April 2002)
+ * Language:
+   . new command @copying to define copying permissions.  See above.
+   . new conditionals @ifplaintext, @ifnotplaintext for the plain text
+     (--no-headers) output format.
+   . new command @\ to produce literal \ inside @math, since \ by itself
+     no longer works.
+ * makeinfo:
+   . emit accesskey attributes for keyboard shortcuts to menu items.
+   . @{even,every,odd}{footing,header} are ignored by makeinfo now, so
+     they no longer need to be enclosed in @iftex.
+ * texinfo.tex:
+   . bug fix for pdf-format table of contents.
+ * info:
+   . bug fixes for -R (--raw-escapes).
+   . --help shows short option names.
+ * Distribution:
+   . the doc.c, funs.h, and key.c files in info/ are no longer generated
+     at make time, to appease Automake's make distcheck.
+   . gettext 0.11.1, autoconf 2.53, automake 1.6 (with install-info kludge).
+ 
+ 
+ 4.1 (4 March 2002)
+ * Language:
+   . new commands @verbatim and @verb for printing verbatim inserts.
+   . new command @verbatiminclude for verbatim include of files.
+   . new environment @documentdescription for defining the HTML description.
+   . new command @afivepaper for the A5 paper size.
+ * makeinfo:
+   . supports xml and docbook output.
+   . supports HTML splitting by node, which is now the default.
+   . new option --split-size to control maximum size of split info files.
+   . new option --enable-encoding to enable
+ * info:
+   . user-specified key bindings supported.
+   . ANSI escape sequences (as produced by groff) removed from man output
+     by default; use --raw-escapes to let them through if your terminal
+     supports them.
+   . RET terminates incremental search normally.
+ * texinfo.tex:
+   . @math implies @tex, so all the usual plain TeX math is supported.
+   . smaller fonts for @smallexample, in all page sizes.
+   . improvements in the PDF support.
+ * texi2dvi:
+   . new option -o to explicitly specify output filename.
+ * Distribution:
+   . switch to GNU Free Documentation License (http://www.gnu.org/copyleft/).
+   . update to GNU gettext 0.11, autoconf 2.52, and automake 1.5.
+   . Danish, Swedish, and Hebrew message translations.
+ 
+ 
+ 4.0 (28 September 1999)
+ * Language:
+   . New command @anchor for cross references to arbitrary points.
+   . New commands @documentlanguage sets the main document language,
+     and @documentencoding sets the document input encoding (although not
+     much is done yet with either).
+   . New command @pagesizes allows limited control of text area for typesetting.
+   . New command @acronym for abbreviations in all caps, such as `NASA'.
+   . New command @alias for simple command aliases.
+   . New command @definfoenclose for better control of info output.
+   . New commands @deftypeivar for typed instance variables of a class
+     and @deftypeop for typed operations of a class.
+   . New command @novalidate suppresses cross-reference checking and (in
+     TeX) auxiliary file creation.
+   . New commands @setcontentsaftertitlepage and
+     @setshortcontentsaftertitlepage to force printing the table of
+     contents after @end titlepage.  Also, @contents and @shortcontents
+     themselves can now appear at the beginning of the document as
+     well as the end.
+   . New markup commands: @env (for environment variables), @command (for
+     command names), @option (for command-line options).
+   . New commands @smallformat and @smalldisplay, a la @smallexample.
+   . New command @exampleindent to set indentation of example-like
+     environments a la @paragraphindent.
+   . @uref takes an optional third argument of text to show instead of
+     (rather than in addition to) the url for info and dvi output.
+   . @footnote works in an @item for a @table.
+ * texinfo.tex:
+   . latest version always at ftp://ftp.gnu.org/gnu/texinfo/texinfo.tex
+     (and mirrors).
+   . implements @macro.
+   . implements @paragraphindent (except asis).
+   . @emph and @i use true italic type (cmti) instead of slanted (cmsl).
+   . implements pdf output when run with pdftex.
+   . better support for internationalization via txi-??.tex files.
+   . footnotes now set in a smaller point size.
+ * makeinfo:
+   . supports HTML output with the --html option.
+   . implication of --html: @top nodes should be wrapped in @ifnottex
+     rather than @ifinfo.  @ifinfo conditionals are not expanded with --html.
+   . new option --number-sections to output chapter/section numbers.
+   . dashes and quotes are not treated specially in node names.
+   . new option --commands-in-node-names to allow @-commands in node names.
+     (Not implemented in TeX, and most likely never will be.)
+   . @emph output uses _underscores_.
+   . @image looks for .png files before .jpg.
+   . only output `Making ... file' line when verbose.
+   . allow -v as synonym for --verbose.
+   . new command line options to specify which conditionals to process
+     (but --iftex is not fully implemented).
+   . warns if @var contains any of ,[]().
+   . @quote-arg implicitly done for all one-argument macros, so commas in
+     the argument text are allowed.
+   . \\ required in macro body to get single \, no other `escapes' defined.
+ * info:
+   . ISO Latin 1 characters are displayed and input as-is by default.
+   . new option --vi-keys to enable vi-like and less-like key bindings.
+   . new command S does case-sensitive searching.
+   . new commands C-x n and C-x N repeat last search, respectively, in the
+     same and in reverse direction, without prompting for the string.  These
+     commands are bound to n and N under --vi-keys, like in Less.
+   . new command G menu1 menu2 ... searches for menu items from (dir),
+     as allowed on the command line.
+   . new command O (capital o, not zero) goes directly to the node that
+     describes command-line options.
+   . new command-line option --show-options causes the node which
+     describes command-line options to be the first node displayed.
+   . M-prior and M-DEL do new command info-scroll-other-window-backward.
+   . / searches like s does.
+   . If the search string includes upper-case letters, in both incremental
+     and non-incremental search, the search is case-sensitive.
+   . S searches case-sensitively even if the search string is all
+     lower-case.
+   . - makes the argument negative (so e.g. `- /' searches backward).
+   . l restores point in the window returned to.
+   . SPC/DEL do not move outside the current document.
+   . foo.info is found before foo.
+   . `info foo --index-search=bar' now searches for bar in foo's index.
+   . support for files compressed with bzip2.
+ * install-info:
+   . handles gzipped dir files.
+   . sort entries into alphabetical order.
+   . install direntries only in preceding dircategory, not in all.
+   . --delete does not require the info file to exist.
+   . --delete can handle XEmacs-style dir entries.
+ * texi2dvi:
+   . bug fixed: now uses only the @iftex and @tex parts of the source.
+   . process LaTeX source as well as Texinfo source.
+   . output PDF (using pdftex) with new option --pdf.
+   . handles --OPTION=ARG style of command line arguments.
+   . new option --batch for progress reports but no interaction.
+   . new option --clean to remove all auxiliary files.
+   . new option --quiet for silence (unless there are errors).
+   . new option -I for specifying directories for @include to search.
+   . handles LaTeX files (running BibTeX etc.).
+ * Fixes to util/gen-dir-node and util/fix-info-dir (formerly util/update-info).
+ * Distribution:
+   . Man pages included.
+   . Czech and Norwegian message translations.
+   . Various translations for texinfo.tex fixed words included.
+   . DJGPP support.
+ 
+ 
+ 3.12 (3 March 1998)
+ * Elisp files removed, since they are only usefully distributed with Emacs.
+ * Restore inclusion of compile-time $(infodir) to INFOPATH.
+ * install-info creates a proper dir file.
+ * Various portability fixes.
+ 
+ 
+ 3.11 (31 July 1997)
+ * New commands:
+   - @uref to make a reference to a url; @url now only indicates such.
+   - @image to include graphics (epsf for TeX).
+   - @deftypemethod and @deftypemethodx to document methods in strongly
+     typed object-oriented languages, such as C++.
+   - @html for raw HTML.
+   - @ifnothtml @ifnotinfo @ifnottex for more precise conditionals.
+   - @kbdinputstyle to control when @kbd uses the slanted typewriter font.
+   - @email takes second optional argument.
+ * texinfo.tex reads texinfo.cnf (if present) for site-wide TeX
+   configuration; for example, A4 paper sizes.
+ * info:
+   - arrow keys supported.
+   - trailing : in INFOPATH appends default path.
+   - new option --index-search for online help support.
+ * makeinfo:
+   - output files removed if errors unless (new option) --force.
+   - new option -P to prepend to search path.
+   - macro expansion file can be standard output.
+ * install-info creates a new dir file if necessary.
+ * update-info script to create a dir file from all info files.
+ * Elisp: texnfo-tex.el and detexinfo.el removed from the distribution;
+   - texnfo-tex features are now part of standard TeX & Texinfo packages;
+   - makeinfo --no-headers does a better job than detexinfo.el.
+ * Documentation:
+   - Updates, revisions, corrections in the manual.
+   - makeinfo.texi removed, as it was a copy of what was in texinfo.texi.
+ * gettext support in sources, French and German translations included.
+ * info man page removed; use the Texinfo manual.
+ * Automake used, other portability fixes.
+ 
+ 3.10 (omitted)
+ 
+ 
+ 3.9 (4 October 1996)
+ * makeinfo:
+   - Give a suppressible (with --no-validate) error for references
+     outside of any node.
+   - Keep track of multitable output correctly for split files; this
+     caused nodes after the first multitable to be ``undefined''.
+ * install-info:
+   - Rename --infodir option to --info-dir.
+   - More robust error checking to avoid various crashes.
+ * configure: Include replacements for memcpy and memmove functions in
+   the distribution, in case they are missing.
+ 
+ 
+ 3.8 (30 September 1996)
+ * Define and/or document new and/or previously existing commands:
+   Accents: @" @' @, @" @= @^ @` @~ @H @d @dotaccent @dotless @ringaccent
+     @tieaccent @u @ubaraccent @v
+   Special characters: @AA @AE @L @O @OE @aa @ae @exclamdown @l @o @oe
+     @pounds @questiondown @ss
+   Special punctuation: @! @? @enddots
+   dir file maintenance: @dircategory @direntry; also new program, install-info
+   HTML support: @email @url @ifhtml...@end ifhtml
+   Macros: @macro @unmacro
+   Tables: @multitable @tab
+   Hyphenation: @- @hyphenation
+   Spacing: @  @<TAB> @<NEWLINE>
+   Sectioning:
+     @headings singleafter/doubleafter (change heading style after current page)
+     @centerchap
+     @setchapterstyle
+   Other:
+     @shorttitlepage (simple title pages)
+     @detailmenu...@end detailmenu (help makeinfo parse master menus)
+ * Makeinfo prefers an input file named `foo.texinfo' or `foo.texi' or
+   `foo.txinfo' to just `foo' (the latter most likely being an executable).
+ * Makeinfo implements @. @! @? correctly, as end-of-sentence punctuation.
+ * @key marks its argument with a lozenge in TeX and <...> in Info.
+ * TeX output has substantially decreased interline spacing and other
+   formatting changes.
+ * Remove these obsolete and never-documented commands:
+     @infotop
+     @infoappendix @infoappendixsec @infoappendixsubsec @infoappendixsubsubsec
+     @infochapter @infosection @infosubsection @infosubsubsection
+     @infounnumbered @infounnumberedsec @infounnumberedsubsec
+       @infounnumberedsubsubsec
+     @input
+     @smallbreak @medbreak
+     @overfullrule
+     @br
+ * Deprecate these obsolete commands, to be removed in the next release:
+     @ctrl
+     @infoinclude
+     @iappendix @iappendixsection @iappendixsec @iappendixsubsec
+       @iappendixsubsubsec
+     @ichapter @isection @isubsection @isubsubsection
+     @iunnumbered @iunnumberedsec @iunnumberedsubsec @iunnumberedsubsubsec
+     @setchapterstyle
+     @titlespec
+ 
+ 
+ 3.7 (24 December 1995)
+ * Have --version print texinfo release number as well as the individual
+   program version.
+ * Better man page cleaning.
+ * Update Elisp files from current Emacs release.
+ 
+ 
+ 3.6 (21 June 1995)
+ * Unmatched brace error reporting improved.
+ * Missing comment terminator prevented compilation.
+ 
+ 
+ 3.5 (20 June 1995)
+ * Autoconf update.
+ * Support for parallel makes.
+ * make install does not install Elisp files.
+ 
+ 
+ 3.4 (19 June 1995)
+ * Handle @ifhtml in Elisp.
+ * Update FSF address.
+ 
+ 
+ 3.3 (15 June 1995)
+ * Portability changes.
+ * Compile Elisp files.
+ * Don't distribute .info* files.
+ 
+ 
+ 3.2 (9 June 1995)
+ * Standalone Info can read Unix man pages.
+ * New commands: @! @? @^ @" @enddots.
+ * makeinfo -E does macro expansion (and nothing else).
+ 
+ 
+ 3.1 (23 May 1993)
+ Just bug fixes, see ChangeLog for full details.
+ 
+ 
+ 3.0: first release of Texinfo version 2, with many new commands.
+ 
+ 
+ 
+ Here is the separate NEWS for old releases of Info:
+ 
+ Version 2.11,     Sat Apr  1 09:15:21 1995
+ 
+ Changes since 2.7 beta:
+ 
+ Although the basic code remains the same, there are numerous nits
+ fixed, including some display bugs, and a memory leak.  Some changes
+ that have taken place with larger impact include the way in which the
+ (dir) node is built; I have added in support for "localdir"
+ directories among other things.  Info files may be stored in
+ compressed formats, and in their own subdirectories; menu items which
+ do not explicitly name the node to which they are attached have the
+ menu item name looked up as an Info file if it is not found within the
+ current document.  This means that the menu item:
+ 
+ * Info::		The Info documentation reader.
+ 
+ in (dir) refers to the info node "(info)Top".
+ 
+ Please see the ChangeLog and documentation for details on other
+ changes.
+ 
+ Version 2.7 beta, Wed Dec 30 02:02:38 1992
+ Version 2.6 beta, Tue Dec 22 03:58:07 1992
+ Version 2.5 beta, Tue Dec  8 14:50:35 1992
+ Version 2.4 beta, Sat Nov 28 14:34:02 1992
+ Version 2.3 beta, Fri Nov 27 01:04:13 1992
+ Version 2.2 beta, Tue Nov 24 09:36:08 1992
+ Version 2.1 beta, Tue Nov 17 23:29:36 1992
+ 
+ Changes since 2.5 beta:
+ 
+ Note that versions 2.6 and 2.7 Beta were only released to a select group.
+ 
+ * "info-" removed from the front of M-x commands.
+ 
+ * Automatic footnote display.  When you enter a node which contains
+   footnotes, and the variable "automatic-footnotes" is "On", Info pops
+   up a window containing the footnotes.  Likewise, when you leave that
+   node, the window containing the footnotes goes away.
+ 
+ * Cleaner built in documentation, and documentation functions.
+ 
+   Use:
+     o `M-x describe-variable' to read a variable's documenation
+     o `M-x describe-key' to find out what a particular keystroke does.
+     o `M-x describe-function' to read a function's documentation.
+     o `M-x where-is' to find out what keys invoke a particular function.
+ 
+ * Info can "tile" the displayed windows (via "M-x tile-windows").  If
+   the variable "automatic-tiling" is "On", then splitting a window or
+   deleting a window causes the remaining windows to be retiled.
+ 
+ * You can save every keystroke you type in a "dribble file" by using the
+   `--dribble FILENAME' option.  You can initially read keystrokes from an
+   alternate input stream with `--restore FILENAME', or by redirecting
+   input on the command line `info < old-dribble'.
+ 
+ * New behaviour of menu items.  If the label is the same as the
+   target node name, and the node couldn't be found in the current file,
+   treat the label as a file name.  For example, a menu entry in "DIR"
+   might contain:
+ 
+     * Emacs::		Cool text-editor.
+ 
+   Info would not find the node "(dir)Emacs", so just plain "(emacs)"
+   would be tried.
+ 
+ * New variable "ISO-Latin" allows you to use European machines with
+   8-bit character sets.
+ 
+ * Cleanups in echo area reading, and redisplay.  Cleanups in handling the
+   window which shows possible completions.
+ 
+ * Info can now read files that have been compressed.  An array in filesys.c
+   maps extensions to programs that can decompress stdin, and write the results
+   to stdout.  Currently, ".Z"/uncompress, ".z"/gunzip, and ".Y"/unyabba are
+   supported.  The modeline for a compressed file shows "zz" in it.
+ 
+ * There is a new variable "gc-compressed-files" which, if non-zero, says
+   it is okay to reclaim the file buffer space allocated to a file which
+   was compressed, if, and only if, that file's contents do not appear in
+   any history node.
+ 
+ * New file `nodemenu.c' implements a few functions for manipulating
+   previously visited nodes.  `C-x C-b' (list-visited-nodes) produces a
+   menu of the nodes that could be reached by info-history-node in some
+   window.  `C-x b' (select-visited-node) is similar, but reads one of
+   the node names with completion.
+ 
+ * Keystroke `M-r' (move_to_screen_line) allows the user to place the cursor at
+   the start of a specific screen line.  Without a numeric argument, place the
+   cursor on the center line; with an arg, place the cursor on that line.
+ 
+ * Interruptible display implemented.  Basic display speedups and hacks.
+ * The message "*** Tags Out of Date ***" now means what it says.
+ * Index searching with `,' (info-index-next) has been improved.
+ * When scrolling with C-v, C-M-v, or M-v, only "Page Only" scrolling
+   will happen.
+ 
+ * Continous scrolling (along with `]' (info-global-next) and `['
+   (info-global-prev) works better.  `]' and `[' accept numeric
+   arguments, moving that many nodes in that case.
+ 
+ * `C-x w' (info-toggle-wrap) controls how lines wider than the width
+   of the screen are displayed.  If a line is too long, a `$' is
+   displayed in the rightmost column of the window.
+ 
+ * There are some new variables for controlling the behaviour of Info
+   interactively.  The current list of variables is as follows:
+ 
+   Variable Name      Default Value  Description
+   -------------      -------------  -----------
+   `automatic-footnotes' On	    When "On", footnotes appear and
+ 				    disappear automatically.
+ 
+   `automatic-tiling'    Off	    When "On", creating of deleting a
+ 				    window resizes other windows.
+ 
+   `visible-bell'        Off	    If non-zero, try to use a visible bell.
+ 
+   `errors-ring-bell'    On	    If non-zero, errors cause a ring.
+ 
+   `show-index-match'    On	    If non-zero, the portion of the string
+ 				    matched is highlighted by changing its
+ 				    case.
+ 
+   `scroll-behaviour'    Continuous  One of "Continuous", "Next Only", or
+ 				    "Page Only".  "Page Only" prevents you from
+ 				    scrolling past the bottom or top of a node.
+ 				    "Next Only" causes the Next or Prev node to
+ 				    be selected when you scroll past the bottom
+ 				    or top of a node.  "Continous" moves
+ 				    linearly through the files hierchichal
+ 				    structure.
+ 
+   `scroll-step'	        0	    Controls how scrolling is done for you when
+ 				    the cursor moves out of the current window.
+ 				    Non-zero means it is the number of lines
+ 				    you would like the screen to shift.  A
+ 				    value of 0 means to center the line
+ 				    containing the cursor in the window.
+ 
+   `gc-compressed-files' Off	    If non-zero means it is okay to reclaim the
+ 				    file buffer space allocated to a file which
+ 				    was compressed, if, and only if, that
+ 				    file's contents do not appear in the node
+ 				    list of any window.
+ 
+   `ISO-Latin'	        Off	    Non-zero means that you are using an ISO
+ 				    Latin character set.  By default, standard
+ 				    ASCII characters are assumed.
+ ________________________________________
+ This release of Info is version 2.5 beta.
+ 
+ Changes since 2.4 beta:
+ 
+ * Index (i) and (,) commands fully implemented.
+ * "configure" script now shipped with Info.
+ * New function "set-variable" allows users to set various variables.
+ * User-settable behaviour on end or beginning of node scrolling.  This
+   supercedes the SPC and DEL changes in 2.3 beta.
+ 
+ ________________________________________
+ This release of Info is version 2.4 beta.
+ 
+ Changes since 2.3 beta:
+ 
+ * info-last-node now means move to the last node of this info file.
+ * info-history-node means move backwards through this window's node history.
+ * info-first-node moves to the first node in the Info file.  This node is
+   not necessarily "Top"!
+ * SPC and DEL can select the Next or Prev node after printing an informative
+   message when pressed at the end/beg of a node.
+ 
+ ----------------------------------------
+ This release of Info is version 2.3 beta.
+ 
+ Changes since 2.2 beta:
+ 
+ * M-x command lines if NAMED_COMMANDS is #defined.  Variable in Makefile.
+ * Screen height changes made quite robust.
+ * Interactive function "set-screen-height" implements user height changes.
+ * Scrolling on some terminals is faster now.
+ * C-l with numeric arguement is fixed.
+ 
+ ----------------------------------------
+ This release of Info is version 2.2 beta.
+ 
+ Changes since 2.0:
+ 
+ * C-g can now interrupt multi-file searches.
+ * Incremental search is fully implemented.
+ * Loading large tag tables is much faster now.
+ * makedoc.c replaces shell script, speeding incremental builds.
+ * Scrolling in redisplay is implemented.
+ * Recursive uses of the echo area made more robust.
+ * Garbage collection of unreferenced nodes.
diff -Nrc2 texinfo-4.12/README texinfo-4.13/README
*** texinfo-4.12/README	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/README	Mon Dec 13 05:36:32 2004
***************
*** 0 ****
--- 1,112 ----
+ $Id: README,v 1.16 2004/12/13 13:36:32 karl Exp $
+ This is the README file for the GNU Texinfo distribution.  Texinfo is
+ the preferred documentation format for GNU software.
+ 
+   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+   2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ See ./INSTALL* for installation instructions.
+ 
+ Primary distribution point: ftp://ftp.gnu.org/gnu/texinfo/
+   (list of mirrors at: http://www.gnu.org/prep/ftp.html)
+ 
+ Home page: http://www.gnu.org/software/texinfo/
+   (list of mirrors at: http://www.gnu.org/server/list-mirrors.html)
+   This page includes links to other Texinfo-related programs.
+ 
+ Mailing lists and archives:
+ - bug-texinfo@gnu.org for bug reports or enhancement suggestions,
+   archive: http://mail.gnu.org/pipermail/bug-texinfo
+ - help-texinfo@gnu.org for authoring questions and general discussion, 
+   archive: http://mail.gnu.org/pipermail/help-texinfo
+ - texinfo-pretest@texinfo.org for pretests of new releases,
+   archive: http://texinfo.org/ftp/texinfo-pretest-archive
+ There are no corresponding newsgroups.
+ 
+ Bug reports:
+  please include enough information for the maintainers to reproduce the
+  problem.  Generally speaking, that means:
+ - the contents of any input files necessary to reproduce the bug (crucial!).
+ - a description of the problem and any samples of the erroneous output.
+ - the version number of Texinfo and the program(s) involved (use --version).
+ - hardware, operating system, and compiler versions (uname -a).
+ - unusual options you gave to configure, if any (see config.status).
+ - anything else that you think would be helpful.
+ 
+ Patches are most welcome; if possible, please make them with diff -c and
+ include ChangeLog entries.
+ 
+ When sending email, please do not encode or split the messages in any
+ way if at all possible; it's easier to deal with one large message than
+ many small ones.  GNU shar (http://www.gnu.org/software/sharutils/) is a
+ convenient way of packaging multiple and/or binary files for email.
+ 
+ See README.dev for information on the Texinfo development environment --
+ any interested parties are welcome.  If you're a programmer and wish to
+ contribute, this should get you started.  And if you're not a
+ programmer, you can still make significant contributions by writing test
+ cases, checking the documentation against the implementation, etc.
+ 
+ This distribution includes the following files, among others:
+     README                      This file.
+     README.dev                  Texinfo developer information.
+ 
+     INSTALL                     Texinfo-specific installation notes.
+     NEWS                        Summary of new features by release.
+     INTRODUCTION                Brief introduction to the system, and
+                                 how to create readable files from the
+                                 Texinfo source files in this distribution.
+ 
+ Texinfo documentation files (in ./doc):
+     texinfo.txi                 Describes the Texinfo language and many
+                                 of the associated tools.  It tells how
+                                 to use Texinfo to write documentation,
+                                 how to use Texinfo mode in GNU Emacs,
+                                 TeX, makeinfo, and the Emacs Lisp
+                                 Texinfo formatting commands.
+ 
+     info.texi                   This manual tells you how to use 
+                                 Info.  This document also comes as part of
+                                 GNU Emacs.  If you do not have Emacs,
+                                 you can format this Texinfo source
+                                 file with makeinfo or TeX and then
+                                 read the resulting Info file with the
+                                 standalone Info reader that is part of
+                                 this distribution.
+ 
+     info-stnd.texi              This manual tells you how to use
+                                 the standalone GNU Info reader that is
+                                 included in this distribution as C
+                                 source (./info).
+ 
+ Printing related files:
+     doc/texinfo.tex             This TeX definitions file tells
+                                 the TeX program how to typeset a
+                                 Texinfo file into a DVI file ready for
+                                 printing.
+ 
+     util/texindex.c             This file contains the source for
+                                 the `texindex' program that generates
+                                 sorted indices used by TeX when
+                                 typesetting a file for printing.
+ 
+     util/texi2dvi               This is a shell script for
+                                 producing an indexed DVI file using
+                                 TeX and texindex. 
+ 
+ Source files for standalone C programs: 
+   ./lib
+   ./makeinfo
+   ./info
+ 
+ Installation files:
+     Makefile.am                 What Automake uses to make a Makefile.in.
+     Makefile.in                 What `configure' uses to make a Makefile,
+                                 created by Automake.
+     configure.ac		What Autoconf uses to create `configure'.
+     configure                   Configuration script for local conditions,
+                                 created by Autoconf.
diff -Nrc2 texinfo-4.12/README.dev texinfo-4.13/README.dev
*** texinfo-4.12/README.dev	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/README.dev	Thu May 22 05:11:31 2008
***************
*** 0 ****
--- 1,52 ----
+ $Id: README.dev,v 1.15 2008/03/25 13:51:20 karl Exp $
+ This README.dev file describes the development environment.
+ 
+   Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008
+   Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ The development sources for GNU Texinfo are available through anonymous
+ CVS at Savannah:
+   http://savannah.gnu.org/cvs/?group=texinfo
+ 
+ This distribution uses whatever versions of Automake, Autoconf, and
+ Gettext are listed in NEWS; usually the latest ones released.  If you
+ are getting the sources from CVS (or change configure.ac), you'll need
+ to have these tools installed to (re)build.  You'll also need help2man.
+ All of these programs are available from ftp://ftp.gnu.org/gnu.
+ 
+ After getting the CVS sources, and installing the tools above, you can run
+  ./autogen.sh
+ and then
+  ./configure CFLAGS='-g -Wdeclaration-after-statement' --enable-maintainer-mode
+ and then
+  make
+ 
+ After the initial autogen && configure, simply running make should suffice.
+ 
+ The reason for that particular -W is that intermixing declarations with
+ statementts is an easy thing to do accidentally, gcc won't warn about it
+ by default, and other compilers that don't support it are still
+ widespread.  Lots of other -W options can be useful too, and patches are
+ welcome to resolve the diagnostics.  Or if you're not using gcc, of
+ course you shouldn't include it at all.
+ 
+ This distribution also uses Gnulib (http://www.gnu.org/software/gnulib)
+ to share common files, with the files being checked in to CVS.  If you
+ get automake/conf/etc. errors from ./autogen.sh, please try doing a CVS
+ checkout of gnulib (in a separate directory to the texinfo checkout),
+ and then run
+   ../gnulib/gnulib-tool --update
+ in your top-level Texinfo directory.  (gnulib-tool is in the gnulib CVS tree.)
+ 
+ For the record, a first time invocation would be
+   gnulib-tool --import --m4-base=gnulib/m4 --source-base=gnulib/lib \
+               --no-vc-files getopt
+ 
+ Many more modules have been added since.  The currently-used gnulib
+ modules and other gnulib information are recorded in
+ gnulib/m4/gnulib-cache.m4.  Given a source checkout of gnulib, you can
+ update the files with gnulib-tool --import.
diff -Nrc2 texinfo-4.12/TODO texinfo-4.13/TODO
*** texinfo-4.12/TODO	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/TODO	Sat Jul 26 15:54:54 2008
***************
*** 0 ****
--- 1,212 ----
+ $Id: TODO,v 1.45 2008/07/26 17:13:26 karl Exp $
+ This is the todo list for GNU Texinfo.
+ If you are interested in working on any of these, email bug-texinfo@gnu.org.
+ 
+   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2003, 
+   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ * General:
+   - Support installation of manuals in different languages, along these lines:
+     . support a LINGUAS file or variable saying which subdirs LL in the
+       source to descend into (under doc/).
+     . within each subdir LL, install the info files into $infodir/LL,
+       and run install-info on $infodir/LL/dir.
+     . info (both emacs and standalone) should read $infodir/$LANG/dir
+       as the first dir file, and likewise read info files first from
+       $infodir/$LANG, before falling back to $infodir.
+     . consider ways to avoid installing images in both places.
+       In fact, images probably need to be installed in a subdir
+       $infodir/MANUAL/ in the first place, to avoid conflicts of having
+       the same image name in different manuals.
+     For a test case, see texinfo cvs, with its one translated manual
+     (info-fr.texi).
+     From Wojciech Polak.
+   - Or even multibyte languages like Japanese, see msg:
+     http://lists.gnu.org/archive/html/bug-texinfo/2005-03/msg00000.html
+   - Monitor and improve the dir categories in existing manuals,
+     following the Free Software Directory categories.  Much mail to
+     developers has already been sent, what's needed now is to check new
+     releases and make sure they are using the right categories.
+     See the util/dir-example in the Texinfo distribution for our current
+     recommended categories.
+     For background, see the thread (which discusses a lot of other
+     issues too) at
+     http://mail.gnu.org/pipermail/emacs-devel/2002-10/msg00011.html,
+     especially 
+       http://mail.gnu.org/archive/html/emacs-devel/2002-10/msg00090.html
+       http://mail.gnu.org/archive/html/emacs-devel/2002-10/msg00137.html
+   - Extend and improve the tests.
+   - Get Info declared as a MIME Content-Type.
+   - Likewise the `info:' URI scheme; a library consortium has proposed a
+     completely different purpose for the URI scheme, but I don't know
+     how to send comments, despite it being a "request for comments".  Sigh.
+     There is mail about this in the bug-texinfo archives:
+       http://mail.gnu.org/archive/html/bug-texinfo/2003-09/msg00086.html
+   - Support compressed image files.
+   - Support reference card creation, perhaps by only paying attention to
+     sectioning and @def... commands.
+   - Allow @end (and other?) commands to be indented in the source.
+ 
+ * Language:
+   - @else for the @if... conditionals.
+   - @xindexterm [def] primary [,secondary [,tertiary]]  or some such?
+   - Allow subitems and `see' and `see also' in indices.
+   - multicolumn * width to take up `the rest'.
+   - another table command to take N succeeding items and split them
+     into M columns (see eplain).
+   - support bibliographies with BibTeX (see web2c/doc for kludge prototype).
+   - @flushboth to combine @flushleft and @flushright, for RFC's.
+   - @part sectioning command.
+   - @exercise/@answer command for, e.g., gawk.
+   - Allow @hsep/@vsep at @item, instead of just in template.
+   - Support automatic line numbering of examples.
+   - Better macro syntax, including a separate @inlinemacro (or
+     something) to distinguish macros that swallow their final newline
+     and those that don't.
+   - Better def... command syntax.
+   - Allow : in node names for info files, for names like
+     `class::method'.  Likewise index entries.  A quoting mechanism such
+     as surrounding node names with SPACE BACKSPACE is probably the best
+     solution, although this is an incompatible change to Info format, sigh.
+   - Glossary/general definition support (dumas msg 28 Nov 2003 17:09:57 +0100).
+   - Add support for other Latin 9 (and Latin 2 and Latin 1) characters.
+ 
+ * Makeinfo:
+   - Translation of "Appendix" etc. should depend on @doclang not $LANG.
+   - Really support UTF-8 instead of just passing through the bytes.
+   - lang.c setup doesn't support @v{S} (S with caron) -- no named entity.
+   - Automatically do -I of directory of main source file.
+   - Make makeinfo -E just do macro expansion, avoiding all error checks.
+     That way, texi2dvi could run makeinfo --iftex -E.
+   - A detexinfo program, like detex or delatex.  This command would
+     strip all the texinfo commands out, and would be used as a filter on
+     the way to a speller.  An option would be to NOT strip comments out.
+     makeinfo --no-headers comes close.
+   - If node name contains an @ command, complain explicitly.
+   - Use @documentlanguage instead of LANG for many translations.
+   - HTML: split output by chapter to improve context, per Akim.
+     Even different splits for different chapters.
+     Generate dummy files for all nodes for the sake of cross-references?
+   - HTML: support thumbnails.
+   - HTML: make images of math, maybe.
+   - HTML: allow settable background color, table colors and spacing,
+     <head> meta tags, etc.  A la http://texi2html.cvshome.org.  In fact:
+   - HTML: have a library of different CSS styles.
+     http://mail.gnu.org/archive/html/bug-texinfo/2004-01/msg00025.html
+   - XML: cannot be loaded directly in a browser; why not?
+   - Docbook: &euro; and other entities do not work; does anything work?
+   - Support the MediaWiki output format.
+   - Rewrite completely to simplify generation of different formats.
+ 
+ * TeX:
+   - Use @ as the escape character, and Texinfo syntax generally, in the
+     table of contents and index files.
+   - Support input in any encoding and language, via ec or Latin Modern fonts.
+     Including Unicode, e.g., UTF-8.  (Some work has been done.)
+   - Reasonable way to change fonts from the default (some work has been
+     done), to allow for PostScript fonts, for example.
+   - @multitable: handle @hsep and @vsep.
+   - @multitable: repeat table headings if multiple pages long.
+   - @multitable: support a heading line concept (<thead> in HTML).
+   - Introduce new command to change \bindingoffset.
+   - Use marks to define a real @thissection.
+   - Table of contents is misaligned if there are 10 or more [sub]sections.
+   - Use url.sty (or something) to allow linebreak of url's.
+   - Make accent commands implicitly use @dotless{i/j}.
+   - Include hyperlink \special's in the DVI output for xdvi, etc.
+   - PDF: make each letter of the index (A, B, ...) a section in the TOC.
+     From Carsten Dominik.
+   - PDF: use the PageLabels dictionary to allow jumping to logical
+     pages, presumably after xpdf/gv support it.  Section 8.3.1 of the
+     PDF reference.  From Werner Lemberg, texinfo-pretest mail of
+     27 Feb 2006 22:55:13 +0100.
+ 
+ * Doc:
+   - Include a complete functional summary, as in a reference card, in
+     the manual.
+   - Improve the manuals, especially for makeinfo, standalone info, etc.
+   - new section on doing dedication pages. See gawk.texi
+     for an example of doing it in both the tex and info versions.
+ 
+ * Info:
+   - (By far the most important bug to fix.)
+     Support multibyte character sets, principally UTF-8; most
+     critically, do not break multibyte characters across lines, but lots
+     of other problems are present.  This implies major changes to Info,
+     since it currently assumes byte/character equivalence (having been
+     written long before multibyte character sets were common).
+ 
+     Here's a careful bug report on the subject (the sender can help test):
+     http://lists.gnu.org/archive/html/bug-texinfo/2007-11/msg00033.html
+     
+     Here's an initial bug report and "patch" that simply disables translation.
+     http://lists.gnu.org/archive/html/bug-texinfo/2006-08/msg00001.html
+     http://wiki.linuxfromscratch.org/patches/browser/trunk/texinfo/texinfo-4.8-multibyte-1.patch
+     
+   - The help message does not report Down/Up for next/prev-line.
+   - When scrolling through the help text, it should stop at the end, not
+     report "No more nodes" and go back to the beginning.
+   - It would be nice for h in the help window to quit help.
+   - It would be nice to be able to specify a preferred key to report in
+     the help message, instead of using the last one set; cf. q vs. C-x C-c.
+   - Full-text search across all info files installed on the system.
+   - Perhaps comply with LANGUAGE setting on a per-node basis, to allow
+     incremental translation of Texinfo files.
+   - Display images when running under X, as Emacs 22+ can.
+   - Search all nodes of dir file at startup, then can have
+     INFO-DIR-SEPARATE-GROUPS and other such.  I.e., we could have
+     programs (what is now "Individual utilities") in one node, library
+     functions, in another, etc.  And how about supporting other languages?
+   - Better dir file merging.
+   - Global dir file (as in /etc/conf/dir) and texinfo config file
+     specifying which info directories to search.  From Dale Mellor.
+     http://mail.gnu.org/mailman/private/gnu-prog-discuss/2003q4/000439.html
+   - Steal interface ideas from Lynx: number links, use color, etc.
+     Perhaps code from the pinfo viewer can be reused:
+     http://zeus.polsl.gliwice.pl/~pborys/.
+   - More sample .infokey files, so people can choose without writing their own.
+   - Incorporate an X-based viewer, perhaps the old GNU xinfo widget
+      (http://www.gnu.org/software/xinfo) or saxinfo
+      or tkinfo (http://www.math.ucsb.edu/~boldt/tkinfo/).
+   - Make "info foo bar" search for bar in foo's index(es) if no menu match.
+   - Handle M-n, C-u m, and C-u g like Emacs Info (opening new windows).
+   - Write technical definition of Info format.
+ 
+ * install-info:
+   - be able to copy the info file to compile-time $infodir, to
+     simplify by-hand installation.
+   - also support installing HTML files, etc., along with subsidiary
+     @image (or other) files.  In subdirs.  Or something.
+   - support info dir entries for other than the current info file name;
+     see comments in menu_item_equal.
+ 
+ * texindex:
+   - read source file (specified by new option) for @documentlanguage
+     and/or @documentencoding, and change the sorting appropriately.
+   From: Wojciech Polak, 26 Apr 2003 11:30:59 +0200.
+ 
+ * Distribution:
+   - generate txi-??.tex from .po's to make translators' jobs easier.
+     From Akim and Karl E.
+ 
+ Ideas that will not be implemented:
+ - Process Texinfo files directly instead of converting to Info:
+   ftp://ftp.cs.berkeley.edu/ucb/people/phelps/tcltk/tkman.tar.Z, which
+   uses Tcl/Tk 8.0 from ftp.smli.com in the /pub/tcl directory.
+   From: Tom Phelps @ berkeley
+   [This has the disadvantage of needing to be updated when the
+   Texinfo language changes, so don't.]
+ 
+ - Call Ghostscript to get ASCII/jpg output for the @image command.
+   [makeinfo should not try to be make, or assume it knows how the user
+    wants to generate images.  Too many different methods are possible.]
+ 
+ - Change bars.  This is difficult or impossible in TeX,
+   unfortunately.  To do it right requires device driver support.
+   wdiff or ediff may be all we can do.  Merely specifying what should be
+   changed is not obvious.  texdiff (http://www.robmar.net/TexDiff) does
+   something reasonable for LaTeX, maybe it can be adapted.
diff -Nrc2 texinfo-4.12/aclocal.m4 texinfo-4.13/aclocal.m4
*** texinfo-4.12/aclocal.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/aclocal.m4	Thu Sep 18 11:46:19 2008
***************
*** 0 ****
--- 1,997 ----
+ # generated automatically by aclocal 1.10.1 -*- Autoconf -*-
+ 
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ # 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ m4_ifndef([AC_AUTOCONF_VERSION],
+   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+ m4_if(AC_AUTOCONF_VERSION, [2.63],,
+ [m4_warning([this file was generated for autoconf 2.63.
+ You have another version of autoconf.  It may work, but is not guaranteed to.
+ If you have problems, you may need to regenerate the build system entirely.
+ To do so, use the procedure documented by the package, typically `autoreconf'.])])
+ 
+ # Copyright (C) 2002, 2003, 2005, 2006, 2007  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # AM_AUTOMAKE_VERSION(VERSION)
+ # ----------------------------
+ # Automake X.Y traces this macro to ensure aclocal.m4 has been
+ # generated from the m4 files accompanying Automake X.Y.
+ # (This private macro should not be called outside this file.)
+ AC_DEFUN([AM_AUTOMAKE_VERSION],
+ [am__api_version='1.10'
+ dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+ dnl require some minimum version.  Point them to the right macro.
+ m4_if([$1], [1.10.1], [],
+       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+ ])
+ 
+ # _AM_AUTOCONF_VERSION(VERSION)
+ # -----------------------------
+ # aclocal traces this macro to find the Autoconf version.
+ # This is a private macro too.  Using m4_define simplifies
+ # the logic in aclocal, which can simply ignore this definition.
+ m4_define([_AM_AUTOCONF_VERSION], [])
+ 
+ # AM_SET_CURRENT_AUTOMAKE_VERSION
+ # -------------------------------
+ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+ # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+ AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+ [AM_AUTOMAKE_VERSION([1.10.1])dnl
+ m4_ifndef([AC_AUTOCONF_VERSION],
+   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+ _AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)])
+ 
+ # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+ 
+ # Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+ # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+ # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+ #
+ # Of course, Automake must honor this variable whenever it calls a
+ # tool from the auxiliary directory.  The problem is that $srcdir (and
+ # therefore $ac_aux_dir as well) can be either absolute or relative,
+ # depending on how configure is run.  This is pretty annoying, since
+ # it makes $ac_aux_dir quite unusable in subdirectories: in the top
+ # source directory, any form will work fine, but in subdirectories a
+ # relative path needs to be adjusted first.
+ #
+ # $ac_aux_dir/missing
+ #    fails when called from a subdirectory if $ac_aux_dir is relative
+ # $top_srcdir/$ac_aux_dir/missing
+ #    fails if $ac_aux_dir is absolute,
+ #    fails when called from a subdirectory in a VPATH build with
+ #          a relative $ac_aux_dir
+ #
+ # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+ # are both prefixed by $srcdir.  In an in-source build this is usually
+ # harmless because $srcdir is `.', but things will broke when you
+ # start a VPATH build or use an absolute $srcdir.
+ #
+ # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+ # iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+ #   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+ # and then we would define $MISSING as
+ #   MISSING="\${SHELL} $am_aux_dir/missing"
+ # This will work as long as MISSING is not called from configure, because
+ # unfortunately $(top_srcdir) has no meaning in configure.
+ # However there are other variables, like CC, which are often used in
+ # configure, and could therefore not use this "fixed" $ac_aux_dir.
+ #
+ # Another solution, used here, is to always expand $ac_aux_dir to an
+ # absolute PATH.  The drawback is that using absolute paths prevent a
+ # configured tree to be moved without reconfiguration.
+ 
+ AC_DEFUN([AM_AUX_DIR_EXPAND],
+ [dnl Rely on autoconf to set up CDPATH properly.
+ AC_PREREQ([2.50])dnl
+ # expand $ac_aux_dir to an absolute path
+ am_aux_dir=`cd $ac_aux_dir && pwd`
+ ])
+ 
+ # AM_CONDITIONAL                                            -*- Autoconf -*-
+ 
+ # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
+ # Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 8
+ 
+ # AM_CONDITIONAL(NAME, SHELL-CONDITION)
+ # -------------------------------------
+ # Define a conditional.
+ AC_DEFUN([AM_CONDITIONAL],
+ [AC_PREREQ(2.52)dnl
+  ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+ 	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+ AC_SUBST([$1_TRUE])dnl
+ AC_SUBST([$1_FALSE])dnl
+ _AM_SUBST_NOTMAKE([$1_TRUE])dnl
+ _AM_SUBST_NOTMAKE([$1_FALSE])dnl
+ if $2; then
+   $1_TRUE=
+   $1_FALSE='#'
+ else
+   $1_TRUE='#'
+   $1_FALSE=
+ fi
+ AC_CONFIG_COMMANDS_PRE(
+ [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+   AC_MSG_ERROR([[conditional "$1" was never defined.
+ Usually this means the macro was only invoked conditionally.]])
+ fi])])
+ 
+ # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ # Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 9
+ 
+ # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+ # written in clear, in which case automake, when reading aclocal.m4,
+ # will think it sees a *use*, and therefore will trigger all it's
+ # C support machinery.  Also note that it means that autoscan, seeing
+ # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+ 
+ 
+ # _AM_DEPENDENCIES(NAME)
+ # ----------------------
+ # See how the compiler implements dependency checking.
+ # NAME is "CC", "CXX", "GCJ", or "OBJC".
+ # We try a few techniques and use that to set a single cache variable.
+ #
+ # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+ # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+ # dependency, and given that the user is not expected to run this macro,
+ # just rely on AC_PROG_CC.
+ AC_DEFUN([_AM_DEPENDENCIES],
+ [AC_REQUIRE([AM_SET_DEPDIR])dnl
+ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+ AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+ AC_REQUIRE([AM_DEP_TRACK])dnl
+ 
+ ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+        [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+        [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+        [$1], UPC,  [depcc="$UPC"  am_compiler_list=],
+        [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
+ 
+ AC_CACHE_CHECK([dependency style of $depcc],
+                [am_cv_$1_dependencies_compiler_type],
+ [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+   # We make a subdir and do the tests there.  Otherwise we can end up
+   # making bogus files that we don't know about and never remove.  For
+   # instance it was reported that on HP-UX the gcc test will end up
+   # making a dummy file named `D' -- because `-MD' means `put the output
+   # in D'.
+   mkdir conftest.dir
+   # Copy depcomp to subdir because otherwise we won't find it if we're
+   # using a relative directory.
+   cp "$am_depcomp" conftest.dir
+   cd conftest.dir
+   # We will build objects and dependencies in a subdirectory because
+   # it helps to detect inapplicable dependency modes.  For instance
+   # both Tru64's cc and ICC support -MD to output dependencies as a
+   # side effect of compilation, but ICC will put the dependencies in
+   # the current directory while Tru64 will put them in the object
+   # directory.
+   mkdir sub
+ 
+   am_cv_$1_dependencies_compiler_type=none
+   if test "$am_compiler_list" = ""; then
+      am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+   fi
+   for depmode in $am_compiler_list; do
+     # Setup a source with many dependencies, because some compilers
+     # like to wrap large dependency lists on column 80 (with \), and
+     # we should not choose a depcomp mode which is confused by this.
+     #
+     # We need to recreate these files for each test, as the compiler may
+     # overwrite some of them when testing with obscure command lines.
+     # This happens at least with the AIX C compiler.
+     : > sub/conftest.c
+     for i in 1 2 3 4 5 6; do
+       echo '#include "conftst'$i'.h"' >> sub/conftest.c
+       # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+       # Solaris 8's {/usr,}/bin/sh.
+       touch sub/conftst$i.h
+     done
+     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+ 
+     case $depmode in
+     nosideeffect)
+       # after this tag, mechanisms are not by side-effect, so they'll
+       # only be used when explicitly requested
+       if test "x$enable_dependency_tracking" = xyes; then
+ 	continue
+       else
+ 	break
+       fi
+       ;;
+     none) break ;;
+     esac
+     # We check with `-c' and `-o' for the sake of the "dashmstdout"
+     # mode.  It turns out that the SunPro C++ compiler does not properly
+     # handle `-M -o', and we need to detect this.
+     if depmode=$depmode \
+        source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+          >/dev/null 2>conftest.err &&
+        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+       # icc doesn't choke on unknown options, it will just issue warnings
+       # or remarks (even with -Werror).  So we grep stderr for any message
+       # that says an option was ignored or not supported.
+       # When given -MP, icc 7.0 and 7.1 complain thusly:
+       #   icc: Command line warning: ignoring option '-M'; no argument required
+       # The diagnosis changed in icc 8.0:
+       #   icc: Command line remark: option '-MP' not supported
+       if (grep 'ignoring option' conftest.err ||
+           grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+         am_cv_$1_dependencies_compiler_type=$depmode
+         break
+       fi
+     fi
+   done
+ 
+   cd ..
+   rm -rf conftest.dir
+ else
+   am_cv_$1_dependencies_compiler_type=none
+ fi
+ ])
+ AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+ AM_CONDITIONAL([am__fastdep$1], [
+   test "x$enable_dependency_tracking" != xno \
+   && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+ ])
+ 
+ 
+ # AM_SET_DEPDIR
+ # -------------
+ # Choose a directory name for dependency files.
+ # This macro is AC_REQUIREd in _AM_DEPENDENCIES
+ AC_DEFUN([AM_SET_DEPDIR],
+ [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+ ])
+ 
+ 
+ # AM_DEP_TRACK
+ # ------------
+ AC_DEFUN([AM_DEP_TRACK],
+ [AC_ARG_ENABLE(dependency-tracking,
+ [  --disable-dependency-tracking  speeds up one-time build
+   --enable-dependency-tracking   do not reject slow dependency extractors])
+ if test "x$enable_dependency_tracking" != xno; then
+   am_depcomp="$ac_aux_dir/depcomp"
+   AMDEPBACKSLASH='\'
+ fi
+ AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+ AC_SUBST([AMDEPBACKSLASH])dnl
+ _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+ ])
+ 
+ # Generate code to set up dependency tracking.              -*- Autoconf -*-
+ 
+ # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ # Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ #serial 3
+ 
+ # _AM_OUTPUT_DEPENDENCY_COMMANDS
+ # ------------------------------
+ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [for mf in $CONFIG_FILES; do
+   # Strip MF so we end up with the name of the file.
+   mf=`echo "$mf" | sed -e 's/:.*$//'`
+   # Check whether this is an Automake generated Makefile or not.
+   # We used to match only the files named `Makefile.in', but
+   # some people rename them; so instead we look at the file content.
+   # Grep'ing the first line is not enough: some people post-process
+   # each Makefile.in and add a new line on top of each file to say so.
+   # Grep'ing the whole file is not good either: AIX grep has a line
+   # limit of 2048, but all sed's we know have understand at least 4000.
+   if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+     dirpart=`AS_DIRNAME("$mf")`
+   else
+     continue
+   fi
+   # Extract the definition of DEPDIR, am__include, and am__quote
+   # from the Makefile without running `make'.
+   DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+   test -z "$DEPDIR" && continue
+   am__include=`sed -n 's/^am__include = //p' < "$mf"`
+   test -z "am__include" && continue
+   am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+   # When using ansi2knr, U may be empty or an underscore; expand it
+   U=`sed -n 's/^U = //p' < "$mf"`
+   # Find all dependency output files, they are included files with
+   # $(DEPDIR) in their names.  We invoke sed twice because it is the
+   # simplest approach to changing $(DEPDIR) to its actual value in the
+   # expansion.
+   for file in `sed -n "
+     s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+     # Make sure the directory exists.
+     test -f "$dirpart/$file" && continue
+     fdir=`AS_DIRNAME(["$file"])`
+     AS_MKDIR_P([$dirpart/$fdir])
+     # echo "creating $dirpart/$file"
+     echo '# dummy' > "$dirpart/$file"
+   done
+ done
+ ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+ 
+ 
+ # AM_OUTPUT_DEPENDENCY_COMMANDS
+ # -----------------------------
+ # This macro should only be invoked once -- use via AC_REQUIRE.
+ #
+ # This code is only required when automatic dependency tracking
+ # is enabled.  FIXME.  This creates each `.P' file that we will
+ # need in order to bootstrap the dependency handling code.
+ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AC_CONFIG_COMMANDS([depfiles],
+      [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+ ])
+ 
+ # Do all the work for Automake.                             -*- Autoconf -*-
+ 
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+ # 2005, 2006, 2008 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 13
+ 
+ # This macro actually does too much.  Some checks are only needed if
+ # your package does certain things.  But this isn't really a big deal.
+ 
+ # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+ # AM_INIT_AUTOMAKE([OPTIONS])
+ # -----------------------------------------------
+ # The call with PACKAGE and VERSION arguments is the old style
+ # call (pre autoconf-2.50), which is being phased out.  PACKAGE
+ # and VERSION should now be passed to AC_INIT and removed from
+ # the call to AM_INIT_AUTOMAKE.
+ # We support both call styles for the transition.  After
+ # the next Automake release, Autoconf can make the AC_INIT
+ # arguments mandatory, and then we can depend on a new Autoconf
+ # release and drop the old call support.
+ AC_DEFUN([AM_INIT_AUTOMAKE],
+ [AC_PREREQ([2.60])dnl
+ dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+ dnl the ones we care about.
+ m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+ AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ if test "`cd $srcdir && pwd`" != "`pwd`"; then
+   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+   # is not polluted with repeated "-I."
+   AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+   # test to see if srcdir already configured
+   if test -f $srcdir/config.status; then
+     AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+   fi
+ fi
+ 
+ # test whether we have cygpath
+ if test -z "$CYGPATH_W"; then
+   if (cygpath --version) >/dev/null 2>/dev/null; then
+     CYGPATH_W='cygpath -w'
+   else
+     CYGPATH_W=echo
+   fi
+ fi
+ AC_SUBST([CYGPATH_W])
+ 
+ # Define the identity of the package.
+ dnl Distinguish between old-style and new-style calls.
+ m4_ifval([$2],
+ [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+  AC_SUBST([PACKAGE], [$1])dnl
+  AC_SUBST([VERSION], [$2])],
+ [_AM_SET_OPTIONS([$1])dnl
+ dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+ m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+  AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+ 
+ _AM_IF_OPTION([no-define],,
+ [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+  AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+ 
+ # Some tools Automake needs.
+ AC_REQUIRE([AM_SANITY_CHECK])dnl
+ AC_REQUIRE([AC_ARG_PROGRAM])dnl
+ AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+ AM_MISSING_PROG(AUTOCONF, autoconf)
+ AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+ AM_MISSING_PROG(AUTOHEADER, autoheader)
+ AM_MISSING_PROG(MAKEINFO, makeinfo)
+ AM_PROG_INSTALL_SH
+ AM_PROG_INSTALL_STRIP
+ AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+ # We need awk for the "check" target.  The system "awk" is bad on
+ # some platforms.
+ AC_REQUIRE([AC_PROG_AWK])dnl
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+               [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ 	      		     [_AM_PROG_TAR([v7])])])
+ _AM_IF_OPTION([no-dependencies],,
+ [AC_PROVIDE_IFELSE([AC_PROG_CC],
+                   [_AM_DEPENDENCIES(CC)],
+                   [define([AC_PROG_CC],
+                           defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+ AC_PROVIDE_IFELSE([AC_PROG_CXX],
+                   [_AM_DEPENDENCIES(CXX)],
+                   [define([AC_PROG_CXX],
+                           defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+ AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+                   [_AM_DEPENDENCIES(OBJC)],
+                   [define([AC_PROG_OBJC],
+                           defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+ ])
+ ])
+ 
+ 
+ # When config.status generates a header, we must update the stamp-h file.
+ # This file resides in the same directory as the config header
+ # that is generated.  The stamp files are numbered to have different names.
+ 
+ # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+ # loop where config.status creates the headers, so we can generate
+ # our stamp files there.
+ AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+ [# Compute $1's index in $config_headers.
+ _am_arg=$1
+ _am_stamp_count=1
+ for _am_header in $config_headers :; do
+   case $_am_header in
+     $_am_arg | $_am_arg:* )
+       break ;;
+     * )
+       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+   esac
+ done
+ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+ 
+ # Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # AM_PROG_INSTALL_SH
+ # ------------------
+ # Define $install_sh.
+ AC_DEFUN([AM_PROG_INSTALL_SH],
+ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+ install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+ AC_SUBST(install_sh)])
+ 
+ # Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 2
+ 
+ # Check whether the underlying file-system supports filenames
+ # with a leading dot.  For instance MS-DOS doesn't.
+ AC_DEFUN([AM_SET_LEADING_DOT],
+ [rm -rf .tst 2>/dev/null
+ mkdir .tst 2>/dev/null
+ if test -d .tst; then
+   am__leading_dot=.
+ else
+   am__leading_dot=_
+ fi
+ rmdir .tst 2>/dev/null
+ AC_SUBST([am__leading_dot])])
+ 
+ # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+ # From Jim Meyering
+ 
+ # Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+ # Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 4
+ 
+ AC_DEFUN([AM_MAINTAINER_MODE],
+ [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+   dnl maintainer-mode is disabled by default
+   AC_ARG_ENABLE(maintainer-mode,
+ [  --enable-maintainer-mode  enable make rules and dependencies not useful
+ 			  (and sometimes confusing) to the casual installer],
+       USE_MAINTAINER_MODE=$enableval,
+       USE_MAINTAINER_MODE=no)
+   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+   AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+   MAINT=$MAINTAINER_MODE_TRUE
+   AC_SUBST(MAINT)dnl
+ ]
+ )
+ 
+ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+ 
+ # Check to see how 'make' treats includes.	            -*- Autoconf -*-
+ 
+ # Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 3
+ 
+ # AM_MAKE_INCLUDE()
+ # -----------------
+ # Check to see how make treats includes.
+ AC_DEFUN([AM_MAKE_INCLUDE],
+ [am_make=${MAKE-make}
+ cat > confinc << 'END'
+ am__doit:
+ 	@echo done
+ .PHONY: am__doit
+ END
+ # If we don't find an include directive, just comment out the code.
+ AC_MSG_CHECKING([for style of include used by $am_make])
+ am__include="#"
+ am__quote=
+ _am_result=none
+ # First try GNU make style include.
+ echo "include confinc" > confmf
+ # We grep out `Entering directory' and `Leaving directory'
+ # messages which can occur if `w' ends up in MAKEFLAGS.
+ # In particular we don't look at `^make:' because GNU make might
+ # be invoked under some other name (usually "gmake"), in which
+ # case it prints its new name instead of `make'.
+ if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+    am__include=include
+    am__quote=
+    _am_result=GNU
+ fi
+ # Now try BSD make style include.
+ if test "$am__include" = "#"; then
+    echo '.include "confinc"' > confmf
+    if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+       am__include=.include
+       am__quote="\""
+       _am_result=BSD
+    fi
+ fi
+ AC_SUBST([am__include])
+ AC_SUBST([am__quote])
+ AC_MSG_RESULT([$_am_result])
+ rm -f confinc confmf
+ ])
+ 
+ # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005
+ # Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 5
+ 
+ # AM_PROG_CC_C_O
+ # --------------
+ # Like AC_PROG_CC_C_O, but changed for automake.
+ AC_DEFUN([AM_PROG_CC_C_O],
+ [AC_REQUIRE([AC_PROG_CC_C_O])dnl
+ AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+ AC_REQUIRE_AUX_FILE([compile])dnl
+ # FIXME: we rely on the cache variable name because
+ # there is no other way.
+ set dummy $CC
+ ac_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
+ if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
+    # Losing compiler, so override with the script.
+    # FIXME: It is wrong to rewrite CC.
+    # But if we don't then we get into trouble of one sort or another.
+    # A longer-term fix would be to have automake use am__CC in this case,
+    # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+    CC="$am_aux_dir/compile $CC"
+ fi
+ dnl Make sure AC_PROG_CC is never called again, or it will override our
+ dnl setting of CC.
+ m4_define([AC_PROG_CC],
+           [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
+ ])
+ 
+ # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+ 
+ # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
+ # Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 5
+ 
+ # AM_MISSING_PROG(NAME, PROGRAM)
+ # ------------------------------
+ AC_DEFUN([AM_MISSING_PROG],
+ [AC_REQUIRE([AM_MISSING_HAS_RUN])
+ $1=${$1-"${am_missing_run}$2"}
+ AC_SUBST($1)])
+ 
+ 
+ # AM_MISSING_HAS_RUN
+ # ------------------
+ # Define MISSING if not defined so far and test if it supports --run.
+ # If it does, set am_missing_run to use it, otherwise, to nothing.
+ AC_DEFUN([AM_MISSING_HAS_RUN],
+ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+ AC_REQUIRE_AUX_FILE([missing])dnl
+ test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+ # Use eval to expand $SHELL
+ if eval "$MISSING --run true"; then
+   am_missing_run="$MISSING --run "
+ else
+   am_missing_run=
+   AC_MSG_WARN([`missing' script is too old or missing])
+ fi
+ ])
+ 
+ # Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # AM_PROG_MKDIR_P
+ # ---------------
+ # Check for `mkdir -p'.
+ AC_DEFUN([AM_PROG_MKDIR_P],
+ [AC_PREREQ([2.60])dnl
+ AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+ dnl Automake 1.8 to 1.9.6 used to define mkdir_p.  We now use MKDIR_P,
+ dnl while keeping a definition of mkdir_p for backward compatibility.
+ dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+ dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+ dnl Makefile.ins that do not define MKDIR_P, so we do our own
+ dnl adjustment using top_builddir (which is defined more often than
+ dnl MKDIR_P).
+ AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+ case $mkdir_p in
+   [[\\/$]]* | ?:[[\\/]]*) ;;
+   */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+ esac
+ ])
+ 
+ # Helper functions for option handling.                     -*- Autoconf -*-
+ 
+ # Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 3
+ 
+ # _AM_MANGLE_OPTION(NAME)
+ # -----------------------
+ AC_DEFUN([_AM_MANGLE_OPTION],
+ [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+ 
+ # _AM_SET_OPTION(NAME)
+ # ------------------------------
+ # Set option NAME.  Presently that only means defining a flag for this option.
+ AC_DEFUN([_AM_SET_OPTION],
+ [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+ 
+ # _AM_SET_OPTIONS(OPTIONS)
+ # ----------------------------------
+ # OPTIONS is a space-separated list of Automake options.
+ AC_DEFUN([_AM_SET_OPTIONS],
+ [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+ 
+ # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+ # -------------------------------------------
+ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+ AC_DEFUN([_AM_IF_OPTION],
+ [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+ 
+ # Check to make sure that the build environment is sane.    -*- Autoconf -*-
+ 
+ # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+ # Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 4
+ 
+ # AM_SANITY_CHECK
+ # ---------------
+ AC_DEFUN([AM_SANITY_CHECK],
+ [AC_MSG_CHECKING([whether build environment is sane])
+ # Just in case
+ sleep 1
+ echo timestamp > conftest.file
+ # Do `set' in a subshell so we don't clobber the current shell's
+ # arguments.  Must try -L first in case configure is actually a
+ # symlink; some systems play weird games with the mod time of symlinks
+ # (eg FreeBSD returns the mod time of the symlink's containing
+ # directory).
+ if (
+    set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+    if test "$[*]" = "X"; then
+       # -L didn't work.
+       set X `ls -t $srcdir/configure conftest.file`
+    fi
+    rm -f conftest.file
+    if test "$[*]" != "X $srcdir/configure conftest.file" \
+       && test "$[*]" != "X conftest.file $srcdir/configure"; then
+ 
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+ alias in your environment])
+    fi
+ 
+    test "$[2]" = conftest.file
+    )
+ then
+    # Ok.
+    :
+ else
+    AC_MSG_ERROR([newly created file is older than distributed files!
+ Check your system clock])
+ fi
+ AC_MSG_RESULT(yes)])
+ 
+ # Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # AM_PROG_INSTALL_STRIP
+ # ---------------------
+ # One issue with vendor `install' (even GNU) is that you can't
+ # specify the program used to strip binaries.  This is especially
+ # annoying in cross-compiling environments, where the build's strip
+ # is unlikely to handle the host's binaries.
+ # Fortunately install-sh will honor a STRIPPROG variable, so we
+ # always use install-sh in `make install-strip', and initialize
+ # STRIPPROG with the value of the STRIP variable (set by the user).
+ AC_DEFUN([AM_PROG_INSTALL_STRIP],
+ [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+ # Installed binaries are usually stripped using `strip' when the user
+ # run `make install-strip'.  However `strip' might not be the right
+ # tool to use in cross-compilation environments, therefore Automake
+ # will honor the `STRIP' environment variable to overrule this program.
+ dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+ if test "$cross_compiling" != no; then
+   AC_CHECK_TOOL([STRIP], [strip], :)
+ fi
+ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+ AC_SUBST([INSTALL_STRIP_PROGRAM])])
+ 
+ # Copyright (C) 2006  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # _AM_SUBST_NOTMAKE(VARIABLE)
+ # ---------------------------
+ # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+ # This macro is traced by Automake.
+ AC_DEFUN([_AM_SUBST_NOTMAKE])
+ 
+ # Check how to create a tarball.                            -*- Autoconf -*-
+ 
+ # Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 2
+ 
+ # _AM_PROG_TAR(FORMAT)
+ # --------------------
+ # Check how to create a tarball in format FORMAT.
+ # FORMAT should be one of `v7', `ustar', or `pax'.
+ #
+ # Substitute a variable $(am__tar) that is a command
+ # writing to stdout a FORMAT-tarball containing the directory
+ # $tardir.
+ #     tardir=directory && $(am__tar) > result.tar
+ #
+ # Substitute a variable $(am__untar) that extract such
+ # a tarball read from stdin.
+ #     $(am__untar) < result.tar
+ AC_DEFUN([_AM_PROG_TAR],
+ [# Always define AMTAR for backward compatibility.
+ AM_MISSING_PROG([AMTAR], [tar])
+ m4_if([$1], [v7],
+      [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+      [m4_case([$1], [ustar],, [pax],,
+               [m4_fatal([Unknown tar format])])
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+ # Loop over all known methods to create a tar archive until one works.
+ _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+ # Do not fold the above two line into one, because Tru64 sh and
+ # Solaris sh will not grok spaces in the rhs of `-'.
+ for _am_tool in $_am_tools
+ do
+   case $_am_tool in
+   gnutar)
+     for _am_tar in tar gnutar gtar;
+     do
+       AM_RUN_LOG([$_am_tar --version]) && break
+     done
+     am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+     am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+     am__untar="$_am_tar -xf -"
+     ;;
+   plaintar)
+     # Must skip GNU tar: if it does not support --format= it doesn't create
+     # ustar tarball either.
+     (tar --version) >/dev/null 2>&1 && continue
+     am__tar='tar chf - "$$tardir"'
+     am__tar_='tar chf - "$tardir"'
+     am__untar='tar xf -'
+     ;;
+   pax)
+     am__tar='pax -L -x $1 -w "$$tardir"'
+     am__tar_='pax -L -x $1 -w "$tardir"'
+     am__untar='pax -r'
+     ;;
+   cpio)
+     am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+     am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+     am__untar='cpio -i -H $1 -d'
+     ;;
+   none)
+     am__tar=false
+     am__tar_=false
+     am__untar=false
+     ;;
+   esac
+ 
+   # If the value was cached, stop now.  We just wanted to have am__tar
+   # and am__untar set.
+   test -n "${am_cv_prog_tar_$1}" && break
+ 
+   # tar/untar a dummy directory, and stop if the command works
+   rm -rf conftest.dir
+   mkdir conftest.dir
+   echo GrepMe > conftest.dir/file
+   AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+   rm -rf conftest.dir
+   if test -s conftest.tar; then
+     AM_RUN_LOG([$am__untar <conftest.tar])
+     grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+   fi
+ done
+ rm -rf conftest.dir
+ 
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+ AC_SUBST([am__tar])
+ AC_SUBST([am__untar])
+ ]) # _AM_PROG_TAR
+ 
+ m4_include([gnulib/m4/alloca.m4])
+ m4_include([gnulib/m4/argz.m4])
+ m4_include([gnulib/m4/codeset.m4])
+ m4_include([gnulib/m4/eealloc.m4])
+ m4_include([gnulib/m4/environ.m4])
+ m4_include([gnulib/m4/error.m4])
+ m4_include([gnulib/m4/exitfail.m4])
+ m4_include([gnulib/m4/extensions.m4])
+ m4_include([gnulib/m4/getopt.m4])
+ m4_include([gnulib/m4/gettext.m4])
+ m4_include([gnulib/m4/gettimeofday.m4])
+ m4_include([gnulib/m4/glibc21.m4])
+ m4_include([gnulib/m4/gnulib-common.m4])
+ m4_include([gnulib/m4/gnulib-comp.m4])
+ m4_include([gnulib/m4/iconv.m4])
+ m4_include([gnulib/m4/include_next.m4])
+ m4_include([gnulib/m4/inline.m4])
+ m4_include([gnulib/m4/intlmacosx.m4])
+ m4_include([gnulib/m4/lib-ld.m4])
+ m4_include([gnulib/m4/lib-link.m4])
+ m4_include([gnulib/m4/lib-prefix.m4])
+ m4_include([gnulib/m4/localcharset.m4])
+ m4_include([gnulib/m4/longlong.m4])
+ m4_include([gnulib/m4/malloc.m4])
+ m4_include([gnulib/m4/malloca.m4])
+ m4_include([gnulib/m4/mbchar.m4])
+ m4_include([gnulib/m4/mbiter.m4])
+ m4_include([gnulib/m4/mbrtowc.m4])
+ m4_include([gnulib/m4/mbscasecmp.m4])
+ m4_include([gnulib/m4/mbschr.m4])
+ m4_include([gnulib/m4/mbslen.m4])
+ m4_include([gnulib/m4/mbsncasecmp.m4])
+ m4_include([gnulib/m4/mbsstr.m4])
+ m4_include([gnulib/m4/mbstate_t.m4])
+ m4_include([gnulib/m4/mbswidth.m4])
+ m4_include([gnulib/m4/memchr.m4])
+ m4_include([gnulib/m4/memcmp.m4])
+ m4_include([gnulib/m4/memcpy.m4])
+ m4_include([gnulib/m4/memmem.m4])
+ m4_include([gnulib/m4/memmove.m4])
+ m4_include([gnulib/m4/mempcpy.m4])
+ m4_include([gnulib/m4/mkstemp.m4])
+ m4_include([gnulib/m4/nls.m4])
+ m4_include([gnulib/m4/onceonly.m4])
+ m4_include([gnulib/m4/po.m4])
+ m4_include([gnulib/m4/progtest.m4])
+ m4_include([gnulib/m4/setenv.m4])
+ m4_include([gnulib/m4/stdbool.m4])
+ m4_include([gnulib/m4/stdint.m4])
+ m4_include([gnulib/m4/stdlib_h.m4])
+ m4_include([gnulib/m4/stpcpy.m4])
+ m4_include([gnulib/m4/strdup.m4])
+ m4_include([gnulib/m4/strerror.m4])
+ m4_include([gnulib/m4/string_h.m4])
+ m4_include([gnulib/m4/strndup.m4])
+ m4_include([gnulib/m4/strnlen.m4])
+ m4_include([gnulib/m4/sys_stat_h.m4])
+ m4_include([gnulib/m4/sys_time_h.m4])
+ m4_include([gnulib/m4/tempname.m4])
+ m4_include([gnulib/m4/unistd_h.m4])
+ m4_include([gnulib/m4/wchar.m4])
+ m4_include([gnulib/m4/wchar_t.m4])
+ m4_include([gnulib/m4/wctype.m4])
+ m4_include([gnulib/m4/wcwidth.m4])
+ m4_include([gnulib/m4/wint_t.m4])
+ m4_include([gnulib/m4/xalloc.m4])
diff -Nrc2 texinfo-4.12/build-aux/compile texinfo-4.13/build-aux/compile
*** texinfo-4.12/build-aux/compile	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/build-aux/compile	Sun Jul  8 05:58:32 2007
***************
*** 0 ****
--- 1,142 ----
+ #! /bin/sh
+ # Wrapper for compilers which do not understand `-c -o'.
+ 
+ scriptversion=2005-05-14.22
+ 
+ # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+ # Written by Tom Tromey <tromey@cygnus.com>.
+ #
+ # 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ 
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+ 
+ # This file is maintained in Automake, please report
+ # bugs to <bug-automake@gnu.org> or send patches to
+ # <automake-patches@gnu.org>.
+ 
+ case $1 in
+   '')
+      echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+      exit 1;
+      ;;
+   -h | --h*)
+     cat <<\EOF
+ Usage: compile [--help] [--version] PROGRAM [ARGS]
+ 
+ Wrapper for compilers which do not understand `-c -o'.
+ Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+ arguments, and rename the output as expected.
+ 
+ If you are trying to build a whole package this is not the
+ right script to run: please start by reading the file `INSTALL'.
+ 
+ Report bugs to <bug-automake@gnu.org>.
+ EOF
+     exit $?
+     ;;
+   -v | --v*)
+     echo "compile $scriptversion"
+     exit $?
+     ;;
+ esac
+ 
+ ofile=
+ cfile=
+ eat=
+ 
+ for arg
+ do
+   if test -n "$eat"; then
+     eat=
+   else
+     case $1 in
+       -o)
+ 	# configure might choose to run compile as `compile cc -o foo foo.c'.
+ 	# So we strip `-o arg' only if arg is an object.
+ 	eat=1
+ 	case $2 in
+ 	  *.o | *.obj)
+ 	    ofile=$2
+ 	    ;;
+ 	  *)
+ 	    set x "$@" -o "$2"
+ 	    shift
+ 	    ;;
+ 	esac
+ 	;;
+       *.c)
+ 	cfile=$1
+ 	set x "$@" "$1"
+ 	shift
+ 	;;
+       *)
+ 	set x "$@" "$1"
+ 	shift
+ 	;;
+     esac
+   fi
+   shift
+ done
+ 
+ if test -z "$ofile" || test -z "$cfile"; then
+   # If no `-o' option was seen then we might have been invoked from a
+   # pattern rule where we don't need one.  That is ok -- this is a
+   # normal compilation that the losing compiler can handle.  If no
+   # `.c' file was seen then we are probably linking.  That is also
+   # ok.
+   exec "$@"
+ fi
+ 
+ # Name of file we expect compiler to create.
+ cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+ 
+ # Create the lock directory.
+ # Note: use `[/.-]' here to ensure that we don't use the same name
+ # that we are using for the .o file.  Also, base the name on the expected
+ # object file name, since that is what matters with a parallel build.
+ lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+ while true; do
+   if mkdir "$lockdir" >/dev/null 2>&1; then
+     break
+   fi
+   sleep 1
+ done
+ # FIXME: race condition here if user kills between mkdir and trap.
+ trap "rmdir '$lockdir'; exit 1" 1 2 15
+ 
+ # Run the compile.
+ "$@"
+ ret=$?
+ 
+ if test -f "$cofile"; then
+   mv "$cofile" "$ofile"
+ elif test -f "${cofile}bj"; then
+   mv "${cofile}bj" "$ofile"
+ fi
+ 
+ rmdir "$lockdir"
+ exit $ret
+ 
+ # Local Variables:
+ # mode: shell-script
+ # sh-indentation: 2
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
+ # time-stamp-start: "scriptversion="
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
+ # time-stamp-end: "$"
+ # End:
diff -Nrc2 texinfo-4.12/build-aux/config.guess texinfo-4.13/build-aux/config.guess
*** texinfo-4.12/build-aux/config.guess	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/build-aux/config.guess	Tue Dec 25 15:57:16 2007
***************
*** 0 ****
--- 1,1500 ----
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+ #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ #   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+ #   Inc.
+ 
+ timestamp='2006-06-06'
+ 
+ # This file 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., 51 Franklin Street - Fifth Floor, Boston, MA
+ # 02110-1301, USA.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+ 
+ 
+ # Originally written by Per Bothner <per@bothner.com>.
+ # Please send patches to <config-patches@gnu.org>.  Submit a context
+ # diff and a properly formatted ChangeLog entry.
+ #
+ # This script attempts to guess a canonical system name similar to
+ # config.sub.  If it succeeds, it prints the system name on stdout, and
+ # exits with 0.  Otherwise, it exits with 1.
+ #
+ # The plan is that this can be called by configure scripts if you
+ # don't specify an explicit build system type.
+ 
+ me=`echo "$0" | sed -e 's,.*/,,'`
+ 
+ usage="\
+ Usage: $0 [OPTION]
+ 
+ Output the configuration name of the system \`$me' is run on.
+ 
+ Operation modes:
+   -h, --help         print this help, then exit
+   -t, --time-stamp   print date of last modification, then exit
+   -v, --version      print version number, then exit
+ 
+ Report bugs and patches to <config-patches@gnu.org>."
+ 
+ version="\
+ GNU config.guess ($timestamp)
+ 
+ Originally written by Per Bothner.
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Free Software Foundation, Inc.
+ 
+ This is free software; see the source for copying conditions.  There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+ 
+ help="
+ Try \`$me --help' for more information."
+ 
+ # Parse command line
+ while test $# -gt 0 ; do
+   case $1 in
+     --time-stamp | --time* | -t )
+        echo "$timestamp" ; exit ;;
+     --version | -v )
+        echo "$version" ; exit ;;
+     --help | --h* | -h )
+        echo "$usage"; exit ;;
+     -- )     # Stop option processing
+        shift; break ;;
+     - )	# Use stdin as input.
+        break ;;
+     -* )
+        echo "$me: invalid option $1$help" >&2
+        exit 1 ;;
+     * )
+        break ;;
+   esac
+ done
+ 
+ if test $# != 0; then
+   echo "$me: too many arguments$help" >&2
+   exit 1
+ fi
+ 
+ trap 'exit 1' 1 2 15
+ 
+ # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+ # compiler to aid in system detection is discouraged as it requires
+ # temporary files to be created and, as you can see below, it is a
+ # headache to deal with in a portable fashion.
+ 
+ # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+ # use `HOST_CC' if defined, but it is deprecated.
+ 
+ # Portable tmp directory creation inspired by the Autoconf team.
+ 
+ set_cc_for_build='
+ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+ : ${TMPDIR=/tmp} ;
+  { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+ dummy=$tmp/dummy ;
+ tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+ case $CC_FOR_BUILD,$HOST_CC,$CC in
+  ,,)    echo "int x;" > $dummy.c ;
+ 	for c in cc gcc c89 c99 ; do
+ 	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ 	     CC_FOR_BUILD="$c"; break ;
+ 	  fi ;
+ 	done ;
+ 	if test x"$CC_FOR_BUILD" = x ; then
+ 	  CC_FOR_BUILD=no_compiler_found ;
+ 	fi
+ 	;;
+  ,,*)   CC_FOR_BUILD=$CC ;;
+  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+ esac ; set_cc_for_build= ;'
+ 
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+ # (ghazi@noc.rutgers.edu 1994-08-24)
+ if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ 	PATH=$PATH:/.attbin ; export PATH
+ fi
+ 
+ UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+ UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+ 
+ # Note: order is significant - the case branches are not exclusive.
+ 
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+     *:NetBSD:*:*)
+ 	# NetBSD (nbsd) targets should (where applicable) match one or
+ 	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ 	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+ 	# switched to ELF, *-*-netbsd* would select the old
+ 	# object file format.  This provides both forward
+ 	# compatibility and a consistent mechanism for selecting the
+ 	# object file format.
+ 	#
+ 	# Note: NetBSD doesn't particularly care about the vendor
+ 	# portion of the name.  We always set it to "unknown".
+ 	sysctl="sysctl -n hw.machine_arch"
+ 	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ 	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ 	case "${UNAME_MACHINE_ARCH}" in
+ 	    armeb) machine=armeb-unknown ;;
+ 	    arm*) machine=arm-unknown ;;
+ 	    sh3el) machine=shl-unknown ;;
+ 	    sh3eb) machine=sh-unknown ;;
+ 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ 	esac
+ 	# The Operating System including object format, if it has switched
+ 	# to ELF recently, or will in the future.
+ 	case "${UNAME_MACHINE_ARCH}" in
+ 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ 		eval $set_cc_for_build
+ 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ 			| grep __ELF__ >/dev/null
+ 		then
+ 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ 		    # Return netbsd for either.  FIX?
+ 		    os=netbsd
+ 		else
+ 		    os=netbsdelf
+ 		fi
+ 		;;
+ 	    *)
+ 	        os=netbsd
+ 		;;
+ 	esac
+ 	# The OS release
+ 	# Debian GNU/NetBSD machines have a different userland, and
+ 	# thus, need a distinct triplet. However, they do not need
+ 	# kernel version information, so it can be replaced with a
+ 	# suitable tag, in the style of linux-gnu.
+ 	case "${UNAME_VERSION}" in
+ 	    Debian*)
+ 		release='-gnu'
+ 		;;
+ 	    *)
+ 		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ 		;;
+ 	esac
+ 	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ 	# contains redundant information, the shorter form:
+ 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ 	echo "${machine}-${os}${release}"
+ 	exit ;;
+     *:OpenBSD:*:*)
+ 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ 	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ 	exit ;;
+     *:ekkoBSD:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ 	exit ;;
+     *:SolidBSD:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ 	exit ;;
+     macppc:MirBSD:*:*)
+ 	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+ 	exit ;;
+     *:MirBSD:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ 	exit ;;
+     alpha:OSF1:*:*)
+ 	case $UNAME_RELEASE in
+ 	*4.0)
+ 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ 		;;
+ 	*5.*)
+ 	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ 		;;
+ 	esac
+ 	# According to Compaq, /usr/sbin/psrinfo has been available on
+ 	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+ 	# covers most systems running today.  This code pipes the CPU
+ 	# types through head -n 1, so we only detect the type of CPU 0.
+ 	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ 	case "$ALPHA_CPU_TYPE" in
+ 	    "EV4 (21064)")
+ 		UNAME_MACHINE="alpha" ;;
+ 	    "EV4.5 (21064)")
+ 		UNAME_MACHINE="alpha" ;;
+ 	    "LCA4 (21066/21068)")
+ 		UNAME_MACHINE="alpha" ;;
+ 	    "EV5 (21164)")
+ 		UNAME_MACHINE="alphaev5" ;;
+ 	    "EV5.6 (21164A)")
+ 		UNAME_MACHINE="alphaev56" ;;
+ 	    "EV5.6 (21164PC)")
+ 		UNAME_MACHINE="alphapca56" ;;
+ 	    "EV5.7 (21164PC)")
+ 		UNAME_MACHINE="alphapca57" ;;
+ 	    "EV6 (21264)")
+ 		UNAME_MACHINE="alphaev6" ;;
+ 	    "EV6.7 (21264A)")
+ 		UNAME_MACHINE="alphaev67" ;;
+ 	    "EV6.8CB (21264C)")
+ 		UNAME_MACHINE="alphaev68" ;;
+ 	    "EV6.8AL (21264B)")
+ 		UNAME_MACHINE="alphaev68" ;;
+ 	    "EV6.8CX (21264D)")
+ 		UNAME_MACHINE="alphaev68" ;;
+ 	    "EV6.9A (21264/EV69A)")
+ 		UNAME_MACHINE="alphaev69" ;;
+ 	    "EV7 (21364)")
+ 		UNAME_MACHINE="alphaev7" ;;
+ 	    "EV7.9 (21364A)")
+ 		UNAME_MACHINE="alphaev79" ;;
+ 	esac
+ 	# A Pn.n version is a patched version.
+ 	# A Vn.n version is a released version.
+ 	# A Tn.n version is a released field test version.
+ 	# A Xn.n version is an unreleased experimental baselevel.
+ 	# 1.2 uses "1.2" for uname -r.
+ 	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ 	exit ;;
+     Alpha\ *:Windows_NT*:*)
+ 	# How do we know it's Interix rather than the generic POSIX subsystem?
+ 	# Should we change UNAME_MACHINE based on the output of uname instead
+ 	# of the specific Alpha model?
+ 	echo alpha-pc-interix
+ 	exit ;;
+     21064:Windows_NT:50:3)
+ 	echo alpha-dec-winnt3.5
+ 	exit ;;
+     Amiga*:UNIX_System_V:4.0:*)
+ 	echo m68k-unknown-sysv4
+ 	exit ;;
+     *:[Aa]miga[Oo][Ss]:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-amigaos
+ 	exit ;;
+     *:[Mm]orph[Oo][Ss]:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-morphos
+ 	exit ;;
+     *:OS/390:*:*)
+ 	echo i370-ibm-openedition
+ 	exit ;;
+     *:z/VM:*:*)
+ 	echo s390-ibm-zvmoe
+ 	exit ;;
+     *:OS400:*:*)
+         echo powerpc-ibm-os400
+ 	exit ;;
+     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ 	echo arm-acorn-riscix${UNAME_RELEASE}
+ 	exit ;;
+     arm:riscos:*:*|arm:RISCOS:*:*)
+ 	echo arm-unknown-riscos
+ 	exit ;;
+     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ 	echo hppa1.1-hitachi-hiuxmpp
+ 	exit ;;
+     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ 	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ 	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ 		echo pyramid-pyramid-sysv3
+ 	else
+ 		echo pyramid-pyramid-bsd
+ 	fi
+ 	exit ;;
+     NILE*:*:*:dcosx)
+ 	echo pyramid-pyramid-svr4
+ 	exit ;;
+     DRS?6000:unix:4.0:6*)
+ 	echo sparc-icl-nx6
+ 	exit ;;
+     DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ 	case `/usr/bin/uname -p` in
+ 	    sparc) echo sparc-icl-nx7; exit ;;
+ 	esac ;;
+     sun4H:SunOS:5.*:*)
+ 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ 	exit ;;
+     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ 	exit ;;
+     i86pc:SunOS:5.*:*)
+ 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ 	exit ;;
+     sun4*:SunOS:6*:*)
+ 	# According to config.sub, this is the proper way to canonicalize
+ 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+ 	# it's likely to be more like Solaris than SunOS4.
+ 	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ 	exit ;;
+     sun4*:SunOS:*:*)
+ 	case "`/usr/bin/arch -k`" in
+ 	    Series*|S4*)
+ 		UNAME_RELEASE=`uname -v`
+ 		;;
+ 	esac
+ 	# Japanese Language versions have a version number like `4.1.3-JL'.
+ 	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ 	exit ;;
+     sun3*:SunOS:*:*)
+ 	echo m68k-sun-sunos${UNAME_RELEASE}
+ 	exit ;;
+     sun*:*:4.2BSD:*)
+ 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ 	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ 	case "`/bin/arch`" in
+ 	    sun3)
+ 		echo m68k-sun-sunos${UNAME_RELEASE}
+ 		;;
+ 	    sun4)
+ 		echo sparc-sun-sunos${UNAME_RELEASE}
+ 		;;
+ 	esac
+ 	exit ;;
+     aushp:SunOS:*:*)
+ 	echo sparc-auspex-sunos${UNAME_RELEASE}
+ 	exit ;;
+     # The situation for MiNT is a little confusing.  The machine name
+     # can be virtually everything (everything which is not
+     # "atarist" or "atariste" at least should have a processor
+     # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+     # to the lowercase version "mint" (or "freemint").  Finally
+     # the system name "TOS" denotes a system which is actually not
+     # MiNT.  But MiNT is downward compatible to TOS, so this should
+     # be no problem.
+     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+         echo m68k-atari-mint${UNAME_RELEASE}
+ 	exit ;;
+     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ 	echo m68k-atari-mint${UNAME_RELEASE}
+         exit ;;
+     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+         echo m68k-atari-mint${UNAME_RELEASE}
+ 	exit ;;
+     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+         echo m68k-milan-mint${UNAME_RELEASE}
+         exit ;;
+     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+         echo m68k-hades-mint${UNAME_RELEASE}
+         exit ;;
+     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+         echo m68k-unknown-mint${UNAME_RELEASE}
+         exit ;;
+     m68k:machten:*:*)
+ 	echo m68k-apple-machten${UNAME_RELEASE}
+ 	exit ;;
+     powerpc:machten:*:*)
+ 	echo powerpc-apple-machten${UNAME_RELEASE}
+ 	exit ;;
+     RISC*:Mach:*:*)
+ 	echo mips-dec-mach_bsd4.3
+ 	exit ;;
+     RISC*:ULTRIX:*:*)
+ 	echo mips-dec-ultrix${UNAME_RELEASE}
+ 	exit ;;
+     VAX*:ULTRIX*:*:*)
+ 	echo vax-dec-ultrix${UNAME_RELEASE}
+ 	exit ;;
+     2020:CLIX:*:* | 2430:CLIX:*:*)
+ 	echo clipper-intergraph-clix${UNAME_RELEASE}
+ 	exit ;;
+     mips:*:*:UMIPS | mips:*:*:RISCos)
+ 	eval $set_cc_for_build
+ 	sed 's/^	//' << EOF >$dummy.c
+ #ifdef __cplusplus
+ #include <stdio.h>  /* for printf() prototype */
+ 	int main (int argc, char *argv[]) {
+ #else
+ 	int main (argc, argv) int argc; char *argv[]; {
+ #endif
+ 	#if defined (host_mips) && defined (MIPSEB)
+ 	#if defined (SYSTYPE_SYSV)
+ 	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ 	#endif
+ 	#if defined (SYSTYPE_SVR4)
+ 	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ 	#endif
+ 	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ 	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ 	#endif
+ 	#endif
+ 	  exit (-1);
+ 	}
+ EOF
+ 	$CC_FOR_BUILD -o $dummy $dummy.c &&
+ 	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ 	  SYSTEM_NAME=`$dummy $dummyarg` &&
+ 	    { echo "$SYSTEM_NAME"; exit; }
+ 	echo mips-mips-riscos${UNAME_RELEASE}
+ 	exit ;;
+     Motorola:PowerMAX_OS:*:*)
+ 	echo powerpc-motorola-powermax
+ 	exit ;;
+     Motorola:*:4.3:PL8-*)
+ 	echo powerpc-harris-powermax
+ 	exit ;;
+     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ 	echo powerpc-harris-powermax
+ 	exit ;;
+     Night_Hawk:Power_UNIX:*:*)
+ 	echo powerpc-harris-powerunix
+ 	exit ;;
+     m88k:CX/UX:7*:*)
+ 	echo m88k-harris-cxux7
+ 	exit ;;
+     m88k:*:4*:R4*)
+ 	echo m88k-motorola-sysv4
+ 	exit ;;
+     m88k:*:3*:R3*)
+ 	echo m88k-motorola-sysv3
+ 	exit ;;
+     AViiON:dgux:*:*)
+         # DG/UX returns AViiON for all architectures
+         UNAME_PROCESSOR=`/usr/bin/uname -p`
+ 	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ 	then
+ 	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ 	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+ 	    then
+ 		echo m88k-dg-dgux${UNAME_RELEASE}
+ 	    else
+ 		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ 	    fi
+ 	else
+ 	    echo i586-dg-dgux${UNAME_RELEASE}
+ 	fi
+  	exit ;;
+     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+ 	echo m88k-dolphin-sysv3
+ 	exit ;;
+     M88*:*:R3*:*)
+ 	# Delta 88k system running SVR3
+ 	echo m88k-motorola-sysv3
+ 	exit ;;
+     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ 	echo m88k-tektronix-sysv3
+ 	exit ;;
+     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ 	echo m68k-tektronix-bsd
+ 	exit ;;
+     *:IRIX*:*:*)
+ 	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ 	exit ;;
+     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ 	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+ 	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+     i*86:AIX:*:*)
+ 	echo i386-ibm-aix
+ 	exit ;;
+     ia64:AIX:*:*)
+ 	if [ -x /usr/bin/oslevel ] ; then
+ 		IBM_REV=`/usr/bin/oslevel`
+ 	else
+ 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ 	fi
+ 	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ 	exit ;;
+     *:AIX:2:3)
+ 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ 		eval $set_cc_for_build
+ 		sed 's/^		//' << EOF >$dummy.c
+ 		#include <sys/systemcfg.h>
+ 
+ 		main()
+ 			{
+ 			if (!__power_pc())
+ 				exit(1);
+ 			puts("powerpc-ibm-aix3.2.5");
+ 			exit(0);
+ 			}
+ EOF
+ 		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ 		then
+ 			echo "$SYSTEM_NAME"
+ 		else
+ 			echo rs6000-ibm-aix3.2.5
+ 		fi
+ 	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ 		echo rs6000-ibm-aix3.2.4
+ 	else
+ 		echo rs6000-ibm-aix3.2
+ 	fi
+ 	exit ;;
+     *:AIX:*:[45])
+ 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ 		IBM_ARCH=rs6000
+ 	else
+ 		IBM_ARCH=powerpc
+ 	fi
+ 	if [ -x /usr/bin/oslevel ] ; then
+ 		IBM_REV=`/usr/bin/oslevel`
+ 	else
+ 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ 	fi
+ 	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ 	exit ;;
+     *:AIX:*:*)
+ 	echo rs6000-ibm-aix
+ 	exit ;;
+     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ 	echo romp-ibm-bsd4.4
+ 	exit ;;
+     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+ 	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+ 	exit ;;                             # report: romp-ibm BSD 4.3
+     *:BOSX:*:*)
+ 	echo rs6000-bull-bosx
+ 	exit ;;
+     DPX/2?00:B.O.S.:*:*)
+ 	echo m68k-bull-sysv3
+ 	exit ;;
+     9000/[34]??:4.3bsd:1.*:*)
+ 	echo m68k-hp-bsd
+ 	exit ;;
+     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ 	echo m68k-hp-bsd4.4
+ 	exit ;;
+     9000/[34678]??:HP-UX:*:*)
+ 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ 	case "${UNAME_MACHINE}" in
+ 	    9000/31? )            HP_ARCH=m68000 ;;
+ 	    9000/[34]?? )         HP_ARCH=m68k ;;
+ 	    9000/[678][0-9][0-9])
+ 		if [ -x /usr/bin/getconf ]; then
+ 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                     sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                     case "${sc_cpu_version}" in
+                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                       528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                       532)                      # CPU_PA_RISC2_0
+                         case "${sc_kernel_bits}" in
+                           32) HP_ARCH="hppa2.0n" ;;
+                           64) HP_ARCH="hppa2.0w" ;;
+ 			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                         esac ;;
+                     esac
+ 		fi
+ 		if [ "${HP_ARCH}" = "" ]; then
+ 		    eval $set_cc_for_build
+ 		    sed 's/^              //' << EOF >$dummy.c
+ 
+               #define _HPUX_SOURCE
+               #include <stdlib.h>
+               #include <unistd.h>
+ 
+               int main ()
+               {
+               #if defined(_SC_KERNEL_BITS)
+                   long bits = sysconf(_SC_KERNEL_BITS);
+               #endif
+                   long cpu  = sysconf (_SC_CPU_VERSION);
+ 
+                   switch (cpu)
+               	{
+               	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+               	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+               	case CPU_PA_RISC2_0:
+               #if defined(_SC_KERNEL_BITS)
+               	    switch (bits)
+               		{
+               		case 64: puts ("hppa2.0w"); break;
+               		case 32: puts ("hppa2.0n"); break;
+               		default: puts ("hppa2.0"); break;
+               		} break;
+               #else  /* !defined(_SC_KERNEL_BITS) */
+               	    puts ("hppa2.0"); break;
+               #endif
+               	default: puts ("hppa1.0"); break;
+               	}
+                   exit (0);
+               }
+ EOF
+ 		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ 		    test -z "$HP_ARCH" && HP_ARCH=hppa
+ 		fi ;;
+ 	esac
+ 	if [ ${HP_ARCH} = "hppa2.0w" ]
+ 	then
+ 	    eval $set_cc_for_build
+ 
+ 	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ 	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+ 	    # generating 64-bit code.  GNU and HP use different nomenclature:
+ 	    #
+ 	    # $ CC_FOR_BUILD=cc ./config.guess
+ 	    # => hppa2.0w-hp-hpux11.23
+ 	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ 	    # => hppa64-hp-hpux11.23
+ 
+ 	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ 		grep __LP64__ >/dev/null
+ 	    then
+ 		HP_ARCH="hppa2.0w"
+ 	    else
+ 		HP_ARCH="hppa64"
+ 	    fi
+ 	fi
+ 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ 	exit ;;
+     ia64:HP-UX:*:*)
+ 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ 	echo ia64-hp-hpux${HPUX_REV}
+ 	exit ;;
+     3050*:HI-UX:*:*)
+ 	eval $set_cc_for_build
+ 	sed 's/^	//' << EOF >$dummy.c
+ 	#include <unistd.h>
+ 	int
+ 	main ()
+ 	{
+ 	  long cpu = sysconf (_SC_CPU_VERSION);
+ 	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ 	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+ 	     results, however.  */
+ 	  if (CPU_IS_PA_RISC (cpu))
+ 	    {
+ 	      switch (cpu)
+ 		{
+ 		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ 		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ 		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ 		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+ 		}
+ 	    }
+ 	  else if (CPU_IS_HP_MC68K (cpu))
+ 	    puts ("m68k-hitachi-hiuxwe2");
+ 	  else puts ("unknown-hitachi-hiuxwe2");
+ 	  exit (0);
+ 	}
+ EOF
+ 	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ 		{ echo "$SYSTEM_NAME"; exit; }
+ 	echo unknown-hitachi-hiuxwe2
+ 	exit ;;
+     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ 	echo hppa1.1-hp-bsd
+ 	exit ;;
+     9000/8??:4.3bsd:*:*)
+ 	echo hppa1.0-hp-bsd
+ 	exit ;;
+     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ 	echo hppa1.0-hp-mpeix
+ 	exit ;;
+     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ 	echo hppa1.1-hp-osf
+ 	exit ;;
+     hp8??:OSF1:*:*)
+ 	echo hppa1.0-hp-osf
+ 	exit ;;
+     i*86:OSF1:*:*)
+ 	if [ -x /usr/sbin/sysversion ] ; then
+ 	    echo ${UNAME_MACHINE}-unknown-osf1mk
+ 	else
+ 	    echo ${UNAME_MACHINE}-unknown-osf1
+ 	fi
+ 	exit ;;
+     parisc*:Lites*:*:*)
+ 	echo hppa1.1-hp-lites
+ 	exit ;;
+     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ 	echo c1-convex-bsd
+         exit ;;
+     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ 	if getsysinfo -f scalar_acc
+ 	then echo c32-convex-bsd
+ 	else echo c2-convex-bsd
+ 	fi
+         exit ;;
+     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ 	echo c34-convex-bsd
+         exit ;;
+     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ 	echo c38-convex-bsd
+         exit ;;
+     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ 	echo c4-convex-bsd
+         exit ;;
+     CRAY*Y-MP:*:*:*)
+ 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ 	exit ;;
+     CRAY*[A-Z]90:*:*:*)
+ 	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ 	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ 	      -e 's/\.[^.]*$/.X/'
+ 	exit ;;
+     CRAY*TS:*:*:*)
+ 	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ 	exit ;;
+     CRAY*T3E:*:*:*)
+ 	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ 	exit ;;
+     CRAY*SV1:*:*:*)
+ 	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ 	exit ;;
+     *:UNICOS/mp:*:*)
+ 	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ 	exit ;;
+     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+         exit ;;
+     5000:UNIX_System_V:4.*:*)
+         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+         FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+         echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ 	exit ;;
+     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ 	exit ;;
+     sparc*:BSD/OS:*:*)
+ 	echo sparc-unknown-bsdi${UNAME_RELEASE}
+ 	exit ;;
+     *:BSD/OS:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ 	exit ;;
+     *:FreeBSD:*:*)
+ 	case ${UNAME_MACHINE} in
+ 	    pc98)
+ 		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ 	    amd64)
+ 		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ 	    *)
+ 		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ 	esac
+ 	exit ;;
+     i*:CYGWIN*:*)
+ 	echo ${UNAME_MACHINE}-pc-cygwin
+ 	exit ;;
+     i*:MINGW*:*)
+ 	echo ${UNAME_MACHINE}-pc-mingw32
+ 	exit ;;
+     i*:windows32*:*)
+     	# uname -m includes "-pc" on this system.
+     	echo ${UNAME_MACHINE}-mingw32
+ 	exit ;;
+     i*:PW*:*)
+ 	echo ${UNAME_MACHINE}-pc-pw32
+ 	exit ;;
+     x86:Interix*:[345]*)
+ 	echo i586-pc-interix${UNAME_RELEASE}
+ 	exit ;;
+     EM64T:Interix*:[345]*)
+ 	echo x86_64-unknown-interix${UNAME_RELEASE}
+ 	exit ;;
+     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ 	echo i${UNAME_MACHINE}-pc-mks
+ 	exit ;;
+     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ 	# How do we know it's Interix rather than the generic POSIX subsystem?
+ 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ 	# UNAME_MACHINE based on the output of uname instead of i386?
+ 	echo i586-pc-interix
+ 	exit ;;
+     i*:UWIN*:*)
+ 	echo ${UNAME_MACHINE}-pc-uwin
+ 	exit ;;
+     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ 	echo x86_64-unknown-cygwin
+ 	exit ;;
+     p*:CYGWIN*:*)
+ 	echo powerpcle-unknown-cygwin
+ 	exit ;;
+     prep*:SunOS:5.*:*)
+ 	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ 	exit ;;
+     *:GNU:*:*)
+ 	# the GNU system
+ 	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ 	exit ;;
+     *:GNU/*:*:*)
+ 	# other systems with GNU libc and userland
+ 	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ 	exit ;;
+     i*86:Minix:*:*)
+ 	echo ${UNAME_MACHINE}-pc-minix
+ 	exit ;;
+     arm*:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     avr32*:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     cris:Linux:*:*)
+ 	echo cris-axis-linux-gnu
+ 	exit ;;
+     crisv32:Linux:*:*)
+ 	echo crisv32-axis-linux-gnu
+ 	exit ;;
+     frv:Linux:*:*)
+     	echo frv-unknown-linux-gnu
+ 	exit ;;
+     ia64:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     m32r*:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     m68*:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     mips:Linux:*:*)
+ 	eval $set_cc_for_build
+ 	sed 's/^	//' << EOF >$dummy.c
+ 	#undef CPU
+ 	#undef mips
+ 	#undef mipsel
+ 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ 	CPU=mipsel
+ 	#else
+ 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ 	CPU=mips
+ 	#else
+ 	CPU=
+ 	#endif
+ 	#endif
+ EOF
+ 	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ 	    /^CPU/{
+ 		s: ::g
+ 		p
+ 	    }'`"
+ 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ 	;;
+     mips64:Linux:*:*)
+ 	eval $set_cc_for_build
+ 	sed 's/^	//' << EOF >$dummy.c
+ 	#undef CPU
+ 	#undef mips64
+ 	#undef mips64el
+ 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ 	CPU=mips64el
+ 	#else
+ 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ 	CPU=mips64
+ 	#else
+ 	CPU=
+ 	#endif
+ 	#endif
+ EOF
+ 	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ 	    /^CPU/{
+ 		s: ::g
+ 		p
+ 	    }'`"
+ 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+ 	;;
+     or32:Linux:*:*)
+ 	echo or32-unknown-linux-gnu
+ 	exit ;;
+     ppc:Linux:*:*)
+ 	echo powerpc-unknown-linux-gnu
+ 	exit ;;
+     ppc64:Linux:*:*)
+ 	echo powerpc64-unknown-linux-gnu
+ 	exit ;;
+     alpha:Linux:*:*)
+ 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ 	  EV5)   UNAME_MACHINE=alphaev5 ;;
+ 	  EV56)  UNAME_MACHINE=alphaev56 ;;
+ 	  PCA56) UNAME_MACHINE=alphapca56 ;;
+ 	  PCA57) UNAME_MACHINE=alphapca56 ;;
+ 	  EV6)   UNAME_MACHINE=alphaev6 ;;
+ 	  EV67)  UNAME_MACHINE=alphaev67 ;;
+ 	  EV68*) UNAME_MACHINE=alphaev68 ;;
+         esac
+ 	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ 	exit ;;
+     parisc:Linux:*:* | hppa:Linux:*:*)
+ 	# Look for CPU level
+ 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ 	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ 	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ 	  *)    echo hppa-unknown-linux-gnu ;;
+ 	esac
+ 	exit ;;
+     parisc64:Linux:*:* | hppa64:Linux:*:*)
+ 	echo hppa64-unknown-linux-gnu
+ 	exit ;;
+     s390:Linux:*:* | s390x:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-ibm-linux
+ 	exit ;;
+     sh64*:Linux:*:*)
+     	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     sh*:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     sparc:Linux:*:* | sparc64:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 	exit ;;
+     vax:Linux:*:*)
+ 	echo ${UNAME_MACHINE}-dec-linux-gnu
+ 	exit ;;
+     x86_64:Linux:*:*)
+ 	echo x86_64-unknown-linux-gnu
+ 	exit ;;
+     i*86:Linux:*:*)
+ 	# The BFD linker knows what the default object file format is, so
+ 	# first see if it will tell us. cd to the root directory to prevent
+ 	# problems with other programs or directories called `ld' in the path.
+ 	# Set LC_ALL=C to ensure ld outputs messages in English.
+ 	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ 			 | sed -ne '/supported targets:/!d
+ 				    s/[ 	][ 	]*/ /g
+ 				    s/.*supported targets: *//
+ 				    s/ .*//
+ 				    p'`
+         case "$ld_supported_targets" in
+ 	  elf32-i386)
+ 		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ 		;;
+ 	  a.out-i386-linux)
+ 		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ 		exit ;;
+ 	  coff-i386)
+ 		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ 		exit ;;
+ 	  "")
+ 		# Either a pre-BFD a.out linker (linux-gnuoldld) or
+ 		# one that does not give us useful --help.
+ 		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ 		exit ;;
+ 	esac
+ 	# Determine whether the default compiler is a.out or elf
+ 	eval $set_cc_for_build
+ 	sed 's/^	//' << EOF >$dummy.c
+ 	#include <features.h>
+ 	#ifdef __ELF__
+ 	# ifdef __GLIBC__
+ 	#  if __GLIBC__ >= 2
+ 	LIBC=gnu
+ 	#  else
+ 	LIBC=gnulibc1
+ 	#  endif
+ 	# else
+ 	LIBC=gnulibc1
+ 	# endif
+ 	#else
+ 	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+ 	LIBC=gnu
+ 	#else
+ 	LIBC=gnuaout
+ 	#endif
+ 	#endif
+ 	#ifdef __dietlibc__
+ 	LIBC=dietlibc
+ 	#endif
+ EOF
+ 	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+ 	    /^LIBC/{
+ 		s: ::g
+ 		p
+ 	    }'`"
+ 	test x"${LIBC}" != x && {
+ 		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ 		exit
+ 	}
+ 	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+ 	;;
+     i*86:DYNIX/ptx:4*:*)
+ 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ 	# earlier versions are messed up and put the nodename in both
+ 	# sysname and nodename.
+ 	echo i386-sequent-sysv4
+ 	exit ;;
+     i*86:UNIX_SV:4.2MP:2.*)
+         # Unixware is an offshoot of SVR4, but it has its own version
+         # number series starting with 2...
+         # I am not positive that other SVR4 systems won't match this,
+ 	# I just have to hope.  -- rms.
+         # Use sysv4.2uw... so that sysv4* matches it.
+ 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ 	exit ;;
+     i*86:OS/2:*:*)
+ 	# If we were able to find `uname', then EMX Unix compatibility
+ 	# is probably installed.
+ 	echo ${UNAME_MACHINE}-pc-os2-emx
+ 	exit ;;
+     i*86:XTS-300:*:STOP)
+ 	echo ${UNAME_MACHINE}-unknown-stop
+ 	exit ;;
+     i*86:atheos:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-atheos
+ 	exit ;;
+     i*86:syllable:*:*)
+ 	echo ${UNAME_MACHINE}-pc-syllable
+ 	exit ;;
+     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ 	echo i386-unknown-lynxos${UNAME_RELEASE}
+ 	exit ;;
+     i*86:*DOS:*:*)
+ 	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ 	exit ;;
+     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ 	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ 		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ 	else
+ 		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ 	fi
+ 	exit ;;
+     i*86:*:5:[678]*)
+     	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+ 	case `/bin/uname -X | grep "^Machine"` in
+ 	    *486*)	     UNAME_MACHINE=i486 ;;
+ 	    *Pentium)	     UNAME_MACHINE=i586 ;;
+ 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ 	esac
+ 	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ 	exit ;;
+     i*86:*:3.2:*)
+ 	if test -f /usr/options/cb.name; then
+ 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ 		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ 	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ 		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ 		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ 		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ 			&& UNAME_MACHINE=i586
+ 		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ 			&& UNAME_MACHINE=i686
+ 		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ 			&& UNAME_MACHINE=i686
+ 		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ 	else
+ 		echo ${UNAME_MACHINE}-pc-sysv32
+ 	fi
+ 	exit ;;
+     pc:*:*:*)
+ 	# Left here for compatibility:
+         # uname -m prints for DJGPP always 'pc', but it prints nothing about
+         # the processor, so we play safe by assuming i386.
+ 	echo i386-pc-msdosdjgpp
+         exit ;;
+     Intel:Mach:3*:*)
+ 	echo i386-pc-mach3
+ 	exit ;;
+     paragon:*:*:*)
+ 	echo i860-intel-osf1
+ 	exit ;;
+     i860:*:4.*:*) # i860-SVR4
+ 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ 	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ 	else # Add other i860-SVR4 vendors below as they are discovered.
+ 	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+ 	fi
+ 	exit ;;
+     mini*:CTIX:SYS*5:*)
+ 	# "miniframe"
+ 	echo m68010-convergent-sysv
+ 	exit ;;
+     mc68k:UNIX:SYSTEM5:3.51m)
+ 	echo m68k-convergent-sysv
+ 	exit ;;
+     M680?0:D-NIX:5.3:*)
+ 	echo m68k-diab-dnix
+ 	exit ;;
+     M68*:*:R3V[5678]*:*)
+ 	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+     3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ 	OS_REL=''
+ 	test -r /etc/.relid \
+ 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ 	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ 	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+           && { echo i486-ncr-sysv4; exit; } ;;
+     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ 	echo m68k-unknown-lynxos${UNAME_RELEASE}
+ 	exit ;;
+     mc68030:UNIX_System_V:4.*:*)
+ 	echo m68k-atari-sysv4
+ 	exit ;;
+     TSUNAMI:LynxOS:2.*:*)
+ 	echo sparc-unknown-lynxos${UNAME_RELEASE}
+ 	exit ;;
+     rs6000:LynxOS:2.*:*)
+ 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ 	exit ;;
+     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ 	exit ;;
+     SM[BE]S:UNIX_SV:*:*)
+ 	echo mips-dde-sysv${UNAME_RELEASE}
+ 	exit ;;
+     RM*:ReliantUNIX-*:*:*)
+ 	echo mips-sni-sysv4
+ 	exit ;;
+     RM*:SINIX-*:*:*)
+ 	echo mips-sni-sysv4
+ 	exit ;;
+     *:SINIX-*:*:*)
+ 	if uname -p 2>/dev/null >/dev/null ; then
+ 		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ 		echo ${UNAME_MACHINE}-sni-sysv4
+ 	else
+ 		echo ns32k-sni-sysv
+ 	fi
+ 	exit ;;
+     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                       # says <Richard.M.Bartel@ccMail.Census.GOV>
+         echo i586-unisys-sysv4
+         exit ;;
+     *:UNIX_System_V:4*:FTX*)
+ 	# From Gerald Hewes <hewes@openmarket.com>.
+ 	# How about differentiating between stratus architectures? -djm
+ 	echo hppa1.1-stratus-sysv4
+ 	exit ;;
+     *:*:*:FTX*)
+ 	# From seanf@swdc.stratus.com.
+ 	echo i860-stratus-sysv4
+ 	exit ;;
+     i*86:VOS:*:*)
+ 	# From Paul.Green@stratus.com.
+ 	echo ${UNAME_MACHINE}-stratus-vos
+ 	exit ;;
+     *:VOS:*:*)
+ 	# From Paul.Green@stratus.com.
+ 	echo hppa1.1-stratus-vos
+ 	exit ;;
+     mc68*:A/UX:*:*)
+ 	echo m68k-apple-aux${UNAME_RELEASE}
+ 	exit ;;
+     news*:NEWS-OS:6*:*)
+ 	echo mips-sony-newsos6
+ 	exit ;;
+     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ 	if [ -d /usr/nec ]; then
+ 	        echo mips-nec-sysv${UNAME_RELEASE}
+ 	else
+ 	        echo mips-unknown-sysv${UNAME_RELEASE}
+ 	fi
+         exit ;;
+     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+ 	echo powerpc-be-beos
+ 	exit ;;
+     BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+ 	echo powerpc-apple-beos
+ 	exit ;;
+     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+ 	echo i586-pc-beos
+ 	exit ;;
+     SX-4:SUPER-UX:*:*)
+ 	echo sx4-nec-superux${UNAME_RELEASE}
+ 	exit ;;
+     SX-5:SUPER-UX:*:*)
+ 	echo sx5-nec-superux${UNAME_RELEASE}
+ 	exit ;;
+     SX-6:SUPER-UX:*:*)
+ 	echo sx6-nec-superux${UNAME_RELEASE}
+ 	exit ;;
+     Power*:Rhapsody:*:*)
+ 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ 	exit ;;
+     *:Rhapsody:*:*)
+ 	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ 	exit ;;
+     *:Darwin:*:*)
+ 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ 	case $UNAME_PROCESSOR in
+ 	    unknown) UNAME_PROCESSOR=powerpc ;;
+ 	esac
+ 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ 	exit ;;
+     *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ 	UNAME_PROCESSOR=`uname -p`
+ 	if test "$UNAME_PROCESSOR" = "x86"; then
+ 		UNAME_PROCESSOR=i386
+ 		UNAME_MACHINE=pc
+ 	fi
+ 	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ 	exit ;;
+     *:QNX:*:4*)
+ 	echo i386-pc-qnx
+ 	exit ;;
+     NSE-?:NONSTOP_KERNEL:*:*)
+ 	echo nse-tandem-nsk${UNAME_RELEASE}
+ 	exit ;;
+     NSR-?:NONSTOP_KERNEL:*:*)
+ 	echo nsr-tandem-nsk${UNAME_RELEASE}
+ 	exit ;;
+     *:NonStop-UX:*:*)
+ 	echo mips-compaq-nonstopux
+ 	exit ;;
+     BS2000:POSIX*:*:*)
+ 	echo bs2000-siemens-sysv
+ 	exit ;;
+     DS/*:UNIX_System_V:*:*)
+ 	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ 	exit ;;
+     *:Plan9:*:*)
+ 	# "uname -m" is not consistent, so use $cputype instead. 386
+ 	# is converted to i386 for consistency with other x86
+ 	# operating systems.
+ 	if test "$cputype" = "386"; then
+ 	    UNAME_MACHINE=i386
+ 	else
+ 	    UNAME_MACHINE="$cputype"
+ 	fi
+ 	echo ${UNAME_MACHINE}-unknown-plan9
+ 	exit ;;
+     *:TOPS-10:*:*)
+ 	echo pdp10-unknown-tops10
+ 	exit ;;
+     *:TENEX:*:*)
+ 	echo pdp10-unknown-tenex
+ 	exit ;;
+     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ 	echo pdp10-dec-tops20
+ 	exit ;;
+     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ 	echo pdp10-xkl-tops20
+ 	exit ;;
+     *:TOPS-20:*:*)
+ 	echo pdp10-unknown-tops20
+ 	exit ;;
+     *:ITS:*:*)
+ 	echo pdp10-unknown-its
+ 	exit ;;
+     SEI:*:*:SEIUX)
+         echo mips-sei-seiux${UNAME_RELEASE}
+ 	exit ;;
+     *:DragonFly:*:*)
+ 	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ 	exit ;;
+     *:*VMS:*:*)
+     	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ 	case "${UNAME_MACHINE}" in
+ 	    A*) echo alpha-dec-vms ; exit ;;
+ 	    I*) echo ia64-dec-vms ; exit ;;
+ 	    V*) echo vax-dec-vms ; exit ;;
+ 	esac ;;
+     *:XENIX:*:SysV)
+ 	echo i386-pc-xenix
+ 	exit ;;
+     i*86:skyos:*:*)
+ 	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ 	exit ;;
+     i*86:rdos:*:*)
+ 	echo ${UNAME_MACHINE}-pc-rdos
+ 	exit ;;
+ esac
+ 
+ #echo '(No uname command or uname output not recognized.)' 1>&2
+ #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+ 
+ eval $set_cc_for_build
+ cat >$dummy.c <<EOF
+ #ifdef _SEQUENT_
+ # include <sys/types.h>
+ # include <sys/utsname.h>
+ #endif
+ main ()
+ {
+ #if defined (sony)
+ #if defined (MIPSEB)
+   /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+      I don't know....  */
+   printf ("mips-sony-bsd\n"); exit (0);
+ #else
+ #include <sys/param.h>
+   printf ("m68k-sony-newsos%s\n",
+ #ifdef NEWSOS4
+           "4"
+ #else
+ 	  ""
+ #endif
+          ); exit (0);
+ #endif
+ #endif
+ 
+ #if defined (__arm) && defined (__acorn) && defined (__unix)
+   printf ("arm-acorn-riscix\n"); exit (0);
+ #endif
+ 
+ #if defined (hp300) && !defined (hpux)
+   printf ("m68k-hp-bsd\n"); exit (0);
+ #endif
+ 
+ #if defined (NeXT)
+ #if !defined (__ARCHITECTURE__)
+ #define __ARCHITECTURE__ "m68k"
+ #endif
+   int version;
+   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+   if (version < 4)
+     printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+   else
+     printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+   exit (0);
+ #endif
+ 
+ #if defined (MULTIMAX) || defined (n16)
+ #if defined (UMAXV)
+   printf ("ns32k-encore-sysv\n"); exit (0);
+ #else
+ #if defined (CMU)
+   printf ("ns32k-encore-mach\n"); exit (0);
+ #else
+   printf ("ns32k-encore-bsd\n"); exit (0);
+ #endif
+ #endif
+ #endif
+ 
+ #if defined (__386BSD__)
+   printf ("i386-pc-bsd\n"); exit (0);
+ #endif
+ 
+ #if defined (sequent)
+ #if defined (i386)
+   printf ("i386-sequent-dynix\n"); exit (0);
+ #endif
+ #if defined (ns32000)
+   printf ("ns32k-sequent-dynix\n"); exit (0);
+ #endif
+ #endif
+ 
+ #if defined (_SEQUENT_)
+     struct utsname un;
+ 
+     uname(&un);
+ 
+     if (strncmp(un.version, "V2", 2) == 0) {
+ 	printf ("i386-sequent-ptx2\n"); exit (0);
+     }
+     if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ 	printf ("i386-sequent-ptx1\n"); exit (0);
+     }
+     printf ("i386-sequent-ptx\n"); exit (0);
+ 
+ #endif
+ 
+ #if defined (vax)
+ # if !defined (ultrix)
+ #  include <sys/param.h>
+ #  if defined (BSD)
+ #   if BSD == 43
+       printf ("vax-dec-bsd4.3\n"); exit (0);
+ #   else
+ #    if BSD == 199006
+       printf ("vax-dec-bsd4.3reno\n"); exit (0);
+ #    else
+       printf ("vax-dec-bsd\n"); exit (0);
+ #    endif
+ #   endif
+ #  else
+     printf ("vax-dec-bsd\n"); exit (0);
+ #  endif
+ # else
+     printf ("vax-dec-ultrix\n"); exit (0);
+ # endif
+ #endif
+ 
+ #if defined (alliant) && defined (i860)
+   printf ("i860-alliant-bsd\n"); exit (0);
+ #endif
+ 
+   exit (1);
+ }
+ EOF
+ 
+ $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ 	{ echo "$SYSTEM_NAME"; exit; }
+ 
+ # Apollos put the system type in the environment.
+ 
+ test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+ 
+ # Convex versions that predate uname can use getsysinfo(1)
+ 
+ if [ -x /usr/convex/getsysinfo ]
+ then
+     case `getsysinfo -f cpu_type` in
+     c1*)
+ 	echo c1-convex-bsd
+ 	exit ;;
+     c2*)
+ 	if getsysinfo -f scalar_acc
+ 	then echo c32-convex-bsd
+ 	else echo c2-convex-bsd
+ 	fi
+ 	exit ;;
+     c34*)
+ 	echo c34-convex-bsd
+ 	exit ;;
+     c38*)
+ 	echo c38-convex-bsd
+ 	exit ;;
+     c4*)
+ 	echo c4-convex-bsd
+ 	exit ;;
+     esac
+ fi
+ 
+ cat >&2 <<EOF
+ $0: unable to guess system type
+ 
+ This script, last modified $timestamp, has failed to recognize
+ the operating system you are using. It is advised that you
+ download the most up to date version of the config scripts from
+ 
+   http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+ and
+   http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+ 
+ If the version you run ($0) is already up to date, please
+ send the following data and any information you think might be
+ pertinent to <config-patches@gnu.org> in order to provide the needed
+ information to handle your system.
+ 
+ config.guess timestamp = $timestamp
+ 
+ uname -m = `(uname -m) 2>/dev/null || echo unknown`
+ uname -r = `(uname -r) 2>/dev/null || echo unknown`
+ uname -s = `(uname -s) 2>/dev/null || echo unknown`
+ uname -v = `(uname -v) 2>/dev/null || echo unknown`
+ 
+ /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+ /bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+ 
+ hostinfo               = `(hostinfo) 2>/dev/null`
+ /bin/universe          = `(/bin/universe) 2>/dev/null`
+ /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+ /bin/arch              = `(/bin/arch) 2>/dev/null`
+ /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+ /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+ 
+ UNAME_MACHINE = ${UNAME_MACHINE}
+ UNAME_RELEASE = ${UNAME_RELEASE}
+ UNAME_SYSTEM  = ${UNAME_SYSTEM}
+ UNAME_VERSION = ${UNAME_VERSION}
+ EOF
+ 
+ exit 1
+ 
+ # Local variables:
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
+ # time-stamp-start: "timestamp='"
+ # time-stamp-format: "%:y-%02m-%02d"
+ # time-stamp-end: "'"
+ # End:
diff -Nrc2 texinfo-4.12/build-aux/config.rpath texinfo-4.13/build-aux/config.rpath
*** texinfo-4.12/build-aux/config.rpath	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/build-aux/config.rpath	Thu Sep 18 11:31:56 2008
***************
*** 0 ****
--- 1,672 ----
+ #! /bin/sh
+ # Output a system dependent set of variables, describing how to set the
+ # run time search path of shared libraries in an executable.
+ #
+ #   Copyright 1996-2008 Free Software Foundation, Inc.
+ #   Taken from GNU libtool, 2001
+ #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+ #
+ #   This file is free software; the Free Software Foundation gives
+ #   unlimited permission to copy and/or distribute it, with or without
+ #   modifications, as long as this notice is preserved.
+ #
+ # The first argument passed to this file is the canonical host specification,
+ #    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+ # or
+ #    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+ # should be set by the caller.
+ #
+ # The set of defined variables is at the end of this script.
+ 
+ # Known limitations:
+ # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+ #   than 256 bytes, otherwise the compiler driver will dump core. The only
+ #   known workaround is to choose shorter directory names for the build
+ #   directory and/or the installation directory.
+ 
+ # All known linkers require a `.a' archive for static linking (except MSVC,
+ # which needs '.lib').
+ libext=a
+ shrext=.so
+ 
+ host="$1"
+ host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+ host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ 
+ # Code taken from libtool.m4's _LT_CC_BASENAME.
+ 
+ for cc_temp in $CC""; do
+   case $cc_temp in
+     compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+     distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+     \-*) ;;
+     *) break;;
+   esac
+ done
+ cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
+ 
+ # Code taken from libtool.m4's _LT_COMPILER_PIC.
+ 
+ wl=
+ if test "$GCC" = yes; then
+   wl='-Wl,'
+ else
+   case "$host_os" in
+     aix*)
+       wl='-Wl,'
+       ;;
+     darwin*)
+       case $cc_basename in
+         xlc*)
+           wl='-Wl,'
+           ;;
+       esac
+       ;;
+     mingw* | cygwin* | pw32* | os2* | cegcc*)
+       ;;
+     hpux9* | hpux10* | hpux11*)
+       wl='-Wl,'
+       ;;
+     irix5* | irix6* | nonstopux*)
+       wl='-Wl,'
+       ;;
+     newsos6)
+       ;;
+     linux* | k*bsd*-gnu)
+       case $cc_basename in
+         ecc*)
+           wl='-Wl,'
+           ;;
+         icc* | ifort*)
+           wl='-Wl,'
+           ;;
+         lf95*)
+           wl='-Wl,'
+           ;;
+         pgcc | pgf77 | pgf90)
+           wl='-Wl,'
+           ;;
+         ccc*)
+           wl='-Wl,'
+           ;;
+         como)
+           wl='-lopt='
+           ;;
+         *)
+           case `$CC -V 2>&1 | sed 5q` in
+             *Sun\ C*)
+               wl='-Wl,'
+               ;;
+           esac
+           ;;
+       esac
+       ;;
+     osf3* | osf4* | osf5*)
+       wl='-Wl,'
+       ;;
+     rdos*)
+       ;;
+     solaris*)
+       wl='-Wl,'
+       ;;
+     sunos4*)
+       wl='-Qoption ld '
+       ;;
+     sysv4 | sysv4.2uw2* | sysv4.3*)
+       wl='-Wl,'
+       ;;
+     sysv4*MP*)
+       ;;
+     sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+       wl='-Wl,'
+       ;;
+     unicos*)
+       wl='-Wl,'
+       ;;
+     uts4*)
+       ;;
+   esac
+ fi
+ 
+ # Code taken from libtool.m4's _LT_LINKER_SHLIBS.
+ 
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_separator=
+ hardcode_direct=no
+ hardcode_minus_L=no
+ 
+ case "$host_os" in
+   cygwin* | mingw* | pw32* | cegcc*)
+     # FIXME: the MSVC++ port hasn't been tested in a loooong time
+     # When not using gcc, we currently assume that we are using
+     # Microsoft Visual C++.
+     if test "$GCC" != yes; then
+       with_gnu_ld=no
+     fi
+     ;;
+   interix*)
+     # we just hope/assume this is gcc and not c89 (= MSVC++)
+     with_gnu_ld=yes
+     ;;
+   openbsd*)
+     with_gnu_ld=no
+     ;;
+ esac
+ 
+ ld_shlibs=yes
+ if test "$with_gnu_ld" = yes; then
+   # Set some defaults for GNU ld with shared library support. These
+   # are reset later if shared libraries are not supported. Putting them
+   # here allows them to be overridden if necessary.
+   # Unlike libtool, we use -rpath here, not --rpath, since the documented
+   # option of GNU ld is called -rpath, not --rpath.
+   hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+   case "$host_os" in
+     aix[3-9]*)
+       # On AIX/PPC, the GNU linker is very broken
+       if test "$host_cpu" != ia64; then
+         ld_shlibs=no
+       fi
+       ;;
+     amigaos*)
+       hardcode_libdir_flag_spec='-L$libdir'
+       hardcode_minus_L=yes
+       # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+       # that the semantics of dynamic libraries on AmigaOS, at least up
+       # to version 4, is to share data among multiple programs linked
+       # with the same dynamic library.  Since this doesn't match the
+       # behavior of shared libraries on other platforms, we cannot use
+       # them.
+       ld_shlibs=no
+       ;;
+     beos*)
+       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+         :
+       else
+         ld_shlibs=no
+       fi
+       ;;
+     cygwin* | mingw* | pw32* | cegcc*)
+       # hardcode_libdir_flag_spec is actually meaningless, as there is
+       # no search path for DLLs.
+       hardcode_libdir_flag_spec='-L$libdir'
+       if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+         :
+       else
+         ld_shlibs=no
+       fi
+       ;;
+     interix[3-9]*)
+       hardcode_direct=no
+       hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+       ;;
+     gnu* | linux* | k*bsd*-gnu)
+       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+         :
+       else
+         ld_shlibs=no
+       fi
+       ;;
+     netbsd*)
+       ;;
+     solaris*)
+       if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+         ld_shlibs=no
+       elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+         :
+       else
+         ld_shlibs=no
+       fi
+       ;;
+     sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+       case `$LD -v 2>&1` in
+         *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+           ld_shlibs=no
+           ;;
+         *)
+           if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+             hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+           else
+             ld_shlibs=no
+           fi
+           ;;
+       esac
+       ;;
+     sunos4*)
+       hardcode_direct=yes
+       ;;
+     *)
+       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+         :
+       else
+         ld_shlibs=no
+       fi
+       ;;
+   esac
+   if test "$ld_shlibs" = no; then
+     hardcode_libdir_flag_spec=
+   fi
+ else
+   case "$host_os" in
+     aix3*)
+       # Note: this linker hardcodes the directories in LIBPATH if there
+       # are no directories specified by -L.
+       hardcode_minus_L=yes
+       if test "$GCC" = yes; then
+         # Neither direct hardcoding nor static linking is supported with a
+         # broken collect2.
+         hardcode_direct=unsupported
+       fi
+       ;;
+     aix[4-9]*)
+       if test "$host_cpu" = ia64; then
+         # On IA64, the linker does run time linking by default, so we don't
+         # have to do anything special.
+         aix_use_runtimelinking=no
+       else
+         aix_use_runtimelinking=no
+         # Test if we are trying to use run time linking or normal
+         # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+         # need to do runtime linking.
+         case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+           for ld_flag in $LDFLAGS; do
+             if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+               aix_use_runtimelinking=yes
+               break
+             fi
+           done
+           ;;
+         esac
+       fi
+       hardcode_direct=yes
+       hardcode_libdir_separator=':'
+       if test "$GCC" = yes; then
+         case $host_os in aix4.[012]|aix4.[012].*)
+           collect2name=`${CC} -print-prog-name=collect2`
+           if test -f "$collect2name" && \
+             strings "$collect2name" | grep resolve_lib_name >/dev/null
+           then
+             # We have reworked collect2
+             :
+           else
+             # We have old collect2
+             hardcode_direct=unsupported
+             hardcode_minus_L=yes
+             hardcode_libdir_flag_spec='-L$libdir'
+             hardcode_libdir_separator=
+           fi
+           ;;
+         esac
+       fi
+       # Begin _LT_AC_SYS_LIBPATH_AIX.
+       echo 'int main () { return 0; }' > conftest.c
+       ${CC} ${LDFLAGS} conftest.c -o conftest
+       aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+ }'`
+       if test -z "$aix_libpath"; then
+         aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+ }'`
+       fi
+       if test -z "$aix_libpath"; then
+         aix_libpath="/usr/lib:/lib"
+       fi
+       rm -f conftest.c conftest
+       # End _LT_AC_SYS_LIBPATH_AIX.
+       if test "$aix_use_runtimelinking" = yes; then
+         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+       else
+         if test "$host_cpu" = ia64; then
+           hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+         else
+           hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+         fi
+       fi
+       ;;
+     amigaos*)
+       hardcode_libdir_flag_spec='-L$libdir'
+       hardcode_minus_L=yes
+       # see comment about different semantics on the GNU ld section
+       ld_shlibs=no
+       ;;
+     bsdi[45]*)
+       ;;
+     cygwin* | mingw* | pw32* | cegcc*)
+       # When not using gcc, we currently assume that we are using
+       # Microsoft Visual C++.
+       # hardcode_libdir_flag_spec is actually meaningless, as there is
+       # no search path for DLLs.
+       hardcode_libdir_flag_spec=' '
+       libext=lib
+       ;;
+     darwin* | rhapsody*)
+       hardcode_direct=no
+       if test "$GCC" = yes ; then
+         :
+       else
+         case $cc_basename in
+           xlc*)
+             ;;
+           *)
+             ld_shlibs=no
+             ;;
+         esac
+       fi
+       ;;
+     dgux*)
+       hardcode_libdir_flag_spec='-L$libdir'
+       ;;
+     freebsd1*)
+       ld_shlibs=no
+       ;;
+     freebsd2.2*)
+       hardcode_libdir_flag_spec='-R$libdir'
+       hardcode_direct=yes
+       ;;
+     freebsd2*)
+       hardcode_direct=yes
+       hardcode_minus_L=yes
+       ;;
+     freebsd* | dragonfly*)
+       hardcode_libdir_flag_spec='-R$libdir'
+       hardcode_direct=yes
+       ;;
+     hpux9*)
+       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+       hardcode_libdir_separator=:
+       hardcode_direct=yes
+       # hardcode_minus_L: Not really in the search PATH,
+       # but as the default location of the library.
+       hardcode_minus_L=yes
+       ;;
+     hpux10*)
+       if test "$with_gnu_ld" = no; then
+         hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+         hardcode_libdir_separator=:
+         hardcode_direct=yes
+         # hardcode_minus_L: Not really in the search PATH,
+         # but as the default location of the library.
+         hardcode_minus_L=yes
+       fi
+       ;;
+     hpux11*)
+       if test "$with_gnu_ld" = no; then
+         hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+         hardcode_libdir_separator=:
+         case $host_cpu in
+           hppa*64*|ia64*)
+             hardcode_direct=no
+             ;;
+           *)
+             hardcode_direct=yes
+             # hardcode_minus_L: Not really in the search PATH,
+             # but as the default location of the library.
+             hardcode_minus_L=yes
+             ;;
+         esac
+       fi
+       ;;
+     irix5* | irix6* | nonstopux*)
+       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+       hardcode_libdir_separator=:
+       ;;
+     netbsd*)
+       hardcode_libdir_flag_spec='-R$libdir'
+       hardcode_direct=yes
+       ;;
+     newsos6)
+       hardcode_direct=yes
+       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+       hardcode_libdir_separator=:
+       ;;
+     openbsd*)
+       if test -f /usr/libexec/ld.so; then
+         hardcode_direct=yes
+         if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+           hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+         else
+           case "$host_os" in
+             openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+               hardcode_libdir_flag_spec='-R$libdir'
+               ;;
+             *)
+               hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+               ;;
+           esac
+         fi
+       else
+         ld_shlibs=no
+       fi
+       ;;
+     os2*)
+       hardcode_libdir_flag_spec='-L$libdir'
+       hardcode_minus_L=yes
+       ;;
+     osf3*)
+       hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+       hardcode_libdir_separator=:
+       ;;
+     osf4* | osf5*)
+       if test "$GCC" = yes; then
+         hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+       else
+         # Both cc and cxx compiler support -rpath directly
+         hardcode_libdir_flag_spec='-rpath $libdir'
+       fi
+       hardcode_libdir_separator=:
+       ;;
+     solaris*)
+       hardcode_libdir_flag_spec='-R$libdir'
+       ;;
+     sunos4*)
+       hardcode_libdir_flag_spec='-L$libdir'
+       hardcode_direct=yes
+       hardcode_minus_L=yes
+       ;;
+     sysv4)
+       case $host_vendor in
+         sni)
+           hardcode_direct=yes # is this really true???
+           ;;
+         siemens)
+           hardcode_direct=no
+           ;;
+         motorola)
+           hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+           ;;
+       esac
+       ;;
+     sysv4.3*)
+       ;;
+     sysv4*MP*)
+       if test -d /usr/nec; then
+         ld_shlibs=yes
+       fi
+       ;;
+     sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+       ;;
+     sysv5* | sco3.2v5* | sco5v6*)
+       hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+       hardcode_libdir_separator=':'
+       ;;
+     uts4*)
+       hardcode_libdir_flag_spec='-L$libdir'
+       ;;
+     *)
+       ld_shlibs=no
+       ;;
+   esac
+ fi
+ 
+ # Check dynamic linker characteristics
+ # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
+ # Unlike libtool.m4, here we don't care about _all_ names of the library, but
+ # only about the one the linker finds when passed -lNAME. This is the last
+ # element of library_names_spec in libtool.m4, or possibly two of them if the
+ # linker has special search rules.
+ library_names_spec=      # the last element of library_names_spec in libtool.m4
+ libname_spec='lib$name'
+ case "$host_os" in
+   aix3*)
+     library_names_spec='$libname.a'
+     ;;
+   aix[4-9]*)
+     library_names_spec='$libname$shrext'
+     ;;
+   amigaos*)
+     library_names_spec='$libname.a'
+     ;;
+   beos*)
+     library_names_spec='$libname$shrext'
+     ;;
+   bsdi[45]*)
+     library_names_spec='$libname$shrext'
+     ;;
+   cygwin* | mingw* | pw32* | cegcc*)
+     shrext=.dll
+     library_names_spec='$libname.dll.a $libname.lib'
+     ;;
+   darwin* | rhapsody*)
+     shrext=.dylib
+     library_names_spec='$libname$shrext'
+     ;;
+   dgux*)
+     library_names_spec='$libname$shrext'
+     ;;
+   freebsd1*)
+     ;;
+   freebsd* | dragonfly*)
+     case "$host_os" in
+       freebsd[123]*)
+         library_names_spec='$libname$shrext$versuffix' ;;
+       *)
+         library_names_spec='$libname$shrext' ;;
+     esac
+     ;;
+   gnu*)
+     library_names_spec='$libname$shrext'
+     ;;
+   hpux9* | hpux10* | hpux11*)
+     case $host_cpu in
+       ia64*)
+         shrext=.so
+         ;;
+       hppa*64*)
+         shrext=.sl
+         ;;
+       *)
+         shrext=.sl
+         ;;
+     esac
+     library_names_spec='$libname$shrext'
+     ;;
+   interix[3-9]*)
+     library_names_spec='$libname$shrext'
+     ;;
+   irix5* | irix6* | nonstopux*)
+     library_names_spec='$libname$shrext'
+     case "$host_os" in
+       irix5* | nonstopux*)
+         libsuff= shlibsuff=
+         ;;
+       *)
+         case $LD in
+           *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+           *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+           *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+           *) libsuff= shlibsuff= ;;
+         esac
+         ;;
+     esac
+     ;;
+   linux*oldld* | linux*aout* | linux*coff*)
+     ;;
+   linux* | k*bsd*-gnu)
+     library_names_spec='$libname$shrext'
+     ;;
+   knetbsd*-gnu)
+     library_names_spec='$libname$shrext'
+     ;;
+   netbsd*)
+     library_names_spec='$libname$shrext'
+     ;;
+   newsos6)
+     library_names_spec='$libname$shrext'
+     ;;
+   nto-qnx*)
+     library_names_spec='$libname$shrext'
+     ;;
+   openbsd*)
+     library_names_spec='$libname$shrext$versuffix'
+     ;;
+   os2*)
+     libname_spec='$name'
+     shrext=.dll
+     library_names_spec='$libname.a'
+     ;;
+   osf3* | osf4* | osf5*)
+     library_names_spec='$libname$shrext'
+     ;;
+   rdos*)
+     ;;
+   solaris*)
+     library_names_spec='$libname$shrext'
+     ;;
+   sunos4*)
+     library_names_spec='$libname$shrext$versuffix'
+     ;;
+   sysv4 | sysv4.3*)
+     library_names_spec='$libname$shrext'
+     ;;
+   sysv4*MP*)
+     library_names_spec='$libname$shrext'
+     ;;
+   sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+     library_names_spec='$libname$shrext'
+     ;;
+   uts4*)
+     library_names_spec='$libname$shrext'
+     ;;
+ esac
+ 
+ sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+ escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+ shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+ escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+ escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+ escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+ 
+ LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+ 
+ # How to pass a linker flag through the compiler.
+ wl="$escaped_wl"
+ 
+ # Static library suffix (normally "a").
+ libext="$libext"
+ 
+ # Shared library suffix (normally "so").
+ shlibext="$shlibext"
+ 
+ # Format of library name prefix.
+ libname_spec="$escaped_libname_spec"
+ 
+ # Library names that the linker finds when passed -lNAME.
+ library_names_spec="$escaped_library_names_spec"
+ 
+ # Flag to hardcode \$libdir into a binary during linking.
+ # This must work even if \$libdir does not exist.
+ hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+ 
+ # Whether we need a single -rpath flag with a separated argument.
+ hardcode_libdir_separator="$hardcode_libdir_separator"
+ 
+ # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+ # resulting binary.
+ hardcode_direct="$hardcode_direct"
+ 
+ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+ # resulting binary.
+ hardcode_minus_L="$hardcode_minus_L"
+ 
+ EOF
diff -Nrc2 texinfo-4.12/build-aux/config.sub texinfo-4.13/build-aux/config.sub
*** texinfo-4.12/build-aux/config.sub	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/build-aux/config.sub	Tue Dec 25 15:57:16 2007
***************
*** 0 ****
--- 1,1608 ----
+ #! /bin/sh
+ # Configuration validation subroutine script.
+ #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ #   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+ #   Inc.
+ 
+ timestamp='2006-06-06'
+ 
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+ # can handle that machine.  It does not imply ALL GNU software can.
+ #
+ # This file 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., 51 Franklin Street - Fifth Floor, Boston, MA
+ # 02110-1301, USA.
+ #
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+ 
+ 
+ # Please send patches to <config-patches@gnu.org>.  Submit a context
+ # diff and a properly formatted ChangeLog entry.
+ #
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+ # If it is invalid, we print an error message on stderr and exit with code 1.
+ # Otherwise, we print the canonical config type on stdout and succeed.
+ 
+ # This file is supposed to be the same for all GNU packages
+ # and recognize all the CPU types, system types and aliases
+ # that are meaningful with *any* GNU software.
+ # Each package is responsible for reporting which valid configurations
+ # it does not support.  The user should be able to distinguish
+ # a failure to support a valid configuration from a meaningless
+ # configuration.
+ 
+ # The goal of this file is to map all the various variations of a given
+ # machine specification into a single specification in the form:
+ #	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+ # or in some cases, the newer four-part form:
+ #	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ # It is wrong to echo any other type of specification.
+ 
+ me=`echo "$0" | sed -e 's,.*/,,'`
+ 
+ usage="\
+ Usage: $0 [OPTION] CPU-MFR-OPSYS
+        $0 [OPTION] ALIAS
+ 
+ Canonicalize a configuration name.
+ 
+ Operation modes:
+   -h, --help         print this help, then exit
+   -t, --time-stamp   print date of last modification, then exit
+   -v, --version      print version number, then exit
+ 
+ Report bugs and patches to <config-patches@gnu.org>."
+ 
+ version="\
+ GNU config.sub ($timestamp)
+ 
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Free Software Foundation, Inc.
+ 
+ This is free software; see the source for copying conditions.  There is NO
+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+ 
+ help="
+ Try \`$me --help' for more information."
+ 
+ # Parse command line
+ while test $# -gt 0 ; do
+   case $1 in
+     --time-stamp | --time* | -t )
+        echo "$timestamp" ; exit ;;
+     --version | -v )
+        echo "$version" ; exit ;;
+     --help | --h* | -h )
+        echo "$usage"; exit ;;
+     -- )     # Stop option processing
+        shift; break ;;
+     - )	# Use stdin as input.
+        break ;;
+     -* )
+        echo "$me: invalid option $1$help"
+        exit 1 ;;
+ 
+     *local*)
+        # First pass through any local machine types.
+        echo $1
+        exit ;;
+ 
+     * )
+        break ;;
+   esac
+ done
+ 
+ case $# in
+  0) echo "$me: missing argument$help" >&2
+     exit 1;;
+  1) ;;
+  *) echo "$me: too many arguments$help" >&2
+     exit 1;;
+ esac
+ 
+ # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+   nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+   uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+   storm-chaos* | os2-emx* | rtmk-nova*)
+     os=-$maybe_os
+     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+     ;;
+   *)
+     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+     if [ $basic_machine != $1 ]
+     then os=`echo $1 | sed 's/.*-/-/'`
+     else os=; fi
+     ;;
+ esac
+ 
+ ### Let's recognize common machines as not being operating systems so
+ ### that things like config.sub decstation-3100 work.  We also
+ ### recognize some manufacturers as not being operating systems, so we
+ ### can provide default operating systems below.
+ case $os in
+ 	-sun*os*)
+ 		# Prevent following clause from handling this invalid input.
+ 		;;
+ 	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ 	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ 	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ 	-apple | -axis | -knuth | -cray)
+ 		os=
+ 		basic_machine=$1
+ 		;;
+ 	-sim | -cisco | -oki | -wec | -winbond)
+ 		os=
+ 		basic_machine=$1
+ 		;;
+ 	-scout)
+ 		;;
+ 	-wrs)
+ 		os=-vxworks
+ 		basic_machine=$1
+ 		;;
+ 	-chorusos*)
+ 		os=-chorusos
+ 		basic_machine=$1
+ 		;;
+  	-chorusrdb)
+  		os=-chorusrdb
+ 		basic_machine=$1
+  		;;
+ 	-hiux*)
+ 		os=-hiuxwe2
+ 		;;
+ 	-sco6)
+ 		os=-sco5v6
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-sco5)
+ 		os=-sco3.2v5
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-sco4)
+ 		os=-sco3.2v4
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-sco3.2.[4-9]*)
+ 		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-sco3.2v[4-9]*)
+ 		# Don't forget version if it is 3.2v4 or newer.
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-sco5v6*)
+ 		# Don't forget version if it is 3.2v4 or newer.
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-sco*)
+ 		os=-sco3.2v2
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-udk*)
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-isc)
+ 		os=-isc2.2
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-clix*)
+ 		basic_machine=clipper-intergraph
+ 		;;
+ 	-isc*)
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ 		;;
+ 	-lynx*)
+ 		os=-lynxos
+ 		;;
+ 	-ptx*)
+ 		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ 		;;
+ 	-windowsnt*)
+ 		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ 		;;
+ 	-psos*)
+ 		os=-psos
+ 		;;
+ 	-mint | -mint[0-9]*)
+ 		basic_machine=m68k-atari
+ 		os=-mint
+ 		;;
+ esac
+ 
+ # Decode aliases for certain CPU-COMPANY combinations.
+ case $basic_machine in
+ 	# Recognize the basic CPU types without company name.
+ 	# Some are omitted here because they have special meanings below.
+ 	1750a | 580 \
+ 	| a29k \
+ 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ 	| am33_2.0 \
+ 	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ 	| bfin \
+ 	| c4x | clipper \
+ 	| d10v | d30v | dlx | dsp16xx \
+ 	| fr30 | frv \
+ 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ 	| i370 | i860 | i960 | ia64 \
+ 	| ip2k | iq2000 \
+ 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+ 	| maxq | mb | microblaze | mcore \
+ 	| mips | mipsbe | mipseb | mipsel | mipsle \
+ 	| mips16 \
+ 	| mips64 | mips64el \
+ 	| mips64vr | mips64vrel \
+ 	| mips64orion | mips64orionel \
+ 	| mips64vr4100 | mips64vr4100el \
+ 	| mips64vr4300 | mips64vr4300el \
+ 	| mips64vr5000 | mips64vr5000el \
+ 	| mips64vr5900 | mips64vr5900el \
+ 	| mipsisa32 | mipsisa32el \
+ 	| mipsisa32r2 | mipsisa32r2el \
+ 	| mipsisa64 | mipsisa64el \
+ 	| mipsisa64r2 | mipsisa64r2el \
+ 	| mipsisa64sb1 | mipsisa64sb1el \
+ 	| mipsisa64sr71k | mipsisa64sr71kel \
+ 	| mipstx39 | mipstx39el \
+ 	| mn10200 | mn10300 \
+ 	| mt \
+ 	| msp430 \
+ 	| nios | nios2 \
+ 	| ns16k | ns32k \
+ 	| or32 \
+ 	| pdp10 | pdp11 | pj | pjl \
+ 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ 	| pyramid \
+ 	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+ 	| sh64 | sh64le \
+ 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ 	| spu | strongarm \
+ 	| tahoe | thumb | tic4x | tic80 | tron \
+ 	| v850 | v850e \
+ 	| we32k \
+ 	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+ 	| z8k)
+ 		basic_machine=$basic_machine-unknown
+ 		;;
+ 	m6811 | m68hc11 | m6812 | m68hc12)
+ 		# Motorola 68HC11/12.
+ 		basic_machine=$basic_machine-unknown
+ 		os=-none
+ 		;;
+ 	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ 		;;
+ 	ms1)
+ 		basic_machine=mt-unknown
+ 		;;
+ 
+ 	# We use `pc' rather than `unknown'
+ 	# because (1) that's what they normally are, and
+ 	# (2) the word "unknown" tends to confuse beginning users.
+ 	i*86 | x86_64)
+ 	  basic_machine=$basic_machine-pc
+ 	  ;;
+ 	# Object if more than one company name word.
+ 	*-*-*)
+ 		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ 		exit 1
+ 		;;
+ 	# Recognize the basic CPU types with company name.
+ 	580-* \
+ 	| a29k-* \
+ 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ 	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+ 	| avr-* | avr32-* \
+ 	| bfin-* | bs2000-* \
+ 	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ 	| clipper-* | craynv-* | cydra-* \
+ 	| d10v-* | d30v-* | dlx-* \
+ 	| elxsi-* \
+ 	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ 	| h8300-* | h8500-* \
+ 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ 	| i*86-* | i860-* | i960-* | ia64-* \
+ 	| ip2k-* | iq2000-* \
+ 	| m32c-* | m32r-* | m32rle-* \
+ 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ 	| m88110-* | m88k-* | maxq-* | mcore-* \
+ 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ 	| mips16-* \
+ 	| mips64-* | mips64el-* \
+ 	| mips64vr-* | mips64vrel-* \
+ 	| mips64orion-* | mips64orionel-* \
+ 	| mips64vr4100-* | mips64vr4100el-* \
+ 	| mips64vr4300-* | mips64vr4300el-* \
+ 	| mips64vr5000-* | mips64vr5000el-* \
+ 	| mips64vr5900-* | mips64vr5900el-* \
+ 	| mipsisa32-* | mipsisa32el-* \
+ 	| mipsisa32r2-* | mipsisa32r2el-* \
+ 	| mipsisa64-* | mipsisa64el-* \
+ 	| mipsisa64r2-* | mipsisa64r2el-* \
+ 	| mipsisa64sb1-* | mipsisa64sb1el-* \
+ 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ 	| mipstx39-* | mipstx39el-* \
+ 	| mmix-* \
+ 	| mt-* \
+ 	| msp430-* \
+ 	| nios-* | nios2-* \
+ 	| none-* | np1-* | ns16k-* | ns32k-* \
+ 	| orion-* \
+ 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ 	| pyramid-* \
+ 	| romp-* | rs6000-* \
+ 	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+ 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
+ 	| sparclite-* \
+ 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
+ 	| tahoe-* | thumb-* \
+ 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ 	| tron-* \
+ 	| v850-* | v850e-* | vax-* \
+ 	| we32k-* \
+ 	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+ 	| xstormy16-* | xtensa-* \
+ 	| ymp-* \
+ 	| z8k-*)
+ 		;;
+ 	# Recognize the various machine names and aliases which stand
+ 	# for a CPU type and a company and sometimes even an OS.
+ 	386bsd)
+ 		basic_machine=i386-unknown
+ 		os=-bsd
+ 		;;
+ 	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ 		basic_machine=m68000-att
+ 		;;
+ 	3b*)
+ 		basic_machine=we32k-att
+ 		;;
+ 	a29khif)
+ 		basic_machine=a29k-amd
+ 		os=-udi
+ 		;;
+     	abacus)
+ 		basic_machine=abacus-unknown
+ 		;;
+ 	adobe68k)
+ 		basic_machine=m68010-adobe
+ 		os=-scout
+ 		;;
+ 	alliant | fx80)
+ 		basic_machine=fx80-alliant
+ 		;;
+ 	altos | altos3068)
+ 		basic_machine=m68k-altos
+ 		;;
+ 	am29k)
+ 		basic_machine=a29k-none
+ 		os=-bsd
+ 		;;
+ 	amd64)
+ 		basic_machine=x86_64-pc
+ 		;;
+ 	amd64-*)
+ 		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	amdahl)
+ 		basic_machine=580-amdahl
+ 		os=-sysv
+ 		;;
+ 	amiga | amiga-*)
+ 		basic_machine=m68k-unknown
+ 		;;
+ 	amigaos | amigados)
+ 		basic_machine=m68k-unknown
+ 		os=-amigaos
+ 		;;
+ 	amigaunix | amix)
+ 		basic_machine=m68k-unknown
+ 		os=-sysv4
+ 		;;
+ 	apollo68)
+ 		basic_machine=m68k-apollo
+ 		os=-sysv
+ 		;;
+ 	apollo68bsd)
+ 		basic_machine=m68k-apollo
+ 		os=-bsd
+ 		;;
+ 	aux)
+ 		basic_machine=m68k-apple
+ 		os=-aux
+ 		;;
+ 	balance)
+ 		basic_machine=ns32k-sequent
+ 		os=-dynix
+ 		;;
+ 	c90)
+ 		basic_machine=c90-cray
+ 		os=-unicos
+ 		;;
+ 	convex-c1)
+ 		basic_machine=c1-convex
+ 		os=-bsd
+ 		;;
+ 	convex-c2)
+ 		basic_machine=c2-convex
+ 		os=-bsd
+ 		;;
+ 	convex-c32)
+ 		basic_machine=c32-convex
+ 		os=-bsd
+ 		;;
+ 	convex-c34)
+ 		basic_machine=c34-convex
+ 		os=-bsd
+ 		;;
+ 	convex-c38)
+ 		basic_machine=c38-convex
+ 		os=-bsd
+ 		;;
+ 	cray | j90)
+ 		basic_machine=j90-cray
+ 		os=-unicos
+ 		;;
+ 	craynv)
+ 		basic_machine=craynv-cray
+ 		os=-unicosmp
+ 		;;
+ 	cr16c)
+ 		basic_machine=cr16c-unknown
+ 		os=-elf
+ 		;;
+ 	crds | unos)
+ 		basic_machine=m68k-crds
+ 		;;
+ 	crisv32 | crisv32-* | etraxfs*)
+ 		basic_machine=crisv32-axis
+ 		;;
+ 	cris | cris-* | etrax*)
+ 		basic_machine=cris-axis
+ 		;;
+ 	crx)
+ 		basic_machine=crx-unknown
+ 		os=-elf
+ 		;;
+ 	da30 | da30-*)
+ 		basic_machine=m68k-da30
+ 		;;
+ 	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ 		basic_machine=mips-dec
+ 		;;
+ 	decsystem10* | dec10*)
+ 		basic_machine=pdp10-dec
+ 		os=-tops10
+ 		;;
+ 	decsystem20* | dec20*)
+ 		basic_machine=pdp10-dec
+ 		os=-tops20
+ 		;;
+ 	delta | 3300 | motorola-3300 | motorola-delta \
+ 	      | 3300-motorola | delta-motorola)
+ 		basic_machine=m68k-motorola
+ 		;;
+ 	delta88)
+ 		basic_machine=m88k-motorola
+ 		os=-sysv3
+ 		;;
+ 	djgpp)
+ 		basic_machine=i586-pc
+ 		os=-msdosdjgpp
+ 		;;
+ 	dpx20 | dpx20-*)
+ 		basic_machine=rs6000-bull
+ 		os=-bosx
+ 		;;
+ 	dpx2* | dpx2*-bull)
+ 		basic_machine=m68k-bull
+ 		os=-sysv3
+ 		;;
+ 	ebmon29k)
+ 		basic_machine=a29k-amd
+ 		os=-ebmon
+ 		;;
+ 	elxsi)
+ 		basic_machine=elxsi-elxsi
+ 		os=-bsd
+ 		;;
+ 	encore | umax | mmax)
+ 		basic_machine=ns32k-encore
+ 		;;
+ 	es1800 | OSE68k | ose68k | ose | OSE)
+ 		basic_machine=m68k-ericsson
+ 		os=-ose
+ 		;;
+ 	fx2800)
+ 		basic_machine=i860-alliant
+ 		;;
+ 	genix)
+ 		basic_machine=ns32k-ns
+ 		;;
+ 	gmicro)
+ 		basic_machine=tron-gmicro
+ 		os=-sysv
+ 		;;
+ 	go32)
+ 		basic_machine=i386-pc
+ 		os=-go32
+ 		;;
+ 	h3050r* | hiux*)
+ 		basic_machine=hppa1.1-hitachi
+ 		os=-hiuxwe2
+ 		;;
+ 	h8300hms)
+ 		basic_machine=h8300-hitachi
+ 		os=-hms
+ 		;;
+ 	h8300xray)
+ 		basic_machine=h8300-hitachi
+ 		os=-xray
+ 		;;
+ 	h8500hms)
+ 		basic_machine=h8500-hitachi
+ 		os=-hms
+ 		;;
+ 	harris)
+ 		basic_machine=m88k-harris
+ 		os=-sysv3
+ 		;;
+ 	hp300-*)
+ 		basic_machine=m68k-hp
+ 		;;
+ 	hp300bsd)
+ 		basic_machine=m68k-hp
+ 		os=-bsd
+ 		;;
+ 	hp300hpux)
+ 		basic_machine=m68k-hp
+ 		os=-hpux
+ 		;;
+ 	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ 		basic_machine=hppa1.0-hp
+ 		;;
+ 	hp9k2[0-9][0-9] | hp9k31[0-9])
+ 		basic_machine=m68000-hp
+ 		;;
+ 	hp9k3[2-9][0-9])
+ 		basic_machine=m68k-hp
+ 		;;
+ 	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ 		basic_machine=hppa1.0-hp
+ 		;;
+ 	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ 		basic_machine=hppa1.1-hp
+ 		;;
+ 	hp9k78[0-9] | hp78[0-9])
+ 		# FIXME: really hppa2.0-hp
+ 		basic_machine=hppa1.1-hp
+ 		;;
+ 	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ 		# FIXME: really hppa2.0-hp
+ 		basic_machine=hppa1.1-hp
+ 		;;
+ 	hp9k8[0-9][13679] | hp8[0-9][13679])
+ 		basic_machine=hppa1.1-hp
+ 		;;
+ 	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ 		basic_machine=hppa1.0-hp
+ 		;;
+ 	hppa-next)
+ 		os=-nextstep3
+ 		;;
+ 	hppaosf)
+ 		basic_machine=hppa1.1-hp
+ 		os=-osf
+ 		;;
+ 	hppro)
+ 		basic_machine=hppa1.1-hp
+ 		os=-proelf
+ 		;;
+ 	i370-ibm* | ibm*)
+ 		basic_machine=i370-ibm
+ 		;;
+ # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+ 	i*86v32)
+ 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ 		os=-sysv32
+ 		;;
+ 	i*86v4*)
+ 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ 		os=-sysv4
+ 		;;
+ 	i*86v)
+ 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ 		os=-sysv
+ 		;;
+ 	i*86sol2)
+ 		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ 		os=-solaris2
+ 		;;
+ 	i386mach)
+ 		basic_machine=i386-mach
+ 		os=-mach
+ 		;;
+ 	i386-vsta | vsta)
+ 		basic_machine=i386-unknown
+ 		os=-vsta
+ 		;;
+ 	iris | iris4d)
+ 		basic_machine=mips-sgi
+ 		case $os in
+ 		    -irix*)
+ 			;;
+ 		    *)
+ 			os=-irix4
+ 			;;
+ 		esac
+ 		;;
+ 	isi68 | isi)
+ 		basic_machine=m68k-isi
+ 		os=-sysv
+ 		;;
+ 	m88k-omron*)
+ 		basic_machine=m88k-omron
+ 		;;
+ 	magnum | m3230)
+ 		basic_machine=mips-mips
+ 		os=-sysv
+ 		;;
+ 	merlin)
+ 		basic_machine=ns32k-utek
+ 		os=-sysv
+ 		;;
+ 	mingw32)
+ 		basic_machine=i386-pc
+ 		os=-mingw32
+ 		;;
+ 	miniframe)
+ 		basic_machine=m68000-convergent
+ 		;;
+ 	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ 		basic_machine=m68k-atari
+ 		os=-mint
+ 		;;
+ 	mips3*-*)
+ 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ 		;;
+ 	mips3*)
+ 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ 		;;
+ 	monitor)
+ 		basic_machine=m68k-rom68k
+ 		os=-coff
+ 		;;
+ 	morphos)
+ 		basic_machine=powerpc-unknown
+ 		os=-morphos
+ 		;;
+ 	msdos)
+ 		basic_machine=i386-pc
+ 		os=-msdos
+ 		;;
+ 	ms1-*)
+ 		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ 		;;
+ 	mvs)
+ 		basic_machine=i370-ibm
+ 		os=-mvs
+ 		;;
+ 	ncr3000)
+ 		basic_machine=i486-ncr
+ 		os=-sysv4
+ 		;;
+ 	netbsd386)
+ 		basic_machine=i386-unknown
+ 		os=-netbsd
+ 		;;
+ 	netwinder)
+ 		basic_machine=armv4l-rebel
+ 		os=-linux
+ 		;;
+ 	news | news700 | news800 | news900)
+ 		basic_machine=m68k-sony
+ 		os=-newsos
+ 		;;
+ 	news1000)
+ 		basic_machine=m68030-sony
+ 		os=-newsos
+ 		;;
+ 	news-3600 | risc-news)
+ 		basic_machine=mips-sony
+ 		os=-newsos
+ 		;;
+ 	necv70)
+ 		basic_machine=v70-nec
+ 		os=-sysv
+ 		;;
+ 	next | m*-next )
+ 		basic_machine=m68k-next
+ 		case $os in
+ 		    -nextstep* )
+ 			;;
+ 		    -ns2*)
+ 		      os=-nextstep2
+ 			;;
+ 		    *)
+ 		      os=-nextstep3
+ 			;;
+ 		esac
+ 		;;
+ 	nh3000)
+ 		basic_machine=m68k-harris
+ 		os=-cxux
+ 		;;
+ 	nh[45]000)
+ 		basic_machine=m88k-harris
+ 		os=-cxux
+ 		;;
+ 	nindy960)
+ 		basic_machine=i960-intel
+ 		os=-nindy
+ 		;;
+ 	mon960)
+ 		basic_machine=i960-intel
+ 		os=-mon960
+ 		;;
+ 	nonstopux)
+ 		basic_machine=mips-compaq
+ 		os=-nonstopux
+ 		;;
+ 	np1)
+ 		basic_machine=np1-gould
+ 		;;
+ 	nsr-tandem)
+ 		basic_machine=nsr-tandem
+ 		;;
+ 	op50n-* | op60c-*)
+ 		basic_machine=hppa1.1-oki
+ 		os=-proelf
+ 		;;
+ 	openrisc | openrisc-*)
+ 		basic_machine=or32-unknown
+ 		;;
+ 	os400)
+ 		basic_machine=powerpc-ibm
+ 		os=-os400
+ 		;;
+ 	OSE68000 | ose68000)
+ 		basic_machine=m68000-ericsson
+ 		os=-ose
+ 		;;
+ 	os68k)
+ 		basic_machine=m68k-none
+ 		os=-os68k
+ 		;;
+ 	pa-hitachi)
+ 		basic_machine=hppa1.1-hitachi
+ 		os=-hiuxwe2
+ 		;;
+ 	paragon)
+ 		basic_machine=i860-intel
+ 		os=-osf
+ 		;;
+ 	pbd)
+ 		basic_machine=sparc-tti
+ 		;;
+ 	pbb)
+ 		basic_machine=m68k-tti
+ 		;;
+ 	pc532 | pc532-*)
+ 		basic_machine=ns32k-pc532
+ 		;;
+ 	pc98)
+ 		basic_machine=i386-pc
+ 		;;
+ 	pc98-*)
+ 		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	pentium | p5 | k5 | k6 | nexgen | viac3)
+ 		basic_machine=i586-pc
+ 		;;
+ 	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ 		basic_machine=i686-pc
+ 		;;
+ 	pentiumii | pentium2 | pentiumiii | pentium3)
+ 		basic_machine=i686-pc
+ 		;;
+ 	pentium4)
+ 		basic_machine=i786-pc
+ 		;;
+ 	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ 		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ 		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ 		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	pentium4-*)
+ 		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	pn)
+ 		basic_machine=pn-gould
+ 		;;
+ 	power)	basic_machine=power-ibm
+ 		;;
+ 	ppc)	basic_machine=powerpc-unknown
+ 		;;
+ 	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	ppcle | powerpclittle | ppc-le | powerpc-little)
+ 		basic_machine=powerpcle-unknown
+ 		;;
+ 	ppcle-* | powerpclittle-*)
+ 		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	ppc64)	basic_machine=powerpc64-unknown
+ 		;;
+ 	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ 		basic_machine=powerpc64le-unknown
+ 		;;
+ 	ppc64le-* | powerpc64little-*)
+ 		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ 		;;
+ 	ps2)
+ 		basic_machine=i386-ibm
+ 		;;
+ 	pw32)
+ 		basic_machine=i586-unknown
+ 		os=-pw32
+ 		;;
+ 	rdos)
+ 		basic_machine=i386-pc
+ 		os=-rdos
+ 		;;
+ 	rom68k)
+ 		basic_machine=m68k-rom68k
+ 		os=-coff
+ 		;;
+ 	rm[46]00)
+ 		basic_machine=mips-siemens
+ 		;;
+ 	rtpc | rtpc-*)
+ 		basic_machine=romp-ibm
+ 		;;
+ 	s390 | s390-*)
+ 		basic_machine=s390-ibm
+ 		;;
+ 	s390x | s390x-*)
+ 		basic_machine=s390x-ibm
+ 		;;
+ 	sa29200)
+ 		basic_machine=a29k-amd
+ 		os=-udi
+ 		;;
+ 	sb1)
+ 		basic_machine=mipsisa64sb1-unknown
+ 		;;
+ 	sb1el)
+ 		basic_machine=mipsisa64sb1el-unknown
+ 		;;
+ 	sei)
+ 		basic_machine=mips-sei
+ 		os=-seiux
+ 		;;
+ 	sequent)
+ 		basic_machine=i386-sequent
+ 		;;
+ 	sh)
+ 		basic_machine=sh-hitachi
+ 		os=-hms
+ 		;;
+ 	sh64)
+ 		basic_machine=sh64-unknown
+ 		;;
+ 	sparclite-wrs | simso-wrs)
+ 		basic_machine=sparclite-wrs
+ 		os=-vxworks
+ 		;;
+ 	sps7)
+ 		basic_machine=m68k-bull
+ 		os=-sysv2
+ 		;;
+ 	spur)
+ 		basic_machine=spur-unknown
+ 		;;
+ 	st2000)
+ 		basic_machine=m68k-tandem
+ 		;;
+ 	stratus)
+ 		basic_machine=i860-stratus
+ 		os=-sysv4
+ 		;;
+ 	sun2)
+ 		basic_machine=m68000-sun
+ 		;;
+ 	sun2os3)
+ 		basic_machine=m68000-sun
+ 		os=-sunos3
+ 		;;
+ 	sun2os4)
+ 		basic_machine=m68000-sun
+ 		os=-sunos4
+ 		;;
+ 	sun3os3)
+ 		basic_machine=m68k-sun
+ 		os=-sunos3
+ 		;;
+ 	sun3os4)
+ 		basic_machine=m68k-sun
+ 		os=-sunos4
+ 		;;
+ 	sun4os3)
+ 		basic_machine=sparc-sun
+ 		os=-sunos3
+ 		;;
+ 	sun4os4)
+ 		basic_machine=sparc-sun
+ 		os=-sunos4
+ 		;;
+ 	sun4sol2)
+ 		basic_machine=sparc-sun
+ 		os=-solaris2
+ 		;;
+ 	sun3 | sun3-*)
+ 		basic_machine=m68k-sun
+ 		;;
+ 	sun4)
+ 		basic_machine=sparc-sun
+ 		;;
+ 	sun386 | sun386i | roadrunner)
+ 		basic_machine=i386-sun
+ 		;;
+ 	sv1)
+ 		basic_machine=sv1-cray
+ 		os=-unicos
+ 		;;
+ 	symmetry)
+ 		basic_machine=i386-sequent
+ 		os=-dynix
+ 		;;
+ 	t3e)
+ 		basic_machine=alphaev5-cray
+ 		os=-unicos
+ 		;;
+ 	t90)
+ 		basic_machine=t90-cray
+ 		os=-unicos
+ 		;;
+ 	tic54x | c54x*)
+ 		basic_machine=tic54x-unknown
+ 		os=-coff
+ 		;;
+ 	tic55x | c55x*)
+ 		basic_machine=tic55x-unknown
+ 		os=-coff
+ 		;;
+ 	tic6x | c6x*)
+ 		basic_machine=tic6x-unknown
+ 		os=-coff
+ 		;;
+ 	tx39)
+ 		basic_machine=mipstx39-unknown
+ 		;;
+ 	tx39el)
+ 		basic_machine=mipstx39el-unknown
+ 		;;
+ 	toad1)
+ 		basic_machine=pdp10-xkl
+ 		os=-tops20
+ 		;;
+ 	tower | tower-32)
+ 		basic_machine=m68k-ncr
+ 		;;
+ 	tpf)
+ 		basic_machine=s390x-ibm
+ 		os=-tpf
+ 		;;
+ 	udi29k)
+ 		basic_machine=a29k-amd
+ 		os=-udi
+ 		;;
+ 	ultra3)
+ 		basic_machine=a29k-nyu
+ 		os=-sym1
+ 		;;
+ 	v810 | necv810)
+ 		basic_machine=v810-nec
+ 		os=-none
+ 		;;
+ 	vaxv)
+ 		basic_machine=vax-dec
+ 		os=-sysv
+ 		;;
+ 	vms)
+ 		basic_machine=vax-dec
+ 		os=-vms
+ 		;;
+ 	vpp*|vx|vx-*)
+ 		basic_machine=f301-fujitsu
+ 		;;
+ 	vxworks960)
+ 		basic_machine=i960-wrs
+ 		os=-vxworks
+ 		;;
+ 	vxworks68)
+ 		basic_machine=m68k-wrs
+ 		os=-vxworks
+ 		;;
+ 	vxworks29k)
+ 		basic_machine=a29k-wrs
+ 		os=-vxworks
+ 		;;
+ 	w65*)
+ 		basic_machine=w65-wdc
+ 		os=-none
+ 		;;
+ 	w89k-*)
+ 		basic_machine=hppa1.1-winbond
+ 		os=-proelf
+ 		;;
+ 	xbox)
+ 		basic_machine=i686-pc
+ 		os=-mingw32
+ 		;;
+ 	xps | xps100)
+ 		basic_machine=xps100-honeywell
+ 		;;
+ 	ymp)
+ 		basic_machine=ymp-cray
+ 		os=-unicos
+ 		;;
+ 	z8k-*-coff)
+ 		basic_machine=z8k-unknown
+ 		os=-sim
+ 		;;
+ 	none)
+ 		basic_machine=none-none
+ 		os=-none
+ 		;;
+ 
+ # Here we handle the default manufacturer of certain CPU types.  It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ 	w89k)
+ 		basic_machine=hppa1.1-winbond
+ 		;;
+ 	op50n)
+ 		basic_machine=hppa1.1-oki
+ 		;;
+ 	op60c)
+ 		basic_machine=hppa1.1-oki
+ 		;;
+ 	romp)
+ 		basic_machine=romp-ibm
+ 		;;
+ 	mmix)
+ 		basic_machine=mmix-knuth
+ 		;;
+ 	rs6000)
+ 		basic_machine=rs6000-ibm
+ 		;;
+ 	vax)
+ 		basic_machine=vax-dec
+ 		;;
+ 	pdp10)
+ 		# there are many clones, so DEC is not a safe bet
+ 		basic_machine=pdp10-unknown
+ 		;;
+ 	pdp11)
+ 		basic_machine=pdp11-dec
+ 		;;
+ 	we32k)
+ 		basic_machine=we32k-att
+ 		;;
+ 	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+ 		basic_machine=sh-unknown
+ 		;;
+ 	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ 		basic_machine=sparc-sun
+ 		;;
+ 	cydra)
+ 		basic_machine=cydra-cydrome
+ 		;;
+ 	orion)
+ 		basic_machine=orion-highlevel
+ 		;;
+ 	orion105)
+ 		basic_machine=clipper-highlevel
+ 		;;
+ 	mac | mpw | mac-mpw)
+ 		basic_machine=m68k-apple
+ 		;;
+ 	pmac | pmac-mpw)
+ 		basic_machine=powerpc-apple
+ 		;;
+ 	*-unknown)
+ 		# Make sure to match an already-canonicalized machine name.
+ 		;;
+ 	*)
+ 		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ 		exit 1
+ 		;;
+ esac
+ 
+ # Here we canonicalize certain aliases for manufacturers.
+ case $basic_machine in
+ 	*-digital*)
+ 		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ 		;;
+ 	*-commodore*)
+ 		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ 		;;
+ 	*)
+ 		;;
+ esac
+ 
+ # Decode manufacturer-specific aliases for certain operating systems.
+ 
+ if [ x"$os" != x"" ]
+ then
+ case $os in
+         # First match some system type aliases
+         # that might get confused with valid system types.
+ 	# -solaris* is a basic system type, with this one exception.
+ 	-solaris1 | -solaris1.*)
+ 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ 		;;
+ 	-solaris)
+ 		os=-solaris2
+ 		;;
+ 	-svr4*)
+ 		os=-sysv4
+ 		;;
+ 	-unixware*)
+ 		os=-sysv4.2uw
+ 		;;
+ 	-gnu/linux*)
+ 		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ 		;;
+ 	# First accept the basic system types.
+ 	# The portable systems comes first.
+ 	# Each alternative MUST END IN A *, to match a version number.
+ 	# -sysv* is not here because it comes later, after sysvr4.
+ 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ 	      | -aos* \
+ 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ 	      | -openbsd* | -solidbsd* \
+ 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ 	      | -chorusos* | -chorusrdb* \
+ 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ 	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+ 	      | -uxpv* | -beos* | -mpeix* | -udk* \
+ 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ 	      | -skyos* | -haiku* | -rdos*)
+ 	# Remember, each alternative MUST END IN *, to match a version number.
+ 		;;
+ 	-qnx*)
+ 		case $basic_machine in
+ 		    x86-* | i*86-*)
+ 			;;
+ 		    *)
+ 			os=-nto$os
+ 			;;
+ 		esac
+ 		;;
+ 	-nto-qnx*)
+ 		;;
+ 	-nto*)
+ 		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ 		;;
+ 	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ 	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ 	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ 		;;
+ 	-mac*)
+ 		os=`echo $os | sed -e 's|mac|macos|'`
+ 		;;
+ 	-linux-dietlibc)
+ 		os=-linux-dietlibc
+ 		;;
+ 	-linux*)
+ 		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ 		;;
+ 	-sunos5*)
+ 		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ 		;;
+ 	-sunos6*)
+ 		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ 		;;
+ 	-opened*)
+ 		os=-openedition
+ 		;;
+         -os400*)
+ 		os=-os400
+ 		;;
+ 	-wince*)
+ 		os=-wince
+ 		;;
+ 	-osfrose*)
+ 		os=-osfrose
+ 		;;
+ 	-osf*)
+ 		os=-osf
+ 		;;
+ 	-utek*)
+ 		os=-bsd
+ 		;;
+ 	-dynix*)
+ 		os=-bsd
+ 		;;
+ 	-acis*)
+ 		os=-aos
+ 		;;
+ 	-atheos*)
+ 		os=-atheos
+ 		;;
+ 	-syllable*)
+ 		os=-syllable
+ 		;;
+ 	-386bsd)
+ 		os=-bsd
+ 		;;
+ 	-ctix* | -uts*)
+ 		os=-sysv
+ 		;;
+ 	-nova*)
+ 		os=-rtmk-nova
+ 		;;
+ 	-ns2 )
+ 		os=-nextstep2
+ 		;;
+ 	-nsk*)
+ 		os=-nsk
+ 		;;
+ 	# Preserve the version number of sinix5.
+ 	-sinix5.*)
+ 		os=`echo $os | sed -e 's|sinix|sysv|'`
+ 		;;
+ 	-sinix*)
+ 		os=-sysv4
+ 		;;
+         -tpf*)
+ 		os=-tpf
+ 		;;
+ 	-triton*)
+ 		os=-sysv3
+ 		;;
+ 	-oss*)
+ 		os=-sysv3
+ 		;;
+ 	-svr4)
+ 		os=-sysv4
+ 		;;
+ 	-svr3)
+ 		os=-sysv3
+ 		;;
+ 	-sysvr4)
+ 		os=-sysv4
+ 		;;
+ 	# This must come after -sysvr4.
+ 	-sysv*)
+ 		;;
+ 	-ose*)
+ 		os=-ose
+ 		;;
+ 	-es1800*)
+ 		os=-ose
+ 		;;
+ 	-xenix)
+ 		os=-xenix
+ 		;;
+ 	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ 		os=-mint
+ 		;;
+ 	-aros*)
+ 		os=-aros
+ 		;;
+ 	-kaos*)
+ 		os=-kaos
+ 		;;
+ 	-zvmoe)
+ 		os=-zvmoe
+ 		;;
+ 	-none)
+ 		;;
+ 	*)
+ 		# Get rid of the `-' at the beginning of $os.
+ 		os=`echo $os | sed 's/[^-]*-//'`
+ 		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ 		exit 1
+ 		;;
+ esac
+ else
+ 
+ # Here we handle the default operating systems that come with various machines.
+ # The value should be what the vendor currently ships out the door with their
+ # machine or put another way, the most popular os provided with the machine.
+ 
+ # Note that if you're going to try to match "-MANUFACTURER" here (say,
+ # "-sun"), then you have to tell the case statement up towards the top
+ # that MANUFACTURER isn't an operating system.  Otherwise, code above
+ # will signal an error saying that MANUFACTURER isn't an operating
+ # system, and we'll never get to this point.
+ 
+ case $basic_machine in
+         spu-*)
+ 		os=-elf
+ 		;;
+ 	*-acorn)
+ 		os=-riscix1.2
+ 		;;
+ 	arm*-rebel)
+ 		os=-linux
+ 		;;
+ 	arm*-semi)
+ 		os=-aout
+ 		;;
+         c4x-* | tic4x-*)
+         	os=-coff
+ 		;;
+ 	# This must come before the *-dec entry.
+ 	pdp10-*)
+ 		os=-tops20
+ 		;;
+ 	pdp11-*)
+ 		os=-none
+ 		;;
+ 	*-dec | vax-*)
+ 		os=-ultrix4.2
+ 		;;
+ 	m68*-apollo)
+ 		os=-domain
+ 		;;
+ 	i386-sun)
+ 		os=-sunos4.0.2
+ 		;;
+ 	m68000-sun)
+ 		os=-sunos3
+ 		# This also exists in the configure program, but was not the
+ 		# default.
+ 		# os=-sunos4
+ 		;;
+ 	m68*-cisco)
+ 		os=-aout
+ 		;;
+ 	mips*-cisco)
+ 		os=-elf
+ 		;;
+ 	mips*-*)
+ 		os=-elf
+ 		;;
+ 	or32-*)
+ 		os=-coff
+ 		;;
+ 	*-tti)	# must be before sparc entry or we get the wrong os.
+ 		os=-sysv3
+ 		;;
+ 	sparc-* | *-sun)
+ 		os=-sunos4.1.1
+ 		;;
+ 	*-be)
+ 		os=-beos
+ 		;;
+ 	*-haiku)
+ 		os=-haiku
+ 		;;
+ 	*-ibm)
+ 		os=-aix
+ 		;;
+     	*-knuth)
+ 		os=-mmixware
+ 		;;
+ 	*-wec)
+ 		os=-proelf
+ 		;;
+ 	*-winbond)
+ 		os=-proelf
+ 		;;
+ 	*-oki)
+ 		os=-proelf
+ 		;;
+ 	*-hp)
+ 		os=-hpux
+ 		;;
+ 	*-hitachi)
+ 		os=-hiux
+ 		;;
+ 	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ 		os=-sysv
+ 		;;
+ 	*-cbm)
+ 		os=-amigaos
+ 		;;
+ 	*-dg)
+ 		os=-dgux
+ 		;;
+ 	*-dolphin)
+ 		os=-sysv3
+ 		;;
+ 	m68k-ccur)
+ 		os=-rtu
+ 		;;
+ 	m88k-omron*)
+ 		os=-luna
+ 		;;
+ 	*-next )
+ 		os=-nextstep
+ 		;;
+ 	*-sequent)
+ 		os=-ptx
+ 		;;
+ 	*-crds)
+ 		os=-unos
+ 		;;
+ 	*-ns)
+ 		os=-genix
+ 		;;
+ 	i370-*)
+ 		os=-mvs
+ 		;;
+ 	*-next)
+ 		os=-nextstep3
+ 		;;
+ 	*-gould)
+ 		os=-sysv
+ 		;;
+ 	*-highlevel)
+ 		os=-bsd
+ 		;;
+ 	*-encore)
+ 		os=-bsd
+ 		;;
+ 	*-sgi)
+ 		os=-irix
+ 		;;
+ 	*-siemens)
+ 		os=-sysv4
+ 		;;
+ 	*-masscomp)
+ 		os=-rtu
+ 		;;
+ 	f30[01]-fujitsu | f700-fujitsu)
+ 		os=-uxpv
+ 		;;
+ 	*-rom68k)
+ 		os=-coff
+ 		;;
+ 	*-*bug)
+ 		os=-coff
+ 		;;
+ 	*-apple)
+ 		os=-macos
+ 		;;
+ 	*-atari*)
+ 		os=-mint
+ 		;;
+ 	*)
+ 		os=-none
+ 		;;
+ esac
+ fi
+ 
+ # Here we handle the case where we know the os, and the CPU type, but not the
+ # manufacturer.  We pick the logical manufacturer.
+ vendor=unknown
+ case $basic_machine in
+ 	*-unknown)
+ 		case $os in
+ 			-riscix*)
+ 				vendor=acorn
+ 				;;
+ 			-sunos*)
+ 				vendor=sun
+ 				;;
+ 			-aix*)
+ 				vendor=ibm
+ 				;;
+ 			-beos*)
+ 				vendor=be
+ 				;;
+ 			-hpux*)
+ 				vendor=hp
+ 				;;
+ 			-mpeix*)
+ 				vendor=hp
+ 				;;
+ 			-hiux*)
+ 				vendor=hitachi
+ 				;;
+ 			-unos*)
+ 				vendor=crds
+ 				;;
+ 			-dgux*)
+ 				vendor=dg
+ 				;;
+ 			-luna*)
+ 				vendor=omron
+ 				;;
+ 			-genix*)
+ 				vendor=ns
+ 				;;
+ 			-mvs* | -opened*)
+ 				vendor=ibm
+ 				;;
+ 			-os400*)
+ 				vendor=ibm
+ 				;;
+ 			-ptx*)
+ 				vendor=sequent
+ 				;;
+ 			-tpf*)
+ 				vendor=ibm
+ 				;;
+ 			-vxsim* | -vxworks* | -windiss*)
+ 				vendor=wrs
+ 				;;
+ 			-aux*)
+ 				vendor=apple
+ 				;;
+ 			-hms*)
+ 				vendor=hitachi
+ 				;;
+ 			-mpw* | -macos*)
+ 				vendor=apple
+ 				;;
+ 			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ 				vendor=atari
+ 				;;
+ 			-vos*)
+ 				vendor=stratus
+ 				;;
+ 		esac
+ 		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ 		;;
+ esac
+ 
+ echo $basic_machine$os
+ exit
+ 
+ # Local variables:
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
+ # time-stamp-start: "timestamp='"
+ # time-stamp-format: "%:y-%02m-%02d"
+ # time-stamp-end: "'"
+ # End:
diff -Nrc2 texinfo-4.12/build-aux/depcomp texinfo-4.13/build-aux/depcomp
*** texinfo-4.12/build-aux/depcomp	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/build-aux/depcomp	Tue Dec 25 15:57:16 2007
***************
*** 0 ****
--- 1,571 ----
+ #! /bin/sh
+ # depcomp - compile a program generating dependencies as side-effects
+ 
+ scriptversion=2006-05-10.23
+ 
+ # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ # 02110-1301, USA.
+ 
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+ 
+ # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+ 
+ case $1 in
+   '')
+      echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+      exit 1;
+      ;;
+   -h | --h*)
+     cat <<\EOF
+ Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+ 
+ Run PROGRAMS ARGS to compile a file, generating dependencies
+ as side-effects.
+ 
+ Environment variables:
+   depmode     Dependency tracking mode.
+   source      Source file read by `PROGRAMS ARGS'.
+   object      Object file output by `PROGRAMS ARGS'.
+   DEPDIR      directory where to store dependencies.
+   depfile     Dependency file to output.
+   tmpdepfile  Temporary file to use when outputing dependencies.
+   libtool     Whether libtool is used (yes/no).
+ 
+ Report bugs to <bug-automake@gnu.org>.
+ EOF
+     exit $?
+     ;;
+   -v | --v*)
+     echo "depcomp $scriptversion"
+     exit $?
+     ;;
+ esac
+ 
+ if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+   echo "depcomp: Variables source, object and depmode must be set" 1>&2
+   exit 1
+ fi
+ 
+ # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+ depfile=${depfile-`echo "$object" |
+   sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+ 
+ rm -f "$tmpdepfile"
+ 
+ # Some modes work just like other modes, but use different flags.  We
+ # parameterize here, but still list the modes in the big case below,
+ # to make depend.m4 easier to write.  Note that we *cannot* use a case
+ # here, because this file can only contain one case statement.
+ if test "$depmode" = hp; then
+   # HP compiler uses -M and no extra arg.
+   gccflag=-M
+   depmode=gcc
+ fi
+ 
+ if test "$depmode" = dashXmstdout; then
+    # This is just like dashmstdout with a different argument.
+    dashmflag=-xM
+    depmode=dashmstdout
+ fi
+ 
+ case "$depmode" in
+ gcc3)
+ ## gcc 3 implements dependency tracking that does exactly what
+ ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+ ## it if -MD -MP comes after the -MF stuff.  Hmm.
+   "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+     rm -f "$tmpdepfile"
+     exit $stat
+   fi
+   mv "$tmpdepfile" "$depfile"
+   ;;
+ 
+ gcc)
+ ## There are various ways to get dependency output from gcc.  Here's
+ ## why we pick this rather obscure method:
+ ## - Don't want to use -MD because we'd like the dependencies to end
+ ##   up in a subdir.  Having to rename by hand is ugly.
+ ##   (We might end up doing this anyway to support other compilers.)
+ ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+ ##   -MM, not -M (despite what the docs say).
+ ## - Using -M directly means running the compiler twice (even worse
+ ##   than renaming).
+   if test -z "$gccflag"; then
+     gccflag=-MD,
+   fi
+   "$@" -Wp,"$gccflag$tmpdepfile"
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+     rm -f "$tmpdepfile"
+     exit $stat
+   fi
+   rm -f "$depfile"
+   echo "$object : \\" > "$depfile"
+   alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+ ## The second -e expression handles DOS-style file names with drive letters.
+   sed -e 's/^[^:]*: / /' \
+       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+ ## This next piece of magic avoids the `deleted header file' problem.
+ ## The problem is that when a header file which appears in a .P file
+ ## is deleted, the dependency causes make to die (because there is
+ ## typically no way to rebuild the header).  We avoid this by adding
+ ## dummy dependencies for each header file.  Too bad gcc doesn't do
+ ## this for us directly.
+   tr ' ' '
+ ' < "$tmpdepfile" |
+ ## Some versions of gcc put a space before the `:'.  On the theory
+ ## that the space means something, we add a space to the output as
+ ## well.
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
+ ## correctly.  Breaking it into two sed invocations is a workaround.
+     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+   rm -f "$tmpdepfile"
+   ;;
+ 
+ hp)
+   # This case exists only to let depend.m4 do its work.  It works by
+   # looking at the text of this script.  This case will never be run,
+   # since it is checked for above.
+   exit 1
+   ;;
+ 
+ sgi)
+   if test "$libtool" = yes; then
+     "$@" "-Wp,-MDupdate,$tmpdepfile"
+   else
+     "$@" -MDupdate "$tmpdepfile"
+   fi
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+     rm -f "$tmpdepfile"
+     exit $stat
+   fi
+   rm -f "$depfile"
+ 
+   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+     echo "$object : \\" > "$depfile"
+ 
+     # Clip off the initial element (the dependent).  Don't try to be
+     # clever and replace this with sed code, as IRIX sed won't handle
+     # lines with more than a fixed number of characters (4096 in
+     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+     # the IRIX cc adds comments like `#:fec' to the end of the
+     # dependency line.
+     tr ' ' '
+ ' < "$tmpdepfile" \
+     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+     tr '
+ ' ' ' >> $depfile
+     echo >> $depfile
+ 
+     # The second pass generates a dummy entry for each header file.
+     tr ' ' '
+ ' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+    >> $depfile
+   else
+     # The sourcefile does not contain any dependencies, so just
+     # store a dummy comment line, to avoid errors with the Makefile
+     # "include basename.Plo" scheme.
+     echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+ 
+ aix)
+   # The C for AIX Compiler uses -M and outputs the dependencies
+   # in a .u file.  In older versions, this file always lives in the
+   # current directory.  Also, the AIX compiler puts `$object:' at the
+   # start of each line; $object doesn't have directory information.
+   # Version 6 uses the directory in both cases.
+   stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
+   tmpdepfile="$stripped.u"
+   if test "$libtool" = yes; then
+     "$@" -Wc,-M
+   else
+     "$@" -M
+   fi
+   stat=$?
+ 
+   if test -f "$tmpdepfile"; then :
+   else
+     stripped=`echo "$stripped" | sed 's,^.*/,,'`
+     tmpdepfile="$stripped.u"
+   fi
+ 
+   if test $stat -eq 0; then :
+   else
+     rm -f "$tmpdepfile"
+     exit $stat
+   fi
+ 
+   if test -f "$tmpdepfile"; then
+     outname="$stripped.o"
+     # Each line is of the form `foo.o: dependent.h'.
+     # Do two passes, one to just change these to
+     # `$object: dependent.h' and one to simply `dependent.h:'.
+     sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+     sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+   else
+     # The sourcefile does not contain any dependencies, so just
+     # store a dummy comment line, to avoid errors with the Makefile
+     # "include basename.Plo" scheme.
+     echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+ 
+ icc)
+   # Intel's C compiler understands `-MD -MF file'.  However on
+   #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+   # ICC 7.0 will fill foo.d with something like
+   #    foo.o: sub/foo.c
+   #    foo.o: sub/foo.h
+   # which is wrong.  We want:
+   #    sub/foo.o: sub/foo.c
+   #    sub/foo.o: sub/foo.h
+   #    sub/foo.c:
+   #    sub/foo.h:
+   # ICC 7.1 will output
+   #    foo.o: sub/foo.c sub/foo.h
+   # and will wrap long lines using \ :
+   #    foo.o: sub/foo.c ... \
+   #     sub/foo.h ... \
+   #     ...
+ 
+   "$@" -MD -MF "$tmpdepfile"
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+     rm -f "$tmpdepfile"
+     exit $stat
+   fi
+   rm -f "$depfile"
+   # Each line is of the form `foo.o: dependent.h',
+   # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+   # Do two passes, one to just change these to
+   # `$object: dependent.h' and one to simply `dependent.h:'.
+   sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+   # Some versions of the HPUX 10.20 sed can't process this invocation
+   # correctly.  Breaking it into two sed invocations is a workaround.
+   sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+     sed -e 's/$/ :/' >> "$depfile"
+   rm -f "$tmpdepfile"
+   ;;
+ 
+ hp2)
+   # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+   # compilers, which have integrated preprocessors.  The correct option
+   # to use with these is +Maked; it writes dependencies to a file named
+   # 'foo.d', which lands next to the object file, wherever that
+   # happens to be.
+   # Much of this is similar to the tru64 case; see comments there.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+   if test "$libtool" = yes; then
+     tmpdepfile1=$dir$base.d
+     tmpdepfile2=$dir.libs/$base.d
+     "$@" -Wc,+Maked
+   else
+     tmpdepfile1=$dir$base.d
+     tmpdepfile2=$dir$base.d
+     "$@" +Maked
+   fi
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2"
+      exit $stat
+   fi
+ 
+   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+   do
+     test -f "$tmpdepfile" && break
+   done
+   if test -f "$tmpdepfile"; then
+     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+     # Add `dependent.h:' lines.
+     sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
+   else
+     echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile" "$tmpdepfile2"
+   ;;
+ 
+ tru64)
+    # The Tru64 compiler uses -MD to generate dependencies as a side
+    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+    # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+    # dependencies in `foo.d' instead, so we check for that too.
+    # Subdirectories are respected.
+    dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+    test "x$dir" = "x$object" && dir=
+    base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ 
+    if test "$libtool" = yes; then
+       # With Tru64 cc, shared objects can also be used to make a
+       # static library.  This mechanism is used in libtool 1.4 series to
+       # handle both shared and static libraries in a single compilation.
+       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+       #
+       # With libtool 1.5 this exception was removed, and libtool now
+       # generates 2 separate objects for the 2 libraries.  These two
+       # compilations output dependencies in in $dir.libs/$base.o.d and
+       # in $dir$base.o.d.  We have to check for both files, because
+       # one of the two compilations can be disabled.  We should prefer
+       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+       # automatically cleaned when .libs/ is deleted, while ignoring
+       # the former would cause a distcleancheck panic.
+       tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
+       tmpdepfile2=$dir$base.o.d          # libtool 1.5
+       tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
+       tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
+       "$@" -Wc,-MD
+    else
+       tmpdepfile1=$dir$base.o.d
+       tmpdepfile2=$dir$base.d
+       tmpdepfile3=$dir$base.d
+       tmpdepfile4=$dir$base.d
+       "$@" -MD
+    fi
+ 
+    stat=$?
+    if test $stat -eq 0; then :
+    else
+       rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+       exit $stat
+    fi
+ 
+    for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+    do
+      test -f "$tmpdepfile" && break
+    done
+    if test -f "$tmpdepfile"; then
+       sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+       # That's a tab and a space in the [].
+       sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+    else
+       echo "#dummy" > "$depfile"
+    fi
+    rm -f "$tmpdepfile"
+    ;;
+ 
+ #nosideeffect)
+   # This comment above is used by automake to tell side-effect
+   # dependency tracking mechanisms from slower ones.
+ 
+ dashmstdout)
+   # Important note: in order to support this mode, a compiler *must*
+   # always write the preprocessed file to stdout, regardless of -o.
+   "$@" || exit $?
+ 
+   # Remove the call to Libtool.
+   if test "$libtool" = yes; then
+     while test $1 != '--mode=compile'; do
+       shift
+     done
+     shift
+   fi
+ 
+   # Remove `-o $object'.
+   IFS=" "
+   for arg
+   do
+     case $arg in
+     -o)
+       shift
+       ;;
+     $object)
+       shift
+       ;;
+     *)
+       set fnord "$@" "$arg"
+       shift # fnord
+       shift # $arg
+       ;;
+     esac
+   done
+ 
+   test -z "$dashmflag" && dashmflag=-M
+   # Require at least two characters before searching for `:'
+   # in the target name.  This is to cope with DOS-style filenames:
+   # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+   "$@" $dashmflag |
+     sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+   rm -f "$depfile"
+   cat < "$tmpdepfile" > "$depfile"
+   tr ' ' '
+ ' < "$tmpdepfile" | \
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
+ ## correctly.  Breaking it into two sed invocations is a workaround.
+     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+   rm -f "$tmpdepfile"
+   ;;
+ 
+ dashXmstdout)
+   # This case only exists to satisfy depend.m4.  It is never actually
+   # run, as this mode is specially recognized in the preamble.
+   exit 1
+   ;;
+ 
+ makedepend)
+   "$@" || exit $?
+   # Remove any Libtool call
+   if test "$libtool" = yes; then
+     while test $1 != '--mode=compile'; do
+       shift
+     done
+     shift
+   fi
+   # X makedepend
+   shift
+   cleared=no
+   for arg in "$@"; do
+     case $cleared in
+     no)
+       set ""; shift
+       cleared=yes ;;
+     esac
+     case "$arg" in
+     -D*|-I*)
+       set fnord "$@" "$arg"; shift ;;
+     # Strip any option that makedepend may not understand.  Remove
+     # the object too, otherwise makedepend will parse it as a source file.
+     -*|$object)
+       ;;
+     *)
+       set fnord "$@" "$arg"; shift ;;
+     esac
+   done
+   obj_suffix="`echo $object | sed 's/^.*\././'`"
+   touch "$tmpdepfile"
+   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+   rm -f "$depfile"
+   cat < "$tmpdepfile" > "$depfile"
+   sed '1,2d' "$tmpdepfile" | tr ' ' '
+ ' | \
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
+ ## correctly.  Breaking it into two sed invocations is a workaround.
+     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+   rm -f "$tmpdepfile" "$tmpdepfile".bak
+   ;;
+ 
+ cpp)
+   # Important note: in order to support this mode, a compiler *must*
+   # always write the preprocessed file to stdout.
+   "$@" || exit $?
+ 
+   # Remove the call to Libtool.
+   if test "$libtool" = yes; then
+     while test $1 != '--mode=compile'; do
+       shift
+     done
+     shift
+   fi
+ 
+   # Remove `-o $object'.
+   IFS=" "
+   for arg
+   do
+     case $arg in
+     -o)
+       shift
+       ;;
+     $object)
+       shift
+       ;;
+     *)
+       set fnord "$@" "$arg"
+       shift # fnord
+       shift # $arg
+       ;;
+     esac
+   done
+ 
+   "$@" -E |
+     sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+        -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+     sed '$ s: \\$::' > "$tmpdepfile"
+   rm -f "$depfile"
+   echo "$object : \\" > "$depfile"
+   cat < "$tmpdepfile" >> "$depfile"
+   sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+   rm -f "$tmpdepfile"
+   ;;
+ 
+ msvisualcpp)
+   # Important note: in order to support this mode, a compiler *must*
+   # always write the preprocessed file to stdout, regardless of -o,
+   # because we must use -o when running libtool.
+   "$@" || exit $?
+   IFS=" "
+   for arg
+   do
+     case "$arg" in
+     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ 	set fnord "$@"
+ 	shift
+ 	shift
+ 	;;
+     *)
+ 	set fnord "$@" "$arg"
+ 	shift
+ 	shift
+ 	;;
+     esac
+   done
+   "$@" -E |
+   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+   rm -f "$depfile"
+   echo "$object : \\" > "$depfile"
+   . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+   echo "	" >> "$depfile"
+   . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+   rm -f "$tmpdepfile"
+   ;;
+ 
+ none)
+   exec "$@"
+   ;;
+ 
+ *)
+   echo "Unknown depmode $depmode" 1>&2
+   exit 1
+   ;;
+ esac
+ 
+ exit 0
+ 
+ # Local Variables:
+ # mode: shell-script
+ # sh-indentation: 2
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
+ # time-stamp-start: "scriptversion="
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
+ # time-stamp-end: "$"
+ # End:
diff -Nrc2 texinfo-4.12/build-aux/install-sh texinfo-4.13/build-aux/install-sh
*** texinfo-4.12/build-aux/install-sh	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/build-aux/install-sh	Tue Dec 25 15:57:16 2007
***************
*** 0 ****
--- 1,442 ----
+ #!/bin/sh
+ # install - install a program, script, or datafile
+ 
+ scriptversion=2006-05-11.20
+ 
+ # This originates from X11R5 (mit/util/scripts/install.sh), which was
+ # later released in X11R6 (xc/config/util/install.sh) with the
+ # following copyright and license.
+ #
+ # Copyright (C) 1994 X Consortium
+ #
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
+ # of this software and associated documentation files (the "Software"), to
+ # deal in the Software without restriction, including without limitation the
+ # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+ # sell copies of the Software, and to permit persons to whom the Software is
+ # furnished to do so, subject to the following conditions:
+ #
+ # The above copyright notice and this permission notice shall be included in
+ # all copies or substantial portions of the Software.
+ #
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+ # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+ # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #
+ # Except as contained in this notice, the name of the X Consortium shall not
+ # be used in advertising or otherwise to promote the sale, use or other deal-
+ # ings in this Software without prior written authorization from the X Consor-
+ # tium.
+ #
+ #
+ # FSF changes to this file are in the public domain.
+ #
+ # Calling this script install-sh is preferred over install.sh, to prevent
+ # `make' implicit rules from creating a file called install from it
+ # when there is no Makefile.
+ #
+ # This script is compatible with the BSD install script, but was written
+ # from scratch.  It can only install one file at a time, a restriction
+ # shared with many OS's install programs.
+ 
+ nl='
+ '
+ IFS=" ""	$nl"
+ 
+ # set DOITPROG to echo to test this script
+ 
+ # Don't use :- since 4.3BSD and earlier shells don't like it.
+ doit="${DOITPROG-}"
+ 
+ # Put in absolute file names if you don't have them in your path;
+ # or use environment vars.
+ 
+ mvprog="${MVPROG-mv}"
+ cpprog="${CPPROG-cp}"
+ chmodprog="${CHMODPROG-chmod}"
+ chownprog="${CHOWNPROG-chown}"
+ chgrpprog="${CHGRPPROG-chgrp}"
+ stripprog="${STRIPPROG-strip}"
+ rmprog="${RMPROG-rm}"
+ mkdirprog="${MKDIRPROG-mkdir}"
+ 
+ posix_glob=
+ posix_mkdir=
+ 
+ # Symbolic mode for testing mkdir with directories.
+ # It is the same as 755, but also tests that "u+" works.
+ test_mode=u=rwx,g=rx,o=rx,u+wx
+ 
+ # Desired mode of installed file.
+ mode=0755
+ 
+ # Desired mode of newly created intermediate directories.
+ # It is empty if not known yet.
+ intermediate_mode=
+ 
+ chmodcmd=$chmodprog
+ chowncmd=
+ chgrpcmd=
+ stripcmd=
+ rmcmd="$rmprog -f"
+ mvcmd="$mvprog"
+ src=
+ dst=
+ dir_arg=
+ dstarg=
+ no_target_directory=
+ 
+ usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+    or: $0 [OPTION]... SRCFILES... DIRECTORY
+    or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+    or: $0 [OPTION]... -d DIRECTORIES...
+ 
+ In the 1st form, copy SRCFILE to DSTFILE.
+ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+ In the 4th, create DIRECTORIES.
+ 
+ Options:
+ -c         (ignored)
+ -d         create directories instead of installing files.
+ -g GROUP   $chgrpprog installed files to GROUP.
+ -m MODE    $chmodprog installed files to MODE.
+ -o USER    $chownprog installed files to USER.
+ -s         $stripprog installed files.
+ -t DIRECTORY  install into DIRECTORY.
+ -T         report an error if DSTFILE is a directory.
+ --help     display this help and exit.
+ --version  display version info and exit.
+ 
+ Environment variables override the default commands:
+   CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+ "
+ 
+ while test $# -ne 0; do
+   case $1 in
+     -c) shift
+         continue;;
+ 
+     -d) dir_arg=true
+         shift
+         continue;;
+ 
+     -g) chgrpcmd="$chgrpprog $2"
+         shift
+         shift
+         continue;;
+ 
+     --help) echo "$usage"; exit $?;;
+ 
+     -m) mode=$2
+         shift
+         shift
+         continue;;
+ 
+     -o) chowncmd="$chownprog $2"
+         shift
+         shift
+         continue;;
+ 
+     -s) stripcmd=$stripprog
+         shift
+         continue;;
+ 
+     -t) dstarg=$2
+ 	shift
+ 	shift
+ 	continue;;
+ 
+     -T) no_target_directory=true
+ 	shift
+ 	continue;;
+ 
+     --version) echo "$0 $scriptversion"; exit $?;;
+ 
+     --)	shift
+ 	break;;
+ 
+     -*)	echo "$0: invalid option: $1" >&2
+ 	exit 1;;
+ 
+     *)  break;;
+   esac
+ done
+ 
+ if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
+   # When -d is used, all remaining arguments are directories to create.
+   # When -t is used, the destination is already specified.
+   # Otherwise, the last argument is the destination.  Remove it from $@.
+   for arg
+   do
+     if test -n "$dstarg"; then
+       # $@ is not empty: it contains at least $arg.
+       set fnord "$@" "$dstarg"
+       shift # fnord
+     fi
+     shift # arg
+     dstarg=$arg
+   done
+ fi
+ 
+ if test $# -eq 0; then
+   if test -z "$dir_arg"; then
+     echo "$0: no input file specified." >&2
+     exit 1
+   fi
+   # It's OK to call `install-sh -d' without argument.
+   # This can happen when creating conditional directories.
+   exit 0
+ fi
+ 
+ test -n "$dir_arg" || trap '(exit $?); exit' 1 2 13 15
+ 
+ for src
+ do
+   # Protect names starting with `-'.
+   case $src in
+     -*) src=./$src ;;
+   esac
+ 
+   if test -n "$dir_arg"; then
+     dst=$src
+     dstdir=$dst
+     test -d "$dstdir"
+     dstdir_status=$?
+   else
+ 
+     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+     # might cause directories to be created, which would be especially bad
+     # if $src (and thus $dsttmp) contains '*'.
+     if test ! -f "$src" && test ! -d "$src"; then
+       echo "$0: $src does not exist." >&2
+       exit 1
+     fi
+ 
+     if test -z "$dstarg"; then
+       echo "$0: no destination specified." >&2
+       exit 1
+     fi
+ 
+     dst=$dstarg
+     # Protect names starting with `-'.
+     case $dst in
+       -*) dst=./$dst ;;
+     esac
+ 
+     # If destination is a directory, append the input filename; won't work
+     # if double slashes aren't ignored.
+     if test -d "$dst"; then
+       if test -n "$no_target_directory"; then
+ 	echo "$0: $dstarg: Is a directory" >&2
+ 	exit 1
+       fi
+       dstdir=$dst
+       dst=$dstdir/`basename "$src"`
+       dstdir_status=0
+     else
+       # Prefer dirname, but fall back on a substitute if dirname fails.
+       dstdir=`
+ 	(dirname "$dst") 2>/dev/null ||
+ 	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ 	     X"$dst" : 'X\(//\)[^/]' \| \
+ 	     X"$dst" : 'X\(//\)$' \| \
+ 	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ 	echo X"$dst" |
+ 	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ 		   s//\1/
+ 		   q
+ 		 }
+ 		 /^X\(\/\/\)[^/].*/{
+ 		   s//\1/
+ 		   q
+ 		 }
+ 		 /^X\(\/\/\)$/{
+ 		   s//\1/
+ 		   q
+ 		 }
+ 		 /^X\(\/\).*/{
+ 		   s//\1/
+ 		   q
+ 		 }
+ 		 s/.*/./; q'
+       `
+ 
+       test -d "$dstdir"
+       dstdir_status=$?
+     fi
+   fi
+ 
+   obsolete_mkdir_used=false
+ 
+   if test $dstdir_status != 0; then
+     case $posix_mkdir in
+       '')
+ 	posix_mkdir=false
+ 	if $mkdirprog -m $test_mode -p -- / >/dev/null 2>&1; then
+ 	  posix_mkdir=true
+ 	else
+ 	  # Remove any dirs left behind by ancient mkdir implementations.
+ 	  rmdir ./-m "$test_mode" ./-p ./-- 2>/dev/null
+ 	fi ;;
+     esac
+ 
+     if
+       $posix_mkdir && {
+ 
+ 	# With -d, create the new directory with the user-specified mode.
+ 	# Otherwise, create it using the same intermediate mode that
+ 	# mkdir -p would use when creating intermediate directories.
+ 	# POSIX says that this mode is "$(umask -S),u+wx", so use that
+ 	# if umask -S works.
+ 
+ 	if test -n "$dir_arg"; then
+ 	  mkdir_mode=$mode
+ 	else
+ 	  case $intermediate_mode in
+ 	    '')
+ 	      if umask_S=`(umask -S) 2>/dev/null`; then
+ 		intermediate_mode=$umask_S,u+wx
+ 	      else
+ 		intermediate_mode=$test_mode
+ 	      fi ;;
+ 	  esac
+ 	  mkdir_mode=$intermediate_mode
+ 	fi
+ 
+ 	$mkdirprog -m "$mkdir_mode" -p -- "$dstdir"
+       }
+     then :
+     else
+ 
+       # mkdir does not conform to POSIX, or it failed possibly due to
+       # a race condition.  Create the directory the slow way, step by
+       # step, checking for races as we go.
+ 
+       case $dstdir in
+ 	/*) prefix=/ ;;
+ 	-*) prefix=./ ;;
+ 	*)  prefix= ;;
+       esac
+ 
+       case $posix_glob in
+         '')
+ 	  if (set -f) 2>/dev/null; then
+ 	    posix_glob=true
+ 	  else
+ 	    posix_glob=false
+ 	  fi ;;
+       esac
+ 
+       oIFS=$IFS
+       IFS=/
+       $posix_glob && set -f
+       set fnord $dstdir
+       shift
+       $posix_glob && set +f
+       IFS=$oIFS
+ 
+       prefixes=
+ 
+       for d
+       do
+ 	test -z "$d" && continue
+ 
+ 	prefix=$prefix$d
+ 	if test -d "$prefix"; then
+ 	  prefixes=
+ 	else
+ 	  if $posix_mkdir; then
+ 	    $mkdirprog -m "$mkdir_mode" -p -- "$dstdir" && break
+ 	    # Don't fail if two instances are running concurrently.
+ 	    test -d "$prefix" || exit 1
+ 	  else
+ 	    case $prefix in
+ 	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ 	      *) qprefix=$prefix;;
+ 	    esac
+ 	    prefixes="$prefixes '$qprefix'"
+ 	  fi
+ 	fi
+ 	prefix=$prefix/
+       done
+ 
+       if test -n "$prefixes"; then
+ 	# Don't fail if two instances are running concurrently.
+ 	eval "\$mkdirprog $prefixes" || test -d "$dstdir" || exit 1
+ 	obsolete_mkdir_used=true
+       fi
+     fi
+   fi
+ 
+   if test -n "$dir_arg"; then
+     { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+     { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+     { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+       test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dst"; } || exit 1
+   else
+ 
+     # Make a couple of temp file names in the proper directory.
+     dsttmp=$dstdir/_inst.$$_
+     rmtmp=$dstdir/_rm.$$_
+ 
+     # Trap to clean up those temp files at exit.
+     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+ 
+     # Copy the file name to the temp name.
+     $doit $cpprog "$src" "$dsttmp" &&
+ 
+     # and set any options; do chmod last to preserve setuid bits.
+     #
+     # If any of these fail, we abort the whole thing.  If we want to
+     # ignore errors from any of these, just make sure not to ignore
+     # errors from the above "$doit $cpprog $src $dsttmp" command.
+     #
+     { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+       && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+       && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+       && { test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dsttmp"; } &&
+ 
+     # Now rename the file to the real destination.
+     { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
+       || {
+ 	   # The rename failed, perhaps because mv can't rename something else
+ 	   # to itself, or perhaps because mv is so ancient that it does not
+ 	   # support -f.
+ 
+ 	   # Now remove or move aside any old file at destination location.
+ 	   # We try this two ways since rm can't unlink itself on some
+ 	   # systems and the destination file might be busy for other
+ 	   # reasons.  In this case, the final cleanup might fail but the new
+ 	   # file should still install successfully.
+ 	   {
+ 	     if test -f "$dst"; then
+ 	       $doit $rmcmd -f "$dst" 2>/dev/null \
+ 	       || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
+ 		     && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
+ 	       || {
+ 		 echo "$0: cannot unlink or rename $dst" >&2
+ 		 (exit 1); exit 1
+ 	       }
+ 	     else
+ 	       :
+ 	     fi
+ 	   } &&
+ 
+ 	   # Now rename the file to the real destination.
+ 	   $doit $mvcmd "$dsttmp" "$dst"
+ 	 }
+     } || exit 1
+ 
+     trap '' 0
+   fi
+ done
+ 
+ # Local variables:
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
+ # time-stamp-start: "scriptversion="
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
+ # time-stamp-end: "$"
+ # End:
diff -Nrc2 texinfo-4.12/build-aux/link-warning.h texinfo-4.13/build-aux/link-warning.h
*** texinfo-4.12/build-aux/link-warning.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/build-aux/link-warning.h	Wed Feb 21 16:46:09 2007
***************
*** 0 ****
--- 1,28 ----
+ /* GL_LINK_WARNING("literal string") arranges to emit the literal string as
+    a linker warning on most glibc systems.
+    We use a linker warning rather than a preprocessor warning, because
+    #warning cannot be used inside macros.  */
+ #ifndef GL_LINK_WARNING
+   /* This works on platforms with GNU ld and ELF object format.
+      Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
+      Testing __ELF__ guarantees the ELF object format.
+      Testing __GNUC__ is necessary for the compound expression syntax.  */
+ # if defined __GLIBC__ && defined __ELF__ && defined __GNUC__
+ #  define GL_LINK_WARNING(message) \
+      GL_LINK_WARNING1 (__FILE__, __LINE__, message)
+ #  define GL_LINK_WARNING1(file, line, message) \
+      GL_LINK_WARNING2 (file, line, message)  /* macroexpand file and line */
+ #  define GL_LINK_WARNING2(file, line, message) \
+      GL_LINK_WARNING3 (file ":" #line ": warning: " message)
+ #  define GL_LINK_WARNING3(message) \
+      ({ static const char warning[sizeof (message)]		\
+           __attribute__ ((__unused__,				\
+                           __section__ (".gnu.warning"),		\
+                           __aligned__ (1)))			\
+           = message "\n";					\
+         (void)0;						\
+      })
+ # else
+ #  define GL_LINK_WARNING(message) ((void) 0)
+ # endif
+ #endif
diff -Nrc2 texinfo-4.12/build-aux/mdate-sh texinfo-4.13/build-aux/mdate-sh
*** texinfo-4.12/build-aux/mdate-sh	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/build-aux/mdate-sh	Tue Dec 25 15:57:16 2007
***************
*** 0 ****
--- 1,201 ----
+ #!/bin/sh
+ # Get modification time of a file or directory and pretty-print it.
+ 
+ scriptversion=2005-06-29.22
+ 
+ # Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005 Free Software
+ # Foundation, Inc.
+ # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
+ #
+ # 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ 
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+ 
+ # This file is maintained in Automake, please report
+ # bugs to <bug-automake@gnu.org> or send patches to
+ # <automake-patches@gnu.org>.
+ 
+ case $1 in
+   '')
+      echo "$0: No file.  Try \`$0 --help' for more information." 1>&2
+      exit 1;
+      ;;
+   -h | --h*)
+     cat <<\EOF
+ Usage: mdate-sh [--help] [--version] FILE
+ 
+ Pretty-print the modification time of FILE.
+ 
+ Report bugs to <bug-automake@gnu.org>.
+ EOF
+     exit $?
+     ;;
+   -v | --v*)
+     echo "mdate-sh $scriptversion"
+     exit $?
+     ;;
+ esac
+ 
+ # Prevent date giving response in another language.
+ LANG=C
+ export LANG
+ LC_ALL=C
+ export LC_ALL
+ LC_TIME=C
+ export LC_TIME
+ 
+ # GNU ls changes its time format in response to the TIME_STYLE
+ # variable.  Since we cannot assume `unset' works, revert this
+ # variable to its documented default.
+ if test "${TIME_STYLE+set}" = set; then
+   TIME_STYLE=posix-long-iso
+   export TIME_STYLE
+ fi
+ 
+ save_arg1=$1
+ 
+ # Find out how to get the extended ls output of a file or directory.
+ if ls -L /dev/null 1>/dev/null 2>&1; then
+   ls_command='ls -L -l -d'
+ else
+   ls_command='ls -l -d'
+ fi
+ 
+ # A `ls -l' line looks as follows on OS/2.
+ #  drwxrwx---        0 Aug 11  2001 foo
+ # This differs from Unix, which adds ownership information.
+ #  drwxrwx---   2 root  root      4096 Aug 11  2001 foo
+ #
+ # To find the date, we split the line on spaces and iterate on words
+ # until we find a month.  This cannot work with files whose owner is a
+ # user named `Jan', or `Feb', etc.  However, it's unlikely that `/'
+ # will be owned by a user whose name is a month.  So we first look at
+ # the extended ls output of the root directory to decide how many
+ # words should be skipped to get the date.
+ 
+ # On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
+ set x`ls -l -d /`
+ 
+ # Find which argument is the month.
+ month=
+ command=
+ until test $month
+ do
+   shift
+   # Add another shift to the command.
+   command="$command shift;"
+   case $1 in
+     Jan) month=January; nummonth=1;;
+     Feb) month=February; nummonth=2;;
+     Mar) month=March; nummonth=3;;
+     Apr) month=April; nummonth=4;;
+     May) month=May; nummonth=5;;
+     Jun) month=June; nummonth=6;;
+     Jul) month=July; nummonth=7;;
+     Aug) month=August; nummonth=8;;
+     Sep) month=September; nummonth=9;;
+     Oct) month=October; nummonth=10;;
+     Nov) month=November; nummonth=11;;
+     Dec) month=December; nummonth=12;;
+   esac
+ done
+ 
+ # Get the extended ls output of the file or directory.
+ set dummy x`eval "$ls_command \"\$save_arg1\""`
+ 
+ # Remove all preceding arguments
+ eval $command
+ 
+ # Because of the dummy argument above, month is in $2.
+ #
+ # On a POSIX system, we should have
+ #
+ # $# = 5
+ # $1 = file size
+ # $2 = month
+ # $3 = day
+ # $4 = year or time
+ # $5 = filename
+ #
+ # On Darwin 7.7.0 and 7.6.0, we have
+ #
+ # $# = 4
+ # $1 = day
+ # $2 = month
+ # $3 = year or time
+ # $4 = filename
+ 
+ # Get the month.
+ case $2 in
+   Jan) month=January; nummonth=1;;
+   Feb) month=February; nummonth=2;;
+   Mar) month=March; nummonth=3;;
+   Apr) month=April; nummonth=4;;
+   May) month=May; nummonth=5;;
+   Jun) month=June; nummonth=6;;
+   Jul) month=July; nummonth=7;;
+   Aug) month=August; nummonth=8;;
+   Sep) month=September; nummonth=9;;
+   Oct) month=October; nummonth=10;;
+   Nov) month=November; nummonth=11;;
+   Dec) month=December; nummonth=12;;
+ esac
+ 
+ case $3 in
+   ???*) day=$1;;
+   *) day=$3; shift;;
+ esac
+ 
+ # Here we have to deal with the problem that the ls output gives either
+ # the time of day or the year.
+ case $3 in
+   *:*) set `date`; eval year=\$$#
+        case $2 in
+ 	 Jan) nummonthtod=1;;
+ 	 Feb) nummonthtod=2;;
+ 	 Mar) nummonthtod=3;;
+ 	 Apr) nummonthtod=4;;
+ 	 May) nummonthtod=5;;
+ 	 Jun) nummonthtod=6;;
+ 	 Jul) nummonthtod=7;;
+ 	 Aug) nummonthtod=8;;
+ 	 Sep) nummonthtod=9;;
+ 	 Oct) nummonthtod=10;;
+ 	 Nov) nummonthtod=11;;
+ 	 Dec) nummonthtod=12;;
+        esac
+        # For the first six month of the year the time notation can also
+        # be used for files modified in the last year.
+        if (expr $nummonth \> $nummonthtod) > /dev/null;
+        then
+ 	 year=`expr $year - 1`
+        fi;;
+   *) year=$3;;
+ esac
+ 
+ # The result.
+ echo $day $month $year
+ 
+ # Local Variables:
+ # mode: shell-script
+ # sh-indentation: 2
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
+ # time-stamp-start: "scriptversion="
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
+ # time-stamp-end: "$"
+ # End:
diff -Nrc2 texinfo-4.12/build-aux/missing texinfo-4.13/build-aux/missing
*** texinfo-4.12/build-aux/missing	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/build-aux/missing	Tue Dec 25 15:57:16 2007
***************
*** 0 ****
--- 1,367 ----
+ #! /bin/sh
+ # Common stub for a few missing GNU programs while installing.
+ 
+ scriptversion=2006-05-10.23
+ 
+ # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+ #   Free Software Foundation, Inc.
+ # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+ 
+ # 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., 51 Franklin Street, Fifth Floor, Boston, MA
+ # 02110-1301, USA.
+ 
+ # As a special exception to the GNU General Public License, if you
+ # distribute this file as part of a program that contains a
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+ 
+ if test $# -eq 0; then
+   echo 1>&2 "Try \`$0 --help' for more information"
+   exit 1
+ fi
+ 
+ run=:
+ sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+ sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+ 
+ # In the cases where this matters, `missing' is being run in the
+ # srcdir already.
+ if test -f configure.ac; then
+   configure_ac=configure.ac
+ else
+   configure_ac=configure.in
+ fi
+ 
+ msg="missing on your system"
+ 
+ case $1 in
+ --run)
+   # Try to run requested program, and just exit if it succeeds.
+   run=
+   shift
+   "$@" && exit 0
+   # Exit code 63 means version mismatch.  This often happens
+   # when the user try to use an ancient version of a tool on
+   # a file that requires a minimum version.  In this case we
+   # we should proceed has if the program had been absent, or
+   # if --run hadn't been passed.
+   if test $? = 63; then
+     run=:
+     msg="probably too old"
+   fi
+   ;;
+ 
+   -h|--h|--he|--hel|--help)
+     echo "\
+ $0 [OPTION]... PROGRAM [ARGUMENT]...
+ 
+ Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+ error status if there is no known handling for PROGRAM.
+ 
+ Options:
+   -h, --help      display this help and exit
+   -v, --version   output version information and exit
+   --run           try to run the given command, and emulate it if it fails
+ 
+ Supported PROGRAM values:
+   aclocal      touch file \`aclocal.m4'
+   autoconf     touch file \`configure'
+   autoheader   touch file \`config.h.in'
+   autom4te     touch the output file, or create a stub one
+   automake     touch all \`Makefile.in' files
+   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+   flex         create \`lex.yy.c', if possible, from existing .c
+   help2man     touch the output file
+   lex          create \`lex.yy.c', if possible, from existing .c
+   makeinfo     touch the output file
+   tar          try tar, gnutar, gtar, then tar without non-portable flags
+   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+ 
+ Send bug reports to <bug-automake@gnu.org>."
+     exit $?
+     ;;
+ 
+   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+     echo "missing $scriptversion (GNU Automake)"
+     exit $?
+     ;;
+ 
+   -*)
+     echo 1>&2 "$0: Unknown \`$1' option"
+     echo 1>&2 "Try \`$0 --help' for more information"
+     exit 1
+     ;;
+ 
+ esac
+ 
+ # Now exit if we have it, but it failed.  Also exit now if we
+ # don't have it and --version was passed (most likely to detect
+ # the program).
+ case $1 in
+   lex|yacc)
+     # Not GNU programs, they don't have --version.
+     ;;
+ 
+   tar)
+     if test -n "$run"; then
+        echo 1>&2 "ERROR: \`tar' requires --run"
+        exit 1
+     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+        exit 1
+     fi
+     ;;
+ 
+   *)
+     if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+        # We have it, but it failed.
+        exit 1
+     elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+        # Could not run --version or --help.  This is probably someone
+        # running `$TOOL --version' or `$TOOL --help' to check whether
+        # $TOOL exists and not knowing $TOOL uses missing.
+        exit 1
+     fi
+     ;;
+ esac
+ 
+ # If it does not exist, or fails to run (possibly an outdated version),
+ # try to emulate it.
+ case $1 in
+   aclocal*)
+     echo 1>&2 "\
+ WARNING: \`$1' is $msg.  You should only need it if
+          you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+          to install the \`Automake' and \`Perl' packages.  Grab them from
+          any GNU archive site."
+     touch aclocal.m4
+     ;;
+ 
+   autoconf)
+     echo 1>&2 "\
+ WARNING: \`$1' is $msg.  You should only need it if
+          you modified \`${configure_ac}'.  You might want to install the
+          \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+          archive site."
+     touch configure
+     ;;
+ 
+   autoheader)
+     echo 1>&2 "\
+ WARNING: \`$1' is $msg.  You should only need it if
+          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+          to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+          from any GNU archive site."
+     files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+     test -z "$files" && files="config.h"
+     touch_files=
+     for f in $files; do
+       case $f in
+       *:*) touch_files="$touch_files "`echo "$f" |
+ 				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+       *) touch_files="$touch_files $f.in";;
+       esac
+     done
+     touch $touch_files
+     ;;
+ 
+   automake*)
+     echo 1>&2 "\
+ WARNING: \`$1' is $msg.  You should only need it if
+          you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+          You might want to install the \`Automake' and \`Perl' packages.
+          Grab them from any GNU archive site."
+     find . -type f -name Makefile.am -print |
+ 	   sed 's/\.am$/.in/' |
+ 	   while read f; do touch "$f"; done
+     ;;
+ 
+   autom4te)
+     echo 1>&2 "\
+ WARNING: \`$1' is needed, but is $msg.
+          You might have modified some files without having the
+          proper tools for further handling them.
+          You can get \`$1' as part of \`Autoconf' from any GNU
+          archive site."
+ 
+     file=`echo "$*" | sed -n "$sed_output"`
+     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+     if test -f "$file"; then
+ 	touch $file
+     else
+ 	test -z "$file" || exec >$file
+ 	echo "#! /bin/sh"
+ 	echo "# Created by GNU Automake missing as a replacement of"
+ 	echo "#  $ $@"
+ 	echo "exit 0"
+ 	chmod +x $file
+ 	exit 1
+     fi
+     ;;
+ 
+   bison|yacc)
+     echo 1>&2 "\
+ WARNING: \`$1' $msg.  You should only need it if
+          you modified a \`.y' file.  You may need the \`Bison' package
+          in order for those modifications to take effect.  You can get
+          \`Bison' from any GNU archive site."
+     rm -f y.tab.c y.tab.h
+     if test $# -ne 1; then
+         eval LASTARG="\${$#}"
+ 	case $LASTARG in
+ 	*.y)
+ 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ 	    if test -f "$SRCFILE"; then
+ 	         cp "$SRCFILE" y.tab.c
+ 	    fi
+ 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ 	    if test -f "$SRCFILE"; then
+ 	         cp "$SRCFILE" y.tab.h
+ 	    fi
+ 	  ;;
+ 	esac
+     fi
+     if test ! -f y.tab.h; then
+ 	echo >y.tab.h
+     fi
+     if test ! -f y.tab.c; then
+ 	echo 'main() { return 0; }' >y.tab.c
+     fi
+     ;;
+ 
+   lex|flex)
+     echo 1>&2 "\
+ WARNING: \`$1' is $msg.  You should only need it if
+          you modified a \`.l' file.  You may need the \`Flex' package
+          in order for those modifications to take effect.  You can get
+          \`Flex' from any GNU archive site."
+     rm -f lex.yy.c
+     if test $# -ne 1; then
+         eval LASTARG="\${$#}"
+ 	case $LASTARG in
+ 	*.l)
+ 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ 	    if test -f "$SRCFILE"; then
+ 	         cp "$SRCFILE" lex.yy.c
+ 	    fi
+ 	  ;;
+ 	esac
+     fi
+     if test ! -f lex.yy.c; then
+ 	echo 'main() { return 0; }' >lex.yy.c
+     fi
+     ;;
+ 
+   help2man)
+     echo 1>&2 "\
+ WARNING: \`$1' is $msg.  You should only need it if
+ 	 you modified a dependency of a manual page.  You may need the
+ 	 \`Help2man' package in order for those modifications to take
+ 	 effect.  You can get \`Help2man' from any GNU archive site."
+ 
+     file=`echo "$*" | sed -n "$sed_output"`
+     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+     if test -f "$file"; then
+ 	touch $file
+     else
+ 	test -z "$file" || exec >$file
+ 	echo ".ab help2man is required to generate this page"
+ 	exit 1
+     fi
+     ;;
+ 
+   makeinfo)
+     echo 1>&2 "\
+ WARNING: \`$1' is $msg.  You should only need it if
+          you modified a \`.texi' or \`.texinfo' file, or any other file
+          indirectly affecting the aspect of the manual.  The spurious
+          call might also be the consequence of using a buggy \`make' (AIX,
+          DU, IRIX).  You might want to install the \`Texinfo' package or
+          the \`GNU make' package.  Grab either from any GNU archive site."
+     # The file to touch is that specified with -o ...
+     file=`echo "$*" | sed -n "$sed_output"`
+     test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+     if test -z "$file"; then
+       # ... or it is the one specified with @setfilename ...
+       infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+       file=`sed -n '
+ 	/^@setfilename/{
+ 	  s/.* \([^ ]*\) *$/\1/
+ 	  p
+ 	  q
+ 	}' $infile`
+       # ... or it is derived from the source name (dir/f.texi becomes f.info)
+       test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+     fi
+     # If the file does not exist, the user really needs makeinfo;
+     # let's fail without touching anything.
+     test -f $file || exit 1
+     touch $file
+     ;;
+ 
+   tar)
+     shift
+ 
+     # We have already tried tar in the generic part.
+     # Look for gnutar/gtar before invocation to avoid ugly error
+     # messages.
+     if (gnutar --version > /dev/null 2>&1); then
+        gnutar "$@" && exit 0
+     fi
+     if (gtar --version > /dev/null 2>&1); then
+        gtar "$@" && exit 0
+     fi
+     firstarg="$1"
+     if shift; then
+ 	case $firstarg in
+ 	*o*)
+ 	    firstarg=`echo "$firstarg" | sed s/o//`
+ 	    tar "$firstarg" "$@" && exit 0
+ 	    ;;
+ 	esac
+ 	case $firstarg in
+ 	*h*)
+ 	    firstarg=`echo "$firstarg" | sed s/h//`
+ 	    tar "$firstarg" "$@" && exit 0
+ 	    ;;
+ 	esac
+     fi
+ 
+     echo 1>&2 "\
+ WARNING: I can't seem to be able to run \`tar' with the given arguments.
+          You may want to install GNU tar or Free paxutils, or check the
+          command line arguments."
+     exit 1
+     ;;
+ 
+   *)
+     echo 1>&2 "\
+ WARNING: \`$1' is needed, and is $msg.
+          You might have modified some files without having the
+          proper tools for further handling them.  Check the \`README' file,
+          it often tells you about the needed prerequisites for installing
+          this package.  You may also peek at any GNU archive site, in case
+          some other package would contain this missing \`$1' program."
+     exit 1
+     ;;
+ esac
+ 
+ exit 0
+ 
+ # Local variables:
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
+ # time-stamp-start: "scriptversion="
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
+ # time-stamp-end: "$"
+ # End:
diff -Nrc2 texinfo-4.12/config.in texinfo-4.13/config.in
*** texinfo-4.12/config.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/config.in	Thu Sep 18 11:46:44 2008
***************
*** 0 ****
--- 1,540 ----
+ /* config.in.  Generated from configure.ac by autoheader.  */
+ 
+ /* Define to the number of bits in type 'ptrdiff_t'. */
+ #undef BITSIZEOF_PTRDIFF_T
+ 
+ /* Define to the number of bits in type 'sig_atomic_t'. */
+ #undef BITSIZEOF_SIG_ATOMIC_T
+ 
+ /* Define to the number of bits in type 'size_t'. */
+ #undef BITSIZEOF_SIZE_T
+ 
+ /* Define to the number of bits in type 'wchar_t'. */
+ #undef BITSIZEOF_WCHAR_T
+ 
+ /* Define to the number of bits in type 'wint_t'. */
+ #undef BITSIZEOF_WINT_T
+ 
+ /* 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
+ 
+ /* Define to 1 if translation of program messages to the user's native
+    language is requested. */
+ #undef ENABLE_NLS
+ 
+ /* Define if gettimeofday clobbers the localtime buffer. */
+ #undef GETTIMEOFDAY_CLOBBERS_LOCALTIME
+ 
+ /* Define to 1 if `TIOCGWINSZ' requires <sys/ioctl.h>. */
+ #undef GWINSZ_IN_SYS_IOCTL
+ 
+ /* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
+    may be supplied by this distribution. */
+ #undef HAVE_ALLOCA
+ 
+ /* 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 <argz.h> header file. */
+ #undef HAVE_ARGZ_H
+ 
+ /* Define to 1 if you have the <bp-sym.h> header file. */
+ #undef HAVE_BP_SYM_H
+ 
+ /* Define to 1 if you have the `bzero' function. */
+ #undef HAVE_BZERO
+ 
+ /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+    CoreFoundation framework. */
+ #undef HAVE_CFLOCALECOPYCURRENT
+ 
+ /* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+    the CoreFoundation framework. */
+ #undef HAVE_CFPREFERENCESCOPYAPPVALUE
+ 
+ /* Define if the GNU dcgettext() function is already present or preinstalled.
+    */
+ #undef HAVE_DCGETTEXT
+ 
+ /* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+    don't. */
+ #undef HAVE_DECL_GETC_UNLOCKED
+ 
+ /* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
+    */
+ #undef HAVE_DECL_GETENV
+ 
+ /* Define to 1 if you have a declaration of mbswidth() in <wchar.h>, and to 0
+    otherwise. */
+ #undef HAVE_DECL_MBSWIDTH_IN_WCHAR_H
+ 
+ /* Define to 1 if you have the declaration of `memchr', and to 0 if you don't.
+    */
+ #undef HAVE_DECL_MEMCHR
+ 
+ /* Define to 1 if you have the declaration of `memmem', and to 0 if you don't.
+    */
+ #undef HAVE_DECL_MEMMEM
+ 
+ /* Define to 1 if you have the declaration of `strcoll', and to 0 if you
+    don't. */
+ #undef HAVE_DECL_STRCOLL
+ 
+ /* Define to 1 if you have the declaration of `strdup', and to 0 if you don't.
+    */
+ #undef HAVE_DECL_STRDUP
+ 
+ /* Define to 1 if you have the declaration of `strerror', and to 0 if you
+    don't. */
+ #undef HAVE_DECL_STRERROR
+ 
+ /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+    don't. */
+ #undef HAVE_DECL_STRERROR_R
+ 
+ /* Define to 1 if you have the declaration of `strndup', and to 0 if you
+    don't. */
+ #undef HAVE_DECL_STRNDUP
+ 
+ /* Define to 1 if you have the declaration of `strnlen', and to 0 if you
+    don't. */
+ #undef HAVE_DECL_STRNLEN
+ 
+ /* Define to 1 if you have the declaration of `wcwidth', and to 0 if you
+    don't. */
+ #undef HAVE_DECL_WCWIDTH
+ 
+ /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
+ #undef HAVE_DOPRNT
+ 
+ /* Define if you have the declaration of environ. */
+ #undef HAVE_ENVIRON_DECL
+ 
+ /* Define to 1 if the system has the type `error_t'. */
+ #undef HAVE_ERROR_T
+ 
+ /* Define to 1 if you have the <fcntl.h> header file. */
+ #undef HAVE_FCNTL_H
+ 
+ /* Define to 1 if you have the `getcwd' function. */
+ #undef HAVE_GETCWD
+ 
+ /* Define to 1 if you have the <getopt.h> header file. */
+ #undef HAVE_GETOPT_H
+ 
+ /* Define to 1 if you have the `getopt_long_only' function. */
+ #undef HAVE_GETOPT_LONG_ONLY
+ 
+ /* Define if the GNU gettext() function is already present or preinstalled. */
+ #undef HAVE_GETTEXT
+ 
+ /* Define to 1 if you have the `gettimeofday' function. */
+ #undef HAVE_GETTIMEOFDAY
+ 
+ /* Define if you have the iconv() function and it works. */
+ #undef HAVE_ICONV
+ 
+ /* Define if your compiler supports the #include_next directive. */
+ #undef HAVE_INCLUDE_NEXT
+ 
+ /* Define to 1 if the compiler supports one of the keywords 'inline',
+    '__inline__', '__inline' and effectively inlines functions marked as such.
+    */
+ #undef HAVE_INLINE
+ 
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
+ 
+ /* Define to 1 if you have the <io.h> header file. */
+ #undef HAVE_IO_H
+ 
+ /* Define to 1 if you have the `isascii' function. */
+ #undef HAVE_ISASCII
+ 
+ /* Define to 1 if you have the `iswcntrl' function. */
+ #undef HAVE_ISWCNTRL
+ 
+ /* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+ #undef HAVE_LANGINFO_CODESET
+ 
+ /* Define to 1 if you have the `bsd' library (-lbsd). */
+ #undef HAVE_LIBBSD
+ 
+ /* Define to 1 if you have the <limits.h> header file. */
+ #undef HAVE_LIMITS_H
+ 
+ /* Define to 1 if the system has the type `long long int'. */
+ #undef HAVE_LONG_LONG_INT
+ 
+ /* Define to 1 if you have the `lstat' function. */
+ #undef HAVE_LSTAT
+ 
+ /* Define if the 'malloc' function is POSIX compliant. */
+ #undef HAVE_MALLOC_POSIX
+ 
+ /* Define to 1 if mbrtowc and mbstate_t are properly declared. */
+ #undef HAVE_MBRTOWC
+ 
+ /* Define to 1 if you have the `mbsinit' function. */
+ #undef HAVE_MBSINIT
+ 
+ /* Define to 1 if <wchar.h> declares mbstate_t. */
+ #undef HAVE_MBSTATE_T
+ 
+ /* Define to 1 if you have the `memchr' function. */
+ #undef HAVE_MEMCHR
+ 
+ /* Define to 1 if you have the `memcpy' function. */
+ #undef HAVE_MEMCPY
+ 
+ /* Define to 1 if you have the `memmem' function. */
+ #undef HAVE_MEMMEM
+ 
+ /* Define to 1 if you have the `memmove' function. */
+ #undef HAVE_MEMMOVE
+ 
+ /* Define to 1 if you have the <memory.h> header file. */
+ #undef HAVE_MEMORY_H
+ 
+ /* Define to 1 if you have the `mempcpy' function. */
+ #undef HAVE_MEMPCPY
+ 
+ /* Define to 1 if you have the `memset' function. */
+ #undef HAVE_MEMSET
+ 
+ /* Define to 1 if you have the <ncurses/termcap.h> header file. */
+ #undef HAVE_NCURSES_TERMCAP_H
+ 
+ /* Define to 1 if you have the <pwd.h> header file. */
+ #undef HAVE_PWD_H
+ 
+ /* Define to 1 if you have the <search.h> header file. */
+ #undef HAVE_SEARCH_H
+ 
+ /* Define to 1 if you have the `setenv' function. */
+ #undef HAVE_SETENV
+ 
+ /* Define to 1 if you have the `setlocale' function. */
+ #undef HAVE_SETLOCALE
+ 
+ /* Define to 1 if you have the `setvbuf' function. */
+ #undef HAVE_SETVBUF
+ 
+ /* Define to 1 if you have the `sigaction' function. */
+ #undef HAVE_SIGACTION
+ 
+ /* Define to 1 if 'sig_atomic_t' is a signed integer type. */
+ #undef HAVE_SIGNED_SIG_ATOMIC_T
+ 
+ /* Define to 1 if 'wchar_t' is a signed integer type. */
+ #undef HAVE_SIGNED_WCHAR_T
+ 
+ /* Define to 1 if 'wint_t' is a signed integer type. */
+ #undef HAVE_SIGNED_WINT_T
+ 
+ /* Define to 1 if you have the `sigprocmask' function. */
+ #undef HAVE_SIGPROCMASK
+ 
+ /* Define to 1 if you have the `sigsetmask' function. */
+ #undef HAVE_SIGSETMASK
+ 
+ /* Define to 1 if stdbool.h conforms to C99. */
+ #undef HAVE_STDBOOL_H
+ 
+ /* Define to 1 if you have the <stdint.h> header file. */
+ #undef HAVE_STDINT_H
+ 
+ /* Define to 1 if you have the <stdlib.h> header file. */
+ #undef HAVE_STDLIB_H
+ 
+ /* Define to 1 if you have the `stpcpy' function. */
+ #undef HAVE_STPCPY
+ 
+ /* Define to 1 if you have the `strchr' function. */
+ #undef HAVE_STRCHR
+ 
+ /* Define to 1 if you have the `strcoll' function and it is properly defined.
+    */
+ #undef HAVE_STRCOLL
+ 
+ /* Define to 1 if you have the `strdup' function. */
+ #undef HAVE_STRDUP
+ 
+ /* Define to 1 if you have the `strerror' function. */
+ #undef HAVE_STRERROR
+ 
+ /* Define to 1 if you have the `strerror_r' function. */
+ #undef HAVE_STRERROR_R
+ 
+ /* Define to 1 if you have the <strings.h> header file. */
+ #undef HAVE_STRINGS_H
+ 
+ /* Define to 1 if you have the <string.h> header file. */
+ #undef HAVE_STRING_H
+ 
+ /* Define if you have the strndup() function and it works. */
+ #undef HAVE_STRNDUP
+ 
+ /* Define to 1 if you have the <sys/bitypes.h> header file. */
+ #undef HAVE_SYS_BITYPES_H
+ 
+ /* Define to 1 if you have the <sys/fcntl.h> header file. */
+ #undef HAVE_SYS_FCNTL_H
+ 
+ /* Define to 1 if you have the <sys/file.h> header file. */
+ #undef HAVE_SYS_FILE_H
+ 
+ /* Define to 1 if you have the <sys/inttypes.h> header file. */
+ #undef HAVE_SYS_INTTYPES_H
+ 
+ /* Define to 1 if you have the <sys/ptem.h> header file. */
+ #undef HAVE_SYS_PTEM_H
+ 
+ /* Define to 1 if you have the <sys/stat.h> header file. */
+ #undef HAVE_SYS_STAT_H
+ 
+ /* Define to 1 if you have the <sys/stream.h> header file. */
+ #undef HAVE_SYS_STREAM_H
+ 
+ /* Define to 1 if you have the <sys/timeb.h> header file. */
+ #undef HAVE_SYS_TIMEB_H
+ 
+ /* Define to 1 if you have the <sys/time.h> header file. */
+ #undef HAVE_SYS_TIME_H
+ 
+ /* Define to 1 if you have the <sys/ttold.h> header file. */
+ #undef HAVE_SYS_TTOLD_H
+ 
+ /* Define to 1 if you have the <sys/types.h> header file. */
+ #undef HAVE_SYS_TYPES_H
+ 
+ /* Define to 1 if you have the <sys/wait.h> header file. */
+ #undef HAVE_SYS_WAIT_H
+ 
+ /* Define to 1 if you have the <termcap.h> header file. */
+ #undef HAVE_TERMCAP_H
+ 
+ /* Define to 1 if you have the <termios.h> header file. */
+ #undef HAVE_TERMIOS_H
+ 
+ /* Define to 1 if you have the <termio.h> header file. */
+ #undef HAVE_TERMIO_H
+ 
+ /* Define to 1 if you have the `tsearch' function. */
+ #undef HAVE_TSEARCH
+ 
+ /* Define to 1 if you have the <unistd.h> header file. */
+ #undef HAVE_UNISTD_H
+ 
+ /* Define to 1 if you have the `unsetenv' function. */
+ #undef HAVE_UNSETENV
+ 
+ /* Define to 1 if the system has the type `unsigned long long int'. */
+ #undef HAVE_UNSIGNED_LONG_LONG_INT
+ 
+ /* Define to 1 if you have the `vprintf' function. */
+ #undef HAVE_VPRINTF
+ 
+ /* Define to 1 if you have the <wchar.h> header file. */
+ #undef HAVE_WCHAR_H
+ 
+ /* Define if you have the 'wchar_t' type. */
+ #undef HAVE_WCHAR_T
+ 
+ /* Define to 1 if you have the <wctype.h> header file. */
+ #undef HAVE_WCTYPE_H
+ 
+ /* Define to 1 if you have the `wcwidth' function. */
+ #undef HAVE_WCWIDTH
+ 
+ /* Define if you have the 'wint_t' type. */
+ #undef HAVE_WINT_T
+ 
+ /* This value is set to 1 to indicate that the system argz facility works */
+ #undef HAVE_WORKING_ARGZ
+ 
+ /* Define to 1 if the system has the type `_Bool'. */
+ #undef HAVE__BOOL
+ 
+ /* Define to 1 if you have the `_ftime' function. */
+ #undef HAVE__FTIME
+ 
+ /* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
+ #undef MALLOC_0_IS_NONNULL
+ 
+ /* Define to 1 if your C compiler doesn't accept -c and -o together. */
+ #undef NO_MINUS_C_MINUS_O
+ 
+ /* Name of package */
+ #undef PACKAGE
+ 
+ /* Define to the address where bug reports for this package should be sent. */
+ #undef PACKAGE_BUGREPORT
+ 
+ /* Define to the full name of this package. */
+ #undef PACKAGE_NAME
+ 
+ /* Define to the full name and version of this package. */
+ #undef PACKAGE_STRING
+ 
+ /* Define to the one symbol short name of this package. */
+ #undef PACKAGE_TARNAME
+ 
+ /* Define to the version of this package. */
+ #undef PACKAGE_VERSION
+ 
+ /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+    'ptrdiff_t'. */
+ #undef PTRDIFF_T_SUFFIX
+ 
+ /* Define this to 1 if strerror is broken. */
+ #undef REPLACE_STRERROR
+ 
+ /* Define as the return type of signal handlers (`int' or `void'). */
+ #undef RETSIGTYPE
+ 
+ /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+    'sig_atomic_t'. */
+ #undef SIG_ATOMIC_T_SUFFIX
+ 
+ /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+    'size_t'. */
+ #undef SIZE_T_SUFFIX
+ 
+ /* 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 runtime.
+ 	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. */
+ #undef STDC_HEADERS
+ 
+ /* Define to 1 if strerror_r returns char *. */
+ #undef STRERROR_R_CHAR_P
+ 
+ /* Define to 1 if your <sys/time.h> declares `struct tm'. */
+ #undef TM_IN_SYS_TIME
+ 
+ /* Version number of package */
+ #undef VERSION
+ 
+ /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+    'wchar_t'. */
+ #undef WCHAR_T_SUFFIX
+ 
+ /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+    'wint_t'. */
+ #undef WINT_T_SUFFIX
+ 
+ /* Number of bits in a file offset, on hosts where this is settable. */
+ #undef _FILE_OFFSET_BITS
+ 
+ /* Define for large files, on AIX-style hosts. */
+ #undef _LARGE_FILES
+ 
+ /* Define to 1 if on MINIX. */
+ #undef _MINIX
+ 
+ /* Define to 2 if the system does not provide POSIX.1 features except with
+    this defined. */
+ #undef _POSIX_1_SOURCE
+ 
+ /* Define to 1 if you need to in order for `stat' and other things to work. */
+ #undef _POSIX_SOURCE
+ 
+ /* Enable extensions on AIX 3, Interix.  */
+ #ifndef _ALL_SOURCE
+ # undef _ALL_SOURCE
+ #endif
+ /* Enable GNU extensions on systems that have them.  */
+ #ifndef _GNU_SOURCE
+ # undef _GNU_SOURCE
+ #endif
+ /* Enable threading extensions on Solaris.  */
+ #ifndef _POSIX_PTHREAD_SEMANTICS
+ # undef _POSIX_PTHREAD_SEMANTICS
+ #endif
+ /* Enable extensions on HP NonStop.  */
+ #ifndef _TANDEM_SOURCE
+ # undef _TANDEM_SOURCE
+ #endif
+ /* Enable general extensions on Solaris.  */
+ #ifndef __EXTENSIONS__
+ # undef __EXTENSIONS__
+ #endif
+ 
+ 
+ /* Define to rpl_ if the getopt replacement functions and variables should be
+    used. */
+ #undef __GETOPT_PREFIX
+ 
+ /* Define so that glibc/gnulib argp.h does not typedef error_t. */
+ #undef __error_t_defined
+ 
+ /* Define to empty if `const' does not conform to ANSI C. */
+ #undef const
+ 
+ /* Define to a type to use for `error_t' if it is not otherwise available. */
+ #undef error_t
+ 
+ /* Define to rpl_gmtime if the replacement function should be used. */
+ #undef gmtime
+ 
+ /* Define to `__inline__' or `__inline' if that's what the C compiler
+    calls it, or to nothing if 'inline' is not supported under any name.  */
+ #ifndef __cplusplus
+ #undef inline
+ #endif
+ 
+ /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+    the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+    earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+    __APPLE__ && __MACH__ test for MacOS X.
+    __APPLE_CC__ tests for the Apple compiler and its version.
+    __STDC_VERSION__ tests for the C99 mode.  */
+ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+ # define __GNUC_STDC_INLINE__ 1
+ #endif
+ 
+ /* Define to rpl_localtime if the replacement function should be used. */
+ #undef localtime
+ 
+ /* Define to a type if <wchar.h> does not define. */
+ #undef mbstate_t
+ 
+ /* Define to rpl_memcmp if the replacement function should be used. */
+ #undef memcmp
+ 
+ /* Define to the type of st_nlink in struct stat, or a supertype. */
+ #undef nlink_t
+ 
+ /* Define to `long int' if <sys/types.h> does not define. */
+ #undef off_t
+ 
+ /* Define to the equivalent of the C99 'restrict' keyword, or to
+    nothing if this is not supported.  Do not define if restrict is
+    supported directly.  */
+ #undef restrict
+ /* Work around a bug in Sun C++: it does not support _Restrict, even
+    though the corresponding Sun C compiler does, which causes
+    "#define restrict _Restrict" in the previous line.  Perhaps some future
+    version of Sun C++ will work with _Restrict; if so, it'll probably
+    define __RESTRICT, just as Sun C does.  */
+ #if defined __SUNPRO_CC && !defined __RESTRICT
+ # define _Restrict
+ #endif
+ 
+ /* Define to rpl_strnlen if the replacement function should be used. */
+ #undef strnlen
diff -Nrc2 texinfo-4.12/configure texinfo-4.13/configure
*** texinfo-4.12/configure	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/configure	Thu Sep 18 11:46:26 2008
***************
*** 0 ****
--- 1,21790 ----
+ #! /bin/sh
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated by GNU Autoconf 2.63 for GNU Texinfo 4.13.
+ #
+ # Report bugs to <bug-texinfo@gnu.org>.
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+ # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
+ ## --------------------- ##
+ ## M4sh Initialization.  ##
+ ## --------------------- ##
+ 
+ # Be more Bourne compatible
+ DUALCASE=1; export DUALCASE # for MKS sh
+ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+   emulate sh
+   NULLCMD=:
+   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+   # is contrary to our usage.  Disable this feature.
+   alias -g '${1+"$@"}'='"$@"'
+   setopt NO_GLOB_SUBST
+ else
+   case `(set -o) 2>/dev/null` in
+   *posix*) set -o posix ;;
+ esac
+ 
+ fi
+ 
+ 
+ 
+ 
+ # PATH needs CR
+ # Avoid depending upon Character Ranges.
+ as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+ as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+ as_cr_digits='0123456789'
+ as_cr_alnum=$as_cr_Letters$as_cr_digits
+ 
+ as_nl='
+ '
+ export as_nl
+ # Printing a long string crashes Solaris 7 /usr/bin/printf.
+ as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+ if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+   as_echo='printf %s\n'
+   as_echo_n='printf %s'
+ else
+   if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+     as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+     as_echo_n='/usr/ucb/echo -n'
+   else
+     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+     as_echo_n_body='eval
+       arg=$1;
+       case $arg in
+       *"$as_nl"*)
+ 	expr "X$arg" : "X\\(.*\\)$as_nl";
+ 	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+       esac;
+       expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+     '
+     export as_echo_n_body
+     as_echo_n='sh -c $as_echo_n_body as_echo'
+   fi
+   export as_echo_body
+   as_echo='sh -c $as_echo_body as_echo'
+ fi
+ 
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+   PATH_SEPARATOR=:
+   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+       PATH_SEPARATOR=';'
+   }
+ fi
+ 
+ # Support unset when possible.
+ if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+   as_unset=unset
+ else
+   as_unset=false
+ fi
+ 
+ 
+ # IFS
+ # We need space, tab and new line, in precisely that order.  Quoting is
+ # there to prevent editors from complaining about space-tab.
+ # (If _AS_PATH_WALK were called with IFS unset, it would disable word
+ # splitting by setting IFS to empty value.)
+ IFS=" ""	$as_nl"
+ 
+ # Find who we are.  Look in the path if we contain no directory separator.
+ case $0 in
+   *[\\/]* ) as_myself=$0 ;;
+   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+ IFS=$as_save_IFS
+ 
+      ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+   as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+   { (exit 1); exit 1; }
+ fi
+ 
+ # Work around bugs in pre-3.0 UWIN ksh.
+ for as_var in ENV MAIL MAILPATH
+ do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+ done
+ PS1='$ '
+ PS2='> '
+ PS4='+ '
+ 
+ # NLS nuisances.
+ LC_ALL=C
+ export LC_ALL
+ LANGUAGE=C
+ export LANGUAGE
+ 
+ # Required to use basename.
+ if expr a : '\(a\)' >/dev/null 2>&1 &&
+    test "X`expr 00001 : '.*\(...\)'`" = X001; then
+   as_expr=expr
+ else
+   as_expr=false
+ fi
+ 
+ if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+   as_basename=basename
+ else
+   as_basename=false
+ fi
+ 
+ 
+ # Name of the executable.
+ as_me=`$as_basename -- "$0" ||
+ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ 	 X"$0" : 'X\(//\)$' \| \
+ 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+ $as_echo X/"$0" |
+     sed '/^.*\/\([^/][^/]*\)\/*$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\/\(\/\/\)$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\/\(\/\).*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  s/.*/./; q'`
+ 
+ # CDPATH.
+ $as_unset CDPATH
+ 
+ 
+ if test "x$CONFIG_SHELL" = x; then
+   if (eval ":") 2>/dev/null; then
+   as_have_required=yes
+ else
+   as_have_required=no
+ fi
+ 
+   if test $as_have_required = yes &&	 (eval ":
+ (as_func_return () {
+   (exit \$1)
+ }
+ as_func_success () {
+   as_func_return 0
+ }
+ as_func_failure () {
+   as_func_return 1
+ }
+ as_func_ret_success () {
+   return 0
+ }
+ as_func_ret_failure () {
+   return 1
+ }
+ 
+ exitcode=0
+ if as_func_success; then
+   :
+ else
+   exitcode=1
+   echo as_func_success failed.
+ fi
+ 
+ if as_func_failure; then
+   exitcode=1
+   echo as_func_failure succeeded.
+ fi
+ 
+ if as_func_ret_success; then
+   :
+ else
+   exitcode=1
+   echo as_func_ret_success failed.
+ fi
+ 
+ if as_func_ret_failure; then
+   exitcode=1
+   echo as_func_ret_failure succeeded.
+ fi
+ 
+ if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+   :
+ else
+   exitcode=1
+   echo positional parameters were not saved.
+ fi
+ 
+ test \$exitcode = 0) || { (exit 1); exit 1; }
+ 
+ (
+   as_lineno_1=\$LINENO
+   as_lineno_2=\$LINENO
+   test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+   test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+ ") 2> /dev/null; then
+   :
+ else
+   as_candidate_shells=
+     as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   case $as_dir in
+ 	 /*)
+ 	   for as_base in sh bash ksh sh5; do
+ 	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+ 	   done;;
+        esac
+ done
+ IFS=$as_save_IFS
+ 
+ 
+       for as_shell in $as_candidate_shells $SHELL; do
+ 	 # Try only shells that exist, to save several forks.
+ 	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ 		{ ("$as_shell") 2> /dev/null <<\_ASEOF
+ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+   emulate sh
+   NULLCMD=:
+   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+   # is contrary to our usage.  Disable this feature.
+   alias -g '${1+"$@"}'='"$@"'
+   setopt NO_GLOB_SUBST
+ else
+   case `(set -o) 2>/dev/null` in
+   *posix*) set -o posix ;;
+ esac
+ 
+ fi
+ 
+ 
+ :
+ _ASEOF
+ }; then
+   CONFIG_SHELL=$as_shell
+ 	       as_have_required=yes
+ 	       if { "$as_shell" 2> /dev/null <<\_ASEOF
+ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+   emulate sh
+   NULLCMD=:
+   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+   # is contrary to our usage.  Disable this feature.
+   alias -g '${1+"$@"}'='"$@"'
+   setopt NO_GLOB_SUBST
+ else
+   case `(set -o) 2>/dev/null` in
+   *posix*) set -o posix ;;
+ esac
+ 
+ fi
+ 
+ 
+ :
+ (as_func_return () {
+   (exit $1)
+ }
+ as_func_success () {
+   as_func_return 0
+ }
+ as_func_failure () {
+   as_func_return 1
+ }
+ as_func_ret_success () {
+   return 0
+ }
+ as_func_ret_failure () {
+   return 1
+ }
+ 
+ exitcode=0
+ if as_func_success; then
+   :
+ else
+   exitcode=1
+   echo as_func_success failed.
+ fi
+ 
+ if as_func_failure; then
+   exitcode=1
+   echo as_func_failure succeeded.
+ fi
+ 
+ if as_func_ret_success; then
+   :
+ else
+   exitcode=1
+   echo as_func_ret_success failed.
+ fi
+ 
+ if as_func_ret_failure; then
+   exitcode=1
+   echo as_func_ret_failure succeeded.
+ fi
+ 
+ if ( set x; as_func_ret_success y && test x = "$1" ); then
+   :
+ else
+   exitcode=1
+   echo positional parameters were not saved.
+ fi
+ 
+ test $exitcode = 0) || { (exit 1); exit 1; }
+ 
+ (
+   as_lineno_1=$LINENO
+   as_lineno_2=$LINENO
+   test "x$as_lineno_1" != "x$as_lineno_2" &&
+   test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
+ 
+ _ASEOF
+ }; then
+   break
+ fi
+ 
+ fi
+ 
+       done
+ 
+       if test "x$CONFIG_SHELL" != x; then
+   for as_var in BASH_ENV ENV
+ 	do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+ 	done
+ 	export CONFIG_SHELL
+ 	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+ fi
+ 
+ 
+     if test $as_have_required = no; then
+   echo This script requires a shell more modern than all the
+       echo shells that I found on your system.  Please install a
+       echo modern shell, or manually run the script under such a
+       echo shell if you do have one.
+       { (exit 1); exit 1; }
+ fi
+ 
+ 
+ fi
+ 
+ fi
+ 
+ 
+ 
+ (eval "as_func_return () {
+   (exit \$1)
+ }
+ as_func_success () {
+   as_func_return 0
+ }
+ as_func_failure () {
+   as_func_return 1
+ }
+ as_func_ret_success () {
+   return 0
+ }
+ as_func_ret_failure () {
+   return 1
+ }
+ 
+ exitcode=0
+ if as_func_success; then
+   :
+ else
+   exitcode=1
+   echo as_func_success failed.
+ fi
+ 
+ if as_func_failure; then
+   exitcode=1
+   echo as_func_failure succeeded.
+ fi
+ 
+ if as_func_ret_success; then
+   :
+ else
+   exitcode=1
+   echo as_func_ret_success failed.
+ fi
+ 
+ if as_func_ret_failure; then
+   exitcode=1
+   echo as_func_ret_failure succeeded.
+ fi
+ 
+ if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+   :
+ else
+   exitcode=1
+   echo positional parameters were not saved.
+ fi
+ 
+ test \$exitcode = 0") || {
+   echo No shell found that supports shell functions.
+   echo Please tell bug-autoconf@gnu.org about your system,
+   echo including any error possibly output before this message.
+   echo This can help us improve future autoconf versions.
+   echo Configuration will now proceed without shell functions.
+ }
+ 
+ 
+ 
+   as_lineno_1=$LINENO
+   as_lineno_2=$LINENO
+   test "x$as_lineno_1" != "x$as_lineno_2" &&
+   test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+ 
+   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+   # uniformly replaced by the line number.  The first 'sed' inserts a
+   # line-number line after each line using $LINENO; the second 'sed'
+   # does the real work.  The second script uses 'N' to pair each
+   # line-number line with the line containing $LINENO, and appends
+   # trailing '-' during substitution so that $LINENO is not a special
+   # case at line end.
+   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+   # scripts with optimization help from Paolo Bonzini.  Blame Lee
+   # E. McMahon (1931-1989) for sed's syntax.  :-)
+   sed -n '
+     p
+     /[$]LINENO/=
+   ' <$as_myself |
+     sed '
+       s/[$]LINENO.*/&-/
+       t lineno
+       b
+       :lineno
+       N
+       :loop
+       s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+       t loop
+       s/-\n.*//
+     ' >$as_me.lineno &&
+   chmod +x "$as_me.lineno" ||
+     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+    { (exit 1); exit 1; }; }
+ 
+   # Don't try to exec as it changes $[0], causing all sort of problems
+   # (the dirname of $[0] is not the place where we might find the
+   # original and so on.  Autoconf is especially sensitive to this).
+   . "./$as_me.lineno"
+   # Exit status is that of the last command.
+   exit
+ }
+ 
+ 
+ if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+   as_dirname=dirname
+ else
+   as_dirname=false
+ fi
+ 
+ ECHO_C= ECHO_N= ECHO_T=
+ case `echo -n x` in
+ -n*)
+   case `echo 'x\c'` in
+   *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+   *)   ECHO_C='\c';;
+   esac;;
+ *)
+   ECHO_N='-n';;
+ esac
+ if expr a : '\(a\)' >/dev/null 2>&1 &&
+    test "X`expr 00001 : '.*\(...\)'`" = X001; then
+   as_expr=expr
+ else
+   as_expr=false
+ fi
+ 
+ rm -f conf$$ conf$$.exe conf$$.file
+ if test -d conf$$.dir; then
+   rm -f conf$$.dir/conf$$.file
+ else
+   rm -f conf$$.dir
+   mkdir conf$$.dir 2>/dev/null
+ fi
+ if (echo >conf$$.file) 2>/dev/null; then
+   if ln -s conf$$.file conf$$ 2>/dev/null; then
+     as_ln_s='ln -s'
+     # ... but there are two gotchas:
+     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+     # In both cases, we have to default to `cp -p'.
+     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+       as_ln_s='cp -p'
+   elif ln conf$$.file conf$$ 2>/dev/null; then
+     as_ln_s=ln
+   else
+     as_ln_s='cp -p'
+   fi
+ else
+   as_ln_s='cp -p'
+ fi
+ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+ rmdir conf$$.dir 2>/dev/null
+ 
+ if mkdir -p . 2>/dev/null; then
+   as_mkdir_p=:
+ else
+   test -d ./-p && rmdir ./-p
+   as_mkdir_p=false
+ fi
+ 
+ if test -x / >/dev/null 2>&1; then
+   as_test_x='test -x'
+ else
+   if ls -dL / >/dev/null 2>&1; then
+     as_ls_L_option=L
+   else
+     as_ls_L_option=
+   fi
+   as_test_x='
+     eval sh -c '\''
+       if test -d "$1"; then
+ 	test -d "$1/.";
+       else
+ 	case $1 in
+ 	-*)set "./$1";;
+ 	esac;
+ 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+ 	???[sx]*):;;*)false;;esac;fi
+     '\'' sh
+   '
+ fi
+ as_executable_p=$as_test_x
+ 
+ # Sed expression to map a string onto a valid CPP name.
+ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+ 
+ # Sed expression to map a string onto a valid variable name.
+ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+ 
+ 
+ 
+ exec 7<&0 </dev/null 6>&1
+ 
+ # Name of the host.
+ # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+ # so uname gets run too.
+ ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+ 
+ #
+ # Initializations.
+ #
+ ac_default_prefix=/usr/local
+ ac_clean_files=
+ ac_config_libobj_dir=.
+ LIBOBJS=
+ cross_compiling=no
+ subdirs=
+ MFLAGS=
+ MAKEFLAGS=
+ SHELL=${CONFIG_SHELL-/bin/sh}
+ 
+ # Identity of this package.
+ PACKAGE_NAME='GNU Texinfo'
+ PACKAGE_TARNAME='texinfo'
+ PACKAGE_VERSION='4.13'
+ PACKAGE_STRING='GNU Texinfo 4.13'
+ PACKAGE_BUGREPORT='bug-texinfo@gnu.org'
+ 
+ ac_unique_file="makeinfo/makeinfo.c"
+ # Factoring default headers for most tests.
+ ac_includes_default="\
+ #include <stdio.h>
+ #ifdef HAVE_SYS_TYPES_H
+ # include <sys/types.h>
+ #endif
+ #ifdef HAVE_SYS_STAT_H
+ # include <sys/stat.h>
+ #endif
+ #ifdef STDC_HEADERS
+ # include <stdlib.h>
+ # include <stddef.h>
+ #else
+ # ifdef HAVE_STDLIB_H
+ #  include <stdlib.h>
+ # endif
+ #endif
+ #ifdef HAVE_STRING_H
+ # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+ #  include <memory.h>
+ # endif
+ # include <string.h>
+ #endif
+ #ifdef HAVE_STRINGS_H
+ # include <strings.h>
+ #endif
+ #ifdef HAVE_INTTYPES_H
+ # include <inttypes.h>
+ #endif
+ #ifdef HAVE_STDINT_H
+ # include <stdint.h>
+ #endif
+ #ifdef HAVE_UNISTD_H
+ # include <unistd.h>
+ #endif"
+ 
+ gl_header_list=
+ gl_func_list=
+ gt_needs=
+ ac_subst_vars='gltests_LTLIBOBJS
+ gltests_LIBOBJS
+ gl_LTLIBOBJS
+ gl_LIBOBJS
+ LTLIBOBJS
+ TEX
+ HEVEA
+ POSUB
+ INTLLIBS
+ LTLIBICONV
+ LIBICONV
+ INTL_MACOSX_LIBS
+ XGETTEXT_EXTRA_OPTIONS
+ MSGMERGE
+ XGETTEXT_015
+ XGETTEXT
+ GMSGFMT_015
+ MSGFMT_015
+ GMSGFMT
+ MSGFMT
+ GETTEXT_MACRO_VERSION
+ USE_NLS
+ INSTALL_WARNINGS_FALSE
+ INSTALL_WARNINGS_TRUE
+ TERMLIBS
+ TOOLS_ONLY_FALSE
+ TOOLS_ONLY_TRUE
+ native_tools
+ LIBOBJS
+ HELP2MAN
+ LIBGNU_LTLIBDEPS
+ LIBGNU_LIBDEPS
+ REPLACE_ISWCNTRL
+ WCTYPE_H
+ HAVE_WCTYPE_H
+ NEXT_WCTYPE_H
+ HAVE_WINT_T
+ HAVE_ISWCNTRL
+ NEXT_WCHAR_H
+ HAVE_WCHAR_H
+ WCHAR_H
+ REPLACE_WCWIDTH
+ HAVE_DECL_WCWIDTH
+ GNULIB_WCWIDTH
+ HAVE_UNISTD_H
+ NEXT_UNISTD_H
+ SYS_STAT_H
+ NEXT_SYS_STAT_H
+ HAVE_LSTAT
+ REPLACE_MKDIR
+ NEXT_STRING_H
+ NEXT_STDLIB_H
+ STDINT_H
+ WINT_T_SUFFIX
+ WCHAR_T_SUFFIX
+ SIZE_T_SUFFIX
+ SIG_ATOMIC_T_SUFFIX
+ PTRDIFF_T_SUFFIX
+ HAVE_SIGNED_WINT_T
+ HAVE_SIGNED_WCHAR_T
+ HAVE_SIGNED_SIG_ATOMIC_T
+ BITSIZEOF_WINT_T
+ BITSIZEOF_WCHAR_T
+ BITSIZEOF_SIZE_T
+ BITSIZEOF_SIG_ATOMIC_T
+ BITSIZEOF_PTRDIFF_T
+ HAVE_SYS_BITYPES_H
+ HAVE_SYS_INTTYPES_H
+ HAVE_STDINT_H
+ NEXT_STDINT_H
+ HAVE_SYS_TYPES_H
+ HAVE_INTTYPES_H
+ HAVE_UNSIGNED_LONG_LONG_INT
+ HAVE_LONG_LONG_INT
+ HAVE__BOOL
+ STDBOOL_H
+ REPLACE_STRSTR
+ REPLACE_STRCASESTR
+ REPLACE_MEMMEM
+ REPLACE_STRSIGNAL
+ REPLACE_STRERROR
+ HAVE_DECL_STRSIGNAL
+ HAVE_DECL_STRERROR
+ HAVE_DECL_STRTOK_R
+ HAVE_STRCASESTR
+ HAVE_STRSEP
+ HAVE_STRPBRK
+ HAVE_DECL_STRNLEN
+ HAVE_DECL_STRNDUP
+ HAVE_STRNDUP
+ HAVE_DECL_STRDUP
+ HAVE_STRCHRNUL
+ HAVE_STPNCPY
+ HAVE_STPCPY
+ HAVE_RAWMEMCHR
+ HAVE_DECL_MEMRCHR
+ HAVE_MEMPCPY
+ HAVE_DECL_MEMMEM
+ GNULIB_STRSIGNAL
+ GNULIB_STRERROR
+ GNULIB_MBSTOK_R
+ GNULIB_MBSSEP
+ GNULIB_MBSSPN
+ GNULIB_MBSPBRK
+ GNULIB_MBSCSPN
+ GNULIB_MBSCASESTR
+ GNULIB_MBSPCASECMP
+ GNULIB_MBSNCASECMP
+ GNULIB_MBSCASECMP
+ GNULIB_MBSSTR
+ GNULIB_MBSRCHR
+ GNULIB_MBSCHR
+ GNULIB_MBSNLEN
+ GNULIB_MBSLEN
+ GNULIB_STRTOK_R
+ GNULIB_STRCASESTR
+ GNULIB_STRSTR
+ GNULIB_STRSEP
+ GNULIB_STRPBRK
+ GNULIB_STRNLEN
+ GNULIB_STRNDUP
+ GNULIB_STRDUP
+ GNULIB_STRCHRNUL
+ GNULIB_STPNCPY
+ GNULIB_STPCPY
+ GNULIB_RAWMEMCHR
+ GNULIB_MEMRCHR
+ GNULIB_MEMPCPY
+ GNULIB_MEMMEM
+ VOID_UNSETENV
+ REPLACE_STRTOD
+ REPLACE_PUTENV
+ REPLACE_MKSTEMP
+ HAVE_UNSETENV
+ HAVE_STRTOD
+ HAVE_SETENV
+ HAVE_RPMATCH
+ HAVE_REALLOC_POSIX
+ HAVE_MKDTEMP
+ HAVE_GETSUBOPT
+ HAVE_CALLOC_POSIX
+ GNULIB_UNSETENV
+ GNULIB_STRTOD
+ GNULIB_SETENV
+ GNULIB_RPMATCH
+ GNULIB_PUTENV
+ GNULIB_MKSTEMP
+ GNULIB_MKDTEMP
+ GNULIB_GETSUBOPT
+ GNULIB_CALLOC_POSIX
+ GNULIB_REALLOC_POSIX
+ GNULIB_MALLOC_POSIX
+ HAVE_MALLOC_POSIX
+ LOCALCHARSET_TESTS_ENVIRONMENT
+ GLIBC21
+ host_os
+ host_vendor
+ host_cpu
+ host
+ build_os
+ build_vendor
+ build_cpu
+ build
+ SYS_TIME_H
+ REPLACE_GETTIMEOFDAY
+ HAVE_STRUCT_TIMEVAL
+ HAVE_SYS_TIME_H
+ NEXT_SYS_TIME_H
+ INCLUDE_NEXT
+ LTLIBINTL
+ LIBINTL
+ GETOPT_H
+ REPLACE_LSEEK
+ REPLACE_LCHOWN
+ REPLACE_GETPAGESIZE
+ REPLACE_GETCWD
+ REPLACE_FCHDIR
+ REPLACE_CHOWN
+ HAVE_SYS_PARAM_H
+ HAVE_OS_H
+ HAVE_DECL_GETLOGIN_R
+ HAVE_DECL_ENVIRON
+ HAVE_SLEEP
+ HAVE_READLINK
+ HAVE_GETPAGESIZE
+ HAVE_FTRUNCATE
+ HAVE_DUP2
+ GNULIB_SLEEP
+ GNULIB_READLINK
+ GNULIB_LSEEK
+ GNULIB_LCHOWN
+ GNULIB_GETPAGESIZE
+ GNULIB_GETLOGIN_R
+ GNULIB_GETCWD
+ GNULIB_FTRUNCATE
+ GNULIB_FCHDIR
+ GNULIB_ENVIRON
+ GNULIB_DUP2
+ GNULIB_CHOWN
+ ARGZ_H
+ ALLOCA_H
+ ALLOCA
+ GL_COND_LIBTOOL_FALSE
+ GL_COND_LIBTOOL_TRUE
+ EGREP
+ GREP
+ CPP
+ RANLIB
+ am__fastdepCC_FALSE
+ am__fastdepCC_TRUE
+ CCDEPMODE
+ AMDEPBACKSLASH
+ AMDEP_FALSE
+ AMDEP_TRUE
+ am__quote
+ am__include
+ DEPDIR
+ OBJEXT
+ EXEEXT
+ ac_ct_CC
+ CPPFLAGS
+ LDFLAGS
+ CFLAGS
+ CC
+ MAINT
+ MAINTAINER_MODE_FALSE
+ MAINTAINER_MODE_TRUE
+ am__untar
+ am__tar
+ AMTAR
+ am__leading_dot
+ SET_MAKE
+ AWK
+ mkdir_p
+ MKDIR_P
+ INSTALL_STRIP_PROGRAM
+ STRIP
+ install_sh
+ MAKEINFO
+ AUTOHEADER
+ AUTOMAKE
+ AUTOCONF
+ ACLOCAL
+ VERSION
+ PACKAGE
+ CYGPATH_W
+ am__isrc
+ INSTALL_DATA
+ INSTALL_SCRIPT
+ INSTALL_PROGRAM
+ target_alias
+ host_alias
+ build_alias
+ LIBS
+ ECHO_T
+ ECHO_N
+ ECHO_C
+ DEFS
+ mandir
+ localedir
+ libdir
+ psdir
+ pdfdir
+ dvidir
+ htmldir
+ infodir
+ docdir
+ oldincludedir
+ includedir
+ localstatedir
+ sharedstatedir
+ sysconfdir
+ datadir
+ datarootdir
+ libexecdir
+ sbindir
+ bindir
+ program_transform_name
+ prefix
+ exec_prefix
+ PACKAGE_BUGREPORT
+ PACKAGE_STRING
+ PACKAGE_VERSION
+ PACKAGE_TARNAME
+ PACKAGE_NAME
+ PATH_SEPARATOR
+ SHELL'
+ ac_subst_files=''
+ ac_user_opts='
+ enable_option_checking
+ enable_maintainer_mode
+ enable_dependency_tracking
+ enable_largefile
+ enable_multiplatform
+ enable_install_warnings
+ enable_nls
+ with_gnu_ld
+ enable_rpath
+ with_libiconv_prefix
+ with_libintl_prefix
+ '
+       ac_precious_vars='build_alias
+ host_alias
+ target_alias
+ CC
+ CFLAGS
+ LDFLAGS
+ LIBS
+ CPPFLAGS
+ CPP'
+ 
+ 
+ # Initialize some variables set by options.
+ ac_init_help=
+ ac_init_version=false
+ ac_unrecognized_opts=
+ ac_unrecognized_sep=
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+ cache_file=/dev/null
+ exec_prefix=NONE
+ no_create=
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+ program_suffix=NONE
+ program_transform_name=s,x,x,
+ silent=
+ site=
+ srcdir=
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
+ 
+ # Installation directory options.
+ # These are left unexpanded so users can "make install exec_prefix=/foo"
+ # and all the variables that are supposed to be based on exec_prefix
+ # by default will actually change.
+ # Use braces instead of parens because sh, perl, etc. also accept them.
+ # (The list follows the same order as the GNU Coding Standards.)
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+ datarootdir='${prefix}/share'
+ datadir='${datarootdir}'
+ sysconfdir='${prefix}/etc'
+ sharedstatedir='${prefix}/com'
+ localstatedir='${prefix}/var'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+ docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+ infodir='${datarootdir}/info'
+ htmldir='${docdir}'
+ dvidir='${docdir}'
+ pdfdir='${docdir}'
+ psdir='${docdir}'
+ libdir='${exec_prefix}/lib'
+ localedir='${datarootdir}/locale'
+ mandir='${datarootdir}/man'
+ 
+ ac_prev=
+ ac_dashdash=
+ for ac_option
+ do
+   # If the previous option needs an argument, assign it.
+   if test -n "$ac_prev"; then
+     eval $ac_prev=\$ac_option
+     ac_prev=
+     continue
+   fi
+ 
+   case $ac_option in
+   *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+   *)	ac_optarg=yes ;;
+   esac
+ 
+   # Accept the important Cygnus configure options, so we can diagnose typos.
+ 
+   case $ac_dashdash$ac_option in
+   --)
+     ac_dashdash=yes ;;
+ 
+   -bindir | --bindir | --bindi | --bind | --bin | --bi)
+     ac_prev=bindir ;;
+   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+     bindir=$ac_optarg ;;
+ 
+   -build | --build | --buil | --bui | --bu)
+     ac_prev=build_alias ;;
+   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+     build_alias=$ac_optarg ;;
+ 
+   -cache-file | --cache-file | --cache-fil | --cache-fi \
+   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+     ac_prev=cache_file ;;
+   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+     cache_file=$ac_optarg ;;
+ 
+   --config-cache | -C)
+     cache_file=config.cache ;;
+ 
+   -datadir | --datadir | --datadi | --datad)
+     ac_prev=datadir ;;
+   -datadir=* | --datadir=* | --datadi=* | --datad=*)
+     datadir=$ac_optarg ;;
+ 
+   -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+   | --dataroo | --dataro | --datar)
+     ac_prev=datarootdir ;;
+   -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+   | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+     datarootdir=$ac_optarg ;;
+ 
+   -disable-* | --disable-*)
+     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+     # Reject names that are not valid shell variable names.
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+       { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+    { (exit 1); exit 1; }; }
+     ac_useropt_orig=$ac_useropt
+     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+       *"
+ "enable_$ac_useropt"
+ "*) ;;
+       *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ 	 ac_unrecognized_sep=', ';;
+     esac
+     eval enable_$ac_useropt=no ;;
+ 
+   -docdir | --docdir | --docdi | --doc | --do)
+     ac_prev=docdir ;;
+   -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+     docdir=$ac_optarg ;;
+ 
+   -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+     ac_prev=dvidir ;;
+   -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+     dvidir=$ac_optarg ;;
+ 
+   -enable-* | --enable-*)
+     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+     # Reject names that are not valid shell variable names.
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+       { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
+    { (exit 1); exit 1; }; }
+     ac_useropt_orig=$ac_useropt
+     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+       *"
+ "enable_$ac_useropt"
+ "*) ;;
+       *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ 	 ac_unrecognized_sep=', ';;
+     esac
+     eval enable_$ac_useropt=\$ac_optarg ;;
+ 
+   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+   | --exec | --exe | --ex)
+     ac_prev=exec_prefix ;;
+   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+   | --exec=* | --exe=* | --ex=*)
+     exec_prefix=$ac_optarg ;;
+ 
+   -gas | --gas | --ga | --g)
+     # Obsolete; use --with-gas.
+     with_gas=yes ;;
+ 
+   -help | --help | --hel | --he | -h)
+     ac_init_help=long ;;
+   -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+     ac_init_help=recursive ;;
+   -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+     ac_init_help=short ;;
+ 
+   -host | --host | --hos | --ho)
+     ac_prev=host_alias ;;
+   -host=* | --host=* | --hos=* | --ho=*)
+     host_alias=$ac_optarg ;;
+ 
+   -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+     ac_prev=htmldir ;;
+   -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+   | --ht=*)
+     htmldir=$ac_optarg ;;
+ 
+   -includedir | --includedir | --includedi | --included | --include \
+   | --includ | --inclu | --incl | --inc)
+     ac_prev=includedir ;;
+   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+   | --includ=* | --inclu=* | --incl=* | --inc=*)
+     includedir=$ac_optarg ;;
+ 
+   -infodir | --infodir | --infodi | --infod | --info | --inf)
+     ac_prev=infodir ;;
+   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+     infodir=$ac_optarg ;;
+ 
+   -libdir | --libdir | --libdi | --libd)
+     ac_prev=libdir ;;
+   -libdir=* | --libdir=* | --libdi=* | --libd=*)
+     libdir=$ac_optarg ;;
+ 
+   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+   | --libexe | --libex | --libe)
+     ac_prev=libexecdir ;;
+   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+   | --libexe=* | --libex=* | --libe=*)
+     libexecdir=$ac_optarg ;;
+ 
+   -localedir | --localedir | --localedi | --localed | --locale)
+     ac_prev=localedir ;;
+   -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+     localedir=$ac_optarg ;;
+ 
+   -localstatedir | --localstatedir | --localstatedi | --localstated \
+   | --localstate | --localstat | --localsta | --localst | --locals)
+     ac_prev=localstatedir ;;
+   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+   | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+     localstatedir=$ac_optarg ;;
+ 
+   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+     ac_prev=mandir ;;
+   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+     mandir=$ac_optarg ;;
+ 
+   -nfp | --nfp | --nf)
+     # Obsolete; use --without-fp.
+     with_fp=no ;;
+ 
+   -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+   | --no-cr | --no-c | -n)
+     no_create=yes ;;
+ 
+   -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+   | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+     no_recursion=yes ;;
+ 
+   -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+   | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+   | --oldin | --oldi | --old | --ol | --o)
+     ac_prev=oldincludedir ;;
+   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+     oldincludedir=$ac_optarg ;;
+ 
+   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+     ac_prev=prefix ;;
+   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+     prefix=$ac_optarg ;;
+ 
+   -program-prefix | --program-prefix | --program-prefi | --program-pref \
+   | --program-pre | --program-pr | --program-p)
+     ac_prev=program_prefix ;;
+   -program-prefix=* | --program-prefix=* | --program-prefi=* \
+   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+     program_prefix=$ac_optarg ;;
+ 
+   -program-suffix | --program-suffix | --program-suffi | --program-suff \
+   | --program-suf | --program-su | --program-s)
+     ac_prev=program_suffix ;;
+   -program-suffix=* | --program-suffix=* | --program-suffi=* \
+   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+     program_suffix=$ac_optarg ;;
+ 
+   -program-transform-name | --program-transform-name \
+   | --program-transform-nam | --program-transform-na \
+   | --program-transform-n | --program-transform- \
+   | --program-transform | --program-transfor \
+   | --program-transfo | --program-transf \
+   | --program-trans | --program-tran \
+   | --progr-tra | --program-tr | --program-t)
+     ac_prev=program_transform_name ;;
+   -program-transform-name=* | --program-transform-name=* \
+   | --program-transform-nam=* | --program-transform-na=* \
+   | --program-transform-n=* | --program-transform-=* \
+   | --program-transform=* | --program-transfor=* \
+   | --program-transfo=* | --program-transf=* \
+   | --program-trans=* | --program-tran=* \
+   | --progr-tra=* | --program-tr=* | --program-t=*)
+     program_transform_name=$ac_optarg ;;
+ 
+   -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+     ac_prev=pdfdir ;;
+   -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+     pdfdir=$ac_optarg ;;
+ 
+   -psdir | --psdir | --psdi | --psd | --ps)
+     ac_prev=psdir ;;
+   -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+     psdir=$ac_optarg ;;
+ 
+   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+   | -silent | --silent | --silen | --sile | --sil)
+     silent=yes ;;
+ 
+   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+     ac_prev=sbindir ;;
+   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+   | --sbi=* | --sb=*)
+     sbindir=$ac_optarg ;;
+ 
+   -sharedstatedir | --sharedstatedir | --sharedstatedi \
+   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+   | --sharedst | --shareds | --shared | --share | --shar \
+   | --sha | --sh)
+     ac_prev=sharedstatedir ;;
+   -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+   | --sha=* | --sh=*)
+     sharedstatedir=$ac_optarg ;;
+ 
+   -site | --site | --sit)
+     ac_prev=site ;;
+   -site=* | --site=* | --sit=*)
+     site=$ac_optarg ;;
+ 
+   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+     ac_prev=srcdir ;;
+   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+     srcdir=$ac_optarg ;;
+ 
+   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+   | --syscon | --sysco | --sysc | --sys | --sy)
+     ac_prev=sysconfdir ;;
+   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+     sysconfdir=$ac_optarg ;;
+ 
+   -target | --target | --targe | --targ | --tar | --ta | --t)
+     ac_prev=target_alias ;;
+   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+     target_alias=$ac_optarg ;;
+ 
+   -v | -verbose | --verbose | --verbos | --verbo | --verb)
+     verbose=yes ;;
+ 
+   -version | --version | --versio | --versi | --vers | -V)
+     ac_init_version=: ;;
+ 
+   -with-* | --with-*)
+     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+     # Reject names that are not valid shell variable names.
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+       { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+    { (exit 1); exit 1; }; }
+     ac_useropt_orig=$ac_useropt
+     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+       *"
+ "with_$ac_useropt"
+ "*) ;;
+       *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ 	 ac_unrecognized_sep=', ';;
+     esac
+     eval with_$ac_useropt=\$ac_optarg ;;
+ 
+   -without-* | --without-*)
+     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+     # Reject names that are not valid shell variable names.
+     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+       { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
+    { (exit 1); exit 1; }; }
+     ac_useropt_orig=$ac_useropt
+     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+     case $ac_user_opts in
+       *"
+ "with_$ac_useropt"
+ "*) ;;
+       *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ 	 ac_unrecognized_sep=', ';;
+     esac
+     eval with_$ac_useropt=no ;;
+ 
+   --x)
+     # Obsolete; use --with-x.
+     with_x=yes ;;
+ 
+   -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+   | --x-incl | --x-inc | --x-in | --x-i)
+     ac_prev=x_includes ;;
+   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+     x_includes=$ac_optarg ;;
+ 
+   -x-libraries | --x-libraries | --x-librarie | --x-librari \
+   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+     ac_prev=x_libraries ;;
+   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+     x_libraries=$ac_optarg ;;
+ 
+   -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
+ Try \`$0 --help' for more information." >&2
+    { (exit 1); exit 1; }; }
+     ;;
+ 
+   *=*)
+     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+     # Reject names that are not valid shell variable names.
+     expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+       { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+    { (exit 1); exit 1; }; }
+     eval $ac_envvar=\$ac_optarg
+     export $ac_envvar ;;
+ 
+   *)
+     # FIXME: should be removed in autoconf 3.0.
+     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+     : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+     ;;
+ 
+   esac
+ done
+ 
+ if test -n "$ac_prev"; then
+   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+   { $as_echo "$as_me: error: missing argument to $ac_option" >&2
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ if test -n "$ac_unrecognized_opts"; then
+   case $enable_option_checking in
+     no) ;;
+     fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
+    { (exit 1); exit 1; }; } ;;
+     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+   esac
+ fi
+ 
+ # Check all directory arguments for consistency.
+ for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ 		datadir sysconfdir sharedstatedir localstatedir includedir \
+ 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ 		libdir localedir mandir
+ do
+   eval ac_val=\$$ac_var
+   # Remove trailing slashes.
+   case $ac_val in
+     */ )
+       ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+       eval $ac_var=\$ac_val;;
+   esac
+   # Be sure to have absolute directory names.
+   case $ac_val in
+     [\\/$]* | ?:[\\/]* )  continue;;
+     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+   esac
+   { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+    { (exit 1); exit 1; }; }
+ done
+ 
+ # There might be people who depend on the old broken behavior: `$host'
+ # used to hold the argument of --host etc.
+ # FIXME: To remove some day.
+ build=$build_alias
+ host=$host_alias
+ target=$target_alias
+ 
+ # FIXME: To remove some day.
+ if test "x$host_alias" != x; then
+   if test "x$build_alias" = x; then
+     cross_compiling=maybe
+     $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+     If a cross compiler is detected then cross compile mode will be used." >&2
+   elif test "x$build_alias" != "x$host_alias"; then
+     cross_compiling=yes
+   fi
+ fi
+ 
+ ac_tool_prefix=
+ test -n "$host_alias" && ac_tool_prefix=$host_alias-
+ 
+ test "$silent" = yes && exec 6>/dev/null
+ 
+ 
+ ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ ac_ls_di=`ls -di .` &&
+ ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+   { $as_echo "$as_me: error: working directory cannot be determined" >&2
+    { (exit 1); exit 1; }; }
+ test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+   { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
+    { (exit 1); exit 1; }; }
+ 
+ 
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+   ac_srcdir_defaulted=yes
+   # Try the directory containing this script, then the parent directory.
+   ac_confdir=`$as_dirname -- "$as_myself" ||
+ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ 	 X"$as_myself" : 'X\(//\)[^/]' \| \
+ 	 X"$as_myself" : 'X\(//\)$' \| \
+ 	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+ $as_echo X"$as_myself" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)[^/].*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\).*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  s/.*/./; q'`
+   srcdir=$ac_confdir
+   if test ! -r "$srcdir/$ac_unique_file"; then
+     srcdir=..
+   fi
+ else
+   ac_srcdir_defaulted=no
+ fi
+ if test ! -r "$srcdir/$ac_unique_file"; then
+   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+   { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+    { (exit 1); exit 1; }; }
+ fi
+ ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ ac_abs_confdir=`(
+ 	cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
+    { (exit 1); exit 1; }; }
+ 	pwd)`
+ # When building in place, set srcdir=.
+ if test "$ac_abs_confdir" = "$ac_pwd"; then
+   srcdir=.
+ fi
+ # Remove unnecessary trailing slashes from srcdir.
+ # Double slashes in file names in object file debugging info
+ # mess up M-x gdb in Emacs.
+ case $srcdir in
+ */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+ esac
+ for ac_var in $ac_precious_vars; do
+   eval ac_env_${ac_var}_set=\${${ac_var}+set}
+   eval ac_env_${ac_var}_value=\$${ac_var}
+   eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+   eval ac_cv_env_${ac_var}_value=\$${ac_var}
+ done
+ 
+ #
+ # Report the --help message.
+ #
+ if test "$ac_init_help" = "long"; then
+   # Omit some internal or obsolete options to make the list less imposing.
+   # This message is too long to be a string in the A/UX 3.1 sh.
+   cat <<_ACEOF
+ \`configure' configures GNU Texinfo 4.13 to adapt to many kinds of systems.
+ 
+ Usage: $0 [OPTION]... [VAR=VALUE]...
+ 
+ To assign environment variables (e.g., CC, CFLAGS...), specify them as
+ VAR=VALUE.  See below for descriptions of some of the useful variables.
+ 
+ Defaults for the options are specified in brackets.
+ 
+ Configuration:
+   -h, --help              display this help and exit
+       --help=short        display options specific to this package
+       --help=recursive    display the short help of all the included packages
+   -V, --version           display version information and exit
+   -q, --quiet, --silent   do not print \`checking...' messages
+       --cache-file=FILE   cache test results in FILE [disabled]
+   -C, --config-cache      alias for \`--cache-file=config.cache'
+   -n, --no-create         do not create output files
+       --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+ 
+ Installation directories:
+   --prefix=PREFIX         install architecture-independent files in PREFIX
+                           [$ac_default_prefix]
+   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                           [PREFIX]
+ 
+ By default, \`make install' will install all the files in
+ \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+ an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+ for instance \`--prefix=\$HOME'.
+ 
+ For better control, use the options below.
+ 
+ Fine tuning of the installation directories:
+   --bindir=DIR            user executables [EPREFIX/bin]
+   --sbindir=DIR           system admin executables [EPREFIX/sbin]
+   --libexecdir=DIR        program executables [EPREFIX/libexec]
+   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+   --libdir=DIR            object code libraries [EPREFIX/lib]
+   --includedir=DIR        C header files [PREFIX/include]
+   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+   --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+   --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+   --infodir=DIR           info documentation [DATAROOTDIR/info]
+   --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+   --mandir=DIR            man documentation [DATAROOTDIR/man]
+   --docdir=DIR            documentation root [DATAROOTDIR/doc/texinfo]
+   --htmldir=DIR           html documentation [DOCDIR]
+   --dvidir=DIR            dvi documentation [DOCDIR]
+   --pdfdir=DIR            pdf documentation [DOCDIR]
+   --psdir=DIR             ps documentation [DOCDIR]
+ _ACEOF
+ 
+   cat <<\_ACEOF
+ 
+ Program names:
+   --program-prefix=PREFIX            prepend PREFIX to installed program names
+   --program-suffix=SUFFIX            append SUFFIX to installed program names
+   --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+ 
+ System types:
+   --build=BUILD     configure for building on BUILD [guessed]
+   --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+ _ACEOF
+ fi
+ 
+ if test -n "$ac_init_help"; then
+   case $ac_init_help in
+      short | recursive ) echo "Configuration of GNU Texinfo 4.13:";;
+    esac
+   cat <<\_ACEOF
+ 
+ Optional Features:
+   --disable-option-checking  ignore unrecognized --enable/--with options
+   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+   --enable-maintainer-mode  enable make rules and dependencies not useful
+ 			  (and sometimes confusing) to the casual installer
+   --disable-dependency-tracking  speeds up one-time build
+   --enable-dependency-tracking   do not reject slow dependency extractors
+   --disable-largefile     omit support for large files
+   --enable-multiplatform  put executables into bin/PLATFORM and libraries into
+                           lib/PLATFORM
+   --disable-install-warnings  omit make install warnings about TeX files
+   --disable-nls           do not use Native Language Support
+   --disable-rpath         do not hardcode runtime library paths
+ 
+ Optional Packages:
+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+   --with-gnu-ld           assume the C compiler uses GNU ld default=no
+   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
+   --without-libiconv-prefix     don't search for libiconv in includedir and libdir
+   --with-libintl-prefix[=DIR]  search for libintl in DIR/include and DIR/lib
+   --without-libintl-prefix     don't search for libintl in includedir and libdir
+ 
+ Some influential environment variables:
+   CC          C compiler command
+   CFLAGS      C compiler flags
+   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+               nonstandard directory <lib dir>
+   LIBS        libraries to pass to the linker, e.g. -l<library>
+   CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+               you have headers in a nonstandard directory <include dir>
+   CPP         C preprocessor
+ 
+ Use these variables to override the choices made by `configure' or to help
+ it to find libraries and programs with nonstandard names/locations.
+ 
+ Report bugs to <bug-texinfo@gnu.org>.
+ _ACEOF
+ ac_status=$?
+ fi
+ 
+ if test "$ac_init_help" = "recursive"; then
+   # If there are subdirs, report their specific --help.
+   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+     test -d "$ac_dir" ||
+       { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+       continue
+     ac_builddir=.
+ 
+ case "$ac_dir" in
+ .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *)
+   ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+   # A ".." for each directory in $ac_dir_suffix.
+   ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+   case $ac_top_builddir_sub in
+   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+   esac ;;
+ esac
+ ac_abs_top_builddir=$ac_pwd
+ ac_abs_builddir=$ac_pwd$ac_dir_suffix
+ # for backward compatibility:
+ ac_top_builddir=$ac_top_build_prefix
+ 
+ case $srcdir in
+   .)  # We are building in place.
+     ac_srcdir=.
+     ac_top_srcdir=$ac_top_builddir_sub
+     ac_abs_top_srcdir=$ac_pwd ;;
+   [\\/]* | ?:[\\/]* )  # Absolute name.
+     ac_srcdir=$srcdir$ac_dir_suffix;
+     ac_top_srcdir=$srcdir
+     ac_abs_top_srcdir=$srcdir ;;
+   *) # Relative name.
+     ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+     ac_top_srcdir=$ac_top_build_prefix$srcdir
+     ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+ esac
+ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+ 
+     cd "$ac_dir" || { ac_status=$?; continue; }
+     # Check for guested configure.
+     if test -f "$ac_srcdir/configure.gnu"; then
+       echo &&
+       $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+     elif test -f "$ac_srcdir/configure"; then
+       echo &&
+       $SHELL "$ac_srcdir/configure" --help=recursive
+     else
+       $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+     fi || ac_status=$?
+     cd "$ac_pwd" || { ac_status=$?; break; }
+   done
+ fi
+ 
+ test -n "$ac_init_help" && exit $ac_status
+ if $ac_init_version; then
+   cat <<\_ACEOF
+ GNU Texinfo configure 4.13
+ generated by GNU Autoconf 2.63
+ 
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ This configure script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it.
+ _ACEOF
+   exit
+ fi
+ cat >config.log <<_ACEOF
+ This file contains any messages produced by compilers while
+ running configure, to aid debugging if configure makes a mistake.
+ 
+ It was created by GNU Texinfo $as_me 4.13, which was
+ generated by GNU Autoconf 2.63.  Invocation command line was
+ 
+   $ $0 $@
+ 
+ _ACEOF
+ exec 5>>config.log
+ {
+ cat <<_ASUNAME
+ ## --------- ##
+ ## Platform. ##
+ ## --------- ##
+ 
+ hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+ uname -m = `(uname -m) 2>/dev/null || echo unknown`
+ uname -r = `(uname -r) 2>/dev/null || echo unknown`
+ uname -s = `(uname -s) 2>/dev/null || echo unknown`
+ uname -v = `(uname -v) 2>/dev/null || echo unknown`
+ 
+ /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+ /bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+ 
+ /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+ /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+ /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+ /usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+ /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+ /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+ /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+ 
+ _ASUNAME
+ 
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   $as_echo "PATH: $as_dir"
+ done
+ IFS=$as_save_IFS
+ 
+ } >&5
+ 
+ cat >&5 <<_ACEOF
+ 
+ 
+ ## ----------- ##
+ ## Core tests. ##
+ ## ----------- ##
+ 
+ _ACEOF
+ 
+ 
+ # Keep a trace of the command line.
+ # Strip out --no-create and --no-recursion so they do not pile up.
+ # Strip out --silent because we don't want to record it for future runs.
+ # Also quote any args containing shell meta-characters.
+ # Make two passes to allow for proper duplicate-argument suppression.
+ ac_configure_args=
+ ac_configure_args0=
+ ac_configure_args1=
+ ac_must_keep_next=false
+ for ac_pass in 1 2
+ do
+   for ac_arg
+   do
+     case $ac_arg in
+     -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+     -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+     | -silent | --silent | --silen | --sile | --sil)
+       continue ;;
+     *\'*)
+       ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+     esac
+     case $ac_pass in
+     1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+     2)
+       ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+       if test $ac_must_keep_next = true; then
+ 	ac_must_keep_next=false # Got value, back to normal.
+       else
+ 	case $ac_arg in
+ 	  *=* | --config-cache | -C | -disable-* | --disable-* \
+ 	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ 	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ 	  | -with-* | --with-* | -without-* | --without-* | --x)
+ 	    case "$ac_configure_args0 " in
+ 	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ 	    esac
+ 	    ;;
+ 	  -* ) ac_must_keep_next=true ;;
+ 	esac
+       fi
+       ac_configure_args="$ac_configure_args '$ac_arg'"
+       ;;
+     esac
+   done
+ done
+ $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+ $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+ 
+ # When interrupted or exit'd, cleanup temporary files, and complete
+ # config.log.  We remove comments because anyway the quotes in there
+ # would cause problems or look ugly.
+ # WARNING: Use '\'' to represent an apostrophe within the trap.
+ # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+ trap 'exit_status=$?
+   # Save into config.log some information that might help in debugging.
+   {
+     echo
+ 
+     cat <<\_ASBOX
+ ## ---------------- ##
+ ## Cache variables. ##
+ ## ---------------- ##
+ _ASBOX
+     echo
+     # The following way of writing the cache mishandles newlines in values,
+ (
+   for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+     eval ac_val=\$$ac_var
+     case $ac_val in #(
+     *${as_nl}*)
+       case $ac_var in #(
+       *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+       esac
+       case $ac_var in #(
+       _ | IFS | as_nl) ;; #(
+       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+       *) $as_unset $ac_var ;;
+       esac ;;
+     esac
+   done
+   (set) 2>&1 |
+     case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+     *${as_nl}ac_space=\ *)
+       sed -n \
+ 	"s/'\''/'\''\\\\'\'''\''/g;
+ 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+       ;; #(
+     *)
+       sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+       ;;
+     esac |
+     sort
+ )
+     echo
+ 
+     cat <<\_ASBOX
+ ## ----------------- ##
+ ## Output variables. ##
+ ## ----------------- ##
+ _ASBOX
+     echo
+     for ac_var in $ac_subst_vars
+     do
+       eval ac_val=\$$ac_var
+       case $ac_val in
+       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+       esac
+       $as_echo "$ac_var='\''$ac_val'\''"
+     done | sort
+     echo
+ 
+     if test -n "$ac_subst_files"; then
+       cat <<\_ASBOX
+ ## ------------------- ##
+ ## File substitutions. ##
+ ## ------------------- ##
+ _ASBOX
+       echo
+       for ac_var in $ac_subst_files
+       do
+ 	eval ac_val=\$$ac_var
+ 	case $ac_val in
+ 	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ 	esac
+ 	$as_echo "$ac_var='\''$ac_val'\''"
+       done | sort
+       echo
+     fi
+ 
+     if test -s confdefs.h; then
+       cat <<\_ASBOX
+ ## ----------- ##
+ ## confdefs.h. ##
+ ## ----------- ##
+ _ASBOX
+       echo
+       cat confdefs.h
+       echo
+     fi
+     test "$ac_signal" != 0 &&
+       $as_echo "$as_me: caught signal $ac_signal"
+     $as_echo "$as_me: exit $exit_status"
+   } >&5
+   rm -f core *.core core.conftest.* &&
+     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+     exit $exit_status
+ ' 0
+ for ac_signal in 1 2 13 15; do
+   trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+ done
+ ac_signal=0
+ 
+ # confdefs.h avoids OS command line length limits that DEFS can exceed.
+ rm -f -r conftest* confdefs.h
+ 
+ # Predefined preprocessor variables.
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_NAME "$PACKAGE_NAME"
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_VERSION "$PACKAGE_VERSION"
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_STRING "$PACKAGE_STRING"
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+ _ACEOF
+ 
+ 
+ # Let the site file select an alternate cache file if it wants to.
+ # Prefer an explicitly selected file to automatically selected ones.
+ ac_site_file1=NONE
+ ac_site_file2=NONE
+ if test -n "$CONFIG_SITE"; then
+   ac_site_file1=$CONFIG_SITE
+ elif test "x$prefix" != xNONE; then
+   ac_site_file1=$prefix/share/config.site
+   ac_site_file2=$prefix/etc/config.site
+ else
+   ac_site_file1=$ac_default_prefix/share/config.site
+   ac_site_file2=$ac_default_prefix/etc/config.site
+ fi
+ for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+ do
+   test "x$ac_site_file" = xNONE && continue
+   if test -r "$ac_site_file"; then
+     { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
+     sed 's/^/| /' "$ac_site_file" >&5
+     . "$ac_site_file"
+   fi
+ done
+ 
+ if test -r "$cache_file"; then
+   # Some versions of bash will fail to source /dev/null (special
+   # files actually), so we avoid doing that.
+   if test -f "$cache_file"; then
+     { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+ $as_echo "$as_me: loading cache $cache_file" >&6;}
+     case $cache_file in
+       [\\/]* | ?:[\\/]* ) . "$cache_file";;
+       *)                      . "./$cache_file";;
+     esac
+   fi
+ else
+   { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+ $as_echo "$as_me: creating cache $cache_file" >&6;}
+   >$cache_file
+ fi
+ 
+ gl_header_list="$gl_header_list sys/time.h"
+ gl_func_list="$gl_func_list gettimeofday"
+ gl_header_list="$gl_header_list wchar.h"
+ gl_func_list="$gl_func_list isascii"
+ gl_func_list="$gl_func_list mbsinit"
+ gl_func_list="$gl_func_list setenv"
+ gl_header_list="$gl_header_list unistd.h"
+ gl_header_list="$gl_header_list stdint.h"
+ gl_header_list="$gl_header_list stdlib.h"
+ gl_header_list="$gl_header_list string.h"
+ gl_func_list="$gl_func_list lstat"
+ gl_header_list="$gl_header_list sys/stat.h"
+ gl_func_list="$gl_func_list iswcntrl"
+ gl_header_list="$gl_header_list wctype.h"
+ gl_func_list="$gl_func_list wcwidth"
+ gt_needs="$gt_needs "
+ # Check that the precious variables saved in the cache have kept the same
+ # value.
+ ac_cache_corrupted=false
+ for ac_var in $ac_precious_vars; do
+   eval ac_old_set=\$ac_cv_env_${ac_var}_set
+   eval ac_new_set=\$ac_env_${ac_var}_set
+   eval ac_old_val=\$ac_cv_env_${ac_var}_value
+   eval ac_new_val=\$ac_env_${ac_var}_value
+   case $ac_old_set,$ac_new_set in
+     set,)
+       { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+       ac_cache_corrupted=: ;;
+     ,set)
+       { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+       ac_cache_corrupted=: ;;
+     ,);;
+     *)
+       if test "x$ac_old_val" != "x$ac_new_val"; then
+ 	# differences in whitespace do not lead to failure.
+ 	ac_old_val_w=`echo x $ac_old_val`
+ 	ac_new_val_w=`echo x $ac_new_val`
+ 	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ 	  { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+ $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ 	  ac_cache_corrupted=:
+ 	else
+ 	  { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+ $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ 	  eval $ac_var=\$ac_old_val
+ 	fi
+ 	{ $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+ $as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+ 	{ $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+       fi;;
+   esac
+   # Pass precious variables to config.status.
+   if test "$ac_new_set" = set; then
+     case $ac_new_val in
+     *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+     *) ac_arg=$ac_var=$ac_new_val ;;
+     esac
+     case " $ac_configure_args " in
+       *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+       *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+     esac
+   fi
+ done
+ if $ac_cache_corrupted; then
+   { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+   { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+ $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+   { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ 
+ 
+ 
+ ac_aux_dir=
+ for ac_dir in build-aux "$srcdir"/build-aux; do
+   if test -f "$ac_dir/install-sh"; then
+     ac_aux_dir=$ac_dir
+     ac_install_sh="$ac_aux_dir/install-sh -c"
+     break
+   elif test -f "$ac_dir/install.sh"; then
+     ac_aux_dir=$ac_dir
+     ac_install_sh="$ac_aux_dir/install.sh -c"
+     break
+   elif test -f "$ac_dir/shtool"; then
+     ac_aux_dir=$ac_dir
+     ac_install_sh="$ac_aux_dir/shtool install -c"
+     break
+   fi
+ done
+ if test -z "$ac_aux_dir"; then
+   { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&5
+ $as_echo "$as_me: error: cannot find install-sh or install.sh in build-aux \"$srcdir\"/build-aux" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ # These three variables are undocumented and unsupported,
+ # and are intended to be withdrawn in a future Autoconf release.
+ # They can cause serious problems if a builder's source tree is in a directory
+ # whose full name contains unusual characters.
+ ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+ 
+ 
+ am__api_version='1.10'
+ 
+ # Find a good install program.  We prefer a C program (faster),
+ # so one script is as good as another.  But avoid the broken or
+ # incompatible versions:
+ # SysV /etc/install, /usr/sbin/install
+ # SunOS /usr/etc/install
+ # IRIX /sbin/install
+ # AIX /bin/install
+ # AmigaOS /C/install, which installs bootblocks on floppy discs
+ # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # OS/2's system install, which has a completely different semantic
+ # ./install, which can be erroneously created by make from ./install.sh.
+ # Reject install programs that cannot install multiple files.
+ { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+ $as_echo_n "checking for a BSD-compatible install... " >&6; }
+ if test -z "$INSTALL"; then
+ if test "${ac_cv_path_install+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   # Account for people who put trailing slashes in PATH elements.
+ case $as_dir/ in
+   ./ | .// | /cC/* | \
+   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+   ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+   /usr/ucb/* ) ;;
+   *)
+     # OSF1 and SCO ODT 3.0 have their own names for install.
+     # Don't use installbsd from OSF since it installs stuff as root
+     # by default.
+     for ac_prog in ginstall scoinst install; do
+       for ac_exec_ext in '' $ac_executable_extensions; do
+ 	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ 	  if test $ac_prog = install &&
+ 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ 	    # AIX install.  It has an incompatible calling convention.
+ 	    :
+ 	  elif test $ac_prog = install &&
+ 	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ 	    # program-specific install script used by HP pwplus--don't use.
+ 	    :
+ 	  else
+ 	    rm -rf conftest.one conftest.two conftest.dir
+ 	    echo one > conftest.one
+ 	    echo two > conftest.two
+ 	    mkdir conftest.dir
+ 	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ 	      test -s conftest.one && test -s conftest.two &&
+ 	      test -s conftest.dir/conftest.one &&
+ 	      test -s conftest.dir/conftest.two
+ 	    then
+ 	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ 	      break 3
+ 	    fi
+ 	  fi
+ 	fi
+       done
+     done
+     ;;
+ esac
+ 
+ done
+ IFS=$as_save_IFS
+ 
+ rm -rf conftest.one conftest.two conftest.dir
+ 
+ fi
+   if test "${ac_cv_path_install+set}" = set; then
+     INSTALL=$ac_cv_path_install
+   else
+     # As a last resort, use the slow shell script.  Don't cache a
+     # value for INSTALL within a source directory, because that will
+     # break other packages using the cache if that directory is
+     # removed, or if the value is a relative name.
+     INSTALL=$ac_install_sh
+   fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+ $as_echo "$INSTALL" >&6; }
+ 
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+ # It thinks the first close brace ends the variable substitution.
+ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+ 
+ { $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+ $as_echo_n "checking whether build environment is sane... " >&6; }
+ # Just in case
+ sleep 1
+ echo timestamp > conftest.file
+ # Do `set' in a subshell so we don't clobber the current shell's
+ # arguments.  Must try -L first in case configure is actually a
+ # symlink; some systems play weird games with the mod time of symlinks
+ # (eg FreeBSD returns the mod time of the symlink's containing
+ # directory).
+ if (
+    set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+    if test "$*" = "X"; then
+       # -L didn't work.
+       set X `ls -t $srcdir/configure conftest.file`
+    fi
+    rm -f conftest.file
+    if test "$*" != "X $srcdir/configure conftest.file" \
+       && test "$*" != "X conftest.file $srcdir/configure"; then
+ 
+       # If neither matched, then we have a broken ls.  This can happen
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+       { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
+ alias in your environment" >&5
+ $as_echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+ alias in your environment" >&2;}
+    { (exit 1); exit 1; }; }
+    fi
+ 
+    test "$2" = conftest.file
+    )
+ then
+    # Ok.
+    :
+ else
+    { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+ Check your system clock" >&5
+ $as_echo "$as_me: error: newly created file is older than distributed files!
+ Check your system clock" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+ test "$program_prefix" != NONE &&
+   program_transform_name="s&^&$program_prefix&;$program_transform_name"
+ # Use a double $ so make ignores it.
+ test "$program_suffix" != NONE &&
+   program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+ # Double any \ or $.
+ # By default was `s,x,x', remove it if useless.
+ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+ 
+ # expand $ac_aux_dir to an absolute path
+ am_aux_dir=`cd $ac_aux_dir && pwd`
+ 
+ test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+ # Use eval to expand $SHELL
+ if eval "$MISSING --run true"; then
+   am_missing_run="$MISSING --run "
+ else
+   am_missing_run=
+   { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+ $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+ fi
+ 
+ { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+ $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+ if test -z "$MKDIR_P"; then
+   if test "${ac_cv_path_mkdir+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_prog in mkdir gmkdir; do
+ 	 for ac_exec_ext in '' $ac_executable_extensions; do
+ 	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ 	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 	     'mkdir (GNU coreutils) '* | \
+ 	     'mkdir (coreutils) '* | \
+ 	     'mkdir (fileutils) '4.1*)
+ 	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ 	       break 3;;
+ 	   esac
+ 	 done
+        done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ 
+   if test "${ac_cv_path_mkdir+set}" = set; then
+     MKDIR_P="$ac_cv_path_mkdir -p"
+   else
+     # As a last resort, use the slow shell script.  Don't cache a
+     # value for MKDIR_P within a source directory, because that will
+     # break other packages using the cache if that directory is
+     # removed, or if the value is a relative name.
+     test -d ./--version && rmdir ./--version
+     MKDIR_P="$ac_install_sh -d"
+   fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+ $as_echo "$MKDIR_P" >&6; }
+ 
+ mkdir_p="$MKDIR_P"
+ case $mkdir_p in
+   [\\/$]* | ?:[\\/]*) ;;
+   */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+ esac
+ 
+ for ac_prog in gawk mawk nawk awk
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_AWK+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$AWK"; then
+   ac_cv_prog_AWK="$AWK" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_AWK="$ac_prog"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ AWK=$ac_cv_prog_AWK
+ if test -n "$AWK"; then
+   { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+ $as_echo "$AWK" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+   test -n "$AWK" && break
+ done
+ 
+ { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+ set x ${MAKE-make}
+ ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+ if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.make <<\_ACEOF
+ SHELL = /bin/sh
+ all:
+ 	@echo '@@@%%%=$(MAKE)=@@@%%%'
+ _ACEOF
+ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+ case `${MAKE-make} -f conftest.make 2>/dev/null` in
+   *@@@%%%=?*=@@@%%%*)
+     eval ac_cv_prog_make_${ac_make}_set=yes;;
+   *)
+     eval ac_cv_prog_make_${ac_make}_set=no;;
+ esac
+ rm -f conftest.make
+ fi
+ if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+   { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+   SET_MAKE=
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+   SET_MAKE="MAKE=${MAKE-make}"
+ fi
+ 
+ rm -rf .tst 2>/dev/null
+ mkdir .tst 2>/dev/null
+ if test -d .tst; then
+   am__leading_dot=.
+ else
+   am__leading_dot=_
+ fi
+ rmdir .tst 2>/dev/null
+ 
+ if test "`cd $srcdir && pwd`" != "`pwd`"; then
+   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+   # is not polluted with repeated "-I."
+   am__isrc=' -I$(srcdir)'
+   # test to see if srcdir already configured
+   if test -f $srcdir/config.status; then
+     { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+ $as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+    { (exit 1); exit 1; }; }
+   fi
+ fi
+ 
+ # test whether we have cygpath
+ if test -z "$CYGPATH_W"; then
+   if (cygpath --version) >/dev/null 2>/dev/null; then
+     CYGPATH_W='cygpath -w'
+   else
+     CYGPATH_W=echo
+   fi
+ fi
+ 
+ 
+ # Define the identity of the package.
+  PACKAGE='texinfo'
+  VERSION='4.13'
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define PACKAGE "$PACKAGE"
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define VERSION "$VERSION"
+ _ACEOF
+ 
+ # Some tools Automake needs.
+ 
+ ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+ 
+ 
+ AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+ 
+ 
+ AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+ 
+ 
+ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+ 
+ 
+ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+ 
+ install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+ 
+ # Installed binaries are usually stripped using `strip' when the user
+ # run `make install-strip'.  However `strip' might not be the right
+ # tool to use in cross-compilation environments, therefore Automake
+ # will honor the `STRIP' environment variable to overrule this program.
+ if test "$cross_compiling" != no; then
+   if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}strip; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_STRIP+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$STRIP"; then
+   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ STRIP=$ac_cv_prog_STRIP
+ if test -n "$STRIP"; then
+   { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+ $as_echo "$STRIP" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_STRIP"; then
+   ac_ct_STRIP=$STRIP
+   # Extract the first word of "strip", so it can be a program name with args.
+ set dummy strip; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_STRIP"; then
+   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_ac_ct_STRIP="strip"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+ if test -n "$ac_ct_STRIP"; then
+   { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+ $as_echo "$ac_ct_STRIP" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_STRIP" = x; then
+     STRIP=":"
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     STRIP=$ac_ct_STRIP
+   fi
+ else
+   STRIP="$ac_cv_prog_STRIP"
+ fi
+ 
+ fi
+ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+ 
+ # We need awk for the "check" target.  The system "awk" is bad on
+ # some platforms.
+ # Always define AMTAR for backward compatibility.
+ 
+ AMTAR=${AMTAR-"${am_missing_run}tar"}
+ 
+ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+ 
+ 
+ 
+ 
+ 
+ 
+ # Minimum Autoconf version required.
+ 
+ 
+ # Where to generate output; srcdir location.
+ ac_config_headers="$ac_config_headers config.h:config.in"
+ 
+ 
+ # When the Texinfo source is imported into other repositories
+ # (NetBSD and TeX Live), timestamps are generally not preserved.  This
+ # causes lots of annoyance, so --enable-maintainer-mode.  Sorry.
+ { $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+ $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+     # Check whether --enable-maintainer-mode was given.
+ if test "${enable_maintainer_mode+set}" = set; then
+   enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+ else
+   USE_MAINTAINER_MODE=no
+ fi
+ 
+   { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+ $as_echo "$USE_MAINTAINER_MODE" >&6; }
+    if test $USE_MAINTAINER_MODE = yes; then
+   MAINTAINER_MODE_TRUE=
+   MAINTAINER_MODE_FALSE='#'
+ else
+   MAINTAINER_MODE_TRUE='#'
+   MAINTAINER_MODE_FALSE=
+ fi
+ 
+   MAINT=$MAINTAINER_MODE_TRUE
+ 
+ 
+ 
+ # Checks for programs.
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}gcc; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_CC+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_CC="${ac_tool_prefix}gcc"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+   { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ $as_echo "$CC" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_CC"; then
+   ac_ct_CC=$CC
+   # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_CC"; then
+   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_ac_ct_CC="gcc"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+   { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+ $as_echo "$ac_ct_CC" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_CC" = x; then
+     CC=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     CC=$ac_ct_CC
+   fi
+ else
+   CC="$ac_cv_prog_CC"
+ fi
+ 
+ if test -z "$CC"; then
+           if test -n "$ac_tool_prefix"; then
+     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}cc; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_CC+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_CC="${ac_tool_prefix}cc"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+   { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ $as_echo "$CC" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+   fi
+ fi
+ if test -z "$CC"; then
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_CC+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+   ac_prog_rejected=no
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+        continue
+      fi
+     ac_cv_prog_CC="cc"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ if test $ac_prog_rejected = yes; then
+   # We found a bogon in the path, so make sure we never use it.
+   set dummy $ac_cv_prog_CC
+   shift
+   if test $# != 0; then
+     # We chose a different compiler from the bogus one.
+     # However, it has the same basename, so the bogon will be chosen
+     # first if we set CC to just the basename; use the full file name.
+     shift
+     ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+   fi
+ fi
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+   { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ $as_echo "$CC" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$CC"; then
+   if test -n "$ac_tool_prefix"; then
+   for ac_prog in cl.exe
+   do
+     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+ set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_CC+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+   { $as_echo "$as_me:$LINENO: result: $CC" >&5
+ $as_echo "$CC" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+     test -n "$CC" && break
+   done
+ fi
+ if test -z "$CC"; then
+   ac_ct_CC=$CC
+   for ac_prog in cl.exe
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_CC"; then
+   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_ac_ct_CC="$ac_prog"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_CC=$ac_cv_prog_ac_ct_CC
+ if test -n "$ac_ct_CC"; then
+   { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+ $as_echo "$ac_ct_CC" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+   test -n "$ac_ct_CC" && break
+ done
+ 
+   if test "x$ac_ct_CC" = x; then
+     CC=""
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     CC=$ac_ct_CC
+   fi
+ fi
+ 
+ fi
+ 
+ 
+ test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+ See \`config.log' for more details." >&5
+ $as_echo "$as_me: error: no acceptable C compiler found in \$PATH
+ See \`config.log' for more details." >&2;}
+    { (exit 1); exit 1; }; }; }
+ 
+ # Provide some information about the compiler.
+ $as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+ set X $ac_compile
+ ac_compiler=$2
+ { (ac_try="$ac_compiler --version >&5"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compiler --version >&5") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ { (ac_try="$ac_compiler -v >&5"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compiler -v >&5") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ { (ac_try="$ac_compiler -V >&5"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compiler -V >&5") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+ 
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+ # Try to create an executable without -o first, disregard a.out.
+ # It will help us diagnose broken compilers, and finding out an intuition
+ # of exeext.
+ { $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+ $as_echo_n "checking for C compiler default output file name... " >&6; }
+ ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+ 
+ # The possible output files:
+ ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+ 
+ ac_rmfiles=
+ for ac_file in $ac_files
+ do
+   case $ac_file in
+     *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+     * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+   esac
+ done
+ rm -f $ac_rmfiles
+ 
+ if { (ac_try="$ac_link_default"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link_default") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+ # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+ # in a Makefile.  We should not override ac_cv_exeext if it was cached,
+ # so that the user can short-circuit this test for compilers unknown to
+ # Autoconf.
+ for ac_file in $ac_files ''
+ do
+   test -f "$ac_file" || continue
+   case $ac_file in
+     *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ 	;;
+     [ab].out )
+ 	# We found the default executable, but exeext='' is most
+ 	# certainly right.
+ 	break;;
+     *.* )
+         if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ 	then :; else
+ 	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ 	fi
+ 	# We set ac_cv_exeext here because the later test for it is not
+ 	# safe: cross compilers may not add the suffix if given an `-o'
+ 	# argument, so we may need to know it at that point already.
+ 	# Even if this section looks crufty: it has the advantage of
+ 	# actually working.
+ 	break;;
+     * )
+ 	break;;
+   esac
+ done
+ test "$ac_cv_exeext" = no && ac_cv_exeext=
+ 
+ else
+   ac_file=''
+ fi
+ 
+ { $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+ $as_echo "$ac_file" >&6; }
+ if test -z "$ac_file"; then
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
+ See \`config.log' for more details." >&5
+ $as_echo "$as_me: error: C compiler cannot create executables
+ See \`config.log' for more details." >&2;}
+    { (exit 77); exit 77; }; }; }
+ fi
+ 
+ ac_exeext=$ac_cv_exeext
+ 
+ # Check that the compiler produces executables we can run.  If not, either
+ # the compiler is broken, or we cross compile.
+ { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+ $as_echo_n "checking whether the C compiler works... " >&6; }
+ # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+ # If not cross compiling, check that we can run a simple program.
+ if test "$cross_compiling" != yes; then
+   if { ac_try='./$ac_file'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+     cross_compiling=no
+   else
+     if test "$cross_compiling" = maybe; then
+ 	cross_compiling=yes
+     else
+ 	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'.
+ See \`config.log' for more details." >&5
+ $as_echo "$as_me: error: cannot run C compiled programs.
+ If you meant to cross compile, use \`--host'.
+ See \`config.log' for more details." >&2;}
+    { (exit 1); exit 1; }; }; }
+     fi
+   fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+ 
+ rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ ac_clean_files=$ac_clean_files_save
+ # Check that the compiler produces executables we can run.  If not, either
+ # the compiler is broken, or we cross compile.
+ { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+ $as_echo_n "checking whether we are cross compiling... " >&6; }
+ { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+ $as_echo "$cross_compiling" >&6; }
+ 
+ { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+ $as_echo_n "checking for suffix of executables... " >&6; }
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   # If both `conftest.exe' and `conftest' are `present' (well, observable)
+ # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+ # work properly (i.e., refer to `conftest.exe'), while it won't with
+ # `rm'.
+ for ac_file in conftest.exe conftest conftest.*; do
+   test -f "$ac_file" || continue
+   case $ac_file in
+     *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ 	  break;;
+     * ) break;;
+   esac
+ done
+ else
+   { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+ See \`config.log' for more details." >&5
+ $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+ See \`config.log' for more details." >&2;}
+    { (exit 1); exit 1; }; }; }
+ fi
+ 
+ rm -f conftest$ac_cv_exeext
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+ $as_echo "$ac_cv_exeext" >&6; }
+ 
+ rm -f conftest.$ac_ext
+ EXEEXT=$ac_cv_exeext
+ ac_exeext=$EXEEXT
+ { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+ $as_echo_n "checking for suffix of object files... " >&6; }
+ if test "${ac_cv_objext+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.o conftest.obj
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; then
+   for ac_file in conftest.o conftest.obj conftest.*; do
+   test -f "$ac_file" || continue;
+   case $ac_file in
+     *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+        break;;
+   esac
+ done
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+ See \`config.log' for more details." >&5
+ $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
+ See \`config.log' for more details." >&2;}
+    { (exit 1); exit 1; }; }; }
+ fi
+ 
+ rm -f conftest.$ac_cv_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+ $as_echo "$ac_cv_objext" >&6; }
+ OBJEXT=$ac_cv_objext
+ ac_objext=$OBJEXT
+ { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+ $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+ if test "${ac_cv_c_compiler_gnu+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ #ifndef __GNUC__
+        choke me
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_compiler_gnu=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_compiler_gnu=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_c_compiler_gnu=$ac_compiler_gnu
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+ $as_echo "$ac_cv_c_compiler_gnu" >&6; }
+ if test $ac_compiler_gnu = yes; then
+   GCC=yes
+ else
+   GCC=
+ fi
+ ac_test_CFLAGS=${CFLAGS+set}
+ ac_save_CFLAGS=$CFLAGS
+ { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+ $as_echo_n "checking whether $CC accepts -g... " >&6; }
+ if test "${ac_cv_prog_cc_g+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_save_c_werror_flag=$ac_c_werror_flag
+    ac_c_werror_flag=yes
+    ac_cv_prog_cc_g=no
+    CFLAGS="-g"
+    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_prog_cc_g=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	CFLAGS=""
+       cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   :
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_c_werror_flag=$ac_save_c_werror_flag
+ 	 CFLAGS="-g"
+ 	 cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_prog_cc_g=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    ac_c_werror_flag=$ac_save_c_werror_flag
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+ $as_echo "$ac_cv_prog_cc_g" >&6; }
+ if test "$ac_test_CFLAGS" = set; then
+   CFLAGS=$ac_save_CFLAGS
+ elif test $ac_cv_prog_cc_g = yes; then
+   if test "$GCC" = yes; then
+     CFLAGS="-g -O2"
+   else
+     CFLAGS="-g"
+   fi
+ else
+   if test "$GCC" = yes; then
+     CFLAGS="-O2"
+   else
+     CFLAGS=
+   fi
+ fi
+ { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+ $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+ if test "${ac_cv_prog_cc_c89+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_prog_cc_c89=no
+ ac_save_CC=$CC
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+ struct buf { int x; };
+ FILE * (*rcsopen) (struct buf *, struct stat *, int);
+ static char *e (p, i)
+      char **p;
+      int i;
+ {
+   return p[i];
+ }
+ static char *f (char * (*g) (char **, int), char **p, ...)
+ {
+   char *s;
+   va_list v;
+   va_start (v,p);
+   s = g (p, va_arg (v,int));
+   va_end (v);
+   return s;
+ }
+ 
+ /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+    function prototypes and stuff, but not '\xHH' hex character constants.
+    These don't provoke an error unfortunately, instead are silently treated
+    as 'x'.  The following induces an error, until -std is added to get
+    proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+    array size at least.  It's necessary to write '\x00'==0 to get something
+    that's true only with -std.  */
+ int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+ 
+ /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+    inside strings and character constants.  */
+ #define FOO(x) 'x'
+ int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+ 
+ int test (int i, double x);
+ struct s1 {int (*f) (int a);};
+ struct s2 {int (*f) (double a);};
+ int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+ int argc;
+ char **argv;
+ int
+ main ()
+ {
+ return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+   ;
+   return 0;
+ }
+ _ACEOF
+ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ 	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+ do
+   CC="$ac_save_CC $ac_arg"
+   rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_prog_cc_c89=$ac_arg
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext
+   test "x$ac_cv_prog_cc_c89" != "xno" && break
+ done
+ rm -f conftest.$ac_ext
+ CC=$ac_save_CC
+ 
+ fi
+ # AC_CACHE_VAL
+ case "x$ac_cv_prog_cc_c89" in
+   x)
+     { $as_echo "$as_me:$LINENO: result: none needed" >&5
+ $as_echo "none needed" >&6; } ;;
+   xno)
+     { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+ $as_echo "unsupported" >&6; } ;;
+   *)
+     CC="$CC $ac_cv_prog_cc_c89"
+     { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+ $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+ esac
+ 
+ 
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ DEPDIR="${am__leading_dot}deps"
+ 
+ ac_config_commands="$ac_config_commands depfiles"
+ 
+ 
+ am_make=${MAKE-make}
+ cat > confinc << 'END'
+ am__doit:
+ 	@echo done
+ .PHONY: am__doit
+ END
+ # If we don't find an include directive, just comment out the code.
+ { $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+ $as_echo_n "checking for style of include used by $am_make... " >&6; }
+ am__include="#"
+ am__quote=
+ _am_result=none
+ # First try GNU make style include.
+ echo "include confinc" > confmf
+ # We grep out `Entering directory' and `Leaving directory'
+ # messages which can occur if `w' ends up in MAKEFLAGS.
+ # In particular we don't look at `^make:' because GNU make might
+ # be invoked under some other name (usually "gmake"), in which
+ # case it prints its new name instead of `make'.
+ if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+    am__include=include
+    am__quote=
+    _am_result=GNU
+ fi
+ # Now try BSD make style include.
+ if test "$am__include" = "#"; then
+    echo '.include "confinc"' > confmf
+    if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+       am__include=.include
+       am__quote="\""
+       _am_result=BSD
+    fi
+ fi
+ 
+ 
+ { $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+ $as_echo "$_am_result" >&6; }
+ rm -f confinc confmf
+ 
+ # Check whether --enable-dependency-tracking was given.
+ if test "${enable_dependency_tracking+set}" = set; then
+   enableval=$enable_dependency_tracking;
+ fi
+ 
+ if test "x$enable_dependency_tracking" != xno; then
+   am_depcomp="$ac_aux_dir/depcomp"
+   AMDEPBACKSLASH='\'
+ fi
+  if test "x$enable_dependency_tracking" != xno; then
+   AMDEP_TRUE=
+   AMDEP_FALSE='#'
+ else
+   AMDEP_TRUE='#'
+   AMDEP_FALSE=
+ fi
+ 
+ 
+ 
+ depcc="$CC"   am_compiler_list=
+ 
+ { $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+ $as_echo_n "checking dependency style of $depcc... " >&6; }
+ if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+   # We make a subdir and do the tests there.  Otherwise we can end up
+   # making bogus files that we don't know about and never remove.  For
+   # instance it was reported that on HP-UX the gcc test will end up
+   # making a dummy file named `D' -- because `-MD' means `put the output
+   # in D'.
+   mkdir conftest.dir
+   # Copy depcomp to subdir because otherwise we won't find it if we're
+   # using a relative directory.
+   cp "$am_depcomp" conftest.dir
+   cd conftest.dir
+   # We will build objects and dependencies in a subdirectory because
+   # it helps to detect inapplicable dependency modes.  For instance
+   # both Tru64's cc and ICC support -MD to output dependencies as a
+   # side effect of compilation, but ICC will put the dependencies in
+   # the current directory while Tru64 will put them in the object
+   # directory.
+   mkdir sub
+ 
+   am_cv_CC_dependencies_compiler_type=none
+   if test "$am_compiler_list" = ""; then
+      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+   fi
+   for depmode in $am_compiler_list; do
+     # Setup a source with many dependencies, because some compilers
+     # like to wrap large dependency lists on column 80 (with \), and
+     # we should not choose a depcomp mode which is confused by this.
+     #
+     # We need to recreate these files for each test, as the compiler may
+     # overwrite some of them when testing with obscure command lines.
+     # This happens at least with the AIX C compiler.
+     : > sub/conftest.c
+     for i in 1 2 3 4 5 6; do
+       echo '#include "conftst'$i'.h"' >> sub/conftest.c
+       # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+       # Solaris 8's {/usr,}/bin/sh.
+       touch sub/conftst$i.h
+     done
+     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+ 
+     case $depmode in
+     nosideeffect)
+       # after this tag, mechanisms are not by side-effect, so they'll
+       # only be used when explicitly requested
+       if test "x$enable_dependency_tracking" = xyes; then
+ 	continue
+       else
+ 	break
+       fi
+       ;;
+     none) break ;;
+     esac
+     # We check with `-c' and `-o' for the sake of the "dashmstdout"
+     # mode.  It turns out that the SunPro C++ compiler does not properly
+     # handle `-M -o', and we need to detect this.
+     if depmode=$depmode \
+        source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+        $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+          >/dev/null 2>conftest.err &&
+        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+        grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+       # icc doesn't choke on unknown options, it will just issue warnings
+       # or remarks (even with -Werror).  So we grep stderr for any message
+       # that says an option was ignored or not supported.
+       # When given -MP, icc 7.0 and 7.1 complain thusly:
+       #   icc: Command line warning: ignoring option '-M'; no argument required
+       # The diagnosis changed in icc 8.0:
+       #   icc: Command line remark: option '-MP' not supported
+       if (grep 'ignoring option' conftest.err ||
+           grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+         am_cv_CC_dependencies_compiler_type=$depmode
+         break
+       fi
+     fi
+   done
+ 
+   cd ..
+   rm -rf conftest.dir
+ else
+   am_cv_CC_dependencies_compiler_type=none
+ fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+ $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+ CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+ 
+  if
+   test "x$enable_dependency_tracking" != xno \
+   && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+   am__fastdepCC_TRUE=
+   am__fastdepCC_FALSE='#'
+ else
+   am__fastdepCC_TRUE='#'
+   am__fastdepCC_FALSE=
+ fi
+ 
+ 
+ 
+ # Since we use gnulib: gl_EARLY must be called as soon as possible after
+ # the C compiler is checked.  The others could be later, but we just
+ # keep everything together.
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_RANLIB+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$RANLIB"; then
+   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ RANLIB=$ac_cv_prog_RANLIB
+ if test -n "$RANLIB"; then
+   { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+ $as_echo "$RANLIB" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_RANLIB"; then
+   ac_ct_RANLIB=$RANLIB
+   # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_RANLIB"; then
+   ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_ac_ct_RANLIB="ranlib"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+ if test -n "$ac_ct_RANLIB"; then
+   { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+ $as_echo "$ac_ct_RANLIB" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_RANLIB" = x; then
+     RANLIB=":"
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     RANLIB=$ac_ct_RANLIB
+   fi
+ else
+   RANLIB="$ac_cv_prog_RANLIB"
+ fi
+ 
+ if test "x$CC" != xcc; then
+   { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
+ $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5
+ $as_echo_n "checking whether cc understands -c and -o together... " >&6; }
+ fi
+ set dummy $CC; ac_cc=`$as_echo "$2" |
+ 		      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+ if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # We do the test twice because some compilers refuse to overwrite an
+ # existing .o file with -o, though they will create one.
+ ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+ rm -f conftest2.*
+ if { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+    test -f conftest2.$ac_objext && { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); };
+ then
+   eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+   if test "x$CC" != xcc; then
+     # Test first that cc exists at all.
+     if { ac_try='cc -c conftest.$ac_ext >&5'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+       ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+       rm -f conftest2.*
+       if { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } &&
+ 	 test -f conftest2.$ac_objext && { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); };
+       then
+ 	# cc works too.
+ 	:
+       else
+ 	# cc exists but doesn't like -o.
+ 	eval ac_cv_prog_cc_${ac_cc}_c_o=no
+       fi
+     fi
+   fi
+ else
+   eval ac_cv_prog_cc_${ac_cc}_c_o=no
+ fi
+ rm -f core conftest*
+ 
+ fi
+ if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+   { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define NO_MINUS_C_MINUS_O 1
+ _ACEOF
+ 
+ fi
+ 
+ # FIXME: we rely on the cache variable name because
+ # there is no other way.
+ set dummy $CC
+ ac_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+ if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" != yes"; then
+    # Losing compiler, so override with the script.
+    # FIXME: It is wrong to rewrite CC.
+    # But if we don't then we get into trouble of one sort or another.
+    # A longer-term fix would be to have automake use am__CC in this case,
+    # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+    CC="$am_aux_dir/compile $CC"
+ fi
+ 
+ 
+ 
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+ $as_echo_n "checking how to run the C preprocessor... " >&6; }
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+   CPP=
+ fi
+ if test -z "$CPP"; then
+   if test "${ac_cv_prog_CPP+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+       # Double quotes because CPP needs to be expanded
+     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+     do
+       ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+ do
+   # Use a header file that comes with gcc, so configuring glibc
+   # with a fresh cross-compiler works.
+   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+   # <limits.h> exists even on freestanding compilers.
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 		     Syntax error
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   :
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   # Broken: fails on valid input.
+ continue
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ 
+   # OK, works on sane cases.  Now check whether nonexistent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <ac_nonexistent.h>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   # Broken: success on invalid input.
+ continue
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   # Passes both tests.
+ ac_preproc_ok=:
+ break
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ 
+ done
+ # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+ rm -f conftest.err conftest.$ac_ext
+ if $ac_preproc_ok; then
+   break
+ fi
+ 
+     done
+     ac_cv_prog_CPP=$CPP
+ 
+ fi
+   CPP=$ac_cv_prog_CPP
+ else
+   ac_cv_prog_CPP=$CPP
+ fi
+ { $as_echo "$as_me:$LINENO: result: $CPP" >&5
+ $as_echo "$CPP" >&6; }
+ ac_preproc_ok=false
+ for ac_c_preproc_warn_flag in '' yes
+ do
+   # Use a header file that comes with gcc, so configuring glibc
+   # with a fresh cross-compiler works.
+   # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+   # <limits.h> exists even on freestanding compilers.
+   # On the NeXT, cc -E runs the code through the compiler's parser,
+   # not just through cpp. "Syntax error" is here to catch this case.
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 		     Syntax error
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   :
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   # Broken: fails on valid input.
+ continue
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ 
+   # OK, works on sane cases.  Now check whether nonexistent headers
+   # can be detected and how.
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <ac_nonexistent.h>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   # Broken: success on invalid input.
+ continue
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   # Passes both tests.
+ ac_preproc_ok=:
+ break
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ 
+ done
+ # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+ rm -f conftest.err conftest.$ac_ext
+ if $ac_preproc_ok; then
+   :
+ else
+   { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+ See \`config.log' for more details." >&5
+ $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+ See \`config.log' for more details." >&2;}
+    { (exit 1); exit 1; }; }; }
+ fi
+ 
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+ $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+ if test "${ac_cv_path_GREP+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -z "$GREP"; then
+   ac_path_GREP_found=false
+   # Loop through the user's path and test for each of PROGNAME-LIST
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_prog in grep ggrep; do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+       { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+ # Check for GNU ac_path_GREP and select it if it is found.
+   # Check for GNU $ac_path_GREP
+ case `"$ac_path_GREP" --version 2>&1` in
+ *GNU*)
+   ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+ *)
+   ac_count=0
+   $as_echo_n 0123456789 >"conftest.in"
+   while :
+   do
+     cat "conftest.in" "conftest.in" >"conftest.tmp"
+     mv "conftest.tmp" "conftest.in"
+     cp "conftest.in" "conftest.nl"
+     $as_echo 'GREP' >> "conftest.nl"
+     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+     ac_count=`expr $ac_count + 1`
+     if test $ac_count -gt ${ac_path_GREP_max-0}; then
+       # Best one so far, save it but keep looking for a better one
+       ac_cv_path_GREP="$ac_path_GREP"
+       ac_path_GREP_max=$ac_count
+     fi
+     # 10*(2^10) chars as input seems more than enough
+     test $ac_count -gt 10 && break
+   done
+   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+ esac
+ 
+       $ac_path_GREP_found && break 3
+     done
+   done
+ done
+ IFS=$as_save_IFS
+   if test -z "$ac_cv_path_GREP"; then
+     { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+ $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+    { (exit 1); exit 1; }; }
+   fi
+ else
+   ac_cv_path_GREP=$GREP
+ fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+ $as_echo "$ac_cv_path_GREP" >&6; }
+  GREP="$ac_cv_path_GREP"
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking for egrep" >&5
+ $as_echo_n "checking for egrep... " >&6; }
+ if test "${ac_cv_path_EGREP+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+    then ac_cv_path_EGREP="$GREP -E"
+    else
+      if test -z "$EGREP"; then
+   ac_path_EGREP_found=false
+   # Loop through the user's path and test for each of PROGNAME-LIST
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_prog in egrep; do
+     for ac_exec_ext in '' $ac_executable_extensions; do
+       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+       { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+ # Check for GNU ac_path_EGREP and select it if it is found.
+   # Check for GNU $ac_path_EGREP
+ case `"$ac_path_EGREP" --version 2>&1` in
+ *GNU*)
+   ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+ *)
+   ac_count=0
+   $as_echo_n 0123456789 >"conftest.in"
+   while :
+   do
+     cat "conftest.in" "conftest.in" >"conftest.tmp"
+     mv "conftest.tmp" "conftest.in"
+     cp "conftest.in" "conftest.nl"
+     $as_echo 'EGREP' >> "conftest.nl"
+     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+     ac_count=`expr $ac_count + 1`
+     if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+       # Best one so far, save it but keep looking for a better one
+       ac_cv_path_EGREP="$ac_path_EGREP"
+       ac_path_EGREP_max=$ac_count
+     fi
+     # 10*(2^10) chars as input seems more than enough
+     test $ac_count -gt 10 && break
+   done
+   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+ esac
+ 
+       $ac_path_EGREP_found && break 3
+     done
+   done
+ done
+ IFS=$as_save_IFS
+   if test -z "$ac_cv_path_EGREP"; then
+     { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+ $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+    { (exit 1); exit 1; }; }
+   fi
+ else
+   ac_cv_path_EGREP=$EGREP
+ fi
+ 
+    fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+ $as_echo "$ac_cv_path_EGREP" >&6; }
+  EGREP="$ac_cv_path_EGREP"
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+ $as_echo_n "checking for ANSI C header files... " >&6; }
+ if test "${ac_cv_header_stdc+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <string.h>
+ #include <float.h>
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_header_stdc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_header_stdc=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ 
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <string.h>
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "memchr" >/dev/null 2>&1; then
+   :
+ else
+   ac_cv_header_stdc=no
+ fi
+ rm -f conftest*
+ 
+ fi
+ 
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdlib.h>
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "free" >/dev/null 2>&1; then
+   :
+ else
+   ac_cv_header_stdc=no
+ fi
+ rm -f conftest*
+ 
+ fi
+ 
+ if test $ac_cv_header_stdc = yes; then
+   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+   if test "$cross_compiling" = yes; then
+   :
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <ctype.h>
+ #include <stdlib.h>
+ #if ((' ' & 0x0FF) == 0x020)
+ # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+ # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+ #else
+ # define ISLOWER(c) \
+ 		   (('a' <= (c) && (c) <= 'i') \
+ 		     || ('j' <= (c) && (c) <= 'r') \
+ 		     || ('s' <= (c) && (c) <= 'z'))
+ # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+ #endif
+ 
+ #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+ int
+ main ()
+ {
+   int i;
+   for (i = 0; i < 256; i++)
+     if (XOR (islower (i), ISLOWER (i))
+ 	|| toupper (i) != TOUPPER (i))
+       return 2;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ ac_cv_header_stdc=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+ $as_echo "$ac_cv_header_stdc" >&6; }
+ if test $ac_cv_header_stdc = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define STDC_HEADERS 1
+ _ACEOF
+ 
+ fi
+ 
+ # On IRIX 5.3, sys/types and inttypes.h are conflicting.
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ 		  inttypes.h stdint.h unistd.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ 
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   eval "$as_ac_Header=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_Header=no"
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ 
+ 
+   if test "${ac_cv_header_minix_config_h+set}" = set; then
+   { $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5
+ $as_echo_n "checking for minix/config.h... " >&6; }
+ if test "${ac_cv_header_minix_config_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
+ $as_echo "$ac_cv_header_minix_config_h" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking minix/config.h usability" >&5
+ $as_echo_n "checking minix/config.h usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <minix/config.h>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking minix/config.h presence" >&5
+ $as_echo_n "checking minix/config.h presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <minix/config.h>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: minix/config.h:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: minix/config.h:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: minix/config.h:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: minix/config.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5
+ $as_echo_n "checking for minix/config.h... " >&6; }
+ if test "${ac_cv_header_minix_config_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_header_minix_config_h=$ac_header_preproc
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
+ $as_echo "$ac_cv_header_minix_config_h" >&6; }
+ 
+ fi
+ if test "x$ac_cv_header_minix_config_h" = x""yes; then
+   MINIX=yes
+ else
+   MINIX=
+ fi
+ 
+ 
+   if test "$MINIX" = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define _POSIX_SOURCE 1
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define _POSIX_1_SOURCE 2
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define _MINIX 1
+ _ACEOF
+ 
+   fi
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5
+ $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+ if test "${ac_cv_safe_to_define___extensions__+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ #	  define __EXTENSIONS__ 1
+ 	  $ac_includes_default
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_safe_to_define___extensions__=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_safe_to_define___extensions__=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5
+ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+   test $ac_cv_safe_to_define___extensions__ = yes &&
+     cat >>confdefs.h <<\_ACEOF
+ #define __EXTENSIONS__ 1
+ _ACEOF
+ 
+   cat >>confdefs.h <<\_ACEOF
+ #define _ALL_SOURCE 1
+ _ACEOF
+ 
+   cat >>confdefs.h <<\_ACEOF
+ #define _GNU_SOURCE 1
+ _ACEOF
+ 
+   cat >>confdefs.h <<\_ACEOF
+ #define _POSIX_PTHREAD_SEMANTICS 1
+ _ACEOF
+ 
+   cat >>confdefs.h <<\_ACEOF
+ #define _TANDEM_SOURCE 1
+ _ACEOF
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+ # for constant arguments.  Useless!
+ { $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5
+ $as_echo_n "checking for working alloca.h... " >&6; }
+ if test "${ac_cv_working_alloca_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <alloca.h>
+ int
+ main ()
+ {
+ char *p = (char *) alloca (2 * sizeof (int));
+ 			  if (p) return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_working_alloca_h=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_working_alloca_h=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+ $as_echo "$ac_cv_working_alloca_h" >&6; }
+ if test $ac_cv_working_alloca_h = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_ALLOCA_H 1
+ _ACEOF
+ 
+ fi
+ 
+ { $as_echo "$as_me:$LINENO: checking for alloca" >&5
+ $as_echo_n "checking for alloca... " >&6; }
+ if test "${ac_cv_func_alloca_works+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #ifdef __GNUC__
+ # define alloca __builtin_alloca
+ #else
+ # ifdef _MSC_VER
+ #  include <malloc.h>
+ #  define alloca _alloca
+ # else
+ #  ifdef HAVE_ALLOCA_H
+ #   include <alloca.h>
+ #  else
+ #   ifdef _AIX
+  #pragma alloca
+ #   else
+ #    ifndef alloca /* predefined by HP cc +Olibcalls */
+ char *alloca ();
+ #    endif
+ #   endif
+ #  endif
+ # endif
+ #endif
+ 
+ int
+ main ()
+ {
+ char *p = (char *) alloca (1);
+ 				    if (p) return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_func_alloca_works=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_func_alloca_works=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+ $as_echo "$ac_cv_func_alloca_works" >&6; }
+ 
+ if test $ac_cv_func_alloca_works = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_ALLOCA 1
+ _ACEOF
+ 
+ else
+   # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+ # that cause trouble.  Some versions do not even contain alloca or
+ # contain a buggy version.  If you still want to use their alloca,
+ # use ar to extract alloca.o from them instead of compiling alloca.c.
+ 
+ 
+ 
+ 
+ 
+ ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define C_ALLOCA 1
+ _ACEOF
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+ $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
+ if test "${ac_cv_os_cray+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #if defined CRAY && ! defined CRAY2
+ webecray
+ #else
+ wenotbecray
+ #endif
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "webecray" >/dev/null 2>&1; then
+   ac_cv_os_cray=yes
+ else
+   ac_cv_os_cray=no
+ fi
+ rm -f conftest*
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+ $as_echo "$ac_cv_os_cray" >&6; }
+ if test $ac_cv_os_cray = yes; then
+   for ac_func in _getb67 GETB67 getb67; do
+     as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define CRAY_STACKSEG_END $ac_func
+ _ACEOF
+ 
+     break
+ fi
+ 
+   done
+ fi
+ 
+ { $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+ $as_echo_n "checking stack direction for C alloca... " >&6; }
+ if test "${ac_cv_c_stack_direction+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+   ac_cv_c_stack_direction=0
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ find_stack_direction ()
+ {
+   static char *addr = 0;
+   auto char dummy;
+   if (addr == 0)
+     {
+       addr = &dummy;
+       return find_stack_direction ();
+     }
+   else
+     return (&dummy > addr) ? 1 : -1;
+ }
+ 
+ int
+ main ()
+ {
+   return find_stack_direction () < 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_c_stack_direction=1
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ ac_cv_c_stack_direction=-1
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+ $as_echo "$ac_cv_c_stack_direction" >&6; }
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define STACK_DIRECTION $ac_cv_c_stack_direction
+ _ACEOF
+ 
+ 
+ fi
+ 
+ { $as_echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5
+ $as_echo_n "checking for C/C++ restrict keyword... " >&6; }
+ if test "${ac_cv_c_restrict+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_c_restrict=no
+    # The order here caters to the fact that C++ does not require restrict.
+    for ac_kw in __restrict __restrict__ _Restrict restrict; do
+      cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ typedef int * int_ptr;
+ 	int foo (int_ptr $ac_kw ip) {
+ 	return ip[0];
+        }
+ int
+ main ()
+ {
+ int s[1];
+ 	int * $ac_kw t = s;
+ 	t[0] = 0;
+ 	return foo(t)
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_c_restrict=$ac_kw
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      test "$ac_cv_c_restrict" != no && break
+    done
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5
+ $as_echo "$ac_cv_c_restrict" >&6; }
+ 
+ 
+  case $ac_cv_c_restrict in
+    restrict) ;;
+    no) cat >>confdefs.h <<\_ACEOF
+ #define restrict /**/
+ _ACEOF
+  ;;
+    *)  cat >>confdefs.h <<_ACEOF
+ #define restrict $ac_cv_c_restrict
+ _ACEOF
+  ;;
+  esac
+ 
+ 
+   GNULIB_CHOWN=0;
+   GNULIB_DUP2=0;
+   GNULIB_ENVIRON=0;
+   GNULIB_FCHDIR=0;
+   GNULIB_FTRUNCATE=0;
+   GNULIB_GETCWD=0;
+   GNULIB_GETLOGIN_R=0;
+   GNULIB_GETPAGESIZE=0;
+   GNULIB_LCHOWN=0;
+   GNULIB_LSEEK=0;
+   GNULIB_READLINK=0;
+   GNULIB_SLEEP=0;
+     HAVE_DUP2=1;
+   HAVE_FTRUNCATE=1;
+   HAVE_GETPAGESIZE=1;
+   HAVE_READLINK=1;
+   HAVE_SLEEP=1;
+   HAVE_DECL_ENVIRON=1;
+   HAVE_DECL_GETLOGIN_R=1;
+   HAVE_OS_H=0;
+   HAVE_SYS_PARAM_H=0;
+   REPLACE_CHOWN=0;
+   REPLACE_FCHDIR=0;
+   REPLACE_GETCWD=0;
+   REPLACE_GETPAGESIZE=0;
+   REPLACE_LCHOWN=0;
+   REPLACE_LSEEK=0;
+ 
+ { $as_echo "$as_me:$LINENO: checking whether strerror_r is declared" >&5
+ $as_echo_n "checking whether strerror_r is declared... " >&6; }
+ if test "${ac_cv_have_decl_strerror_r+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef strerror_r
+   (void) strerror_r;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_strerror_r=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_strerror_r=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror_r" >&5
+ $as_echo "$ac_cv_have_decl_strerror_r" >&6; }
+ if test "x$ac_cv_have_decl_strerror_r" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRERROR_R 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRERROR_R 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+ 
+ for ac_func in strerror_r
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ done
+ 
+ { $as_echo "$as_me:$LINENO: checking whether strerror_r returns char *" >&5
+ $as_echo_n "checking whether strerror_r returns char *... " >&6; }
+ if test "${ac_cv_func_strerror_r_char_p+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+     ac_cv_func_strerror_r_char_p=no
+     if test $ac_cv_have_decl_strerror_r = yes; then
+       cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ 
+ 	  char buf[100];
+ 	  char x = *strerror_r (0, buf, sizeof buf);
+ 	  char *p = strerror_r (0, buf, sizeof buf);
+ 	  return !p || x;
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_func_strerror_r_char_p=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     else
+       # strerror_r is not declared.  Choose between
+       # systems that have relatively inaccessible declarations for the
+       # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
+       # former has a strerror_r that returns char*, while the latter
+       # has a strerror_r that returns `int'.
+       # This test should segfault on the DEC system.
+       if test "$cross_compiling" = yes; then
+   :
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ 	extern char *strerror_r ();
+ int
+ main ()
+ {
+ char buf[100];
+ 	  char x = *strerror_r (0, buf, sizeof buf);
+ 	  return ! isalpha (x);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_strerror_r_char_p=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+     fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_strerror_r_char_p" >&5
+ $as_echo "$ac_cv_func_strerror_r_char_p" >&6; }
+ if test $ac_cv_func_strerror_r_char_p = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define STRERROR_R_CHAR_P 1
+ _ACEOF
+ 
+ fi
+ 
+ 
+   XGETTEXT_EXTRA_OPTIONS=
+ 
+ 
+   if test -z "$GETOPT_H"; then
+ 
+ for ac_header in getopt.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+   GETOPT_H=getopt.h
+ fi
+ 
+ done
+ 
+   fi
+ 
+   if test -z "$GETOPT_H"; then
+ 
+ for ac_func in getopt_long_only
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+   GETOPT_H=getopt.h
+ fi
+ done
+ 
+   fi
+ 
+       if test -z "$GETOPT_H"; then
+     { $as_echo "$as_me:$LINENO: checking whether optreset is declared" >&5
+ $as_echo_n "checking whether optreset is declared... " >&6; }
+ if test "${ac_cv_have_decl_optreset+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <getopt.h>
+ 
+ int
+ main ()
+ {
+ #ifndef optreset
+   (void) optreset;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_optreset=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_optreset=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_optreset" >&5
+ $as_echo "$ac_cv_have_decl_optreset" >&6; }
+ if test "x$ac_cv_have_decl_optreset" = x""yes; then
+   GETOPT_H=getopt.h
+ fi
+ 
+   fi
+ 
+       if test -z "$GETOPT_H"; then
+     { $as_echo "$as_me:$LINENO: checking for working GNU getopt function" >&5
+ $as_echo_n "checking for working GNU getopt function... " >&6; }
+ if test "${gl_cv_func_gnu_getopt+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+   	 	 	 { $as_echo "$as_me:$LINENO: checking whether getopt_clip is declared" >&5
+ $as_echo_n "checking whether getopt_clip is declared... " >&6; }
+ if test "${ac_cv_have_decl_getopt_clip+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <getopt.h>
+ 
+ int
+ main ()
+ {
+ #ifndef getopt_clip
+   (void) getopt_clip;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_getopt_clip=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_getopt_clip=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getopt_clip" >&5
+ $as_echo "$ac_cv_have_decl_getopt_clip" >&6; }
+ if test "x$ac_cv_have_decl_getopt_clip" = x""yes; then
+   gl_cv_func_gnu_getopt=no
+ else
+   gl_cv_func_gnu_getopt=yes
+ fi
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <getopt.h>
+ int
+ main ()
+ {
+ 
+ 	     char *myargv[3];
+ 	     myargv[0] = "conftest";
+ 	     myargv[1] = "-+";
+ 	     myargv[2] = 0;
+ 	     return getopt (2, myargv, "+a") != '?';
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   gl_cv_func_gnu_getopt=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ gl_cv_func_gnu_getopt=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_gnu_getopt" >&5
+ $as_echo "$gl_cv_func_gnu_getopt" >&6; }
+     if test "$gl_cv_func_gnu_getopt" = "no"; then
+       GETOPT_H=getopt.h
+     fi
+   fi
+ 
+ 
+       { $as_echo "$as_me:$LINENO: checking whether getenv is declared" >&5
+ $as_echo_n "checking whether getenv is declared... " >&6; }
+ if test "${ac_cv_have_decl_getenv+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef getenv
+   (void) getenv;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_getenv=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_getenv=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5
+ $as_echo "$ac_cv_have_decl_getenv" >&6; }
+ if test "x$ac_cv_have_decl_getenv" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_GETENV 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_GETENV 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking whether the preprocessor supports include_next" >&5
+ $as_echo_n "checking whether the preprocessor supports include_next... " >&6; }
+ if test "${gl_cv_have_include_next+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   rm -rf conftestd1 conftestd2
+      mkdir conftestd1 conftestd2
+      cat <<EOF > conftestd1/conftest.h
+ #define DEFINED_IN_CONFTESTD1
+ #include_next <conftest.h>
+ #ifdef DEFINED_IN_CONFTESTD2
+ int foo;
+ #else
+ #error "include_next doesn't work"
+ #endif
+ EOF
+      cat <<EOF > conftestd2/conftest.h
+ #ifndef DEFINED_IN_CONFTESTD1
+ #error "include_next test doesn't work"
+ #endif
+ #define DEFINED_IN_CONFTESTD2
+ EOF
+      save_CPPFLAGS="$CPPFLAGS"
+      CPPFLAGS="$CPPFLAGS -Iconftestd1 -Iconftestd2"
+      cat >conftest.$ac_ext <<_ACEOF
+ #include <conftest.h>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gl_cv_have_include_next=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_have_include_next=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      CPPFLAGS="$save_CPPFLAGS"
+      rm -rf conftestd1 conftestd2
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_have_include_next" >&5
+ $as_echo "$gl_cv_have_include_next" >&6; }
+   if test $gl_cv_have_include_next = yes; then
+ 
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_INCLUDE_NEXT 1
+ _ACEOF
+ 
+ 
+     INCLUDE_NEXT=include_next
+   else
+     INCLUDE_NEXT=include
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_header in $gl_header_list
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+      if test $gl_cv_have_include_next = yes; then
+        gl_cv_next_sys_time_h='<'sys/time.h'>'
+      else
+        { $as_echo "$as_me:$LINENO: checking absolute name of <sys/time.h>" >&5
+ $as_echo_n "checking absolute name of <sys/time.h>... " >&6; }
+ if test "${gl_cv_next_sys_time_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+ 	  if test $ac_cv_header_sys_time_h = yes; then
+ 	    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/time.h>
+ 
+ _ACEOF
+ 	    	    	    	    gl_cv_next_sys_time_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ 	       sed -n '\#/sys/time.h#{
+ 		 s#.*"\(.*/sys/time.h\)".*#\1#
+ 		 s#^/[^/]#//&#
+ 		 p
+ 		 q
+ 	       }'`'"'
+ 	  else
+ 	    gl_cv_next_sys_time_h='<'sys/time.h'>'
+ 	  fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_next_sys_time_h" >&5
+ $as_echo "$gl_cv_next_sys_time_h" >&6; }
+      fi
+      NEXT_SYS_TIME_H=$gl_cv_next_sys_time_h
+ 
+ 
+ 
+ 
+   if test $ac_cv_header_sys_time_h = yes; then
+     HAVE_SYS_TIME_H=1
+   else
+     HAVE_SYS_TIME_H=0
+   fi
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for struct timeval" >&5
+ $as_echo_n "checking for struct timeval... " >&6; }
+ if test "${gl_cv_sys_struct_timeval+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #if HAVE_SYS_TIME_H
+ 	     #include <sys/time.h>
+ 	    #endif
+ 	    #include <time.h>
+ 
+ int
+ main ()
+ {
+ static struct timeval x; x.tv_sec = x.tv_usec;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gl_cv_sys_struct_timeval=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_sys_struct_timeval=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_sys_struct_timeval" >&5
+ $as_echo "$gl_cv_sys_struct_timeval" >&6; }
+   if test $gl_cv_sys_struct_timeval = yes; then
+     HAVE_STRUCT_TIMEVAL=1
+   else
+     HAVE_STRUCT_TIMEVAL=0
+   fi
+ 
+ 
+     REPLACE_GETTIMEOFDAY=0
+ 
+   if test $HAVE_SYS_TIME_H = 0 || test $HAVE_STRUCT_TIMEVAL = 0; then
+     SYS_TIME_H=sys/time.h
+   else
+     SYS_TIME_H=
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in $gl_func_list
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ done
+ 
+ 
+ 
+ 
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking for inline" >&5
+ $as_echo_n "checking for inline... " >&6; }
+ if test "${ac_cv_c_inline+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_c_inline=no
+ for ac_kw in inline __inline__ __inline; do
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #ifndef __cplusplus
+ typedef int foo_t;
+ static $ac_kw foo_t static_foo () {return 0; }
+ $ac_kw foo_t foo () {return 0; }
+ #endif
+ 
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_c_inline=$ac_kw
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   test "$ac_cv_c_inline" != no && break
+ done
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
+ $as_echo "$ac_cv_c_inline" >&6; }
+ 
+ 
+ case $ac_cv_c_inline in
+   inline | yes) ;;
+   *)
+     case $ac_cv_c_inline in
+       no) ac_val=;;
+       *) ac_val=$ac_cv_c_inline;;
+     esac
+     cat >>confdefs.h <<_ACEOF
+ #ifndef __cplusplus
+ #define inline $ac_val
+ #endif
+ _ACEOF
+     ;;
+ esac
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
+ $as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
+ if test "${am_cv_langinfo_codeset+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <langinfo.h>
+ int
+ main ()
+ {
+ char* cs = nl_langinfo(CODESET); return !cs;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   am_cv_langinfo_codeset=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	am_cv_langinfo_codeset=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5
+ $as_echo "$am_cv_langinfo_codeset" >&6; }
+   if test $am_cv_langinfo_codeset = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_LANGINFO_CODESET 1
+ _ACEOF
+ 
+   fi
+ 
+ 
+       { $as_echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5
+ $as_echo_n "checking whether getc_unlocked is declared... " >&6; }
+ if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef getc_unlocked
+   (void) getc_unlocked;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_getc_unlocked=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_getc_unlocked=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5
+ $as_echo "$ac_cv_have_decl_getc_unlocked" >&6; }
+ if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_GETC_UNLOCKED 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_GETC_UNLOCKED 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+ 
+ # Make sure we can run config.sub.
+ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+   { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+ $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ { $as_echo "$as_me:$LINENO: checking build system type" >&5
+ $as_echo_n "checking build system type... " >&6; }
+ if test "${ac_cv_build+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_build_alias=$build_alias
+ test "x$ac_build_alias" = x &&
+   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+ test "x$ac_build_alias" = x &&
+   { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+ $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+    { (exit 1); exit 1; }; }
+ ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+   { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+ $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+ $as_echo "$ac_cv_build" >&6; }
+ case $ac_cv_build in
+ *-*-*) ;;
+ *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+ $as_echo "$as_me: error: invalid value of canonical build" >&2;}
+    { (exit 1); exit 1; }; };;
+ esac
+ build=$ac_cv_build
+ ac_save_IFS=$IFS; IFS='-'
+ set x $ac_cv_build
+ shift
+ build_cpu=$1
+ build_vendor=$2
+ shift; shift
+ # Remember, the first character of IFS is used to create $*,
+ # except with old shells:
+ build_os=$*
+ IFS=$ac_save_IFS
+ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking host system type" >&5
+ $as_echo_n "checking host system type... " >&6; }
+ if test "${ac_cv_host+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "x$host_alias" = x; then
+   ac_cv_host=$ac_cv_build
+ else
+   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+     { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+ $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+ $as_echo "$ac_cv_host" >&6; }
+ case $ac_cv_host in
+ *-*-*) ;;
+ *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+ $as_echo "$as_me: error: invalid value of canonical host" >&2;}
+    { (exit 1); exit 1; }; };;
+ esac
+ host=$ac_cv_host
+ ac_save_IFS=$IFS; IFS='-'
+ set x $ac_cv_host
+ shift
+ host_cpu=$1
+ host_vendor=$2
+ shift; shift
+ # Remember, the first character of IFS is used to create $*,
+ # except with old shells:
+ host_os=$*
+ IFS=$ac_save_IFS
+ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+ 
+ 
+ 
+     { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5
+ $as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; }
+ if test "${ac_cv_gnu_library_2_1+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+   Lucky GNU user
+  #endif
+ #endif
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "Lucky GNU user" >/dev/null 2>&1; then
+   ac_cv_gnu_library_2_1=yes
+ else
+   ac_cv_gnu_library_2_1=no
+ fi
+ rm -f conftest*
+ 
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5
+ $as_echo "$ac_cv_gnu_library_2_1" >&6; }
+ 
+     GLIBC21="$ac_cv_gnu_library_2_1"
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking whether malloc, realloc, calloc are POSIX compliant" >&5
+ $as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
+ if test "${gl_cv_func_malloc_posix+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+                         cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+          choke me
+          #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gl_cv_func_malloc_posix=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_func_malloc_posix=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_malloc_posix" >&5
+ $as_echo "$gl_cv_func_malloc_posix" >&6; }
+ 
+ 
+   GNULIB_MALLOC_POSIX=0;
+   GNULIB_REALLOC_POSIX=0;
+   GNULIB_CALLOC_POSIX=0;
+   GNULIB_GETSUBOPT=0;
+   GNULIB_MKDTEMP=0;
+   GNULIB_MKSTEMP=0;
+   GNULIB_PUTENV=0;
+   GNULIB_RPMATCH=0;
+   GNULIB_SETENV=0;
+   GNULIB_STRTOD=0;
+   GNULIB_UNSETENV=0;
+     HAVE_CALLOC_POSIX=1;
+   HAVE_GETSUBOPT=1;
+   HAVE_MALLOC_POSIX=1;
+   HAVE_MKDTEMP=1;
+   HAVE_REALLOC_POSIX=1;
+   HAVE_RPMATCH=1;
+   HAVE_SETENV=1;
+   HAVE_STRTOD=1;
+   HAVE_UNSETENV=1;
+   REPLACE_MKSTEMP=0;
+   REPLACE_PUTENV=0;
+   REPLACE_STRTOD=0;
+   VOID_UNSETENV=0;
+ 
+ 
+ 
+ for ac_header in stdlib.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ { $as_echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
+ $as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+ if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+   ac_cv_func_malloc_0_nonnull=no
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #if defined STDC_HEADERS || defined HAVE_STDLIB_H
+ # include <stdlib.h>
+ #else
+ char *malloc ();
+ #endif
+ 
+ int
+ main ()
+ {
+ return ! malloc (0);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_malloc_0_nonnull=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ ac_cv_func_malloc_0_nonnull=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
+ $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
+ if test $ac_cv_func_malloc_0_nonnull = yes; then
+   gl_cv_func_malloc_0_nonnull=1
+ else
+   gl_cv_func_malloc_0_nonnull=0
+ fi
+ 
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull
+ _ACEOF
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for long long int" >&5
+ $as_echo_n "checking for long long int... " >&6; }
+ if test "${ac_cv_type_long_long_int+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ 
+   /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* For now, do not test the preprocessor; as of 2007 there are too many
+ 	 implementations with broken preprocessors.  Perhaps this can
+ 	 be revisited in 2012.  In the meantime, code should not expect
+ 	 #if to work with literals wider than 32 bits.  */
+       /* Test literals.  */
+       long long int ll = 9223372036854775807ll;
+       long long int nll = -9223372036854775807LL;
+       unsigned long long int ull = 18446744073709551615ULL;
+       /* Test constant expressions.   */
+       typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ 		     ? 1 : -1)];
+       typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ 		     ? 1 : -1)];
+       int i = 63;
+ int
+ main ()
+ {
+ /* Test availability of runtime routines for shift and division.  */
+       long long int llmax = 9223372036854775807ll;
+       unsigned long long int ullmax = 18446744073709551615ull;
+       return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ 	      | (llmax / ll) | (llmax % ll)
+ 	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ 	      | (ullmax / ull) | (ullmax % ull));
+   ;
+   return 0;
+ }
+ 
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   			if test "$cross_compiling" = yes; then
+   ac_cv_type_long_long_int=yes
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <limits.h>
+ 	       #ifndef LLONG_MAX
+ 	       # define HALF \
+ 			(1LL << (sizeof (long long int) * CHAR_BIT - 2))
+ 	       # define LLONG_MAX (HALF - 1 + HALF)
+ 	       #endif
+ int
+ main ()
+ {
+ long long int n = 1;
+ 	       int i;
+ 	       for (i = 0; ; i++)
+ 		 {
+ 		   long long int m = n << i;
+ 		   if (m >> i != n)
+ 		     return 1;
+ 		   if (LLONG_MAX / 2 < m)
+ 		     break;
+ 		 }
+ 	       return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_type_long_long_int=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ ac_cv_type_long_long_int=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_type_long_long_int=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5
+ $as_echo "$ac_cv_type_long_long_int" >&6; }
+   if test $ac_cv_type_long_long_int = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_LONG_LONG_INT 1
+ _ACEOF
+ 
+   fi
+ 
+ { $as_echo "$as_me:$LINENO: checking for mbstate_t" >&5
+ $as_echo_n "checking for mbstate_t... " >&6; }
+ if test "${ac_cv_type_mbstate_t+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #	    include <wchar.h>
+ int
+ main ()
+ {
+ mbstate_t x; return sizeof x;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_type_mbstate_t=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_type_mbstate_t=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5
+ $as_echo "$ac_cv_type_mbstate_t" >&6; }
+    if test $ac_cv_type_mbstate_t = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_MBSTATE_T 1
+ _ACEOF
+ 
+    else
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define mbstate_t int
+ _ACEOF
+ 
+    fi
+ 
+     { $as_echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5
+ $as_echo_n "checking whether mbrtowc and mbstate_t are properly declared... " >&6; }
+ if test "${gl_cv_func_mbrtowc+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <wchar.h>
+ int
+ main ()
+ {
+ wchar_t wc;
+               char const s[] = "";
+               size_t n = 1;
+               mbstate_t state;
+               return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   gl_cv_func_mbrtowc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_func_mbrtowc=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc" >&5
+ $as_echo "$gl_cv_func_mbrtowc" >&6; }
+   if test $gl_cv_func_mbrtowc = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_MBRTOWC 1
+ _ACEOF
+ 
+   fi
+ 
+ 
+   GNULIB_MEMMEM=0;
+   GNULIB_MEMPCPY=0;
+   GNULIB_MEMRCHR=0;
+   GNULIB_RAWMEMCHR=0;
+   GNULIB_STPCPY=0;
+   GNULIB_STPNCPY=0;
+   GNULIB_STRCHRNUL=0;
+   GNULIB_STRDUP=0;
+   GNULIB_STRNDUP=0;
+   GNULIB_STRNLEN=0;
+   GNULIB_STRPBRK=0;
+   GNULIB_STRSEP=0;
+   GNULIB_STRSTR=0;
+   GNULIB_STRCASESTR=0;
+   GNULIB_STRTOK_R=0;
+   GNULIB_MBSLEN=0;
+   GNULIB_MBSNLEN=0;
+   GNULIB_MBSCHR=0;
+   GNULIB_MBSRCHR=0;
+   GNULIB_MBSSTR=0;
+   GNULIB_MBSCASECMP=0;
+   GNULIB_MBSNCASECMP=0;
+   GNULIB_MBSPCASECMP=0;
+   GNULIB_MBSCASESTR=0;
+   GNULIB_MBSCSPN=0;
+   GNULIB_MBSPBRK=0;
+   GNULIB_MBSSPN=0;
+   GNULIB_MBSSEP=0;
+   GNULIB_MBSTOK_R=0;
+   GNULIB_STRERROR=0;
+   GNULIB_STRSIGNAL=0;
+     HAVE_DECL_MEMMEM=1;
+   HAVE_MEMPCPY=1;
+   HAVE_DECL_MEMRCHR=1;
+   HAVE_RAWMEMCHR=1;
+   HAVE_STPCPY=1;
+   HAVE_STPNCPY=1;
+   HAVE_STRCHRNUL=1;
+   HAVE_DECL_STRDUP=1;
+   HAVE_STRNDUP=1;
+   HAVE_DECL_STRNDUP=1;
+   HAVE_DECL_STRNLEN=1;
+   HAVE_STRPBRK=1;
+   HAVE_STRSEP=1;
+   HAVE_STRCASESTR=1;
+   HAVE_DECL_STRTOK_R=1;
+   HAVE_DECL_STRERROR=1;
+   HAVE_DECL_STRSIGNAL=1;
+   REPLACE_STRERROR=0;
+   REPLACE_STRSIGNAL=0;
+   REPLACE_MEMMEM=0;
+   REPLACE_STRCASESTR=0;
+   REPLACE_STRSTR=0;
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+       { $as_echo "$as_me:$LINENO: checking whether memmem is declared" >&5
+ $as_echo_n "checking whether memmem is declared... " >&6; }
+ if test "${ac_cv_have_decl_memmem+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef memmem
+   (void) memmem;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_memmem=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_memmem=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_memmem" >&5
+ $as_echo "$ac_cv_have_decl_memmem" >&6; }
+ if test "x$ac_cv_have_decl_memmem" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_MEMMEM 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_MEMMEM 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in memmem
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+ 
+     gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+ 
+ fi
+ done
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_have_decl_memmem = no; then
+     HAVE_DECL_MEMMEM=0
+   fi
+   :
+ 
+ # Check whether --enable-largefile was given.
+ if test "${enable_largefile+set}" = set; then
+   enableval=$enable_largefile;
+ fi
+ 
+ if test "$enable_largefile" != no; then
+ 
+   { $as_echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
+ $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+ if test "${ac_cv_sys_largefile_CC+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_sys_largefile_CC=no
+      if test "$GCC" != yes; then
+        ac_save_CC=$CC
+        while :; do
+ 	 # IRIX 6.2 and later do not support large files by default,
+ 	 # so use the C compiler's -n32 option if that helps.
+ 	 cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
+     since some C++ compilers masquerading as C compilers
+     incorrectly reject 9223372036854775807.  */
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ 		       && LARGE_OFF_T % 2147483647 == 1)
+ 		      ? 1 : -1];
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ 	 rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   break
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext
+ 	 CC="$CC -n32"
+ 	 rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_sys_largefile_CC=' -n32'; break
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext
+ 	 break
+        done
+        CC=$ac_save_CC
+        rm -f conftest.$ac_ext
+     fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
+ $as_echo "$ac_cv_sys_largefile_CC" >&6; }
+   if test "$ac_cv_sys_largefile_CC" != no; then
+     CC=$CC$ac_cv_sys_largefile_CC
+   fi
+ 
+   { $as_echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+ $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+ if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   while :; do
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
+     since some C++ compilers masquerading as C compilers
+     incorrectly reject 9223372036854775807.  */
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ 		       && LARGE_OFF_T % 2147483647 == 1)
+ 		      ? 1 : -1];
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_sys_file_offset_bits=no; break
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #define _FILE_OFFSET_BITS 64
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
+     since some C++ compilers masquerading as C compilers
+     incorrectly reject 9223372036854775807.  */
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ 		       && LARGE_OFF_T % 2147483647 == 1)
+ 		      ? 1 : -1];
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_sys_file_offset_bits=64; break
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cv_sys_file_offset_bits=unknown
+   break
+ done
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
+ $as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+ case $ac_cv_sys_file_offset_bits in #(
+   no | unknown) ;;
+   *)
+ cat >>confdefs.h <<_ACEOF
+ #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+ _ACEOF
+ ;;
+ esac
+ rm -rf conftest*
+   if test $ac_cv_sys_file_offset_bits = unknown; then
+     { $as_echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
+ $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+ if test "${ac_cv_sys_large_files+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   while :; do
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
+     since some C++ compilers masquerading as C compilers
+     incorrectly reject 9223372036854775807.  */
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ 		       && LARGE_OFF_T % 2147483647 == 1)
+ 		      ? 1 : -1];
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_sys_large_files=no; break
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #define _LARGE_FILES 1
+ #include <sys/types.h>
+  /* Check that off_t can represent 2**63 - 1 correctly.
+     We can't simply define LARGE_OFF_T to be 9223372036854775807,
+     since some C++ compilers masquerading as C compilers
+     incorrectly reject 9223372036854775807.  */
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ 		       && LARGE_OFF_T % 2147483647 == 1)
+ 		      ? 1 : -1];
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_sys_large_files=1; break
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cv_sys_large_files=unknown
+   break
+ done
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
+ $as_echo "$ac_cv_sys_large_files" >&6; }
+ case $ac_cv_sys_large_files in #(
+   no | unknown) ;;
+   *)
+ cat >>confdefs.h <<_ACEOF
+ #define _LARGE_FILES $ac_cv_sys_large_files
+ _ACEOF
+ ;;
+ esac
+ rm -rf conftest*
+   fi
+ fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5
+ $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
+ if test "${ac_cv_header_stdbool_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ 	  #include <stdbool.h>
+ 	  #ifndef bool
+ 	   "error: bool is not defined"
+ 	  #endif
+ 	  #ifndef false
+ 	   "error: false is not defined"
+ 	  #endif
+ 	  #if false
+ 	   "error: false is not 0"
+ 	  #endif
+ 	  #ifndef true
+ 	   "error: true is not defined"
+ 	  #endif
+ 	  #if true != 1
+ 	   "error: true is not 1"
+ 	  #endif
+ 	  #ifndef __bool_true_false_are_defined
+ 	   "error: __bool_true_false_are_defined is not defined"
+ 	  #endif
+ 
+ 	  struct s { _Bool s: 1; _Bool t; } s;
+ 
+ 	  char a[true == 1 ? 1 : -1];
+ 	  char b[false == 0 ? 1 : -1];
+ 	  char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+ 	  char d[(bool) 0.5 == true ? 1 : -1];
+ 	  bool e = &s;
+ 	  char f[(_Bool) 0.0 == false ? 1 : -1];
+ 	  char g[true];
+ 	  char h[sizeof (_Bool)];
+ 	  char i[sizeof s.t];
+ 	  enum { j = false, k = true, l = false * true, m = true * 256 };
+ 	  _Bool n[m];
+ 	  char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+ 	  char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+ 	  #if defined __xlc__ || defined __GNUC__
+ 	   /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
+ 	      reported by James Lemley on 2005-10-05; see
+ 	      http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+ 	      This test is not quite right, since xlc is allowed to
+ 	      reject this program, as the initializer for xlcbug is
+ 	      not one of the forms that C requires support for.
+ 	      However, doing the test right would require a run-time
+ 	      test, and that would make cross-compilation harder.
+ 	      Let us hope that IBM fixes the xlc bug, and also adds
+ 	      support for this kind of constant expression.  In the
+ 	      meantime, this test will reject xlc, which is OK, since
+ 	      our stdbool.h substitute should suffice.  We also test
+ 	      this with GCC, where it should work, to detect more
+ 	      quickly whether someone messes up the test in the
+ 	      future.  */
+ 	   char digs[] = "0123456789";
+ 	   int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
+ 	  #endif
+ 	  /* Catch a bug in an HP-UX C compiler.  See
+ 	     http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ 	     http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ 	   */
+ 	  _Bool q = true;
+ 	  _Bool *pq = &q;
+ 
+ int
+ main ()
+ {
+ 
+ 	  *pq |= q;
+ 	  *pq |= ! q;
+ 	  /* Refer to every declared value, to avoid compiler optimizations.  */
+ 	  return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+ 		  + !m + !n + !o + !p + !q + !pq);
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_header_stdbool_h=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_header_stdbool_h=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5
+ $as_echo "$ac_cv_header_stdbool_h" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for _Bool" >&5
+ $as_echo_n "checking for _Bool... " >&6; }
+ if test "${ac_cv_type__Bool+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_type__Bool=no
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ if (sizeof (_Bool))
+        return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ if (sizeof ((_Bool)))
+ 	  return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   :
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_type__Bool=yes
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5
+ $as_echo "$ac_cv_type__Bool" >&6; }
+ if test "x$ac_cv_type__Bool" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE__BOOL 1
+ _ACEOF
+ 
+ 
+ fi
+ 
+    if test $ac_cv_header_stdbool_h = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_STDBOOL_H 1
+ _ACEOF
+ 
+    fi
+ 
+   { $as_echo "$as_me:$LINENO: checking for unsigned long long int" >&5
+ $as_echo_n "checking for unsigned long long int... " >&6; }
+ if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ 
+   /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* For now, do not test the preprocessor; as of 2007 there are too many
+ 	 implementations with broken preprocessors.  Perhaps this can
+ 	 be revisited in 2012.  In the meantime, code should not expect
+ 	 #if to work with literals wider than 32 bits.  */
+       /* Test literals.  */
+       long long int ll = 9223372036854775807ll;
+       long long int nll = -9223372036854775807LL;
+       unsigned long long int ull = 18446744073709551615ULL;
+       /* Test constant expressions.   */
+       typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ 		     ? 1 : -1)];
+       typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ 		     ? 1 : -1)];
+       int i = 63;
+ int
+ main ()
+ {
+ /* Test availability of runtime routines for shift and division.  */
+       long long int llmax = 9223372036854775807ll;
+       unsigned long long int ullmax = 18446744073709551615ull;
+       return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ 	      | (llmax / ll) | (llmax % ll)
+ 	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ 	      | (ullmax / ull) | (ullmax % ull));
+   ;
+   return 0;
+ }
+ 
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_type_unsigned_long_long_int=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_type_unsigned_long_long_int=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long_int" >&5
+ $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
+   if test $ac_cv_type_unsigned_long_long_int = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_UNSIGNED_LONG_LONG_INT 1
+ _ACEOF
+ 
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+       { $as_echo "$as_me:$LINENO: checking whether strdup is declared" >&5
+ $as_echo_n "checking whether strdup is declared... " >&6; }
+ if test "${ac_cv_have_decl_strdup+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef strdup
+   (void) strdup;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_strdup=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_strdup=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strdup" >&5
+ $as_echo "$ac_cv_have_decl_strdup" >&6; }
+ if test "x$ac_cv_have_decl_strdup" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRDUP 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRDUP 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for working strerror function" >&5
+ $as_echo_n "checking for working strerror function... " >&6; }
+ if test "${gl_cv_func_working_strerror+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+          cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <string.h>
+ 
+ int
+ main ()
+ {
+ return !*strerror (-2);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gl_cv_func_working_strerror=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_func_working_strerror=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <string.h>
+ 
+ int
+ main ()
+ {
+ return !*strerror (-2);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   gl_cv_func_working_strerror=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ gl_cv_func_working_strerror=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_strerror" >&5
+ $as_echo "$gl_cv_func_working_strerror" >&6; }
+   if test $gl_cv_func_working_strerror = no ; then
+     REPLACE_STRERROR=1
+ 
+   { $as_echo "$as_me:$LINENO: checking whether strerror is declared" >&5
+ $as_echo_n "checking whether strerror is declared... " >&6; }
+ if test "${ac_cv_have_decl_strerror+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef strerror
+   (void) strerror;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_strerror=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_strerror=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror" >&5
+ $as_echo "$ac_cv_have_decl_strerror" >&6; }
+ if test "x$ac_cv_have_decl_strerror" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRERROR 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRERROR 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+ 
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+      if test $gl_cv_have_include_next = yes; then
+        gl_cv_next_string_h='<'string.h'>'
+      else
+        { $as_echo "$as_me:$LINENO: checking absolute name of <string.h>" >&5
+ $as_echo_n "checking absolute name of <string.h>... " >&6; }
+ if test "${gl_cv_next_string_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+ 	  if test $ac_cv_header_string_h = yes; then
+ 	    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <string.h>
+ 
+ _ACEOF
+ 	    	    	    	    gl_cv_next_string_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ 	       sed -n '\#/string.h#{
+ 		 s#.*"\(.*/string.h\)".*#\1#
+ 		 s#^/[^/]#//&#
+ 		 p
+ 		 q
+ 	       }'`'"'
+ 	  else
+ 	    gl_cv_next_string_h='<'string.h'>'
+ 	  fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_next_string_h" >&5
+ $as_echo "$gl_cv_next_string_h" >&6; }
+      fi
+      NEXT_STRING_H=$gl_cv_next_string_h
+ 
+ 
+ 
+ 
+ 
+       { $as_echo "$as_me:$LINENO: checking whether strndup is declared" >&5
+ $as_echo_n "checking whether strndup is declared... " >&6; }
+ if test "${ac_cv_have_decl_strndup+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef strndup
+   (void) strndup;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_strndup=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_strndup=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strndup" >&5
+ $as_echo "$ac_cv_have_decl_strndup" >&6; }
+ if test "x$ac_cv_have_decl_strndup" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRNDUP 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRNDUP 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+ 
+ 
+       { $as_echo "$as_me:$LINENO: checking whether strnlen is declared" >&5
+ $as_echo_n "checking whether strnlen is declared... " >&6; }
+ if test "${ac_cv_have_decl_strnlen+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef strnlen
+   (void) strnlen;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_strnlen=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_strnlen=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strnlen" >&5
+ $as_echo "$ac_cv_have_decl_strnlen" >&6; }
+ if test "x$ac_cv_have_decl_strnlen" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRNLEN 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRNLEN 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+ 
+ 
+     REPLACE_MKDIR=0;
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
+ $as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
+ if test "${ac_cv_header_stat_broken+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ 
+ #if defined S_ISBLK && defined S_IFDIR
+ extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1];
+ #endif
+ 
+ #if defined S_ISBLK && defined S_IFCHR
+ extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1];
+ #endif
+ 
+ #if defined S_ISLNK && defined S_IFREG
+ extern char c3[S_ISLNK (S_IFREG) ? -1 : 1];
+ #endif
+ 
+ #if defined S_ISSOCK && defined S_IFREG
+ extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
+ #endif
+ 
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_header_stat_broken=no
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_header_stat_broken=yes
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
+ $as_echo "$ac_cv_header_stat_broken" >&6; }
+ if test $ac_cv_header_stat_broken = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define STAT_MACROS_BROKEN 1
+ _ACEOF
+ 
+ fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   GNULIB_WCWIDTH=0;
+     HAVE_DECL_WCWIDTH=1;
+   REPLACE_WCWIDTH=0;
+   WCHAR_H=
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for wint_t" >&5
+ $as_echo_n "checking for wint_t... " >&6; }
+ if test "${gt_cv_c_wint_t+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+    before <wchar.h>.  */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+        wint_t foo = (wchar_t)'\0';
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gt_cv_c_wint_t=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gt_cv_c_wint_t=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gt_cv_c_wint_t" >&5
+ $as_echo "$gt_cv_c_wint_t" >&6; }
+   if test $gt_cv_c_wint_t = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_WINT_T 1
+ _ACEOF
+ 
+   fi
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for wchar_t" >&5
+ $as_echo_n "checking for wchar_t... " >&6; }
+ if test "${gt_cv_c_wchar_t+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stddef.h>
+        wchar_t foo = (wchar_t)'\0';
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gt_cv_c_wchar_t=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gt_cv_c_wchar_t=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gt_cv_c_wchar_t" >&5
+ $as_echo "$gt_cv_c_wchar_t" >&6; }
+   if test $gt_cv_c_wchar_t = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_WCHAR_T 1
+ _ACEOF
+ 
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+    if false; then
+   GL_COND_LIBTOOL_TRUE=
+   GL_COND_LIBTOOL_FALSE='#'
+ else
+   GL_COND_LIBTOOL_TRUE='#'
+   GL_COND_LIBTOOL_FALSE=
+ fi
+ 
+   gl_cond_libtool=false
+   gl_libdeps=
+   gl_ltlibdeps=
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_source_base='gnulib/lib'
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_func_alloca_works = no; then
+     :
+   fi
+ 
+   # Define an additional variable used in the Makefile substitution.
+   if test $ac_cv_working_alloca_h = yes; then
+     { $as_echo "$as_me:$LINENO: checking for alloca as a compiler built-in" >&5
+ $as_echo_n "checking for alloca as a compiler built-in... " >&6; }
+ if test "${gl_cv_rpl_alloca+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+       cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ #if defined __GNUC__ || defined _AIX || defined _MSC_VER
+         Need own alloca
+ #endif
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "Need own alloca" >/dev/null 2>&1; then
+   gl_cv_rpl_alloca=yes
+ else
+   gl_cv_rpl_alloca=no
+ fi
+ rm -f conftest*
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_rpl_alloca" >&5
+ $as_echo "$gl_cv_rpl_alloca" >&6; }
+     if test $gl_cv_rpl_alloca = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_ALLOCA 1
+ _ACEOF
+ 
+       ALLOCA_H=alloca.h
+     else
+                   ALLOCA_H=
+     fi
+   else
+     ALLOCA_H=alloca.h
+   fi
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ for ac_header in argz.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ 
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   eval "$as_ac_Header=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_Header=no"
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking for error_t" >&5
+ $as_echo_n "checking for error_t... " >&6; }
+ if test "${ac_cv_type_error_t+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_type_error_t=no
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #if defined(HAVE_ARGZ_H)
+ #  include <argz.h>
+ #endif
+ 
+ int
+ main ()
+ {
+ if (sizeof (error_t))
+        return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #if defined(HAVE_ARGZ_H)
+ #  include <argz.h>
+ #endif
+ 
+ int
+ main ()
+ {
+ if (sizeof ((error_t)))
+ 	  return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   :
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_type_error_t=yes
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_type_error_t" >&5
+ $as_echo "$ac_cv_type_error_t" >&6; }
+ if test "x$ac_cv_type_error_t" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_ERROR_T 1
+ _ACEOF
+ 
+ 
+ else
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define error_t int
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define __error_t_defined 1
+ _ACEOF
+ 
+ fi
+ 
+ 
+ ARGZ_H=
+ { $as_echo "$as_me:$LINENO: checking for argz_replace" >&5
+ $as_echo_n "checking for argz_replace... " >&6; }
+ if test "${ac_cv_func_argz_replace+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define argz_replace to an innocuous variant, in case <limits.h> declares argz_replace.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define argz_replace innocuous_argz_replace
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char argz_replace (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef argz_replace
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char argz_replace ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_argz_replace || defined __stub___argz_replace
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return argz_replace ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_func_argz_replace=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_func_argz_replace=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_argz_replace" >&5
+ $as_echo "$ac_cv_func_argz_replace" >&6; }
+ if test "x$ac_cv_func_argz_replace" = x""yes; then
+   :
+ else
+   ARGZ_H=argz.h;
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS argz.$ac_objext"
+ 
+ fi
+ 
+ 
+ if test -z "$ARGZ_H"; then
+   { $as_echo "$as_me:$LINENO: checking if argz actually works" >&5
+ $as_echo_n "checking if argz actually works... " >&6; }
+ if test "${lt_cv_sys_argz_works+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   case $host_os in #(
+ 	 *cygwin*)
+ 	   lt_cv_sys_argz_works=no
+ 	   if test "$cross_compiling" != no; then
+ 	     lt_cv_sys_argz_works="guessing no"
+ 	   else
+ 	     lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
+ 	     save_IFS=$IFS
+ 	     IFS=-.
+ 	     set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
+ 	     IFS=$save_IFS
+ 	     lt_os_major=${2-0}
+ 	     lt_os_minor=${3-0}
+ 	     lt_os_micro=${4-0}
+ 	     if test "$lt_os_major" -gt 1 \
+ 		|| { test "$lt_os_major" -eq 1 \
+ 		  && { test "$lt_os_minor" -gt 5 \
+ 		    || { test "$lt_os_minor" -eq 5 \
+ 		      && test "$lt_os_micro" -gt 24; }; }; }; then
+ 	       lt_cv_sys_argz_works=yes
+ 	     fi
+ 	   fi
+ 	   ;; #(
+ 	 *) lt_cv_sys_argz_works=yes ;;
+ 	 esac
+ fi
+ { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_argz_works" >&5
+ $as_echo "$lt_cv_sys_argz_works" >&6; }
+      if test $lt_cv_sys_argz_works = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_WORKING_ARGZ 1
+ _ACEOF
+ 
+ else
+   ARGZ_H=argz.h
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS argz.$ac_objext"
+ 
+ fi
+ 
+ fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking if environ is properly declared" >&5
+ $as_echo_n "checking if environ is properly declared... " >&6; }
+   if test "${gt_cv_var_environ_declaration+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+     cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <unistd.h>
+       extern struct { int foo; } environ;
+ int
+ main ()
+ {
+ environ.foo = 1;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gt_cv_var_environ_declaration=no
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gt_cv_var_environ_declaration=yes
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+   { $as_echo "$as_me:$LINENO: result: $gt_cv_var_environ_declaration" >&5
+ $as_echo "$gt_cv_var_environ_declaration" >&6; }
+   if test $gt_cv_var_environ_declaration = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_ENVIRON_DECL 1
+ _ACEOF
+ 
+   fi
+ 
+ 
+   if test $gt_cv_var_environ_declaration != yes; then
+     HAVE_DECL_ENVIRON=0
+   fi
+ 
+ 
+ 
+   GNULIB_ENVIRON=1
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking for error_at_line" >&5
+ $as_echo_n "checking for error_at_line... " >&6; }
+ if test "${ac_cv_lib_error_at_line+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <error.h>
+ int
+ main ()
+ {
+ error_at_line (0, 0, "", 0, "an error occurred");
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_lib_error_at_line=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_lib_error_at_line=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5
+ $as_echo "$ac_cv_lib_error_at_line" >&6; }
+ if test $ac_cv_lib_error_at_line = no; then
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext"
+ 
+ fi
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+   XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format"
+ 
+ 
+ 
+   XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format"
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS exitfail.$ac_objext"
+ 
+ 
+     :
+ 
+ 
+ 
+   if test -n "$GETOPT_H"; then
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
+ 
+ 
+   GETOPT_H=getopt.h
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define __GETOPT_PREFIX rpl_
+ _ACEOF
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for gettimeofday with POSIX signature" >&5
+ $as_echo_n "checking for gettimeofday with POSIX signature... " >&6; }
+ if test "${gl_cv_func_gettimeofday_posix_signature+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/time.h>
+ 	    struct timeval c;
+ 
+ int
+ main ()
+ {
+ 
+ 	    int (*f) (struct timeval *restrict, void *restrict) = gettimeofday;
+ 	    int x = f (&c, 0);
+ 	    return !(x | c.tv_sec | c.tv_usec);
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gl_cv_func_gettimeofday_posix_signature=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_func_gettimeofday_posix_signature=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_gettimeofday_posix_signature" >&5
+ $as_echo "$gl_cv_func_gettimeofday_posix_signature" >&6; }
+ 
+ 
+ 
+ 
+  { $as_echo "$as_me:$LINENO: checking whether gettimeofday clobbers localtime buffer" >&5
+ $as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; }
+ if test "${gl_cv_func_gettimeofday_clobber+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+        gl_cv_func_gettimeofday_clobber=yes
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <string.h>
+ 	  #include <sys/time.h>
+ 	  #include <time.h>
+ 	  #include <stdlib.h>
+ 
+ int
+ main ()
+ {
+ 
+ 	  time_t t = 0;
+ 	  struct tm *lt;
+ 	  struct tm saved_lt;
+ 	  struct timeval tv;
+ 	  lt = localtime (&t);
+ 	  saved_lt = *lt;
+ 	  gettimeofday (&tv, NULL);
+ 	  return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0;
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   gl_cv_func_gettimeofday_clobber=no
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ gl_cv_func_gettimeofday_clobber=yes
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_gettimeofday_clobber" >&5
+ $as_echo "$gl_cv_func_gettimeofday_clobber" >&6; }
+ 
+  if test $gl_cv_func_gettimeofday_clobber = yes; then
+    REPLACE_GETTIMEOFDAY=1
+    SYS_TIME_H=sys/time.h
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
+ 
+ 
+ 
+ for ac_header in sys/timeb.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ 
+ for ac_func in _ftime
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ done
+ 
+ 
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define gmtime rpl_gmtime
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define localtime rpl_localtime
+ _ACEOF
+ 
+ 
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1
+ _ACEOF
+ 
+  fi
+ 
+ 
+   if test $gl_cv_func_gettimeofday_posix_signature != yes; then
+     REPLACE_GETTIMEOFDAY=1
+     SYS_TIME_H=sys/time.h
+     if test $gl_cv_func_gettimeofday_clobber != yes; then
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
+ 
+ 
+ 
+ for ac_header in sys/timeb.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ 
+ for ac_func in _ftime
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ done
+ 
+ 
+     fi
+   fi
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking whether the compiler generally respects inline" >&5
+ $as_echo_n "checking whether the compiler generally respects inline... " >&6; }
+ if test "${gl_cv_c_inline_effective+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test $ac_cv_c_inline = no; then
+        gl_cv_c_inline_effective=no
+      else
+                                           cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ #ifdef __NO_INLINE__
+                #error "inline is not effective"
+              #endif
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gl_cv_c_inline_effective=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_c_inline_effective=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_c_inline_effective" >&5
+ $as_echo "$gl_cv_c_inline_effective" >&6; }
+   if test $gl_cv_c_inline_effective = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_INLINE 1
+ _ACEOF
+ 
+   fi
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
+ 
+ 
+ 
+   if test $gl_cv_func_malloc_posix = yes; then
+     HAVE_MALLOC_POSIX=1
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_MALLOC_POSIX 1
+ _ACEOF
+ 
+   else
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+ 
+     HAVE_MALLOC_POSIX=0
+   fi
+ 
+ 
+ 
+ 
+   GNULIB_MALLOC_POSIX=1
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+   GNULIB_MBSCASECMP=1
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+   GNULIB_MBSCHR=1
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+   GNULIB_MBSLEN=1
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+   GNULIB_MBSNCASECMP=1
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+   GNULIB_MBSSTR=1
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+     { $as_echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5
+ $as_echo_n "checking whether mbrtowc and mbstate_t are properly declared... " >&6; }
+ if test "${gl_cv_func_mbrtowc+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <wchar.h>
+ int
+ main ()
+ {
+ wchar_t wc;
+               char const s[] = "";
+               size_t n = 1;
+               mbstate_t state;
+               return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   gl_cv_func_mbrtowc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_func_mbrtowc=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_mbrtowc" >&5
+ $as_echo "$gl_cv_func_mbrtowc" >&6; }
+   if test $gl_cv_func_mbrtowc = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_MBRTOWC 1
+ _ACEOF
+ 
+   fi
+ 
+ 
+       { $as_echo "$as_me:$LINENO: checking whether mbswidth is declared in <wchar.h>" >&5
+ $as_echo_n "checking whether mbswidth is declared in <wchar.h>... " >&6; }
+ if test "${ac_cv_have_decl_mbswidth+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+    before <wchar.h>.  */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ 
+ int
+ main ()
+ {
+ 
+   char *p = (char *) mbswidth;
+   return !p;
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_mbswidth=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_mbswidth=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_mbswidth" >&5
+ $as_echo "$ac_cv_have_decl_mbswidth" >&6; }
+   if test $ac_cv_have_decl_mbswidth = yes; then
+     ac_val=1
+   else
+     ac_val=0
+   fi
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_MBSWIDTH_IN_WCHAR_H $ac_val
+ _ACEOF
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for mbstate_t" >&5
+ $as_echo_n "checking for mbstate_t... " >&6; }
+ if test "${ac_cv_type_mbstate_t+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #	    include <wchar.h>
+ int
+ main ()
+ {
+ mbstate_t x; return sizeof x;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_type_mbstate_t=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_type_mbstate_t=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5
+ $as_echo "$ac_cv_type_mbstate_t" >&6; }
+    if test $ac_cv_type_mbstate_t = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_MBSTATE_T 1
+ _ACEOF
+ 
+    else
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define mbstate_t int
+ _ACEOF
+ 
+    fi
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in memchr
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+ 
+     gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+ 
+ fi
+ done
+ 
+ 
+   if test $ac_cv_func_memchr = no; then
+ 
+ 
+ for ac_header in bp-sym.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ 
+   fi
+ 
+ 
+   if test $cross_compiling != no; then
+     # AC_FUNC_MEMCMP as of 2.62 defaults to 'no' when cross compiling.
+     # We default to yes if memcmp appears to exist, which works
+     # better for MinGW.
+     { $as_echo "$as_me:$LINENO: checking whether cross-compiling target has memcmp" >&5
+ $as_echo_n "checking whether cross-compiling target has memcmp... " >&6; }
+ if test "${ac_cv_func_memcmp_working+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ 
+ 			/* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <string.h>
+ 
+ int
+ main ()
+ {
+ int ret = memcmp ("foo", "bar", 0);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_func_memcmp_working=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_func_memcmp_working=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5
+ $as_echo "$ac_cv_func_memcmp_working" >&6; }
+   fi
+   { $as_echo "$as_me:$LINENO: checking for working memcmp" >&5
+ $as_echo_n "checking for working memcmp... " >&6; }
+ if test "${ac_cv_func_memcmp_working+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+   ac_cv_func_memcmp_working=no
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ 
+   /* Some versions of memcmp are not 8-bit clean.  */
+   char c0 = '\100', c1 = '\200', c2 = '\201';
+   if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0)
+     return 1;
+ 
+   /* The Next x86 OpenStep bug shows up only when comparing 16 bytes
+      or more and with at least one buffer not starting on a 4-byte boundary.
+      William Lewis provided this test program.   */
+   {
+     char foo[21];
+     char bar[21];
+     int i;
+     for (i = 0; i < 4; i++)
+       {
+ 	char *a = foo + i;
+ 	char *b = bar + i;
+ 	strcpy (a, "--------01111111");
+ 	strcpy (b, "--------10000000");
+ 	if (memcmp (a, b, 16) >= 0)
+ 	  return 1;
+       }
+     return 0;
+   }
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_memcmp_working=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ ac_cv_func_memcmp_working=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_memcmp_working" >&5
+ $as_echo "$ac_cv_func_memcmp_working" >&6; }
+ test $ac_cv_func_memcmp_working = no &&
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS memcmp.$ac_objext"
+ 
+ 
+     if test $ac_cv_func_memcmp_working = no; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define memcmp rpl_memcmp
+ _ACEOF
+ 
+     :
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in memcpy
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+ 
+     gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+ 
+ fi
+ done
+ 
+ 
+   if test $ac_cv_func_memcpy = no; then
+ 
+   :
+ 
+   fi
+ 
+ 
+ 
+   if test $ac_cv_have_decl_memmem = yes; then
+     { $as_echo "$as_me:$LINENO: checking whether memmem works in linear time" >&5
+ $as_echo_n "checking whether memmem works in linear time... " >&6; }
+ if test "${gl_cv_func_memmem_works+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+   	 	 cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)
+   Lucky user
+  #endif
+ #endif
+ #ifdef __CYGWIN__
+  #include <cygwin/version.h>
+  #if CYGWIN_VERSION_DLL_MAJOR >= 1007
+   Lucky user
+  #endif
+ #endif
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "Lucky user" >/dev/null 2>&1; then
+   gl_cv_func_memmem_works=yes
+ else
+   gl_cv_func_memmem_works="guessing no"
+ fi
+ rm -f conftest*
+ 
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ #include <signal.h> /* for signal */
+ #include <string.h> /* for memmem */
+ #include <stdlib.h> /* for malloc */
+ #include <unistd.h> /* for alarm */
+ 
+ int
+ main ()
+ {
+ size_t m = 1000000;
+     char *haystack = (char *) malloc (2 * m + 1);
+     char *needle = (char *) malloc (m + 1);
+     void *result = 0;
+     /* Failure to compile this test due to missing alarm is okay,
+        since all such platforms (mingw) also lack memmem.  */
+     signal (SIGALRM, SIG_DFL);
+     alarm (5);
+     /* Check for quadratic performance.  */
+     if (haystack && needle)
+       {
+ 	memset (haystack, 'A', 2 * m);
+ 	haystack[2 * m] = 'B';
+ 	memset (needle, 'A', m);
+ 	needle[m] = 'B';
+ 	result = memmem (haystack, 2 * m + 1, needle, m + 1);
+       }
+     /* Check for empty needle behavior.  */
+     return !result || !memmem ("a", 1, 0, 0);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   gl_cv_func_memmem_works=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ gl_cv_func_memmem_works=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_memmem_works" >&5
+ $as_echo "$gl_cv_func_memmem_works" >&6; }
+     if test "$gl_cv_func_memmem_works" != yes; then
+       REPLACE_MEMMEM=1
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS memmem.$ac_objext"
+ 
+     fi
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in memmem
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+ 
+     gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+ 
+ fi
+ done
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_have_decl_memmem = no; then
+     HAVE_DECL_MEMMEM=0
+   fi
+   :
+ 
+ 
+ 
+   GNULIB_MEMMEM=1
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in memmove
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+ 
+     gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+ 
+ fi
+ done
+ 
+ 
+   if test $ac_cv_func_memmove = no; then
+ 
+   :
+ 
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in mempcpy
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+ 
+     gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+ 
+ fi
+ done
+ 
+ 
+   if test $ac_cv_func_mempcpy = no; then
+     HAVE_MEMPCPY=0
+ 
+   :
+ 
+   fi
+ 
+ 
+ 
+   GNULIB_MEMPCPY=1
+ 
+ 
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for working mkstemp" >&5
+ $as_echo_n "checking for working mkstemp... " >&6; }
+ if test "${gl_cv_func_working_mkstemp+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+       mkdir conftest.mkstemp
+       if test "$cross_compiling" = yes; then
+   gl_cv_func_working_mkstemp=no
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ int i;
+ 	    off_t large = (off_t) 4294967295u;
+ 	    if (large < 0)
+ 	      large = 2147483647;
+ 	    for (i = 0; i < 70; i++)
+ 	      {
+ 		char templ[] = "conftest.mkstemp/coXXXXXX";
+ 		int (*mkstemp_function) (char *) = mkstemp;
+ 		int fd = mkstemp_function (templ);
+ 		if (fd < 0 || lseek (fd, large, SEEK_SET) != large)
+ 		  return 1;
+ 		close (fd);
+ 	      }
+ 	    return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   gl_cv_func_working_mkstemp=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ gl_cv_func_working_mkstemp=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+       rm -rf conftest.mkstemp
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_working_mkstemp" >&5
+ $as_echo "$gl_cv_func_working_mkstemp" >&6; }
+ 
+   if test $gl_cv_func_working_mkstemp != yes; then
+     REPLACE_MKSTEMP=1
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS mkstemp.$ac_objext"
+ 
+ 
+ 
+   fi
+ 
+ 
+ 
+   GNULIB_MKSTEMP=1
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_func_setenv = no; then
+     HAVE_SETENV=0
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_header in search.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ 
+ for ac_func in tsearch
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ done
+ 
+ 
+   fi
+ 
+ 
+ 
+   GNULIB_SETENV=1
+ 
+ 
+ 
+ 
+   # Define two additional variables used in the Makefile substitution.
+ 
+   if test "$ac_cv_header_stdbool_h" = yes; then
+     STDBOOL_H=''
+   else
+     STDBOOL_H='stdbool.h'
+   fi
+ 
+ 
+   if test "$ac_cv_type__Bool" = yes; then
+     HAVE__BOOL=1
+   else
+     HAVE__BOOL=0
+   fi
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_type_long_long_int = yes; then
+     HAVE_LONG_LONG_INT=1
+   else
+     HAVE_LONG_LONG_INT=0
+   fi
+ 
+ 
+   if test $ac_cv_type_unsigned_long_long_int = yes; then
+     HAVE_UNSIGNED_LONG_LONG_INT=1
+   else
+     HAVE_UNSIGNED_LONG_LONG_INT=0
+   fi
+ 
+ 
+       if test $ac_cv_header_inttypes_h = yes; then
+     HAVE_INTTYPES_H=1
+   else
+     HAVE_INTTYPES_H=0
+   fi
+ 
+ 
+       if test $ac_cv_header_sys_types_h = yes; then
+     HAVE_SYS_TYPES_H=1
+   else
+     HAVE_SYS_TYPES_H=0
+   fi
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+      if test $gl_cv_have_include_next = yes; then
+        gl_cv_next_stdint_h='<'stdint.h'>'
+      else
+        { $as_echo "$as_me:$LINENO: checking absolute name of <stdint.h>" >&5
+ $as_echo_n "checking absolute name of <stdint.h>... " >&6; }
+ if test "${gl_cv_next_stdint_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+ 	  if test $ac_cv_header_stdint_h = yes; then
+ 	    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdint.h>
+ 
+ _ACEOF
+ 	    	    	    	    gl_cv_next_stdint_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ 	       sed -n '\#/stdint.h#{
+ 		 s#.*"\(.*/stdint.h\)".*#\1#
+ 		 s#^/[^/]#//&#
+ 		 p
+ 		 q
+ 	       }'`'"'
+ 	  else
+ 	    gl_cv_next_stdint_h='<'stdint.h'>'
+ 	  fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdint_h" >&5
+ $as_echo "$gl_cv_next_stdint_h" >&6; }
+      fi
+      NEXT_STDINT_H=$gl_cv_next_stdint_h
+ 
+ 
+ 
+   if test $ac_cv_header_stdint_h = yes; then
+     HAVE_STDINT_H=1
+   else
+     HAVE_STDINT_H=0
+   fi
+ 
+ 
+     if test $ac_cv_header_stdint_h = yes; then
+     { $as_echo "$as_me:$LINENO: checking whether stdint.h conforms to C99" >&5
+ $as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
+ if test "${gl_cv_header_working_stdint_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   gl_cv_header_working_stdint_h=no
+        cat >conftest.$ac_ext <<_ACEOF
+ 
+          /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
+ #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
+ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+ #include <stdint.h>
+ /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
+ #if !(defined WCHAR_MIN && defined WCHAR_MAX)
+ #error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+ #endif
+ 
+ 
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ 
+ 
+ #ifdef INT8_MAX
+ int8_t a1 = INT8_MAX;
+ int8_t a1min = INT8_MIN;
+ #endif
+ #ifdef INT16_MAX
+ int16_t a2 = INT16_MAX;
+ int16_t a2min = INT16_MIN;
+ #endif
+ #ifdef INT32_MAX
+ int32_t a3 = INT32_MAX;
+ int32_t a3min = INT32_MIN;
+ #endif
+ #ifdef INT64_MAX
+ int64_t a4 = INT64_MAX;
+ int64_t a4min = INT64_MIN;
+ #endif
+ #ifdef UINT8_MAX
+ uint8_t b1 = UINT8_MAX;
+ #else
+ typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+ #endif
+ #ifdef UINT16_MAX
+ uint16_t b2 = UINT16_MAX;
+ #endif
+ #ifdef UINT32_MAX
+ uint32_t b3 = UINT32_MAX;
+ #endif
+ #ifdef UINT64_MAX
+ uint64_t b4 = UINT64_MAX;
+ #endif
+ int_least8_t c1 = INT8_C (0x7f);
+ int_least8_t c1max = INT_LEAST8_MAX;
+ int_least8_t c1min = INT_LEAST8_MIN;
+ int_least16_t c2 = INT16_C (0x7fff);
+ int_least16_t c2max = INT_LEAST16_MAX;
+ int_least16_t c2min = INT_LEAST16_MIN;
+ int_least32_t c3 = INT32_C (0x7fffffff);
+ int_least32_t c3max = INT_LEAST32_MAX;
+ int_least32_t c3min = INT_LEAST32_MIN;
+ int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+ int_least64_t c4max = INT_LEAST64_MAX;
+ int_least64_t c4min = INT_LEAST64_MIN;
+ uint_least8_t d1 = UINT8_C (0xff);
+ uint_least8_t d1max = UINT_LEAST8_MAX;
+ uint_least16_t d2 = UINT16_C (0xffff);
+ uint_least16_t d2max = UINT_LEAST16_MAX;
+ uint_least32_t d3 = UINT32_C (0xffffffff);
+ uint_least32_t d3max = UINT_LEAST32_MAX;
+ uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+ uint_least64_t d4max = UINT_LEAST64_MAX;
+ int_fast8_t e1 = INT_FAST8_MAX;
+ int_fast8_t e1min = INT_FAST8_MIN;
+ int_fast16_t e2 = INT_FAST16_MAX;
+ int_fast16_t e2min = INT_FAST16_MIN;
+ int_fast32_t e3 = INT_FAST32_MAX;
+ int_fast32_t e3min = INT_FAST32_MIN;
+ int_fast64_t e4 = INT_FAST64_MAX;
+ int_fast64_t e4min = INT_FAST64_MIN;
+ uint_fast8_t f1 = UINT_FAST8_MAX;
+ uint_fast16_t f2 = UINT_FAST16_MAX;
+ uint_fast32_t f3 = UINT_FAST32_MAX;
+ uint_fast64_t f4 = UINT_FAST64_MAX;
+ #ifdef INTPTR_MAX
+ intptr_t g = INTPTR_MAX;
+ intptr_t gmin = INTPTR_MIN;
+ #endif
+ #ifdef UINTPTR_MAX
+ uintptr_t h = UINTPTR_MAX;
+ #endif
+ intmax_t i = INTMAX_MAX;
+ uintmax_t j = UINTMAX_MAX;
+ 
+ #include <limits.h> /* for CHAR_BIT */
+ #define TYPE_MINIMUM(t) \
+   ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+ #define TYPE_MAXIMUM(t) \
+   ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
+ struct s {
+   int check_PTRDIFF:
+       PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+       && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+       ? 1 : -1;
+   /* Detect bug in FreeBSD 6.0 / ia64.  */
+   int check_SIG_ATOMIC:
+       SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+       && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+       ? 1 : -1;
+   int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+   int check_WCHAR:
+       WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+       && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+       ? 1 : -1;
+   /* Detect bug in mingw.  */
+   int check_WINT:
+       WINT_MIN == TYPE_MINIMUM (wint_t)
+       && WINT_MAX == TYPE_MAXIMUM (wint_t)
+       ? 1 : -1;
+ 
+   /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
+   int check_UINT8_C:
+         (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+   int check_UINT16_C:
+         (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+ 
+   /* Detect bugs in OpenBSD 3.9 stdint.h.  */
+ #ifdef UINT8_MAX
+   int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+ #endif
+ #ifdef UINT16_MAX
+   int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+ #endif
+ #ifdef UINT32_MAX
+   int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+ #endif
+ #ifdef UINT64_MAX
+   int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+ #endif
+   int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+   int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+   int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+   int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+   int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+   int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+   int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+   int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+   int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+   int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+   int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+ };
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gl_cv_header_working_stdint_h=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_header_working_stdint_h" >&5
+ $as_echo "$gl_cv_header_working_stdint_h" >&6; }
+   fi
+   if test "$gl_cv_header_working_stdint_h" = yes; then
+     STDINT_H=
+   else
+ 
+ 
+ for ac_header in sys/inttypes.h sys/bitypes.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+     if test $ac_cv_header_sys_inttypes_h = yes; then
+       HAVE_SYS_INTTYPES_H=1
+     else
+       HAVE_SYS_INTTYPES_H=0
+     fi
+ 
+     if test $ac_cv_header_sys_bitypes_h = yes; then
+       HAVE_SYS_BITYPES_H=1
+     else
+       HAVE_SYS_BITYPES_H=0
+     fi
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   for gltype in ptrdiff_t sig_atomic_t size_t wchar_t wint_t ; do
+     { $as_echo "$as_me:$LINENO: checking for bit size of $gltype" >&5
+ $as_echo_n "checking for bit size of $gltype... " >&6; }
+ if { as_var=gl_cv_bitsizeof_${gltype}; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+   # Depending upon the size, compute the lo and hi bounds.
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ 
+ #include <limits.h>
+ int
+ main ()
+ {
+ static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= 0)];
+ test_array [0] = 0
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_lo=0 ac_mid=0
+   while :; do
+     cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ 
+ #include <limits.h>
+ int
+ main ()
+ {
+ static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
+ test_array [0] = 0
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_hi=$ac_mid; break
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_lo=`expr $ac_mid + 1`
+ 			if test $ac_lo -le $ac_mid; then
+ 			  ac_lo= ac_hi=
+ 			  break
+ 			fi
+ 			ac_mid=`expr 2 '*' $ac_mid + 1`
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   done
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ 
+ #include <limits.h>
+ int
+ main ()
+ {
+ static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) < 0)];
+ test_array [0] = 0
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_hi=-1 ac_mid=-1
+   while :; do
+     cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ 
+ #include <limits.h>
+ int
+ main ()
+ {
+ static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) >= $ac_mid)];
+ test_array [0] = 0
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_lo=$ac_mid; break
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_hi=`expr '(' $ac_mid ')' - 1`
+ 			if test $ac_mid -le $ac_hi; then
+ 			  ac_lo= ac_hi=
+ 			  break
+ 			fi
+ 			ac_mid=`expr 2 '*' $ac_mid`
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   done
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_lo= ac_hi=
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ # Binary search between lo and hi bounds.
+ while test "x$ac_lo" != "x$ac_hi"; do
+   ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ 
+ #include <limits.h>
+ int
+ main ()
+ {
+ static int test_array [1 - 2 * !((sizeof ($gltype) * CHAR_BIT) <= $ac_mid)];
+ test_array [0] = 0
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_hi=$ac_mid
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_lo=`expr '(' $ac_mid ')' + 1`
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+ case $ac_lo in
+ ?*) result=$ac_lo;;
+ '') result=unknown ;;
+ esac
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ 
+ #include <limits.h>
+ static long int longval () { return sizeof ($gltype) * CHAR_BIT; }
+ static unsigned long int ulongval () { return sizeof ($gltype) * CHAR_BIT; }
+ #include <stdio.h>
+ #include <stdlib.h>
+ int
+ main ()
+ {
+ 
+   FILE *f = fopen ("conftest.val", "w");
+   if (! f)
+     return 1;
+   if ((sizeof ($gltype) * CHAR_BIT) < 0)
+     {
+       long int i = longval ();
+       if (i != (sizeof ($gltype) * CHAR_BIT))
+ 	return 1;
+       fprintf (f, "%ld", i);
+     }
+   else
+     {
+       unsigned long int i = ulongval ();
+       if (i != (sizeof ($gltype) * CHAR_BIT))
+ 	return 1;
+       fprintf (f, "%lu", i);
+     }
+   /* Do not output a trailing newline, as this causes \r\n confusion
+      on some platforms.  */
+   return ferror (f) || fclose (f) != 0;
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   result=`cat conftest.val`
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ result=unknown
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ rm -f conftest.val
+        eval gl_cv_bitsizeof_${gltype}=\$result
+ 
+ fi
+ ac_res=`eval 'as_val=${'gl_cv_bitsizeof_${gltype}'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+     eval result=\$gl_cv_bitsizeof_${gltype}
+     if test $result = unknown; then
+                                                 result=0
+     fi
+     GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+     cat >>confdefs.h <<_ACEOF
+ #define BITSIZEOF_${GLTYPE} $result
+ _ACEOF
+ 
+     eval BITSIZEOF_${GLTYPE}=\$result
+   done
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   for gltype in sig_atomic_t wchar_t wint_t ; do
+     { $as_echo "$as_me:$LINENO: checking whether $gltype is signed" >&5
+ $as_echo_n "checking whether $gltype is signed... " >&6; }
+ if { as_var=gl_cv_type_${gltype}_signed; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ 
+             int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   result=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	result=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        eval gl_cv_type_${gltype}_signed=\$result
+ 
+ fi
+ ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_signed'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+     eval result=\$gl_cv_type_${gltype}_signed
+     GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+     if test "$result" = yes; then
+       cat >>confdefs.h <<_ACEOF
+ #define HAVE_SIGNED_${GLTYPE} 1
+ _ACEOF
+ 
+       eval HAVE_SIGNED_${GLTYPE}=1
+     else
+       eval HAVE_SIGNED_${GLTYPE}=0
+     fi
+   done
+ 
+ 
+   gl_cv_type_ptrdiff_t_signed=yes
+   gl_cv_type_size_t_signed=no
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   for gltype in ptrdiff_t sig_atomic_t size_t wchar_t wint_t ; do
+     { $as_echo "$as_me:$LINENO: checking for $gltype integer literal suffix" >&5
+ $as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+ if { as_var=gl_cv_type_${gltype}_suffix; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval gl_cv_type_${gltype}_suffix=no
+        eval result=\$gl_cv_type_${gltype}_signed
+        if test "$result" = yes; then
+          glsufu=
+        else
+          glsufu=u
+        fi
+        for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+          case $glsuf in
+            '')  gltype1='int';;
+            l)	gltype1='long int';;
+            ll)	gltype1='long long int';;
+            i64)	gltype1='__int64';;
+            u)	gltype1='unsigned int';;
+            ul)	gltype1='unsigned long int';;
+            ull)	gltype1='unsigned long long int';;
+            ui64)gltype1='unsigned __int64';;
+          esac
+          cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ 
+               extern $gltype foo;
+               extern $gltype1 foo;
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   eval gl_cv_type_${gltype}_suffix=\$glsuf
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+          eval result=\$gl_cv_type_${gltype}_suffix
+          test "$result" != no && break
+        done
+ fi
+ ac_res=`eval 'as_val=${'gl_cv_type_${gltype}_suffix'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+     GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+     eval result=\$gl_cv_type_${gltype}_suffix
+     test "$result" = no && result=
+     eval ${GLTYPE}_SUFFIX=\$result
+     cat >>confdefs.h <<_ACEOF
+ #define ${GLTYPE}_SUFFIX $result
+ _ACEOF
+ 
+   done
+ 
+ 
+ 
+     STDINT_H=stdint.h
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+      if test $gl_cv_have_include_next = yes; then
+        gl_cv_next_stdlib_h='<'stdlib.h'>'
+      else
+        { $as_echo "$as_me:$LINENO: checking absolute name of <stdlib.h>" >&5
+ $as_echo_n "checking absolute name of <stdlib.h>... " >&6; }
+ if test "${gl_cv_next_stdlib_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+ 	  if test $ac_cv_header_stdlib_h = yes; then
+ 	    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdlib.h>
+ 
+ _ACEOF
+ 	    	    	    	    gl_cv_next_stdlib_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ 	       sed -n '\#/stdlib.h#{
+ 		 s#.*"\(.*/stdlib.h\)".*#\1#
+ 		 s#^/[^/]#//&#
+ 		 p
+ 		 q
+ 	       }'`'"'
+ 	  else
+ 	    gl_cv_next_stdlib_h='<'stdlib.h'>'
+ 	  fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_next_stdlib_h" >&5
+ $as_echo "$gl_cv_next_stdlib_h" >&6; }
+      fi
+      NEXT_STDLIB_H=$gl_cv_next_stdlib_h
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in stpcpy
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+ 
+     gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+ 
+ fi
+ done
+ 
+ 
+   if test $ac_cv_func_stpcpy = no; then
+     HAVE_STPCPY=0
+ 
+   :
+ 
+   fi
+ 
+ 
+ 
+   GNULIB_STPCPY=1
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in strdup
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+ 
+     gl_LIBOBJS="$gl_LIBOBJS $ac_func.$ac_objext"
+ 
+ fi
+ done
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_have_decl_strdup = no; then
+     HAVE_DECL_STRDUP=0
+   fi
+   :
+ 
+ 
+ 
+   GNULIB_STRDUP=1
+ 
+ 
+ 
+   if test $gl_cv_func_working_strerror = no; then
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
+ 
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define REPLACE_STRERROR $REPLACE_STRERROR
+ _ACEOF
+ 
+   fi
+ 
+ 
+ 
+   GNULIB_STRERROR=1
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_have_decl_strndup = no; then
+     HAVE_DECL_STRNDUP=0
+   fi
+ 
+   # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
+   { $as_echo "$as_me:$LINENO: checking for working strndup" >&5
+ $as_echo_n "checking for working strndup... " >&6; }
+ if test "${gl_cv_func_strndup+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+   { $as_echo "$as_me:$LINENO: checking for strndup" >&5
+ $as_echo_n "checking for strndup... " >&6; }
+ if test "${ac_cv_func_strndup+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define strndup to an innocuous variant, in case <limits.h> declares strndup.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define strndup innocuous_strndup
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char strndup (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef strndup
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char strndup ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_strndup || defined __stub___strndup
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return strndup ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_func_strndup=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_func_strndup=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_strndup" >&5
+ $as_echo "$ac_cv_func_strndup" >&6; }
+ if test "x$ac_cv_func_strndup" = x""yes; then
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ #ifdef _AIX
+                too risky
+ #endif
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "too risky" >/dev/null 2>&1; then
+   gl_cv_func_strndup=no
+ else
+   gl_cv_func_strndup=yes
+ fi
+ rm -f conftest*
+ 
+ else
+   gl_cv_func_strndup=no
+ fi
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ 
+        /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <string.h>
+ 			 #include <stdlib.h>
+ int
+ main ()
+ {
+ 
+ #ifndef HAVE_DECL_STRNDUP
+   extern char *strndup (const char *, size_t);
+ #endif
+   char *s;
+   s = strndup ("some longer string", 15);
+   free (s);
+   s = strndup ("shorter string", 13);
+   return s[13] != '\0';
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   gl_cv_func_strndup=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ gl_cv_func_strndup=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_strndup" >&5
+ $as_echo "$gl_cv_func_strndup" >&6; }
+   if test $gl_cv_func_strndup = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_STRNDUP 1
+ _ACEOF
+ 
+   else
+     HAVE_STRNDUP=0
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
+ 
+     :
+   fi
+ 
+ 
+ 
+   GNULIB_STRNDUP=1
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_have_decl_strnlen = no; then
+     HAVE_DECL_STRNLEN=0
+   fi
+ 
+   { $as_echo "$as_me:$LINENO: checking for working strnlen" >&5
+ $as_echo_n "checking for working strnlen... " >&6; }
+ if test "${ac_cv_func_strnlen_working+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+   ac_cv_func_strnlen_working=no
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ 
+ #define S "foobar"
+ #define S_LEN (sizeof S - 1)
+ 
+   /* At least one implementation is buggy: that of AIX 4.3 would
+      give strnlen (S, 1) == 3.  */
+ 
+   int i;
+   for (i = 0; i < S_LEN + 1; ++i)
+     {
+       int expected = i <= S_LEN ? i : S_LEN;
+       if (strnlen (S, i) != expected)
+ 	return 1;
+     }
+   return 0;
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_strnlen_working=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ ac_cv_func_strnlen_working=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_strnlen_working" >&5
+ $as_echo "$ac_cv_func_strnlen_working" >&6; }
+ test $ac_cv_func_strnlen_working = no &&
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
+ 
+ 
+   if test $ac_cv_func_strnlen_working = no; then
+     # This is necessary because automake-1.6.1 doesn't understand
+     # that the above use of AC_FUNC_STRNLEN means we may have to use
+     # lib/strnlen.c.
+     #AC_LIBOBJ(strnlen)
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define strnlen rpl_strnlen
+ _ACEOF
+ 
+     :
+   fi
+ 
+ 
+ 
+   GNULIB_STRNLEN=1
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_func_lstat = yes; then
+     HAVE_LSTAT=1
+   else
+     HAVE_LSTAT=0
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+      if test $gl_cv_have_include_next = yes; then
+        gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+      else
+        { $as_echo "$as_me:$LINENO: checking absolute name of <sys/stat.h>" >&5
+ $as_echo_n "checking absolute name of <sys/stat.h>... " >&6; }
+ if test "${gl_cv_next_sys_stat_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+ 	  if test $ac_cv_header_sys_stat_h = yes; then
+ 	    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/stat.h>
+ 
+ _ACEOF
+ 	    	    	    	    gl_cv_next_sys_stat_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ 	       sed -n '\#/sys/stat.h#{
+ 		 s#.*"\(.*/sys/stat.h\)".*#\1#
+ 		 s#^/[^/]#//&#
+ 		 p
+ 		 q
+ 	       }'`'"'
+ 	  else
+ 	    gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+ 	  fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_next_sys_stat_h" >&5
+ $as_echo "$gl_cv_next_sys_stat_h" >&6; }
+      fi
+      NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h
+ 
+ 
+ 
+   SYS_STAT_H='sys/stat.h'
+ 
+ 
+       { $as_echo "$as_me:$LINENO: checking for nlink_t" >&5
+ $as_echo_n "checking for nlink_t... " >&6; }
+ if test "${ac_cv_type_nlink_t+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_type_nlink_t=no
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+      #include <sys/stat.h>
+ 
+ int
+ main ()
+ {
+ if (sizeof (nlink_t))
+        return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+      #include <sys/stat.h>
+ 
+ int
+ main ()
+ {
+ if (sizeof ((nlink_t)))
+ 	  return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   :
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_type_nlink_t=yes
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_type_nlink_t" >&5
+ $as_echo "$ac_cv_type_nlink_t" >&6; }
+ if test "x$ac_cv_type_nlink_t" = x""yes; then
+   :
+ else
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define nlink_t int
+ _ACEOF
+ 
+ fi
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+ $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+ if test -z "$MKDIR_P"; then
+   if test "${ac_cv_path_mkdir+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_prog in mkdir gmkdir; do
+ 	 for ac_exec_ext in '' $ac_executable_extensions; do
+ 	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ 	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 	     'mkdir (GNU coreutils) '* | \
+ 	     'mkdir (coreutils) '* | \
+ 	     'mkdir (fileutils) '4.1*)
+ 	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ 	       break 3;;
+ 	   esac
+ 	 done
+        done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ 
+   if test "${ac_cv_path_mkdir+set}" = set; then
+     MKDIR_P="$ac_cv_path_mkdir -p"
+   else
+     # As a last resort, use the slow shell script.  Don't cache a
+     # value for MKDIR_P within a source directory, because that will
+     # break other packages using the cache if that directory is
+     # removed, or if the value is a relative name.
+     test -d ./--version && rmdir ./--version
+     MKDIR_P="$ac_install_sh -d"
+   fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+ $as_echo "$MKDIR_P" >&6; }
+ 
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+ $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+ if test -z "$MKDIR_P"; then
+   if test "${ac_cv_path_mkdir+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_prog in mkdir gmkdir; do
+ 	 for ac_exec_ext in '' $ac_executable_extensions; do
+ 	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ 	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 	     'mkdir (GNU coreutils) '* | \
+ 	     'mkdir (coreutils) '* | \
+ 	     'mkdir (fileutils) '4.1*)
+ 	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ 	       break 3;;
+ 	   esac
+ 	 done
+        done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ 
+   if test "${ac_cv_path_mkdir+set}" = set; then
+     MKDIR_P="$ac_cv_path_mkdir -p"
+   else
+     # As a last resort, use the slow shell script.  Don't cache a
+     # value for MKDIR_P within a source directory, because that will
+     # break other packages using the cache if that directory is
+     # removed, or if the value is a relative name.
+     test -d ./--version && rmdir ./--version
+     MKDIR_P="$ac_install_sh -d"
+   fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+ $as_echo "$MKDIR_P" >&6; }
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS tempname.$ac_objext"
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+      if test $gl_cv_have_include_next = yes; then
+        gl_cv_next_unistd_h='<'unistd.h'>'
+      else
+        { $as_echo "$as_me:$LINENO: checking absolute name of <unistd.h>" >&5
+ $as_echo_n "checking absolute name of <unistd.h>... " >&6; }
+ if test "${gl_cv_next_unistd_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+ 	  if test $ac_cv_header_unistd_h = yes; then
+ 	    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <unistd.h>
+ 
+ _ACEOF
+ 	    	    	    	    gl_cv_next_unistd_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ 	       sed -n '\#/unistd.h#{
+ 		 s#.*"\(.*/unistd.h\)".*#\1#
+ 		 s#^/[^/]#//&#
+ 		 p
+ 		 q
+ 	       }'`'"'
+ 	  else
+ 	    gl_cv_next_unistd_h='<'unistd.h'>'
+ 	  fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_next_unistd_h" >&5
+ $as_echo "$gl_cv_next_unistd_h" >&6; }
+      fi
+      NEXT_UNISTD_H=$gl_cv_next_unistd_h
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_header_unistd_h = yes; then
+     HAVE_UNISTD_H=1
+   else
+     HAVE_UNISTD_H=0
+   fi
+ 
+ 
+ 
+ 
+ 
+ for ac_func in unsetenv
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ done
+ 
+   if test $ac_cv_func_unsetenv = no; then
+     HAVE_UNSETENV=0
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+   else
+     { $as_echo "$as_me:$LINENO: checking for unsetenv() return type" >&5
+ $as_echo_n "checking for unsetenv() return type... " >&6; }
+ if test "${gt_cv_func_unsetenv_ret+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdlib.h>
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ #if defined(__STDC__) || defined(__cplusplus)
+ int unsetenv (const char *name);
+ #else
+ int unsetenv();
+ #endif
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gt_cv_func_unsetenv_ret='int'
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gt_cv_func_unsetenv_ret='void'
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gt_cv_func_unsetenv_ret" >&5
+ $as_echo "$gt_cv_func_unsetenv_ret" >&6; }
+     if test $gt_cv_func_unsetenv_ret = 'void'; then
+       VOID_UNSETENV=1
+     fi
+   fi
+ 
+ 
+ 
+   GNULIB_UNSETENV=1
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking whether <wchar.h> is standalone" >&5
+ $as_echo_n "checking whether <wchar.h> is standalone... " >&6; }
+ if test "${gl_cv_header_wchar_h_standalone+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ #include <wchar.h>
+ wchar_t w;
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gl_cv_header_wchar_h_standalone=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_header_wchar_h_standalone=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_header_wchar_h_standalone" >&5
+ $as_echo "$gl_cv_header_wchar_h_standalone" >&6; }
+   if test $gl_cv_header_wchar_h_standalone != yes; then
+     WCHAR_H=wchar.h
+   fi
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_header_wchar_h = yes; then
+     HAVE_WCHAR_H=1
+   else
+     HAVE_WCHAR_H=0
+   fi
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+      if test $gl_cv_have_include_next = yes; then
+        gl_cv_next_wchar_h='<'wchar.h'>'
+      else
+        { $as_echo "$as_me:$LINENO: checking absolute name of <wchar.h>" >&5
+ $as_echo_n "checking absolute name of <wchar.h>... " >&6; }
+ if test "${gl_cv_next_wchar_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+ 	  if test $ac_cv_header_wchar_h = yes; then
+ 	    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <wchar.h>
+ 
+ _ACEOF
+ 	    	    	    	    gl_cv_next_wchar_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ 	       sed -n '\#/wchar.h#{
+ 		 s#.*"\(.*/wchar.h\)".*#\1#
+ 		 s#^/[^/]#//&#
+ 		 p
+ 		 q
+ 	       }'`'"'
+ 	  else
+ 	    gl_cv_next_wchar_h='<'wchar.h'>'
+ 	  fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_next_wchar_h" >&5
+ $as_echo "$gl_cv_next_wchar_h" >&6; }
+      fi
+      NEXT_WCHAR_H=$gl_cv_next_wchar_h
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+   if test $ac_cv_func_iswcntrl = yes; then
+     HAVE_ISWCNTRL=1
+   else
+     HAVE_ISWCNTRL=0
+   fi
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   if test $gt_cv_c_wint_t = yes; then
+     HAVE_WINT_T=1
+   else
+     HAVE_WINT_T=0
+   fi
+ 
+ 
+   WCTYPE_H=wctype.h
+   if test $ac_cv_header_wctype_h = yes; then
+     if test $ac_cv_func_iswcntrl = yes; then
+                   { $as_echo "$as_me:$LINENO: checking whether iswcntrl works" >&5
+ $as_echo_n "checking whether iswcntrl works... " >&6; }
+ if test "${gl_cv_func_iswcntrl_works+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+           if test "$cross_compiling" = yes; then
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdlib.h>
+                           #if __GNU_LIBRARY__ == 1
+                           Linux libc5 i18n is broken.
+                           #endif
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   gl_cv_func_iswcntrl_works=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gl_cv_func_iswcntrl_works=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ 
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stddef.h>
+                       #include <stdio.h>
+                       #include <time.h>
+                       #include <wchar.h>
+                       #include <wctype.h>
+                       int main () { return iswprint ('x') == 0; }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   gl_cv_func_iswcntrl_works=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ gl_cv_func_iswcntrl_works=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_iswcntrl_works" >&5
+ $as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+       if test $gl_cv_func_iswcntrl_works = yes; then
+         WCTYPE_H=
+       fi
+     fi
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+      if test $gl_cv_have_include_next = yes; then
+        gl_cv_next_wctype_h='<'wctype.h'>'
+      else
+        { $as_echo "$as_me:$LINENO: checking absolute name of <wctype.h>" >&5
+ $as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+ if test "${gl_cv_next_wctype_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+ 	  if test $ac_cv_header_wctype_h = yes; then
+ 	    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <wctype.h>
+ 
+ _ACEOF
+ 	    	    	    	    gl_cv_next_wctype_h='"'`(eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ 	       sed -n '\#/wctype.h#{
+ 		 s#.*"\(.*/wctype.h\)".*#\1#
+ 		 s#^/[^/]#//&#
+ 		 p
+ 		 q
+ 	       }'`'"'
+ 	  else
+ 	    gl_cv_next_wctype_h='<'wctype.h'>'
+ 	  fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_next_wctype_h" >&5
+ $as_echo "$gl_cv_next_wctype_h" >&6; }
+      fi
+      NEXT_WCTYPE_H=$gl_cv_next_wctype_h
+ 
+ 
+ 
+     HAVE_WCTYPE_H=1
+   else
+     HAVE_WCTYPE_H=0
+   fi
+ 
+ 
+ 
+   if test "$gl_cv_func_iswcntrl_works" = no; then
+     REPLACE_ISWCNTRL=1
+   else
+     REPLACE_ISWCNTRL=0
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking whether wcwidth is declared" >&5
+ $as_echo_n "checking whether wcwidth is declared... " >&6; }
+ if test "${ac_cv_have_decl_wcwidth+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ /* AIX 3.2.5 declares wcwidth in <string.h>. */
+ #include <string.h>
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+    before <wchar.h>.  */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ 
+ 
+ int
+ main ()
+ {
+ #ifndef wcwidth
+   (void) wcwidth;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_wcwidth=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_wcwidth=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_wcwidth" >&5
+ $as_echo "$ac_cv_have_decl_wcwidth" >&6; }
+ if test "x$ac_cv_have_decl_wcwidth" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_WCWIDTH 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_WCWIDTH 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+   if test $ac_cv_have_decl_wcwidth != yes; then
+     HAVE_DECL_WCWIDTH=0
+   fi
+ 
+   if test $ac_cv_func_wcwidth = no; then
+     REPLACE_WCWIDTH=1
+   else
+                 { $as_echo "$as_me:$LINENO: checking whether wcwidth works reasonably in UTF-8 locales" >&5
+ $as_echo_n "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; }
+ if test "${gl_cv_func_wcwidth_works+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+         if test "$cross_compiling" = yes; then
+   gl_cv_func_wcwidth_works="guessing no"
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ #include <locale.h>
+ /* AIX 3.2.5 declares wcwidth in <string.h>. */
+ #include <string.h>
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+    before <wchar.h>.  */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ #if !HAVE_DECL_WCWIDTH
+ extern
+ # ifdef __cplusplus
+ "C"
+ # endif
+ int wcwidth (int);
+ #endif
+ int main ()
+ {
+   if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
+     if (wcwidth (0x0301) > 0 || wcwidth (0x200B) > 0)
+       return 1;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   gl_cv_func_wcwidth_works=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ gl_cv_func_wcwidth_works=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gl_cv_func_wcwidth_works" >&5
+ $as_echo "$gl_cv_func_wcwidth_works" >&6; }
+     case "$gl_cv_func_wcwidth_works" in
+       *yes) ;;
+       *no) REPLACE_WCWIDTH=1 ;;
+     esac
+   fi
+   if test $REPLACE_WCWIDTH = 1; then
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
+ 
+   fi
+ 
+   if test $REPLACE_WCWIDTH = 1 || test $HAVE_DECL_WCWIDTH = 0; then
+     WCHAR_H=wchar.h
+   fi
+ 
+ 
+ 
+   GNULIB_WCWIDTH=1
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_LIBOBJS="$gl_LIBOBJS xmalloc.$ac_objext"
+ 
+ 
+ 
+ 
+   :
+ 
+ 
+   :
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gltests_libdeps=
+   gltests_ltlibdeps=
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   gl_source_base='tests'
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+   LIBGNU_LIBDEPS="$gl_libdeps"
+ 
+   LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
+ 
+ 
+ 
+ 
+ # Since we make a helper library.
+ if test -n "$ac_tool_prefix"; then
+   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_RANLIB+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$RANLIB"; then
+   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ RANLIB=$ac_cv_prog_RANLIB
+ if test -n "$RANLIB"; then
+   { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+ $as_echo "$RANLIB" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ fi
+ if test -z "$ac_cv_prog_RANLIB"; then
+   ac_ct_RANLIB=$RANLIB
+   # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$ac_ct_RANLIB"; then
+   ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_ac_ct_RANLIB="ranlib"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+ if test -n "$ac_ct_RANLIB"; then
+   { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+ $as_echo "$ac_ct_RANLIB" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   if test "x$ac_ct_RANLIB" = x; then
+     RANLIB=":"
+   else
+     case $cross_compiling:$ac_tool_warned in
+ yes:)
+ { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+ $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ ac_tool_warned=yes ;;
+ esac
+     RANLIB=$ac_ct_RANLIB
+   fi
+ else
+   RANLIB="$ac_cv_prog_RANLIB"
+ fi
+ 
+ 
+ HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"}
+ 
+ 
+ # Find a good install program.  We prefer a C program (faster),
+ # so one script is as good as another.  But avoid the broken or
+ # incompatible versions:
+ # SysV /etc/install, /usr/sbin/install
+ # SunOS /usr/etc/install
+ # IRIX /sbin/install
+ # AIX /bin/install
+ # AmigaOS /C/install, which installs bootblocks on floppy discs
+ # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # OS/2's system install, which has a completely different semantic
+ # ./install, which can be erroneously created by make from ./install.sh.
+ # Reject install programs that cannot install multiple files.
+ { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+ $as_echo_n "checking for a BSD-compatible install... " >&6; }
+ if test -z "$INSTALL"; then
+ if test "${ac_cv_path_install+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   # Account for people who put trailing slashes in PATH elements.
+ case $as_dir/ in
+   ./ | .// | /cC/* | \
+   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+   ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+   /usr/ucb/* ) ;;
+   *)
+     # OSF1 and SCO ODT 3.0 have their own names for install.
+     # Don't use installbsd from OSF since it installs stuff as root
+     # by default.
+     for ac_prog in ginstall scoinst install; do
+       for ac_exec_ext in '' $ac_executable_extensions; do
+ 	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ 	  if test $ac_prog = install &&
+ 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ 	    # AIX install.  It has an incompatible calling convention.
+ 	    :
+ 	  elif test $ac_prog = install &&
+ 	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ 	    # program-specific install script used by HP pwplus--don't use.
+ 	    :
+ 	  else
+ 	    rm -rf conftest.one conftest.two conftest.dir
+ 	    echo one > conftest.one
+ 	    echo two > conftest.two
+ 	    mkdir conftest.dir
+ 	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ 	      test -s conftest.one && test -s conftest.two &&
+ 	      test -s conftest.dir/conftest.one &&
+ 	      test -s conftest.dir/conftest.two
+ 	    then
+ 	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ 	      break 3
+ 	    fi
+ 	  fi
+ 	fi
+       done
+     done
+     ;;
+ esac
+ 
+ done
+ IFS=$as_save_IFS
+ 
+ rm -rf conftest.one conftest.two conftest.dir
+ 
+ fi
+   if test "${ac_cv_path_install+set}" = set; then
+     INSTALL=$ac_cv_path_install
+   else
+     # As a last resort, use the slow shell script.  Don't cache a
+     # value for INSTALL within a source directory, because that will
+     # break other packages using the cache if that directory is
+     # removed, or if the value is a relative name.
+     INSTALL=$ac_install_sh
+   fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+ $as_echo "$INSTALL" >&6; }
+ 
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+ # It thinks the first close brace ends the variable substitution.
+ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+ 
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ 
+ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+ 
+ { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+ $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+ set x ${MAKE-make}
+ ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+ if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.make <<\_ACEOF
+ SHELL = /bin/sh
+ all:
+ 	@echo '@@@%%%=$(MAKE)=@@@%%%'
+ _ACEOF
+ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+ case `${MAKE-make} -f conftest.make 2>/dev/null` in
+   *@@@%%%=?*=@@@%%%*)
+     eval ac_cv_prog_make_${ac_make}_set=yes;;
+   *)
+     eval ac_cv_prog_make_${ac_make}_set=no;;
+ esac
+ rm -f conftest.make
+ fi
+ if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+   { $as_echo "$as_me:$LINENO: result: yes" >&5
+ $as_echo "yes" >&6; }
+   SET_MAKE=
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+   SET_MAKE="MAKE=${MAKE-make}"
+ fi
+ 
+ 
+ # Needed on sysV68 for sigblock, sigsetmask.  But check for it in libc first.
+ { $as_echo "$as_me:$LINENO: checking for sigblock" >&5
+ $as_echo_n "checking for sigblock... " >&6; }
+ if test "${ac_cv_func_sigblock+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define sigblock to an innocuous variant, in case <limits.h> declares sigblock.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define sigblock innocuous_sigblock
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char sigblock (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef sigblock
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char sigblock ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_sigblock || defined __stub___sigblock
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return sigblock ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_func_sigblock=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_func_sigblock=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_sigblock" >&5
+ $as_echo "$ac_cv_func_sigblock" >&6; }
+ if test "x$ac_cv_func_sigblock" = x""yes; then
+   :
+ else
+ 
+ { $as_echo "$as_me:$LINENO: checking for sigblock in -lbsd" >&5
+ $as_echo_n "checking for sigblock in -lbsd... " >&6; }
+ if test "${ac_cv_lib_bsd_sigblock+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lbsd  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char sigblock ();
+ int
+ main ()
+ {
+ return sigblock ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_lib_bsd_sigblock=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_lib_bsd_sigblock=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_sigblock" >&5
+ $as_echo "$ac_cv_lib_bsd_sigblock" >&6; }
+ if test "x$ac_cv_lib_bsd_sigblock" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_LIBBSD 1
+ _ACEOF
+ 
+   LIBS="-lbsd $LIBS"
+ 
+ fi
+ 
+ fi
+ 
+ 
+ # Checks for header files.
+ { $as_echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
+ $as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
+ if test "${ac_cv_header_stat_broken+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ 
+ #if defined S_ISBLK && defined S_IFDIR
+ extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1];
+ #endif
+ 
+ #if defined S_ISBLK && defined S_IFCHR
+ extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1];
+ #endif
+ 
+ #if defined S_ISLNK && defined S_IFREG
+ extern char c3[S_ISLNK (S_IFREG) ? -1 : 1];
+ #endif
+ 
+ #if defined S_ISSOCK && defined S_IFREG
+ extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
+ #endif
+ 
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_header_stat_broken=no
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_header_stat_broken=yes
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
+ $as_echo "$ac_cv_header_stat_broken" >&6; }
+ if test $ac_cv_header_stat_broken = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define STAT_MACROS_BROKEN 1
+ _ACEOF
+ 
+ fi
+ 
+ { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+ $as_echo_n "checking for ANSI C header files... " >&6; }
+ if test "${ac_cv_header_stdc+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <string.h>
+ #include <float.h>
+ 
+ int
+ main ()
+ {
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_header_stdc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_header_stdc=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ 
+ if test $ac_cv_header_stdc = yes; then
+   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <string.h>
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "memchr" >/dev/null 2>&1; then
+   :
+ else
+   ac_cv_header_stdc=no
+ fi
+ rm -f conftest*
+ 
+ fi
+ 
+ if test $ac_cv_header_stdc = yes; then
+   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdlib.h>
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "free" >/dev/null 2>&1; then
+   :
+ else
+   ac_cv_header_stdc=no
+ fi
+ rm -f conftest*
+ 
+ fi
+ 
+ if test $ac_cv_header_stdc = yes; then
+   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+   if test "$cross_compiling" = yes; then
+   :
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <ctype.h>
+ #include <stdlib.h>
+ #if ((' ' & 0x0FF) == 0x020)
+ # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+ # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+ #else
+ # define ISLOWER(c) \
+ 		   (('a' <= (c) && (c) <= 'i') \
+ 		     || ('j' <= (c) && (c) <= 'r') \
+ 		     || ('s' <= (c) && (c) <= 'z'))
+ # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+ #endif
+ 
+ #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+ int
+ main ()
+ {
+   int i;
+   for (i = 0; i < 256; i++)
+     if (XOR (islower (i), ISLOWER (i))
+ 	|| toupper (i) != TOUPPER (i))
+       return 2;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   :
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ ac_cv_header_stdc=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+ $as_echo "$ac_cv_header_stdc" >&6; }
+ if test $ac_cv_header_stdc = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define STDC_HEADERS 1
+ _ACEOF
+ 
+ fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_header in fcntl.h io.h limits.h pwd.h string.h strings.h \
+   termcap.h termio.h termios.h unistd.h \
+   sys/fcntl.h sys/file.h sys/stream.h sys/time.h sys/ttold.h sys/wait.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ 
+ # sys/ptem.h requires sys/stream.h for mblk_t on Solaris.
+ 
+ for ac_header in sys/ptem.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #if HAVE_SYS_STREAM_H
+ #include <sys/stream.h>
+ #endif
+ 
+ 
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   eval "$as_ac_Header=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_Header=no"
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking POSIX termios" >&5
+ $as_echo_n "checking POSIX termios... " >&6; }
+ if test "${ac_cv_sys_posix_termios+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+ #include <unistd.h>
+ #include <termios.h>
+ 
+ int
+ main ()
+ {
+ /* SunOS 4.0.3 has termios.h but not the library calls.  */
+    tcgetattr(0, 0);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_sys_posix_termios=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_sys_posix_termios=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_posix_termios" >&5
+ $as_echo "$ac_cv_sys_posix_termios" >&6; }
+ 
+ { $as_echo "$as_me:$LINENO: checking whether termios.h defines TIOCGWINSZ" >&5
+ $as_echo_n "checking whether termios.h defines TIOCGWINSZ... " >&6; }
+ if test "${ac_cv_sys_tiocgwinsz_in_termios_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+ #include <termios.h>
+ #ifdef TIOCGWINSZ
+   yes
+ #endif
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "yes" >/dev/null 2>&1; then
+   ac_cv_sys_tiocgwinsz_in_termios_h=yes
+ else
+   ac_cv_sys_tiocgwinsz_in_termios_h=no
+ fi
+ rm -f conftest*
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5
+ $as_echo "$ac_cv_sys_tiocgwinsz_in_termios_h" >&6; }
+ 
+ if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then
+   { $as_echo "$as_me:$LINENO: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5
+ $as_echo_n "checking whether sys/ioctl.h defines TIOCGWINSZ... " >&6; }
+ if test "${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+ #ifdef TIOCGWINSZ
+   yes
+ #endif
+ 
+ _ACEOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+   $EGREP "yes" >/dev/null 2>&1; then
+   ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes
+ else
+   ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no
+ fi
+ rm -f conftest*
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5
+ $as_echo "$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6; }
+ 
+   if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define GWINSZ_IN_SYS_IOCTL 1
+ _ACEOF
+ 
+   fi
+ fi
+ 
+ 
+ # Checks for typedefs, structures, and compiler characteristics.
+ { $as_echo "$as_me:$LINENO: checking for off_t" >&5
+ $as_echo_n "checking for off_t... " >&6; }
+ if test "${ac_cv_type_off_t+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_cv_type_off_t=no
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ if (sizeof (off_t))
+        return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ if (sizeof ((off_t)))
+ 	  return 0;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   :
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_type_off_t=yes
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
+ $as_echo "$ac_cv_type_off_t" >&6; }
+ if test "x$ac_cv_type_off_t" = x""yes; then
+   :
+ else
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define off_t long int
+ _ACEOF
+ 
+ fi
+ 
+ { $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5
+ $as_echo_n "checking return type of signal handlers... " >&6; }
+ if test "${ac_cv_type_signal+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+ #include <signal.h>
+ 
+ int
+ main ()
+ {
+ return *(signal (0, 0)) (0) == 1;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_type_signal=int
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_type_signal=void
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5
+ $as_echo "$ac_cv_type_signal" >&6; }
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define RETSIGTYPE $ac_cv_type_signal
+ _ACEOF
+ 
+ 
+ { $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+ $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+ if test "${ac_cv_c_const+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ /* FIXME: Include the comments suggested by Paul. */
+ #ifndef __cplusplus
+   /* Ultrix mips cc rejects this.  */
+   typedef int charset[2];
+   const charset cs;
+   /* SunOS 4.1.1 cc rejects this.  */
+   char const *const *pcpcc;
+   char **ppc;
+   /* NEC SVR4.0.2 mips cc rejects this.  */
+   struct point {int x, y;};
+   static struct point const zero = {0,0};
+   /* AIX XL C 1.02.0.0 rejects this.
+      It does not let you subtract one const X* pointer from another in
+      an arm of an if-expression whose if-part is not a constant
+      expression */
+   const char *g = "string";
+   pcpcc = &g + (g ? g-g : 0);
+   /* HPUX 7.0 cc rejects these. */
+   ++pcpcc;
+   ppc = (char**) pcpcc;
+   pcpcc = (char const *const *) ppc;
+   { /* SCO 3.2v4 cc rejects this.  */
+     char *t;
+     char const *s = 0 ? (char *) 0 : (char const *) 0;
+ 
+     *t++ = 0;
+     if (s) return 0;
+   }
+   { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+     int x[] = {25, 17};
+     const int *foo = &x[0];
+     ++foo;
+   }
+   { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+     typedef const int *iptr;
+     iptr p = 0;
+     ++p;
+   }
+   { /* AIX XL C 1.02.0.0 rejects this saying
+        "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+     struct s { int j; const int *ap[3]; };
+     struct s *b; b->j = 5;
+   }
+   { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+     const int foo = 10;
+     if (!foo) return 0;
+   }
+   return !cs[0] && !zero.x;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_c_const=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_c_const=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+ $as_echo "$ac_cv_c_const" >&6; }
+ if test $ac_cv_c_const = no; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define const /**/
+ _ACEOF
+ 
+ fi
+ 
+ { $as_echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
+ $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
+ if test "${ac_cv_struct_tm+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <sys/types.h>
+ #include <time.h>
+ 
+ int
+ main ()
+ {
+ struct tm tm;
+ 				     int *p = &tm.tm_sec;
+ 				     return !p;
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_struct_tm=time.h
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_struct_tm=sys/time.h
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
+ $as_echo "$ac_cv_struct_tm" >&6; }
+ if test $ac_cv_struct_tm = sys/time.h; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define TM_IN_SYS_TIME 1
+ _ACEOF
+ 
+ fi
+ 
+ 
+ # Checks for function declarations.
+ { $as_echo "$as_me:$LINENO: checking whether memchr is declared" >&5
+ $as_echo_n "checking whether memchr is declared... " >&6; }
+ if test "${ac_cv_have_decl_memchr+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef memchr
+   (void) memchr;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_memchr=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_memchr=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_memchr" >&5
+ $as_echo "$ac_cv_have_decl_memchr" >&6; }
+ if test "x$ac_cv_have_decl_memchr" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_MEMCHR 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_MEMCHR 0
+ _ACEOF
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: checking whether strcoll is declared" >&5
+ $as_echo_n "checking whether strcoll is declared... " >&6; }
+ if test "${ac_cv_have_decl_strcoll+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef strcoll
+   (void) strcoll;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_strcoll=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_strcoll=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strcoll" >&5
+ $as_echo "$ac_cv_have_decl_strcoll" >&6; }
+ if test "x$ac_cv_have_decl_strcoll" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRCOLL 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRCOLL 0
+ _ACEOF
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: checking whether strerror is declared" >&5
+ $as_echo_n "checking whether strerror is declared... " >&6; }
+ if test "${ac_cv_have_decl_strerror+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ #ifndef strerror
+   (void) strerror;
+ #endif
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_cv_have_decl_strerror=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_have_decl_strerror=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror" >&5
+ $as_echo "$ac_cv_have_decl_strerror" >&6; }
+ if test "x$ac_cv_have_decl_strerror" = x""yes; then
+ 
+ cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRERROR 1
+ _ACEOF
+ 
+ 
+ else
+   cat >>confdefs.h <<_ACEOF
+ #define HAVE_DECL_STRERROR 0
+ _ACEOF
+ 
+ 
+ fi
+ 
+ 
+ 
+ # Checks for library functions.
+ { $as_echo "$as_me:$LINENO: checking for working strcoll" >&5
+ $as_echo_n "checking for working strcoll... " >&6; }
+ if test "${ac_cv_func_strcoll_works+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "$cross_compiling" = yes; then
+   ac_cv_func_strcoll_works=no
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ int
+ main ()
+ {
+ return (strcoll ("abc", "def") >= 0 ||
+ 	 strcoll ("ABC", "DEF") >= 0 ||
+ 	 strcoll ("123", "456") >= 0)
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   ac_cv_func_strcoll_works=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ ac_cv_func_strcoll_works=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func_strcoll_works" >&5
+ $as_echo "$ac_cv_func_strcoll_works" >&6; }
+ if test $ac_cv_func_strcoll_works = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_STRCOLL 1
+ _ACEOF
+ 
+ fi
+ 
+ 
+ for ac_func in vprintf
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ { $as_echo "$as_me:$LINENO: checking for _doprnt" >&5
+ $as_echo_n "checking for _doprnt... " >&6; }
+ if test "${ac_cv_func__doprnt+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define _doprnt to an innocuous variant, in case <limits.h> declares _doprnt.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define _doprnt innocuous__doprnt
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char _doprnt (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef _doprnt
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char _doprnt ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub__doprnt || defined __stub____doprnt
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return _doprnt ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_func__doprnt=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_cv_func__doprnt=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5
+ $as_echo "$ac_cv_func__doprnt" >&6; }
+ if test "x$ac_cv_func__doprnt" = x""yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_DOPRNT 1
+ _ACEOF
+ 
+ fi
+ 
+ fi
+ done
+ 
+ 
+ # in theory only pre-sysvr3 systems needed this and it's not likely
+ # that anyone compiling new texinfo still has such a thing? we'll see.
+ # AC_FUNC_SETVBUF_REVERSED
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ for ac_func in bzero getcwd memset setlocale setvbuf sigaction sigprocmask \
+                sigsetmask strchr
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ done
+ 
+ 
+ 
+ 
+ 
+ for ac_func in memcpy memmove strdup strerror
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+ $as_echo_n "checking for $ac_func... " >&6; }
+ if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ /* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+ #define $ac_func innocuous_$ac_func
+ 
+ /* System header to define __stub macros and hopefully few prototypes,
+     which can conflict with char $ac_func (); below.
+     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+     <limits.h> exists even on freestanding compilers.  */
+ 
+ #ifdef __STDC__
+ # include <limits.h>
+ #else
+ # include <assert.h>
+ #endif
+ 
+ #undef $ac_func
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char $ac_func ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+ #if defined __stub_$ac_func || defined __stub___$ac_func
+ choke me
+ #endif
+ 
+ int
+ main ()
+ {
+ return $ac_func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_var=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_var=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_var'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ else
+   case " $LIBOBJS " in
+   *" $ac_func.$ac_objext "* ) ;;
+   *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext"
+  ;;
+ esac
+ 
+ fi
+ done
+ 
+ 
+ 
+ # We want to recognize djgpp to avoid the useless warning about no
+ # term library.
+ # Make sure we can run config.sub.
+ $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+   { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+ $as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ { $as_echo "$as_me:$LINENO: checking build system type" >&5
+ $as_echo_n "checking build system type... " >&6; }
+ if test "${ac_cv_build+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_build_alias=$build_alias
+ test "x$ac_build_alias" = x &&
+   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+ test "x$ac_build_alias" = x &&
+   { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+ $as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+    { (exit 1); exit 1; }; }
+ ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+   { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+ $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+ $as_echo "$ac_cv_build" >&6; }
+ case $ac_cv_build in
+ *-*-*) ;;
+ *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+ $as_echo "$as_me: error: invalid value of canonical build" >&2;}
+    { (exit 1); exit 1; }; };;
+ esac
+ build=$ac_cv_build
+ ac_save_IFS=$IFS; IFS='-'
+ set x $ac_cv_build
+ shift
+ build_cpu=$1
+ build_vendor=$2
+ shift; shift
+ # Remember, the first character of IFS is used to create $*,
+ # except with old shells:
+ build_os=$*
+ IFS=$ac_save_IFS
+ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+ 
+ 
+ 
+ # We need to run some of our own binaries, most notably makedoc, but as
+ # long as we have this process, we also use our own makeinfo and
+ # install-info.
+ #
+ # This means that if we are cross compiling, we have to configure the
+ # package twice: once with the native compiler (this is done in a
+ # subdirectory $native_tools), and once with the cross compiler.
+ # The former is invoked automatically here, with --host=$build.
+ # $native_tools is also added to SUBDIRS in the main Makefile.am,
+ # so that make compiles the native tools first.
+ #
+ if test "$cross_compiling" = no; then
+   native_tools=
+ else
+   native_tools=tools
+   test -d "$native_tools" || mkdir "$native_tools"
+   confdir=`(cd "$srcdir";pwd)`
+   # Make sure the secondary configure won't fail with
+   # "error: source directory already configured".
+   rm -f config.status
+   { $as_echo "$as_me:$LINENO: Doing configure of native tools (${build})." >&5
+ $as_echo "$as_me: Doing configure of native tools (${build})." >&6;}
+   cd "$native_tools" || exit 1
+   # Run secondary configure in alternate environment or
+   # it gets the wrong CC etc.
+   # env -i gives this build host configure a clean environment;
+   # consequently, we have to re-initialize $PATH.
+   env -i CC="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \
+       PATH="$PATH" \
+       tools_only=1 \
+     ${confdir}/configure --build=${build} --host=${build} \
+                          --disable-rpath --disable-nls
+   cd .. || exit 1
+   { $as_echo "$as_me:$LINENO: Continuing with main configure (${host})." >&5
+ $as_echo "$as_me: Continuing with main configure (${host})." >&6;}
+ fi
+ 
+  if test "x$tools_only" = x1; then
+   TOOLS_ONLY_TRUE=
+   TOOLS_ONLY_FALSE='#'
+ else
+   TOOLS_ONLY_TRUE='#'
+   TOOLS_ONLY_FALSE=
+ fi
+ 
+ 
+ # Some GNU/Linux systems (e.g., SuSE 4.3, 1996) don't have curses, but
+ # rather ncurses.  So we check for it.
+ TERMLIBS=
+ # Check for termlib before termcap because Solaris termcap needs libucb.
+ TERMLIB_VARIANTS="ncurses curses termlib termcap terminfo"
+ for termlib in ${TERMLIB_VARIANTS}; do
+   as_ac_Lib=`$as_echo "ac_cv_lib_${termlib}''_tgetent" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for tgetent in -l${termlib}" >&5
+ $as_echo_n "checking for tgetent in -l${termlib}... " >&6; }
+ if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+ LIBS="-l${termlib}  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+ char tgetent ();
+ int
+ main ()
+ {
+ return tgetent ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$as_ac_Lib=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$as_ac_Lib=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Lib'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ as_val=`eval 'as_val=${'$as_ac_Lib'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   TERMLIBS="${TERMLIBS} -l${termlib}"; break
+ fi
+ 
+ done
+ # don't bother warning on djgpp, it doesn't have a term library, it
+ # ports each termcap-needing program separately according to its needs.
+ if test -z "$TERMLIBS" && echo "$build" | grep -v djgpp >/dev/null; then
+   { $as_echo "$as_me:$LINENO: WARNING: probably need a terminal library, one of: ${TERMLIB_VARIANTS}" >&5
+ $as_echo "$as_me: WARNING: probably need a terminal library, one of: ${TERMLIB_VARIANTS}" >&2;}
+ fi
+ 
+ # Checks for variables.
+ # HP-UX 9 (at least) needs -lncurses which defines termcap variables PC etc.
+ { $as_echo "$as_me:$LINENO: checking for library with termcap variables" >&5
+ $as_echo_n "checking for library with termcap variables... " >&6; }
+ if test "${ac_cv_var_ospeed+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   oldLIBS=$LIBS
+ for trylib in $termlib ${TERMLIB_VARIANTS}; do
+    if test "x$trylib" != "x$termlib"; then
+      LIBS="$oldLIBS -l$termlib -l$trylib"
+    else
+      LIBS="$oldLIBS -l$termlib"
+    fi
+    cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ int
+ main ()
+ {
+ #ifdef HAVE_NCURSES_TERMCAP_H
+ #include <ncurses/termcap.h>
+ #else
+ #ifdef HAVE_TERMCAP_H
+ #include <termcap.h>
+ #else
+ #undef PC
+ char *BC;
+ char **UP;
+ char PC;
+ short ospeed;
+ #endif
+ #endif
+ /* Make sure all variables actually exist.  AIX 4.3 has ospeed but no BC.
+    --Andreas Ley <andy@rz.uni-karlsruhe.de> 24 Aug 2000.  */
+ BC++;
+ UP++;
+ PC++;
+ return ospeed != 0;
+ 
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   ac_cv_var_ospeed=$trylib; break
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ done
+ LIBS=$oldLIBS
+ 
+ fi
+ 
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_var_ospeed" >&5
+ $as_echo "$ac_cv_var_ospeed" >&6; }
+ if test -n "$ac_cv_var_ospeed" \
+    && test "x$termlib" != "x$ac_cv_var_ospeed"; then
+   TERMLIBS="${TERMLIBS} -l${ac_cv_var_ospeed}"
+ fi
+ #
+ 
+ # Do not use <ncurses/termcap.h> unless we're linking with ncurses.
+ # Must come after the termlib tests.
+ if test "x$termlib" = xncurses; then
+   # Use AC_CHECK_HEADERS so the HAVE_*_H symbol gets defined.
+ 
+ for ac_header in ncurses/termcap.h
+ do
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ else
+   # Is the header compilable?
+ { $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+ $as_echo_n "checking $ac_header usability... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ $ac_includes_default
+ #include <$ac_header>
+ _ACEOF
+ rm -f conftest.$ac_objext
+ if { (ac_try="$ac_compile"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_compile") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest.$ac_objext; then
+   ac_header_compiler=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	ac_header_compiler=no
+ fi
+ 
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+ $as_echo "$ac_header_compiler" >&6; }
+ 
+ # Is the header present?
+ { $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+ $as_echo_n "checking $ac_header presence... " >&6; }
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <$ac_header>
+ _ACEOF
+ if { (ac_try="$ac_cpp conftest.$ac_ext"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } >/dev/null && {
+ 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        }; then
+   ac_header_preproc=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+   ac_header_preproc=no
+ fi
+ 
+ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
+ 
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+ $as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+     ac_header_preproc=yes
+     ;;
+   no:yes:* )
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+ $as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+ $as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+ $as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+     { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+ $as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+     ( cat <<\_ASBOX
+ ## ---------------------------------- ##
+ ## Report this to bug-texinfo@gnu.org ##
+ ## ---------------------------------- ##
+ _ASBOX
+      ) | sed "s/^/$as_me: WARNING:     /" >&2
+     ;;
+ esac
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+ $as_echo_n "checking for $ac_header... " >&6; }
+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   eval "$as_ac_Header=\$ac_header_preproc"
+ fi
+ ac_res=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+ fi
+ as_val=`eval 'as_val=${'$as_ac_Header'}
+ 		 $as_echo "$as_val"'`
+    if test "x$as_val" = x""yes; then
+   cat >>confdefs.h <<_ACEOF
+ #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+ _ACEOF
+ 
+ fi
+ 
+ done
+ 
+ fi
+ 
+ # For teTeX and TeX Live.
+ { $as_echo "$as_me:$LINENO: checking host system type" >&5
+ $as_echo_n "checking host system type... " >&6; }
+ if test "${ac_cv_host+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test "x$host_alias" = x; then
+   ac_cv_host=$ac_cv_build
+ else
+   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+     { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+ $as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+ $as_echo "$ac_cv_host" >&6; }
+ case $ac_cv_host in
+ *-*-*) ;;
+ *) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+ $as_echo "$as_me: error: invalid value of canonical host" >&2;}
+    { (exit 1); exit 1; }; };;
+ esac
+ host=$ac_cv_host
+ ac_save_IFS=$IFS; IFS='-'
+ set x $ac_cv_host
+ shift
+ host_cpu=$1
+ host_vendor=$2
+ shift; shift
+ # Remember, the first character of IFS is used to create $*,
+ # except with old shells:
+ host_os=$*
+ IFS=$ac_save_IFS
+ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+ 
+ 
+ # Check whether --enable-multiplatform was given.
+ if test "${enable_multiplatform+set}" = set; then
+   enableval=$enable_multiplatform;
+ fi
+ # if enable_multiplatform is set in the environment, use that.
+ if test "x$enable_multiplatform" = xyes; then
+   test "x$bindir" = 'x${exec_prefix}/bin' && bindir="$bindir/$host"
+   test "x$libdir" = 'x${exec_prefix}/lib' && libdir="$libdir/$host"
+ fi
+ 
+ # Taken from the example in
+ # http://www.gnu.org/software/automake/manual/html_node/Conditionals.html.
+ # Check whether --enable-install-warnings was given.
+ if test "${enable_install_warnings+set}" = set; then
+   enableval=$enable_install_warnings; case "${enableval}" in
+      yes) install_warnings=true ;;
+       no) install_warnings=false ;;
+        *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-install-warnings" >&5
+ $as_echo "$as_me: error: bad value ${enableval} for --enable-install-warnings" >&2;}
+    { (exit 1); exit 1; }; } ;;
+    esac
+ else
+   install_warnings=true
+ fi
+ 
+  if test x"$install_warnings" = xtrue || test x"$install_warnings" = xyes; then
+   INSTALL_WARNINGS_TRUE=
+   INSTALL_WARNINGS_FALSE='#'
+ else
+   INSTALL_WARNINGS_TRUE='#'
+   INSTALL_WARNINGS_FALSE=
+ fi
+ 
+ 
+ # i18n support.  To update to a new version of gettext, run:
+ # gettextize -f -c
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+ $as_echo_n "checking whether NLS is requested... " >&6; }
+     # Check whether --enable-nls was given.
+ if test "${enable_nls+set}" = set; then
+   enableval=$enable_nls; USE_NLS=$enableval
+ else
+   USE_NLS=yes
+ fi
+ 
+   { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
+ $as_echo "$USE_NLS" >&6; }
+ 
+ 
+ 
+ 
+       GETTEXT_MACRO_VERSION=0.17
+ 
+ 
+ 
+ 
+ # Prepare PATH_SEPARATOR.
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+   echo "#! /bin/sh" >conf$$.sh
+   echo  "exit 0"   >>conf$$.sh
+   chmod +x conf$$.sh
+   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+     PATH_SEPARATOR=';'
+   else
+     PATH_SEPARATOR=:
+   fi
+   rm -f conf$$.sh
+ fi
+ 
+ # Find out how to test for executable files. Don't use a zero-byte file,
+ # as systems may use methods other than mode bits to determine executability.
+ cat >conf$$.file <<_ASEOF
+ #! /bin/sh
+ exit 0
+ _ASEOF
+ chmod +x conf$$.file
+ if test -x conf$$.file >/dev/null 2>&1; then
+   ac_executable_p="test -x"
+ else
+   ac_executable_p="test -f"
+ fi
+ rm -f conf$$.file
+ 
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+ set dummy msgfmt; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_path_MSGFMT+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   case "$MSGFMT" in
+   [\\/]* | ?:[\\/]*)
+     ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+     ;;
+   *)
+     ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+     for ac_dir in $PATH; do
+       IFS="$ac_save_IFS"
+       test -z "$ac_dir" && ac_dir=.
+       for ac_exec_ext in '' $ac_executable_extensions; do
+         if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+           echo "$as_me: trying $ac_dir/$ac_word..." >&5
+           if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
+      (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+             ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
+             break 2
+           fi
+         fi
+       done
+     done
+     IFS="$ac_save_IFS"
+   test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+     ;;
+ esac
+ fi
+ MSGFMT="$ac_cv_path_MSGFMT"
+ if test "$MSGFMT" != ":"; then
+   { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
+ $as_echo "$MSGFMT" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+   # Extract the first word of "gmsgfmt", so it can be a program name with args.
+ set dummy gmsgfmt; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_path_GMSGFMT+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   case $GMSGFMT in
+   [\\/]* | ?:[\\/]*)
+   ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+   ;;
+   *)
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+   test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+   ;;
+ esac
+ fi
+ GMSGFMT=$ac_cv_path_GMSGFMT
+ if test -n "$GMSGFMT"; then
+   { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+ $as_echo "$GMSGFMT" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ 
+     case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+     '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+     *) MSGFMT_015=$MSGFMT ;;
+   esac
+ 
+   case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+     '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+     *) GMSGFMT_015=$GMSGFMT ;;
+   esac
+ 
+ 
+ 
+ # Prepare PATH_SEPARATOR.
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+   echo "#! /bin/sh" >conf$$.sh
+   echo  "exit 0"   >>conf$$.sh
+   chmod +x conf$$.sh
+   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+     PATH_SEPARATOR=';'
+   else
+     PATH_SEPARATOR=:
+   fi
+   rm -f conf$$.sh
+ fi
+ 
+ # Find out how to test for executable files. Don't use a zero-byte file,
+ # as systems may use methods other than mode bits to determine executability.
+ cat >conf$$.file <<_ASEOF
+ #! /bin/sh
+ exit 0
+ _ASEOF
+ chmod +x conf$$.file
+ if test -x conf$$.file >/dev/null 2>&1; then
+   ac_executable_p="test -x"
+ else
+   ac_executable_p="test -f"
+ fi
+ rm -f conf$$.file
+ 
+ # Extract the first word of "xgettext", so it can be a program name with args.
+ set dummy xgettext; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_path_XGETTEXT+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   case "$XGETTEXT" in
+   [\\/]* | ?:[\\/]*)
+     ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+     ;;
+   *)
+     ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+     for ac_dir in $PATH; do
+       IFS="$ac_save_IFS"
+       test -z "$ac_dir" && ac_dir=.
+       for ac_exec_ext in '' $ac_executable_extensions; do
+         if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+           echo "$as_me: trying $ac_dir/$ac_word..." >&5
+           if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
+      (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+             ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
+             break 2
+           fi
+         fi
+       done
+     done
+     IFS="$ac_save_IFS"
+   test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+     ;;
+ esac
+ fi
+ XGETTEXT="$ac_cv_path_XGETTEXT"
+ if test "$XGETTEXT" != ":"; then
+   { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+ $as_echo "$XGETTEXT" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+     rm -f messages.po
+ 
+     case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+     '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+     *) XGETTEXT_015=$XGETTEXT ;;
+   esac
+ 
+ 
+ 
+ # Prepare PATH_SEPARATOR.
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+   echo "#! /bin/sh" >conf$$.sh
+   echo  "exit 0"   >>conf$$.sh
+   chmod +x conf$$.sh
+   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+     PATH_SEPARATOR=';'
+   else
+     PATH_SEPARATOR=:
+   fi
+   rm -f conf$$.sh
+ fi
+ 
+ # Find out how to test for executable files. Don't use a zero-byte file,
+ # as systems may use methods other than mode bits to determine executability.
+ cat >conf$$.file <<_ASEOF
+ #! /bin/sh
+ exit 0
+ _ASEOF
+ chmod +x conf$$.file
+ if test -x conf$$.file >/dev/null 2>&1; then
+   ac_executable_p="test -x"
+ else
+   ac_executable_p="test -f"
+ fi
+ rm -f conf$$.file
+ 
+ # Extract the first word of "msgmerge", so it can be a program name with args.
+ set dummy msgmerge; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_path_MSGMERGE+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   case "$MSGMERGE" in
+   [\\/]* | ?:[\\/]*)
+     ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+     ;;
+   *)
+     ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+     for ac_dir in $PATH; do
+       IFS="$ac_save_IFS"
+       test -z "$ac_dir" && ac_dir=.
+       for ac_exec_ext in '' $ac_executable_extensions; do
+         if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+           echo "$as_me: trying $ac_dir/$ac_word..." >&5
+           if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
+             ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
+             break 2
+           fi
+         fi
+       done
+     done
+     IFS="$ac_save_IFS"
+   test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+     ;;
+ esac
+ fi
+ MSGMERGE="$ac_cv_path_MSGMERGE"
+ if test "$MSGMERGE" != ":"; then
+   { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5
+ $as_echo "$MSGMERGE" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+         test -n "$localedir" || localedir='${datadir}/locale'
+ 
+ 
+     test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+ 
+ 
+   ac_config_commands="$ac_config_commands po-directories"
+ 
+ 
+ 
+       if test "X$prefix" = "XNONE"; then
+     acl_final_prefix="$ac_default_prefix"
+   else
+     acl_final_prefix="$prefix"
+   fi
+   if test "X$exec_prefix" = "XNONE"; then
+     acl_final_exec_prefix='${prefix}'
+   else
+     acl_final_exec_prefix="$exec_prefix"
+   fi
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+   prefix="$acl_save_prefix"
+ 
+ 
+ # Check whether --with-gnu-ld was given.
+ if test "${with_gnu_ld+set}" = set; then
+   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+ else
+   with_gnu_ld=no
+ fi
+ 
+ # Prepare PATH_SEPARATOR.
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+   echo "#! /bin/sh" >conf$$.sh
+   echo  "exit 0"   >>conf$$.sh
+   chmod +x conf$$.sh
+   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+     PATH_SEPARATOR=';'
+   else
+     PATH_SEPARATOR=:
+   fi
+   rm -f conf$$.sh
+ fi
+ ac_prog=ld
+ if test "$GCC" = yes; then
+   # Check if gcc -print-prog-name=ld gives a path.
+   { $as_echo "$as_me:$LINENO: checking for ld used by GCC" >&5
+ $as_echo_n "checking for ld used by GCC... " >&6; }
+   case $host in
+   *-*-mingw*)
+     # gcc leaves a trailing carriage return which upsets mingw
+     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+   *)
+     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+   esac
+   case $ac_prog in
+     # Accept absolute paths.
+     [\\/]* | [A-Za-z]:[\\/]*)
+       re_direlt='/[^/][^/]*/\.\./'
+       # Canonicalize the path of ld
+       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ 	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+       done
+       test -z "$LD" && LD="$ac_prog"
+       ;;
+   "")
+     # If it fails, then pretend we aren't using GCC.
+     ac_prog=ld
+     ;;
+   *)
+     # If it is relative, then search for the first ld in PATH.
+     with_gnu_ld=unknown
+     ;;
+   esac
+ elif test "$with_gnu_ld" = yes; then
+   { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+ $as_echo_n "checking for GNU ld... " >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+ $as_echo_n "checking for non-GNU ld... " >&6; }
+ fi
+ if test "${acl_cv_path_LD+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -z "$LD"; then
+   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+   for ac_dir in $PATH; do
+     test -z "$ac_dir" && ac_dir=.
+     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+       acl_cv_path_LD="$ac_dir/$ac_prog"
+       # Check to see if the program is GNU ld.  I'd rather use --version,
+       # but apparently some GNU ld's only accept -v.
+       # Break only if it was the GNU/non-GNU ld that we prefer.
+       case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+       *GNU* | *'with BFD'*)
+ 	test "$with_gnu_ld" != no && break ;;
+       *)
+ 	test "$with_gnu_ld" != yes && break ;;
+       esac
+     fi
+   done
+   IFS="$ac_save_ifs"
+ else
+   acl_cv_path_LD="$LD" # Let the user override the test with a path.
+ fi
+ fi
+ 
+ LD="$acl_cv_path_LD"
+ if test -n "$LD"; then
+   { $as_echo "$as_me:$LINENO: result: $LD" >&5
+ $as_echo "$LD" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+ $as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+    { (exit 1); exit 1; }; }
+ { $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+ $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+ if test "${acl_cv_prog_gnu_ld+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+ case `$LD -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+   acl_cv_prog_gnu_ld=yes ;;
+ *)
+   acl_cv_prog_gnu_ld=no ;;
+ esac
+ fi
+ { $as_echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5
+ $as_echo "$acl_cv_prog_gnu_ld" >&6; }
+ with_gnu_ld=$acl_cv_prog_gnu_ld
+ 
+ 
+ 
+ 
+                                                 { $as_echo "$as_me:$LINENO: checking for shared library run path origin" >&5
+ $as_echo_n "checking for shared library run path origin... " >&6; }
+ if test "${acl_cv_rpath+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+     . ./conftest.sh
+     rm -f ./conftest.sh
+     acl_cv_rpath=done
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
+ $as_echo "$acl_cv_rpath" >&6; }
+   wl="$acl_cv_wl"
+   acl_libext="$acl_cv_libext"
+   acl_shlibext="$acl_cv_shlibext"
+   acl_libname_spec="$acl_cv_libname_spec"
+   acl_library_names_spec="$acl_cv_library_names_spec"
+   acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+   acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+   acl_hardcode_direct="$acl_cv_hardcode_direct"
+   acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+     # Check whether --enable-rpath was given.
+ if test "${enable_rpath+set}" = set; then
+   enableval=$enable_rpath; :
+ else
+   enable_rpath=yes
+ fi
+ 
+ 
+ 
+                   acl_libdirstem=lib
+   searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+   if test -n "$searchpath"; then
+     acl_save_IFS="${IFS= 	}"; IFS=":"
+     for searchdir in $searchpath; do
+       if test -d "$searchdir"; then
+         case "$searchdir" in
+           */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+           *) searchdir=`cd "$searchdir" && pwd`
+              case "$searchdir" in
+                */lib64 ) acl_libdirstem=lib64 ;;
+              esac ;;
+         esac
+       fi
+     done
+     IFS="$acl_save_IFS"
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+     use_additional=yes
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+ 
+     eval additional_includedir=\"$includedir\"
+     eval additional_libdir=\"$libdir\"
+ 
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+ 
+ # Check whether --with-libiconv-prefix was given.
+ if test "${with_libiconv_prefix+set}" = set; then
+   withval=$with_libiconv_prefix;
+     if test "X$withval" = "Xno"; then
+       use_additional=no
+     else
+       if test "X$withval" = "X"; then
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+ 
+           eval additional_includedir=\"$includedir\"
+           eval additional_libdir=\"$libdir\"
+ 
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+       else
+         additional_includedir="$withval/include"
+         additional_libdir="$withval/$acl_libdirstem"
+       fi
+     fi
+ 
+ fi
+ 
+       LIBICONV=
+   LTLIBICONV=
+   INCICONV=
+   LIBICONV_PREFIX=
+   rpathdirs=
+   ltrpathdirs=
+   names_already_handled=
+   names_next_round='iconv '
+   while test -n "$names_next_round"; do
+     names_this_round="$names_next_round"
+     names_next_round=
+     for name in $names_this_round; do
+       already_handled=
+       for n in $names_already_handled; do
+         if test "$n" = "$name"; then
+           already_handled=yes
+           break
+         fi
+       done
+       if test -z "$already_handled"; then
+         names_already_handled="$names_already_handled $name"
+                         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+         eval value=\"\$HAVE_LIB$uppername\"
+         if test -n "$value"; then
+           if test "$value" = yes; then
+             eval value=\"\$LIB$uppername\"
+             test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+             eval value=\"\$LTLIB$uppername\"
+             test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+           else
+                                     :
+           fi
+         else
+                               found_dir=
+           found_la=
+           found_so=
+           found_a=
+           eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
+           if test -n "$acl_shlibext"; then
+             shrext=".$acl_shlibext"             # typically: shrext=.so
+           else
+             shrext=
+           fi
+           if test $use_additional = yes; then
+             dir="$additional_libdir"
+                                     if test -n "$acl_shlibext"; then
+               if test -f "$dir/$libname$shrext"; then
+                 found_dir="$dir"
+                 found_so="$dir/$libname$shrext"
+               else
+                 if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                   ver=`(cd "$dir" && \
+                         for f in "$libname$shrext".*; do echo "$f"; done \
+                         | sed -e "s,^$libname$shrext\\\\.,," \
+                         | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                         | sed 1q ) 2>/dev/null`
+                   if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                     found_dir="$dir"
+                     found_so="$dir/$libname$shrext.$ver"
+                   fi
+                 else
+                   eval library_names=\"$acl_library_names_spec\"
+                   for f in $library_names; do
+                     if test -f "$dir/$f"; then
+                       found_dir="$dir"
+                       found_so="$dir/$f"
+                       break
+                     fi
+                   done
+                 fi
+               fi
+             fi
+                         if test "X$found_dir" = "X"; then
+               if test -f "$dir/$libname.$acl_libext"; then
+                 found_dir="$dir"
+                 found_a="$dir/$libname.$acl_libext"
+               fi
+             fi
+             if test "X$found_dir" != "X"; then
+               if test -f "$dir/$libname.la"; then
+                 found_la="$dir/$libname.la"
+               fi
+             fi
+           fi
+           if test "X$found_dir" = "X"; then
+             for x in $LDFLAGS $LTLIBICONV; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+               case "$x" in
+                 -L*)
+                   dir=`echo "X$x" | sed -e 's/^X-L//'`
+                                     if test -n "$acl_shlibext"; then
+                     if test -f "$dir/$libname$shrext"; then
+                       found_dir="$dir"
+                       found_so="$dir/$libname$shrext"
+                     else
+                       if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                         ver=`(cd "$dir" && \
+                               for f in "$libname$shrext".*; do echo "$f"; done \
+                               | sed -e "s,^$libname$shrext\\\\.,," \
+                               | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                               | sed 1q ) 2>/dev/null`
+                         if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                           found_dir="$dir"
+                           found_so="$dir/$libname$shrext.$ver"
+                         fi
+                       else
+                         eval library_names=\"$acl_library_names_spec\"
+                         for f in $library_names; do
+                           if test -f "$dir/$f"; then
+                             found_dir="$dir"
+                             found_so="$dir/$f"
+                             break
+                           fi
+                         done
+                       fi
+                     fi
+                   fi
+                                     if test "X$found_dir" = "X"; then
+                     if test -f "$dir/$libname.$acl_libext"; then
+                       found_dir="$dir"
+                       found_a="$dir/$libname.$acl_libext"
+                     fi
+                   fi
+                   if test "X$found_dir" != "X"; then
+                     if test -f "$dir/$libname.la"; then
+                       found_la="$dir/$libname.la"
+                     fi
+                   fi
+                   ;;
+               esac
+               if test "X$found_dir" != "X"; then
+                 break
+               fi
+             done
+           fi
+           if test "X$found_dir" != "X"; then
+                         LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+             if test "X$found_so" != "X"; then
+                                                         if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+                                 LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+               else
+                                                                                 haveit=
+                 for x in $ltrpathdirs; do
+                   if test "X$x" = "X$found_dir"; then
+                     haveit=yes
+                     break
+                   fi
+                 done
+                 if test -z "$haveit"; then
+                   ltrpathdirs="$ltrpathdirs $found_dir"
+                 fi
+                                 if test "$acl_hardcode_direct" = yes; then
+                                                       LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                 else
+                   if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                                                             LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                                                             haveit=
+                     for x in $rpathdirs; do
+                       if test "X$x" = "X$found_dir"; then
+                         haveit=yes
+                         break
+                       fi
+                     done
+                     if test -z "$haveit"; then
+                       rpathdirs="$rpathdirs $found_dir"
+                     fi
+                   else
+                                                                                 haveit=
+                     for x in $LDFLAGS $LIBICONV; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+                       if test "X$x" = "X-L$found_dir"; then
+                         haveit=yes
+                         break
+                       fi
+                     done
+                     if test -z "$haveit"; then
+                       LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+                     fi
+                     if test "$acl_hardcode_minus_L" != no; then
+                                                                                         LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                     else
+                                                                                                                                                                                 LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+                     fi
+                   fi
+                 fi
+               fi
+             else
+               if test "X$found_a" != "X"; then
+                                 LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+               else
+                                                 LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+               fi
+             fi
+                         additional_includedir=
+             case "$found_dir" in
+               */$acl_libdirstem | */$acl_libdirstem/)
+                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+                 LIBICONV_PREFIX="$basedir"
+                 additional_includedir="$basedir/include"
+                 ;;
+             esac
+             if test "X$additional_includedir" != "X"; then
+                                                                                                                 if test "X$additional_includedir" != "X/usr/include"; then
+                 haveit=
+                 if test "X$additional_includedir" = "X/usr/local/include"; then
+                   if test -n "$GCC"; then
+                     case $host_os in
+                       linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                     esac
+                   fi
+                 fi
+                 if test -z "$haveit"; then
+                   for x in $CPPFLAGS $INCICONV; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+                     if test "X$x" = "X-I$additional_includedir"; then
+                       haveit=yes
+                       break
+                     fi
+                   done
+                   if test -z "$haveit"; then
+                     if test -d "$additional_includedir"; then
+                                             INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+                     fi
+                   fi
+                 fi
+               fi
+             fi
+                         if test -n "$found_la"; then
+                                                         save_libdir="$libdir"
+               case "$found_la" in
+                 */* | *\\*) . "$found_la" ;;
+                 *) . "./$found_la" ;;
+               esac
+               libdir="$save_libdir"
+                             for dep in $dependency_libs; do
+                 case "$dep" in
+                   -L*)
+                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                 if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+                       haveit=
+                       if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+                         if test -n "$GCC"; then
+                           case $host_os in
+                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                           esac
+                         fi
+                       fi
+                       if test -z "$haveit"; then
+                         haveit=
+                         for x in $LDFLAGS $LIBICONV; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+                           if test "X$x" = "X-L$additional_libdir"; then
+                             haveit=yes
+                             break
+                           fi
+                         done
+                         if test -z "$haveit"; then
+                           if test -d "$additional_libdir"; then
+                                                         LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+                           fi
+                         fi
+                         haveit=
+                         for x in $LDFLAGS $LTLIBICONV; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+                           if test "X$x" = "X-L$additional_libdir"; then
+                             haveit=yes
+                             break
+                           fi
+                         done
+                         if test -z "$haveit"; then
+                           if test -d "$additional_libdir"; then
+                                                         LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+                           fi
+                         fi
+                       fi
+                     fi
+                     ;;
+                   -R*)
+                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                     if test "$enable_rpath" != no; then
+                                                                   haveit=
+                       for x in $rpathdirs; do
+                         if test "X$x" = "X$dir"; then
+                           haveit=yes
+                           break
+                         fi
+                       done
+                       if test -z "$haveit"; then
+                         rpathdirs="$rpathdirs $dir"
+                       fi
+                                                                   haveit=
+                       for x in $ltrpathdirs; do
+                         if test "X$x" = "X$dir"; then
+                           haveit=yes
+                           break
+                         fi
+                       done
+                       if test -z "$haveit"; then
+                         ltrpathdirs="$ltrpathdirs $dir"
+                       fi
+                     fi
+                     ;;
+                   -l*)
+                                         names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                     ;;
+                   *.la)
+                                                                                 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                     ;;
+                   *)
+                                         LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+                     LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+                     ;;
+                 esac
+               done
+             fi
+           else
+                                                             LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+             LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+           fi
+         fi
+       fi
+     done
+   done
+   if test "X$rpathdirs" != "X"; then
+     if test -n "$acl_hardcode_libdir_separator"; then
+                         alldirs=
+       for found_dir in $rpathdirs; do
+         alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+       done
+             acl_save_libdir="$libdir"
+       libdir="$alldirs"
+       eval flag=\"$acl_hardcode_libdir_flag_spec\"
+       libdir="$acl_save_libdir"
+       LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+     else
+             for found_dir in $rpathdirs; do
+         acl_save_libdir="$libdir"
+         libdir="$found_dir"
+         eval flag=\"$acl_hardcode_libdir_flag_spec\"
+         libdir="$acl_save_libdir"
+         LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+       done
+     fi
+   fi
+   if test "X$ltrpathdirs" != "X"; then
+             for found_dir in $ltrpathdirs; do
+       LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+     done
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+     { $as_echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5
+ $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
+ if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   gt_save_LIBS="$LIBS"
+      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+      cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <CoreFoundation/CFPreferences.h>
+ int
+ main ()
+ {
+ CFPreferencesCopyAppValue(NULL, NULL)
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   gt_cv_func_CFPreferencesCopyAppValue=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gt_cv_func_CFPreferencesCopyAppValue=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+      LIBS="$gt_save_LIBS"
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+ $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+   if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_CFPREFERENCESCOPYAPPVALUE 1
+ _ACEOF
+ 
+   fi
+     { $as_echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5
+ $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
+ if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   gt_save_LIBS="$LIBS"
+      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+      cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <CoreFoundation/CFLocale.h>
+ int
+ main ()
+ {
+ CFLocaleCopyCurrent();
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   gt_cv_func_CFLocaleCopyCurrent=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	gt_cv_func_CFLocaleCopyCurrent=no
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+      LIBS="$gt_save_LIBS"
+ fi
+ { $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+ $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+   if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_CFLOCALECOPYCURRENT 1
+ _ACEOF
+ 
+   fi
+   INTL_MACOSX_LIBS=
+   if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+     INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+   LIBINTL=
+   LTLIBINTL=
+   POSUB=
+ 
+     case " $gt_needs " in
+     *" need-formatstring-macros "*) gt_api_version=3 ;;
+     *" need-ngettext "*) gt_api_version=2 ;;
+     *) gt_api_version=1 ;;
+   esac
+   gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+   gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+ 
+     if test "$USE_NLS" = "yes"; then
+     gt_use_preinstalled_gnugettext=no
+ 
+ 
+         if test $gt_api_version -ge 3; then
+           gt_revision_test_code='
+ #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+ #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+ #endif
+ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+ '
+         else
+           gt_revision_test_code=
+         fi
+         if test $gt_api_version -ge 2; then
+           gt_expression_test_code=' + * ngettext ("", "", 0)'
+         else
+           gt_expression_test_code=
+         fi
+ 
+         { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5
+ $as_echo_n "checking for GNU gettext in libc... " >&6; }
+ if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <libintl.h>
+ $gt_revision_test_code
+ extern int _nl_msg_cat_cntr;
+ extern int *_nl_domain_bindings;
+ int
+ main ()
+ {
+ bindtextdomain ("", "");
+ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$gt_func_gnugettext_libc=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$gt_func_gnugettext_libc=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+ fi
+ ac_res=`eval 'as_val=${'$gt_func_gnugettext_libc'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+ 
+         if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+ 
+ 
+ 
+ 
+ 
+           am_save_CPPFLAGS="$CPPFLAGS"
+ 
+   for element in $INCICONV; do
+     haveit=
+     for x in $CPPFLAGS; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+       if test "X$x" = "X$element"; then
+         haveit=yes
+         break
+       fi
+     done
+     if test -z "$haveit"; then
+       CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+     fi
+   done
+ 
+ 
+   { $as_echo "$as_me:$LINENO: checking for iconv" >&5
+ $as_echo_n "checking for iconv... " >&6; }
+ if test "${am_cv_func_iconv+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+     am_cv_func_iconv="no, consider installing GNU libiconv"
+     am_cv_lib_iconv=no
+     cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdlib.h>
+ #include <iconv.h>
+ int
+ main ()
+ {
+ iconv_t cd = iconv_open("","");
+        iconv(cd,NULL,NULL,NULL,NULL);
+        iconv_close(cd);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   am_cv_func_iconv=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+     if test "$am_cv_func_iconv" != yes; then
+       am_save_LIBS="$LIBS"
+       LIBS="$LIBS $LIBICONV"
+       cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <stdlib.h>
+ #include <iconv.h>
+ int
+ main ()
+ {
+ iconv_t cd = iconv_open("","");
+          iconv(cd,NULL,NULL,NULL,NULL);
+          iconv_close(cd);
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   am_cv_lib_iconv=yes
+         am_cv_func_iconv=yes
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+       LIBS="$am_save_LIBS"
+     fi
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
+ $as_echo "$am_cv_func_iconv" >&6; }
+   if test "$am_cv_func_iconv" = yes; then
+     { $as_echo "$as_me:$LINENO: checking for working iconv" >&5
+ $as_echo_n "checking for working iconv... " >&6; }
+ if test "${am_cv_func_iconv_works+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+ 
+             am_save_LIBS="$LIBS"
+       if test $am_cv_lib_iconv = yes; then
+         LIBS="$LIBS $LIBICONV"
+       fi
+       if test "$cross_compiling" = yes; then
+   case "$host_os" in
+            aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+            *)            am_cv_func_iconv_works="guessing yes" ;;
+          esac
+ else
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ 
+ #include <iconv.h>
+ #include <string.h>
+ int main ()
+ {
+   /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+      returns.  */
+   {
+     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+     if (cd_utf8_to_88591 != (iconv_t)(-1))
+       {
+         static const char input[] = "\342\202\254"; /* EURO SIGN */
+         char buf[10];
+         const char *inptr = input;
+         size_t inbytesleft = strlen (input);
+         char *outptr = buf;
+         size_t outbytesleft = sizeof (buf);
+         size_t res = iconv (cd_utf8_to_88591,
+                             (char **) &inptr, &inbytesleft,
+                             &outptr, &outbytesleft);
+         if (res == 0)
+           return 1;
+       }
+   }
+ #if 0 /* This bug could be worked around by the caller.  */
+   /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
+   {
+     iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+     if (cd_88591_to_utf8 != (iconv_t)(-1))
+       {
+         static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+         char buf[50];
+         const char *inptr = input;
+         size_t inbytesleft = strlen (input);
+         char *outptr = buf;
+         size_t outbytesleft = sizeof (buf);
+         size_t res = iconv (cd_88591_to_utf8,
+                             (char **) &inptr, &inbytesleft,
+                             &outptr, &outbytesleft);
+         if ((int)res > 0)
+           return 1;
+       }
+   }
+ #endif
+   /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+      provided.  */
+   if (/* Try standardized names.  */
+       iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+       /* Try IRIX, OSF/1 names.  */
+       && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+       /* Try AIX names.  */
+       && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+       /* Try HP-UX names.  */
+       && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+     return 1;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+   { (case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_try") 2>&5
+   ac_status=$?
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }; }; then
+   am_cv_func_iconv_works=yes
+ else
+   $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ ( exit $ac_status )
+ am_cv_func_iconv_works=no
+ fi
+ rm -rf conftest.dSYM
+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ fi
+ 
+ 
+       LIBS="$am_save_LIBS"
+ 
+ fi
+ { $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv_works" >&5
+ $as_echo "$am_cv_func_iconv_works" >&6; }
+     case "$am_cv_func_iconv_works" in
+       *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+       *)   am_func_iconv=yes ;;
+     esac
+   else
+     am_func_iconv=no am_cv_lib_iconv=no
+   fi
+   if test "$am_func_iconv" = yes; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_ICONV 1
+ _ACEOF
+ 
+   fi
+   if test "$am_cv_lib_iconv" = yes; then
+     { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5
+ $as_echo_n "checking how to link with libiconv... " >&6; }
+     { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5
+ $as_echo "$LIBICONV" >&6; }
+   else
+             CPPFLAGS="$am_save_CPPFLAGS"
+     LIBICONV=
+     LTLIBICONV=
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+     use_additional=yes
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+ 
+     eval additional_includedir=\"$includedir\"
+     eval additional_libdir=\"$libdir\"
+ 
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+ 
+ # Check whether --with-libintl-prefix was given.
+ if test "${with_libintl_prefix+set}" = set; then
+   withval=$with_libintl_prefix;
+     if test "X$withval" = "Xno"; then
+       use_additional=no
+     else
+       if test "X$withval" = "X"; then
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+ 
+           eval additional_includedir=\"$includedir\"
+           eval additional_libdir=\"$libdir\"
+ 
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+       else
+         additional_includedir="$withval/include"
+         additional_libdir="$withval/$acl_libdirstem"
+       fi
+     fi
+ 
+ fi
+ 
+       LIBINTL=
+   LTLIBINTL=
+   INCINTL=
+   LIBINTL_PREFIX=
+   rpathdirs=
+   ltrpathdirs=
+   names_already_handled=
+   names_next_round='intl '
+   while test -n "$names_next_round"; do
+     names_this_round="$names_next_round"
+     names_next_round=
+     for name in $names_this_round; do
+       already_handled=
+       for n in $names_already_handled; do
+         if test "$n" = "$name"; then
+           already_handled=yes
+           break
+         fi
+       done
+       if test -z "$already_handled"; then
+         names_already_handled="$names_already_handled $name"
+                         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+         eval value=\"\$HAVE_LIB$uppername\"
+         if test -n "$value"; then
+           if test "$value" = yes; then
+             eval value=\"\$LIB$uppername\"
+             test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+             eval value=\"\$LTLIB$uppername\"
+             test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+           else
+                                     :
+           fi
+         else
+                               found_dir=
+           found_la=
+           found_so=
+           found_a=
+           eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
+           if test -n "$acl_shlibext"; then
+             shrext=".$acl_shlibext"             # typically: shrext=.so
+           else
+             shrext=
+           fi
+           if test $use_additional = yes; then
+             dir="$additional_libdir"
+                                     if test -n "$acl_shlibext"; then
+               if test -f "$dir/$libname$shrext"; then
+                 found_dir="$dir"
+                 found_so="$dir/$libname$shrext"
+               else
+                 if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                   ver=`(cd "$dir" && \
+                         for f in "$libname$shrext".*; do echo "$f"; done \
+                         | sed -e "s,^$libname$shrext\\\\.,," \
+                         | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                         | sed 1q ) 2>/dev/null`
+                   if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                     found_dir="$dir"
+                     found_so="$dir/$libname$shrext.$ver"
+                   fi
+                 else
+                   eval library_names=\"$acl_library_names_spec\"
+                   for f in $library_names; do
+                     if test -f "$dir/$f"; then
+                       found_dir="$dir"
+                       found_so="$dir/$f"
+                       break
+                     fi
+                   done
+                 fi
+               fi
+             fi
+                         if test "X$found_dir" = "X"; then
+               if test -f "$dir/$libname.$acl_libext"; then
+                 found_dir="$dir"
+                 found_a="$dir/$libname.$acl_libext"
+               fi
+             fi
+             if test "X$found_dir" != "X"; then
+               if test -f "$dir/$libname.la"; then
+                 found_la="$dir/$libname.la"
+               fi
+             fi
+           fi
+           if test "X$found_dir" = "X"; then
+             for x in $LDFLAGS $LTLIBINTL; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+               case "$x" in
+                 -L*)
+                   dir=`echo "X$x" | sed -e 's/^X-L//'`
+                                     if test -n "$acl_shlibext"; then
+                     if test -f "$dir/$libname$shrext"; then
+                       found_dir="$dir"
+                       found_so="$dir/$libname$shrext"
+                     else
+                       if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                         ver=`(cd "$dir" && \
+                               for f in "$libname$shrext".*; do echo "$f"; done \
+                               | sed -e "s,^$libname$shrext\\\\.,," \
+                               | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                               | sed 1q ) 2>/dev/null`
+                         if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                           found_dir="$dir"
+                           found_so="$dir/$libname$shrext.$ver"
+                         fi
+                       else
+                         eval library_names=\"$acl_library_names_spec\"
+                         for f in $library_names; do
+                           if test -f "$dir/$f"; then
+                             found_dir="$dir"
+                             found_so="$dir/$f"
+                             break
+                           fi
+                         done
+                       fi
+                     fi
+                   fi
+                                     if test "X$found_dir" = "X"; then
+                     if test -f "$dir/$libname.$acl_libext"; then
+                       found_dir="$dir"
+                       found_a="$dir/$libname.$acl_libext"
+                     fi
+                   fi
+                   if test "X$found_dir" != "X"; then
+                     if test -f "$dir/$libname.la"; then
+                       found_la="$dir/$libname.la"
+                     fi
+                   fi
+                   ;;
+               esac
+               if test "X$found_dir" != "X"; then
+                 break
+               fi
+             done
+           fi
+           if test "X$found_dir" != "X"; then
+                         LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
+             if test "X$found_so" != "X"; then
+                                                         if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+                                 LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+               else
+                                                                                 haveit=
+                 for x in $ltrpathdirs; do
+                   if test "X$x" = "X$found_dir"; then
+                     haveit=yes
+                     break
+                   fi
+                 done
+                 if test -z "$haveit"; then
+                   ltrpathdirs="$ltrpathdirs $found_dir"
+                 fi
+                                 if test "$acl_hardcode_direct" = yes; then
+                                                       LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                 else
+                   if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                                                             LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                                                             haveit=
+                     for x in $rpathdirs; do
+                       if test "X$x" = "X$found_dir"; then
+                         haveit=yes
+                         break
+                       fi
+                     done
+                     if test -z "$haveit"; then
+                       rpathdirs="$rpathdirs $found_dir"
+                     fi
+                   else
+                                                                                 haveit=
+                     for x in $LDFLAGS $LIBINTL; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+                       if test "X$x" = "X-L$found_dir"; then
+                         haveit=yes
+                         break
+                       fi
+                     done
+                     if test -z "$haveit"; then
+                       LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+                     fi
+                     if test "$acl_hardcode_minus_L" != no; then
+                                                                                         LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                     else
+                                                                                                                                                                                 LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+                     fi
+                   fi
+                 fi
+               fi
+             else
+               if test "X$found_a" != "X"; then
+                                 LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+               else
+                                                 LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+               fi
+             fi
+                         additional_includedir=
+             case "$found_dir" in
+               */$acl_libdirstem | */$acl_libdirstem/)
+                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+                 LIBINTL_PREFIX="$basedir"
+                 additional_includedir="$basedir/include"
+                 ;;
+             esac
+             if test "X$additional_includedir" != "X"; then
+                                                                                                                 if test "X$additional_includedir" != "X/usr/include"; then
+                 haveit=
+                 if test "X$additional_includedir" = "X/usr/local/include"; then
+                   if test -n "$GCC"; then
+                     case $host_os in
+                       linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                     esac
+                   fi
+                 fi
+                 if test -z "$haveit"; then
+                   for x in $CPPFLAGS $INCINTL; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+                     if test "X$x" = "X-I$additional_includedir"; then
+                       haveit=yes
+                       break
+                     fi
+                   done
+                   if test -z "$haveit"; then
+                     if test -d "$additional_includedir"; then
+                                             INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+                     fi
+                   fi
+                 fi
+               fi
+             fi
+                         if test -n "$found_la"; then
+                                                         save_libdir="$libdir"
+               case "$found_la" in
+                 */* | *\\*) . "$found_la" ;;
+                 *) . "./$found_la" ;;
+               esac
+               libdir="$save_libdir"
+                             for dep in $dependency_libs; do
+                 case "$dep" in
+                   -L*)
+                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                 if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+                       haveit=
+                       if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+                         if test -n "$GCC"; then
+                           case $host_os in
+                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                           esac
+                         fi
+                       fi
+                       if test -z "$haveit"; then
+                         haveit=
+                         for x in $LDFLAGS $LIBINTL; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+                           if test "X$x" = "X-L$additional_libdir"; then
+                             haveit=yes
+                             break
+                           fi
+                         done
+                         if test -z "$haveit"; then
+                           if test -d "$additional_libdir"; then
+                                                         LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+                           fi
+                         fi
+                         haveit=
+                         for x in $LDFLAGS $LTLIBINTL; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+                           if test "X$x" = "X-L$additional_libdir"; then
+                             haveit=yes
+                             break
+                           fi
+                         done
+                         if test -z "$haveit"; then
+                           if test -d "$additional_libdir"; then
+                                                         LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+                           fi
+                         fi
+                       fi
+                     fi
+                     ;;
+                   -R*)
+                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                     if test "$enable_rpath" != no; then
+                                                                   haveit=
+                       for x in $rpathdirs; do
+                         if test "X$x" = "X$dir"; then
+                           haveit=yes
+                           break
+                         fi
+                       done
+                       if test -z "$haveit"; then
+                         rpathdirs="$rpathdirs $dir"
+                       fi
+                                                                   haveit=
+                       for x in $ltrpathdirs; do
+                         if test "X$x" = "X$dir"; then
+                           haveit=yes
+                           break
+                         fi
+                       done
+                       if test -z "$haveit"; then
+                         ltrpathdirs="$ltrpathdirs $dir"
+                       fi
+                     fi
+                     ;;
+                   -l*)
+                                         names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                     ;;
+                   *.la)
+                                                                                 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                     ;;
+                   *)
+                                         LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+                     LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+                     ;;
+                 esac
+               done
+             fi
+           else
+                                                             LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+             LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+           fi
+         fi
+       fi
+     done
+   done
+   if test "X$rpathdirs" != "X"; then
+     if test -n "$acl_hardcode_libdir_separator"; then
+                         alldirs=
+       for found_dir in $rpathdirs; do
+         alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+       done
+             acl_save_libdir="$libdir"
+       libdir="$alldirs"
+       eval flag=\"$acl_hardcode_libdir_flag_spec\"
+       libdir="$acl_save_libdir"
+       LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+     else
+             for found_dir in $rpathdirs; do
+         acl_save_libdir="$libdir"
+         libdir="$found_dir"
+         eval flag=\"$acl_hardcode_libdir_flag_spec\"
+         libdir="$acl_save_libdir"
+         LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+       done
+     fi
+   fi
+   if test "X$ltrpathdirs" != "X"; then
+             for found_dir in $ltrpathdirs; do
+       LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+     done
+   fi
+ 
+ 
+ 
+ 
+ 
+ 
+           { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5
+ $as_echo_n "checking for GNU gettext in libintl... " >&6; }
+ if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then
+   $as_echo_n "(cached) " >&6
+ else
+   gt_save_CPPFLAGS="$CPPFLAGS"
+             CPPFLAGS="$CPPFLAGS $INCINTL"
+             gt_save_LIBS="$LIBS"
+             LIBS="$LIBS $LIBINTL"
+                         cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <libintl.h>
+ $gt_revision_test_code
+ extern int _nl_msg_cat_cntr;
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ const char *_nl_expand_alias (const char *);
+ int
+ main ()
+ {
+ bindtextdomain ("", "");
+ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   eval "$gt_func_gnugettext_libintl=yes"
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 	eval "$gt_func_gnugettext_libintl=no"
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+                         if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+               LIBS="$LIBS $LIBICONV"
+               cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <libintl.h>
+ $gt_revision_test_code
+ extern int _nl_msg_cat_cntr;
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ const char *_nl_expand_alias (const char *);
+ int
+ main ()
+ {
+ bindtextdomain ("", "");
+ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+   ;
+   return 0;
+ }
+ _ACEOF
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { (ac_try="$ac_link"
+ case "(($ac_try" in
+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+   *) ac_try_echo=$ac_try;;
+ esac
+ eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+ $as_echo "$ac_try_echo") >&5
+   (eval "$ac_link") 2>conftest.er1
+   ac_status=$?
+   grep -v '^ *+' conftest.er1 >conftest.err
+   rm -f conftest.er1
+   cat conftest.err >&5
+   $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } && {
+ 	 test -z "$ac_c_werror_flag" ||
+ 	 test ! -s conftest.err
+        } && test -s conftest$ac_exeext && {
+ 	 test "$cross_compiling" = yes ||
+ 	 $as_test_x conftest$ac_exeext
+        }; then
+   LIBINTL="$LIBINTL $LIBICONV"
+                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                 eval "$gt_func_gnugettext_libintl=yes"
+ 
+ else
+   $as_echo "$as_me: failed program was:" >&5
+ sed 's/^/| /' conftest.$ac_ext >&5
+ 
+ 
+ fi
+ 
+ rm -rf conftest.dSYM
+ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+       conftest$ac_exeext conftest.$ac_ext
+             fi
+             CPPFLAGS="$gt_save_CPPFLAGS"
+             LIBS="$gt_save_LIBS"
+ fi
+ ac_res=`eval 'as_val=${'$gt_func_gnugettext_libintl'}
+ 		 $as_echo "$as_val"'`
+ 	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+ $as_echo "$ac_res" >&6; }
+         fi
+ 
+                                         if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+            || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+                 && test "$PACKAGE" != gettext-runtime \
+                 && test "$PACKAGE" != gettext-tools; }; then
+           gt_use_preinstalled_gnugettext=yes
+         else
+                     LIBINTL=
+           LTLIBINTL=
+           INCINTL=
+         fi
+ 
+ 
+ 
+     if test -n "$INTL_MACOSX_LIBS"; then
+       if test "$gt_use_preinstalled_gnugettext" = "yes" \
+          || test "$nls_cv_use_gnu_gettext" = "yes"; then
+                 LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+         LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+       fi
+     fi
+ 
+     if test "$gt_use_preinstalled_gnugettext" = "yes" \
+        || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define ENABLE_NLS 1
+ _ACEOF
+ 
+     else
+       USE_NLS=no
+     fi
+   fi
+ 
+   { $as_echo "$as_me:$LINENO: checking whether to use NLS" >&5
+ $as_echo_n "checking whether to use NLS... " >&6; }
+   { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
+ $as_echo "$USE_NLS" >&6; }
+   if test "$USE_NLS" = "yes"; then
+     { $as_echo "$as_me:$LINENO: checking where the gettext function comes from" >&5
+ $as_echo_n "checking where the gettext function comes from... " >&6; }
+     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+       if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+         gt_source="external libintl"
+       else
+         gt_source="libc"
+       fi
+     else
+       gt_source="included intl directory"
+     fi
+     { $as_echo "$as_me:$LINENO: result: $gt_source" >&5
+ $as_echo "$gt_source" >&6; }
+   fi
+ 
+   if test "$USE_NLS" = "yes"; then
+ 
+     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+       if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+         { $as_echo "$as_me:$LINENO: checking how to link with libintl" >&5
+ $as_echo_n "checking how to link with libintl... " >&6; }
+         { $as_echo "$as_me:$LINENO: result: $LIBINTL" >&5
+ $as_echo "$LIBINTL" >&6; }
+ 
+   for element in $INCINTL; do
+     haveit=
+     for x in $CPPFLAGS; do
+ 
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   eval x=\"$x\"
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ 
+       if test "X$x" = "X$element"; then
+         haveit=yes
+         break
+       fi
+     done
+     if test -z "$haveit"; then
+       CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+     fi
+   done
+ 
+       fi
+ 
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_GETTEXT 1
+ _ACEOF
+ 
+ 
+ cat >>confdefs.h <<\_ACEOF
+ #define HAVE_DCGETTEXT 1
+ _ACEOF
+ 
+     fi
+ 
+         POSUB=po
+   fi
+ 
+ 
+ 
+     INTLLIBS="$LIBINTL"
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ # The test suite.
+ ac_config_files="$ac_config_files install-info/tests/defs"
+ 
+ ac_config_files="$ac_config_files util/defs"
+ 
+ for ac_prog in hevea
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_HEVEA+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$HEVEA"; then
+   ac_cv_prog_HEVEA="$HEVEA" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_HEVEA="$ac_prog"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ HEVEA=$ac_cv_prog_HEVEA
+ if test -n "$HEVEA"; then
+   { $as_echo "$as_me:$LINENO: result: $HEVEA" >&5
+ $as_echo "$HEVEA" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+   test -n "$HEVEA" && break
+ done
+ 
+ for ac_prog in tex
+ do
+   # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+ { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_TEX+set}" = set; then
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$TEX"; then
+   ac_cv_prog_TEX="$TEX" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_TEX="$ac_prog"
+     $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+ done
+ IFS=$as_save_IFS
+ 
+ fi
+ fi
+ TEX=$ac_cv_prog_TEX
+ if test -n "$TEX"; then
+   { $as_echo "$as_me:$LINENO: result: $TEX" >&5
+ $as_echo "$TEX" >&6; }
+ else
+   { $as_echo "$as_me:$LINENO: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+   test -n "$TEX" && break
+ done
+ 
+ 
+ ac_config_files="$ac_config_files Makefile doc/Makefile gnulib/lib/Makefile info/Makefile install-info/Makefile install-info/tests/Makefile lib/Makefile makeinfo/Makefile makeinfo/tests/Makefile po/Makefile.in util/Makefile"
+ 
+ cat >confcache <<\_ACEOF
+ # This file is a shell script that caches the results of configure
+ # tests run on this system so they can be shared between configure
+ # scripts and configure runs, see configure's option --config-cache.
+ # It is not useful on other systems.  If it contains results you don't
+ # want to keep, you may remove or edit it.
+ #
+ # config.status only pays attention to the cache file if you give it
+ # the --recheck option to rerun configure.
+ #
+ # `ac_cv_env_foo' variables (set or unset) will be overridden when
+ # loading this file, other *unset* `ac_cv_foo' will be assigned the
+ # following values.
+ 
+ _ACEOF
+ 
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, we kill variables containing newlines.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+ (
+   for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+     eval ac_val=\$$ac_var
+     case $ac_val in #(
+     *${as_nl}*)
+       case $ac_var in #(
+       *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+       esac
+       case $ac_var in #(
+       _ | IFS | as_nl) ;; #(
+       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+       *) $as_unset $ac_var ;;
+       esac ;;
+     esac
+   done
+ 
+   (set) 2>&1 |
+     case $as_nl`(ac_space=' '; set) 2>&1` in #(
+     *${as_nl}ac_space=\ *)
+       # `set' does not quote correctly, so add quotes (double-quote
+       # substitution turns \\\\ into \\, and sed turns \\ into \).
+       sed -n \
+ 	"s/'/'\\\\''/g;
+ 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+       ;; #(
+     *)
+       # `set' quotes correctly as required by POSIX, so do not add quotes.
+       sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+       ;;
+     esac |
+     sort
+ ) |
+   sed '
+      /^ac_cv_env_/b end
+      t clear
+      :clear
+      s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+      t end
+      s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+      :end' >>confcache
+ if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+   if test -w "$cache_file"; then
+     test "x$cache_file" != "x/dev/null" &&
+       { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+ $as_echo "$as_me: updating cache $cache_file" >&6;}
+     cat confcache >$cache_file
+   else
+     { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+ $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+   fi
+ fi
+ rm -f confcache
+ 
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+ 
+ DEFS=-DHAVE_CONFIG_H
+ 
+ ac_libobjs=
+ ac_ltlibobjs=
+ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+   # 1. Remove the extension, and $U if already installed.
+   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+   ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+   #    will be set to the directory where LIBOBJS objects are built.
+   ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+   ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+ done
+ LIBOBJS=$ac_libobjs
+ 
+ LTLIBOBJS=$ac_ltlibobjs
+ 
+ 
+ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+   { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&5
+ $as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+   { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&5
+ $as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+   { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&5
+ $as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
+   { { $as_echo "$as_me:$LINENO: error: conditional \"GL_COND_LIBTOOL\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&5
+ $as_echo "$as_me: error: conditional \"GL_COND_LIBTOOL\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+     gl_libobjs=
+     gl_ltlibobjs=
+     if test -n "$gl_LIBOBJS"; then
+       # Remove the extension.
+       sed_drop_objext='s/\.o$//;s/\.obj$//'
+       for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
+         gl_libobjs="$gl_libobjs $i.$ac_objext"
+         gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+       done
+     fi
+     gl_LIBOBJS=$gl_libobjs
+ 
+     gl_LTLIBOBJS=$gl_ltlibobjs
+ 
+ 
+ 
+     gltests_libobjs=
+     gltests_ltlibobjs=
+     if test -n "$gltests_LIBOBJS"; then
+       # Remove the extension.
+       sed_drop_objext='s/\.o$//;s/\.obj$//'
+       for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
+         gltests_libobjs="$gltests_libobjs $i.$ac_objext"
+         gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+       done
+     fi
+     gltests_LIBOBJS=$gltests_libobjs
+ 
+     gltests_LTLIBOBJS=$gltests_ltlibobjs
+ 
+ 
+ if test -z "${TOOLS_ONLY_TRUE}" && test -z "${TOOLS_ONLY_FALSE}"; then
+   { { $as_echo "$as_me:$LINENO: error: conditional \"TOOLS_ONLY\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&5
+ $as_echo "$as_me: error: conditional \"TOOLS_ONLY\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ if test -z "${INSTALL_WARNINGS_TRUE}" && test -z "${INSTALL_WARNINGS_FALSE}"; then
+   { { $as_echo "$as_me:$LINENO: error: conditional \"INSTALL_WARNINGS\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&5
+ $as_echo "$as_me: error: conditional \"INSTALL_WARNINGS\" was never defined.
+ Usually this means the macro was only invoked conditionally." >&2;}
+    { (exit 1); exit 1; }; }
+ fi
+ 
+ : ${CONFIG_STATUS=./config.status}
+ ac_write_fail=0
+ ac_clean_files_save=$ac_clean_files
+ ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+ { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+ $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ #! $SHELL
+ # Generated by $as_me.
+ # Run this file to recreate the current configuration.
+ # Compiler output produced by configure, useful for debugging
+ # configure, is in config.log if it exists.
+ 
+ debug=false
+ ac_cs_recheck=false
+ ac_cs_silent=false
+ SHELL=\${CONFIG_SHELL-$SHELL}
+ _ACEOF
+ 
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ ## --------------------- ##
+ ## M4sh Initialization.  ##
+ ## --------------------- ##
+ 
+ # Be more Bourne compatible
+ DUALCASE=1; export DUALCASE # for MKS sh
+ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+   emulate sh
+   NULLCMD=:
+   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+   # is contrary to our usage.  Disable this feature.
+   alias -g '${1+"$@"}'='"$@"'
+   setopt NO_GLOB_SUBST
+ else
+   case `(set -o) 2>/dev/null` in
+   *posix*) set -o posix ;;
+ esac
+ 
+ fi
+ 
+ 
+ 
+ 
+ # PATH needs CR
+ # Avoid depending upon Character Ranges.
+ as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+ as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+ as_cr_digits='0123456789'
+ as_cr_alnum=$as_cr_Letters$as_cr_digits
+ 
+ as_nl='
+ '
+ export as_nl
+ # Printing a long string crashes Solaris 7 /usr/bin/printf.
+ as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+ as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+ if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+   as_echo='printf %s\n'
+   as_echo_n='printf %s'
+ else
+   if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+     as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+     as_echo_n='/usr/ucb/echo -n'
+   else
+     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+     as_echo_n_body='eval
+       arg=$1;
+       case $arg in
+       *"$as_nl"*)
+ 	expr "X$arg" : "X\\(.*\\)$as_nl";
+ 	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+       esac;
+       expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+     '
+     export as_echo_n_body
+     as_echo_n='sh -c $as_echo_n_body as_echo'
+   fi
+   export as_echo_body
+   as_echo='sh -c $as_echo_body as_echo'
+ fi
+ 
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+   PATH_SEPARATOR=:
+   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+       PATH_SEPARATOR=';'
+   }
+ fi
+ 
+ # Support unset when possible.
+ if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+   as_unset=unset
+ else
+   as_unset=false
+ fi
+ 
+ 
+ # IFS
+ # We need space, tab and new line, in precisely that order.  Quoting is
+ # there to prevent editors from complaining about space-tab.
+ # (If _AS_PATH_WALK were called with IFS unset, it would disable word
+ # splitting by setting IFS to empty value.)
+ IFS=" ""	$as_nl"
+ 
+ # Find who we are.  Look in the path if we contain no directory separator.
+ case $0 in
+   *[\\/]* ) as_myself=$0 ;;
+   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+   test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+ IFS=$as_save_IFS
+ 
+      ;;
+ esac
+ # We did not find ourselves, most probably we were run as `sh COMMAND'
+ # in which case we are not to be found in the path.
+ if test "x$as_myself" = x; then
+   as_myself=$0
+ fi
+ if test ! -f "$as_myself"; then
+   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+   { (exit 1); exit 1; }
+ fi
+ 
+ # Work around bugs in pre-3.0 UWIN ksh.
+ for as_var in ENV MAIL MAILPATH
+ do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+ done
+ PS1='$ '
+ PS2='> '
+ PS4='+ '
+ 
+ # NLS nuisances.
+ LC_ALL=C
+ export LC_ALL
+ LANGUAGE=C
+ export LANGUAGE
+ 
+ # Required to use basename.
+ if expr a : '\(a\)' >/dev/null 2>&1 &&
+    test "X`expr 00001 : '.*\(...\)'`" = X001; then
+   as_expr=expr
+ else
+   as_expr=false
+ fi
+ 
+ if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+   as_basename=basename
+ else
+   as_basename=false
+ fi
+ 
+ 
+ # Name of the executable.
+ as_me=`$as_basename -- "$0" ||
+ $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ 	 X"$0" : 'X\(//\)$' \| \
+ 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+ $as_echo X/"$0" |
+     sed '/^.*\/\([^/][^/]*\)\/*$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\/\(\/\/\)$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\/\(\/\).*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  s/.*/./; q'`
+ 
+ # CDPATH.
+ $as_unset CDPATH
+ 
+ 
+ 
+   as_lineno_1=$LINENO
+   as_lineno_2=$LINENO
+   test "x$as_lineno_1" != "x$as_lineno_2" &&
+   test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+ 
+   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+   # uniformly replaced by the line number.  The first 'sed' inserts a
+   # line-number line after each line using $LINENO; the second 'sed'
+   # does the real work.  The second script uses 'N' to pair each
+   # line-number line with the line containing $LINENO, and appends
+   # trailing '-' during substitution so that $LINENO is not a special
+   # case at line end.
+   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+   # scripts with optimization help from Paolo Bonzini.  Blame Lee
+   # E. McMahon (1931-1989) for sed's syntax.  :-)
+   sed -n '
+     p
+     /[$]LINENO/=
+   ' <$as_myself |
+     sed '
+       s/[$]LINENO.*/&-/
+       t lineno
+       b
+       :lineno
+       N
+       :loop
+       s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+       t loop
+       s/-\n.*//
+     ' >$as_me.lineno &&
+   chmod +x "$as_me.lineno" ||
+     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+    { (exit 1); exit 1; }; }
+ 
+   # Don't try to exec as it changes $[0], causing all sort of problems
+   # (the dirname of $[0] is not the place where we might find the
+   # original and so on.  Autoconf is especially sensitive to this).
+   . "./$as_me.lineno"
+   # Exit status is that of the last command.
+   exit
+ }
+ 
+ 
+ if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+   as_dirname=dirname
+ else
+   as_dirname=false
+ fi
+ 
+ ECHO_C= ECHO_N= ECHO_T=
+ case `echo -n x` in
+ -n*)
+   case `echo 'x\c'` in
+   *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+   *)   ECHO_C='\c';;
+   esac;;
+ *)
+   ECHO_N='-n';;
+ esac
+ if expr a : '\(a\)' >/dev/null 2>&1 &&
+    test "X`expr 00001 : '.*\(...\)'`" = X001; then
+   as_expr=expr
+ else
+   as_expr=false
+ fi
+ 
+ rm -f conf$$ conf$$.exe conf$$.file
+ if test -d conf$$.dir; then
+   rm -f conf$$.dir/conf$$.file
+ else
+   rm -f conf$$.dir
+   mkdir conf$$.dir 2>/dev/null
+ fi
+ if (echo >conf$$.file) 2>/dev/null; then
+   if ln -s conf$$.file conf$$ 2>/dev/null; then
+     as_ln_s='ln -s'
+     # ... but there are two gotchas:
+     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+     # In both cases, we have to default to `cp -p'.
+     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+       as_ln_s='cp -p'
+   elif ln conf$$.file conf$$ 2>/dev/null; then
+     as_ln_s=ln
+   else
+     as_ln_s='cp -p'
+   fi
+ else
+   as_ln_s='cp -p'
+ fi
+ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+ rmdir conf$$.dir 2>/dev/null
+ 
+ if mkdir -p . 2>/dev/null; then
+   as_mkdir_p=:
+ else
+   test -d ./-p && rmdir ./-p
+   as_mkdir_p=false
+ fi
+ 
+ if test -x / >/dev/null 2>&1; then
+   as_test_x='test -x'
+ else
+   if ls -dL / >/dev/null 2>&1; then
+     as_ls_L_option=L
+   else
+     as_ls_L_option=
+   fi
+   as_test_x='
+     eval sh -c '\''
+       if test -d "$1"; then
+ 	test -d "$1/.";
+       else
+ 	case $1 in
+ 	-*)set "./$1";;
+ 	esac;
+ 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+ 	???[sx]*):;;*)false;;esac;fi
+     '\'' sh
+   '
+ fi
+ as_executable_p=$as_test_x
+ 
+ # Sed expression to map a string onto a valid CPP name.
+ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+ 
+ # Sed expression to map a string onto a valid variable name.
+ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+ 
+ 
+ exec 6>&1
+ 
+ # Save the log message, to keep $[0] and so on meaningful, and to
+ # report actual input values of CONFIG_FILES etc. instead of their
+ # values after options handling.
+ ac_log="
+ This file was extended by GNU Texinfo $as_me 4.13, which was
+ generated by GNU Autoconf 2.63.  Invocation command line was
+ 
+   CONFIG_FILES    = $CONFIG_FILES
+   CONFIG_HEADERS  = $CONFIG_HEADERS
+   CONFIG_LINKS    = $CONFIG_LINKS
+   CONFIG_COMMANDS = $CONFIG_COMMANDS
+   $ $0 $@
+ 
+ on `(hostname || uname -n) 2>/dev/null | sed 1q`
+ "
+ 
+ _ACEOF
+ 
+ case $ac_config_files in *"
+ "*) set x $ac_config_files; shift; ac_config_files=$*;;
+ esac
+ 
+ case $ac_config_headers in *"
+ "*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+ esac
+ 
+ 
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ # Files that config.status was made for.
+ config_files="$ac_config_files"
+ config_headers="$ac_config_headers"
+ config_commands="$ac_config_commands"
+ 
+ _ACEOF
+ 
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ ac_cs_usage="\
+ \`$as_me' instantiates files from templates according to the
+ current configuration.
+ 
+ Usage: $0 [OPTION]... [FILE]...
+ 
+   -h, --help       print this help, then exit
+   -V, --version    print version number and configuration settings, then exit
+   -q, --quiet, --silent
+                    do not print progress messages
+   -d, --debug      don't remove temporary files
+       --recheck    update $as_me by reconfiguring in the same conditions
+       --file=FILE[:TEMPLATE]
+                    instantiate the configuration file FILE
+       --header=FILE[:TEMPLATE]
+                    instantiate the configuration header FILE
+ 
+ Configuration files:
+ $config_files
+ 
+ Configuration headers:
+ $config_headers
+ 
+ Configuration commands:
+ $config_commands
+ 
+ Report bugs to <bug-autoconf@gnu.org>."
+ 
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_cs_version="\\
+ GNU Texinfo config.status 4.13
+ configured by $0, generated by GNU Autoconf 2.63,
+   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+ 
+ Copyright (C) 2008 Free Software Foundation, Inc.
+ This config.status script is free software; the Free Software Foundation
+ gives unlimited permission to copy, distribute and modify it."
+ 
+ ac_pwd='$ac_pwd'
+ srcdir='$srcdir'
+ INSTALL='$INSTALL'
+ MKDIR_P='$MKDIR_P'
+ AWK='$AWK'
+ test -n "\$AWK" || AWK=awk
+ _ACEOF
+ 
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ # The default lists apply if the user does not specify any file.
+ ac_need_defaults=:
+ while test $# != 0
+ do
+   case $1 in
+   --*=*)
+     ac_option=`expr "X$1" : 'X\([^=]*\)='`
+     ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+     ac_shift=:
+     ;;
+   *)
+     ac_option=$1
+     ac_optarg=$2
+     ac_shift=shift
+     ;;
+   esac
+ 
+   case $ac_option in
+   # Handling of the options.
+   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+     ac_cs_recheck=: ;;
+   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+     $as_echo "$ac_cs_version"; exit ;;
+   --debug | --debu | --deb | --de | --d | -d )
+     debug=: ;;
+   --file | --fil | --fi | --f )
+     $ac_shift
+     case $ac_optarg in
+     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+     esac
+     CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+     ac_need_defaults=false;;
+   --header | --heade | --head | --hea )
+     $ac_shift
+     case $ac_optarg in
+     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+     esac
+     CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
+     ac_need_defaults=false;;
+   --he | --h)
+     # Conflict between --help and --header
+     { $as_echo "$as_me: error: ambiguous option: $1
+ Try \`$0 --help' for more information." >&2
+    { (exit 1); exit 1; }; };;
+   --help | --hel | -h )
+     $as_echo "$ac_cs_usage"; exit ;;
+   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+   | -silent | --silent | --silen | --sile | --sil | --si | --s)
+     ac_cs_silent=: ;;
+ 
+   # This is an error.
+   -*) { $as_echo "$as_me: error: unrecognized option: $1
+ Try \`$0 --help' for more information." >&2
+    { (exit 1); exit 1; }; } ;;
+ 
+   *) ac_config_targets="$ac_config_targets $1"
+      ac_need_defaults=false ;;
+ 
+   esac
+   shift
+ done
+ 
+ ac_configure_extra_args=
+ 
+ if $ac_cs_silent; then
+   exec 6>/dev/null
+   ac_configure_extra_args="$ac_configure_extra_args --silent"
+ fi
+ 
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ if \$ac_cs_recheck; then
+   set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+   shift
+   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+   CONFIG_SHELL='$SHELL'
+   export CONFIG_SHELL
+   exec "\$@"
+ fi
+ 
+ _ACEOF
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ exec 5>>config.log
+ {
+   echo
+   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+ ## Running $as_me. ##
+ _ASBOX
+   $as_echo "$ac_log"
+ } >&5
+ 
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ #
+ # INIT-COMMANDS
+ #
+ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+ # Capture the value of obsolete ALL_LINGUAS because we need it to compute
+     # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+     # from automake < 1.5.
+     eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+     # Capture the value of LINGUAS because we need it to compute CATALOGS.
+     LINGUAS="${LINGUAS-%UNSET%}"
+ 
+ 
+ _ACEOF
+ 
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ 
+ # Handling of arguments.
+ for ac_config_target in $ac_config_targets
+ do
+   case $ac_config_target in
+     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
+     "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+     "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
+     "install-info/tests/defs") CONFIG_FILES="$CONFIG_FILES install-info/tests/defs" ;;
+     "util/defs") CONFIG_FILES="$CONFIG_FILES util/defs" ;;
+     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+     "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+     "gnulib/lib/Makefile") CONFIG_FILES="$CONFIG_FILES gnulib/lib/Makefile" ;;
+     "info/Makefile") CONFIG_FILES="$CONFIG_FILES info/Makefile" ;;
+     "install-info/Makefile") CONFIG_FILES="$CONFIG_FILES install-info/Makefile" ;;
+     "install-info/tests/Makefile") CONFIG_FILES="$CONFIG_FILES install-info/tests/Makefile" ;;
+     "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+     "makeinfo/Makefile") CONFIG_FILES="$CONFIG_FILES makeinfo/Makefile" ;;
+     "makeinfo/tests/Makefile") CONFIG_FILES="$CONFIG_FILES makeinfo/tests/Makefile" ;;
+     "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+     "util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;;
+ 
+   *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+ $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+    { (exit 1); exit 1; }; };;
+   esac
+ done
+ 
+ 
+ # If the user did not use the arguments to specify the items to instantiate,
+ # then the envvar interface is used.  Set only those that are not.
+ # We use the long form for the default assignment because of an extremely
+ # bizarre bug on SunOS 4.1.3.
+ if $ac_need_defaults; then
+   test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+   test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+   test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+ fi
+ 
+ # Have a temporary directory for convenience.  Make it in the build tree
+ # simply because there is no reason against having it here, and in addition,
+ # creating and moving files from /tmp can sometimes cause problems.
+ # Hook for its removal unless debugging.
+ # Note that there is a small window in which the directory will not be cleaned:
+ # after its creation but before its name has been assigned to `$tmp'.
+ $debug ||
+ {
+   tmp=
+   trap 'exit_status=$?
+   { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+ ' 0
+   trap '{ (exit 1); exit 1; }' 1 2 13 15
+ }
+ # Create a (secure) tmp directory for tmp files.
+ 
+ {
+   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+   test -n "$tmp" && test -d "$tmp"
+ }  ||
+ {
+   tmp=./conf$$-$RANDOM
+   (umask 077 && mkdir "$tmp")
+ } ||
+ {
+    $as_echo "$as_me: cannot create a temporary directory in ." >&2
+    { (exit 1); exit 1; }
+ }
+ 
+ # Set up the scripts for CONFIG_FILES section.
+ # No need to generate them if there are no CONFIG_FILES.
+ # This happens for instance with `./config.status config.h'.
+ if test -n "$CONFIG_FILES"; then
+ 
+ 
+ ac_cr='
'
+ ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+ if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+   ac_cs_awk_cr='\\r'
+ else
+   ac_cs_awk_cr=$ac_cr
+ fi
+ 
+ echo 'BEGIN {' >"$tmp/subs1.awk" &&
+ _ACEOF
+ 
+ 
+ {
+   echo "cat >conf$$subs.awk <<_ACEOF" &&
+   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+   echo "_ACEOF"
+ } >conf$$subs.sh ||
+   { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+ $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+    { (exit 1); exit 1; }; }
+ ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ ac_delim='%!_!# '
+ for ac_last_try in false false false false false :; do
+   . ./conf$$subs.sh ||
+     { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+ $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+   if test $ac_delim_n = $ac_delim_num; then
+     break
+   elif $ac_last_try; then
+     { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+ $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+    { (exit 1); exit 1; }; }
+   else
+     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+   fi
+ done
+ rm -f conf$$subs.sh
+ 
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+ _ACEOF
+ sed -n '
+ h
+ s/^/S["/; s/!.*/"]=/
+ p
+ g
+ s/^[^!]*!//
+ :repl
+ t repl
+ s/'"$ac_delim"'$//
+ t delim
+ :nl
+ h
+ s/\(.\{148\}\).*/\1/
+ t more1
+ s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+ p
+ n
+ b repl
+ :more1
+ s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+ p
+ g
+ s/.\{148\}//
+ t nl
+ :delim
+ h
+ s/\(.\{148\}\).*/\1/
+ t more2
+ s/["\\]/\\&/g; s/^/"/; s/$/"/
+ p
+ b
+ :more2
+ s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+ p
+ g
+ s/.\{148\}//
+ t delim
+ ' <conf$$subs.awk | sed '
+ /^[^""]/{
+   N
+   s/\n//
+ }
+ ' >>$CONFIG_STATUS || ac_write_fail=1
+ rm -f conf$$subs.awk
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ _ACAWK
+ cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+   for (key in S) S_is_set[key] = 1
+   FS = ""
+ 
+ }
+ {
+   line = $ 0
+   nfields = split(line, field, "@")
+   substed = 0
+   len = length(field[1])
+   for (i = 2; i < nfields; i++) {
+     key = field[i]
+     keylen = length(key)
+     if (S_is_set[key]) {
+       value = S[key]
+       line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+       len += length(value) + length(field[++i])
+       substed = 1
+     } else
+       len += 1 + keylen
+   }
+ 
+   print line
+ }
+ 
+ _ACAWK
+ _ACEOF
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+ else
+   cat
+ fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+   || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
+ $as_echo "$as_me: error: could not setup config files machinery" >&2;}
+    { (exit 1); exit 1; }; }
+ _ACEOF
+ 
+ # VPATH may cause trouble with some makes, so we remove $(srcdir),
+ # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+ # trailing colons and then remove the whole line if VPATH becomes empty
+ # (actually we leave an empty line to preserve line numbers).
+ if test "x$srcdir" = x.; then
+   ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+ s/:*\$(srcdir):*/:/
+ s/:*\${srcdir}:*/:/
+ s/:*@srcdir@:*/:/
+ s/^\([^=]*=[	 ]*\):*/\1/
+ s/:*$//
+ s/^[^=]*=[	 ]*$//
+ }'
+ fi
+ 
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ fi # test -n "$CONFIG_FILES"
+ 
+ # Set up the scripts for CONFIG_HEADERS section.
+ # No need to generate them if there are no CONFIG_HEADERS.
+ # This happens for instance with `./config.status Makefile'.
+ if test -n "$CONFIG_HEADERS"; then
+ cat >"$tmp/defines.awk" <<\_ACAWK ||
+ BEGIN {
+ _ACEOF
+ 
+ # Transform confdefs.h into an awk script `defines.awk', embedded as
+ # here-document in config.status, that substitutes the proper values into
+ # config.h.in to produce config.h.
+ 
+ # Create a delimiter string that does not exist in confdefs.h, to ease
+ # handling of long lines.
+ ac_delim='%!_!# '
+ for ac_last_try in false false :; do
+   ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+   if test -z "$ac_t"; then
+     break
+   elif $ac_last_try; then
+     { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
+ $as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
+    { (exit 1); exit 1; }; }
+   else
+     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+   fi
+ done
+ 
+ # For the awk script, D is an array of macro values keyed by name,
+ # likewise P contains macro parameters if any.  Preserve backslash
+ # newline sequences.
+ 
+ ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+ sed -n '
+ s/.\{148\}/&'"$ac_delim"'/g
+ t rset
+ :rset
+ s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+ t def
+ d
+ :def
+ s/\\$//
+ t bsnl
+ s/["\\]/\\&/g
+ s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+ D["\1"]=" \3"/p
+ s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+ d
+ :bsnl
+ s/["\\]/\\&/g
+ s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+ D["\1"]=" \3\\\\\\n"\\/p
+ t cont
+ s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+ t cont
+ d
+ :cont
+ n
+ s/.\{148\}/&'"$ac_delim"'/g
+ t clear
+ :clear
+ s/\\$//
+ t bsnlc
+ s/["\\]/\\&/g; s/^/"/; s/$/"/p
+ d
+ :bsnlc
+ s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+ b cont
+ ' <confdefs.h | sed '
+ s/'"$ac_delim"'/"\\\
+ "/g' >>$CONFIG_STATUS || ac_write_fail=1
+ 
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+   for (key in D) D_is_set[key] = 1
+   FS = ""
+ }
+ /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+   line = \$ 0
+   split(line, arg, " ")
+   if (arg[1] == "#") {
+     defundef = arg[2]
+     mac1 = arg[3]
+   } else {
+     defundef = substr(arg[1], 2)
+     mac1 = arg[2]
+   }
+   split(mac1, mac2, "(") #)
+   macro = mac2[1]
+   prefix = substr(line, 1, index(line, defundef) - 1)
+   if (D_is_set[macro]) {
+     # Preserve the white space surrounding the "#".
+     print prefix "define", macro P[macro] D[macro]
+     next
+   } else {
+     # Replace #undef with comments.  This is necessary, for example,
+     # in the case of _POSIX_SOURCE, which is predefined and required
+     # on some systems where configure will not decide to define it.
+     if (defundef == "undef") {
+       print "/*", prefix defundef, macro, "*/"
+       next
+     }
+   }
+ }
+ { print }
+ _ACAWK
+ _ACEOF
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+   { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
+ $as_echo "$as_me: error: could not setup config headers machinery" >&2;}
+    { (exit 1); exit 1; }; }
+ fi # test -n "$CONFIG_HEADERS"
+ 
+ 
+ eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+ shift
+ for ac_tag
+ do
+   case $ac_tag in
+   :[FHLC]) ac_mode=$ac_tag; continue;;
+   esac
+   case $ac_mode$ac_tag in
+   :[FHL]*:*);;
+   :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
+    { (exit 1); exit 1; }; };;
+   :[FH]-) ac_tag=-:-;;
+   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+   esac
+   ac_save_IFS=$IFS
+   IFS=:
+   set x $ac_tag
+   IFS=$ac_save_IFS
+   shift
+   ac_file=$1
+   shift
+ 
+   case $ac_mode in
+   :L) ac_source=$1;;
+   :[FH])
+     ac_file_inputs=
+     for ac_f
+     do
+       case $ac_f in
+       -) ac_f="$tmp/stdin";;
+       *) # Look for the file first in the build tree, then in the source tree
+ 	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+ 	 # because $ac_f cannot contain `:'.
+ 	 test -f "$ac_f" ||
+ 	   case $ac_f in
+ 	   [\\/$]*) false;;
+ 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ 	   esac ||
+ 	   { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+    { (exit 1); exit 1; }; };;
+       esac
+       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+       ac_file_inputs="$ac_file_inputs '$ac_f'"
+     done
+ 
+     # Let's still pretend it is `configure' which instantiates (i.e., don't
+     # use $as_me), people would be surprised to read:
+     #    /* config.h.  Generated by config.status.  */
+     configure_input='Generated from '`
+ 	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ 	`' by configure.'
+     if test x"$ac_file" != x-; then
+       configure_input="$ac_file.  $configure_input"
+       { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+ $as_echo "$as_me: creating $ac_file" >&6;}
+     fi
+     # Neutralize special characters interpreted by sed in replacement strings.
+     case $configure_input in #(
+     *\&* | *\|* | *\\* )
+        ac_sed_conf_input=`$as_echo "$configure_input" |
+        sed 's/[\\\\&|]/\\\\&/g'`;; #(
+     *) ac_sed_conf_input=$configure_input;;
+     esac
+ 
+     case $ac_tag in
+     *:-:* | *:-) cat >"$tmp/stdin" \
+       || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+ $as_echo "$as_me: error: could not create $ac_file" >&2;}
+    { (exit 1); exit 1; }; } ;;
+     esac
+     ;;
+   esac
+ 
+   ac_dir=`$as_dirname -- "$ac_file" ||
+ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ 	 X"$ac_file" : 'X\(//\)[^/]' \| \
+ 	 X"$ac_file" : 'X\(//\)$' \| \
+ 	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+ $as_echo X"$ac_file" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)[^/].*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\).*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  s/.*/./; q'`
+   { as_dir="$ac_dir"
+   case $as_dir in #(
+   -*) as_dir=./$as_dir;;
+   esac
+   test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+     as_dirs=
+     while :; do
+       case $as_dir in #(
+       *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+       *) as_qdir=$as_dir;;
+       esac
+       as_dirs="'$as_qdir' $as_dirs"
+       as_dir=`$as_dirname -- "$as_dir" ||
+ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ 	 X"$as_dir" : 'X\(//\)[^/]' \| \
+ 	 X"$as_dir" : 'X\(//\)$' \| \
+ 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+ $as_echo X"$as_dir" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)[^/].*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\).*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  s/.*/./; q'`
+       test -d "$as_dir" && break
+     done
+     test -z "$as_dirs" || eval "mkdir $as_dirs"
+   } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+    { (exit 1); exit 1; }; }; }
+   ac_builddir=.
+ 
+ case "$ac_dir" in
+ .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *)
+   ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+   # A ".." for each directory in $ac_dir_suffix.
+   ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+   case $ac_top_builddir_sub in
+   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+   esac ;;
+ esac
+ ac_abs_top_builddir=$ac_pwd
+ ac_abs_builddir=$ac_pwd$ac_dir_suffix
+ # for backward compatibility:
+ ac_top_builddir=$ac_top_build_prefix
+ 
+ case $srcdir in
+   .)  # We are building in place.
+     ac_srcdir=.
+     ac_top_srcdir=$ac_top_builddir_sub
+     ac_abs_top_srcdir=$ac_pwd ;;
+   [\\/]* | ?:[\\/]* )  # Absolute name.
+     ac_srcdir=$srcdir$ac_dir_suffix;
+     ac_top_srcdir=$srcdir
+     ac_abs_top_srcdir=$srcdir ;;
+   *) # Relative name.
+     ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+     ac_top_srcdir=$ac_top_build_prefix$srcdir
+     ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+ esac
+ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+ 
+ 
+   case $ac_mode in
+   :F)
+   #
+   # CONFIG_FILE
+   #
+ 
+   case $INSTALL in
+   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+   *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+   esac
+   ac_MKDIR_P=$MKDIR_P
+   case $MKDIR_P in
+   [\\/$]* | ?:[\\/]* ) ;;
+   */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+   esac
+ _ACEOF
+ 
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ # If the template does not know about datarootdir, expand it.
+ # FIXME: This hack should be removed a few years after 2.60.
+ ac_datarootdir_hack=; ac_datarootdir_seen=
+ 
+ ac_sed_dataroot='
+ /datarootdir/ {
+   p
+   q
+ }
+ /@datadir@/p
+ /@docdir@/p
+ /@infodir@/p
+ /@localedir@/p
+ /@mandir@/p
+ '
+ case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+ *datarootdir*) ac_datarootdir_seen=yes;;
+ *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+   { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+ $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+ _ACEOF
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+   ac_datarootdir_hack='
+   s&@datadir@&$datadir&g
+   s&@docdir@&$docdir&g
+   s&@infodir@&$infodir&g
+   s&@localedir@&$localedir&g
+   s&@mandir@&$mandir&g
+     s&\\\${datarootdir}&$datarootdir&g' ;;
+ esac
+ _ACEOF
+ 
+ # Neutralize VPATH when `$srcdir' = `.'.
+ # Shell code in configure.ac might set extrasub.
+ # FIXME: do we really want to maintain this feature?
+ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_sed_extra="$ac_vpsub
+ $extrasub
+ _ACEOF
+ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ :t
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+ s|@configure_input@|$ac_sed_conf_input|;t t
+ s&@top_builddir@&$ac_top_builddir_sub&;t t
+ s&@top_build_prefix@&$ac_top_build_prefix&;t t
+ s&@srcdir@&$ac_srcdir&;t t
+ s&@abs_srcdir@&$ac_abs_srcdir&;t t
+ s&@top_srcdir@&$ac_top_srcdir&;t t
+ s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+ s&@builddir@&$ac_builddir&;t t
+ s&@abs_builddir@&$ac_abs_builddir&;t t
+ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+ s&@INSTALL@&$ac_INSTALL&;t t
+ s&@MKDIR_P@&$ac_MKDIR_P&;t t
+ $ac_datarootdir_hack
+ "
+ eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+   || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+ $as_echo "$as_me: error: could not create $ac_file" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+   { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+ which seems to be undefined.  Please make sure it is defined." >&5
+ $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+ which seems to be undefined.  Please make sure it is defined." >&2;}
+ 
+   rm -f "$tmp/stdin"
+   case $ac_file in
+   -) cat "$tmp/out" && rm -f "$tmp/out";;
+   *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+   esac \
+   || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+ $as_echo "$as_me: error: could not create $ac_file" >&2;}
+    { (exit 1); exit 1; }; }
+  ;;
+   :H)
+   #
+   # CONFIG_HEADER
+   #
+   if test x"$ac_file" != x-; then
+     {
+       $as_echo "/* $configure_input  */" \
+       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+     } >"$tmp/config.h" \
+       || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+ $as_echo "$as_me: error: could not create $ac_file" >&2;}
+    { (exit 1); exit 1; }; }
+     if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+       { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+ $as_echo "$as_me: $ac_file is unchanged" >&6;}
+     else
+       rm -f "$ac_file"
+       mv "$tmp/config.h" "$ac_file" \
+ 	|| { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+ $as_echo "$as_me: error: could not create $ac_file" >&2;}
+    { (exit 1); exit 1; }; }
+     fi
+   else
+     $as_echo "/* $configure_input  */" \
+       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+       || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
+ $as_echo "$as_me: error: could not create -" >&2;}
+    { (exit 1); exit 1; }; }
+   fi
+ # Compute "$ac_file"'s index in $config_headers.
+ _am_arg="$ac_file"
+ _am_stamp_count=1
+ for _am_header in $config_headers :; do
+   case $_am_header in
+     $_am_arg | $_am_arg:* )
+       break ;;
+     * )
+       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+   esac
+ done
+ echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+ $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ 	 X"$_am_arg" : 'X\(//\)[^/]' \| \
+ 	 X"$_am_arg" : 'X\(//\)$' \| \
+ 	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+ $as_echo X"$_am_arg" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)[^/].*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\).*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  s/.*/./; q'`/stamp-h$_am_stamp_count
+  ;;
+ 
+   :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+ $as_echo "$as_me: executing $ac_file commands" >&6;}
+  ;;
+   esac
+ 
+ 
+   case $ac_file$ac_mode in
+     "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+   # Strip MF so we end up with the name of the file.
+   mf=`echo "$mf" | sed -e 's/:.*$//'`
+   # Check whether this is an Automake generated Makefile or not.
+   # We used to match only the files named `Makefile.in', but
+   # some people rename them; so instead we look at the file content.
+   # Grep'ing the first line is not enough: some people post-process
+   # each Makefile.in and add a new line on top of each file to say so.
+   # Grep'ing the whole file is not good either: AIX grep has a line
+   # limit of 2048, but all sed's we know have understand at least 4000.
+   if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+     dirpart=`$as_dirname -- "$mf" ||
+ $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ 	 X"$mf" : 'X\(//\)[^/]' \| \
+ 	 X"$mf" : 'X\(//\)$' \| \
+ 	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+ $as_echo X"$mf" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)[^/].*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\).*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  s/.*/./; q'`
+   else
+     continue
+   fi
+   # Extract the definition of DEPDIR, am__include, and am__quote
+   # from the Makefile without running `make'.
+   DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+   test -z "$DEPDIR" && continue
+   am__include=`sed -n 's/^am__include = //p' < "$mf"`
+   test -z "am__include" && continue
+   am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+   # When using ansi2knr, U may be empty or an underscore; expand it
+   U=`sed -n 's/^U = //p' < "$mf"`
+   # Find all dependency output files, they are included files with
+   # $(DEPDIR) in their names.  We invoke sed twice because it is the
+   # simplest approach to changing $(DEPDIR) to its actual value in the
+   # expansion.
+   for file in `sed -n "
+     s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+     # Make sure the directory exists.
+     test -f "$dirpart/$file" && continue
+     fdir=`$as_dirname -- "$file" ||
+ $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ 	 X"$file" : 'X\(//\)[^/]' \| \
+ 	 X"$file" : 'X\(//\)$' \| \
+ 	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+ $as_echo X"$file" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)[^/].*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\).*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  s/.*/./; q'`
+     { as_dir=$dirpart/$fdir
+   case $as_dir in #(
+   -*) as_dir=./$as_dir;;
+   esac
+   test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
+     as_dirs=
+     while :; do
+       case $as_dir in #(
+       *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+       *) as_qdir=$as_dir;;
+       esac
+       as_dirs="'$as_qdir' $as_dirs"
+       as_dir=`$as_dirname -- "$as_dir" ||
+ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ 	 X"$as_dir" : 'X\(//\)[^/]' \| \
+ 	 X"$as_dir" : 'X\(//\)$' \| \
+ 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+ $as_echo X"$as_dir" |
+     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)[^/].*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\/\)$/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  /^X\(\/\).*/{
+ 	    s//\1/
+ 	    q
+ 	  }
+ 	  s/.*/./; q'`
+       test -d "$as_dir" && break
+     done
+     test -z "$as_dirs" || eval "mkdir $as_dirs"
+   } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+ $as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
+    { (exit 1); exit 1; }; }; }
+     # echo "creating $dirpart/$file"
+     echo '# dummy' > "$dirpart/$file"
+   done
+ done
+  ;;
+     "po-directories":C)
+     for ac_file in $CONFIG_FILES; do
+       # Support "outfile[:infile[:infile...]]"
+       case "$ac_file" in
+         *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+       esac
+       # PO directories have a Makefile.in generated from Makefile.in.in.
+       case "$ac_file" in */Makefile.in)
+         # Adjust a relative srcdir.
+         ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+         ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+         ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+         # In autoconf-2.13 it is called $ac_given_srcdir.
+         # In autoconf-2.50 it is called $srcdir.
+         test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+         case "$ac_given_srcdir" in
+           .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+           /*) top_srcdir="$ac_given_srcdir" ;;
+           *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+         esac
+         # Treat a directory as a PO directory if and only if it has a
+         # POTFILES.in file. This allows packages to have multiple PO
+         # directories under different names or in different locations.
+         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+           rm -f "$ac_dir/POTFILES"
+           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+           cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+           POMAKEFILEDEPS="POTFILES.in"
+           # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+           # on $ac_dir but don't depend on user-specified configuration
+           # parameters.
+           if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+             # The LINGUAS file contains the set of available languages.
+             if test -n "$OBSOLETE_ALL_LINGUAS"; then
+               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+             fi
+             ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+             # Hide the ALL_LINGUAS assigment from automake < 1.5.
+             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+           else
+             # The set of available languages was given in configure.in.
+             # Hide the ALL_LINGUAS assigment from automake < 1.5.
+             eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+           fi
+           # Compute POFILES
+           # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+           # Compute UPDATEPOFILES
+           # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+           # Compute DUMMYPOFILES
+           # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+           # Compute GMOFILES
+           # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+           case "$ac_given_srcdir" in
+             .) srcdirpre= ;;
+             *) srcdirpre='$(srcdir)/' ;;
+           esac
+           POFILES=
+           UPDATEPOFILES=
+           DUMMYPOFILES=
+           GMOFILES=
+           for lang in $ALL_LINGUAS; do
+             POFILES="$POFILES $srcdirpre$lang.po"
+             UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+             DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+             GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+           done
+           # CATALOGS depends on both $ac_dir and the user's LINGUAS
+           # environment variable.
+           INST_LINGUAS=
+           if test -n "$ALL_LINGUAS"; then
+             for presentlang in $ALL_LINGUAS; do
+               useit=no
+               if test "%UNSET%" != "$LINGUAS"; then
+                 desiredlanguages="$LINGUAS"
+               else
+                 desiredlanguages="$ALL_LINGUAS"
+               fi
+               for desiredlang in $desiredlanguages; do
+                 # Use the presentlang catalog if desiredlang is
+                 #   a. equal to presentlang, or
+                 #   b. a variant of presentlang (because in this case,
+                 #      presentlang can be used as a fallback for messages
+                 #      which are not translated in the desiredlang catalog).
+                 case "$desiredlang" in
+                   "$presentlang"*) useit=yes;;
+                 esac
+               done
+               if test $useit = yes; then
+                 INST_LINGUAS="$INST_LINGUAS $presentlang"
+               fi
+             done
+           fi
+           CATALOGS=
+           if test -n "$INST_LINGUAS"; then
+             for lang in $INST_LINGUAS; do
+               CATALOGS="$CATALOGS $lang.gmo"
+             done
+           fi
+           test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+           sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+           for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+             if test -f "$f"; then
+               case "$f" in
+                 *.orig | *.bak | *~) ;;
+                 *) cat "$f" >> "$ac_dir/Makefile" ;;
+               esac
+             fi
+           done
+         fi
+         ;;
+       esac
+     done ;;
+ 
+   esac
+ done # for ac_tag
+ 
+ 
+ { (exit 0); exit 0; }
+ _ACEOF
+ chmod +x $CONFIG_STATUS
+ ac_clean_files=$ac_clean_files_save
+ 
+ test $ac_write_fail = 0 ||
+   { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+ $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+    { (exit 1); exit 1; }; }
+ 
+ 
+ # configure is writing to config.log, and then calls config.status.
+ # config.status does its own redirection, appending to config.log.
+ # Unfortunately, on DOS this fails, as config.log is still kept open
+ # by configure, so config.status won't be able to write to it; its
+ # output is simply discarded.  So we exec the FD to /dev/null,
+ # effectively closing config.log, so it can be properly (re)opened and
+ # appended to by config.status.  When coming back to configure, we
+ # need to make the FD available again.
+ if test "$no_create" != yes; then
+   ac_cs_success=:
+   ac_config_status_args=
+   test "$silent" = yes &&
+     ac_config_status_args="$ac_config_status_args --quiet"
+   exec 5>/dev/null
+   $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+   exec 5>>config.log
+   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+   # would make configure fail if this is the last instruction.
+   $ac_cs_success || { (exit 1); exit 1; }
+ fi
+ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+   { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ fi
+ 
diff -Nrc2 texinfo-4.12/configure.ac texinfo-4.13/configure.ac
*** texinfo-4.12/configure.ac	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/configure.ac	Thu Sep 18 11:45:56 2008
***************
*** 0 ****
--- 1,240 ----
+ # Process this file with autoconf to produce a configure script.
+ # $Id: configure.ac,v 1.93 2008/09/18 18:45:56 karl Exp $
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ #
+ AC_INIT([GNU Texinfo], [4.13], [bug-texinfo@gnu.org])
+ 
+ dnl Must come before AM_INIT_AUTOMAKE.
+ AC_CONFIG_AUX_DIR([build-aux])
+ AM_INIT_AUTOMAKE([1.10.1 readme-alpha dist-lzma])
+ 
+ # Minimum Autoconf version required.
+ AC_PREREQ(2.59)
+ 
+ # Where to generate output; srcdir location.
+ AC_CONFIG_HEADERS([config.h:config.in])dnl Keep filename to 8.3 for MS-DOS.
+ AC_CONFIG_SRCDIR([makeinfo/makeinfo.c])
+ 
+ # When the Texinfo source is imported into other repositories
+ # (NetBSD and TeX Live), timestamps are generally not preserved.  This
+ # causes lots of annoyance, so --enable-maintainer-mode.  Sorry.
+ AM_MAINTAINER_MODE
+ 
+ # Checks for programs.
+ AC_PROG_CC
+ 
+ # Since we use gnulib: gl_EARLY must be called as soon as possible after
+ # the C compiler is checked.  The others could be later, but we just
+ # keep everything together.
+ gl_EARLY
+ 
+ dnl Rest of Gnulib.
+ gl_INIT
+ 
+ 
+ # Since we make a helper library.
+ AC_PROG_RANLIB
+ AM_MISSING_PROG(HELP2MAN, help2man)
+ 
+ AC_PROG_INSTALL
+ AC_PROG_MAKE_SET
+ 
+ # Needed on sysV68 for sigblock, sigsetmask.  But check for it in libc first.
+ AC_CHECK_FUNC(sigblock, , [AC_CHECK_LIB(bsd, sigblock)])
+ 
+ # Checks for header files.
+ AC_HEADER_STAT
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS(fcntl.h io.h limits.h pwd.h string.h strings.h \
+   termcap.h termio.h termios.h unistd.h \
+   sys/fcntl.h sys/file.h sys/stream.h sys/time.h sys/ttold.h sys/wait.h)
+ 
+ # sys/ptem.h requires sys/stream.h for mblk_t on Solaris.
+ AC_CHECK_HEADERS([sys/ptem.h],,,
+ [#if HAVE_SYS_STREAM_H
+ #include <sys/stream.h>
+ #endif
+ ])
+ 
+ AC_SYS_POSIX_TERMIOS
+ AC_HEADER_TIOCGWINSZ
+ 
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_TYPE_OFF_T
+ AC_TYPE_SIGNAL
+ AC_C_CONST
+ AC_STRUCT_TM
+ 
+ # Checks for function declarations.
+ AC_CHECK_DECLS([memchr, strcoll, strerror])
+ 
+ # Checks for library functions.
+ AC_FUNC_STRCOLL
+ AC_FUNC_VPRINTF
+ # in theory only pre-sysvr3 systems needed this and it's not likely
+ # that anyone compiling new texinfo still has such a thing? we'll see.
+ # AC_FUNC_SETVBUF_REVERSED
+ AC_CHECK_FUNCS(bzero getcwd memset setlocale setvbuf sigaction sigprocmask \
+                sigsetmask strchr)
+ AC_REPLACE_FUNCS(memcpy memmove strdup strerror)
+ 
+ # We want to recognize djgpp to avoid the useless warning about no
+ # term library.
+ AC_CANONICAL_BUILD
+ 
+ # We need to run some of our own binaries, most notably makedoc, but as
+ # long as we have this process, we also use our own makeinfo and
+ # install-info.
+ #
+ # This means that if we are cross compiling, we have to configure the
+ # package twice: once with the native compiler (this is done in a
+ # subdirectory $native_tools), and once with the cross compiler.
+ # The former is invoked automatically here, with --host=$build.
+ # $native_tools is also added to SUBDIRS in the main Makefile.am,
+ # so that make compiles the native tools first.
+ #
+ if test "$cross_compiling" = no; then
+   native_tools=
+ else
+   native_tools=tools
+   test -d "$native_tools" || mkdir "$native_tools"
+   confdir=`(cd "$srcdir";pwd)`
+   # Make sure the secondary configure won't fail with
+   # "error: source directory already configured".
+   rm -f config.status
+   AC_MSG_NOTICE([[Doing configure of native tools (${build}).]])
+   cd "$native_tools" || exit 1
+   # Run secondary configure in alternate environment or
+   # it gets the wrong CC etc.
+   # env -i gives this build host configure a clean environment;
+   # consequently, we have to re-initialize $PATH.
+   env -i CC="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \
+       PATH="$PATH" \
+       tools_only=1 \
+     ${confdir}/configure --build=${build} --host=${build} \
+                          --disable-rpath --disable-nls
+   cd .. || exit 1
+   AC_MSG_NOTICE([[Continuing with main configure (${host}).]])
+ fi
+ AC_SUBST(native_tools)
+ AM_CONDITIONAL(TOOLS_ONLY, [[test "x$tools_only" = x1]])
+ 
+ # Some GNU/Linux systems (e.g., SuSE 4.3, 1996) don't have curses, but
+ # rather ncurses.  So we check for it.
+ TERMLIBS=
+ # Check for termlib before termcap because Solaris termcap needs libucb.
+ TERMLIB_VARIANTS="ncurses curses termlib termcap terminfo"
+ for termlib in ${TERMLIB_VARIANTS}; do
+   AC_CHECK_LIB(${termlib}, tgetent,
+      [TERMLIBS="${TERMLIBS} -l${termlib}"; break])
+ done
+ # don't bother warning on djgpp, it doesn't have a term library, it
+ # ports each termcap-needing program separately according to its needs.
+ if test -z "$TERMLIBS" && echo "$build" | grep -v djgpp >/dev/null; then
+   AC_MSG_WARN([probably need a terminal library, one of: ${TERMLIB_VARIANTS}])
+ fi
+ 
+ # Checks for variables.
+ # HP-UX 9 (at least) needs -lncurses which defines termcap variables PC etc.
+ AC_MSG_CHECKING(for library with termcap variables)
+ AC_CACHE_VAL(ac_cv_var_ospeed,
+ [oldLIBS=$LIBS
+ for trylib in $termlib ${TERMLIB_VARIANTS}; do
+    if test "x$trylib" != "x$termlib"; then
+      LIBS="$oldLIBS -l$termlib -l$trylib"
+    else
+      LIBS="$oldLIBS -l$termlib"
+    fi
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([], [[#ifdef HAVE_NCURSES_TERMCAP_H
+ #include <ncurses/termcap.h>
+ #else
+ #ifdef HAVE_TERMCAP_H
+ #include <termcap.h>
+ #else
+ #undef PC
+ char *BC;
+ char **UP;
+ char PC;
+ short ospeed;
+ #endif
+ #endif
+ /* Make sure all variables actually exist.  AIX 4.3 has ospeed but no BC.
+    --Andreas Ley <andy@rz.uni-karlsruhe.de> 24 Aug 2000.  */
+ BC++;
+ UP++;
+ PC++;
+ return ospeed != 0;
+ ]])], [ac_cv_var_ospeed=$trylib; break])
+ done
+ LIBS=$oldLIBS
+ ])
+ AC_MSG_RESULT($ac_cv_var_ospeed)
+ if test -n "$ac_cv_var_ospeed" \
+    && test "x$termlib" != "x$ac_cv_var_ospeed"; then
+   TERMLIBS="${TERMLIBS} -l${ac_cv_var_ospeed}"
+ fi
+ AC_SUBST(TERMLIBS)#
+ 
+ # Do not use <ncurses/termcap.h> unless we're linking with ncurses.
+ # Must come after the termlib tests.
+ if test "x$termlib" = xncurses; then
+   # Use AC_CHECK_HEADERS so the HAVE_*_H symbol gets defined.
+   AC_CHECK_HEADERS(ncurses/termcap.h)
+ fi
+ 
+ # For teTeX and TeX Live.
+ AC_CANONICAL_HOST
+ AC_ARG_ENABLE([multiplatform],
+   [AS_HELP_STRING([--enable-multiplatform],
+      [put executables into bin/PLATFORM and libraries into lib/PLATFORM])])dnl
+ # if enable_multiplatform is set in the environment, use that.
+ if test "x$enable_multiplatform" = xyes; then
+   test "x$bindir" = 'x${exec_prefix}/bin' && bindir="$bindir/$host"
+   test "x$libdir" = 'x${exec_prefix}/lib' && libdir="$libdir/$host"
+ fi
+ 
+ # Taken from the example in
+ # http://www.gnu.org/software/automake/manual/html_node/Conditionals.html.
+ AC_ARG_ENABLE(install-warnings,
+   [  --disable-install-warnings  omit make install warnings about TeX files],
+   [case "${enableval}" in
+      yes) install_warnings=true ;;
+       no) install_warnings=false ;;
+        *) AC_MSG_ERROR(bad value ${enableval} for --enable-install-warnings) ;;
+    esac],
+    [install_warnings=true])
+ AM_CONDITIONAL(INSTALL_WARNINGS,
+    test x"$install_warnings" = xtrue || test x"$install_warnings" = xyes)
+ 
+ # i18n support.  To update to a new version of gettext, run:
+ # gettextize -f -c
+ AM_GNU_GETTEXT_VERSION([0.17])
+ AM_GNU_GETTEXT([external])
+ 
+ # The test suite.
+ AC_CONFIG_FILES([install-info/tests/defs])
+ AC_CONFIG_FILES([util/defs])
+ AC_CHECK_PROGS([HEVEA], [hevea], [])
+ AC_CHECK_PROGS([TEX], [tex], [])
+ 
+ AC_CONFIG_FILES([
+   Makefile
+   doc/Makefile
+   gnulib/lib/Makefile
+   info/Makefile
+   install-info/Makefile
+   install-info/tests/Makefile
+   lib/Makefile
+   makeinfo/Makefile
+   makeinfo/tests/Makefile
+   po/Makefile.in
+   util/Makefile
+ ])
+ AC_OUTPUT
diff -Nrc2 texinfo-4.12/djgpp/README texinfo-4.13/djgpp/README
*** texinfo-4.12/djgpp/README	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/djgpp/README	Thu Sep 26 15:01:10 2002
***************
*** 0 ****
--- 1,431 ----
+ Building and installing GNU Texinfo with DJGPP v2.x
+ ===================================================
+ 
+ This directory holds files required for building Texinfo with DJGPP
+ tools for MS-DOS and MS-Windows.  If you got this file with a binary
+ distribution, look for the "Installation" section below.
+ 
+ 
+ 1. Building Texinfo
+    ----------------
+ 
+    a. To compile Texinfo, you will need the following tools:
+ 
+       - basic DJGPP development environment: GCC, Binutils and djdev;
+       - a DJGPP port of GNU Make version 3.78 or later;
+       - a DJGPP port of Bash 2.04 or later;
+       - a port of GNU Sed 3.02 or later;
+       - DJGPP ports of Fileutils, Textutils, Sh-utils, Diffutils,
+         Gawk and Grep;
+       - etags (from the Emacs distribution) and mkid (from ID-utils)
+         if you need the TAGS and ID targets of the Makefile's.
+ 
+       All of the above are available from the DJGPP ftp sites on
+       SimTel.NET mirrors, in the v2gnu directory.
+ 
+    b. From the root of your DJGPP installation, unzip the source package:
+ 
+       - if you are unpacking the official GNU source distribution:
+ 
+ 	 tar -xvzf texinfo-X.YZ.tar.gz
+ 
+ 	 or
+ 
+ 	 djtar -x texinfo-X.YZ.tar.gz
+ 
+         where X.YZ is the version number.  (Users of MS-DOS and
+         MS-Windows 3.X, which don't support long file names, will need
+         to rename the archive to something like texi-XYZ.tgz.)
+ 
+       - if you are unpacking a source distribution from a DJGPP ftp
+         site:
+ 
+          unzip txiXYZs
+ 
+ 	 or
+ 
+ 	 pkunzip -d txiXYZs
+ 
+       If you build Texinfo on Windows 9X, Windows ME, Windows 2000 or
+       Windows XP, you are advised to use a version of Unzip which
+       supports long filenames, so that the original long filenames of
+       the source files will be preserved.  Otherwise, the build
+       procedure will most probably fail.
+ 
+       Do NOT use an unzip program which supports long file names on
+       Windows NT 4, as DJGPP doesn't support long names there.
+ 
+       The program unzip32.exe, available from the SimTel.NET site,
+       will deal correctly with long file names on any platform, so it
+       is the recommended way of unzipping txiXYZs.zip archives.
+ 
+    c. If the source distribution comes with a ready Makefile (this is
+       usually the case with archives downloaded from the DJGPP sites),
+       and all you need is to build Texinfo, you may skip the configure
+       step below and go directly to step e.
+ 
+    d. To build the official GNU distribution, or to configure Texinfo
+       for any environment but stock DJGPP v2.x, run djgpp\config.bat
+       first, like this:
+ 
+ 	SRCDIR\djgpp\config SRCDIR
+ 
+       Here SRCDIR is the directory where you unpacked the sources.  If
+       you are configuring from the source directory itself, you may
+       omit the argument to the config.bat file.  If you do supply the
+       argument, you MUST use forward slashes in it, or else the batch
+       file might fail.
+ 
+       config.bat sets some environment variables, then invokes the
+       configure script.  The script will run for a few minutes and
+       create Makefile's in all the directories, and the config.h file.
+ 
+    e. Run `Make'.  This builds the programs and the Info files.
+ 
+ 
+ 
+ 2. Installation
+    ------------
+ 
+    a. If you are installing the binary distribution, then go to your
+       main DJGPP directory and unzip the files.  For instance, if your
+       DJGPP installation is rooted on C:\DJGPP, then type this (XYZ is
+       the version number):
+ 
+         cd c:\djgpp
+         unzip txiXYZb
+ 
+       or, if you prefer `pkunzip':
+ 
+         pkunzip -d txiXYZb
+ 
+    b. If you downloaded and built Texinfo from sources, install by
+       invoking Make:
+ 
+         make install
+ 
+       This requires a port of Unix-like program `install.exe'.  It is
+       available from the DJGPP port of GNU Fileutils on SimTel.NET.
+ 
+    c. Info needs a file named DIR with the top-level menu of all the
+       Info files installed on your system.  If you installed the DJGPP
+       development environment (djdevNN.zip), then you already have
+       this file in the info/ subdirectory of your DJGPP installation.
+       Otherwise, you will need to create it.  A minimal DIR file is
+       available in this distribution under the name `dir-example', 
+       which you can use as a starting point.  Copy it to the directory
+       where you install the Info files from this distribution.
+ 
+       Even if you already have a DIR file, you should review it to
+       make sure it is consistent with the names of the Info file you
+       are installing.  Here's how your Texinfo-related entries in DIR
+       should look like:
+ 
+       * Info: (info).
+ 	      Documentation browsing system.  This topic teaches you about
+ 	      how to use the online help information.
+ 
+       * Info-Standalone: (info-stnd).
+ 	      This topic helps you use the standalone Info-Program (info.exe)
+ 
+       * infokey: (info-stnd)Invoking infokey.
+ 	      Compile Info key customizations.
+ 
+       * Makeinfo: (texinfo)Invoking makeinfo.
+ 	      Convert a .texinfo file (.txi) to an info file suitable for the
+ 	      info reader or Emacs, into plain ASCII, into HTML, into XML,
+ 	      or into DocBook.
+ 
+       * Texinfo: (texinfo).
+ 	      With one source file, make either a printed manual (through TeX)
+ 	      or an on-line manual (through makeinfo).  This topic includes
+ 	      a full description of the Texinfo language and related
+ 	      facilities, including Emacs commands to work with Texinfo files.
+ 
+       * install-info: (texinfo)Invoking install-info. 
+ 	      How to update info/dir entries when installing GNU packages.
+ 
+       * texi2dvi: (texinfo)Format with texi2dvi.
+ 	      Printing Texinfo documentation with TeX.
+ 
+       * texindex: (texinfo)Format with tex/texindex.	
+ 	      Sorting Texinfo index files automatically.
+ 
+ 
+       Note that the asterisk `*' should be flushed all the way to the
+       left, it is indented here just to make reading more convenient.
+ 
+       If your DIR file entries differ from these, I suggest to edit them
+       so they are as shown above.  Otherwise, Info might not be able to
+       find some of the files.  You HAVE been warned!
+ 
+    d. Optionally, set up environment variables for Info.  These are:
+ 
+        * INFO_LINES   -- screen size for Info.
+        * INFO_COLORS  -- screen colors for Info.
+ 
+       (If you have DJGPP installed on your system, the file djgpp.env
+       which comes with it already has entries for Info, see the [info]
+       section there.)
+ 
+       INFO_LINES can be one of 25 (the default), 28, 35, 40, 43, or 50
+       (that's if you have a VGA; EGAs only support 25, 35 and 43 lines).
+       I recommend 40 if your monitor is 17" or larger, and at least 28
+       lines for smaller monitors (I work with 40 lines even on 14"
+       monitors).
+ 
+       INFO_COLORS should have the following syntax:
+ 
+ 		set INFO_COLORS=XX.YY
+ 
+       where XX is the text attribute for text displayed in the text
+       windows and the echo area, and YY is the text attribute for the
+       modeline (aka the status line).  Each attribute is a numeric
+       value of a byte which describes the desired combination of
+       foreground and background colors.  The individual bits in the
+       attribute byte are defined as follows:
+ 
+ 			bBBBFFFF
+ 
+       where `b' is the blink bit, `BBB' are the 3 bits for background
+       color and `FFFF' are the 4 bits for the foreground color.  This is
+       the usual PC text attribute byte structure, and is further explained
+       in any standard reference on text-mode programming for the PC.
+ 
+       My favorite setting for INFO_COLORS is `0x1e.0x31'.  This makes
+       Info use yellow foreground on blue background for the text and
+       blue foreground on cyan background for the modelines.
+ 
+       After you've played with these variables and have chosen the values
+       you like, it's a good idea to put them on the DJGPP.ENV file, in the
+       [info] section.
+ 
+    e. Beginning with version 3.6, GNU Info can read Unix man pages.  If
+       you have a `man' clone on your system and would like to be able to
+       read man pages with Info, read the chapter ``Reading Man Pages''
+       below.  One such clone is available as v2apps/manXYb.zip from
+       the DJGPP sites (XY is the version number).
+ 
+    f. This port supports compressed Info files, like what Info under Unix
+       gives you.  For this to work, you will need to install a DOS port of
+       GNU `Gzip' package and to observe certain rules of file naming, so
+       that Info will find the compressed files working around the DOS 8.3
+       filename restriction.  The chapter ``Compressed Info Files'' below
+       explains the details of this.
+ 
+    g. If you need to use the `print-node' command, read the chapter
+       ``Printing Nodes'' below.
+ 
+    h. That's it!  You are now ready to use Info, Makeinfo, and Texindex.
+       To learn about them, type `Info' and press [Enter].  You will be
+       presented with the top-level menu of GNU/DJGPP hypertext
+       documentation.  If you are unfamiliar with Info, press `?' to see
+       the available commands.  Pressing `h' will cause Info to take you on
+       a guided tour through its features (recommended for first-time
+       users).
+ 
+    i. If you are used to Info ports of versions before 3.6, you should
+       know that the command bindings to PC-specific keys has changed: the
+       numeric keypad keys invoke the same commands as their extended
+       namesakes.  That is, e.g., the key `PgUp' on the numeric keypad
+       invokes the same command as the grey `PgUp' key on the extended
+       keypad.  This was done at DJ's request, because laptop machines
+       don't have extended keys.  Commands to move between nodes
+       (previously bound to numeric keypad) are now bound to Ctrl-
+       varieties of numeric keypad keys (e.g., `next-node' is on
+       `Ctrl-PgDn', `prev-node' is on `Ctrl-PgUp', etc.).  You can use
+       the `Alt-x describe-key' command to see which command is invoked
+       by a particular key.
+ 
+    j. There are several MSDOS-specific changes in Texinfo, relative to
+       previous Texinfo ports (for other changes, see the file NEWS):
+ 
+         * Full support for both forward and backslashes in all file
+           names.  Previously, Info was sensitive to the style of
+           slashes in directories mentioned in the INFOPATH environment
+           variable.
+ 
+         * The default operation of the `print-node' command has been
+           changed so that it automatically prints to the local printer
+           device connected to the PRN port.  (If your printer is
+           connected to another port, set the INFO_PRINT_COMMAND
+           environment variable like this:
+ 
+ 		set INFO_PRINT_COMMAND=>LPT2
+ 
+           In other words, if the value of INFO_PRINT_COMMAND begins
+           wih a `>' character, Info will write to the file or device
+           whose name follows the `>' character.  (Don't leave any
+           blanks between `>' and the device name!).
+ 
+ 	  Note that some old versions of stock DOS shell won't let you
+ 	  use the `>' character in environment variables set from the
+ 	  DOS prompt or batch files, but you can set it in the [info]
+ 	  section of your DJGPP.ENV file.
+ 
+         * The `set-screen-height' command now actually changes the
+           screen dimensions from within Info if you specify one of the
+           sizes supported by your video hardware.
+ 
+         * If you don't have a `man' clone installed, and you invoke
+           Info with a name of a document which Info cannot find, it
+           will no longer wait for 15 seconds.
+ 
+         * Several bugs in handling of man pages were corrected.
+ 
+         * Info opens the dribble and input files in BINARY mode.  This
+ 	  allows to record keystrokes and restore them in another Info
+ 	  session, thus using dribble files as a startup or init file
+ 	  which changes default behavior, binds keys, etc.
+ 
+ 	* Info recognizes a new DOS-specific command-line option `-b'
+ 	  or `--speech-friendly'.  This option causes Info to use DOS
+ 	  I/O functions (`printf', `puts', etc.) instead of direct
+ 	  screen writes, which is required to enable speech
+ 	  synthesizer software (used by visually-impaired people) to
+ 	  grab the output.  When this option is given, the screen
+ 	  colors defined by the `INFO_COLORS' environment variable and
+ 	  the visible-bell feature will be disabled, because stdio
+ 	  functions don't support neither color text nor inverting
+ 	  screen colors.  This improvement was suggested and
+ 	  originally implemented by Hans-Bernhard Broeker
+ 	  <Broeker@physik.rwth-aachen.de>.
+ 
+         * Makeinfo now generates full .info-NN filenames when long
+ 	  filenames are supported (e.g. on Win9x) and short .iNN
+ 	  filenames otherwise.  When the Texinfo source or the
+ 	  command-line parameter -o specify an output file with no
+ 	  extension (like `texinfo'), and long filenames aren't
+ 	  supported, Makeinfo will make sure the generated names will
+ 	  be unique (it will create e.g. `texinf-1', `texin-10' etc.).
+ 
+         * The texi2dvi script is now fully compatible with
+           MS-DOS/MS-Windows and with the DJGPP port of TeX.
+ 
+ 
+ 3. Reading Man Pages
+    -----------------
+ 
+    Yes, Info can now read man pages!  This port supports that feature,
+    but for it to work, you will have to make sure your `man' clone is
+    set up correctly:
+ 
+    a. You should have an executable file named `man.exe', `man.com'
+       etc. somewhere on your PATH.
+ 
+    b. When invoked with redirected stdout, that executable should
+       print the contents of the file it gets as its argument to stdout
+       and exit.  If your man command calls some pager, that pager
+       should have this behavior (various ports of Unix command `more'
+       and the DJGPP port of GNU Less behave that way).
+ 
+    One `man' clone is available as v2apps/manNNb.zip from the DJGPP
+    sites on SimTel.NET.
+ 
+ 
+ 4. Compressed Info Files
+    ---------------------
+ 
+    Info allows you to hold your Info files in compressed form, to save
+    disk space.  When a file Info wants cannot be found, it will
+    automatically try to find that file in compressed form.  Info does
+    this by trying to find the original file with specific extensions.
+    Each extension tells Info which program should be called to
+    decompress the file.
+ 
+    This port supports compression by the GNU Gzip program.  When Info
+    cannot find a file `foo', it will first try to find `foo.z' or
+    `foo.gz'.  If this fails, and the file has an extension, the last
+    one or two characters of the extension are replaced by `z' and `gz'
+    respectively, and Info tries again.  If it finds any of these, it
+    will call the `GUnzip' program to decompress the file, catch its
+    output and display it.  (The original compressed file stays
+    intact.)
+ 
+    So, to use this feature, compress your files with Gzip and call the
+    compressed files using the following as guidelines:
+ 
+ 		foo       -->    foo.gz
+ 		foo.inf	  -->	 foo.igz
+ 		foo.i5	  -->	 foo.i5z
+ 		foo.25	  -->	 foo.25z
+ 
+    If you have a package whose Info docs are split into more than 9
+    sub-files and you need to compress those files, you will have to
+    rename the sub-files from `foo.iNN' to `foo.NN' so that there will
+    be place for the trailing `z' in the compressed names.  Don't
+    forget to edit the indirect file table in the main Info file and
+    change the sub-file filenames there too!
+ 
+    An alternative for those packages which have more than 99 Info
+    sub-files is to generate them from the Texinfo sources and force
+    Makeinfo to produce files without the .iNN extensions, like this:
+ 
+ 	        makeinfo -o foo foo.txi
+ 
+    This causes Makeinfo to generate file names like foo-1, foo-2,
+    etc., which leave more place for the numeric index.  If necessary,
+    Makeinfo will automatically remove characters from the end of the
+    argument to `-o'.  For example, "-o texinfo" produces files
+    texinf-1, ..., texin-10, ..., texi-100, etc. on platforms which
+    only support 8+3 file names.
+ 
+    Saying "@setfilename foo" near the beginning of the Texinfo source
+    file is another way of forcing Makeinfo to produce files without
+    the .iNN extensions.
+ 
+    Using Makeinfo to produce files whose names are "compression-ready"
+    is more convenient, since you don't need to edit the the indirect
+    file table to reflect the changes in file names.
+ 
+    On platforms which support long filenames, the usual Info behavior
+    of appending `.gz' or `.Z' to the original filename also works;
+    this is done *before* Info checks the above butchered names.
+ 
+    Special considerations apply if you are installing Info on dual
+    DOS/Windows 9X/ME/2K/XP system, where you'd like Info to work with
+    the same files both in plain DOS and from the Windows DOS box.  In
+    this case, you should make sure your compressed Info files follow
+    the 8+3 DOS naming conventions outlined above, even though Info
+    supports long file names on Windows 9X.  Also, you need to turn off
+    the generation of numeric tails in short 8+3 aliases Windows
+    creates for long names (if you don't know how, the DJGPP FAQ list
+    explains it).
+ 
+    Please note: for the automatic decompression to work, Info must be
+    able to find the file it looks for with an extension which
+    indicates that the file is compressed.  Do NOT call the compressed
+    files as the original uncompressed files were called, or Info
+    won't be able to find them!  File names like bison-1, gcc.i10 or
+    make.info-3 have nothing in them to suggest that they are
+    compressed, so don't expect Info to uncompress them.
+ 
+ 
+ 5. Printing Nodes
+    --------------
+       
+    Info has a `print-node' command.  It works by piping the contents of
+    the current node through a program which is named by the environment
+    variable INFO_PRINT_COMMAND.  That command should read its standard
+    input and write it to your printer.  Find any such program, put its
+    name into the above environment variable, and you can print nodes from
+    within Info.
+ 
+    If the value of INFO_PRINT_COMMAND begins with a redirection
+    character `>', Info will write the contents of the node to the file
+    whose name follows the `>' character.
+ 
+    If INFO_PRINT_COMMAND is not defined, the DJGPP port will use
+    ">PRN" as the default, which causes it to print to the local printer
+    device, PRN.
+ 
+ 6. Bug Reports
+    -----------
+ 
+    If you see any bugs which seem specific to this DOS port, please tell
+    me about them.
+ 
+ 
+    Enjoy,
+ 
+ 				Eli Zaretskii <eliz@is.elta.co.il>
diff -Nrc2 texinfo-4.12/djgpp/config.bat texinfo-4.13/djgpp/config.bat
*** texinfo-4.12/djgpp/config.bat	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/djgpp/config.bat	Tue Dec 25 15:57:16 2007
***************
*** 0 ****
--- 1,237 ----
+ @echo off
+ 
+ echo Configuring GNU Texinfo for DJGPP v2.x...
+ 
+ Rem The small_env tests protect against fixed and too small size
+ Rem of the environment in stock DOS shell.
+ 
+ Rem Find out if NLS is wanted or not, if dependency-tracking is
+ Rem wanted or not, if cache is wanted or not, and where the sources are.
+ set ARGS=
+ set NLS=disabled
+ if not "%NLS%" == "disabled" goto small_env
+ set CACHE=enabled
+ if not "%CACHE%" == "enabled" goto small_env
+ set DEPTRAK=disabled
+ if not "%DEPTRAK%" == "disabled" goto small_env
+ set XSRC=.
+ if not "%XSRC%" == "." goto small_env
+ 
+ Rem Loop over all arguments.
+ Rem Special arguments are: NLS, XSRC CACHE and DEPS.
+ Rem All other arguments are stored into ARGS.
+ :arg_loop
+ set SPECARG=0
+ if not "%SPECARG%" == "0" goto small_env
+ if not "%1" == "NLS" if not "%1" == "nls" goto cache_opt
+ if "%1" == "nls" set NLS=enabled
+ if "%1" == "NLS" set NLS=enabled
+ if not "%NLS%" == "enabled" goto small_env
+ set SPECARG=1
+ if not "%SPECARG%" == "1" goto small_env
+ shift
+ :cache_opt
+ set SPECARG=0
+ if not "%SPECARG%" == "0" goto small_env
+ if "%1" == "no-cache" goto cache_off
+ if "%1" == "no-CACHE" goto cache_off
+ if not "%1" == "NO-CACHE" goto dependency_opt
+ :cache_off
+ if "%1" == "no-cache" set CACHE=disabled
+ if "%1" == "no-CACHE" set CACHE=disabled
+ if "%1" == "NO-CACHE" set CACHE=disabled
+ if not "%CACHE%" == "disabled" goto small_env
+ set SPECARG=1
+ if not "%SPECARG%" == "1" goto small_env
+ shift
+ :dependency_opt
+ set SPECARG=0
+ if not "%SPECARG%" == "0" goto small_env
+ if "%1" == "dep" goto dep_off
+ if not "%1" == "DEP" goto src_dir_opt
+ :dep_off
+ if "%1" == "dep" set DEPTRAK=enabled
+ if "%1" == "DEP" set DEPTRAK=enabled
+ if not "%DEPTRAK%" == "enabled" goto small_env
+ set SPECARG=1
+ if not "%SPECARG%" == "1" goto small_env
+ shift
+ :src_dir_opt
+ set SPECARG=0
+ if not "%SPECARG%" == "0" goto small_env
+ echo %1 | grep -q "/"
+ if errorlevel 1 goto collect_arg
+ set XSRC=%1
+ if not "%XSRC%" == "%1" goto small_env
+ set SPECARG=1
+ if not "%SPECARG%" == "1" goto small_env
+ :collect_arg
+ if "%SPECARG%" == "0" set _ARGS=%ARGS% %1
+ if "%SPECARG%" == "0" if not "%_ARGS%" == "%ARGS% %1" goto small_env
+ echo %_ARGS% | grep -q "[^ ]"
+ if not errorlevel 0 set ARGS=%_ARGS%
+ set _ARGS=
+ shift
+ if not "%1" == "" goto arg_loop
+ set SPECARG=
+ 
+ Rem Create a response file for the configure script.
+ echo --srcdir=%XSRC% > args
+ if "%CACHE%" == "enabled"    echo --config-cache >> args
+ if "%DEPTRAK%" == "enabled"  echo --enable-dependency-tracking >> args
+ if "%DEPTRAK%" == "disabled" echo --disable-dependency-tracking >> args
+ if not "%ARGS%" == ""        echo %ARGS% >> args
+ set ARGS=
+ set CACHE=
+ set DEPTRAK=
+ 
+ if "%XSRC%" == "." goto in_place
+ 
+ :not_in_place
+ redir -e /dev/null update %XSRC%/configure.org ./configure
+ test -f ./configure
+ if errorlevel 1 update %XSRC%/configure ./configure
+ 
+ :in_place
+ Rem Update configuration files
+ echo Updating configuration scripts...
+ test -f ./configure.org
+ if errorlevel 1 update configure configure.org
+ sed -f %XSRC%/djgpp/config.sed configure.org > configure
+ if errorlevel 1 goto sed_error
+ 
+ Rem Make sure they have a config.site file
+ set CONFIG_SITE=%XSRC%/djgpp/config.site
+ if not "%CONFIG_SITE%" == "%XSRC%/djgpp/config.site" goto small_env
+ 
+ Rem Make sure crucial file names are not munged by unpacking
+ test -f %XSRC%/po/Makefile.in.in
+ if not errorlevel 1 mv -f %XSRC%/po/Makefile.in.in %XSRC%/po/Makefile.in-in
+ test -f %XSRC%/po/Makefile.am.in
+ if not errorlevel 1 mv -f %XSRC%/po/Makefile.am.in %XSRC%/po/Makefile.am-in
+ 
+ Rem This is required because DOS/Windows are case-insensitive
+ Rem to file names, and "make install" will do nothing if Make
+ Rem finds a file called `install'.
+ if exist INSTALL ren INSTALL INSTALL.txt
+ 
+ Rem Set HOME to a sane default so configure stops complaining.
+ if not "%HOME%" == "" goto host_name
+ set HOME=%XSRC%/djgpp
+ if not "%HOME%" == "%XSRC%/djgpp" goto small_env
+ echo No HOME found in the environment, using default value
+ 
+ :host_name
+ Rem Set HOSTNAME so it shows in config.status
+ if not "%HOSTNAME%" == "" goto hostdone
+ if "%windir%" == "" goto msdos
+ set OS=MS-Windows
+ if not "%OS%" == "MS-Windows" goto small_env
+ goto haveos
+ :msdos
+ set OS=MS-DOS
+ if not "%OS%" == "MS-DOS" goto small_env
+ :haveos
+ if not "%USERNAME%" == "" goto haveuname
+ if not "%USER%" == "" goto haveuser
+ echo No USERNAME and no USER found in the environment, using default values
+ set HOSTNAME=Unknown PC
+ if not "%HOSTNAME%" == "Unknown PC" goto small_env
+ goto userdone
+ :haveuser
+ set HOSTNAME=%USER%'s PC
+ if not "%HOSTNAME%" == "%USER%'s PC" goto small_env
+ goto userdone
+ :haveuname
+ set HOSTNAME=%USERNAME%'s PC
+ if not "%HOSTNAME%" == "%USERNAME%'s PC" goto small_env
+ :userdone
+ set _HOSTNAME=%HOSTNAME%, %OS%
+ if not "%_HOSTNAME%" == "%HOSTNAME%, %OS%" goto small_env
+ set HOSTNAME=%_HOSTNAME%
+ :hostdone
+ set _HOSTNAME=
+ set OS=
+ 
+ Rem install-sh is required by the configure script but clashes with the
+ Rem various Makefile install-foo targets, so we MUST have it before the
+ Rem script runs and rename it afterwards
+ test -f %XSRC%/install-sh
+ if not errorlevel 1 goto no_ren0
+ test -f %XSRC%/install-sh.sh
+ if not errorlevel 1 mv -f %XSRC%/install-sh.sh %XSRC%/install-sh
+ :no_ren0
+ 
+ if "%NLS%" == "disabled" goto without_NLS
+ 
+ :with_NLS
+ Rem Check for the needed libraries and binaries.
+ test -x /dev/env/DJDIR/bin/msgfmt.exe
+ if not errorlevel 0 goto missing_NLS_tools
+ test -x /dev/env/DJDIR/bin/xgettext.exe
+ if not errorlevel 0 goto missing_NLS_tools
+ test -f /dev/env/DJDIR/include/libcharset.h
+ if not errorlevel 0 goto missing_NLS_tools
+ test -f /dev/env/DJDIR/lib/libcharset.a
+ if not errorlevel 0 goto missing_NLS_tools
+ test -f /dev/env/DJDIR/include/iconv.h
+ if not errorlevel 0 goto missing_NLS_tools
+ test -f /dev/env/DJDIR/lib/libiconv.a
+ if not errorlevel 0 goto missing_NLS_tools
+ test -f /dev/env/DJDIR/include/libintl.h
+ if not errorlevel 0 goto missing_NLS_tools
+ test -f /dev/env/DJDIR/lib/libintl.a
+ if not errorlevel 0 goto missing_NLS_tools
+ 
+ Rem Recreate the files in the %XSRC%/po subdir with our ported tools.
+ redir -e /dev/null rm %XSRC%/po/*.gmo
+ redir -e /dev/null rm %XSRC%/po/texinfo*.pot
+ redir -e /dev/null rm %XSRC%/po/cat-id-tbl.c
+ redir -e /dev/null rm %XSRC%/po/stamp-cat-id
+ 
+ Rem Update the arguments file for the configure script.
+ Rem We prefer without-included-gettext because libintl.a from gettext package
+ Rem is the only one that is guaranteed to have been ported to DJGPP.
+ echo --enable-nls --without-included-gettext >> args
+ goto configure_package
+ 
+ :missing_NLS_tools
+ echo Needed libs/tools for NLS not found.  Configuring without NLS.
+ :without_NLS
+ Rem Update the arguments file for the configure script.
+ echo --disable-nls >> args
+ 
+ :configure_package
+ echo Running the ./configure script...
+ sh ./configure @args
+ if errorlevel 1 goto cfg_error
+ rm args
+ echo Done.
+ goto End
+ 
+ :sed_error
+ echo ./configure script editing failed!
+ goto End
+ 
+ :cfg_error
+ echo ./configure script exited abnormally!
+ goto End
+ 
+ :small_env
+ echo Your environment size is too small.  Enlarge it and run me again.
+ echo Configuration NOT done!
+ 
+ :End
+ test -f %XSRC%/install-sh.sh
+ if not errorlevel 1 goto no_ren1
+ test -f %XSRC%/install-sh
+ if not errorlevel 1 mv -f %XSRC%/install-sh %XSRC%/install-sh.sh
+ :no_ren1
+ if "%HOME%" == "%XSRC%/djgpp" set HOME=
+ set ARGS=
+ set CONFIG_SITE=
+ set HOSTNAME=
+ set NLS=
+ set CACHE=
+ set DEPTRAK=
+ set XSRC=
diff -Nrc2 texinfo-4.12/djgpp/config.sed texinfo-4.13/djgpp/config.sed
*** texinfo-4.12/djgpp/config.sed	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/djgpp/config.sed	Thu May 22 05:11:31 2008
***************
*** 0 ****
--- 1,104 ----
+ # DJGPP specific configuration file.
+ # Sed script for additional DJGPP specific editing
+ # of the configure script generated by autoconf 2.62.
+ 
+ 
+ # Additional editing of Makefiles
+ /^eval sed.*ac_file_inputs.*tmp\/out \\$/ {
+ :loop
+ n
+ /^$/!b loop
+ a\
+ cat > "$tmp/subs-djgpp.sed" << eof_djgpp\
+ # DJGPP specific Makefile changes.\
+ s,\\.deps,_deps,g\
+ s,\\.libs,_libs,g\
+ s,\\.new\\.,_new.,g\
+ s,\\.old\\.,_old.,g\
+ s,\\.tab\\.,_tab.,g\
+ s,Makefile\\.am\\.in,Makefile.am-in,g\
+ s,Makefile\\.in\\.in,Makefile.in-in,g\
+ /^install-info-am:/,/^$/ {\
+   /@list=.\\\$(INFO_DEPS)\[^ \]/s,DEPS),& texinf- texin- info-stn.i info.inf,\
+   s,\\(\\\$\\\$d/\\\$\\\$file-\\[0-9\\]\\[0-9\\]\\)\\(\[^ \]\\),\\1 \\$\\$d/\\$\\$file[0-9] \\$\\$d/\\$\\$file[0-9][0-9]\\2,\
+   s,\\( \\\$\\\$file-\\[0-9\\]\\[0-9\\]\\)\\(\[^ \]\\),\\1 \\$\\$file[0-9] \\$\\$file[0-9][0-9]\\2,\
+ }\
+ /^uninstall-info-am:/,/^$/ {\
+   /@list=.\\\$(INFO_DEPS)\[^ \]/s,DEPS),& texinf- texin- info-stn.i info.inf,\
+   s,\\(file-\\[0-9\\]\\[0-9\\]\\)\\(\[^ \]\\),\\1 \\$\\$file[0-9] \\$\\$file[0-9][0-9]\\2,\
+ }\
+ eof_djgpp\
+ sed -f "\$tmp/subs-djgpp.sed" \$tmp/out > \$tmp/out.djgpp\
+ mv -f \$tmp/out.djgpp \$tmp/out
+ }
+ 
+ 
+ # Makefile.in.in is renamed to Makefile.in-in.
+ /ac_config_files=/,/_ACEOF/ {
+   s|po/Makefile\.in|&:po/Makefile.in-in|
+ }
+ /CONFIG_FILES=/ s|po/Makefile\.in|&:po/Makefile.in-in|2
+ 
+ # We always use _deps and _libs instead of .deps and .libs, because
+ # the latter is an invalid name on 8+3 MS-DOS file system.  This makes
+ # the generated Makefiles good for every DJGPP installation, not only
+ # the one where the package was configured (which could happen to be
+ # a Windows box, where leading dots in file names are allowed).
+ /^rmdir[	 ]*\.tst/ i\
+ am__leading_dot=_
+ 
+ # The following two items are changes needed for configuring
+ # and compiling across partitions.
+ # The given srcdir value is always translated from the
+ # "x:" syntax into "/dev/x" syntax while we run configure.
+ /^[	 ]*-srcdir=\*.*$/ a\
+     ac_optarg=`echo "$ac_optarg" | sed "s,^\\([A-Za-z]\\):,/dev/\\1,"`
+ /set X `ls -Lt \$srcdir/ i\
+    if `echo $srcdir | grep "^/dev/" - > /dev/null`; then\
+      srcdir=`echo "$srcdir" | sed -e "s%^/dev/%%" -e "s%/%:/%"`\
+    fi
+ 
+ # Autoconf 2.52e generated configure scripts
+ # write absolute paths into Makefiles making
+ # them useless for DJGPP installations for which
+ # the package has not been configured for.
+ /MISSING=/,/^$/ {
+   /^fi$/ a\
+ am_missing_run=`echo "$am_missing_run" | sed 's%/dev.*/texinfo-\\{0,1\\}4\\.[0-9][0-9]\\{0,1\\}\\.\\{0,1\\}[0-9]\\{0,2\\}[a-z]\\{0,1\\}%${top_srcdir}%;s%.:.*/texinfo-\\{0,1\\}4\\.[0-9][0-9]\\{0,1\\}\\.\\{0,1\\}[0-9]\\{0,2\\}[a-z]\\{0,1\\}%${top_srcdir}%'`
+ }
+ /^install_sh=/a\
+ install_sh=`echo "$install_sh" | sed 's%/dev.*/texinfo-\\{0,1\\}4\\.[0-9][0-9]\\{0,1\\}\\.\\{0,1\\}[0-9]\\{0,2\\}[a-z]\\{0,1\\}%${top_srcdir}%;s%.:.*/texinfo-\\{0,1\\}4\\.[0-9][0-9]\\{0,1\\}\\.\\{0,1\\}[0-9]\\{0,2\\}[a-z]\\{0,1\\}%${top_srcdir}%'`
+ 
+ # On DOS/WIN systems every partition has its own root directory,
+ # so do not make any assumptions about absolute paths or the
+ # configure script and the generated Makefiles will only be
+ # good for the system where the package has been configured for.
+ /^ac_abs_srcdir=/ i\
+ ac_abs_builddir=`echo "$ac_abs_builddir" | sed "s%/dev/.*/texinfo[-_0-9]\\{1,1\\}[-.0-9A-Za-z+]*%../../.%;s%.:.*/texinfo[-_0-9]\\{1,1\\}[-.0-9A-Za-z+]*%../../.%"`\
+ ac_abs_top_builddir=`echo "$ac_abs_top_builddir" | sed "s%/dev/.*/texinfo[-_0-9]\\{1,1\\}[-.0-9A-Za-z+]*%../../..%;s%.:.*/texinfo[-_0-9]\\{1,1\\}[-.0-9A-Za-z+]*%../../..%"`\
+ ac_abs_top_srcdir=`echo "$ac_abs_top_srcdir" | sed "s%/dev/.*/texinfo[-_0-9]\\{1,1\\}[-.0-9A-Za-z+]*%../../..%;s%.:.*/texinfo[-_0-9]\\{1,1\\}[-.0-9A-Za-z+]*%../../..%"`
+ #ac_abs_srcdir=`echo "$ac_abs_srcdir" | sed "s%/dev/.*/texinfo[-_0-9]\\{1,1\\}[-.0-9A-Za-z+]*%../../.%;s%.:.*/texinfo[-_0-9]\\{1,1\\}[-.0-9A-Za-z+]*%../../.%"`
+ /^ac_abs_srcdir=/ a\
+ for dj_dir in $ac_abs_builddir $ac_abs_top_builddir $ac_abs_top_srcdir $ac_abs_srcdir\
+ do\
+   ac_abs_builddir=`echo "$ac_abs_builddir" | sed "s%//%/%g"`\
+   ac_abs_top_builddir=`echo "$ac_abs_top_builddir" | sed "s%//%/%g"`\
+   ac_abs_top_srcdir=`echo "$ac_abs_top_srcdir" | sed "s%//%/%g"`\
+   ac_abs_srcdir=`echo "$ac_abs_srcdir" | sed "s%//%/%g"`\
+ done
+ 
+ # The following makes sure we are not going to remove a directory
+ # which is the cwd on its drive (DOS doesn't allow to remove such
+ # a directory).  The trick is to chdir to the root directory on
+ # temp directory's drive before removing $tmp.
+ /^ *trap 'exit_status=\$\?; rm -rf/s%rm -rf%cd $tmp; cd /; &%
+ 
+ # AC_CONFIG_LINKS fails if the source and destination are on
+ # different file systems and symlinks don't work.
+ /^    ln \$srcdir/s%||%|| cp -pf $srcdir/$ac_source $ac_dest ||%
+ 
+ # The CR test for awk does not work for DJGPP.
+ /^ac_cs_awk_cr=/,/^$/ {
+   /^fi$/ a\
+ ac_cs_awk_cr=$ac_cr
+ }
diff -Nrc2 texinfo-4.12/djgpp/config.site texinfo-4.13/djgpp/config.site
*** texinfo-4.12/djgpp/config.site	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/djgpp/config.site	Tue Dec 25 15:57:16 2007
***************
*** 0 ****
--- 1,62 ----
+ #! /bin/sh
+ # Site defaults for the DJGPP configuration
+ 
+ # These two variables are required, otherwise looking for
+ # programs along the PATH will not work.
+ PATH_SEPARATOR=:
+ PATH_EXPAND=y
+ 
+ # This is required in for "test -f foo" to find foo.exe.
+ export TEST_FINDS_EXE=y
+ 
+ # The root of the DJGPP tree serves as the default prefix
+ # for all paths that are hardcoded in the binaries.
+ # When installing the installation prefix must be supplied.
+ test "x$prefix" = xNONE && prefix='/dev/env/DJDIR'
+ 
+ # This is required for config.status script to be run, since
+ # ./configure runs it by invoking ${CONFIG_SHELL-/bin/sh}
+ # CONFIG_SHELL=${CONFIG_SHELL='sh'}
+ 
+ # These are set here so the generated Makefile's will be good
+ # for every DJGPP installation, not only the one where the
+ # package was configured.
+ # $INSTALL must be an absolute path name, otherwise config.status
+ # will try to prepend ./ and ../ to it when it goes into subdirs.
+ INSTALL=${INSTALL='/dev/env/DJDIR/bin/ginstall -c'}
+ RANLIB=${RANLIB='ranlib'}
+ GMSGFMT=${GMSGFMT='/dev/env/DJDIR/bin/msgfmt'}
+ MSGFMT=${MSGFMT='/dev/env/DJDIR/bin/msgfmt'}
+ XGETTEXT=${XGETTEXT='/dev/env/DJDIR/bin/xgettext'}
+ 
+ # Sane defaults for standard programs used by the build process.
+ # We force the values of these variables so that the resultant
+ # Makefile's will work on any DJGPP platform, not only on the
+ # machine where the package was configured.
+ ac_cv_prog_AWK=${AWK='gawk'}
+ ac_cv_prog_INTLBISON=${INTLBISON='bison'}
+ ac_cv_prog_CC=${CC='gcc'}
+ 
+ # These are set here so the generated libtool/Makefile's will
+ # be good for every DJGPP installation, not only the one where
+ # the package was configured.
+ NM=${NM='nm'}
+ LD=${LD='ld'}
+ MAKEINFO=${MAKEINFO='makeinfo'}
+ 
+ # A sane default for mkdir.
+ ac_cv_path_mkdir=${MKDIR_P='/dev/env/DJDIR/bin/mkdir -p'}
+ 
+ # A sane default for grep.
+ ac_cv_path_GREP=${GREP='/dev/env/DJDIR/bin/grep'}
+ 
+ # A sane default for egrep.
+ ac_cv_path_EGREP=${EGREP='/dev/env/DJDIR/bin/egrep'}
+ 
+ # Force the test for 'ln -s' to report 'cp -pf'.
+ ac_cv_prog_LN_S='cp -pf'
+ 
+ # We have `fork', but it always fails.  Don't trust Autoconf to be
+ # smart enough to detect that...
+ ac_cv_func_fork=no
+ ac_cv_func_vfork=no
diff -Nrc2 texinfo-4.12/doc/Makefile.am texinfo-4.13/doc/Makefile.am
*** texinfo-4.12/doc/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/Makefile.am	Thu Sep 18 11:31:56 2008
***************
*** 0 ****
--- 1,132 ----
+ # $Id: Makefile.am,v 1.40 2008/09/08 13:39:17 karl Exp $
+ # Makefile.am for texinfo/doc.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ # Put texinfo.txi first because that's the most important.
+ info_TEXINFOS = texinfo.txi info-stnd.texi info.texi
+ DISTCLEANFILES = texinfo texinfo-* info*.info*
+ 
+ man_MANS = info.1 infokey.1 install-info.1 makeinfo.1 texindex.1  \
+            info.5 texinfo.5
+ 
+ # Use the programs built in our distribution, taking account of possible
+ # cross-compiling.
+ MAKEINFO = $(top_builddir)/$(native_tools)/makeinfo/makeinfo
+ 
+ # We'd also like to use something like this, but Automake calls
+ # "install-info" directly.
+ # INSTALL_INFO = $(top_builddir)/$(native_tools)/util/ginstall-info
+ 
+ TXI_XLATE = txi-cs.tex txi-de.tex txi-en.tex txi-es.tex txi-fr.tex \
+ 	    txi-it.tex txi-nl.tex txi-nb.tex txi-pl.tex txi-pt.tex \
+ 	    txi-ru.tex txi-sr.tex txi-tr.tex txi-uk.tex
+ 
+ refcard_files = refcard/Makefile refcard/txicmdcheck \
+                 refcard/txirefcard-a4.pdf refcard/txirefcard.pdf \
+ 		refcard/txirefcard.tex
+ 
+ # Include our texinfo.tex, not Automake's.
+ EXTRA_DIST = epsf.tex texinfo.tex \
+              fdl.texi \
+ 	     $(man_MANS) $(TXI_XLATE)
+ 	     $(refcard_files)
+ 
+ if INSTALL_WARNINGS
+ install-data-local:
+ 	@echo
+ 	@echo "WARNING: If your texmf tree does not already contain"
+ 	@echo "         up-to-date versions, you must install"
+ 	@echo "             texinfo.tex and txi-??.tex manually,"
+ 	@echo "         perhaps in TEXMF/tex/texinfo/,"
+ 	@echo "         where TEXMF is a root of your TeX tree."
+ 	@echo "         See doc/README for some considerations."
+ 	@echo "         You can run make TEXMF=/your/texmf install-tex to do this."
+ 	@echo
+ 	@echo "         You may also need to install epsf.tex in"
+ 	@echo "         TEXMF/tex/generic/dvips, if your TeX"
+ 	@echo "         installation did not include it."
+ endif
+ 
+ texmf_texinfo = $(TEXMF)/tex/texinfo
+ texmf_dvips = $(TEXMF)/tex/generic/epsf
+ install-tex:
+ 	test -n "$(TEXMF)" || (echo "TEXMF must be set." >&2; exit 1)
+ 	$(mkinstalldirs) $(DESTDIR)$(texmf_texinfo) $(DESTDIR)$(texmf_dvips)
+ 	$(INSTALL_DATA) $(srcdir)/texinfo.tex $(DESTDIR)$(texmf_texinfo)/texinfo.tex
+ 	$(INSTALL_DATA) $(srcdir)/epsf.tex $(DESTDIR)$(texmf_dvips)/epsf.tex
+ 	for f in $(TXI_XLATE); do \
+ 	  $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(texmf_texinfo)/$$f; done
+ 
+ # The man pages depend on the --help strings and the version number.
+ common_mandeps = $(top_srcdir)/configure.ac
+ 
+ # Set up the variables:
+ man_rule_0 = \
+ 	program=`expr '/$@' : '.*/\(.*\)\.1'` && \
+ 	case $$program in makeinfo) dir=makeinfo;; info*) dir=info;; \
+ 	        *install-info) dir=install-info;; *) dir=util;; esac && \
+ 	dir="$(top_builddir)/$(native_tools)/$$dir" && \
+ 	case $$program in info|install-info) program=g$$program;; \
+ 		esac
+ 
+ # Update the manpage for a binary program; set up the variables,
+ # make sure the binary is up-to-date and then generate the man page.
+ man_rule_bin = echo "Updating man page $@" && \
+ 	$(man_rule_0) && \
+ 	echo cd "$$dir" '&&' $(MAKE) $(AM_MAKEFLAGS) $$program$(EXEEXT) && \
+ 	    (cd "$$dir"  &&  $(MAKE) $(AM_MAKEFLAGS) $$program$(EXEEXT)) && \
+ 	echo $(HELP2MAN) --name=\""$$name"\" "$$dir/$$program" -o '$@' && \
+ 	     $(HELP2MAN) --name="$$name"     "$$dir/$$program" -o '$@'
+ 
+ $(srcdir)/info.1: $(top_srcdir)/info/info.c $(common_mandeps)
+ 	@name="read Info documents" && $(man_rule_bin)
+ $(srcdir)/infokey.1: $(top_srcdir)/info/infokey.c $(common_mandeps)
+ 	@name="compile customizations for Info" && $(man_rule_bin)
+ $(srcdir)/install-info.1: $(top_srcdir)/install-info/install-info.c $(common_mandeps)
+ 	@name="update info/dir entries" && $(man_rule_bin)
+ 
+ # Here we need some postprocessing:
+ $(srcdir)/makeinfo.1: $(top_srcdir)/makeinfo/makeinfo.c $(common_mandeps)
+ 	@name="translate Texinfo documents" && $(man_rule_bin)
+ 	mv $@ $@.tmp
+ 	sed '/^\.IP$$/N;/\nAlso/s/I//;/\nThe/s/I//' $@.tmp >$@
+ 	rm $@.tmp
+ 
+ $(srcdir)/texindex.1: $(util_srcdir)/texindex.c $(common_mandeps)
+ 	@name="sort Texinfo index files" && $(man_rule_bin)
+ 
+ 
+ ## ---------- ##
+ ## texi2dvi.  ##
+ ## ---------- ##
+ 
+ man_MANS += texi2dvi.1 texi2pdf.1 pdftexi2dvi.1
+ util_srcdir = $(top_srcdir)/util
+ 
+ # Do not depend on the current user's settings.
+ # We need to include util_srcdir in PATH so texi2pdf can find texi2dvi.
+ change_envvars = unset TEXI2DVI_BUILD_MODE; unset TEXI2DVI_BUILD_DIRECTORY; \
+   PATH="$(util_srcdir):$${PATH}"; export PATH
+ 
+ common_texi2dvi_deps = $(common_mandeps) \
+                        $(util_srcdir)/texi2dvi $(util_srcdir)/texi2pdf
+ 
+ $(srcdir)/texi2dvi.1: $(common_texi2dvi_deps)
+ 	$(change_envvars); $(HELP2MAN) --name="convert Texinfo documents to DVI" $(util_srcdir)/texi2dvi >$@
+ 
+ $(srcdir)/texi2pdf.1: $(common_texi2dvi_deps)
+ 	$(change_envvars); $(HELP2MAN) --name="convert Texinfo documents to PDF" $(util_srcdir)/texi2pdf >$@
+ 
+ $(srcdir)/pdftexi2dvi.1:  $(common_texi2dvi_deps)
+ 	$(change_envvars); $(HELP2MAN) --name="convert Texinfo documents to PDF" $(util_srcdir)/pdftexi2dvi >$@
+ 
+ # Do not create info files for distribution.
+ dist-info:
diff -Nrc2 texinfo-4.12/doc/Makefile.in texinfo-4.13/doc/Makefile.in
*** texinfo-4.12/doc/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/Makefile.in	Thu Sep 18 11:46:24 2008
***************
*** 0 ****
--- 1,1135 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # $Id: Makefile.am,v 1.40 2008/09/08 13:39:17 karl Exp $
+ # Makefile.am for texinfo/doc.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ subdir = doc
+ DIST_COMMON = README $(info_TEXINFOS) $(srcdir)/Makefile.am \
+ 	$(srcdir)/Makefile.in $(srcdir)/stamp-1 $(srcdir)/stamp-vti \
+ 	$(srcdir)/version-stnd.texi $(srcdir)/version.texi texinfo.tex
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ SOURCES =
+ DIST_SOURCES =
+ INFO_DEPS = texinfo info-stnd.info info.info
+ TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex
+ am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux
+ DVIS = texinfo.dvi info-stnd.dvi info.dvi
+ PDFS = texinfo.pdf info-stnd.pdf info.pdf
+ PSS = texinfo.ps info-stnd.ps info.ps
+ HTMLS = texinfo.html info-stnd.html info.html
+ TEXINFOS = texinfo.txi info-stnd.texi info.texi
+ TEXI2DVI = texi2dvi
+ TEXI2PDF = $(TEXI2DVI) --pdf --batch
+ MAKEINFOHTML = $(MAKEINFO) --html
+ AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+ DVIPS = dvips
+ am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \
+ 	"$(DESTDIR)$(man5dir)"
+ am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+ am__vpath_adj = case $$p in \
+     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+     *) f=$$p;; \
+   esac;
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ man1dir = $(mandir)/man1
+ man5dir = $(mandir)/man5
+ NROFF = nroff
+ MANS = $(man_MANS)
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ 
+ # Use the programs built in our distribution, taking account of possible
+ # cross-compiling.
+ MAKEINFO = $(top_builddir)/$(native_tools)/makeinfo/makeinfo
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ 
+ # Put texinfo.txi first because that's the most important.
+ info_TEXINFOS = texinfo.txi info-stnd.texi info.texi
+ DISTCLEANFILES = texinfo texinfo-* info*.info*
+ man_MANS = info.1 infokey.1 install-info.1 makeinfo.1 texindex.1 \
+ 	info.5 texinfo.5 texi2dvi.1 texi2pdf.1 pdftexi2dvi.1
+ 
+ # We'd also like to use something like this, but Automake calls
+ # "install-info" directly.
+ # INSTALL_INFO = $(top_builddir)/$(native_tools)/util/ginstall-info
+ TXI_XLATE = txi-cs.tex txi-de.tex txi-en.tex txi-es.tex txi-fr.tex \
+ 	    txi-it.tex txi-nl.tex txi-nb.tex txi-pl.tex txi-pt.tex \
+ 	    txi-ru.tex txi-sr.tex txi-tr.tex txi-uk.tex
+ 
+ refcard_files = refcard/Makefile refcard/txicmdcheck \
+                 refcard/txirefcard-a4.pdf refcard/txirefcard.pdf \
+ 		refcard/txirefcard.tex
+ 
+ 
+ # Include our texinfo.tex, not Automake's.
+ EXTRA_DIST = epsf.tex texinfo.tex \
+              fdl.texi \
+ 	     $(man_MANS) $(TXI_XLATE)
+ 
+ texmf_texinfo = $(TEXMF)/tex/texinfo
+ texmf_dvips = $(TEXMF)/tex/generic/epsf
+ 
+ # The man pages depend on the --help strings and the version number.
+ common_mandeps = $(top_srcdir)/configure.ac
+ 
+ # Set up the variables:
+ man_rule_0 = \
+ 	program=`expr '/$@' : '.*/\(.*\)\.1'` && \
+ 	case $$program in makeinfo) dir=makeinfo;; info*) dir=info;; \
+ 	        *install-info) dir=install-info;; *) dir=util;; esac && \
+ 	dir="$(top_builddir)/$(native_tools)/$$dir" && \
+ 	case $$program in info|install-info) program=g$$program;; \
+ 		esac
+ 
+ 
+ # Update the manpage for a binary program; set up the variables,
+ # make sure the binary is up-to-date and then generate the man page.
+ man_rule_bin = echo "Updating man page $@" && \
+ 	$(man_rule_0) && \
+ 	echo cd "$$dir" '&&' $(MAKE) $(AM_MAKEFLAGS) $$program$(EXEEXT) && \
+ 	    (cd "$$dir"  &&  $(MAKE) $(AM_MAKEFLAGS) $$program$(EXEEXT)) && \
+ 	echo $(HELP2MAN) --name=\""$$name"\" "$$dir/$$program" -o '$@' && \
+ 	     $(HELP2MAN) --name="$$name"     "$$dir/$$program" -o '$@'
+ 
+ util_srcdir = $(top_srcdir)/util
+ 
+ # Do not depend on the current user's settings.
+ # We need to include util_srcdir in PATH so texi2pdf can find texi2dvi.
+ change_envvars = unset TEXI2DVI_BUILD_MODE; unset TEXI2DVI_BUILD_DIRECTORY; \
+   PATH="$(util_srcdir):$${PATH}"; export PATH
+ 
+ common_texi2dvi_deps = $(common_mandeps) \
+                        $(util_srcdir)/texi2dvi $(util_srcdir)/texi2pdf
+ 
+ all: all-am
+ 
+ .SUFFIXES:
+ .SUFFIXES: .dvi .ps
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnu  doc/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ texinfo: texinfo.txi $(srcdir)/version.texi
+ 	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ 	rm -rf $$backupdir && mkdir $$backupdir && \
+ 	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+ 	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+ 	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ 	  done; \
+ 	else :; fi && \
+ 	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ 	 -o $@ `test -f 'texinfo.txi' || echo '$(srcdir)/'`texinfo.txi; \
+ 	then \
+ 	  rc=0; \
+ 	else \
+ 	  rc=$$?; \
+ 	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ 	fi; \
+ 	rm -rf $$backupdir; exit $$rc
+ 
+ texinfo.dvi: texinfo.txi $(srcdir)/version.texi 
+ 	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ 	$(TEXI2DVI) -o $@ `test -f 'texinfo.txi' || echo '$(srcdir)/'`texinfo.txi
+ 
+ texinfo.pdf: texinfo.txi $(srcdir)/version.texi 
+ 	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ 	$(TEXI2PDF) -o $@ `test -f 'texinfo.txi' || echo '$(srcdir)/'`texinfo.txi
+ 
+ texinfo.html: texinfo.txi $(srcdir)/version.texi 
+ 	rm -rf $(@:.html=.htp)
+ 	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ 	 -o $(@:.html=.htp) `test -f 'texinfo.txi' || echo '$(srcdir)/'`texinfo.txi; \
+ 	then \
+ 	  rm -rf $@; \
+ 	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ 	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+ 	else \
+ 	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ 	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+ 	  exit 1; \
+ 	fi
+ $(srcdir)/version.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-vti
+ $(srcdir)/stamp-vti: texinfo.txi $(top_srcdir)/configure
+ 	@(dir=.; test -f ./texinfo.txi || dir=$(srcdir); \
+ 	set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/texinfo.txi`; \
+ 	echo "@set UPDATED $$1 $$2 $$3"; \
+ 	echo "@set UPDATED-MONTH $$2 $$3"; \
+ 	echo "@set EDITION $(VERSION)"; \
+ 	echo "@set VERSION $(VERSION)") > vti.tmp
+ 	@cmp -s vti.tmp $(srcdir)/version.texi \
+ 	  || (echo "Updating $(srcdir)/version.texi"; \
+ 	      cp vti.tmp $(srcdir)/version.texi)
+ 	-@rm -f vti.tmp
+ 	@cp $(srcdir)/version.texi $@
+ 
+ mostlyclean-vti:
+ 	-rm -f vti.tmp
+ 
+ maintainer-clean-vti:
+ @MAINTAINER_MODE_TRUE@	-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
+ 
+ info-stnd.info: info-stnd.texi $(srcdir)/version-stnd.texi
+ 	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ 	rm -rf $$backupdir && mkdir $$backupdir && \
+ 	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+ 	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+ 	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ 	  done; \
+ 	else :; fi && \
+ 	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ 	 -o $@ `test -f 'info-stnd.texi' || echo '$(srcdir)/'`info-stnd.texi; \
+ 	then \
+ 	  rc=0; \
+ 	else \
+ 	  rc=$$?; \
+ 	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ 	fi; \
+ 	rm -rf $$backupdir; exit $$rc
+ 
+ info-stnd.dvi: info-stnd.texi $(srcdir)/version-stnd.texi 
+ 	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ 	$(TEXI2DVI) -o $@ `test -f 'info-stnd.texi' || echo '$(srcdir)/'`info-stnd.texi
+ 
+ info-stnd.pdf: info-stnd.texi $(srcdir)/version-stnd.texi 
+ 	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ 	$(TEXI2PDF) -o $@ `test -f 'info-stnd.texi' || echo '$(srcdir)/'`info-stnd.texi
+ 
+ info-stnd.html: info-stnd.texi $(srcdir)/version-stnd.texi 
+ 	rm -rf $(@:.html=.htp)
+ 	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ 	 -o $(@:.html=.htp) `test -f 'info-stnd.texi' || echo '$(srcdir)/'`info-stnd.texi; \
+ 	then \
+ 	  rm -rf $@; \
+ 	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ 	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+ 	else \
+ 	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ 	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+ 	  exit 1; \
+ 	fi
+ $(srcdir)/version-stnd.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-1
+ $(srcdir)/stamp-1: info-stnd.texi $(top_srcdir)/configure
+ 	@(dir=.; test -f ./info-stnd.texi || dir=$(srcdir); \
+ 	set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/info-stnd.texi`; \
+ 	echo "@set UPDATED $$1 $$2 $$3"; \
+ 	echo "@set UPDATED-MONTH $$2 $$3"; \
+ 	echo "@set EDITION $(VERSION)"; \
+ 	echo "@set VERSION $(VERSION)") > 1.tmp
+ 	@cmp -s 1.tmp $(srcdir)/version-stnd.texi \
+ 	  || (echo "Updating $(srcdir)/version-stnd.texi"; \
+ 	      cp 1.tmp $(srcdir)/version-stnd.texi)
+ 	-@rm -f 1.tmp
+ 	@cp $(srcdir)/version-stnd.texi $@
+ 
+ mostlyclean-1:
+ 	-rm -f 1.tmp
+ 
+ maintainer-clean-1:
+ @MAINTAINER_MODE_TRUE@	-rm -f $(srcdir)/stamp-1 $(srcdir)/version-stnd.texi
+ 
+ info.info: info.texi $(info_TEXINFOS)
+ 	restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ 	rm -rf $$backupdir && mkdir $$backupdir && \
+ 	if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+ 	  for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+ 	    if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ 	  done; \
+ 	else :; fi && \
+ 	if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ 	 -o $@ `test -f 'info.texi' || echo '$(srcdir)/'`info.texi; \
+ 	then \
+ 	  rc=0; \
+ 	else \
+ 	  rc=$$?; \
+ 	  $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ 	fi; \
+ 	rm -rf $$backupdir; exit $$rc
+ 
+ info.dvi: info.texi $(info_TEXINFOS) 
+ 	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ 	$(TEXI2DVI) -o $@ `test -f 'info.texi' || echo '$(srcdir)/'`info.texi
+ 
+ info.pdf: info.texi $(info_TEXINFOS) 
+ 	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ 	MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ 	$(TEXI2PDF) -o $@ `test -f 'info.texi' || echo '$(srcdir)/'`info.texi
+ 
+ info.html: info.texi $(info_TEXINFOS) 
+ 	rm -rf $(@:.html=.htp)
+ 	if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ 	 -o $(@:.html=.htp) `test -f 'info.texi' || echo '$(srcdir)/'`info.texi; \
+ 	then \
+ 	  rm -rf $@; \
+ 	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ 	    mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+ 	else \
+ 	  if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ 	    rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+ 	  exit 1; \
+ 	fi
+ .dvi.ps:
+ 	TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ 	$(DVIPS) -o $@ $<
+ 
+ uninstall-dvi-am:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(DVIS)'; for p in $$list; do \
+ 	  f=$(am__strip_dir) \
+ 	  echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(dvidir)/$$f"; \
+ 	done
+ 
+ uninstall-html-am:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(HTMLS)'; for p in $$list; do \
+ 	  f=$(am__strip_dir) \
+ 	  echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	  rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
+ 	done
+ 
+ uninstall-info-am:
+ 	@$(PRE_UNINSTALL)
+ 	@if test -d '$(DESTDIR)$(infodir)' && \
+ 	    (install-info --version && \
+ 	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ 	  list='$(INFO_DEPS)'; \
+ 	  for file in $$list; do \
+ 	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ 	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+ 	    install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+ 	  done; \
+ 	else :; fi
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(INFO_DEPS)'; \
+ 	for file in $$list; do \
+ 	  relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ 	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+ 	  (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
+ 	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+ 	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+ 	   else :; fi); \
+ 	done
+ 
+ uninstall-pdf-am:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(PDFS)'; for p in $$list; do \
+ 	  f=$(am__strip_dir) \
+ 	  echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
+ 	done
+ 
+ uninstall-ps-am:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(PSS)'; for p in $$list; do \
+ 	  f=$(am__strip_dir) \
+ 	  echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(psdir)/$$f"; \
+ 	done
+ 
+ mostlyclean-aminfo:
+ 	-rm -rf texinfo.aux texinfo.cp texinfo.cps texinfo.fn texinfo.fns texinfo.ky \
+ 	  texinfo.kys texinfo.log texinfo.op texinfo.pg texinfo.tmp \
+ 	  texinfo.toc texinfo.tp texinfo.tps texinfo.vr texinfo.dvi \
+ 	  texinfo.pdf texinfo.ps texinfo.html info-stnd.aux \
+ 	  info-stnd.cp info-stnd.cps info-stnd.fn info-stnd.ky \
+ 	  info-stnd.log info-stnd.pg info-stnd.pgs info-stnd.tmp \
+ 	  info-stnd.toc info-stnd.tp info-stnd.tps info-stnd.vr \
+ 	  info-stnd.dvi info-stnd.pdf info-stnd.ps info-stnd.html \
+ 	  info.aux info.cp info.cps info.fn info.ky info.log info.pg \
+ 	  info.pgs info.tmp info.toc info.tp info.tps info.vr info.dvi \
+ 	  info.pdf info.ps info.html
+ 
+ maintainer-clean-aminfo:
+ 	@list='$(INFO_DEPS)'; for i in $$list; do \
+ 	  i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+ 	  echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+ 	  rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+ 	done
+ install-man1: $(man1_MANS) $(man_MANS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+ 	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+ 	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ 	for i in $$l2; do \
+ 	  case "$$i" in \
+ 	    *.1*) list="$$list $$i" ;; \
+ 	  esac; \
+ 	done; \
+ 	for i in $$list; do \
+ 	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ 	  else file=$$i; fi; \
+ 	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ 	  case "$$ext" in \
+ 	    1*) ;; \
+ 	    *) ext='1' ;; \
+ 	  esac; \
+ 	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ 	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ 	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ 	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ 	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
+ 	done
+ uninstall-man1:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+ 	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ 	for i in $$l2; do \
+ 	  case "$$i" in \
+ 	    *.1*) list="$$list $$i" ;; \
+ 	  esac; \
+ 	done; \
+ 	for i in $$list; do \
+ 	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ 	  case "$$ext" in \
+ 	    1*) ;; \
+ 	    *) ext='1' ;; \
+ 	  esac; \
+ 	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ 	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ 	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ 	  echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
+ 	  rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
+ 	done
+ install-man5: $(man5_MANS) $(man_MANS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)"
+ 	@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
+ 	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ 	for i in $$l2; do \
+ 	  case "$$i" in \
+ 	    *.5*) list="$$list $$i" ;; \
+ 	  esac; \
+ 	done; \
+ 	for i in $$list; do \
+ 	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+ 	  else file=$$i; fi; \
+ 	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ 	  case "$$ext" in \
+ 	    5*) ;; \
+ 	    *) ext='5' ;; \
+ 	  esac; \
+ 	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ 	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ 	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ 	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
+ 	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst"; \
+ 	done
+ uninstall-man5:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
+ 	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+ 	for i in $$l2; do \
+ 	  case "$$i" in \
+ 	    *.5*) list="$$list $$i" ;; \
+ 	  esac; \
+ 	done; \
+ 	for i in $$list; do \
+ 	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+ 	  case "$$ext" in \
+ 	    5*) ;; \
+ 	    *) ext='5' ;; \
+ 	  esac; \
+ 	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+ 	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
+ 	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+ 	  echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
+ 	  rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
+ 	done
+ tags: TAGS
+ TAGS:
+ 
+ ctags: CTAGS
+ CTAGS:
+ 
+ 
+ distdir: $(DISTFILES)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ 	$(MAKE) $(AM_MAKEFLAGS) \
+ 	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ 	  dist-info
+ check-am: all-am
+ check: check-am
+ all-am: Makefile $(INFO_DEPS) $(MANS)
+ installdirs:
+ 	for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"; do \
+ 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: install-am
+ install-exec: install-exec-am
+ install-data: install-data-am
+ uninstall: uninstall-am
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-am
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ @INSTALL_WARNINGS_FALSE@install-data-local:
+ clean: clean-am
+ 
+ clean-am: clean-generic mostlyclean-am
+ 
+ distclean: distclean-am
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-generic
+ 
+ dvi: dvi-am
+ 
+ dvi-am: $(DVIS)
+ 
+ html: html-am
+ 
+ html-am: $(HTMLS)
+ 
+ info: info-am
+ 
+ info-am: $(INFO_DEPS)
+ 
+ install-data-am: install-data-local install-info-am install-man
+ 
+ install-dvi: install-dvi-am
+ 
+ install-dvi-am: $(DVIS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
+ 	@list='$(DVIS)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  f=$(am__strip_dir) \
+ 	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
+ 	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
+ 	done
+ install-exec-am:
+ 
+ install-html: install-html-am
+ 
+ install-html-am: $(HTMLS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
+ 	@list='$(HTMLS)'; for p in $$list; do \
+ 	  if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  f=$(am__strip_dir) \
+ 	  if test -d "$$d$$p"; then \
+ 	    echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	    $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
+ 	    echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	    $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
+ 	  else \
+ 	    echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
+ 	    $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
+ 	  fi; \
+ 	done
+ install-info: install-info-am
+ 
+ install-info-am: $(INFO_DEPS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ 	list='$(INFO_DEPS)'; \
+ 	for file in $$list; do \
+ 	  case $$file in \
+ 	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ 	  esac; \
+ 	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ 	  file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
+ 	  for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
+                        $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+ 	    if test -f $$ifile; then \
+ 	      relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
+ 	      echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
+ 	      $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
+ 	    else : ; fi; \
+ 	  done; \
+ 	done
+ 	@$(POST_INSTALL)
+ 	@if (install-info --version && \
+ 	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ 	  list='$(INFO_DEPS)'; \
+ 	  for file in $$list; do \
+ 	    relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ 	    echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+ 	    install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+ 	  done; \
+ 	else : ; fi
+ install-man: install-man1 install-man5
+ 
+ install-pdf: install-pdf-am
+ 
+ install-pdf-am: $(PDFS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
+ 	@list='$(PDFS)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  f=$(am__strip_dir) \
+ 	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
+ 	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
+ 	done
+ install-ps: install-ps-am
+ 
+ install-ps-am: $(PSS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
+ 	@list='$(PSS)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  f=$(am__strip_dir) \
+ 	  echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(psdir)/$$f'"; \
+ 	  $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(psdir)/$$f"; \
+ 	done
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-1 \
+ 	maintainer-clean-aminfo maintainer-clean-generic \
+ 	maintainer-clean-vti
+ 
+ mostlyclean: mostlyclean-am
+ 
+ mostlyclean-am: mostlyclean-1 mostlyclean-aminfo mostlyclean-generic \
+ 	mostlyclean-vti
+ 
+ pdf: pdf-am
+ 
+ pdf-am: $(PDFS)
+ 
+ ps: ps-am
+ 
+ ps-am: $(PSS)
+ 
+ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
+ 	uninstall-man uninstall-pdf-am uninstall-ps-am
+ 
+ uninstall-man: uninstall-man1 uninstall-man5
+ 
+ .MAKE: install-am install-strip
+ 
+ .PHONY: all all-am check check-am clean clean-generic dist-info \
+ 	distclean distclean-generic distdir dvi dvi-am html html-am \
+ 	info info-am install install-am install-data install-data-am \
+ 	install-data-local install-dvi install-dvi-am install-exec \
+ 	install-exec-am install-html install-html-am install-info \
+ 	install-info-am install-man install-man1 install-man5 \
+ 	install-pdf install-pdf-am install-ps install-ps-am \
+ 	install-strip installcheck installcheck-am installdirs \
+ 	maintainer-clean maintainer-clean-1 maintainer-clean-aminfo \
+ 	maintainer-clean-generic maintainer-clean-vti mostlyclean \
+ 	mostlyclean-1 mostlyclean-aminfo mostlyclean-generic \
+ 	mostlyclean-vti pdf pdf-am ps ps-am uninstall uninstall-am \
+ 	uninstall-dvi-am uninstall-html-am uninstall-info-am \
+ 	uninstall-man uninstall-man1 uninstall-man5 uninstall-pdf-am \
+ 	uninstall-ps-am
+ 
+ 	     $(refcard_files)
+ 
+ @INSTALL_WARNINGS_TRUE@install-data-local:
+ @INSTALL_WARNINGS_TRUE@	@echo
+ @INSTALL_WARNINGS_TRUE@	@echo "WARNING: If your texmf tree does not already contain"
+ @INSTALL_WARNINGS_TRUE@	@echo "         up-to-date versions, you must install"
+ @INSTALL_WARNINGS_TRUE@	@echo "             texinfo.tex and txi-??.tex manually,"
+ @INSTALL_WARNINGS_TRUE@	@echo "         perhaps in TEXMF/tex/texinfo/,"
+ @INSTALL_WARNINGS_TRUE@	@echo "         where TEXMF is a root of your TeX tree."
+ @INSTALL_WARNINGS_TRUE@	@echo "         See doc/README for some considerations."
+ @INSTALL_WARNINGS_TRUE@	@echo "         You can run make TEXMF=/your/texmf install-tex to do this."
+ @INSTALL_WARNINGS_TRUE@	@echo
+ @INSTALL_WARNINGS_TRUE@	@echo "         You may also need to install epsf.tex in"
+ @INSTALL_WARNINGS_TRUE@	@echo "         TEXMF/tex/generic/dvips, if your TeX"
+ @INSTALL_WARNINGS_TRUE@	@echo "         installation did not include it."
+ install-tex:
+ 	test -n "$(TEXMF)" || (echo "TEXMF must be set." >&2; exit 1)
+ 	$(mkinstalldirs) $(DESTDIR)$(texmf_texinfo) $(DESTDIR)$(texmf_dvips)
+ 	$(INSTALL_DATA) $(srcdir)/texinfo.tex $(DESTDIR)$(texmf_texinfo)/texinfo.tex
+ 	$(INSTALL_DATA) $(srcdir)/epsf.tex $(DESTDIR)$(texmf_dvips)/epsf.tex
+ 	for f in $(TXI_XLATE); do \
+ 	  $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(texmf_texinfo)/$$f; done
+ 
+ $(srcdir)/info.1: $(top_srcdir)/info/info.c $(common_mandeps)
+ 	@name="read Info documents" && $(man_rule_bin)
+ $(srcdir)/infokey.1: $(top_srcdir)/info/infokey.c $(common_mandeps)
+ 	@name="compile customizations for Info" && $(man_rule_bin)
+ $(srcdir)/install-info.1: $(top_srcdir)/install-info/install-info.c $(common_mandeps)
+ 	@name="update info/dir entries" && $(man_rule_bin)
+ 
+ # Here we need some postprocessing:
+ $(srcdir)/makeinfo.1: $(top_srcdir)/makeinfo/makeinfo.c $(common_mandeps)
+ 	@name="translate Texinfo documents" && $(man_rule_bin)
+ 	mv $@ $@.tmp
+ 	sed '/^\.IP$$/N;/\nAlso/s/I//;/\nThe/s/I//' $@.tmp >$@
+ 	rm $@.tmp
+ 
+ $(srcdir)/texindex.1: $(util_srcdir)/texindex.c $(common_mandeps)
+ 	@name="sort Texinfo index files" && $(man_rule_bin)
+ 
+ $(srcdir)/texi2dvi.1: $(common_texi2dvi_deps)
+ 	$(change_envvars); $(HELP2MAN) --name="convert Texinfo documents to DVI" $(util_srcdir)/texi2dvi >$@
+ 
+ $(srcdir)/texi2pdf.1: $(common_texi2dvi_deps)
+ 	$(change_envvars); $(HELP2MAN) --name="convert Texinfo documents to PDF" $(util_srcdir)/texi2pdf >$@
+ 
+ $(srcdir)/pdftexi2dvi.1:  $(common_texi2dvi_deps)
+ 	$(change_envvars); $(HELP2MAN) --name="convert Texinfo documents to PDF" $(util_srcdir)/pdftexi2dvi >$@
+ 
+ # Do not create info files for distribution.
+ dist-info:
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/doc/README texinfo-4.13/doc/README
*** texinfo-4.12/doc/README	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/README	Mon Jul  2 14:40:32 2007
***************
*** 0 ****
--- 1,44 ----
+ $Id: README,v 1.5 2007/07/02 21:40:32 olegkat Exp $
+ texinfo/doc/README
+ 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ This directory contains documentation on the Texinfo system and the TeX
+ sources needed to process Texinfo sources.  We recommend using the
+ texi2dvi included in this distribution to run a Texinfo manual through
+ TeX to produce a DVI file.
+ 
+ The .tex files are not installed automatically because TeX installations
+ vary so widely.  Installing them in the wrong place would give a false
+ sense of security.  So, you should simply cp *.tex to the appropriate
+ place.  If your installation follows the TeX Directory Structure
+ standard (http://tug.org/tds/), this will be the directory
+ TEXMF/tex/texinfo/ for texinfo.tex, and TEXMF/tex/generic/dvips/ for
+ epsf.tex.  If you use the default installation paths, TEXMF will be
+ /usr/local/share/texmf.  On systems with TeX preinstalled, as most
+ GNU/Linux distributions offer, TEXMF will often be something like
+ /usr/share/texmf.
+ 
+ It is also possible to put these .tex files in a `local' place instead
+ of overwriting existing ones, but this is more complicated.  See your TeX
+ documentation in general and the texmf.cnf file in particular for information.
+ 
+ If you add files to your TeX installations, not just replace existing
+ ones, you very likely have to update your ls-R file; do this with the
+ mktexlsr command.  In older versions, this was named MakeTeXls-R.
+ 
+ You can get the latest texinfo.tex from
+ ftp://ftp.gnu.org/gnu/texinfo/texinfo.tex (and all GNU mirrors)
+ ftp://tug.org/tex/texinfo.tex (and all CTAN mirrors)
+ or on the FSF machines in /home/gd/gnu/doc/texinfo.tex.
+ If you have problems with the version in this distribution, please check
+ for a newer version.
+ 
+ epsf.tex comes with dvips distributions, and you may already have it
+ installed.  The version here is functionally identical but slightly
+ nicer than the one in dvips574.  The changes have been sent to the
+ epsf.tex maintainer.
diff -Nrc2 texinfo-4.12/doc/epsf.tex texinfo-4.13/doc/epsf.tex
*** texinfo-4.12/doc/epsf.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/epsf.tex	Wed Aug 17 06:09:13 2005
***************
*** 0 ****
--- 1,644 ----
+ %%% -*-TeX-*-
+ %%% ====================================================================
+ %%%  @TeX-file{
+ %%%     author          = "Tom Rokicki",
+ %%%     version         = "2.7.3",
+ %%%     date            = "23 July 2005",
+ %%%     time            = "14:32:01 MDT",
+ %%%     filename        = "epsf.tex",
+ %%%     address         = "Tom Rokicki
+ %%%                        Box 2081
+ %%%                        Stanford, CA 94309
+ %%%                        USA",
+ %%%     telephone       = "+1 415 855 9989",
+ %%%     checksum        = "20914 644 3054 26594",
+ %%%     email           = "rokicki@cs.stanford.edu (Internet)",
+ %%%     codetable       = "ISO/ASCII",
+ %%%     copyright       = "This file is freely redistributable and
+ %%%                        placed into the public domain by Tomas
+ %%%                        Rokicki.",
+ %%%     keywords        = "PostScript, TeX",
+ %%%     supported       = "yes",
+ %%%     abstract        = "This file contains macros to support the
+ %%%                        inclusion of Encapsulated PostScript files
+ %%%                        in TeX documents.",
+ %%%     docstring       = "This file contains TeX macros to include an
+ %%%                        Encapsulated PostScript graphic.  It works
+ %%%                        by finding the bounding box comment,
+ %%%                        calculating the correct scale values, and
+ %%%                        inserting a vbox of the appropriate size at
+ %%%                        the current position in the TeX document.
+ %%%
+ %%%                        To use, simply use
+ %%%
+ %%%                        \input epsf % somewhere early on in your TeX file
+ %%%
+ %%%                        % then where you want to insert a vbox for a figure:
+ %%%                        \epsfbox{filename.ps}
+ %%%
+ %%%                        Alternatively, you can supply your own
+ %%%                        bounding box by
+ %%%
+ %%%                        \epsfbox[0 0 30 50]{filename.ps}
+ %%%
+ %%%                        This will not read in the file, and will
+ %%%                        instead use the bounding box you specify.
+ %%%
+ %%%                        The effect will be to typeset the figure as
+ %%%                        a TeX box, at the point of your \epsfbox
+ %%%                        command. By default, the graphic will have
+ %%%                        its `natural' width (namely the width of
+ %%%                        its bounding box, as described in
+ %%%                        filename.ps). The TeX box will have depth
+ %%%                        zero.
+ %%%
+ %%%                        You can enlarge or reduce the figure by
+ %%%                        using
+ %%%
+ %%%                          \epsfxsize = <dimen> \epsfbox{filename.ps}
+ %%%                        or
+ %%%                          \epsfysize = <dimen> \epsfbox{filename.ps}
+ %%%
+ %%%                        instead. Then the width of the TeX box will
+ %%%                        be \epsfxsize and its height will be scaled
+ %%%                        proportionately (or the height will be
+ %%%                        \epsfysize and its width will be scaled
+ %%%                        proportionately).
+ %%%
+ %%%                        The width (and height) is restored to zero
+ %%%                        after each use, so \epsfxsize or \epsfysize
+ %%%                        must be specified before EACH use of
+ %%%                        \epsfbox.
+ %%%
+ %%%                        A more general facility for sizing is
+ %%%                        available by defining the \epsfsize macro.
+ %%%                        Normally you can redefine this macro to do
+ %%%                        almost anything.  The first parameter is
+ %%%                        the natural x size of the PostScript
+ %%%                        graphic, the second parameter is the
+ %%%                        natural y size of the PostScript graphic.
+ %%%                        It must return the xsize to use, or 0 if
+ %%%                        natural scaling is to be used.  Common uses
+ %%%                        include:
+ %%%
+ %%%                           \epsfxsize  % just leave the old value alone
+ %%%                           0pt         % use the natural sizes
+ %%%                           #1          % use the natural sizes
+ %%%                           \hsize      % scale to full width
+ %%%                           0.5#1       % scale to 50% of natural size
+ %%%                           \ifnum #1 > \hsize \hsize \else #1\fi
+ %%%                                       % smaller of natural, hsize
+ %%%
+ %%%                        If you want TeX to report the size of the
+ %%%                        figure (as a message on your terminal when
+ %%%                        it processes each figure), use
+ %%%                        `\epsfverbosetrue'.
+ %%%
+ %%%                        If you only want to get the bounding box
+ %%%                        extents, without producing any output boxes
+ %%%                        or \special{}, then use \epsfgetbb{filename}.
+ %%%                        The bounding box corner coordinates are saved
+ %%%                        in the macros \epsfllx, \epsflly, \epsfurx,
+ %%%                        and \epsfury in PostScript units of big
+ %%%                        points.
+ %%%
+ %%%                        Revision history:
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        epsf.tex macro file:
+ %%%                        Originally written by Tomas Rokicki of
+ %%%                        Radical Eye Software, 29 Mar 1989.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Don Knuth, 3 Jan 1990.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Tomas Rokicki, 18 Jul 1990.
+ %%%                        Accept bounding boxes with no space after
+ %%%                        the colon.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 03 Dec 1991 [2.0].
+ %%%                        Add version number and date typeout.
+ %%%
+ %%%                        Use \immediate\write16 instead of \message
+ %%%                        to ensure output on new line.
+ %%%
+ %%%                        Handle nested EPS files.
+ %%%
+ %%%                        Handle %%BoundingBox: (atend) lines.
+ %%%
+ %%%                        Do not quit when blank lines are found.
+ %%%
+ %%%                        Add a few percents to remove generation of
+ %%%                        spurious blank space.
+ %%%
+ %%%                        Move \special output to
+ %%%                        \epsfspecial{filename} so that other macro
+ %%%                        packages can input this one, then change
+ %%%                        the definition of \epsfspecial to match
+ %%%                        another DVI driver.
+ %%%
+ %%%                        Move size computation to \epsfsetsize which
+ %%%                        can be called by the user; the verbose
+ %%%                        output of the bounding box and scaled width
+ %%%                        and height happens here.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 05 May 1992 [2.1].
+ %%%                        Wrap \leavevmode\hbox{} around \vbox{} with
+ %%%                        the \special so that \epsffile{} can be
+ %%%                        used inside \begin{center}...\end{center}
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 09 Dec 1992 [2.2].
+ %%%                        Introduce \epsfshow{true,false} and
+ %%%                        \epsfframe{true,false} macros; the latter
+ %%%                        suppresses the insertion of the PostScript,
+ %%%                        and instead just creates an empty box,
+ %%%                        which may be handy for rapid prototyping.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 14 Dec 1992 [2.3].
+ %%%                        Add \epsfshowfilename{true,false}.  When
+ %%%                        true, and \epsfshowfalse is specified, the
+ %%%                        PostScript file name will be displayed
+ %%%                        centered in the figure box.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 20 June 1993 [2.4].
+ %%%                        Remove non-zero debug setting of \epsfframemargin,
+ %%%                        and change margin handling to preserve EPS image
+ %%%                        size and aspect ratio, so that the actual
+ %%%                        box is \epsfxsize+\epsfframemargin wide by
+ %%%                        \epsfysize+\epsfframemargin high.
+ %%%                        Reduce output of \epsfshowfilenametrue to
+ %%%                        just the bare file name.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 13 July 1993 [2.5].
+ %%%                        Add \epsfframethickness for control of
+ %%%                        \epsfframe frame lines.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 02 July 1996 [2.6]
+ %%%                        Add missing initialization \epsfatendfalse;
+ %%%                        the lack of this resulted in the wrong
+ %%%                        BoundingBox being picked up, mea culpa, sigh...
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 25 October 1996 [2.7]
+ %%%                        Update to match changes in from dvips 5-600
+ %%%                        distribution: new user-accessible macros:
+ %%%                        \epsfclipon, \epsfclipoff, \epsfdrafton,
+ %%%                        \epsfdraftoff, change \empty to \epsfempty.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 18 May 2002 [2.7.1]
+ %%%                        Add write statements to echo input file
+ %%%                        names.  Prior to that change, an error in
+ %%%                        such a file could be quite hard to track
+ %%%                        down: a long list of TeX page numbers could
+ %%%                        suddenly be followed by ``TeX buffer
+ %%%                        capacity'' exceeded, without any indication
+ %%%                        of the file that was responsible.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, 16 May 2003 [2.7.2]
+ %%%                        Supply two critical percent characters that
+ %%%                        were mistakenly omitted in version 2.7.1,
+ %%%                        and resulted in a small amount of spurious
+ %%%                        horizontal space.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        Revised by Nelson H. F. Beebe
+ %%%                        <beebe@math.utah.edu>, Karl Berry
+ %%%                        <karl@freefriends.org>, and Robin Fairbairns
+ %%%                        <Robin.Fairbairns@cl.cam.ac.uk>,
+ %%%                        23 July 2005 [2.7.3]
+ %%%                        Add critical \hbox{} wrapper in \epsfsetgraph
+ %%%                        so that \epsfbox{} does not conflict with
+ %%%                        LaTeX center environment when \epsfbox{} is
+ %%%                        surrounded by other horizonal objects.
+ %%%                        Improve macro readability by adding legal,
+ %%%                        but invisible-in-typeset-output, spaces.
+ %%%                        Ensure that verbose status reports come
+ %%%                        inside (filename ...) list.
+ %%%
+ %%%                        ---------------------------------------------
+ %%%                        The checksum field above contains a CRC-16
+ %%%                        checksum as the first value, followed by
+ %%%                        the equivalent of the standard UNIX wc
+ %%%                        (word count) utility output of lines,
+ %%%                        words, and characters.  This is produced by
+ %%%                        Robert Solovay's checksum utility.",
+ %%%  }
+ %%% ====================================================================
+ 
+ %\immediate \write16 {This is `epsf.tex' v2.0 <02 Dec 1991>}%
+ %\immediate \write16 {This is `epsf.tex' v2.1 <05 May 1992>}%
+ %\immediate \write16 {This is `epsf.tex' v2.2 <09 Dec 1992>}%
+ %\immediate \write16 {This is `epsf.tex' v2.3 <14 Dec 1992>}%
+ %\immediate \write16 {This is `epsf.tex' v2.4 <20 June 1993>}%
+ %\immediate \write16 {This is `epsf.tex' v2.5 <13 July 1993>}%
+ %\immediate \write16 {This is `epsf.tex' v2.6 <02 July 1996>}%
+ %\immediate \write16 {This is `epsf.tex' v2.7 <25 October 1996>}%
+ %\immediate \write16 {This is `epsf.tex' v2.7.1 <18 May 2002>}%
+ %\immediate \write16 {This is `epsf.tex' v2.7.2 <16 May 2003>}%
+ \immediate \write16 {This is `epsf.tex' v2.7.3 <23 July 2005>}%
+ %
+ \newread \epsffilein    % file to \read
+ \newif \ifepsfatend     % need to scan to LAST %%BoundingBox comment?
+ \newif \ifepsfbbfound   % success?
+ \newif \ifepsfdraft     % use draft mode?
+ \newif \ifepsffileok    % continue looking for the bounding box?
+ \newif \ifepsfframe     % frame the bounding box?
+ \newif \ifepsfshow      % show PostScript file, or just bounding box?
+ \epsfshowtrue          % default is to display PostScript file
+ \newif \ifepsfshowfilename % show the file name if \epsfshowfalse specified?
+ \newif \ifepsfverbose   % report what you're making?
+ \newdimen \epsfframemargin % margin between box and frame
+ \newdimen \epsfframethickness % thickness of frame rules
+ \newdimen \epsfrsize    % vertical size before scaling
+ \newdimen \epsftmp      % register for arithmetic manipulation
+ \newdimen \epsftsize    % horizontal size before scaling
+ \newdimen \epsfxsize    % horizontal size after scaling
+ \newdimen \epsfysize    % vertical size after scaling
+ \newdimen \pspoints     % conversion factor
+ %
+ \pspoints = 1bp        % Adobe points are `big'
+ \epsfxsize = 0pt       % default value, means `use natural size'
+ \epsfysize = 0pt       % ditto
+ \epsfframemargin = 0pt % default value: frame box flush around picture
+ \epsfframethickness = 0.4pt % TeX's default rule thickness
+ %
+ \def \epsfbox #1{%
+     \global \def \epsfllx {72}%
+     \global \def \epsflly {72}%
+     \global \def \epsfurx {540}%
+     \global \def \epsfury {720}%
+     \def \lbracket {[}%
+     \def \testit {#1}%
+     \ifx \testit \lbracket
+         \let \next = \epsfgetlitbb
+     \else
+         \let \next = \epsfnormal
+     \fi
+     \next{#1}%
+ }%
+ %
+ % We use \epsfgetlitbb if the user specified an explicit bounding box,
+ % and \epsfnormal otherwise.  Because \epsfgetbb can be called
+ % separately to retrieve the bounding box, we move the verbose
+ % printing the bounding box extents and size on the terminal to
+ % \epsfstatus.  Therefore, when the user provided the bounding box,
+ % \epsfgetbb will not be called, so we must call \epsfsetsize and
+ % \epsfstatus ourselves.
+ %
+ \def \epsfgetlitbb #1#2 #3 #4 #5]#6{%
+    \epsfgrab #2 #3 #4 #5 .\\%
+    \epsfsetsize
+    \epsfstatus{#6}%
+    \epsfsetgraph{#6}%
+ }%
+ %
+ \def \epsfnormal #1{%
+     \epsfgetbb{#1}%
+     \epsfsetgraph{#1}%
+ }%
+ %
+ \def \epsfgetbb #1{%
+ %
+ %   The first thing we need to do is to open the
+ %   PostScript file, if possible.
+ %
+     \openin\epsffilein=#1
+     \immediate \write16 {(#1}%
+     \ifeof \epsffilein
+         \errmessage{Could not open file #1, ignoring it}%
+     \else                       %process the file
+         {%                      %start a group to contain catcode changes
+             % Make all special characters, except space, to be of type
+             % `other' so we process the file in almost verbatim mode
+             % (TeXbook, p. 344).
+             \chardef \other = 12%
+             \def \do ##1{\catcode`##1=\other}%
+             \dospecials
+             \catcode `\ = 10%
+             \epsffileoktrue        %true while we are looping
+             \epsfatendfalse        %[02-Jul-1996]: add forgotten initialization
+             \loop                  %reading lines from the EPS file
+                 \read \epsffilein to \epsffileline
+                 \ifeof \epsffilein %then no more input
+                 \epsffileokfalse   %so set completion flag
+             \else                  %otherwise process one line
+                 \expandafter \epsfaux \epsffileline :. \\%
+             \fi
+             \ifepsffileok
+             \repeat
+             \ifepsfbbfound
+             \else
+                 \ifepsfverbose
+                     \immediate \write16 {No BoundingBox comment found in %
+                                          file #1; using defaults}%
+                 \fi
+             \fi
+         }%                      %end catcode changes
+         \closein\epsffilein
+     \fi                         %end of file processing
+     \epsfsetsize                %compute size parameters
+     \epsfstatus{#1}%
+     \immediate \write16 {)}%
+ }%
+ %
+ % Clipping control:
+ \def \epsfclipon  {\def \epsfclipstring { clip}}%
+ \def \epsfclipoff {\def \epsfclipstring {\ifepsfdraft \space clip\fi}}%
+ \epsfclipoff % default for dvips is OFF
+ %
+ % The special that is emitted by \epsfsetgraph comes from this macro.
+ % It is defined separately to allow easy customization by other
+ % packages that first \input epsf.tex, then redefine \epsfspecial.
+ % This macro is invoked in the lower-left corner of a box of the
+ % width and height determined from the arguments to \epsffile, or
+ % from the %%BoundingBox in the EPS file itself.
+ %
+ % This version is for dvips:
+ \def \epsfspecial #1{%
+      \epsftmp=10\epsfxsize
+      \divide \epsftmp by \pspoints
+      \ifnum \epsfrsize = 0%
+        \relax
+        \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
+ 		llx=\epsfllx\space
+ 		lly=\epsflly\space
+ 		urx=\epsfurx\space
+ 		ury=\epsfury\space
+ 		rwi=\number\epsftmp
+ 		\epsfclipstring
+                }%
+      \else
+        \epsfrsize=10\epsfysize
+        \divide \epsfrsize by \pspoints
+        \special{PSfile=\ifepsfdraft psdraft.ps\else#1\fi\space
+ 		llx=\epsfllx\space
+ 		lly=\epsflly\space
+ 		urx=\epsfurx\space
+ 		ury=\epsfury\space
+ 		rwi=\number\epsftmp
+ 		rhi=\number\epsfrsize
+ 		\epsfclipstring
+                }%
+      \fi
+ }%
+ %
+ % \epsfframe macro adapted from the TeXbook, exercise 21.3, p. 223, 331.
+ % but modified to set the box width to the natural width, rather
+ % than the line width, and to include space for margins and rules
+ \def \epsfframe #1%
+ {%
+  % method for detecting latex suggested by Robin Fairbairns, May 2005.
+   \ifx \documentstyle \epsfundefined
+     \relax
+   \else
+ %    \leavevmode                   % so we can put this inside
+                                   % a latex centered environment
+     % The \leavevmode breaks under plain when this is inside a box,
+     % because it forces the figure to be the entire \hsize.  On the
+     % other hand, we need the \leavevmode for it to work in LaTeX,
+     % because the {center} environment works by adjusting TeX's
+     % paragraph parameters.
+     %
+     % Compare the LaTeX sequence
+     % \begin{center}
+     %   \epsfbox{tip.eps}q
+     % \end{center}
+     % (needs the \leavevmode to put the q right next to the image)
+     %
+     % with the plain TeX sequence:
+     % \leftline{\vbox{\epsfbox{tip.eps}}q}
+     % (had the q all the way over to the right, when \leavevmode was used)
+   \fi
+   %
+   \setbox0 = \hbox{#1}%
+   \dimen0 = \wd0                                % natural width of argument
+   \advance \dimen0 by 2\epsfframemargin         % plus width of 2 margins
+   \advance \dimen0 by 2\epsfframethickness      % plus width of 2 rule lines
+   \relax
+   \hbox{%
+     \vbox
+     {%
+       \hrule height \epsfframethickness depth 0pt
+       \hbox to \dimen0
+       {%
+ 	\hss
+ 	\vrule width \epsfframethickness
+ 	\kern \epsfframemargin
+ 	\vbox {\kern \epsfframemargin \box0 \kern \epsfframemargin }%
+ 	\kern \epsfframemargin
+ 	\vrule width \epsfframethickness
+ 	\hss
+       }% end hbox
+       \hrule height 0pt depth \epsfframethickness
+     }% end vbox
+   }% end hbox
+   \relax
+ }%
+ %
+ \def \epsfsetgraph #1%
+ {%
+    %
+    % Make the vbox and stick in a \special that the DVI driver can
+    % parse.  \vfil and \hfil are used to place the \special origin at
+    % the lower-left corner of the vbox.  \epsfspecial can be redefined
+    % to produce alternate \special syntaxes.
+    %
+    \ifvmode \leavevmode \fi
+    \relax
+    \hbox{% so we can put this in \begin{center}...\end{center}
+      \ifepsfframe \expandafter \epsfframe \fi
+      {\vbox to\epsfysize
+      {%
+         \ifepsfshow
+             % output \special{} at lower-left corner of figure box
+             \vfil
+             \hbox to \epsfxsize{\epsfspecial{#1}\hfil}%
+         \else
+             \vfil
+             \hbox to\epsfxsize{%
+                \hss
+                \ifepsfshowfilename
+                {%
+                   \epsfframemargin=3pt % local change of margin
+                   \epsfframe{{\tt #1}}%
+                }%
+                \fi
+                \hss
+             }%
+             \vfil
+         \fi
+      }%
+    }}%
+    \relax
+    %
+    % Reset \epsfxsize and \epsfysize, as documented above.
+    %
+    \global \epsfxsize = 0pt
+    \global \epsfysize = 0pt
+ }%
+ %
+ %   Now we have to calculate the scale and offset values to use.
+ %   First we compute the natural sizes.
+ %
+ \def \epsfsetsize
+ {%
+    \epsfrsize = \epsfury \pspoints
+    \advance \epsfrsize by -\epsflly \pspoints
+    \epsftsize = \epsfurx \pspoints
+    \advance \epsftsize by -\epsfllx \pspoints
+ %
+ %   If `epsfxsize' is 0, we default to the natural size of the picture.
+ %   Otherwise we scale the graph to be \epsfxsize wide.
+ %
+    \epsfxsize = \epsfsize{\epsftsize}{\epsfrsize}%
+    \ifnum \epsfxsize = 0
+       \ifnum \epsfysize = 0
+ 	\epsfxsize = \epsftsize
+         \epsfysize = \epsfrsize
+ 	\epsfrsize = 0pt
+ %
+ %   We have a sticky problem here:  TeX doesn't do floating point arithmetic!
+ %   Our goal is to compute y = rx/t. The following loop does this reasonably
+ %   fast, with an error of at most about 16 sp (about 1/4000 pt).
+ %
+       \else
+ 	\epsftmp = \epsftsize
+         \divide \epsftmp by \epsfrsize
+ 	\epsfxsize = \epsfysize
+         \multiply \epsfxsize by \epsftmp
+ 	\multiply \epsftmp by \epsfrsize
+         \advance \epsftsize by -\epsftmp
+ 	\epsftmp = \epsfysize
+ 	\loop
+         \advance \epsftsize by \epsftsize
+         \divide \epsftmp by 2
+ 	\ifnum \epsftmp > 0
+ 	   \ifnum \epsftsize < \epsfrsize
+            \else
+ 	      \advance \epsftsize -\epsfrsize
+               \advance \epsfxsize \epsftmp
+            \fi
+ 	\repeat
+ 	\epsfrsize = 0pt
+       \fi
+    \else
+      \ifnum \epsfysize = 0
+        \epsftmp = \epsfrsize
+        \divide \epsftmp by \epsftsize
+        \epsfysize = \epsfxsize
+        \multiply \epsfysize by \epsftmp
+        \multiply \epsftmp by \epsftsize
+        \advance \epsfrsize by -\epsftmp
+        \epsftmp = \epsfxsize
+        \loop
+ 	 \advance \epsfrsize by \epsfrsize
+ 	 \divide \epsftmp by 2
+        \ifnum \epsftmp > 0
+ 	  \ifnum \epsfrsize < \epsftsize
+           \else
+ 	     \advance \epsfrsize by -\epsftsize
+              \advance \epsfysize by \epsftmp
+           \fi
+        \repeat
+        \epsfrsize = 0pt
+      \else
+        \epsfrsize = \epsfysize
+      \fi
+    \fi
+ }%
+ %
+ % Issue some status messages if the user requested them
+ %
+ \def \epsfstatus #1{% arg = filename
+    \ifepsfverbose
+      \immediate \write16 {#1: BoundingBox:
+ 			  llx = \epsfllx \space lly = \epsflly \space
+ 			  urx = \epsfurx \space ury = \epsfury \space}%
+      \immediate \write16 {#1: scaled width = \the\epsfxsize \space
+ 			  scaled height = \the\epsfysize}%
+    \fi
+ }%
+ %
+ %   We still need to define the tricky \epsfaux macro. This requires
+ %   a couple of magic constants for comparison purposes.
+ %
+ {\catcode`\%=12 \global \let \epsfpercent=%\global \def \epsfbblit {%BoundingBox}}%
+ \global \def \epsfatend{(atend)}%
+ %
+ %   So we're ready to check for `%BoundingBox:' and to grab the
+ %   values if they are found.
+ %
+ %   If we find a line
+ %
+ %   %%BoundingBox: (atend)
+ %
+ %   then we ignore it, but set a flag to force parsing all of the
+ %   file, so the last %%BoundingBox parsed will be the one used.  This
+ %   is necessary, because EPS files can themselves contain other EPS
+ %   files with their own %%BoundingBox comments.
+ %
+ %   If we find a line
+ %
+ %   %%BoundingBox: llx lly urx ury
+ %
+ %   then we save the 4 values in \epsfllx, \epsflly, \epsfurx, \epsfury.
+ %   Then, if we have not previously parsed an (atend), we flag completion
+ %   and can stop reading the file.  Otherwise, we must keep on reading
+ %   to end of file so that we find the values on the LAST %%BoundingBox.
+ \long \def \epsfaux#1#2:#3\\%
+ {%
+    \def \testit {#2}%           % save second character up to just before colon
+    \ifx#1\epsfpercent           % then first char is percent (quick test)
+        \ifx \testit \epsfbblit  % then (slow test) we have %%BoundingBox
+             \epsfgrab #3 . . . \\%
+             \ifx \epsfllx\epsfatend % then ignore %%BoundingBox: (atend)
+                 \global \epsfatendtrue
+             \else               % else found %%BoundingBox: llx lly urx ury
+                 \ifepsfatend    % then keep parsing ALL %%BoundingBox lines
+                 \else           % else stop after first one parsed
+                     \epsffileokfalse
+                 \fi
+                 \global \epsfbbfoundtrue
+             \fi
+        \fi
+    \fi
+ }%
+ %
+ %   Here we grab the values and stuff them in the appropriate definitions.
+ %
+ \def \epsfempty {}%
+ \def \epsfgrab #1 #2 #3 #4 #5\\{%
+    \global \def \epsfllx {#1}\ifx \epsfllx\epsfempty
+       \epsfgrab #2 #3 #4 #5 .\\\else
+    \global \def \epsflly {#2}%
+    \global \def \epsfurx {#3}\global \def \epsfury {#4}\fi
+ }%
+ %
+ %   We default the epsfsize macro.
+ %
+ \def \epsfsize #1#2{\epsfxsize}%
+ %
+ %   Finally, another definition for compatibility with older macros.
+ %
+ \let \epsffile = \epsfbox
+ \endinput
diff -Nrc2 texinfo-4.12/doc/fdl.texi texinfo-4.13/doc/fdl.texi
*** texinfo-4.12/doc/fdl.texi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/fdl.texi	Sun Jul 15 10:36:57 2007
***************
*** 0 ****
--- 1,451 ----
+ @c The GNU Free Documentation License.
+ @center Version 1.2, November 2002
+ 
+ @c This file is intended to be included within another document,
+ @c hence no sectioning command or @node.  
+ 
+ @display
+ Copyright @copyright{} 2000,2001,2002 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+ 
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+ @end display
+ 
+ @enumerate 0
+ @item
+ PREAMBLE
+ 
+ The purpose of this License is to make a manual, textbook, or other
+ functional and useful document @dfn{free} in the sense of freedom: to
+ assure everyone the effective freedom to copy and redistribute it,
+ with or without modifying it, either commercially or noncommercially.
+ Secondarily, this License preserves for the author and publisher a way
+ to get credit for their work, while not being considered responsible
+ for modifications made by others.
+ 
+ This License is a kind of ``copyleft'', which means that derivative
+ works of the document must themselves be free in the same sense.  It
+ complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+ 
+ We have designed this License in order to use it for manuals for free
+ software, because free software needs free documentation: a free
+ program should come with manuals providing the same freedoms that the
+ software does.  But this License is not limited to software manuals;
+ it can be used for any textual work, regardless of subject matter or
+ whether it is published as a printed book.  We recommend this License
+ principally for works whose purpose is instruction or reference.
+ 
+ @item
+ APPLICABILITY AND DEFINITIONS
+ 
+ This License applies to any manual or other work, in any medium, that
+ contains a notice placed by the copyright holder saying it can be
+ distributed under the terms of this License.  Such a notice grants a
+ world-wide, royalty-free license, unlimited in duration, to use that
+ work under the conditions stated herein.  The ``Document'', below,
+ refers to any such manual or work.  Any member of the public is a
+ licensee, and is addressed as ``you''.  You accept the license if you
+ copy, modify or distribute the work in a way requiring permission
+ under copyright law.
+ 
+ A ``Modified Version'' of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+ 
+ A ``Secondary Section'' is a named appendix or a front-matter section
+ of the Document that deals exclusively with the relationship of the
+ publishers or authors of the Document to the Document's overall
+ subject (or to related matters) and contains nothing that could fall
+ directly within that overall subject.  (Thus, if the Document is in
+ part a textbook of mathematics, a Secondary Section may not explain
+ any mathematics.)  The relationship could be a matter of historical
+ connection with the subject or with related matters, or of legal,
+ commercial, philosophical, ethical or political position regarding
+ them.
+ 
+ The ``Invariant Sections'' are certain Secondary Sections whose titles
+ are designated, as being those of Invariant Sections, in the notice
+ that says that the Document is released under this License.  If a
+ section does not fit the above definition of Secondary then it is not
+ allowed to be designated as Invariant.  The Document may contain zero
+ Invariant Sections.  If the Document does not identify any Invariant
+ Sections then there are none.
+ 
+ The ``Cover Texts'' are certain short passages of text that are listed,
+ as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+ the Document is released under this License.  A Front-Cover Text may
+ be at most 5 words, and a Back-Cover Text may be at most 25 words.
+ 
+ A ``Transparent'' copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ straightforwardly with generic text editors or (for images composed of
+ pixels) generic paint programs or (for drawings) some widely available
+ drawing editor, and that is suitable for input to text formatters or
+ for automatic translation to a variety of formats suitable for input
+ to text formatters.  A copy made in an otherwise Transparent file
+ format whose markup, or absence of markup, has been arranged to thwart
+ or discourage subsequent modification by readers is not Transparent.
+ An image format is not Transparent if used for any substantial amount
+ of text.  A copy that is not ``Transparent'' is called ``Opaque''.
+ 
+ Examples of suitable formats for Transparent copies include plain
+ @sc{ascii} without markup, Texinfo input format, La@TeX{} input
+ format, @acronym{SGML} or @acronym{XML} using a publicly available
+ @acronym{DTD}, and standard-conforming simple @acronym{HTML},
+ PostScript or @acronym{PDF} designed for human modification.  Examples
+ of transparent image formats include @acronym{PNG}, @acronym{XCF} and
+ @acronym{JPG}.  Opaque formats include proprietary formats that can be
+ read and edited only by proprietary word processors, @acronym{SGML} or
+ @acronym{XML} for which the @acronym{DTD} and/or processing tools are
+ not generally available, and the machine-generated @acronym{HTML},
+ PostScript or @acronym{PDF} produced by some word processors for
+ output purposes only.
+ 
+ The ``Title Page'' means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the material
+ this License requires to appear in the title page.  For works in
+ formats which do not have any title page as such, ``Title Page'' means
+ the text near the most prominent appearance of the work's title,
+ preceding the beginning of the body of the text.
+ 
+ A section ``Entitled XYZ'' means a named subunit of the Document whose
+ title either is precisely XYZ or contains XYZ in parentheses following
+ text that translates XYZ in another language.  (Here XYZ stands for a
+ specific section name mentioned below, such as ``Acknowledgements'',
+ ``Dedications'', ``Endorsements'', or ``History''.)  To ``Preserve the Title''
+ of such a section when you modify the Document means that it remains a
+ section ``Entitled XYZ'' according to this definition.
+ 
+ The Document may include Warranty Disclaimers next to the notice which
+ states that this License applies to the Document.  These Warranty
+ Disclaimers are considered to be included by reference in this
+ License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and has
+ no effect on the meaning of this License.
+ 
+ @item
+ VERBATIM COPYING
+ 
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License applies
+ to the Document are reproduced in all copies, and that you add no other
+ conditions whatsoever to those of this License.  You may not use
+ technical measures to obstruct or control the reading or further
+ copying of the copies you make or distribute.  However, you may accept
+ compensation in exchange for copies.  If you distribute a large enough
+ number of copies you must also follow the conditions in section 3.
+ 
+ You may also lend copies, under the same conditions stated above, and
+ you may publicly display copies.
+ 
+ @item
+ COPYING IN QUANTITY
+ 
+ If you publish printed copies (or copies in media that commonly have
+ printed covers) of the Document, numbering more than 100, and the
+ Document's license notice requires Cover Texts, you must enclose the
+ copies in covers that carry, clearly and legibly, all these Cover
+ Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+ the back cover.  Both covers must also clearly and legibly identify
+ you as the publisher of these copies.  The front cover must present
+ the full title with all words of the title equally prominent and
+ visible.  You may add other material on the covers in addition.
+ Copying with changes limited to the covers, as long as they preserve
+ the title of the Document and satisfy these conditions, can be treated
+ as verbatim copying in other respects.
+ 
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto adjacent
+ pages.
+ 
+ If you publish or distribute Opaque copies of the Document numbering
+ more than 100, you must either include a machine-readable Transparent
+ copy along with each Opaque copy, or state in or with each Opaque copy
+ a computer-network location from which the general network-using
+ public has access to download using public-standard network protocols
+ a complete Transparent copy of the Document, free of added material.
+ If you use the latter option, you must take reasonably prudent steps,
+ when you begin distribution of Opaque copies in quantity, to ensure
+ that this Transparent copy will remain thus accessible at the stated
+ location until at least one year after the last time you distribute an
+ Opaque copy (directly or through your agents or retailers) of that
+ edition to the public.
+ 
+ It is requested, but not required, that you contact the authors of the
+ Document well before redistributing any large number of copies, to give
+ them a chance to provide you with an updated version of the Document.
+ 
+ @item
+ MODIFICATIONS
+ 
+ You may copy and distribute a Modified Version of the Document under
+ the conditions of sections 2 and 3 above, provided that you release
+ the Modified Version under precisely this License, with the Modified
+ Version filling the role of the Document, thus licensing distribution
+ and modification of the Modified Version to whoever possesses a copy
+ of it.  In addition, you must do these things in the Modified Version:
+ 
+ @enumerate A
+ @item
+ Use in the Title Page (and on the covers, if any) a title distinct
+ from that of the Document, and from those of previous versions
+ (which should, if there were any, be listed in the History section
+ of the Document).  You may use the same title as a previous version
+ if the original publisher of that version gives permission.
+ 
+ @item
+ List on the Title Page, as authors, one or more persons or entities
+ responsible for authorship of the modifications in the Modified
+ Version, together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has fewer than five),
+ unless they release you from this requirement.
+ 
+ @item
+ State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+ 
+ @item
+ Preserve all the copyright notices of the Document.
+ 
+ @item
+ Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+ 
+ @item
+ Include, immediately after the copyright notices, a license notice
+ giving the public permission to use the Modified Version under the
+ terms of this License, in the form shown in the Addendum below.
+ 
+ @item
+ Preserve in that license notice the full lists of Invariant Sections
+ and required Cover Texts given in the Document's license notice.
+ 
+ @item
+ Include an unaltered copy of this License.
+ 
+ @item
+ Preserve the section Entitled ``History'', Preserve its Title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page.  If
+ there is no section Entitled ``History'' in the Document, create one
+ stating the title, year, authors, and publisher of the Document as
+ given on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.
+ 
+ @item
+ Preserve the network location, if any, given in the Document for
+ public access to a Transparent copy of the Document, and likewise
+ the network locations given in the Document for previous versions
+ it was based on.  These may be placed in the ``History'' section.
+ You may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.
+ 
+ @item
+ For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
+ the Title of the section, and preserve in the section all the
+ substance and tone of each of the contributor acknowledgements and/or
+ dedications given therein.
+ 
+ @item
+ Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles.  Section numbers
+ or the equivalent are not considered part of the section titles.
+ 
+ @item
+ Delete any section Entitled ``Endorsements''.  Such a section
+ may not be included in the Modified Version.
+ 
+ @item
+ Do not retitle any existing section to be Entitled ``Endorsements'' or
+ to conflict in title with any Invariant Section.
+ 
+ @item
+ Preserve any Warranty Disclaimers.
+ @end enumerate
+ 
+ If the Modified Version includes new front-matter sections or
+ appendices that qualify as Secondary Sections and contain no material
+ copied from the Document, you may at your option designate some or all
+ of these sections as invariant.  To do this, add their titles to the
+ list of Invariant Sections in the Modified Version's license notice.
+ These titles must be distinct from any other section titles.
+ 
+ You may add a section Entitled ``Endorsements'', provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties---for example, statements of peer review or that the text has
+ been approved by an organization as the authoritative definition of a
+ standard.
+ 
+ You may add a passage of up to five words as a Front-Cover Text, and a
+ passage of up to 25 words as a Back-Cover Text, to the end of the list
+ of Cover Texts in the Modified Version.  Only one passage of
+ Front-Cover Text and one of Back-Cover Text may be added by (or
+ through arrangements made by) any one entity.  If the Document already
+ includes a cover text for the same cover, previously added by you or
+ by arrangement made by the same entity you are acting on behalf of,
+ you may not add another; but you may replace the old one, on explicit
+ permission from the previous publisher that added the old one.
+ 
+ The author(s) and publisher(s) of the Document do not by this License
+ give permission to use their names for publicity for or to assert or
+ imply endorsement of any Modified Version.
+ 
+ @item
+ COMBINING DOCUMENTS
+ 
+ You may combine the Document with other documents released under this
+ License, under the terms defined in section 4 above for modified
+ versions, provided that you include in the combination all of the
+ Invariant Sections of all of the original documents, unmodified, and
+ list them all as Invariant Sections of your combined work in its
+ license notice, and that you preserve all their Warranty Disclaimers.
+ 
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy.  If there are multiple Invariant Sections with the same name but
+ different contents, make the title of each such section unique by
+ adding at the end of it, in parentheses, the name of the original
+ author or publisher of that section if known, or else a unique number.
+ Make the same adjustment to the section titles in the list of
+ Invariant Sections in the license notice of the combined work.
+ 
+ In the combination, you must combine any sections Entitled ``History''
+ in the various original documents, forming one section Entitled
+ ``History''; likewise combine any sections Entitled ``Acknowledgements'',
+ and any sections Entitled ``Dedications''.  You must delete all
+ sections Entitled ``Endorsements.''
+ 
+ @item
+ COLLECTIONS OF DOCUMENTS
+ 
+ You may make a collection consisting of the Document and other documents
+ released under this License, and replace the individual copies of this
+ License in the various documents with a single copy that is included in
+ the collection, provided that you follow the rules of this License for
+ verbatim copying of each of the documents in all other respects.
+ 
+ You may extract a single document from such a collection, and distribute
+ it individually under this License, provided you insert a copy of this
+ License into the extracted document, and follow this License in all
+ other respects regarding verbatim copying of that document.
+ 
+ @item
+ AGGREGATION WITH INDEPENDENT WORKS
+ 
+ A compilation of the Document or its derivatives with other separate
+ and independent documents or works, in or on a volume of a storage or
+ distribution medium, is called an ``aggregate'' if the copyright
+ resulting from the compilation is not used to limit the legal rights
+ of the compilation's users beyond what the individual works permit.
+ When the Document is included in an aggregate, this License does not
+ apply to the other works in the aggregate which are not themselves
+ derivative works of the Document.
+ 
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one half of
+ the entire aggregate, the Document's Cover Texts may be placed on
+ covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic form.
+ Otherwise they must appear on printed covers that bracket the whole
+ aggregate.
+ 
+ @item
+ TRANSLATION
+ 
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section 4.
+ Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections.  You may include a
+ translation of this License, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also include
+ the original English version of this License and the original versions
+ of those notices and disclaimers.  In case of a disagreement between
+ the translation and the original version of this License or a notice
+ or disclaimer, the original version will prevail.
+ 
+ If a section in the Document is Entitled ``Acknowledgements'',
+ ``Dedications'', or ``History'', the requirement (section 4) to Preserve
+ its Title (section 1) will typically require changing the actual
+ title.
+ 
+ @item
+ TERMINATION
+ 
+ You may not copy, modify, sublicense, or distribute the Document except
+ as expressly provided for under this License.  Any other attempt to
+ copy, modify, sublicense or distribute the Document 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.
+ 
+ @item
+ FUTURE REVISIONS OF THIS LICENSE
+ 
+ The Free Software Foundation may publish new, revised versions
+ of the GNU Free Documentation 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.  See
+ @uref{http://www.gnu.org/copyleft/}.
+ 
+ Each version of the License is given a distinguishing version number.
+ If the Document specifies that a particular numbered version of this
+ License ``or any later version'' applies to it, you have the option of
+ following the terms and conditions either of that specified version or
+ of any later version that has been published (not as a draft) by the
+ Free Software Foundation.  If the Document does not specify a version
+ number of this License, you may choose any version ever published (not
+ as a draft) by the Free Software Foundation.
+ @end enumerate
+ 
+ @page
+ @heading ADDENDUM: How to use this License for your documents
+ 
+ To use this License in a document you have written, include a copy of
+ the License in the document and put the following copyright and
+ license notices just after the title page:
+ 
+ @smallexample
+ @group
+   Copyright (C)  @var{year}  @var{your name}.
+   Permission is granted to copy, distribute and/or modify this document
+   under the terms of the GNU Free Documentation License, Version 1.2
+   or any later version published by the Free Software Foundation;
+   with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+   Texts.  A copy of the license is included in the section entitled ``GNU
+   Free Documentation License''.
+ @end group
+ @end smallexample
+ 
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+ replace the ``with@dots{}Texts.'' line with this:
+ 
+ @smallexample
+ @group
+     with the Invariant Sections being @var{list their titles}, with
+     the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
+     being @var{list}.
+ @end group
+ @end smallexample
+ 
+ If you have Invariant Sections without Cover Texts, or some other
+ combination of the three, merge those two alternatives to suit the
+ situation.
+ 
+ If your document contains nontrivial examples of program code, we
+ recommend releasing these examples in parallel under your choice of
+ free software license, such as the GNU General Public License,
+ to permit their use in free software.
+ 
+ @c Local Variables:
+ @c ispell-local-pdict: "ispell-dict"
+ @c End:
+ 
diff -Nrc2 texinfo-4.12/doc/info-stnd.texi texinfo-4.13/doc/info-stnd.texi
*** texinfo-4.12/doc/info-stnd.texi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/info-stnd.texi	Thu Sep 18 11:31:56 2008
***************
*** 0 ****
--- 1,2270 ----
+ vb\input texinfo.tex    @c -*-texinfo-*-
+ @comment $Id: info-stnd.texi,v 1.24 2008/08/29 17:27:18 karl Exp $
+ @c We must \input texinfo.tex instead of texinfo, otherwise make
+ @c distcheck in the Texinfo distribution fails, because the texinfo Info
+ @c file is made first, and texi2dvi must include . first in the path.
+ @comment %**start of header
+ @setfilename info-stnd.info
+ @include version-stnd.texi
+ @settitle GNU Info @value{VERSION}
+ @syncodeindex vr cp
+ @syncodeindex fn cp
+ @syncodeindex ky cp
+ @comment %**end of header
+ 
+ @copying
+ This manual is for GNU Info (version @value{VERSION}, @value{UPDATED}),
+ a program for viewing documents in Info format (usually created from
+ Texinfo source files).
+ 
+ Copyright @copyright{} 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002,
+ 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 
+ @quotation
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2 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' in the Texinfo manual.
+ 
+ (a) The FSF's Back-Cover Text is: ``You have the freedom to
+ copy and modify this GNU manual.  Buying copies from the FSF
+ supports it in developing GNU and promoting software freedom.''
+ @end quotation
+ 
+ This document is part of a collection distributed under the GNU Free
+ Documentation License.  If you want to distribute this document
+ separately from the collection, you can do so by adding a copy of the
+ license to the document, as described in section 6 of the license.
+ @end copying
+ 
+ @dircategory Texinfo documentation system
+ @direntry
+ * info standalone: (info-stnd).            Read Info documents without Emacs.
+ * infokey: (info-stnd)Invoking infokey.    Compile Info customizations.
+ @end direntry
+ 
+ @titlepage
+ @title GNU Info
+ @subtitle for version @value{VERSION}, @value{UPDATED}
+ @author Brian J. Fox
+ @page
+ @vskip 0pt plus 1filll
+ @insertcopying
+ @end titlepage
+ 
+ @contents
+ 
+ @ifnottex
+ @node Top
+ @top GNU Info
+ 
+ If you do not know how to use Info, but have a working Info reader,
+ you should read the Info manual before this one (@pxref{Top, Getting
+ Started,,info, Info}), as it includes more background information and
+ a thorough tutorial.  This documentation describes the stand-alone Info
+ reader that is part of the Texinfo distribution, not the Info reader
+ that is part of GNU Emacs.
+ @end ifnottex
+ 
+ @menu
+ * Stand-alone Info::            What is Info?
+ * Invoking Info::               Options you can pass on the command line.
+ * Cursor Commands::             Commands which move the cursor within a node.
+ * Scrolling Commands::          Commands for reading the text within a node.
+ * Node Commands::               Commands for selecting a new node.
+ * Searching Commands::          Commands for searching an Info file.
+ * Xref Commands::               Commands for selecting cross references.
+ * Window Commands::             Commands which manipulate multiple windows.
+ * Printing Nodes::              How to print out the contents of a node.
+ * Miscellaneous Commands::      A few commands that defy categories.
+ * Variables::                   How to change the default behavior of Info.
+ * Custom Key Bindings::         How to define your own key-to-command bindings.
+ * Index::                       Global index with keystrokes, command names,
+                                   variable names, and general concepts.
+ @end menu
+ 
+ 
+ @node Stand-alone Info
+ @chapter Stand-alone Info
+ 
+ The @dfn{Info} program is a stand-alone program, part of the Texinfo
+ distribution, which is used to view Info files on an ASCII terminal.
+ @dfn{Info files} are typically the result of processing Texinfo files
+ with the program @code{makeinfo} (also in the Texinfo distribution)
+ 
+ Texinfo itself is a documentation system that uses a single source
+ file to produce both on-line information and printed output.  You can
+ typeset and print the files that you read in Info.
+ 
+ GNU Emacs also provides an Info reader (just type @kbd{M-x info} in
+ Emacs).  Emacs Info and stand-alone Info have nearly identical user
+ interfaces, although customization and other details are different
+ (this manual explains the stand-alone Info reader).  The Emacs Info
+ reader supports the X Window System and other such bitmapped
+ interfaces, not just plain ASCII, so if you want the prettiest
+ display for Info files, you should try it.  You can use Emacs Info
+ without using Emacs for anything else.  (Type @kbd{C-x C-c} to exit;
+ this also works in the stand-alone Info reader.)
+ 
+ 
+ @node Invoking Info
+ @chapter Invoking Info
+ 
+ @cindex Info, invoking
+ @cindex invoking Info
+ @cindex command line options
+ @cindex options, command line
+ @cindex arguments, command line
+ 
+ GNU Info accepts several options to control the initial node being
+ viewed, and to specify which directories to search for Info files.  Here
+ is a template showing an invocation of GNU Info from the shell:
+ 
+ @example
+ info [@var{option}]@dots{} [@var{menu-item}@dots{}]
+ @end example
+ 
+ The program accepts the following options:
+ 
+ @table @code
+ @anchor{--apropos}
+ @item --apropos=@var{string}
+ @itemx -k @var{string}
+ @cindex Searching all indices
+ @cindex Info files@r{, searching all indices}
+ @cindex Apropos@r{, in Info files}
+ Specify a string to search in every index of every Info file installed
+ on your system.  Info looks up the named @var{string} in all the
+ indices it can find, prints the results to standard output, and then
+ exits.  If you are not sure which Info file explains certain issues,
+ this option is your friend.  (If your system has a lot of Info files
+ installed, searching all of them might take some time!)
+ 
+ You can invoke the apropos command from inside Info; see
+ @ref{Searching Commands}.
+ 
+ @cindex directory path
+ @item --directory @var{directory-path}
+ @itemx -d @var{directory-path}
+ Prepend @var{directory-path} to the list of directory paths searched
+ when Info needs to find a file.  You may issue @code{--directory}
+ multiple times; once for each directory which contains Info files.  The
+ list of directories searched by Info is constructed from the value of
+ the environment variable @code{INFOPATH}; @code{--directory} causes the
+ named @var{directory-path} to be prepended to that list.  The value of
+ @code{INFOPATH} is a list of directories usually separated by a colon;
+ on MS-DOS/MS-Windows systems, the semicolon is used.  If you do not
+ define @code{INFOPATH}, Info uses a default path defined when Info was
+ built as the initial list of directories.  If the value of
+ @code{INFOPATH} ends with a colon (or semicolon on MS-DOS/MS-Windows),
+ the initial list of directories is constructed by appending the
+ build-time default to the value of @code{INFOPATH}.
+ 
+ @cindex keystrokes, recording
+ @cindex remembering user keystrokes
+ @item --dribble=@var{dribble-file}
+ Specify a file where all user keystrokes will be recorded.  This file
+ can be used later to replay the same sequence of commands, see the
+ @samp{--restore} option below.
+ 
+ @item --file @var{filename}
+ @itemx -f @var{filename}
+ @cindex Info file, selecting
+ Specify a particular Info file to visit.  By default, Info visits
+ the file @code{dir}; if you use this option, Info will start with
+ @code{(@var{filename})Top} as the first file and node.
+ 
+ @cindex relative Info file names
+ @cindex file names, relative
+ @cindex Info files, relative
+ If @var{filename} is an absolute file name, or begins with @file{./} or
+ @file{../}, Info looks for @var{filename} only in the directory of the
+ specified @var{filename}, and adds the directory of @var{filename} to
+ the value of @code{INFOPATH}.  In contrast, if @var{filename} is in the
+ form of a relative file name, but without the @file{./} or @file{../}
+ prefix, Info will only look for it in the directories specified in
+ @code{INFOPATH}.  In other words, Info does @emph{not} treat file names
+ which lack @file{./} and @file{../} prefix as relative to the current
+ directory.
+ 
+ @cindex compressed Info files
+ @cindex files, compressed
+ @cindex Info files, compressed
+ In every directory Info tries, if @var{filename} is not found, Info
+ looks for it with a number of known extensions of Info files@footnote{
+ @file{.info}, @file{-info}, @file{/index}, and @file{.inf}.}.  For every
+ known extension, Info looks for a compressed file, if a regular file
+ isn't found.  Info supports files compressed with @code{gzip},
+ @code{bzip2}, @code{compress} and @code{yabba} programs; it calls
+ @code{gunzip}, @code{bunzip2}, @code{uncompress} and @code{unyabba},
+ accordingly, to decompress such files.  Compressed Info files are
+ assumed to have @file{.z}, @file{.gz}, @file{.bz2}, @file{.Z}, or
+ @file{.Y} extensions, possibly in addition to one of the known Info
+ files extensions@footnote{The MS-DOS version allows for the Info
+ extension, such as @code{.inf}, and the short compressed file
+ extensions, such as @file{.z} and @file{.gz}, to be merged into a single
+ extension, since DOS doesn't allow more than a single dot in the
+ basename of a file.  Thus, on MS-DOS, if Info looks for @file{bison},
+ file names like @file{bison.igz} and @file{bison.inz} will be found and
+ decompressed by @code{gunzip}.}.
+ 
+ @item --help
+ @itemx -h
+ Produces a relatively brief description of the available Info options.
+ 
+ @item --index-search @var{string}
+ @cindex index search, selecting from the command line
+ @cindex online help, using Info as
+ After processing all command-line arguments, go to the index in the Info
+ file and search for index entries which match @var{string}.  If such an
+ entry is found, the Info session begins with displaying the node pointed
+ to by the first matching index entry; press @kbd{,} to step through the
+ rest of the matching entries.  If no such entry exists, print @samp{no
+ entries found} and exit with nonzero status.  This can be used from
+ another program as a way to provide online help, or as a quick way of
+ starting to read an Info file at a certain node when you don't know the
+ exact name of that node.
+ 
+ This command can also be invoked from inside Info; see @ref{Searching
+ Commands}.
+ 
+ @item --node @var{nodename}
+ @itemx -n @var{nodename}
+ @cindex node, selecting from the command line
+ Specify a particular node to visit in the initial file that Info
+ loads.  This is especially useful in conjunction with
+ @code{--file}@footnote{Of course, you can specify both the file and node
+ in a @code{--node} command; but don't forget to escape the open and
+ close parentheses and whitespace from the shell as in: @code{info --node
+ "(emacs)Buffers"}.}.  You may specify @code{--node} multiple times; for
+ an interactive Info, each @var{nodename} is visited in its own window,
+ for a non-interactive Info (such as when @code{--output} is given) each
+ @var{nodename} is processed sequentially.
+ 
+ @item --output @var{filename}
+ @itemx -o @var{filename}
+ @cindex file, outputting to
+ @cindex outputting to a file
+ Specify @var{filename} as the name of a file to which to direct output.
+ Each node that Info visits will be output to @var{filename} instead of
+ interactively viewed.  A value of @code{-} for @var{filename} specifies
+ the standard output.
+ 
+ @cindex colors in documents
+ @cindex ANSI escape sequences in documents
+ @item --raw-escapes
+ @itemx --no-raw-escapes
+ @itemx -R
+ Do not remove ANSI escape sequences from documents.  Some versions of
+ Groff, the GNU document formatter, produce man pages with ANSI escape
+ sequences for bold, italics, and underlined characters, and for
+ colorized text.  By default, Info lets those escape sequences pass
+ through directly to the terminal.  If your terminal does not support
+ these escapes, use @code{--no-raw-escapes} to make Info remove them.
+ 
+ @cindex replaying recorded keystrokes
+ @item --restore=@var{dribble-file}
+ Read keystrokes from @var{dribble-file}, presumably recorded during
+ previous Info session (see the description of the @samp{--dribble}
+ option above).  When the keystrokes in the files are all read, Info
+ reverts its input to the usual interactive operation.
+ 
+ @item --show-malformed-multibytes
+ @itemx --no-show-malformed-multibytes
+   Show malformed multibyte sequences in the output.  By default, such
+ sequences are dropped.
+ 
+ @anchor{--show-options}
+ @cindex command-line options, how to find
+ @cindex invocation description, how to find
+ @item --show-options
+ @itemx --usage
+ @itemx -O
+ This option causes Info to look for the node that describes how to
+ invoke the program and its command-line options, and begin the session
+ by displaying that node.  It is provided to make it easier to find the
+ most important usage information in a manual without the need to wade
+ through complex menu hierarchies.  The effect is similar to the
+ @code{M-x goto-invocation} command (@pxref{goto-invocation}) from inside
+ Info.
+ 
+ @cindex speech synthesizers
+ @item --speech-friendly
+ @itemx -b
+ On MS-DOS/MS-Windows only, this option causes Info to use standard file
+ I/O functions for screen writes.  (By default, Info uses direct writes
+ to the video memory on these systems, for faster operation and colored
+ display support.)  This allows the speech synthesizers used by blind
+ persons to catch the output and convert it to audible speech.
+ 
+ @item --subnodes
+ @cindex @code{--subnodes}, command line option
+ This option only has meaning when given in conjunction with
+ @code{--output}.  It means to recursively output the nodes appearing in
+ the menus of each node being output.  Menu items which resolve to
+ external Info files are not output, and neither are menu items which are
+ members of an index.  Each node is only output once.
+ 
+ @item --version
+ @cindex version information
+ Prints the version information of Info and exits.
+ 
+ @anchor{--vi-keys}
+ @cindex vi-like key bindings
+ @cindex Less-like key bindings
+ @item --vi-keys
+ This option binds functions to keys differently, to emulate the key
+ bindings of @code{vi} and Less.  The default key bindings are generally
+ modeled after Emacs.
+ (@xref{Custom Key Bindings},
+ for a more general way of altering GNU Info's key bindings.)
+ 
+ @cindex Info manual location
+ @cindex Where is an Info manual?
+ @item --where
+ @itemx --location
+ @itemx -w
+ Show the filename that would be read and exit, instead of actually
+ reading it and starting Info.
+ 
+ @item @var{menu-item}
+ @cindex menu, following
+ @anchor{command-line menu items}
+ Info treats its remaining arguments as the names of menu items.  The
+ first argument is a menu item in the initial node visited (generally
+ @code{dir}), the second argument is a menu item in the first argument's
+ node, etc.  You can easily move to the node of your choice by specifying
+ the menu names which describe the path to that node.  For example,
+ 
+ @example
+ info emacs buffers
+ @end example
+ 
+ @noindent
+ first selects the menu item @samp{Emacs} in the node @samp{(dir)Top},
+ and then selects the menu item @samp{Buffers} in the node
+ @samp{(emacs)Top}.
+ @end table
+ 
+ To avoid searching the @file{dir} files and just show some arbitrary
+ file, use @samp{-f} and the filename, as in @samp{info -f ./foo.info}.
+ 
+ The index search and the search for the node which describes program
+ invocation and command-line options begins @emph{after} processing all
+ the command-line menu items.  Therefore, the Info file searched for the
+ index or the invocation node is the file where Info finds itself after
+ following all the menu items given on the command line.  This is so
+ @samp{info emacs --show-options} does what you'd expect.
+ 
+ Finally, Info defines many default key bindings and variables.
+ @xref{Custom Key Bindings}, for information on how to customize these
+ settings.
+ 
+ @c FIXME: the feature with lowercasing the file name isn't documented
+ 
+ 
+ @node Cursor Commands
+ @chapter Moving the Cursor
+ @cindex cursor, moving
+ @cindex moving the cursor
+ 
+ Many people find that reading screens of text page by page is made
+ easier when one is able to indicate particular pieces of text with
+ some kind of pointing device.  Since this is the case, GNU Info (both
+ the Emacs and stand-alone versions) have several commands which allow
+ you to move the cursor about the screen.  The notation used in this
+ manual to describe keystrokes is identical to the notation used within
+ the Emacs manual, and the GNU Readline manual.  @xref{User Input,,,
+ emacs, The GNU Emacs Manual}, if you are unfamiliar with the
+ notation.@footnote{Here's a short summary.  @kbd{C-@var{x}} means
+ press the @kbd{CTRL} key and the key @var{x}.  @kbd{M-@var{x}} means
+ press the @kbd{META} key and the key @var{x}.  On many terminals th
+ @kbd{META} key is known as the @kbd{ALT} key.  @kbd{SPC} is the space
+ bar.  The other keys are usually called by the names imprinted on
+ them.}
+ 
+ The following table lists the basic cursor movement commands in Info.
+ Each entry consists of the key sequence you should type to execute the
+ cursor movement, the @code{M-x}@footnote{@code{M-x} is also a command; it
+ invokes @code{execute-extended-command}.  @xref{M-x, , Executing an
+ extended command, emacs, The GNU Emacs Manual}, for more detailed
+ information.} command name (displayed in parentheses), and a short
+ description of what the command does.  All of the cursor motion commands
+ can take a @dfn{numeric} argument (see @ref{Miscellaneous Commands,
+ @code{universal-argument}, to find out how to supply them}.  With a
+ numeric argument, the motion commands are simply executed that
+ many times; for example, a numeric argument of 4 given to
+ @code{next-line} causes the cursor to move down 4 lines.  With a
+ negative numeric argument, the motion is reversed; an argument of -4
+ given to the @code{next-line} command would cause the cursor to move
+ @emph{up} 4 lines.
+ 
+ @table @asis
+ @item @kbd{C-n} (@code{next-line})
+ @itemx @key{DOWN} (an arrow key)
+ @kindex C-n
+ @kindex DOWN (an arrow key)
+ @findex next-line
+ Move the cursor down to the next line.
+ 
+ @item @kbd{C-p} (@code{prev-line})
+ @itemx @key{UP} (an arrow key)
+ @kindex C-p
+ @kindex UP (an arrow key)
+ @findex prev-line
+ Move the cursor up to the previous line.
+ 
+ @item @kbd{C-a} (@code{beginning-of-line})
+ @itemx @key{Home} (on DOS/Windows only)
+ @kindex C-a, in Info windows
+ @kindex Home
+ @findex beginning-of-line
+ Move the cursor to the start of the current line.
+ 
+ @item @kbd{C-e} (@code{end-of-line})
+ @itemx @key{End} (on DOS/Windows only)
+ @kindex C-e, in Info windows
+ @kindex End
+ @findex end-of-line
+ Move the cursor to the end of the current line.
+ 
+ @item @kbd{C-f} (@code{forward-char})
+ @itemx @key{RIGHT} (an arrow key)
+ @kindex C-f, in Info windows
+ @kindex RIGHT (an arrow key)
+ @findex forward-char
+ Move the cursor forward a character.
+ 
+ @item @kbd{C-b} (@code{backward-char})
+ @itemx @key{LEFT} (an arrow key)
+ @kindex C-b, in Info windows
+ @kindex LEFT (an arrow key)
+ @findex backward-char
+ Move the cursor backward a character.
+ 
+ @item @kbd{M-f} (@code{forward-word})
+ @itemx @kbd{C-@key{RIGHT}} (on DOS/Windows only)
+ @kindex M-f, in Info windows
+ @kindex C-RIGHT
+ @findex forward-word
+ Move the cursor forward a word.
+ 
+ @item @kbd{M-b} (@code{backward-word})
+ @itemx @kbd{C-@key{LEFT}} (on DOS/Windows only)
+ @kindex M-b, in Info windows
+ @kindex C-LEFT
+ @findex backward-word
+ Move the cursor backward a word.
+ 
+ @item @kbd{M-<} (@code{beginning-of-node})
+ @itemx @kbd{C-@key{Home}} (on DOS/Windows only)
+ @itemx @kbd{b}
+ @itemx @kbd{M-b}, vi-like operation
+ @kindex b, in Info windows
+ @kindex M-<
+ @kindex C-Home
+ @kindex M-b, vi-like operation
+ @findex beginning-of-node
+ Move the cursor to the start of the current node.
+ 
+ @item @kbd{M->} (@code{end-of-node})
+ @itemx @kbd{C-@key{End}} (on DOS/Windows only)
+ @itemx @kbd{e}
+ @kindex M->
+ @kindex e, in Info windows
+ @kindex C-End
+ @findex end-of-node
+ Move the cursor to the end of the current node.
+ 
+ @item @kbd{M-r} (@code{move-to-window-line})
+ @kindex M-r
+ @findex move-to-window-line
+ Move the cursor to a specific line of the window.  Without a numeric
+ argument, @code{M-r} moves the cursor to the start of the line in the
+ center of the window.  With a numeric argument of @var{n}, @code{M-r}
+ moves the cursor to the start of the @var{n}th line in the window.
+ @end table
+ 
+ 
+ @node Scrolling Commands
+ @chapter Moving Text Within a Window
+ @cindex scrolling
+ 
+ Sometimes you are looking at a screenful of text, and only part of the
+ current paragraph you are reading is visible on the screen.  The
+ commands detailed in this section are used to shift which part of the
+ current node is visible on the screen.
+ 
+ Scrolling commands are bound differently when @samp{--vi-keys}
+ operation is in effect (@pxref{--vi-keys}).  These key bindings are
+ designated with ``vi-like operation''.  @xref{Custom Key Bindings},
+ for information on arbitrarily customizing key bindings and variable
+ settings.
+ 
+ @table @asis
+ @item @key{SPC} (@code{scroll-forward})
+ @kindex SPC, in Info windows
+ @findex scroll-forward
+ Shift the text in this window up.  That is, show more of the node which
+ is currently below the bottom of the window.  With a numeric argument,
+ show that many more lines at the bottom of the window; a numeric
+ argument of 4 would shift all of the text in the window up 4 lines
+ (discarding the top 4 lines), and show you four new lines at the bottom
+ of the window.  Without a numeric argument, @key{SPC} takes the bottom
+ two lines of the window and places them at the top of the window,
+ redisplaying almost a completely new screenful of lines.  If you are at
+ the end of a node, @key{SPC} takes you to the ``next'' node, so that you can
+ read an entire manual from start to finish by repeating @key{SPC}.
+ 
+ The default scroll size is one screen-full, but it can be changed by
+ invoking the (@code{scroll-forward-page-only-set-window}) command,
+ @samp{z} under @samp{--vi-keys}, with a numeric argument.
+ 
+ @item @key{NEXT} (an arrow key) (@code{scroll-forward-page-only})
+ @itemx @kbd{C-v}
+ @itemx @kbd{C-f}, vi-like operation
+ @itemx @kbd{f}, vi-like operation
+ @itemx @kbd{M-SPC}, vi-like operation
+ @kindex NEXT
+ @kindex C-v
+ @kindex C-f, vi-like operation
+ @kindex f, vi-like operation
+ @kindex M-SPC, vi-like operation
+ @findex scroll-forward-page-only
+ Shift the text in this window up.  This is identical to the @key{SPC}
+ operation above, except that it never scrolls beyond the end of the
+ current node.
+ 
+ @kindex PageDown
+ The @key{NEXT} key is known as the @key{PageDown} key on some
+ keyboards.
+ 
+ @item @kbd{z} (@code{scroll-forward-page-only-set-window}, vi-like operation)
+ @kindex z, vi-like operation
+ @findex scroll-forward-page-only-set-window
+ Scroll forward, like with @key{NEXT}, but if a numeric argument is
+ specified, it becomes the default scroll size for subsequent
+ @code{scroll-forward} and @code{scroll-backward} commands and their
+ ilk.
+ 
+ @item @key{DEL} (@code{scroll-backward})
+ @kindex DEL, in Info windows
+ @findex scroll-backward
+ Shift the text in this window down.  The inverse of
+ @code{scroll-forward}.
+ If you are at the start of a node, @key{DEL} takes you to the
+ ``previous'' node, so that you can read an entire manual from finish to
+ start by repeating @key{DEL}.  The default scroll size can be changed by
+ invoking the (@code{scroll-backward-page-only-set-window}) command,
+ @samp{w} under @samp{--vi-keys}, with a numeric argument.
+ 
+ @itemx @key{PREVIOUS} (arrow key) (@code{scroll-backward-page-only})
+ @itemx @key{PRIOR} (arrow key)
+ @itemx @kbd{M-v}
+ @itemx @kbd{b}, vi-like operation
+ @itemx @kbd{C-b}, vi-like operation
+ @kindex PREVIOUS
+ @kindex M-v
+ @kindex b, vi-like operation
+ @kindex C-b, vi-like operation
+ @findex scroll-backward-page-only
+ Shift the text in this window down.  The inverse of
+ @code{scroll-forward-page-only}.  Does not scroll beyond the start of
+ the current node.  The default scroll size can be changed by invoking
+ the(@code{scroll-backward-page-only-set-window}) command, @samp{w} under
+ @samp{--vi-keys}, with a numeric argument.
+ 
+ @item @kbd{w} (@code{scroll-backward-page-only-set-window}, vi-like operation)
+ @kindex w, vi-like operation
+ @findex scroll-backward-page-only-set-window
+ Scroll backward, like with @key{PREVIOUS}, but if a numeric argument is
+ specified, it becomes the default scroll size for subsequent
+ @code{scroll-forward} and @code{scroll-backward} commands.
+ 
+ @item @kbd{C-n} (@code{down-line}, vi-like operation)
+ @itemx @kbd{C-e}, vi-like operation
+ @itemx @key{RET}, vi-like operation
+ @itemx @key{LFD}, vi-like operation
+ @itemx @key{DOWN}, vi-like operation
+ @kindex C-n, vi-like operation
+ @kindex C-e, vi-like operation
+ @kindex RET, vi-like operation
+ @kindex LFD, vi-like operation
+ @kindex DOWN, vi-like operation
+ @findex down-line
+ Scroll forward by one line.  With a numeric argument, scroll forward
+ that many lines.
+ 
+ @item @kbd{C-p} (@code{up-line}, vi-like operation)
+ @itemx @key{UP}, vi-like operation
+ @itemx @kbd{y}, vi-like operation
+ @itemx @kbd{k}, vi-like operation
+ @itemx @kbd{C-k}, vi-like operation
+ @itemx @kbd{C-y}, vi-like operation
+ @kindex C-p, vi-like operation
+ @kindex UP, vi-like operation
+ @kindex y, vi-like operation
+ @kindex k, vi-like operation
+ @kindex C-k, vi-like operation
+ @kindex C-y, vi-like operation
+ @findex up-line
+ Scroll backward one line.  With a numeric argument, scroll backward that
+ many lines.
+ 
+ @item @kbd{d} (@code{scroll-half-screen-down}, vi-like operation)
+ @itemx @kbd{C-d}, vi-like operation
+ @kindex d, vi-like operation
+ @kindex C-d, vi-like operation
+ @findex scroll-half-screen-down
+ Scroll forward by half of the screen size.  With a numeric argument,
+ scroll that many lines.  If an argument is specified, it becomes the new
+ default number of lines to scroll for subsequent @samp{d} and @samp{u}
+ commands.
+ 
+ @item @kbd{u} (@code{scroll-half-screen-up}, vi-like operation)
+ @itemx @kbd{C-u}, vi-like operation
+ @kindex u, vi-like operation
+ @kindex C-u, vi-like operation
+ @findex scroll-half-screen-up
+ Scroll back by half of the screen size.  With a numeric argument,
+ scroll that many lines.  If an argument is specified, it becomes the new
+ default number of lines to scroll for subsequent @samp{u} and @samp{d}
+ commands.
+ @end table
+ 
+ @cindex scrolling through node structure
+ The @code{scroll-forward} and @code{scroll-backward} commands can also
+ move forward and backward through the node structure of the file.  If
+ you press @key{SPC} while viewing the end of a node, or @key{DEL} while
+ viewing the beginning of a node, what happens is controlled by the
+ variable @code{scroll-behavior} (@pxref{scroll-behavior}).
+ 
+ The @code{scroll-forward-page-only} and @code{scroll-backward-page-only}
+ commands never scroll beyond the current node.
+ 
+ @kindex PageUp
+ The @key{PREVIOUS} key is the @key{PageUp} key on many keyboards.  Emacs
+ refers to it by the name @key{PRIOR}.  When you use @key{PRIOR} or
+ @key{PageUp} to scroll, Info never scrolls beyond the beginning of the
+ current node.
+ 
+ @kindex BS (backspace)
+ If your keyboard lacks the @key{DEL} key, look for a key called
+ @key{BS}, or @samp{Backspace}, sometimes designated with an arrow which
+ points to the left, which should perform the same function.
+ 
+ @table @asis
+ @item @kbd{C-l} (@code{redraw-display})
+ @kindex C-l
+ @findex redraw-display
+ Redraw the display from scratch, or shift the line containing the cursor
+ to a specified location.  With no numeric argument, @samp{C-l} clears
+ the screen, and then redraws its entire contents.  Given a numeric
+ argument of @var{n}, the line containing the cursor is shifted so that
+ it is on the @var{n}th line of the window.
+ 
+ @item @kbd{C-x @kbd{w}} (@code{toggle-wrap})
+ @kindex C-w
+ @findex toggle-wrap
+ Toggles the state of line wrapping in the current window.  Normally,
+ lines which are longer than the screen width @dfn{wrap}, i.e., they are
+ continued on the next line.  Lines which wrap have a @samp{\} appearing
+ in the rightmost column of the screen.  You can cause such lines to be
+ terminated at the rightmost column by changing the state of line
+ wrapping in the window with @code{C-x w}.  When a line which needs more
+ space than one screen width to display is displayed, a @samp{$} appears
+ in the rightmost column of the screen, and the remainder of the line is
+ invisible.  When long lines are truncated, the modeline displays the
+ @samp{$} character near its left edge.
+ @end table
+ 
+ 
+ @node Node Commands
+ @chapter Selecting a Node
+ @cindex nodes, selection of
+ 
+ This section details the numerous Info commands which select a new node
+ to view in the current window.
+ 
+ The most basic node commands are @samp{n}, @samp{p}, @samp{u}, and
+ @samp{l}.  Note that the commands to select nodes are mapped differently
+ when @samp{--vi-keys} is in effect; these keybindings are designated
+ below as ``vi-like operation''.
+ 
+ When you are viewing a node, the top line of the node contains some Info
+ @dfn{pointers} which describe where the next, previous, and up nodes
+ are.  Info uses this line to move about the node structure of the file
+ when you use the following commands:
+ 
+ @table @asis
+ @item @kbd{n} (@code{next-node})
+ @itemx @kbd{C-@key{NEXT}} (on DOS/Windows only)
+ @itemx @kbd{C-x @kbd{n}}, vi-like operation
+ @kindex n
+ @kindex C-NEXT
+ @kindex C-x n, vi-like operation
+ @findex next-node
+ Select the `Next' node.
+ 
+ @kindex C-PgDn
+ The @key{NEXT} key is known as the @key{PgDn} key on some
+ keyboards.
+ 
+ @item @kbd{p} (@code{prev-node})
+ @itemx @kbd{C-@key{PREVIOUS}} (on DOS/Windows only)
+ @kindex p
+ @kindex C-PREVIOUS
+ @findex prev-node
+ Select the `Prev' node.
+ 
+ @kindex C-PgUp
+ The @key{PREVIOUS} key is known as the @key{PgUp} key on some
+ keyboards.
+ 
+ @item @kbd{u} (@code{up-node})
+ @itemx @kbd{C-@key{UP}} (an arrow key on DOS/Windows only)
+ @itemx @kbd{C-x @kbd{u}}, vi-like operation
+ @kindex u
+ @kindex C-UP
+ @kindex C-x u, vi-like operation
+ @findex up-node
+ Select the `Up' node.
+ @end table
+ 
+ You can easily select a node that you have already viewed in this window
+ by using the @samp{l} command---this name stands for ``last'', and
+ actually moves backwards through the history of visited nodes for this
+ window.  This is handy when you followed a reference to another node,
+ possibly to read about a related issue, and would like then to resume
+ reading at the same place where you started the excursion.
+ 
+ Each node where you press @samp{l} is discarded from the history.  Thus,
+ by the time you get to the first node you visited in a window, the
+ entire history of that window is discarded.
+ 
+ @table @asis
+ @item @kbd{l} (@code{history-node})
+ @itemx @kbd{C-@key{CENTER}} (on DOS/Windows only)
+ @itemx @kbd{'}, vi-like operation
+ @kindex l
+ @kindex C-CENTER
+ @kindex ', vi-like operation
+ @findex history-node
+ Pop the most recently selected node in this window from the node
+ history.
+ @end table
+ 
+ Two additional commands make it easy to select the most commonly
+ selected nodes; they are @samp{t} and @samp{d}.
+ 
+ @table @asis
+ @item @kbd{t} (@code{top-node})
+ @itemx @kbd{M-t}, vi-like operation
+ @kindex t
+ @kindex M-t, vi-like operation
+ @findex top-node
+ Select the node @samp{Top} in the current Info file.
+ 
+ @item @kbd{d} (@code{dir-node})
+ @itemx @kbd{M-d}, vi-like operation
+ @kindex d
+ @kindex M-d, vi-like operation
+ @findex dir-node
+ Select the directory node (i.e., the node @samp{(dir)}).
+ @end table
+ 
+ Here are some other commands which immediately result in the selection
+ of a different node in the current window:
+ 
+ @table @asis
+ @item @kbd{<} (@code{first-node})
+ @itemx @kbd{g}, vi-like operation
+ @kindex <
+ @kindex g, vi-like operation
+ @findex first-node
+ Selects the first node which appears in this file.  This node is most
+ often @samp{Top}, but it does not have to be.  With a numeric argument
+ @var{N}, select the @var{N}th node (the first node is node 1).  An
+ argument of zero is the same as the argument of 1.
+ 
+ @item @kbd{>} (@code{last-node})
+ @itemx @kbd{G}, vi-like operation
+ @kindex >
+ @kindex G, vi-like operation
+ @findex last-node
+ Select the last node which appears in this file.  With a numeric argument
+ @var{N}, select the @var{N}th node (the first node is node 1).  An
+ argument of zero is the same as no argument, i.e., it selects the last
+ node.
+ 
+ @item @kbd{]} (@code{global-next-node})
+ @kindex ]
+ @findex global-next-node
+ Move forward or down through node structure.  If the node that you are
+ currently viewing has a @samp{Next} pointer, that node is selected.
+ Otherwise, if this node has a menu, the first menu item is selected.  If
+ there is no @samp{Next} and no menu, the same process is tried with the
+ @samp{Up} node of this node.
+ 
+ @item @kbd{[} (@code{global-prev-node})
+ @kindex [
+ @findex global-prev-node
+ Move backward or up through node structure.  If the node that you are
+ currently viewing has a @samp{Prev} pointer, that node is selected.
+ Otherwise, if the node has an @samp{Up} pointer, that node is selected,
+ and if it has a menu, the last item in the menu is selected.
+ @end table
+ 
+ You can get the same behavior as @code{global-next-node} and
+ @code{global-prev-node} while simply scrolling through the file with
+ @key{SPC} and @key{DEL} (@pxref{scroll-behavior}).
+ 
+ @table @asis
+ @anchor{goto-node}
+ @item @kbd{g} (@code{goto-node})
+ @itemx @kbd{C-x @kbd{g}}, vi-like operation
+ @kindex g
+ @kindex C-x g, vi-like operation
+ @findex goto-node
+ Read the name of a node and select it.  While reading the node name,
+ completion (@pxref{The Echo Area, completion}) is only done for the
+ nodes which reside in one of the Info files that were loaded in the
+ current Info session; if the desired node resides in some other file,
+ you must type the node exactly as it appears in that Info file, and you
+ must include the Info file of the other file.  For example,
+ 
+ @example
+ @code{g(emacs)Buffers}
+ @end example
+ 
+ finds the node @samp{Buffers} in the Info file @file{emacs}.
+ 
+ @anchor{goto-invocation}
+ @item @kbd{O} (@code{goto-invocation}
+ @itemx @kbd{I}
+ @kindex O
+ @kindex I
+ @findex goto-invocation
+ @cindex finding the Invocation node
+ Read the name of a program and look for a node in the current Info file
+ which describes the invocation and the command-line options for that
+ program.  The default program name is derived from the name of the
+ current Info file.  This command does the same as the
+ @samp{--show-options} command-line option (@pxref{--show-options}), but
+ it also allows to specify the program name; this is important for those
+ manuals which describe several programs.
+ 
+ If you need to find the Invocation node of a program that is documented
+ in another Info file, you need to visit that file before invoking
+ @samp{I}.  For example, if you are reading the Emacs manual and want to
+ see the command-line options of the @code{makeinfo} program, type @kbd{g
+ (texinfo) @key{RET}} and then @kbd{I makeinfo @key{RET}}.  If you don't
+ know what Info file documents the command, or if invoking @samp{I}
+ doesn't display the right node, go to the @samp{(dir)} node (using the
+ @samp{d} command) and invoke @samp{I} from there.
+ 
+ @item @kbd{G} (@code{menu-sequence})
+ @kindex G
+ @findex menu-sequence
+ @cindex menu, following, from inside Info
+ Read a sequence of menu entries and follow it.  Info prompts for a
+ sequence of menu items separated by commas.  (Since commas are not
+ allowed in a node name, they are a natural choice for a delimiter in a
+ list of menu items.)  Info then looks up the first item in the menu of
+ the node @samp{(dir)} (if the @samp{(dir)} node cannot be found, Info
+ uses @samp{Top}).  If such an entry is found, Info goes to the node it
+ points to and looks up the second item in the menu of that node, etc.
+ In other words, you can specify a complete path which descends through
+ the menu hierarchy of a particular Info file starting at the
+ @samp{(dir)} node.  This has the same effect as if you typed the menu
+ item sequence on Info's command line, see @ref{command-line menu items,,
+ Info command-line arguments processing}.  For example,
+ 
+ @example
+  @kbd{G Texinfo,Overview,Reporting Bugs @key{RET}}
+ @end example
+ 
+ @noindent
+ displays the node @samp{Reporting Bugs} in the Texinfo manual.  (You
+ don't actually need to type the menu items in their full length, or in
+ their exact letter-case.  However, if you do type the menu items
+ exactly, Info will find it faster.)
+ 
+ If any of the menu items you type are not found, Info stops at the last
+ entry it did find and reports an error.
+ 
+ @item @kbd{C-x @kbd{k}} (@code{kill-node})
+ @kindex C-x k
+ @findex kill-node
+ Kill a node.  The node name is prompted for in the echo area, with a
+ default of the current node.  @dfn{Killing} a node means that Info tries
+ hard to forget about it, removing it from the list of history nodes kept
+ for the window where that node is found.  Another node is selected in
+ the window which contained the killed node.
+ 
+ @item @kbd{C-x C-f} (@code{view-file})
+ @kindex C-x C-f
+ @findex view-file
+ Read the name of a file and selects the entire file.  The command
+ @example
+ @code{C-x C-f @var{filename}}
+ @end example
+ is equivalent to typing
+ @example
+ @code{g(@var{filename})*}
+ @end example
+ 
+ @item @kbd{C-x C-b} (@code{list-visited-nodes})
+ @kindex C-x C-b
+ @findex list-visited-nodes
+ Make a window containing a menu of all of the currently visited nodes.
+ This window becomes the selected window, and you may use the standard
+ Info commands within it.
+ 
+ @item @kbd{C-x @kbd{b}} (@code{select-visited-node})
+ @kindex C-x b
+ @findex select-visited-node
+ Select a node which has been previously visited in a visible window.
+ This is similar to @samp{C-x C-b} followed by @samp{m}, but no window is
+ created.
+ @end table
+ 
+ 
+ @node Searching Commands
+ @chapter Searching an Info File
+ @cindex searching
+ 
+ GNU Info allows you to search for a sequence of characters throughout an
+ entire Info file, search through the indices of an Info file, or find
+ areas within an Info file which discuss a particular topic.
+ 
+ @table @asis
+ @item @kbd{s} (@code{search})
+ @itemx @kbd{/}
+ @kindex s
+ @kindex /
+ @findex search
+ @cindex regular expression search
+ Read a string in the echo area and search for it, either as a regular
+ expression (by default) or a literal string.  If the string includes
+ upper-case characters, the Info file is searched case-sensitively;
+ otherwise Info ignores the letter case.  With a numeric argument of
+ @var{N}, search for @var{N}th occurrence of the string.  Negative
+ arguments search backwards.
+ 
+ @item @kbd{?} (@code{search-backward}, vi-like operation)
+ @kindex ?, vi-like operation
+ @findex search-backward
+ Read a string in the echo area and search backward through the Info file
+ for that string.  If the string includes upper-case characters, the Info
+ file is searched case-sensitively; otherwise Info ignores the letter
+ case.  With a numeric argument of @var{N}, search for @var{N}th
+ occurrence of the string.  Negative arguments search forward.
+ 
+ @item @kbd{R} (@code{toggle-regexp})
+ @kindex R
+ @findex toggle-regexp
+ Toggle between using regular expressions and literal strings for
+ searching.  Info uses so-called `extended' regular expression syntax,
+ similar to Emacs (@pxref{Regexps, , Using Regular Expressions, emacs,
+ The GNU Emacs Manual}).
+ 
+ @item @kbd{S} (@code{search-case-sensitively}
+ @kindex S
+ @findex search-case-sensitively
+ @cindex search, case-sensitive
+ @cindex case-sensitive search
+ Read a string in the echo area and search for it case-sensitively, even
+ if the string includes only lower-case letters.  With a numeric argument
+ of @var{N}, search for @var{N}th occurrence of the string.  Negative
+ arguments search backwards.
+ 
+ @item @kbd{C-x @kbd{n}} (@code{search-next})
+ @itemx @kbd{n}, vi-like operation
+ @kindex C-x n
+ @kindex n, vi-like operation
+ @findex search-next
+ @cindex repeated search
+ Search for the same string used in the last search command, in the same
+ direction, and with the same case-sensitivity option.  With a numeric
+ argument of @var{N}, search for @var{N}th next occurrence.
+ 
+ @item @kbd{C-x @kbd{N}} (@code{search-previous})
+ @itemx @kbd{N}, vi-like operation
+ @kindex C-x N
+ @kindex n, vi-like operation
+ @findex search-previous
+ Search for the same string used in the last search command, and with the
+ same case-sensitivity option, but in the reverse direction.  With a
+ numeric argument of @var{N}, search for @var{N}th previous occurrence.
+ 
+ @item @kbd{C-s} (@code{isearch-forward})
+ @kindex C-s
+ @findex isearch-forward
+ @cindex incremental search
+ Interactively search forward through the Info file for a string as you
+ type it.  If the string includes upper-case characters, the search is
+ case-sensitive; otherwise Info ignores the letter case.
+ 
+ @item @kbd{C-r} (@code{isearch-backward})
+ @kindex C-r
+ @findex isearch-backward
+ Interactively search backward through the Info file for a string as
+ you type it.  If the string includes upper-case characters, the search
+ is case-sensitive; otherwise Info ignores the letter case.
+ 
+ @item @kbd{i} (@code{index-search})
+ @kindex i
+ @findex index-search
+ @cindex index, searching
+ @cindex searching, in the indices
+ Look up a string in the indices for this Info file, and select a node
+ to which the found index entry points.
+ 
+ @item @kbd{,} (@code{next-index-match})
+ @kindex ,
+ @findex next-index-match
+ Move to the node containing the next matching index item from the last
+ @samp{i} command.
+ 
+ @item @kbd{M-x index-apropos}
+ @findex index-apropos
+ Grovel the indices of all the known Info files on your system for a
+ string, and build a menu of the possible matches.
+ @end table
+ 
+ The most basic searching command is @samp{s} or @samp{/}
+ (@code{search}).  The @samp{s} command prompts you for a string in the
+ echo area, and then searches the remainder of the Info file for an
+ occurrence of that string.  If the string is found, the node containing
+ it is selected, and the cursor is left positioned at the start of the
+ found string.  Subsequent @samp{s} commands show you the default search
+ string within @samp{[} and @samp{]}; pressing @key{RET} instead of
+ typing a new string will use the default search string.  Under
+ @samp{--vi-keys} (@pxref{--vi-keys}), using the @samp{n} or @samp{N}
+ commands is a faster way of searching for the same string.
+ 
+ @dfn{Incremental searching} is similar to basic searching, but the
+ string is looked up while you are typing it, instead of waiting until
+ the entire search string has been specified.
+ 
+ @cindex search, and case-sensitivity
+ @cindex case-sensitivity, and search
+ Both incremental and non-incremental search by default ignore the case
+ of letters when comparing the Info file text with the search string.
+ However, an uppercase letter in the search string makes the search
+ case-sensitive.  You can force a case-sensitive non-incremental search,
+ even for a string that includes only lower-case letters, by using the
+ @samp{S} command (@code{search-case-sensitively}).  The @samp{n} and
+ @samp{N} commands operate case-sensitively if the last search command
+ was @samp{S}.
+ 
+ The most efficient means of finding something quickly in a manual is
+ the @samp{i} command (@code{index-search}).  This command prompts for
+ a string, and then looks for that string in all the indices of the
+ current Info manual.  If it finds a matching index entry, it displays
+ the node to which that entry refers and prints the full text of the
+ entry in the echo area.  You can press @samp{,}
+ (@code{next-index-match}) to find more matches.  A good Info manual
+ has all of its important concepts indexed, so the @samp{i} command
+ lets you use a manual as a reference.
+ 
+ If you don't know what manual documents something, try the @kbd{M-x
+ index-apropos} command.  It prompts for a string and then looks up
+ that string in all the indices of all the Info documents installed on
+ your system.  It can also be invoked from the command line; see
+ @ref{--apropos}.
+ 
+ 
+ @node Xref Commands
+ @chapter Selecting Cross References
+ 
+ We have already discussed the @samp{Next}, @samp{Prev}, and @samp{Up}
+ pointers which appear at the top of a node.  In addition to these
+ pointers, a node may contain other pointers which refer you to a
+ different node, perhaps in another Info file.  Such pointers are called
+ @dfn{cross references}, or @dfn{xrefs} for short.
+ 
+ @menu
+ * Parts of an Xref::            What a cross reference is made of.
+ * Selecting Xrefs::             Commands for selecting menu or note items.
+ @end menu
+ 
+ @node Parts of an Xref
+ @section Parts of an Xref
+ 
+ Cross references have two major parts: the first part is called the
+ @dfn{label}; it is the name that you can use to refer to the cross
+ reference, and the second is the @dfn{target}; it is the full name of
+ the node that the cross reference points to.
+ 
+ The target is separated from the label by a colon @samp{:}; first the
+ label appears, and then the target.  For example, in the sample menu
+ cross reference below, the single colon separates the label from the
+ target.
+ 
+ @example
+ * Foo Label: Foo Target.        More information about Foo.
+ @end example
+ 
+ Note the @samp{.} which ends the name of the target.  The @samp{.} is
+ not part of the target; it serves only to let Info know where the target
+ name ends.
+ 
+ A shorthand way of specifying references allows two adjacent colons to
+ stand for a target name which is the same as the label name:
+ 
+ @example
+ * Foo Commands::                Commands pertaining to Foo.
+ @end example
+ 
+ In the above example, the name of the target is the same as the name of
+ the label, in this case @code{Foo Commands}.
+ 
+ You will normally see two types of cross reference while viewing nodes:
+ @dfn{menu} references, and @dfn{note} references.  Menu references
+ appear within a node's menu; they begin with a @samp{*} at the beginning
+ of a line, and continue with a label, a target, and a comment which
+ describes what the contents of the node pointed to contains.
+ 
+ Note references appear within the body of the node text; they begin with
+ @code{*Note}, and continue with a label and a target.
+ 
+ Like @samp{Next}, @samp{Prev}, and @samp{Up} pointers, cross references
+ can point to any valid node.  They are used to refer you to a place
+ where more detailed information can be found on a particular subject.
+ Here is a cross reference which points to a node within the Texinfo
+ documentation:  @xref{xref, , Writing an Xref, texinfo, the Texinfo
+ Manual}, for more information on creating your own texinfo cross
+ references.
+ 
+ @node Selecting Xrefs
+ @section Selecting Xrefs
+ 
+ The following table lists the Info commands which operate on menu items.
+ 
+ @table @asis
+ @item @kbd{1} (@code{menu-digit})
+ @itemx @kbd{2} @dots{} @kbd{9}
+ @itemx @kbd{M-1}, vi-like operation
+ @itemx @kbd{M-2} @dots{} @kbd{M-9}, vi-like operation
+ @cindex 1 @dots{} 9, in Info windows
+ @cindex M-1 @dots{} M-9, vi-like operation
+ @kindex 1 @dots{} 9, in Info windows
+ @kindex M-1 @dots{} M-9, vi-like operation
+ @findex menu-digit
+ Within an Info window, pressing a single digit, (such as @samp{1}),
+ selects that menu item, and places its node in the current window.
+ For convenience, there is one exception; pressing @samp{0} selects the
+ @emph{last} item in the node's menu.  When @samp{--vi-keys} is in
+ effect, digits set the numeric argument, so these commands are remapped
+ to their @samp{M-} varieties.  For example, to select the last menu
+ item, press @kbd{M-0}.
+ 
+ @item @kbd{0} (@code{last-menu-item})
+ @itemx @kbd{M-0}, vi-like operation
+ @kindex 0, in Info windows
+ @kindex M-0, vi-like operation
+ @findex last-menu-item
+ Select the last item in the current node's menu.
+ 
+ @item @kbd{m} (@code{menu-item})
+ @kindex m
+ @findex menu-item
+ Reads the name of a menu item in the echo area and selects its node.
+ Completion is available while reading the menu label.  @xref{The Echo
+ Area, completion}.
+ 
+ @item @kbd{M-x find-menu}
+ @findex find-menu
+ Move the cursor to the start of this node's menu.
+ @end table
+ 
+ This table lists the Info commands which operate on cross references.
+ 
+ @table @asis
+ @item @kbd{f} (@code{xref-item})
+ @itemx @kbd{r}
+ @item @kbd{M-f}, vi-like operation
+ @itemx @kbd{C-x @kbd{r}}, vi-like operation
+ @kindex f
+ @kindex r
+ @kindex M-f, vi-like operation
+ @kindex C-x r, vi-like operation
+ @findex xref-item
+ Reads the name of a note cross reference in the echo area and selects
+ its node.  Completion is available while reading the cross reference
+ label.  @xref{The Echo Area, completion}.
+ @end table
+ 
+ Finally, the next few commands operate on menu or note references alike:
+ 
+ @table @asis
+ @item @key{TAB} (@code{move-to-next-xref})
+ @kindex TAB, in Info windows
+ @findex move-to-next-xref
+ Move the cursor to the start of the next nearest menu item or note
+ reference in this node.  You can then use @key{RET}
+ (@code{select-reference-this-line}) to select the menu or note reference.
+ 
+ @item @kbd{M-TAB} (@code{move-to-prev-xref})
+ @itemx @kbd{Shift-@key{TAB}} (on DOS/Windows only)
+ @kindex M-TAB, in Info windows
+ @findex move-to-prev-xref
+ Move the cursor the start of the nearest previous menu item or note
+ reference in this node.
+ 
+ @kindex Shift-TAB, in Info windows
+ @kindex BackTab, in Info windows
+ On DOS/Windows only, the @kbd{Shift-@key{TAB}} key is an alias for
+ @kbd{M-@key{TAB}}.  This key is sometimes called @samp{BackTab}.
+ 
+ @item @key{RET} (@code{select-reference-this-line})
+ @itemx @kbd{M-g}, vi-like operation
+ @kindex RET, in Info windows
+ @kindex M-g, vi-like operation
+ @findex select-reference-this-line
+ Select the menu item or note reference appearing on this line.
+ @end table
+ 
+ 
+ @node Window Commands
+ @chapter Manipulating Multiple Windows
+ @cindex windows, manipulating
+ 
+ A @dfn{window} is a place to show the text of a node.  Windows have a
+ view area where the text of the node is displayed, and an associated
+ @dfn{mode line}, which briefly describes the node being viewed.
+ 
+ GNU Info supports multiple windows appearing in a single screen; each
+ window is separated from the next by its modeline.  At any time, there
+ is only one @dfn{active} window, that is, the window in which the cursor
+ appears.  There are commands available for creating windows, changing
+ the size of windows, selecting which window is active, and for deleting
+ windows.
+ 
+ @menu
+ * The Mode Line::               What appears in the mode line?
+ * Basic Windows::               Manipulating windows in Info.
+ * The Echo Area::               Used for displaying errors and reading input.
+ @end menu
+ 
+ @node The Mode Line
+ @section The Mode Line
+ 
+ A @dfn{mode line} is a line of inverse video which appears at the bottom
+ of an Info window.  It describes the contents of the window just above
+ it; this information includes the name of the file and node appearing in
+ that window, the number of screen lines it takes to display the node,
+ and the percentage of text that is above the top of the window.  It can
+ also tell you if the indirect tags table for this Info file needs to be
+ updated, and whether or not the Info file was compressed when stored on
+ disk.
+ 
+ Here is a sample mode line for a window containing an uncompressed file
+ named @file{dir}, showing the node @samp{Top}.
+ 
+ @example
+ @group
+ -----Info: (dir)Top, 40 lines --Top-------------------------------------
+             ^^   ^   ^^^        ^^
+           (file)Node #lines    where
+ @end group
+ @end example
+ 
+ When a node comes from a file which is compressed on disk, this is
+ indicated in the mode line with two small @samp{z}'s.  In addition, if
+ the Info file containing the node has been split into subfiles, the name
+ of the subfile containing the node appears in the modeline as well:
+ 
+ @example
+ --zz-Info: (emacs)Top, 291 lines --Top-- Subfile: emacs-1.Z-------------
+ @end example
+ 
+ Truncation of long lines (as opposed to wrapping them to the next
+ display line, @pxref{Scrolling Commands, toggle-wrap}) is indicated by a
+ @samp{$} at the left edge of the mode line:
+ 
+ @example
+ --$--Info: (texinfo)Top, 480 lines --Top-- Subfile: texinfo-1-----------
+ @end example
+ 
+ When Info makes a node internally, such that there is no corresponding
+ info file on disk, the name of the node is surrounded by asterisks
+ (@samp{*}).  The name itself tells you what the contents of the window
+ are; the sample mode line below shows an internally constructed node
+ showing possible completions:
+ 
+ @example
+ -----Info: *Completions*, 7 lines --All---------------------------------
+ @end example
+ 
+ @node Basic Windows
+ @section Window Commands
+ 
+ It can be convenient to view more than one node at a time.  To allow
+ this, Info can display more than one @dfn{window}.  Each window has its
+ own mode line (@pxref{The Mode Line}) and history of nodes viewed in that
+ window (@pxref{Node Commands, , @code{history-node}}).
+ 
+ @table @asis
+ @item @kbd{C-x @kbd{o}} (@code{next-window})
+ @cindex windows, selecting
+ @kindex C-x o
+ @findex next-window
+ Select the next window on the screen.  Note that the echo area can only be
+ selected if it is already in use, and you have left it temporarily.
+ Normally, @samp{C-x o} simply moves the cursor into the next window on
+ the screen, or if you are already within the last window, into the first
+ window on the screen.  Given a numeric argument, @samp{C-x o} moves over
+ that many windows.  A negative argument causes @samp{C-x o} to select
+ the previous window on the screen.
+ 
+ @item @kbd{M-x prev-window}
+ @findex prev-window
+ Select the previous window on the screen.  This is identical to
+ @samp{C-x o} with a negative argument.
+ 
+ @item @kbd{C-x @kbd{2}} (@code{split-window})
+ @cindex windows, creating
+ @kindex C-x 2
+ @findex split-window
+ Split the current window into two windows, both showing the same node.
+ Each window is one half the size of the original window, and the cursor
+ remains in the original window.  The variable @code{automatic-tiling}
+ can cause all of the windows on the screen to be resized for you
+ automatically (@pxref{Variables, , automatic-tiling}).
+ 
+ @item @kbd{C-x @kbd{0}} (@code{delete-window})
+ @cindex windows, deleting
+ @kindex C-x 0
+ @findex delete-window
+ Delete the current window from the screen.  If you have made too many
+ windows and your screen appears cluttered, this is the way to get rid of
+ some of them.
+ 
+ @item @kbd{C-x @kbd{1}} (@code{keep-one-window})
+ @kindex C-x 1
+ @findex keep-one-window
+ Delete all of the windows excepting the current one.
+ 
+ @item @kbd{ESC @kbd{C-v}} (@code{scroll-other-window})
+ @kindex ESC C-v, in Info windows
+ @findex scroll-other-window
+ Scroll the other window, in the same fashion that @samp{C-v} might
+ scroll the current window.  Given a negative argument, scroll the
+ ``other'' window backward.
+ 
+ @item @kbd{C-x @kbd{^}} (@code{grow-window})
+ @kindex C-x ^
+ @findex grow-window
+ Grow (or shrink) the current window.  Given a numeric argument, grow
+ the current window that many lines; with a negative numeric argument,
+ shrink the window instead.
+ 
+ @item @kbd{C-x @kbd{t}} (@code{tile-windows})
+ @cindex tiling
+ @kindex C-x t
+ @findex tile-windows
+ Divide the available screen space among all of the visible windows.
+ Each window is given an equal portion of the screen in which to display
+ its contents.  The variable @code{automatic-tiling} can cause
+ @code{tile-windows} to be called when a window is created or deleted.
+ @xref{Variables, , @code{automatic-tiling}}.
+ @end table
+ 
+ @node The Echo Area
+ @section The Echo Area
+ @cindex echo area
+ 
+ The @dfn{echo area} is a one line window which appears at the bottom of
+ the screen.  It is used to display informative or error messages, and to
+ read lines of input from you when that is necessary.  Almost all of the
+ commands available in the echo area are identical to their Emacs
+ counterparts, so please refer to that documentation for greater depth of
+ discussion on the concepts of editing a line of text.  The following
+ table briefly lists the commands that are available while input is being
+ read in the echo area:
+ 
+ @table @asis
+ @item @kbd{C-f} (@code{echo-area-forward})
+ @itemx @key{RIGHT} (an arrow key)
+ @itemx @kbd{M-h}, vi-like operation
+ @kindex C-f, in the echo area
+ @kindex RIGHT, in the echo area
+ @kindex M-h, in the echo area, vi-like operation
+ @findex echo-area-forward
+ Move forward a character.
+ 
+ @item @kbd{C-b} (@code{echo-area-backward})
+ @itemx @key{LEFT} (an arrow key)
+ @itemx @kbd{M-l}, vi-like operation
+ @kindex LEFT, in the echo area
+ @kindex C-b, in the echo area
+ @kindex M-l, in the echo area, vi-like operation
+ @findex echo-area-backward
+ Move backward a character.
+ 
+ @item @kbd{C-a} (@code{echo-area-beg-of-line})
+ @itemx @kbd{M-0}, vi-like operation
+ @kindex C-a, in the echo area
+ @kindex M-0, in the echo area, vi-like operation
+ @findex echo-area-beg-of-line
+ Move to the start of the input line.
+ 
+ @item @kbd{C-e} (@code{echo-area-end-of-line})
+ @itemx @kbd{M-$}, vi-like operation
+ @kindex C-e, in the echo area
+ @kindex M-$, vi-like operation
+ @findex echo-area-end-of-line
+ Move to the end of the input line.
+ 
+ @item @kbd{M-f} (@code{echo-area-forward-word})
+ @itemx @kbd{C-@key{RIGHT}} (DOS/Windows only)
+ @itemx @kbd{M-w}, vi-like operation
+ @kindex M-f, in the echo area
+ @kindex M-w, in the echo area, vi-like operation
+ @findex echo-area-forward-word
+ Move forward a word.
+ 
+ @kindex C-RIGHT, in the echo area
+ On DOS/Windows, @kbd{C-@key{RIGHT}} moves forward by words.
+ 
+ @item @kbd{M-b} (@code{echo-area-backward-word})
+ @itemx @kbd{C-@key{LEFT}} (DOS/Windows only)
+ @kindex M-b, in the echo area
+ @findex echo-area-backward-word
+ Move backward a word.
+ 
+ @kindex C-LEFT, in the echo area
+ On DOS/Windows, @kbd{C-@key{LEFT}} moves backward by words.
+ 
+ @item @kbd{C-d} (@code{echo-area-delete})
+ @itemx @kbd{M-x}, vi-like operation
+ @kindex C-d, in the echo area
+ @kindex M-x, in the echo area, vi-like operation
+ @findex echo-area-delete
+ Delete the character under the cursor.
+ 
+ @item @key{DEL} (@code{echo-area-rubout})
+ @kindex DEL, in the echo area
+ @findex echo-area-rubout
+ Delete the character behind the cursor.
+ 
+ On some keyboards, this key is designated @key{BS}, for
+ @samp{Backspace}.  Those keyboards will usually bind @key{DEL} in the
+ echo area to @code{echo-area-delete}.
+ 
+ @item @kbd{C-g} (@code{echo-area-abort})
+ @itemx @kbd{C-u}, vi-like operation
+ @kindex C-g, in the echo area
+ @kindex C-u, in the echo area, vi-like operation
+ @findex echo-area-abort
+ Cancel or quit the current operation.  If completion is being read, this
+ command discards the text of the input line which does not match any
+ completion.  If the input line is empty, it aborts the calling function.
+ 
+ @item @key{RET} (@code{echo-area-newline})
+ @kindex RET, in the echo area
+ @findex echo-area-newline
+ Accept (or forces completion of) the current input line.
+ 
+ @item @kbd{C-q} (@code{echo-area-quoted-insert})
+ @itemx @kbd{C-v}, vi-like operation
+ @kindex C-q, in the echo area
+ @kindex C-v, in the echo area, vi-like operation
+ @findex echo-area-quoted-insert
+ Insert the next character verbatim.  This is how you can insert control
+ characters into a search string, for example, or the @samp{?} character
+ when Info prompts with completion.
+ 
+ @item @var{printing character} (@code{echo-area-insert})
+ @kindex printing characters, in the echo area
+ @findex echo-area-insert
+ Insert the character.  Characters that have their 8th bit set, and not
+ bound to @samp{M-} commands, are also inserted verbatim; this is useful
+ for terminals which support Latin scripts.
+ 
+ @item @kbd{M-TAB} (@code{echo-area-tab-insert})
+ @itemx @kbd{Shift-@key{TAB}} (on DOS/Windows only)
+ @kindex M-TAB, in the echo area
+ @kindex Shift-TAB, in the echo area
+ @findex echo-area-tab-insert
+ Insert a TAB character.
+ 
+ @kindex Shift-TAB, in the echo area
+ @kindex BackTab, in the echo area
+ On DOS/Windows only, the @kbd{Shift-@key{TAB}} key is an alias for
+ @kbd{M-@key{TAB}}.  This key is sometimes called @samp{BackTab}.
+ 
+ @item @kbd{C-t} (@code{echo-area-transpose-chars})
+ @kindex C-t, in the echo area
+ @findex echo-area-transpose-chars
+ Transpose the characters at the cursor.
+ @end table
+ 
+ The next group of commands deal with @dfn{killing}, and @dfn{yanking}
+ text@footnote{
+ Some people are used to calling these operations @dfn{cut} and
+ @dfn{paste}, respectively.}.   For an in-depth discussion of killing and
+ yanking, see @ref{Killing, , Killing and Deleting, emacs, the GNU Emacs
+ Manual}.
+ 
+ @table @asis
+ @item @kbd{M-d} (@code{echo-area-kill-word})
+ @itemx @kbd{M-X}, vi-like operation
+ @kindex M-d, in the echo area
+ @kindex M-X, in the echo area, vi-like operation
+ @findex echo-area-kill-word
+ Kill the word following the cursor.
+ 
+ @item @kbd{M-@key{DEL}} (@code{echo-area-backward-kill-word})
+ @itemx @kbd{M-@key{BS}}
+ @kindex M-DEL, in the echo area
+ @findex echo-area-backward-kill-word
+ Kill the word preceding the cursor.
+ 
+ @kindex M-BS, in the echo area
+ On some keyboards, the @samp{Backspace} key is used instead of
+ @code{DEL}, so @code{M-@key{Backspace}} has the same effect as
+ @code{M-@key{DEL}}.
+ 
+ @item @kbd{C-k} (@code{echo-area-kill-line})
+ @kindex C-k, in the echo area
+ @findex echo-area-kill-line
+ Kill the text from the cursor to the end of the line.
+ 
+ @item @kbd{C-x @key{DEL}} (@code{echo-area-backward-kill-line})
+ @kindex C-x DEL, in the echo area
+ @findex echo-area-backward-kill-line
+ Kill the text from the cursor to the beginning of the line.
+ 
+ @item @kbd{C-y} (@code{echo-area-yank})
+ @kindex C-y, in the echo area
+ @findex echo-area-yank
+ Yank back the contents of the last kill.
+ 
+ @item @kbd{M-y} (@code{echo-area-yank-pop})
+ @kindex M-y, in the echo area
+ @findex echo-area-yank-pop
+ Yank back a previous kill, removing the last yanked text first.
+ @end table
+ 
+ @cindex completion
+ Sometimes when reading input in the echo area, the command that needed
+ input will only accept one of a list of several choices.  The choices
+ represent the @dfn{possible completions}, and you must respond with one
+ of them.  Since there are a limited number of responses you can make,
+ Info allows you to abbreviate what you type, only typing as much of the
+ response as is necessary to uniquely identify it.  In addition, you can
+ request Info to fill in as much of the response as is possible; this
+ is called @dfn{completion}.
+ 
+ The following commands are available when completing in the echo area:
+ 
+ @table @asis
+ @item @key{TAB} (@code{echo-area-complete})
+ @itemx @key{SPC}
+ @kindex TAB, in the echo area
+ @kindex SPC, in the echo area
+ @findex echo-area-complete
+ Insert as much of a completion as is possible.
+ 
+ @item @kbd{?} (@code{echo-area-possible-completions})
+ @kindex ?, in the echo area
+ @findex echo-area-possible-completions
+ Display a window containing a list of the possible completions of what
+ you have typed so far.  For example, if the available choices are:
+ 
+ @example
+ @group
+ bar
+ foliate
+ food
+ forget
+ @end group
+ @end example
+ 
+ @noindent
+ and you have typed an @samp{f}, followed by @samp{?}, Info will pop up a
+ window showing a node called @samp{*Completions*} which lists the
+ possible completions like this:
+ 
+ @example
+ @group
+ 3 completions:
+ foliate         food
+ forget
+ @end group
+ @end example
+ 
+ @noindent
+ i.e., all of the choices which begin with @samp{f}.  Pressing @key{SPC}
+ or @key{TAB} would result in @samp{fo} appearing in the echo area, since
+ all of the choices which begin with @samp{f} continue with @samp{o}.
+ Now, typing @samp{l} followed by @samp{TAB} results in @samp{foliate}
+ appearing in the echo area, since that is the only choice which begins
+ with @samp{fol}.
+ 
+ @item @key{ESC C-v} (@code{echo-area-scroll-completions-window})
+ @kindex ESC C-v, in the echo area
+ @findex echo-area-scroll-completions-window
+ Scroll the completions window, if that is visible, or the ``other''
+ window if not.
+ @end table
+ 
+ 
+ @node Printing Nodes
+ @chapter Printing Nodes
+ @cindex printing
+ 
+ In general, we recommend that you use @TeX{} to format the document and
+ print sections of it, by running @code{tex} on the Texinfo source file.
+ However, you may wish to print out the contents of a node as a quick
+ reference document for later use, or if you don't have @TeX{} installed.
+ Info provides you with a command for doing this.
+ 
+ @table @asis
+ @item @kbd{M-x print-node}
+ @findex print-node
+ @cindex INFO_PRINT_COMMAND, environment variable
+ Pipe the contents of the current node through the command in the
+ environment variable @code{INFO_PRINT_COMMAND}.  If the variable does not
+ exist, the node is simply piped to @code{lpr} (on DOS/Windows, the
+ default is to print the node to the local printer device, @file{PRN}).
+ 
+ @cindex printing nodes to the local printer
+ @cindex local printer device
+ The value of @code{INFO_PRINT_COMMAND} may begin with the @samp{>}
+ character, as in @samp{>/dev/printer}, in which case Info treats the
+ rest as the name of a file or a device.  Instead of piping to a command,
+ Info opens the file, writes the node contents, and closes the file,
+ under the assumption that text written to that file will be printed by
+ the underlying OS.
+ @end table
+ 
+ 
+ @node Miscellaneous Commands
+ @chapter Miscellaneous Commands
+ 
+ GNU Info contains several commands which self-document GNU Info:
+ 
+ @table @asis
+ @item @kbd{M-x describe-command}
+ @cindex functions, describing
+ @cindex commands, describing
+ @findex describe-command
+ Read the name of an Info command in the echo area and then display a
+ brief description of what that command does.
+ 
+ @item @kbd{M-x describe-key}
+ @cindex keys, describing
+ @findex describe-key
+ Read a key sequence in the echo area, and then display the name and
+ documentation of the Info command that the key sequence invokes.
+ 
+ @item @kbd{M-x describe-variable}
+ Read the name of a variable in the echo area and then display a brief
+ description of what the variable affects.
+ 
+ @item @kbd{M-x where-is}
+ @findex where-is
+ Read the name of an Info command in the echo area, and then display
+ a key sequence which can be typed in order to invoke that command.
+ 
+ @item @kbd{C-h} (@code{get-help-window})
+ @itemx @kbd{?}
+ @itemx @key{F1} (on DOS/Windows only)
+ @itemx h, vi-like operation
+ @kindex C-h
+ @kindex ?, in Info windows
+ @kindex F1
+ @kindex h, vi-like operation
+ @findex get-help-window
+ Create (or Move into) the window displaying @code{*Help*}, and place
+ a node containing a quick reference card into it.  This window displays
+ the most concise information about GNU Info available.
+ 
+ @item @kbd{h} (@code{get-info-help-node})
+ @itemx @kbd{M-h}, vi-like operation
+ @kindex h
+ @kindex M-h, vi-like operation
+ @findex get-info-help-node
+ Try hard to visit the node @code{(info)Help}.  The Info file
+ @file{info.texi} distributed with GNU Info contains this node.  Of
+ course, the file must first be processed with @code{makeinfo}, and then
+ placed into the location of your Info directory.
+ @end table
+ 
+ Here are the commands for creating a numeric argument:
+ 
+ @table @asis
+ @item @kbd{C-u} (@code{universal-argument})
+ @cindex numeric arguments
+ @kindex C-u
+ @findex universal-argument
+ Start (or multiply by 4) the current numeric argument.  @samp{C-u} is
+ a good way to give a small numeric argument to cursor movement or
+ scrolling commands; @samp{C-u C-v} scrolls the screen 4 lines, while
+ @samp{C-u C-u C-n} moves the cursor down 16 lines.  @samp{C-u} followed
+ by digit keys sets the numeric argument to the number thus typed:
+ @kbd{C-u 1 2 0} sets the argument to 120.
+ 
+ @item @kbd{M-1} (@code{add-digit-to-numeric-arg})
+ @itemx @kbd{1}, vi-like operation
+ @itemx @kbd{M-2} @dots{} @kbd{M-9}
+ @itemx @kbd{2} @dots{} @kbd{9}, vi-like operation
+ @itemx @kbd{M-0}
+ @itemx @kbd{0}, vi-like operation
+ @kindex M-0 @dots{} M-9
+ @kindex 0 @dots{} 9, vi-like operation
+ @findex add-digit-to-numeric-arg
+ Add the digit value of the invoking key to the current numeric
+ argument.  Once Info is reading a numeric argument, you may just type
+ the digits of the argument, without the Meta prefix.  For example, you
+ might give @samp{C-l} a numeric argument of 32 by typing:
+ 
+ @example
+ @kbd{C-u 3 2 C-l}
+ @end example
+ 
+ @noindent
+ or
+ 
+ @example
+ @kbd{M-3 2 C-l}
+ @end example
+ 
+ @item @kbd{M--} (@code{add-digit-to-numeric-arg}
+ @itemx @kbd{-}
+ @kindex M--
+ @kindex -
+ @cindex negative arguments
+ @cindex arguments, negative
+ @cindex numeric arguments, negative
+ To make a negative argument, type @kbd{-}.  Typing @kbd{-} alone makes a
+ negative argument with a value of -1.  If you continue to type digit or
+ Meta-digit keys after @kbd{-}, the result is a negative number produced
+ by those digits.
+ 
+ @kbd{-} doesn't work when you type in the echo area, because you need to
+ be able to insert the @samp{-} character itself; use @kbd{M--} instead,
+ if you need to specify negative arguments in the echo area.
+ @end table
+ 
+ @samp{C-g} is used to abort the reading of a multi-character key
+ sequence, to cancel lengthy operations (such as multi-file searches) and
+ to cancel reading input in the echo area.
+ 
+ @table @asis
+ @item @kbd{C-g} (@code{abort-key})
+ @itemx @kbd{C-u}, vi-like operation
+ @cindex cancelling typeahead
+ @cindex cancelling the current operation
+ @kindex C-g, in Info windows
+ @kindex C-u cancels typeahead, vi-like operation
+ @findex abort-key
+ Cancel current operation.
+ @end table
+ 
+ The @samp{q} command of Info simply quits running Info.  Under
+ @samp{--vi-keys} (@pxref{--vi-keys}), you can also exit with @samp{:q}
+ or @samp{ZZ}.
+ 
+ @table @asis
+ @item @kbd{q} (@code{quit})
+ @itemx @kbd{C-x C-c}
+ @itemx @kbd{:q}, vi-like operation
+ @itemx @kbd{ZZ}, vi-like operation
+ @cindex quitting
+ @kindex q
+ @kindex C-x C-c
+ @kindex ZZ, vi-like operation
+ @findex quit
+ Exit GNU Info.
+ @end table
+ 
+ If the operating system tells GNU Info that the screen is 60 lines tall,
+ and it is actually only 40 lines tall, here is a way to tell Info that
+ the operating system is correct.
+ 
+ @table @asis
+ @item @kbd{M-x set-screen-height}
+ @findex set-screen-height
+ @cindex screen, changing the height of
+ Read a height value in the echo area and set the height of the
+ displayed screen to that value.
+ @end table
+ 
+ On MS-DOS/MS-Windows, this command actually tries to change the
+ dimensions of the visible screen to the value you type in the echo
+ area.
+ 
+ Finally, Info provides a convenient way to display footnotes which might
+ be associated with the current node that you are viewing:
+ 
+ @table @asis
+ @item @kbd{ESC C-f} (@code{show-footnotes})
+ @kindex ESC C-f
+ @findex show-footnotes
+ @cindex footnotes, displaying
+ Show the footnotes (if any) associated with the current node in another
+ window.  You can have Info automatically display the footnotes
+ associated with a node when the node is selected by setting the variable
+ @code{automatic-footnotes}.  @xref{Variables, , @code{automatic-footnotes}}.
+ @end table
+ 
+ 
+ @node Variables
+ @chapter Manipulating Variables
+ 
+ GNU Info contains several @dfn{variables} whose values are looked at by
+ various Info commands.  You can change the values of these variables,
+ and thus change the behavior of Info to more closely match your
+ environment and Info file reading manner.
+ 
+ There are two ways to set the value of a variable: interactively, using
+ the @code{set-variable} command described below, or in the @code{#var}
+ section of the @code{.infokey} file.  @xref{Custom Key Bindings}.
+ 
+ @table @asis
+ @item @kbd{M-x set-variable}
+ @cindex variables, setting
+ @findex set-variable
+ Read the name of a variable, and the value for it, in the echo area and
+ then set the variable to that value.  Completion is available when
+ reading the variable name (@pxref{The Echo Area, completion}); often,
+ completion is available when reading the value to give to the variable,
+ but that depends on the variable itself.  If a variable does @emph{not}
+ supply multiple choices to complete over, it expects a numeric value.
+ 
+ @item @kbd{M-x describe-variable}
+ @cindex variables, describing
+ @findex describe-variable
+ Read the name of a variable in the echo area and then display a brief
+ description of what the variable affects.
+ @end table
+ 
+ Here is a list of the variables that you can set in Info.
+ 
+ @table @code
+ @item automatic-footnotes
+ @vindex automatic-footnotes
+ When set to @code{On}, footnotes appear and disappear automatically;
+ else, they appear at the bottom of the node text.  This variable is
+ @code{Off} by default.  When a node is selected, a window containing
+ the footnotes which appear in that node is created, and the footnotes
+ are displayed within the new window.  The window that Info creates to
+ contain the footnotes is called @samp{*Footnotes*}.  If a node is
+ selected which contains no footnotes, and a @samp{*Footnotes*} window
+ is on the screen, the @samp{*Footnotes*} window is deleted.  Footnote
+ windows created in this fashion are not automatically tiled so that
+ they can use as little of the display as is possible.
+ 
+ @item automatic-tiling
+ @vindex automatic-tiling
+ When set to @code{On}, creating or deleting a window resizes other
+ windows.  This variable is @code{Off} by default.  Normally, typing
+ @samp{C-x 2} divides the current window into two equal parts.  When
+ @code{automatic-tiling} is set to @code{On}, all of the windows are
+ resized automatically, keeping an equal number of lines visible in each
+ window.  There are exceptions to the automatic tiling; specifically, the
+ windows @samp{*Completions*} and @samp{*Footnotes*} are @emph{not}
+ resized through automatic tiling; they remain their original size.
+ 
+ @anchor{cursor-movement-scrolls}
+ @item cursor-movement-scrolls
+ Normally, cursor movement commands (@pxref{Cursor Commands}) stop when
+ top or bottom of a node is reached.  When this variable is set to
+ @code{On}, cursor movement commands act as scrolling ones and their
+ behavior is controlled by the @code{scroll-behavior} variable (see below).
+ 
+ @item errors-ring-bell
+ @vindex errors-ring-bell
+ When set to @code{On}, errors cause the bell to ring.  The default
+ setting of this variable is @code{On}.
+ 
+ @item gc-compressed-files
+ @vindex gc-compressed-files
+ When set to @code{On}, Info garbage collects files which had to be
+ uncompressed.  The default value of this variable is @code{Off}.
+ Whenever a node is visited in Info, the Info file containing that node
+ is read into core, and Info reads information about the tags and nodes
+ contained in that file.  Once the tags information is read by Info, it
+ is never forgotten.  However, the actual text of the nodes does not need
+ to remain in core unless a particular Info window needs it.  For
+ non-compressed files, the text of the nodes does not remain in core when
+ it is no longer in use.  But de-compressing a file can be a time
+ consuming operation, and so Info tries hard not to do it twice.
+ @code{gc-compressed-files} tells Info it is okay to garbage collect the
+ text of the nodes of a file which was compressed on disk.
+ 
+ @item ISO-Latin
+ @cindex ISO Latin characters
+ @vindex ISO-Latin
+ When set to @code{On}, Info accepts and displays ISO Latin characters.
+ By default, Info assumes an ASCII character set.  @code{ISO-Latin} tells
+ Info that it is running in an environment where the European standard
+ character set is in use, and allows you to input such characters to
+ Info, as well as display them.
+ 
+ @anchor{scroll-behavior}
+ @item scroll-behavior
+ @itemx scroll-behaviour
+ @vindex scroll-behavior
+ @vindex scroll-behaviour
+ Control what happens when forward scrolling is requested at the end of
+ a node, or when backward scrolling is requested at the beginning of a
+ node.  The default value for this variable is @code{Continuous}.
+ There are three possible values for this variable:
+ 
+ @table @code
+ @item Continuous
+ Try to get the first item in this node's menu, or failing that, the
+ @samp{Next} node, or failing that, the @samp{Next} of the @samp{Up}.
+ This behavior is identical to using the @samp{]}
+ (@code{global-next-node}) and @samp{[} (@code{global-prev-node})
+ commands.
+ 
+ @item scroll-last-node
+ @vindex scroll-last-node
+ Control what happens when a scrolling command is issued at the end of
+ the last node. Possible values are:
+ 
+ @table @code
+ @item Stop
+ Do not scroll. Display the @samp{No more nodes within this document.}
+ message. This is the default.
+ 
+ @item Scroll
+ Scroll as usual. Since the last node is usually an index, this means
+ that the very first node from the menu will be selected.
+ 
+ @item Top
+ Go to the top node of this document.
+ @end table
+ 
+ This variable is in effect only if @code{scroll-behaviour} is set to
+ @code{Continuous}.
+ 
+ Notice that the default behavior has changed in version 4.12. Previous
+ versions behaved as if @code{scroll-last-node=Scroll} was set. This
+ behavior was counter-intuitive, therefore since version 4.12 the
+ default is to stop at the last node.
+ 
+ @item Next Only
+ Only try to get the @samp{Next} node.
+ 
+ @item Page Only
+ Simply give up, changing nothing.  If @code{scroll-behavior} is
+ @code{Page Only}, no scrolling command can change the node that is being
+ viewed.
+ @end table
+ 
+ This variable normally affects only scrolling commands.
+ @xref{cursor-movement-scrolls}, for information on how to widen its
+ scope.
+ 
+ The two names, @code{scroll-behavior} and @code{scroll-behaviour}, are
+ a historical accident.  They are merely synonyms.
+ 
+ @item scroll-step
+ @vindex scroll-step
+ The number of lines to scroll when the cursor moves out of the window.
+ Scrolling happens automatically if the cursor has moved out of the
+ visible portion of the node text when it is time to display.  Usually
+ the scrolling is done so as to put the cursor on the center line of the
+ current window.  However, if the variable @code{scroll-step} has a
+ nonzero value, Info attempts to scroll the node text by that many lines;
+ if that is enough to bring the cursor back into the window, that is what
+ is done.  The default value of this variable is 0, thus placing the
+ cursor (and the text it is attached to) in the center of the window.
+ Setting this variable to 1 causes a kind of ``smooth scrolling'' which
+ some people prefer.
+ 
+ @item show-index-match
+ @vindex show-index-match
+ When set to @code{On}, the portion of the matched search string is
+ highlighted in the message which explains where the matched search
+ string was found.  The default value of this variable is @code{On}.
+ When Info displays the location where an index match was found,
+ (@pxref{Searching Commands, , @code{next-index-match}}), the portion of the
+ string that you had typed is highlighted by displaying it in the inverse
+ case from its surrounding characters.
+ 
+ @item visible-bell
+ @vindex visible-bell
+ When set to @code{On}, GNU Info attempts to flash the screen instead of
+ ringing the bell.  This variable is @code{Off} by default.  Of course,
+ Info can only flash the screen if the terminal allows it; in the case
+ that the terminal does not allow it, the setting of this variable has no
+ effect.  However, you can make Info perform quietly by setting the
+ @code{errors-ring-bell} variable to @code{Off}.
+ 
+ @end table
+ 
+ 
+ @node Custom Key Bindings
+ @chapter Customizing Key Bindings and Variables
+ 
+ @cindex default key bindings, overriding
+ @cindex overriding default key bindings
+ @cindex customizing key bindings
+ @cindex key bindings, customizing
+ @cindex infokey
+ @cindex .info
+ @cindex .infokey
+ @cindex _info file (MS-DOS)
+ 
+ GNU Info provides a way to define arbitrary key-to-command bindings
+ and variable settings, overriding the defaults described in this
+ document.  (The @option{--vi-keys} option rebinds many keys at once;
+ @pxref{--vi-keys}.)
+ 
+ On startup, GNU Info looks for a configuration file in the invoker's
+ HOME directory called @file{.info}@footnote{Due to the limitations of
+ DOS filesystems, the MS-DOS version of Info looks for a file
+ @file{_info} instead.  If the @env{HOME} variable is not defined, Info
+ additionally looks in the current directory.}.  If it is present, and
+ appears to contain Info configuration data, and was created with the
+ current version of the @code{infokey} command, then Info adopts the
+ key bindings and variable settings contained therein.
+ 
+ The @file{.info} file contains compact, non-textual data for reasons of
+ efficiency and because its design was lifted wholesale from the GNU Less
+ program, which also does it that way.  It must be created by compiling a
+ textual source file using the @code{infokey} command.
+ 
+ @menu
+ * Invoking infokey::
+ * infokey source format::
+ @end menu
+ 
+ 
+ @node Invoking infokey
+ @section Invoking @command{infokey}
+ 
+ @cindex invoking infokey
+ @cindex infokey, invoking
+ @cindex _infokey file (MS-DOS)
+ 
+ @command{infokey} compiles a source file
+ (@file{$HOME/.infokey}@footnote{This file is named @file{_infokey} in
+ the MS-DOS version, and is looked for in the current directory if
+ @env{HOME} is undefined.} by default) containing Info customizations
+ into a binary format (@file{$HOME/.info} by default).  GNU Info reads
+ the binary file at startup to override the default key bindings and
+ variable definitions.  Synopsis:
+ 
+ @example
+ infokey [@var{option}@dots{}] [@var{input-file}]
+ @end example
+ 
+ Besides the standard @option{--help} and @option{--version}, the only
+ option is @option{--output @var{file}}.  This tells @command{infokey} to
+ write the binary data to @var{file} instead of @file{$HOME/.info}.
+ 
+ 
+ @node infokey source format
+ @section @command{infokey} source format
+ 
+ @cindex infokey source format
+ @cindex .infokey source format
+ @cindex format of .infokey source
+ 
+ The format of the source file read by @command{infokey} is most easily
+ illustrated by example.  For instance, here is a sample @file{.infokey}
+ source file suitable for aficionados of @command{vi} or @command{less}:
+ 
+ @example
+ #info
+ j       next-line
+ k       prev-line
+ l       forward-char
+ h       backward-char
+ \kd     next-line
+ \ku     prev-line
+ \kr     forward-char
+ \kl     backward-char
+ \       scroll-forward
+ \kD     scroll-forward-page-only
+ b       scroll-backward
+ \kU     scroll-backward-page-only
+ g       beginning-of-node
+ \kh     beginning-of-node
+ G       end-of-node
+ \ke     end-of-node
+ \t      select-reference-this-line
+ -       history-node
+ n       next-node
+ p       prev-node
+ u       up-node
+ t       top-node
+ d       dir-node
+ #var
+ scroll-step=1
+ @end example
+ 
+ The source file consists of one or more @dfn{sections}.
+ Each section starts with a line that identifies the type of section.
+ Possible sections are:
+ 
+ @table @code
+ @item #info
+ Key bindings for Info windows.
+ The start of this section is indicated by a line containing just
+ @code{#info} by itself.  If this is the first section in the source
+ file, the @code{#info} line can be omitted.  The rest of this section
+ consists of lines of the form:
+ 
+ @example
+ @var{string} whitespace @var{action} [ whitespace [ # comment ] ] newline
+ @end example
+ 
+ Whitespace is any sequence of one or more spaces and/or tabs.  Comment
+ is any sequence of any characters, excluding newline.  @var{string} is
+ the key sequence which invokes the action.  @var{action} is the name of
+ an Info command.  The characters in @var{string} are interpreted
+ literally or prefixed by a caret (@code{^}) to indicate a control
+ character.  A backslash followed by certain characters specifies input
+ keystrokes as follows:
+ 
+ @table @code
+ @item \b
+ Backspace
+ @item \e
+ Escape (ESC)
+ @item \n
+ Newline
+ @item \r
+ Return
+ @item \t
+ Tab
+ @item \ku
+ Up arrow
+ @item \kd
+ Down arrow
+ @item \kl
+ Left arrow
+ @item \kr
+ Right arrow
+ @item \kU
+ Page Up
+ @item \kD
+ Page Down
+ @item \kh
+ HOME
+ @item \ke
+ END
+ @item \kx
+ Delete (DEL)
+ @item \m@var{x}
+ Meta-@var{x} where @var{x} is any character as described above.
+ @end table
+ 
+ Backslash followed by any other character indicates that character is to
+ be taken literally.  Characters which must be preceded by a backslash
+ include caret, space, tab, and backslash itself.
+ 
+ @item #echo-area
+ Key bindings for the echo area.
+ The start of this section is indicated by a line containing just
+ @code{#echo-area} by itself.  The rest of this section has a syntax
+ identical to that for the key definitions for the Info area, described
+ above.
+ 
+ @item #var
+ Variable initializations.
+ The start of this section is indicated by a line containing just
+ @code{#var} by itself.  Following this line is a list of variable
+ assignments, one per line.  Each line consists of a variable name
+ (@xref{Variables},) followed by @code{=} followed by a value.
+ There may be no white space between the variable name and the @code{=},
+ and all characters following the @code{=}, including white space,
+ are included in the value.
+ @end table
+ 
+ Blank lines and lines starting with @code{#} are ignored, except for
+ the special section header lines.
+ 
+ Key bindings defined in the @file{.info} file take precedence over GNU
+ Info's default key bindings, whether or not @samp{--vi-keys} is used.  A
+ default key binding may be disabled by overriding it in the @file{.info}
+ file with the action @code{invalid}.  In addition, @emph{all} default
+ key bindings can be disabled by adding this line @emph{anywhere} in the
+ relevant section:
+ 
+ @example
+ #stop
+ @end example
+ 
+ This will cause GNU Info to ignore all the default key commands for that
+ section.
+ 
+ Beware: @code{#stop} can be dangerous.  Since it disables all default
+ key bindings, you must supply enough new key bindings to enable all
+ necessary actions.  Failure to bind any key to the @code{quit} command,
+ for example, can lead to frustration.
+ 
+ The order in which key bindings are defined in the @file{.info} file is
+ not important, except that the command summary produced by the
+ @code{get-help-window} command only displays the @emph{first} key that
+ is bound to each command.
+ 
+ 
+ @c the following is incomplete
+ @ignore
+ @c node Info for Sys Admins
+ @c chapter Info for System Administrators
+ 
+ This text describes some common ways of setting up an Info hierarchy
+ from scratch, and details the various options that are available when
+ installing Info.  This text is designed for the person who is installing
+ GNU Info on the system; although users may find the information present
+ in this section interesting, none of it is vital to understanding how to
+ use GNU Info.
+ 
+ @menu
+ * Setting the INFOPATH::        Where are my Info files kept?
+ * Editing the DIR node::        What goes in `DIR', and why?
+ * Storing Info files::          Alternate formats allow flexibility in setups.
+ * Using `localdir'::            Building DIR on the fly.
+ * Example setups::              Some common ways to organize Info files.
+ @end menu
+ 
+ @c node Setting the INFOPATH
+ @c section Setting the INFOPATH
+ 
+ Where are my Info files kept?
+ 
+ @c node Editing the DIR node
+ @c section Editing the DIR node
+ 
+ What goes in `DIR', and why?
+ 
+ @c node Storing Info files
+ @c section Storing Info files
+ 
+ Alternate formats allow flexibility in setups.
+ 
+ @c node Using `localdir'
+ @c section Using `localdir'
+ 
+ Building DIR on the fly.
+ 
+ @c node Example setups
+ @c section Example setups
+ 
+ Some common ways to organize Info files.
+ @end ignore
+ 
+ 
+ @node Index
+ @appendix Index
+ 
+ @printindex cp
+ 
+ @bye
diff -Nrc2 texinfo-4.12/doc/info.1 texinfo-4.13/doc/info.1
*** texinfo-4.12/doc/info.1	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/info.1	Thu Sep 18 11:46:49 2008
***************
*** 0 ****
--- 1,101 ----
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+ .TH INFO "1" "September 2008" "info 4.13" "User Commands"
+ .SH NAME
+ info \- read Info documents
+ .SH SYNOPSIS
+ .B info
+ [\fIOPTION\fR]... [\fIMENU-ITEM\fR...]
+ .SH DESCRIPTION
+ Read documentation in Info format.
+ .SH OPTIONS
+ .TP
+ \fB\-k\fR, \fB\-\-apropos\fR=\fISTRING\fR
+ look up STRING in all indices of all manuals.
+ .TP
+ \fB\-d\fR, \fB\-\-directory\fR=\fIDIR\fR
+ add DIR to INFOPATH.
+ .TP
+ \fB\-\-dribble\fR=\fIFILENAME\fR
+ remember user keystrokes in FILENAME.
+ .TP
+ \fB\-f\fR, \fB\-\-file\fR=\fIFILENAME\fR
+ specify Info file to visit.
+ .TP
+ \fB\-h\fR, \fB\-\-help\fR
+ display this help and exit.
+ .TP
+ \fB\-\-index\-search\fR=\fISTRING\fR
+ go to node pointed by index entry STRING.
+ .TP
+ \fB\-n\fR, \fB\-\-node\fR=\fINODENAME\fR
+ specify nodes in first visited Info file.
+ .TP
+ \fB\-o\fR, \fB\-\-output\fR=\fIFILENAME\fR
+ output selected nodes to FILENAME.
+ .TP
+ \fB\-R\fR, \fB\-\-raw\-escapes\fR
+ output "raw" ANSI escapes (default).
+ .TP
+ \fB\-\-no\-raw\-escapes\fR
+ output escapes as literal text.
+ .TP
+ \fB\-\-restore\fR=\fIFILENAME\fR
+ read initial keystrokes from FILENAME.
+ .TP
+ \fB\-O\fR, \fB\-\-show\-options\fR, \fB\-\-usage\fR
+ go to command\-line options node.
+ .TP
+ \fB\-\-subnodes\fR
+ recursively output menu items.
+ .TP
+ \fB\-\-vi\-keys\fR
+ use vi\-like and less\-like key bindings.
+ .TP
+ \fB\-\-version\fR
+ display version information and exit.
+ .TP
+ \fB\-w\fR, \fB\-\-where\fR, \fB\-\-location\fR
+ print physical location of Info file.
+ .PP
+ The first non\-option argument, if present, is the menu entry to start from;
+ it is searched for in all `dir' files along INFOPATH.
+ If it is not present, info merges all `dir' files and shows the result.
+ Any remaining arguments are treated as the names of menu
+ items relative to the initial node visited.
+ .PP
+ For a summary of key bindings, type h within Info.
+ .SH EXAMPLES
+ .TP
+ info
+ show top\-level dir menu
+ .TP
+ info info
+ show the general manual for Info readers
+ .TP
+ info info\-stnd
+ show the manual specific to this Info program
+ .TP
+ info emacs
+ start at emacs node from top\-level dir
+ .TP
+ info emacs buffers
+ start at buffers node within emacs manual
+ .TP
+ info \fB\-\-show\-options\fR emacs
+ start at node with emacs' command line options
+ .TP
+ info \fB\-\-subnodes\fR \fB\-o\fR out.txt emacs
+ dump entire manual to out.txt
+ .TP
+ info \fB\-f\fR ./foo.info
+ show file ./foo.info, not searching dir
+ .SH "REPORTING BUGS"
+ Email bug reports to bug\-texinfo@gnu.org,
+ general questions and discussion to help\-texinfo@gnu.org.
+ Texinfo home page: http://www.gnu.org/software/texinfo/
+ .SH COPYRIGHT
+ Copyright \(co 2008 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ .br
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
diff -Nrc2 texinfo-4.12/doc/info.5 texinfo-4.13/doc/info.5
*** texinfo-4.12/doc/info.5	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/info.5	Thu Jan 20 14:38:32 2005
***************
*** 0 ****
--- 1,72 ----
+ .\" info(5)
+ .\" $Id: info.5,v 1.3 2005/01/20 22:38:32 karl Exp $
+ .\"
+ .\" Copyright (C) 1998 Free Software Foundation, Inc.
+ .\"
+ .\" Permission is granted to make and distribute verbatim copies of this
+ .\" manual provided the copyright notice and this permission notice are
+ .\" preserved on all copies.
+ .\"
+ .\" Permission is granted to copy and distribute modified versions of
+ .\" this manual under the conditions for verbatim copying, provided that
+ .\" the entire resulting derived work is distributed under the terms of a
+ .\" permission notice identical to this one.
+ .\"
+ .\" Permission is granted to copy and distribute translations of this
+ .\" manual into another language, under the above conditions for modified
+ .\" versions, except that this permission notice may be stated in a
+ .\" translation approved by the Foundation.
+ .\"
+ .de EX
+ .nf
+ .ft CW
+ .in +5
+ ..
+ .de EE
+ .in -5
+ .ft R
+ .fi
+ ..
+ .TH INFO 5 "GNU Info" "FSF"
+ .SH NAME
+ info \- readable online documentation
+ .SH DESCRIPTION
+ The Info file format is an easily-parsable representation for online
+ documents.  It can be read by
+ .I emacs(1)
+ and
+ .I info(1)
+ among other programs.
+ .PP
+ Info files are usually created from
+ .I texinfo(5)
+ sources by
+ .IR makeinfo(1) ,
+ but can be created from scratch if so desired.
+ .PP
+ For a full description of the Texinfo language and associated tools,
+ please see the Texinfo manual (written in Texinfo itself).  Most likely,
+ running this command from your shell:
+ .EX
+ info texinfo
+ .EE
+ or this key sequence from inside Emacs:
+ .EX
+ M-x info RET m texinfo RET
+ .EE
+ will get you there.
+ .SH AVAILABILITY
+ ftp://ftp.gnu.org/pub/gnu/texinfo-<version>.tar.gz
+ .br
+ or any GNU mirror site.
+ .SH "REPORTING BUGS"
+ Please send bug reports to bug-texinfo@gnu.org,
+ general questions and discussion to help-texinfo@gnu.org.
+ .SH "SEE ALSO"
+ info(1), install-info(1), makeinfo(1), texi2dvi(1),
+ .br
+ texindex(1).
+ .br
+ emacs(1), tex(1).
+ .br
+ texinfo(5).
diff -Nrc2 texinfo-4.12/doc/info.texi texinfo-4.13/doc/info.texi
*** texinfo-4.12/doc/info.texi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/info.texi	Thu May 22 05:11:31 2008
***************
*** 0 ****
--- 1,1511 ----
+ \input texinfo.tex    @c -*-texinfo-*-
+ @c We must \input texinfo.tex instead of texinfo, otherwise make
+ @c distcheck in the Texinfo distribution fails, because the texinfo Info
+ @c file is made first, and texi2dvi must include . first in the path.
+ @comment %**start of header
+ @setfilename info.info
+ @settitle Info
+ @syncodeindex fn cp
+ @syncodeindex vr cp
+ @syncodeindex ky cp
+ @comment %**end of header
+ 
+ @copying
+ This file describes how to use Info, the on-line, menu-driven GNU
+ documentation system.
+ 
+ Copyright @copyright{} 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001,
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ 
+ @quotation
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2 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'' in the Emacs manual.
+ 
+ (a) The FSF's Back-Cover Text is: ``You have freedom to copy and
+ modify this GNU Manual, like GNU software.  Buying copies from GNU
+ Press supports the FSF in developing GNU and promoting software
+ freedom.''
+ 
+ This document is part of a collection distributed under the GNU Free
+ Documentation License.  If you want to distribute this document
+ separately from the collection, you can do so by adding a copy of the
+ license to the document, as described in section 6 of the license.
+ @end quotation
+ @end copying
+ 
+ @dircategory Texinfo documentation system
+ @direntry
+ * Info: (info).         How to use the documentation browsing system.
+ @end direntry
+ 
+ @titlepage
+ @title Info
+ @subtitle The online, hyper-text GNU documentation system
+ @author Brian Fox
+ @author and the GNU Texinfo community
+ @page
+ @vskip 0pt plus 1filll
+ @insertcopying
+ @end titlepage
+ 
+ @contents
+ 
+ @ifnottex
+ @node Top
+ @top Info: An Introduction
+ 
+ The GNU Project distributes most of its on-line manuals in the
+ @dfn{Info format}, which you read using an @dfn{Info reader}.  You are
+ probably using an Info reader to read this now.
+ 
+ There are two primary Info readers: @code{info}, a stand-alone program
+ designed just to read Info files (@pxref{Top,,Stand-alone Info,
+ info-stnd, GNU Info}), and the @code{info} package in GNU Emacs, a
+ general-purpose editor.  At present, only the Emacs reader supports
+ using a mouse.
+ 
+ @ifinfo
+ If you are new to the Info reader and want to learn how to use it,
+ type the command @kbd{h} now.  It brings you to a programmed
+ instruction sequence.
+ 
+ To read about advanced Info commands, type @kbd{n} twice.  This
+ brings you to @cite{Advanced Info Commands}, skipping over the `Getting
+ Started' chapter.
+ @end ifinfo
+ @end ifnottex
+ 
+ @menu
+ * Getting Started::             Getting started using an Info reader.
+ * Advanced::                    Advanced Info commands.
+ * Expert Info::                 Info commands for experts.
+ * Index::                       An index of topics, commands, and variables.
+ @end menu
+ 
+ @node Getting Started, Advanced, Top, Top
+ @comment  node-name,  next,  previous,  up
+ @chapter Getting Started
+ 
+ This first part of this Info manual describes how to get around inside
+ of Info.  The second part of the manual describes various advanced
+ Info commands.  The third part briefly explains how to generate Info
+ files from Texinfo files, and describes how to write an Info file
+ by hand.
+ 
+ @ifnotinfo
+ This manual is primarily designed for browsing with an Info reader
+ program on a computer, so that you can try Info commands while reading
+ about them.  Reading it on paper or with an HTML browser is less
+ effective, since you must take it on faith that the commands described
+ really do what the manual says.  By all means go through this manual
+ now that you have it; but please try going through the on-line version
+ as well.
+ 
+ @cindex Info reader, how to invoke
+ @cindex entering Info
+ There are two ways of looking at the online version of this manual:
+ 
+ @enumerate
+ @item
+ Type @code{info} at your shell's command line.  This approach uses a
+ stand-alone program designed just to read Info files.
+ 
+ @item
+ Type @code{emacs} at the command line; then type @kbd{C-h i}
+ (@kbd{Control-h}, followed by @kbd{i}).  This approach uses the Info
+ mode of the Emacs editor.
+ @end enumerate
+ 
+ In either case, then type @kbd{mInfo} (just the letters), followed by
+ @key{RET}---the ``Return'' or ``Enter'' key.  At this point, you should
+ be ready to follow the instructions in this manual as you read them on
+ the screen.
+ @c FIXME! (pesch@cygnus.com, 14 dec 1992)
+ @c Is it worth worrying about what-if the beginner goes to somebody
+ @c else's Emacs session, which already has an Info running in the middle
+ @c of something---in which case these simple instructions won't work?
+ @end ifnotinfo
+ 
+ @menu
+ * Help-Small-Screen::   Starting Info on a Small Screen.
+ * Help::                How to use Info.
+ * Help-P::              Returning to the Previous node.
+ * Help-^L::             The Space, DEL, B and ^L commands.
+ * Help-Inv::            Invisible text in Emacs Info.
+ * Help-M::              Menus.
+ * Help-Xref::           Following cross-references.
+ * Help-Int::            Some intermediate Info commands.
+ * Help-Q::              Quitting Info.
+ @end menu
+ 
+ @node Help-Small-Screen
+ @section Starting Info on a Small Screen
+ 
+ @ifnotinfo
+ (In Info, you only see this section if your terminal has a small
+ number of lines; most readers pass by it without seeing it.)
+ @end ifnotinfo
+ 
+ @cindex small screen, moving around
+ Since your terminal has a relatively small number of lines on its
+ screen, it is necessary to give you special advice at the beginning.
+ 
+ If the entire text you are looking at fits on the screen, the text
+ @samp{All} will be displayed at the bottom of the screen.  In the
+ stand-alone Info reader, it is displayed at the bottom right corner of
+ the screen; in Emacs, it is displayed on the modeline.  If you see the
+ text @samp{Top} instead, it means that there is more text below that
+ does not fit.  To move forward through the text and see another screen
+ full, press @key{SPC}, the Space bar.  To move back up, press the key
+ labeled @samp{Backspace} or @samp{DEL} (on some keyboards, this key
+ might be labeled @samp{Delete}).
+ 
+ @ifinfo
+ Here are 40 lines of junk, so you can try @key{SPC} and @key{DEL} and
+ see what they do.  At the end are instructions of what you should do
+ next.
+ 
+ @format
+ This is line 20
+ This is line 21
+ This is line 22
+ This is line 23
+ This is line 24
+ This is line 25
+ This is line 26
+ This is line 27
+ This is line 28
+ This is line 29
+ This is line 30
+ This is line 31
+ This is line 32
+ This is line 33
+ This is line 34
+ This is line 35
+ This is line 36
+ This is line 37
+ This is line 38
+ This is line 39
+ This is line 40
+ This is line 41
+ This is line 42
+ This is line 43
+ This is line 44
+ This is line 45
+ This is line 46
+ This is line 47
+ This is line 48
+ This is line 49
+ This is line 50
+ This is line 51
+ This is line 52
+ This is line 53
+ This is line 54
+ This is line 55
+ This is line 56
+ This is line 57
+ This is line 58
+ This is line 59
+ @end format
+ 
+ If you have managed to get here, go back to the beginning with
+ @kbd{DEL} (or @key{BACKSPACE}), and come back here again, then you
+ understand the about the @samp{Space} and @samp{Backspace} keys.  So
+ now type an @kbd{n}---just one character; don't type the quotes and
+ don't type the Return key afterward---to get to the normal start of
+ the course.
+ @end ifinfo
+ 
+ @node Help, Help-P, Help-Small-Screen, Getting Started
+ @comment  node-name,  next,  previous,  up
+ @section How to use Info
+ 
+ You are talking to the program Info, for reading documentation.
+ 
+   There are two ways to use Info: from within Emacs or as a
+ stand-alone reader that you can invoke from a shell using the command
+ @command{info}.
+ 
+ @cindex node, in Info documents
+   Right now you are looking at one @dfn{Node} of Information.
+ A node contains text describing a specific topic at a specific
+ level of detail.  This node's topic is ``how to use Info''.  The mode
+ line says that this is node @samp{Help} in the file @file{info}.
+ 
+ @cindex header of Info node
+   The top line of a node is its @dfn{header}.  This node's header
+ (look at it now) says that the @samp{Next} node after this one is the
+ node called @samp{Help-P}.  An advanced Info command lets you go to
+ any node whose name you know.  In the stand-alone Info reader program,
+ the header line shows the names of this node and the Info file as
+ well.  In Emacs, the header line is displayed with a special typeface,
+ and remains at the top of the window all the time even if you scroll
+ through the node.
+ 
+   Besides a @samp{Next}, a node can have a @samp{Previous} link, or an
+ @samp{Up} link, or both.  As you can see, this node has all of these
+ links.
+ 
+ @kindex n @r{(Info mode)}
+   Now it is time to move on to the @samp{Next} node, named @samp{Help-P}.
+ 
+ @format
+ >> Type @kbd{n} to move there.  Type just one character;
+    do not type the quotes and do not type a @key{RET} afterward.
+ @end format
+ 
+ @noindent
+ @samp{>>} in the margin means it is really time to try a command.
+ 
+ @format
+ >> If you are in Emacs and have a mouse, and if you already practiced
+    typing @kbd{n} to get to the next node, click now with the left 
+    mouse button on the @samp{Next} link to do the same ``the mouse way''.
+ @end format
+ 
+ @node Help-P, Help-^L, Help, Getting Started
+ @comment  node-name,  next,  previous,  up
+ @section Returning to the Previous node
+ 
+ @kindex p @r{(Info mode)}
+ This node is called @samp{Help-P}.  The @samp{Previous} node, as you see,
+ is @samp{Help}, which is the one you just came from using the @kbd{n}
+ command.  Another @kbd{n} command now would take you to the next
+ node, @samp{Help-^L}.
+ 
+ @format
+ >> But do not type @kbd{n} yet.  First, try the @kbd{p} command, or
+    (in Emacs) click on the @samp{Prev} link.  That takes you to
+    the @samp{Previous} node.  Then use @kbd{n} to return here.
+ @end format
+ 
+   If you read this in Emacs, you will see an @samp{Info} item in the
+ menu bar, close to its right edge.  Clicking the mouse on the
+ @samp{Info} menu-bar item opens a menu of commands which include
+ @samp{Next} and @samp{Previous} (and also some others which you didn't yet
+ learn about).
+ 
+   This all probably seems insultingly simple so far, but @emph{please
+ don't} start skimming.  Things will get complicated soon enough!
+ Also, please do not try a new command until you are told it is time
+ to.  You could make Info skip past an important warning that was
+ coming up.
+ 
+ @format
+ >> Now do an @kbd{n}, or (in Emacs) click the middle mouse button on
+    the @samp{Next} link, to get to the node @samp{Help-^L} and learn more.
+ @end format
+ 
+ @node Help-^L, Help-Inv, Help-P, Getting Started
+ @comment  node-name,  next,  previous,  up
+ @section The Space, DEL, B and ^L commands
+ 
+   This node's mode line tells you that you are now at node
+ @samp{Help-^L}, and the header line tells you that @kbd{p} would get
+ you back to @samp{Help-P}.  The node's title is highlighted and may be
+ underlined as well; it says what the node is about.
+ 
+   This is a big node and it does not all fit on your display screen.
+ You can tell that there is more that is not visible because you
+ can see the text @samp{Top} rather than @samp{All} near the bottom of
+ the screen.
+ 
+ @kindex SPC @r{(Info mode)}
+ @kindex DEL @r{(Info mode)}
+ @kindex BACKSPACE @r{(Info mode)}
+ @findex Info-scroll-up
+ @findex Info-scroll-down
+   The @key{SPC}, @key{BACKSPACE} (or @key{DEL})@footnote{The key which
+ we call ``Backspace or DEL'' in this manual is labeled differently on
+ different keyboards.  Look for a key which is a little ways above the
+ @key{ENTER} or @key{RET} key and which you normally use outside Emacs
+ to erase the character before the cursor, i.e.@: the character you
+ typed last.  It might be labeled @samp{Backspace} or @samp{<-} or
+ @samp{DEL}, or sometimes @samp{Delete}.} and @kbd{b} commands exist to
+ allow you to ``move around'' in a node that does not all fit on the
+ screen at once.  @key{SPC} moves forward, to show what was below the
+ bottom of the screen.  @key{DEL} or @key{BACKSPACE} moves backward, to
+ show what was above the top of the screen (there is not anything above
+ the top until you have typed some spaces).
+ 
+ @format
+ >> Now try typing a @key{SPC} (afterward, type a @key{BACKSPACE} to
+    return here).
+ @end format
+ 
+   When you type the @key{SPC}, the two lines that were at the bottom of
+ the screen appear at the top, followed by more lines.  @key{DEL} or
+ @key{BACKSPACE} takes the two lines from the top and moves them to the
+ bottom, @emph{usually}, but if there are not a full screen's worth of
+ lines above them they may not make it all the way to the bottom.
+ 
+   If you are reading this in Emacs, note that the header line is
+ always visible, never scrolling off the display.  That way, you can
+ always see the @samp{Next}, @samp{Prev}, and @samp{Up} links, and you
+ can conveniently go to one of these links at any time by
+ clicking the middle mouse button on the link.
+ 
+ @cindex reading Info documents top to bottom
+ @cindex Info documents as tutorials
+   @key{SPC} and @key{DEL} not only move forward and backward through
+ the current node.  They also move between nodes.  @key{SPC} at the end
+ of a node moves to the next node; @key{DEL} (or @key{BACKSPACE}) at
+ the beginning of a node moves to the previous node.  In effect, these
+ commands scroll through all the nodes in an Info file as a single
+ logical sequence.  You can read an entire manual top to bottom by just
+ typing @key{SPC}, and move backward through the entire manual from
+ bottom to top by typing @key{DEL} (or @key{BACKSPACE}).
+ 
+   In this sequence, a node's subnodes appear following their parent.
+ If a node has a menu, @key{SPC} takes you into the subnodes listed in
+ the menu, one by one.  Once you reach the end of a node, and have seen
+ all of its subnodes, @key{SPC} takes you to the next node or to the
+ parent's next node.
+ 
+ @kindex PAGEUP @r{(Info mode)}
+ @kindex PAGEDOWN @r{(Info mode)}
+   Many keyboards nowadays have two scroll keys labeled @samp{PageUp}
+ and @samp{PageDown} (or maybe @samp{Prior} and @samp{Next}).  If your
+ keyboard has these keys, you can use them to move forward and backward
+ through the text of one node, like @key{SPC} and @key{BACKSPACE} (or
+ @key{DEL}).  However, @key{PAGEUP} and @key{PAGEDOWN} keys never
+ scroll beyond the beginning or the end of the current node.
+ 
+ @kindex C-l @r{(Info mode)}
+   If your screen is ever garbaged, you can tell Info to display it
+ again by typing @kbd{C-l} (@kbd{Control-L}---that is, hold down
+ @key{CTRL} and type @kbd{L} or @kbd{l}).
+ 
+ @format
+ >> Type @kbd{C-l} now.
+ @end format
+ 
+ @kindex b @r{(Info mode)}
+   To move back to the beginning of the node you are on, you can type
+ the @key{BACKSPACE} key (or @key{DEL}) many times.  You can also type
+ @kbd{b} just once.  @kbd{b} stands for ``beginning.''
+ 
+ @format
+ >> Try that now.  (We have put in enough verbiage to push this past
+    the first screenful, but screens are so big nowadays that perhaps it
+    isn't enough.  You may need to shrink your Emacs or Info window.)
+    Then come back, by typing @key{SPC} one or more times.
+ @end format
+ 
+ @kindex ? @r{(Info mode)}
+ @findex Info-summary
+   You have just learned a considerable number of commands.  If you
+ want to use one but have trouble remembering which, you should type
+ @kbd{?}, which displays a brief list of commands.  When you are
+ finished looking at the list, make it go away by typing @key{SPC}
+ repeatedly.
+ 
+ @format
+ >> Type a @key{?} now.  Press @key{SPC} to see consecutive screenfuls of
+    the list until finished.  Then type @key{SPC} several times.  If
+    you are using Emacs, the help will then go away automatically.
+ @end format
+ 
+   (If you are using the stand-alone Info reader, type @kbd{C-x 0} to
+ return here, that is---press and hold @key{CTRL}, type an @kbd{x},
+ then release @key{CTRL} and @kbd{x}, and press @kbd{0}; that's a zero,
+ not the letter ``o''.)
+ 
+   From now on, you will encounter large nodes without warning, and
+ will be expected to know how to use @key{SPC} and @key{BACKSPACE} to
+ move around in them without being told.  Since not all terminals have
+ the same size screen, it would be impossible to warn you anyway.
+ 
+ @format
+ >> Now type @kbd{n}, or click the middle mouse button on the @samp{Next} link,
+    to visit the next node.
+ @end format
+ 
+ @node Help-Inv, Help-M, Help-^L, Getting Started
+ @comment  node-name,  next,  previous,  up
+ @section Invisible text in Emacs Info
+ 
+   Before discussing menus, we need to make some remarks that are only
+ relevant to users reading Info using Emacs.  Users of the stand-alone
+ version can skip this node by typing @kbd{]} now.
+ 
+ @cindex invisible text in Emacs
+   In Emacs, certain text that appears in the stand-alone version is
+ normally hidden, technically because it has the @samp{invisibility}
+ property.  Invisible text is really a part of the text.  It becomes
+ visible (by default) after killing and yanking, it appears in printed
+ output, it gets saved to file just like any other text, and so on.
+ Thus it is useful to know it is there.
+ 
+ @findex visible-mode
+ You can make invisible text visible by using the command @kbd{M-x
+ visible-mode}.  Visible mode is a minor mode, so using the command a
+ second time will make the text invisible again.  Watch the effects of
+ the command on the ``menu'' below and the top line of this node.
+ 
+ If you prefer to @emph{always} see the invisible text, you can set
+ @code{Info-hide-note-references} to @code{nil}.  Enabling Visible mode
+ permanently is not a real alternative, because Emacs Info also uses
+ (although less extensively) another text property that can change the
+ text being displayed, the @samp{display} property.  Only the
+ invisibility property is affected by Visible mode.  When, in this
+ tutorial, we refer to the @samp{Emacs} behavior, we mean the
+ @emph{default} Emacs behavior.
+ 
+ Now type @kbd{]}, to learn about the @kbd{]} and @kbd{[} commands.
+ 
+ @menu
+ * ]:         Help-].               Node telling about ].
+ * stuff:     Help-].               Same node.
+ * Help-]::                         Yet again, same node.
+ @end menu
+ 
+ @node Help-], , , Help-Inv
+ @subsection The @kbd{]} and @kbd{[} commands
+ 
+ If you type @kbd{n} now, you get an error message saying that this
+ node has no next node.  Similarly, if you type @kbd{p}, the error
+ message tells you that there is no previous node.  (The exact message
+ depends on the Info reader you use.)  This is because @kbd{n} and
+ @kbd{p} carry you to the next and previous node @emph{at the same
+ level}.  The present node is contained in a menu (see next) of the
+ node you came from, and hence is considered to be at a lower level.
+ It is the only node in the previous node's menu (even though it was
+ listed three times). Hence it has no next or previous node that
+ @kbd{n} or @kbd{p} could move to.
+ 
+ If you systematically move through a manual by typing @kbd{n}, you run
+ the risk of skipping many nodes.  You do not run this risk if you
+ systematically use @kbd{@key{SPC}}, because, when you scroll to the
+ bottom of a node and type another @kbd{@key{SPC}}, then this carries
+ you to the following node in the manual @emph{regardless of level}.
+ If you immediately want to go to that node, without having to scroll
+ to the bottom of the screen first, you can type @kbd{]}.
+ 
+ Similarly, @kbd{@key{BACKSPACE}} carries you to the preceding node
+ regardless of level, after you scrolled to the beginning of the
+ present node.  If you want to go to the preceding node immediately,
+ you can type @kbd{[}.
+ 
+ For instance, typing this sequence will come back here in three steps:
+ @kbd{[ n [}.  To do the same backward, type @kbd{] p ]}.
+ 
+ Now type @kbd{]} to go to the next node and learn about menus.
+ 
+ @node Help-M, Help-Xref, Help-Inv, Getting Started
+ @comment  node-name,  next,  previous,  up
+ @section Menus and the @kbd{m} command
+ 
+ @cindex menus in an Info document
+ @cindex Info menus
+   With only the @kbd{n} (next), @kbd{p} (previous), @kbd{@key{SPC}},
+ @kbd{@key{BACKSPACE}}, @kbd{]} and @kbd{[} commands for moving between
+ nodes, nodes are restricted to a linear sequence.  Menus allow a
+ branching structure.  A menu is a list of other nodes you can move to.
+ It is actually just part of the text of the node formatted specially
+ so that Info can interpret it.  The beginning of a menu is always
+ identified by a line which starts with @w{@samp{* Menu:}}.  A node
+ contains a menu if and only if it has a line in it which starts that
+ way.  The only menu you can use at any moment is the one in the node
+ you are in.  To use a menu in any other node, you must move to that
+ node first.
+ 
+   After the start of the menu, each line that starts with a @samp{*}
+ identifies one subtopic.  The line usually contains a brief name for
+ the subtopic (followed by a @samp{:}, normally hidden in Emacs), the
+ name of the node that talks about that subtopic (again, normally
+ hidden in Emacs), and optionally some further description of the
+ subtopic.  Lines in the menu that do not start with a @samp{*} have no
+ special meaning---they are only for the human reader's benefit and do
+ not define additional subtopics.  Here is an example:
+ 
+ @example
+ * Foo:  Node about FOO.      This tells about FOO.
+ @end example
+ 
+ The subtopic name is Foo, and the node describing it is @samp{Node
+ about FOO}.  The rest of the line is just for the reader's
+ Information.  [[ But this line is not a real menu item, simply because
+ there is no line above it which starts with @w{@samp{* Menu:}}.  Also,
+ in a real menu item, the @samp{*} would appear at the very start of
+ the line.  This is why the ``normally hidden'' text in Emacs, namely
+ @samp{: Node about FOO.}, is actually visible in this example, even
+ when Visible mode is off.]]
+ 
+   When you use a menu to go to another node (in a way that will be
+ described soon), what you specify is the subtopic name, the first
+ thing in the menu line.  Info uses it to find the menu line, extracts
+ the node name from it, and goes to that node.  The reason that there
+ is both a subtopic name and a node name is that the node name must be
+ meaningful to the computer and may therefore have to be ugly looking.
+ The subtopic name can be chosen just to be convenient for the user to
+ specify.  Often the node name is convenient for the user to specify
+ and so both it and the subtopic name are the same.  There is an
+ abbreviation for this:
+ 
+ @example
+ * Foo::   This tells about FOO.
+ @end example
+ 
+ @noindent
+ This means that the subtopic name and node name are the same; they are
+ both @samp{Foo}.  (The @samp{::} is normally hidden in Emacs.)
+ 
+ @format
+ >> Now use @key{SPC} to find the menu in this node, then come back to
+    the front with a @kbd{b} and some @key{SPC}s.  As you see, a menu is
+    actually visible in its node.  If you cannot find a menu in a node
+    by looking at it, then the node does not have a menu and the
+    @kbd{m} command is not available.
+ @end format
+ 
+ If you keep typing @key{SPC} once the menu appears on the screen, it
+ will move to another node (the first one in the menu).  If that
+ happens, type @key{BACKSPACE} to come back.
+ 
+ @kindex m @r{(Info mode)}
+   The command to go to one of the subnodes is @kbd{m}.  This is very
+ different from the commands you have used: it is a command that
+ prompts you for more input.
+ 
+   The Info commands you know do not need additional input; when you
+ type one of them, Info processes it instantly and then is ready for
+ another command.  The @kbd{m} command is different: it needs to know
+ the @dfn{name of the subtopic}.  Once you have typed @kbd{m}, Info
+ tries to read the subtopic name.
+ 
+   Now, in the stand-alone Info, look for the line containing many
+ dashes near the bottom of the screen.  (This is the stand-alone
+ equivalent for the mode line in Emacs.)  There is one more line
+ beneath that one, but usually it is blank.  (In Emacs, this is the
+ echo area.)  When it is blank, Info is ready for a command, such as
+ @kbd{n} or @kbd{b} or @key{SPC} or @kbd{m}.  If that line contains
+ text ending in a colon, it means Info is reading more input for the
+ last command.  You can't type an Info command then, because Info is
+ trying to read input, not commands.  You must either give the input
+ and finish the command you started, or type @kbd{Control-g} to cancel
+ the command.  When you have done one of those things, the input entry
+ line becomes blank again.  Then you can type Info commands again.
+ 
+ @findex Info-menu
+   The command to go to a subnode via a menu is @kbd{m}.  After you type
+ the @kbd{m}, the line at the bottom of the screen says @samp{Menu item: }.
+ You must then type the name of the subtopic you want, and end it with
+ a @key{RET}.
+ 
+ @cindex abbreviating Info subnodes
+   You can abbreviate the subtopic name.  If the abbreviation is not
+ unique, the first matching subtopic is chosen.  Some menus put
+ the shortest possible abbreviation for each subtopic name in capital
+ letters, so you can see how much you need to type.  It does not
+ matter whether you use upper case or lower case when you type the
+ subtopic.  You should not put any spaces at the end, or inside of the
+ item name, except for one space where a space appears in the item in
+ the menu.
+ 
+ @cindex completion of Info node names
+   You can also use the @dfn{completion} feature to help enter the
+ subtopic name.  If you type the @key{TAB} key after entering part of a
+ name, it will fill in more of the name---as much as Info can deduce
+ from the part you have entered.
+ 
+   If you move the cursor to one of the menu subtopic lines, then you do
+ not need to type the argument: you just type a @key{RET}, and it
+ stands for the subtopic of the line you are on.  You can also click
+ the middle mouse button directly on the subtopic line to go there.
+ 
+ Here is a menu to give you a chance to practice.  This menu gives you
+ three ways of going to one place, Help-FOO:
+ 
+ @menu
+ * Foo:  Help-FOO.       A node you can visit for fun.
+ * Bar:  Help-FOO.       We have made two ways to get to the same place.
+ * Help-FOO::            And yet another!
+ @end menu
+ 
+ (Turn Visible mode on if you are using Emacs.)
+ 
+ @format
+ >>  Now type just an @kbd{m} and see what happens:
+ @end format
+ 
+   Now you are ``inside'' an @kbd{m} command.  Commands cannot be used
+ now; the next thing you will type must be the name of a subtopic.
+ 
+   You can change your mind about doing the @kbd{m} by typing
+ @kbd{Control-g}.
+ 
+ @format
+ >> Try that now;  notice the bottom line clear.
+ @end format
+ 
+ @format
+ >> Then type another @kbd{m}.
+ @end format
+ 
+ @format
+ >> Now type @kbd{BAR}, the item name.  Do not type @key{RET} yet.
+ @end format
+ 
+   While you are typing the item name, you can use the @key{DEL} (or
+ @key{BACKSPACE}) key to cancel one character at a time if you make a
+ mistake.
+ 
+ @format
+ >> Press @key{DEL} to cancel the @samp{R}.  You could type another @kbd{R}
+    to replace it.  But you do not have to, since @samp{BA} is a valid
+    abbreviation.
+ @end format
+ 
+ @format
+ >> Now you are ready to go.  Type a @key{RET}.
+ @end format
+ 
+   After visiting @samp{Help-FOO}, you should return here.
+ 
+   Another way to move to the menu subtopic lines and between them is
+ to type @key{TAB}.  Each time you type a @key{TAB}, you move to the
+ next subtopic line.  To move to a previous subtopic line in the
+ stand-alone reader, type @kbd{M-@key{TAB}}---that is, press and hold
+ the @key{META} key and then press @key{TAB}.  (On some keyboards, the
+ @key{META} key might be labeled @samp{Alt}.)  In Emacs Info, type
+ @kbd{S-@key{TAB}} to move to a previous subtopic line (press and hold
+ the @key{Shift} key and then press @key{TAB}).
+ 
+   Once you move cursor to a subtopic line, press @key{RET} to go to
+ that subtopic's node.
+ 
+ @cindex mouse support in Info mode
+ @kindex Mouse-2 @r{(Info mode)}
+   If your terminal supports a mouse, you have yet another way of going
+ to a subtopic.  Move your mouse pointer to the subtopic line,
+ somewhere between the beginning @samp{*} and the colon @samp{:} which
+ ends the subtopic's brief name.  You will see the subtopic's name
+ change its appearance (usually, its background color will change), and
+ the shape of the mouse pointer will change if your platform supports
+ that.  After a while, if you leave the mouse on that spot, a small
+ window will pop up, saying ``Mouse-2: go to that node,'' or the same
+ message may appear at the bottom of the screen.
+ 
+   @kbd{Mouse-2} is the second button of your mouse counting from the
+ left---the middle button on a 3-button mouse.  (On a 2-button mouse,
+ you may have to press both buttons together to ``press the middle
+ button''.)  The message tells you pressing @kbd{Mouse-2} with the
+ current position of the mouse pointer (on subtopic in the menu) will
+ go to that subtopic.
+ 
+ @findex Info-mouse-follow-nearest-node
+   More generally, @kbd{Mouse-2} in an Info buffer finds the nearest
+ link to another node and goes there.  For example, near a cross
+ reference it acts like @kbd{f}, in a menu it acts like @kbd{m}, on the
+ node's header line it acts like @kbd{n}, @kbd{p}, or @kbd{u}, etc.  At
+ end of the node's text @kbd{Mouse-2} moves to the next node, or up if
+ there's no next node.
+ 
+ @format
+ >> Type @kbd{n} to see more commands.
+ @end format
+ 
+ @node Help-FOO,  ,  , Help-M
+ @subsection The @kbd{u} command
+ 
+   Congratulations!  This is the node @samp{Help-FOO}.  It has an @samp{Up}
+ pointer @samp{Help-M}, the node you just came from via the @kbd{m}
+ command.  This is the usual convention---the nodes you reach from a menu
+ have @samp{Up} nodes that lead back to the menu.  Menus move Down in the
+ tree, and @samp{Up} moves Up.  @samp{Previous}, on the other hand, is
+ usually used to ``stay on the same level but go backwards''.
+ 
+ @kindex u @r{(Info mode)}
+ @findex Info-up
+   You can go back to the node @samp{Help-M} by typing the command
+ @kbd{u} for ``Up''.  This puts you at the menu subtopic line pointing
+ to the subnode that the @kbd{u} command brought you from.  (Some Info
+ readers may put you at the @emph{front} of the node instead---to get
+ back to where you were reading, you have to type some @key{SPC}s.)
+ 
+   Another way to go Up is to click @kbd{Mouse-2} on the @samp{Up}
+ pointer shown in the header line (provided that you have a mouse).
+ 
+ @format
+ >> Now type @kbd{u} to move back up to @samp{Help-M}.
+ @end format
+ 
+ @node Help-Xref, Help-Int, Help-M, Getting Started
+ @comment  node-name,  next,  previous,  up
+ @section Following Cross-References
+ 
+ @cindex cross references in Info documents
+   In Info documentation, you will see many @dfn{cross references}.
+ Cross references look like this: @xref{Help-Cross, Cross}.  That text
+ is a real, live cross reference, whose name is @samp{Cross} and which
+ points to the node named @samp{Help-Cross}.  (The node name is hidden
+ in Emacs.  Do @kbd{M-x visible-mode} to show or hide it.)
+ 
+ @kindex f @r{(Info mode)}
+ @findex Info-follow-reference
+   You can follow a cross reference by moving the cursor to it and
+ press @key{RET}, just as in a menu.  In Emacs, you can also click
+ @kbd{Mouse-1} on a cross reference to follow it; you can see that the
+ cross reference is mouse-sensitive by moving the mouse pointer to the
+ reference and watching how the underlying text and the mouse pointer
+ change in response.
+ 
+   Another way to follow a cross reference is to type @kbd{f} and then
+ specify the name of the cross reference (in this case, @samp{Cross})
+ as an argument.  For this command, it does not matter where the cursor
+ was.  If the cursor is on or near a cross reference, @kbd{f} suggests
+ that reference name in parentheses as the default; typing @key{RET}
+ will follow that reference.  However, if you type a different
+ reference name, @kbd{f} will follow the other reference which has that
+ name.
+ 
+ @format
+ >> Type @kbd{f}, followed by @kbd{Cross}, and then @key{RET}.
+ @end format
+ 
+   As you enter the reference name, you can use the @key{DEL} (or
+ @key{BACKSPACE}) key to edit your input.  If you change your mind
+ about following any reference, you can use @kbd{Control-g} to cancel
+ the command.  Completion is available in the @kbd{f} command; you can
+ complete among all the cross reference names in the current node by
+ typing a @key{TAB}.
+ 
+   To get a list of all the cross references in the current node, you
+ can type @kbd{?} after an @kbd{f}.  The @kbd{f} continues to await a
+ cross reference name even after displaying the list, so if you don't
+ actually want to follow a reference, you should type a @kbd{Control-g}
+ to cancel the @kbd{f}.
+ 
+ @format
+ >> Type @kbd{f?} to get a list of the cross references in this node.  Then
+    type a @kbd{Control-g} and see how the @samp{f} gives up.
+ @end format
+ 
+   The @key{TAB}, @kbd{M-@key{TAB}} and @kbd{S-@key{TAB}} keys,
+ which move between menu items in a menu, also move between cross
+ references outside of menus.
+ 
+   Sometimes a cross reference (or a node) can lead to another file (in
+ other words another ``manual''), or, on occasion, even a file on a
+ remote machine (although Info files distributed with Emacs or the
+ stand-alone Info avoid using remote links).  Such a cross reference
+ looks like this: @xref{Top,, Overview of Texinfo, texinfo, Texinfo:
+ The GNU Documentation Format}.  (After following this link, type
+ @kbd{l} to get back to this node.)  Here the name @samp{texinfo}
+ between parentheses refers to the file name.  This file name appears
+ in cross references and node names if it differs from the current
+ file, so you can always know that you are going to be switching to
+ another manual and which one.
+ 
+ However, Emacs normally hides some other text in cross-references.
+ If you put your mouse over the cross reference, then the information
+ appearing in a separate box (tool tip) or in the echo area will show
+ the full cross-reference including the file name and the node name of
+ the cross reference.  If you have a mouse, just leave it over the
+ cross reference @xref{Top,, Overview of Texinfo, texinfo, Texinfo:
+ The GNU Documentation Format}, and watch what happens.  If you
+ always like to have that information visible without having to move
+ your mouse over the cross reference, use @kbd{M-x visible-mode}, or
+ set @code{Info-hide-note-references} to a value other than @code{t}
+ (@pxref{Emacs Info Variables}).
+ 
+ @format
+ >> Now type @kbd{n} to learn more commands.
+ @end format
+ 
+ @node Help-Int, Help-Q, Help-Xref, Getting Started
+ @comment  node-name,  next,  previous,  up
+ @section Some intermediate Info commands
+ 
+   The introductory course is almost over; please continue
+ a little longer to learn some intermediate-level commands.
+ 
+   Most Info files have an index, which is actually a large node
+ containing little but a menu.  The menu has one menu item for each
+ topic listed in the index.  (As a special feature, menus for indices
+ may also include the line number within the node of the index entry.
+ This allows Info readers to go to the exact line of an entry, not just
+ the start of the containing node.)
+ 
+   You can get to the index from the main menu of the file with the
+ @kbd{m} command and the name of the index node; then you can use the
+ @kbd{m} command again in the index node to go to the node that
+ describes the topic you want.
+ 
+   There is also a short-cut Info command, @kbd{i}, which does all of
+ that for you.  It searches the index for a given topic (a string) and
+ goes to the node which is listed in the index for that topic.
+ @xref{Search Index}, for a full explanation.
+ 
+ @kindex l @r{(Info mode)}
+ @findex Info-history-back
+ @cindex going back in Info history
+   If you have been moving around to different nodes and wish to
+ retrace your steps, the @kbd{l} command (@kbd{l} for @dfn{last}) will
+ do that, one node-step at a time.  As you move from node to node, Info
+ records the nodes where you have been in a special history list.  The
+ @kbd{l} command revisits nodes in the history list; each successive
+ @kbd{l} command moves one step back through the history.
+ 
+ @format
+ >> Try typing @kbd{p p n} and then three @kbd{l}'s, pausing in between
+ to see what each @kbd{l} does.  You should wind up right back here.
+ @end format
+ 
+   Note the difference between @kbd{l} and @kbd{p}: @kbd{l} moves to
+ where @emph{you} last were, whereas @kbd{p} always moves to the node
+ which the header says is the @samp{Previous} node (from this node, the
+ @samp{Prev} link leads to @samp{Help-Xref}).
+ 
+ @kindex r @r{(Info mode)}
+ @findex Info-history-forward
+ @cindex going forward in Info history
+   You can use the @kbd{r} command (@code{Info-history-forward} in Emacs)
+ to revisit nodes in the history list in the forward direction, so that
+ @kbd{r} will return you to the node you came from by typing @kbd{l}.
+ 
+ @kindex L @r{(Info mode)}
+ @findex Info-history
+ @cindex history list of visited nodes
+   The @kbd{L} command (@code{Info-history} in Emacs) creates a virtual
+ node that contains a list of all nodes you visited.  You can select
+ a previously visited node from this menu to revisit it.
+ 
+ @kindex d @r{(Info mode)}
+ @findex Info-directory
+ @cindex go to Directory node
+   The @kbd{d} command (@code{Info-directory} in Emacs) gets you
+ instantly to the Directory node.  This node, which is the first one
+ you saw when you entered Info, has a menu which leads (directly or
+ indirectly, through other menus), to all the nodes that exist.  The
+ Directory node lists all the manuals and other Info documents that
+ are, or could be, installed on your system.
+ 
+ @format
+ >> Try doing a @kbd{d}, then do an @kbd{l} to return here (yes,
+    @emph{do} return).
+ @end format
+ 
+ @kindex t @r{(Info mode)}
+ @findex Info-top-node
+ @cindex go to Top node
+   The @kbd{t} command moves to the @samp{Top} node of the manual.
+ This is useful if you want to browse the manual's main menu, or select
+ some specific top-level menu item.  The Emacs command run by @kbd{t}
+ is @code{Info-top-node}.
+ 
+ @format
+ >> Now type @kbd{n} to see the last node of the course.
+ @end format
+ 
+   @xref{Advanced}, for more advanced Info features.
+ 
+ @c If a menu appears at the end of this node, remove it.
+ @c It is an accident of the menu updating command.
+ 
+ @node Help-Q,  , Help-Int, Getting Started
+ @comment  node-name,  next,  previous,  up
+ @section Quitting Info
+ 
+ @kindex q @r{(Info mode)}
+ @findex Info-exit
+ @cindex quitting Info mode
+   To get out of Info, back to what you were doing before, type @kbd{q}
+ for @dfn{Quit}.  This runs @code{Info-exit} in Emacs.
+ 
+   This is the end of the basic course on using Info.  You have learned
+ how to move in an Info document, and how to follow menus and cross
+ references.  This makes you ready for reading manuals top to bottom,
+ as new users should do when they learn a new package.
+ 
+   Another set of Info commands is useful when you need to find
+ something quickly in a manual---that is, when you need to use a manual
+ as a reference rather than as a tutorial.  We urge you to learn
+ these search commands as well.  If you want to do that now, follow this
+ cross reference to @ref{Advanced}.
+ 
+ Yet another set of commands are meant for experienced users; you can
+ find them by looking in the Directory node for documentation on Info.
+ Finding them will be a good exercise in using Info in the usual
+ manner.
+ 
+ @format
+ >> Type @kbd{d} to go to the Info directory node; then type
+    @kbd{mInfo} and Return, to get to the node about Info and
+    see what other help is available.
+ @end format
+ 
+ 
+ @node Advanced
+ @chapter Advanced Info Commands
+ 
+   This chapter describes various advanced Info commands.  (If you
+ are using a stand-alone Info reader, there are additional commands
+ specific to it, which are documented in several chapters of @ref{Top,,
+ GNU Info, info-stnd, GNU Info}.)
+ 
+ @kindex C-q @r{(Info mode)}
+   One advanced command useful with most of the others described here
+ is @kbd{C-q}, which ``quotes'' the next character so that it is
+ entered literally (@pxref{Inserting Text,,,emacs,The GNU Emacs
+ Manual}).  For example, pressing @kbd{?} ordinarily brings up a list
+ of completion possibilities.  If you want to (for example) search for
+ an actual @samp{?} character, the simplest way is to insert it using
+ @kbd{C-q ?}.  This works the same in Emacs and stand-alone Info.
+ 
+ @menu
+ * Search Text::          How to search Info documents.
+ * Search Index::         How to search the indices for specific subjects.
+ * Go to node::           How to go to a node by name.
+ * Choose menu subtopic:: How to choose a menu subtopic by its number.
+ * Create Info buffer::   How to create a new Info buffer in Emacs.
+ * Emacs Info Variables:: Variables modifying the behavior of Emacs Info.
+ @end menu
+ 
+ 
+ @node Search Text, Search Index,  , Advanced
+ @comment  node-name,  next,  previous,  up
+ @section @kbd{s} searches Info documents
+ 
+ @cindex searching Info documents
+ @cindex Info document as a reference
+   The commands which move between and inside nodes allow you to read
+ the entire manual or its large portions.  But what if you need to find
+ some information in the manual as fast as you can, and you don't know
+ or don't remember in what node to look for it?  This need arises when
+ you use a manual as a @dfn{reference}, or when it is impractical to
+ read the entire manual before you start using the programs it
+ describes.
+ 
+   Info has powerful searching facilities that let you find things
+ quickly.  You can search either the manual text or its indices.
+ 
+ @kindex s @r{(Info mode)}
+ @findex Info-search
+   The @kbd{s} command allows you to search a whole Info file for a string.
+ It switches to the next node if and when that is necessary.  You
+ type @kbd{s} followed by the string to search for, terminated by
+ @key{RET}.  To search for the same string again, just @kbd{s} followed
+ by @key{RET} will do.  The file's nodes are scanned in the order
+ they are in the file, which has no necessary relationship to the
+ order that they may be in the tree structure of menus and @samp{next}
+ pointers.  But normally the two orders are not very different.  In any
+ case, you can always look at the mode line to find out what node you have
+ reached, if the header is not visible (this can happen, because @kbd{s}
+ puts your cursor at the occurrence of the string, not at the beginning
+ of the node).
+ 
+ @kindex M-s @r{(Info mode)}
+   In Emacs, @kbd{Meta-s} is equivalent to @kbd{s}.  That is for
+ compatibility with other GNU packages that use @kbd{M-s} for a similar
+ kind of search command.  Both @kbd{s} and @kbd{M-s} run in Emacs the
+ command @code{Info-search}.
+ 
+ @kindex C-s @r{(Info mode)}
+ @kindex C-r @r{(Info mode)}
+ @findex isearch
+   Instead of using @kbd{s} in Emacs Info and in the stand-alone Info,
+ you can use an incremental search started with @kbd{C-s} or @kbd{C-r}.
+ It can search through multiple Info nodes.  @xref{Incremental Search,,,
+ emacs, The GNU Emacs Manual}.  In Emacs, you can disable this behavior
+ by setting the variable @code{Info-isearch-search} to @code{nil}
+ (@pxref{Emacs Info Variables}).
+ 
+ @node Search Index, Go to node, Search Text, Advanced
+ @comment  node-name,  next,  previous,  up
+ @section @kbd{i} searches the indices for specific subjects
+ 
+ @cindex searching Info indices
+ @kindex i @r{(Info mode)}
+ @findex Info-index
+   Since most topics in the manual should be indexed, you should try
+ the index search first before the text search.  The @kbd{i} command
+ prompts you for a subject and then looks up that subject in the
+ indices.  If it finds an index entry with the subject you typed, it
+ goes to the node to which that index entry points.  You should browse
+ through that node to see whether the issue you are looking for is
+ described there.  If it isn't, type @kbd{,} one or more times to go
+ through additional index entries which match your subject.
+ 
+   The @kbd{i} command and subsequent @kbd{,} commands find all index
+ entries which include the string you typed @emph{as a substring}.
+ For each match, Info shows in the echo area the full index entry it
+ found.  Often, the text of the full index entry already gives you
+ enough information to decide whether it is relevant to what you are
+ looking for, so we recommend that you read what Info shows in the echo
+ area before looking at the node it displays.
+ 
+   Since @kbd{i} looks for a substring, you can search for subjects even
+ if you are not sure how they are spelled in the index.  For example,
+ suppose you want to find something that is pertinent to commands which
+ complete partial input (e.g., when you type @key{TAB}).  If you want
+ to catch index entries that refer to ``complete,'' ``completion,'' and
+ ``completing,'' you could type @kbd{icomplet@key{RET}}.
+ 
+   Info documents which describe programs should index the commands,
+ options, and key sequences that the program provides.  If you are
+ looking for a description of a command, an option, or a key, just type
+ their names when @kbd{i} prompts you for a topic.  For example, if you
+ want to read the description of what the @kbd{C-l} key does, type
+ @kbd{iC-l@key{RET}} literally.
+ 
+ @findex info-apropos
+ @findex index-apropos
+ If you aren't sure which manual documents the topic you are looking
+ for, try the @kbd{M-x info-apropos} command in Emacs, or the @kbd{M-x
+ index-apropos} command in the stand-alone reader.  It prompts for
+ a string and then looks up that string in all the indices of all the
+ Info documents installed on your system.
+ 
+ @node Go to node, Choose menu subtopic, Search Index, Advanced
+ @comment  node-name,  next,  previous,  up
+ @section @kbd{g} goes to a node by name
+ 
+ @kindex g @r{(Info mode)}
+ @findex Info-goto-node
+ @cindex go to a node by name
+   If you know a node's name, you can go there by typing @kbd{g}, the
+ name, and @key{RET}.  Thus, @kbd{gTop@key{RET}} would go to the node
+ called @samp{Top} in this file.  (This is equivalent to @kbd{t}, see
+ @ref{Help-Int}.)  @kbd{gGo to node@key{RET}} would come back here.
+ 
+   Unlike @kbd{m}, @kbd{g} does not allow the use of abbreviations.
+ But it does allow completion, so you can type @key{TAB} to complete a
+ partial node name.
+ 
+ @cindex go to another Info file
+   To go to a node in another file, you can include the file name in the
+ node name by putting it at the front, in parentheses.  Thus,
+ @kbd{g(dir)Top@key{RET}} would go to the Info Directory node, which is
+ the node @samp{Top} in the Info file @file{dir}.  Likewise,
+ @kbd{g(emacs)Top@key{RET}} goes to the top node of the Emacs manual.
+ 
+   The node name @samp{*} specifies the whole file.  So you can look at
+ all of the current file by typing @kbd{g*@key{RET}} or all of any
+ other file with @kbd{g(@var{filename})*@key{RET}}.
+ 
+ @node Choose menu subtopic, Create Info buffer, Go to node, Advanced
+ @comment  node-name,  next,  previous,  up
+ @section @kbd{1}--@kbd{9} choose a menu subtopic by its number
+ 
+ @kindex 1 @r{through} 9 @r{(Info mode)}
+ @findex Info-nth-menu-item
+ @cindex select @var{n}'th menu item
+   If you begrudge each character of type-in which your system requires,
+ you might like to use the commands @kbd{1}, @kbd{2}, @kbd{3}, @kbd{4},
+ @dots{}, @kbd{9}.  They are short for the @kbd{m} command together
+ with a name of a menu subtopic.  @kbd{1} goes through the first item
+ in the current node's menu; @kbd{2} goes through the second item, etc.
+ In the stand-alone reader, @kbd{0} goes through the last menu item;
+ this is so you need not count how many entries are there.
+ 
+   If your display supports multiple fonts, colors or underlining, and
+ you are using Emacs' Info mode to read Info files, the third, sixth
+ and ninth menu items have a @samp{*} that stands out, either in color
+ or in some other attribute, such as underline; this makes it easy to
+ see at a glance which number to use for an item.
+ 
+   Some terminals don't support either multiple fonts, colors or
+ underlining.  If you need to actually count items, it is better to use
+ @kbd{m} instead, and specify the name, or use @key{TAB} to quickly
+ move between menu items.
+ 
+ @node Create Info buffer, Emacs Info Variables, Choose menu subtopic, Advanced
+ @comment  node-name,  next,  previous,  up
+ @section @kbd{M-n} creates a new independent Info buffer in Emacs
+ 
+ @kindex M-n @r{(Info mode)}
+ @findex clone-buffer
+ @cindex multiple Info buffers
+   If you are reading Info in Emacs, you can select a new independent
+ Info buffer in a new Emacs window by typing @kbd{M-n}.  The new buffer
+ starts out as an exact copy of the old one, but you will be able to
+ move independently between nodes in the two buffers.  (In Info mode,
+ @kbd{M-n} runs the Emacs command @code{clone-buffer}.)
+ 
+   In Emacs Info, you can also produce new Info buffers by giving a
+ numeric prefix argument to the @kbd{m} and @kbd{g} commands.  @kbd{C-u
+ m} and @kbd{C-u g} go to a new node in exactly the same way that
+ @kbd{m} and @kbd{g} do, but they do so in a new Info buffer which they
+ select in another window.
+ 
+   Another way to produce new Info buffers in Emacs is to use a numeric
+ prefix argument for the @kbd{C-h i} command (@code{info}) which
+ switches to the Info buffer with that number.  Thus, @kbd{C-u 2 C-h i}
+ switches to the buffer @samp{*info*<2>}, creating it if necessary.
+ 
+ @node Emacs Info Variables, , Create Info buffer, Advanced
+ @comment  node-name,  next,  previous,  up
+ @section Emacs Info-mode Variables
+ 
+ The following variables may modify the behavior of Info-mode in Emacs;
+ you may wish to set one or several of these variables interactively,
+ or in your init file.  @xref{Examining, Examining and Setting
+ Variables, Examining and Setting Variables, emacs, The GNU Emacs
+ Manual}.  The stand-alone Info reader program has its own set of
+ variables, described in @ref{Variables,, Manipulating Variables,
+ info-stnd, GNU Info}.
+ 
+ @vtable @code
+ @item Info-directory-list
+ The list of directories to search for Info files.  Each element is a
+ string (directory name) or @code{nil} (try default directory).  If not
+ initialized Info uses the environment variable @env{INFOPATH} to
+ initialize it, or @code{Info-default-directory-list} if there is no
+ @env{INFOPATH} variable in the environment.
+ 
+ If you wish to customize the Info directory search list for both Emacs
+ Info and stand-alone Info, it is best to set the @env{INFOPATH}
+ environment variable, since that applies to both programs.
+ 
+ @item Info-additional-directory-list
+ A list of additional directories to search for Info documentation files.
+ These directories are not searched for merging the @file{dir} file.
+ 
+ @item Info-mode-hook
+ Hooks run when @code{Info-mode} is called.  By default, it contains
+ the hook @code{turn-on-font-lock} which enables highlighting of Info
+ files.  You can change how the highlighting looks by customizing the
+ faces @code{info-node}, @code{info-xref}, @code{info-xref-visited},
+ @code{info-header-xref}, @code{info-header-node}, @code{info-menu-header},
+ @code{info-menu-star}, and @code{info-title-@var{n}} (where @var{n}
+ is the level of the section, a number between 1 and 4).  To customize
+ a face, type @kbd{M-x customize-face @key{RET} @var{face} @key{RET}},
+ where @var{face} is one of the face names listed here.
+ 
+ @item Info-fontify-maximum-menu-size
+ Maximum size of menu to fontify if @code{font-lock-mode} is non-@code{nil}.
+ 
+ @item Info-fontify-visited-nodes
+ If non-@code{nil}, menu items and cross-references pointing to visited
+ nodes are displayed in the @code{info-xref-visited} face.
+ 
+ @item Info-use-header-line
+ If non-@code{nil}, Emacs puts in the Info buffer a header line showing
+ the @samp{Next}, @samp{Prev}, and @samp{Up} links.  A header line does
+ not scroll with the rest of the buffer, making these links always
+ visible.
+ 
+ @item Info-hide-note-references
+ As explained in earlier nodes, the Emacs version of Info normally
+ hides some text in menus and cross-references.  You can completely
+ disable this feature, by setting this option to @code{nil}.  Setting
+ it to a value that is neither @code{nil} nor @code{t} produces an
+ intermediate behavior, hiding a limited amount of text, but showing
+ all text that could potentially be useful.
+ 
+ @item Info-scroll-prefer-subnodes
+ If set to a non-@code{nil} value, @key{SPC} and @key{BACKSPACE} (or
+ @key{DEL}) keys in a menu visit subnodes of the current node before
+ scrolling to its end or beginning, respectively.  For example, if the
+ node's menu appears on the screen, the next @key{SPC} moves to a
+ subnode indicated by the following menu item.  Setting this option to
+ @code{nil} results in behavior similar to the stand-alone Info reader
+ program, which visits the first subnode from the menu only when you
+ hit the end of the current node.  The default is @code{nil}.
+ 
+ @item Info-isearch-search
+ If non-@code{nil}, isearch in Info searches through multiple nodes.
+ 
+ @item Info-enable-active-nodes
+ When set to a non-@code{nil} value, allows Info to execute Lisp code
+ associated with nodes.  The Lisp code is executed when the node is
+ selected.  The Lisp code to be executed should follow the node
+ delimiter (the @samp{DEL} character) and an @samp{execute: } tag, like
+ this:
+ 
+ @example
+ ^_execute: (message "This is an active node!")
+ @end example
+ @end vtable
+ 
+ 
+ @node Expert Info
+ @chapter Info for Experts
+ 
+   This chapter explains how to write an Info file by hand.  However,
+ in most cases, writing a Texinfo file is better, since you can use it
+ to make a printed manual or produce other formats, such as HTML and
+ DocBook, as well as for generating Info files.
+ 
+ The @code{makeinfo} command converts a Texinfo file into an Info file;
+ @code{texinfo-format-region} and @code{texinfo-format-buffer} are GNU
+ Emacs functions that do the same.
+ 
+ @xref{Top,, Overview of Texinfo, texinfo, Texinfo: The GNU
+ Documentation Format}, for how to write a Texinfo file.
+ 
+ @xref{Creating an Info File,,, texinfo, Texinfo: The GNU Documentation
+ Format}, for how to create an Info file from a Texinfo file.
+ 
+ @xref{Installing an Info File,,, texinfo, Texinfo: The GNU
+ Documentation Format}, for how to install an Info file after you
+ have created one.
+ 
+ However, if you want to edit an Info file manually and install it manually,
+ here is how.
+ 
+ @menu
+ * Add::                   Describes how to add new nodes to the hierarchy.
+                             Also tells what nodes look like.
+ * Menus::                 How to add to or create menus in Info nodes.
+ * Cross-refs::            How to add cross-references to Info nodes.
+ * Tags::                  How to make tags tables for Info files.
+ * Checking::              Checking an Info File.
+ @end menu
+ 
+ @node Add, Menus,  , Expert Info
+ @comment  node-name,  next,  previous,  up
+ @section Adding a new node to Info
+ 
+ To add a new topic to the list in the Info directory, you must:
+ 
+ @enumerate
+ @item
+ Create some nodes, in some file, to document that topic.
+ @item
+ Put that topic in the menu in the directory.  @xref{Menus, Menu}.
+ @end enumerate
+ 
+ @cindex node delimiters
+   The new node can live in an existing documentation file, or in a new
+ one.  It must have a @samp{^_} character before it (invisible to the
+ user; this node has one but you cannot see it), and it ends with either
+ a @samp{^_}, a @samp{^L} (``formfeed''), or the end of file.@footnote{If
+ you put in a @samp{^L} to end a new node, be sure that there is a
+ @samp{^_} after it to start the next one, since @samp{^L} cannot
+ @emph{start} a node.  Also, a nicer way to make a node boundary be a
+ page boundary as well is to put a @samp{^L} @emph{right after} the
+ @samp{^_}.}
+ 
+   The @samp{^_} starting a node must be followed by a newline or a
+ @samp{^L} newline, after which comes the node's header line.  The
+ header line must give the node's name (by which Info finds it), and
+ state the names of the @samp{Next}, @samp{Previous}, and @samp{Up}
+ nodes (if there are any).  As you can see, this node's @samp{Up} node
+ is the node @samp{Expert Info}.  The @samp{Next} node is @samp{Menus}.
+ 
+ @cindex node header line format
+ @cindex format of node headers
+   The keywords @dfn{Node}, @dfn{Next}, @dfn{Previous}, and @dfn{Up}
+ may appear in any order, anywhere in the header line, but the
+ recommended order is the one in this sentence.  Each keyword must be
+ followed by a colon, spaces and tabs, and then the appropriate name.
+ The name may be terminated with a tab, a comma, or a newline.  A space
+ does not end it; node names may contain spaces.  The case of letters
+ in the names is insignificant.
+ 
+ @cindex node name format
+ @cindex Directory node
+   A node name has two forms.  A node in the current file is named by
+ what appears after the @samp{Node: } in that node's first line.  For
+ example, this node's name is @samp{Add}.  A node in another file is
+ named by @samp{(@var{filename})@var{node-within-file}}, as in
+ @samp{(info)Add} for this node.  If the file name starts with @samp{./},
+ then it is relative to the current directory; otherwise, it is
+ relative starting from the standard directory for Info files of your
+ site.  The name @samp{(@var{filename})Top} can be abbreviated to just
+ @samp{(@var{filename})}.  By convention, the name @samp{Top} is used
+ for the ``highest'' node in any single file---the node whose @samp{Up}
+ points out of the file.  The @samp{Directory} node is @file{(dir)}, it
+ points to a file @file{dir} which holds a large menu listing all the
+ Info documents installed on your site.  The @samp{Top} node of a
+ document file listed in the @samp{Directory} should have an @samp{Up:
+ (dir)} in it.
+ 
+ @cindex unstructured documents
+   The node name @kbd{*} is special: it refers to the entire file.
+ Thus, @kbd{g*} shows you the whole current file.  The use of the
+ node @kbd{*} is to make it possible to make old-fashioned,
+ unstructured files into nodes of the tree.
+ 
+   The @samp{Node:} name, in which a node states its own name, must not
+ contain a file name, since when Info searches for a node, it does not
+ expect a file name to be there.  The @samp{Next}, @samp{Previous} and
+ @samp{Up} names may contain them.  In this node, since the @samp{Up}
+ node is in the same file, it was not necessary to use one.
+ 
+   Note that the nodes in this file have a file name in the header
+ line.  The file names are ignored by Info, but they serve as comments
+ to help identify the node for the user.
+ 
+ @node Menus, Cross-refs, Add, Expert Info
+ @comment  node-name,  next,  previous,  up
+ @section How to Create Menus
+ 
+   Any node in the Info hierarchy may have a @dfn{menu}---a list of subnodes.
+ The @kbd{m} command searches the current node's menu for the topic which it
+ reads from the terminal.
+ 
+ @cindex menu and menu entry format
+   A menu begins with a line starting with @w{@samp{* Menu:}}.  The
+ rest of the line is a comment.  After the starting line, every line
+ that begins with a @samp{* } lists a single topic.  The name of the
+ topic---what the user must type at the @kbd{m}'s command prompt to
+ select this topic---comes right after the star and space, and is
+ followed by a colon, spaces and tabs, and the name of the node which
+ discusses that topic.  The node name, like node names following
+ @samp{Next}, @samp{Previous} and @samp{Up}, may be terminated with a
+ tab, comma, or newline; it may also be terminated with a period.
+ 
+   If the node name and topic name are the same, then rather than
+ giving the name twice, the abbreviation @samp{* @var{name}::} may be
+ used (and should be used, whenever possible, as it reduces the visual
+ clutter in the menu).
+ 
+   It is considerate to choose the topic names so that they differ
+ from each other very near the beginning---this allows the user to type
+ short abbreviations.  In a long menu, it is a good idea to capitalize
+ the beginning of each item name which is the minimum acceptable
+ abbreviation for it (a long menu is more than 5 or so entries).
+ 
+   The nodes listed in a node's menu are called its ``subnodes,'' and it
+ is their ``superior''.  They should each have an @samp{Up:} pointing at
+ the superior.  It is often useful to arrange all or most of the subnodes
+ in a sequence of @samp{Next} and @samp{Previous} pointers so that
+ someone who wants to see them all need not keep revisiting the Menu.
+ 
+   The Info Directory is simply the menu of the node @samp{(dir)Top}---that
+ is, node @samp{Top} in file @file{.../info/dir}.  You can put new entries
+ in that menu just like any other menu.  The Info Directory is @emph{not} the
+ same as the file directory called @file{info}.  It happens that many of
+ Info's files live in that file directory, but they do not have to; and
+ files in that directory are not automatically listed in the Info
+ Directory node.
+ 
+   Also, although the Info node graph is claimed to be a ``hierarchy,''
+ in fact it can be @emph{any} directed graph.  Shared structures and
+ pointer cycles are perfectly possible, and can be used if they are
+ appropriate to the meaning to be expressed.  There is no need for all
+ the nodes in a file to form a connected structure.  In fact, this file
+ has two connected components.  You are in one of them, which is under
+ the node @samp{Top}; the other contains the node @samp{Help} which the
+ @kbd{h} command goes to.  In fact, since there is no garbage
+ collector on the node graph, nothing terrible happens if a substructure
+ is not pointed to, but such a substructure is rather useless since nobody
+ can ever find out that it exists.
+ 
+ @node Cross-refs, Tags, Menus, Expert Info
+ @comment  node-name,  next,  previous,  up
+ @section Creating Cross References
+ 
+ @cindex cross reference format
+   A cross reference can be placed anywhere in the text, unlike a menu
+ item which must go at the front of a line.  A cross reference looks
+ like a menu item except that it has @samp{*note} instead of @samp{*}.
+ It @emph{cannot} be terminated by a @samp{)}, because @samp{)}'s are
+ so often part of node names.  If you wish to enclose a cross reference
+ in parentheses, terminate it with a period first.  Here are two
+ examples of cross references pointers:
+ 
+ @example
+ *Note details: commands.  (See *note 3: Full Proof.)
+ @end example
+ 
+ @noindent
+ @emph{These are just examples.}  The places they ``lead to'' do not
+ really exist!
+ 
+ @menu
+ * Help-Cross::                  Target of a cross-reference.
+ @end menu
+ 
+ 
+ @node Help-Cross,  ,  , Cross-refs
+ @subsection The node reached by the cross reference in Info
+ 
+   This is the node reached by the cross reference named @samp{Cross}.
+ 
+   While this node is specifically intended to be reached by a cross
+ reference, most cross references lead to nodes that ``belong''
+ someplace else far away in the structure of an Info document.  So you
+ cannot expect this node to have a @samp{Next}, @samp{Previous} or
+ @samp{Up} links pointing back to where you came from.  In general, the
+ @kbd{l} (el) command is the only way to get back there.
+ 
+ @format
+ >> Type @kbd{l} to return to the node where the cross reference was.
+ @end format
+ 
+ @node Tags, Checking, Cross-refs, Expert Info
+ @comment  node-name,  next,  previous,  up
+ @section Tags Tables for Info Files
+ 
+ @cindex tags tables in Info files
+   You can speed up the access to nodes of a large Info file by giving
+ it a tags table.  Unlike the tags table for a program, the tags table for
+ an Info file lives inside the file itself and is used
+ automatically whenever Info reads in the file.
+ 
+ @findex Info-tagify
+   To make a tags table, go to a node in the file using Emacs Info mode and type
+ @kbd{M-x Info-tagify}.  Then you must use @kbd{C-x C-s} to save the
+ file.  Info files produced by the @code{makeinfo} command that is part
+ of the Texinfo package always have tags tables to begin with.
+ 
+ @cindex stale tags tables
+ @cindex update Info tags table
+   Once the Info file has a tags table, you must make certain it is up
+ to date.  If you edit an Info file directly (as opposed to editing its
+ Texinfo source), and, as a result of deletion of text, any node moves back
+ more than a thousand characters in the file from the position
+ recorded in the tags table, Info will no longer be able to find that
+ node.  To update the tags table, use the @code{Info-tagify} command
+ again.
+ 
+   An Info file tags table appears at the end of the file and looks like
+ this:
+ 
+ @example
+ ^_^L
+ Tag Table:
+ File: info, Node: Cross-refs^?21419
+ File: info,  Node: Tags^?22145
+ ^_
+ End Tag Table
+ @end example
+ 
+ @noindent
+ Note that it contains one line per node, and this line contains
+ the beginning of the node's header (ending just after the node name),
+ a @samp{DEL} character, and the character position in the file of the
+ beginning of the node.
+ 
+ @node Checking, , Tags, Expert Info
+ @section Checking an Info File
+ 
+ When creating an Info file, it is easy to forget the name of a node when
+ you are making a pointer to it from another node.  If you put in the
+ wrong name for a node, this is not detected until someone tries to go
+ through the pointer using Info.  Verification of the Info file is an
+ automatic process which checks all pointers to nodes and reports any
+ pointers which are invalid.  Every @samp{Next}, @samp{Previous}, and
+ @samp{Up} is checked, as is every menu item and every cross reference.  In
+ addition, any @samp{Next} which does not have a @samp{Previous} pointing
+ back is reported.  Only pointers within the file are checked, because
+ checking pointers to other files would be terribly slow.  But those are
+ usually few.
+ 
+ @findex Info-validate
+ To check an Info file, do @kbd{M-x Info-validate} while looking at any
+ node of the file with Emacs Info mode.
+ 
+ @node Index
+ @unnumbered Index
+ 
+ This is an alphabetical listing of all the commands, variables, and
+ topics discussed in this document.
+ 
+ @printindex cp
+ 
+ @bye
+ 
+ @ignore
+    arch-tag: 965c1638-01d6-4156-9227-b10418b9d8e8
+ @end ignore
diff -Nrc2 texinfo-4.12/doc/infokey.1 texinfo-4.13/doc/infokey.1
*** texinfo-4.12/doc/infokey.1	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/infokey.1	Thu Sep 18 11:46:49 2008
***************
*** 0 ****
--- 1,42 ----
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+ .TH INFOKEY "1" "September 2008" "infokey 4.13" "User Commands"
+ .SH NAME
+ infokey \- compile customizations for Info
+ .SH SYNOPSIS
+ .B infokey
+ [\fIOPTION\fR]... [\fIINPUT-FILE\fR]
+ .SH DESCRIPTION
+ Compile infokey source file to infokey file.  Reads INPUT\-FILE (default
+ $HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.
+ .SH OPTIONS
+ .TP
+ \fB\-\-output\fR FILE
+ output to FILE instead of $HOME/.info
+ .TP
+ \fB\-\-help\fR
+ display this help and exit.
+ .TP
+ \fB\-\-version\fR
+ display version information and exit.
+ .SH "REPORTING BUGS"
+ Email bug reports to bug\-texinfo@gnu.org,
+ general questions and discussion to help\-texinfo@gnu.org.
+ Texinfo home page: http://www.gnu.org/software/texinfo/
+ .SH COPYRIGHT
+ Copyright \(co 2008 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ .br
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ .SH "SEE ALSO"
+ The full documentation for
+ .B infokey
+ is maintained as a Texinfo manual.  If the
+ .B info
+ and
+ .B infokey
+ programs are properly installed at your site, the command
+ .IP
+ .B info infokey
+ .PP
+ should give you access to the complete manual.
diff -Nrc2 texinfo-4.12/doc/install-info.1 texinfo-4.13/doc/install-info.1
*** texinfo-4.12/doc/install-info.1	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/install-info.1	Thu Sep 18 11:46:49 2008
***************
*** 0 ****
--- 1,129 ----
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+ .TH INSTALL-INFO "1" "September 2008" "install-info 4.13" "User Commands"
+ .SH NAME
+ install-info \- update info/dir entries
+ .SH SYNOPSIS
+ .B install-info
+ [\fIOPTION\fR]... [\fIINFO-FILE \fR[\fIDIR-FILE\fR]]
+ .SH DESCRIPTION
+ Add or remove entries in INFO\-FILE from the Info directory DIR\-FILE.
+ .SH OPTIONS
+ .TP
+ \fB\-\-debug\fR
+ report what is being done.
+ .TP
+ \fB\-\-delete\fR
+ delete existing entries for INFO\-FILE from DIR\-FILE;
+ don't insert any new entries.
+ .TP
+ \fB\-\-description\fR=\fITEXT\fR
+ the description of the entry is TEXT; used with
+ the \fB\-\-name\fR option to become synonymous with the
+ \fB\-\-entry\fR option.
+ .TP
+ \fB\-\-dir\-file\fR=\fINAME\fR
+ specify file name of Info directory file;
+ equivalent to using the DIR\-FILE argument.
+ .TP
+ \fB\-\-dry\-run\fR
+ same as \fB\-\-test\fR.
+ .TP
+ \fB\-\-entry\fR=\fITEXT\fR
+ insert TEXT as an Info directory entry.
+ TEXT is written as an Info menu item line followed
+ .IP
+ by zero or more extra lines starting with whitespace.
+ .IP
+ If you specify more than one entry, all are added.
+ If you don't specify any entries, they are determined
+ .IP
+ from information in the Info file itself.
+ .IP
+ When removing, TEXT specifies the entry to remove.
+ TEXT is only removed as a last resort, if the
+ entry as determined from the Info file is not present,
+ and the basename of the Info file isn't found either.
+ .TP
+ \fB\-\-help\fR
+ display this help and exit.
+ .TP
+ \fB\-\-info\-dir\fR=\fIDIR\fR
+ same as \fB\-\-dir\-file\fR=\fIDIR\fR/dir.
+ .TP
+ \fB\-\-info\-file\fR=\fIFILE\fR
+ specify Info file to install in the directory;
+ equivalent to using the INFO\-FILE argument.
+ .TP
+ \fB\-\-item\fR=\fITEXT\fR
+ same as \fB\-\-entry\fR=\fITEXT\fR.
+ .TP
+ \fB\-\-keep\-old\fR
+ do not replace entries, or remove empty sections.
+ .TP
+ \fB\-\-menuentry\fR=\fITEXT\fR
+ same as \fB\-\-name\fR=\fITEXT\fR.
+ .TP
+ \fB\-\-name\fR=\fITEXT\fR
+ the name of the entry is TEXT; used with \fB\-\-description\fR
+ to become synonymous with the \fB\-\-entry\fR option.
+ .TP
+ \fB\-\-no\-indent\fR
+ do not format new entries in the DIR file.
+ .TP
+ \fB\-\-quiet\fR
+ suppress warnings.
+ .TP
+ \fB\-\-regex\fR=\fIR\fR
+ put this file's entries in all sections that match the
+ regular expression R (ignoring case).
+ .TP
+ \fB\-\-remove\fR
+ same as \fB\-\-delete\fR.
+ .TP
+ \fB\-\-remove\-exactly\fR
+ only remove if the info file name matches exactly;
+ suffixes such as .info and .gz are not ignored.
+ .TP
+ \fB\-\-section\fR=\fISEC\fR
+ put entries in section SEC of the directory.
+ If you specify more than one section, all the entries
+ .IP
+ are added in each of the sections.
+ .IP
+ If you don't specify any sections, they are determined
+ .IP
+ from information in the Info file itself.
+ .TP
+ \fB\-\-section\fR R SEC
+ equivalent to \fB\-\-regex\fR=\fIR\fR \fB\-\-section\fR=\fISEC\fR \fB\-\-add\-once\fR.
+ .TP
+ \fB\-\-silent\fR
+ suppress warnings.
+ .TP
+ \fB\-\-test\fR
+ suppress updating of DIR\-FILE.
+ .TP
+ \fB\-\-version\fR
+ display version information and exit.
+ .SH "REPORTING BUGS"
+ Email bug reports to bug\-texinfo@gnu.org,
+ general questions and discussion to help\-texinfo@gnu.org.
+ Texinfo home page: http://www.gnu.org/software/texinfo/
+ .SH COPYRIGHT
+ Copyright \(co 2008 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ .br
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ .SH "SEE ALSO"
+ The full documentation for
+ .B install-info
+ is maintained as a Texinfo manual.  If the
+ .B info
+ and
+ .B install-info
+ programs are properly installed at your site, the command
+ .IP
+ .B info install-info
+ .PP
+ should give you access to the complete manual.
diff -Nrc2 texinfo-4.12/doc/makeinfo.1 texinfo-4.13/doc/makeinfo.1
*** texinfo-4.12/doc/makeinfo.1	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/makeinfo.1	Thu Sep 18 11:46:49 2008
***************
*** 0 ****
--- 1,222 ----
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+ .TH MAKEINFO "1" "September 2008" "makeinfo 4.13" "User Commands"
+ .SH NAME
+ makeinfo \- translate Texinfo documents
+ .SH SYNOPSIS
+ .B makeinfo
+ [\fIOPTION\fR]... \fITEXINFO-FILE\fR...
+ .SH DESCRIPTION
+ Translate Texinfo source documentation to various other formats, by default
+ Info files suitable for reading online with Emacs or standalone GNU Info.
+ .SS "General options:"
+ .TP
+ \fB\-\-error\-limit\fR=\fINUM\fR
+ quit after NUM errors (default 100).
+ .TP
+ \fB\-\-document\-language\fR=\fISTR\fR locale to use in translating Texinfo keywords
+ for the output document (default C).
+ .TP
+ \fB\-\-force\fR
+ preserve output even if errors.
+ .TP
+ \fB\-\-help\fR
+ display this help and exit.
+ .TP
+ \fB\-\-no\-validate\fR
+ suppress node cross\-reference validation.
+ .TP
+ \fB\-\-no\-warn\fR
+ suppress warnings (but not errors).
+ .TP
+ \fB\-v\fR, \fB\-\-verbose\fR
+ explain what is being done.
+ .TP
+ \fB\-\-version\fR
+ display version information and exit.
+ .SS "Output format selection (default is to produce Info):"
+ .TP
+ \fB\-\-docbook\fR
+ output Docbook XML rather than Info.
+ .TP
+ \fB\-\-html\fR
+ output HTML rather than Info.
+ .TP
+ \fB\-\-xml\fR
+ output Texinfo XML rather than Info.
+ .TP
+ \fB\-\-plaintext\fR
+ output plain text rather than Info.
+ .SS "General output options:"
+ .TP
+ \fB\-E\fR, \fB\-\-macro\-expand\fR=\fIFILE\fR
+ output macro\-expanded source to FILE,
+ ignoring any @setfilename.
+ .TP
+ \fB\-\-no\-headers\fR
+ suppress node separators, Node: lines, and menus
+ from Info output (thus producing plain text)
+ or from HTML (thus producing shorter output);
+ also, write to standard output by default.
+ .TP
+ \fB\-\-no\-split\fR
+ suppress the splitting of Info or HTML output,
+ generate only one output file.
+ .TP
+ \fB\-\-number\-sections\fR
+ output chapter and sectioning numbers.
+ .TP
+ \fB\-o\fR, \fB\-\-output\fR=\fIFILE\fR
+ output to FILE (or directory if split HTML).
+ .SS "Options for Info and plain text:"
+ .TP
+ \fB\-\-disable\-encoding\fR
+ do not output accented and special characters
+ in Info output based on @documentencoding.
+ .TP
+ \fB\-\-enable\-encoding\fR
+ override \fB\-\-disable\-encoding\fR (default).
+ .TP
+ \fB\-\-fill\-column\fR=\fINUM\fR
+ break Info lines at NUM characters (default 72).
+ .TP
+ \fB\-\-footnote\-style\fR=\fISTYLE\fR
+ output footnotes in Info according to STYLE:
+ `separate' to put them in their own node;
+ `end' to put them at the end of the node, in
+ which they are defined (this is the default).
+ .TP
+ \fB\-\-paragraph\-indent\fR=\fIVAL\fR
+ indent Info paragraphs by VAL spaces (default 3).
+ If VAL is `none', do not indent; if VAL is
+ `asis', preserve existing indentation.
+ .TP
+ \fB\-\-split\-size\fR=\fINUM\fR
+ split Info files at size NUM (default 300000).
+ .SS "Options for HTML:"
+ .TP
+ \fB\-\-css\-include\fR=\fIFILE\fR
+ include FILE in HTML <style> output;
+ read stdin if FILE is \-.
+ .TP
+ \fB\-\-css\-ref\fR=\fIURL\fR
+ generate reference to a CSS file.
+ .TP
+ \fB\-\-internal\-links\fR=\fIFILE\fR
+ produce list of internal links in FILE.
+ .TP
+ \fB\-\-transliterate\-file\-names\fR
+ produce file names in ASCII transliteration.
+ .SS "Options for XML and Docbook:"
+ .TP
+ \fB\-\-output\-indent\fR=\fIVAL\fR
+ indent XML elements by VAL spaces (default 2).
+ If VAL is 0, ignorable whitespace is dropped.
+ .SS "Input file options:"
+ .TP
+ \fB\-\-commands\-in\-node\-names\fR
+ allow @ commands in node names.
+ .TP
+ \fB\-D\fR VAR
+ define the variable VAR, as with @set.
+ .TP
+ \fB\-I\fR DIR
+ append DIR to the @include search path.
+ .TP
+ \fB\-P\fR DIR
+ prepend DIR to the @include search path.
+ .TP
+ \fB\-U\fR VAR
+ undefine the variable VAR, as with @clear.
+ .SS "Conditional processing in input:"
+ .TP
+ \fB\-\-ifdocbook\fR
+ process @ifdocbook and @docbook even if
+ not generating Docbook.
+ .TP
+ \fB\-\-ifhtml\fR
+ process @ifhtml and @html even if not generating HTML.
+ .TP
+ \fB\-\-ifinfo\fR
+ process @ifinfo even if not generating Info.
+ .TP
+ \fB\-\-ifplaintext\fR
+ process @ifplaintext even if not generating plain text.
+ .TP
+ \fB\-\-iftex\fR
+ process @iftex and @tex; implies \fB\-\-no\-split\fR.
+ .TP
+ \fB\-\-ifxml\fR
+ process @ifxml and @xml.
+ .TP
+ \fB\-\-no\-ifdocbook\fR
+ do not process @ifdocbook and @docbook text.
+ .TP
+ \fB\-\-no\-ifhtml\fR
+ do not process @ifhtml and @html text.
+ .TP
+ \fB\-\-no\-ifinfo\fR
+ do not process @ifinfo text.
+ .TP
+ \fB\-\-no\-ifplaintext\fR
+ do not process @ifplaintext text.
+ .TP
+ \fB\-\-no\-iftex\fR
+ do not process @iftex and @tex text.
+ .TP
+ \fB\-\-no\-ifxml\fR
+ do not process @ifxml and @xml text.
+ .P
+ Also, for the \fB\-\-no\-ifFORMAT\fR options, do process @ifnotFORMAT text.
+ .P
+ The defaults for the @if... conditionals depend on the output format:
+ if generating HTML, \fB\-\-ifhtml\fR is on and the others are off;
+ if generating Info, \fB\-\-ifinfo\fR is on and the others are off;
+ if generating plain text, \fB\-\-ifplaintext\fR is on and the others are off;
+ if generating XML, \fB\-\-ifxml\fR is on and the others are off.
+ .SH EXAMPLES
+ .TP
+ makeinfo foo.texi
+ write Info to foo's @setfilename
+ .TP
+ makeinfo \fB\-\-html\fR foo.texi
+ write HTML to @setfilename
+ .TP
+ makeinfo \fB\-\-xml\fR foo.texi
+ write Texinfo XML to @setfilename
+ .TP
+ makeinfo \fB\-\-docbook\fR foo.texi
+ write DocBook XML to @setfilename
+ .TP
+ makeinfo \fB\-\-no\-headers\fR foo.texi
+ write plain text to standard output
+ .TP
+ makeinfo \fB\-\-html\fR \fB\-\-no\-headers\fR foo.texi
+ write html without node lines, menus
+ .TP
+ makeinfo \fB\-\-number\-sections\fR foo.texi
+ write Info with numbered sections
+ .TP
+ makeinfo \fB\-\-no\-split\fR foo.texi
+ write one Info file however big
+ .SH "REPORTING BUGS"
+ Email bug reports to bug\-texinfo@gnu.org,
+ general questions and discussion to help\-texinfo@gnu.org.
+ Texinfo home page: http://www.gnu.org/software/texinfo/
+ .SH COPYRIGHT
+ Copyright \(co 2008 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ .br
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ .SH "SEE ALSO"
+ The full documentation for
+ .B makeinfo
+ is maintained as a Texinfo manual.  If the
+ .B info
+ and
+ .B makeinfo
+ programs are properly installed at your site, the command
+ .IP
+ .B info makeinfo
+ .PP
+ should give you access to the complete manual.
diff -Nrc2 texinfo-4.12/doc/pdftexi2dvi.1 texinfo-4.13/doc/pdftexi2dvi.1
*** texinfo-4.12/doc/pdftexi2dvi.1	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/pdftexi2dvi.1	Thu Sep 18 11:46:50 2008
***************
*** 0 ****
--- 1,187 ----
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+ .TH TEXI2DVI "1" "September 2008" "texi2dvi 1.135" "User Commands"
+ .SH NAME
+ texi2dvi \- convert Texinfo documents to PDF
+ .SH SYNOPSIS
+ .B texi2dvi
+ [\fIOPTION\fR]... \fIFILE\fR...
+ .SH DESCRIPTION
+ Run each Texinfo or (La)TeX FILE through TeX in turn until all
+ cross\-references are resolved, building all indices.  The directory
+ containing each FILE is searched for included files.  The suffix of FILE
+ is used to determine its language ((La)TeX or Texinfo).  To process
+ (e)plain TeX files, set the environment variable LATEX=tex.
+ .PP
+ In order to make texi2dvi a drop\-in replacement of TeX/LaTeX in AUC\-TeX,
+ the FILE may also be composed of the following simple TeX commands.
+ .TP
+ `\einput{FILE}'
+ the actual file to compile
+ .TP
+ `\enonstopmode'
+ same as \fB\-\-batch\fR
+ .PP
+ Makeinfo is used to perform Texinfo macro expansion before running TeX
+ when needed.
+ .SS "General options:"
+ .TP
+ \fB\-b\fR, \fB\-\-batch\fR
+ no interaction
+ .TP
+ \fB\-D\fR, \fB\-\-debug\fR
+ turn on shell debugging (set \fB\-x\fR)
+ .TP
+ \fB\-h\fR, \fB\-\-help\fR
+ display this help and exit successfully
+ .TP
+ \fB\-o\fR, \fB\-\-output\fR=\fIOFILE\fR
+ leave output in OFILE (implies \fB\-\-clean\fR);
+ only one input FILE may be specified in this case
+ .TP
+ \fB\-q\fR, \fB\-\-quiet\fR
+ no output unless errors (implies \fB\-\-batch\fR)
+ .TP
+ \fB\-s\fR, \fB\-\-silent\fR
+ same as \fB\-\-quiet\fR
+ .TP
+ \fB\-v\fR, \fB\-\-version\fR
+ display version information and exit successfully
+ .TP
+ \fB\-V\fR, \fB\-\-verbose\fR
+ report on what is done
+ .SS "TeX tuning:"
+ .TP
+ \-@
+ use @input instead of \einput for preloaded Texinfo
+ .TP
+ \fB\-\-dvi\fR
+ output a DVI file [default]
+ .TP
+ \fB\-\-dvipdf\fR
+ output a PDF file via DVI (using dvipdf)
+ .TP
+ \fB\-e\fR, \fB\-E\fR, \fB\-\-expand\fR
+ force macro expansion using makeinfo
+ .TP
+ \fB\-I\fR DIR
+ search DIR for Texinfo files
+ .TP
+ \fB\-l\fR, \fB\-\-language\fR=\fILANG\fR
+ specify LANG for FILE, either latex or texinfo
+ .TP
+ \fB\-\-no\-line\-error\fR
+ do not pass \fB\-\-file\-line\-error\fR to TeX
+ .TP
+ \fB\-p\fR, \fB\-\-pdf\fR
+ use pdftex or pdflatex for processing
+ .TP
+ \fB\-r\fR, \fB\-\-recode\fR
+ call recode before TeX to translate input
+ .TP
+ \fB\-\-recode\-from\fR=\fIENC\fR
+ recode from ENC to the @documentencoding
+ .TP
+ \fB\-\-src\-specials\fR
+ pass \fB\-\-src\-specials\fR to TeX
+ .TP
+ \fB\-t\fR, \fB\-\-command\fR=\fICMD\fR
+ insert CMD in copy of input file
+ .TP
+ or \fB\-\-texinfo\fR=\fICMD\fR
+ multiple values accumulate
+ .TP
+ \fB\-\-translate\-file\fR=\fIFILE\fR
+ use given charset translation file for TeX
+ .SS "Build modes:"
+ .TP
+ \fB\-\-build\fR=\fIMODE\fR
+ specify the treatment of auxiliary files [local]
+ .TP
+ \fB\-\-tidy\fR
+ same as \fB\-\-build\fR=\fItidy\fR
+ .TP
+ \fB\-c\fR, \fB\-\-clean\fR
+ same as \fB\-\-build\fR=\fIclean\fR
+ .TP
+ \fB\-\-build\-dir\fR=\fIDIR\fR
+ specify where the tidy compilation is performed;
+ implies \fB\-\-tidy\fR;
+ defaults to TEXI2DVI_BUILD_DIRECTORY [.]
+ .TP
+ \fB\-\-mostly\-clean\fR
+ remove the auxiliary files and directories
+ but not the output
+ .PP
+ The MODE specifies where the TeX compilation takes place, and, as a
+ consequence, how auxiliary files are treated.  The build mode
+ can also be set using the environment variable TEXI2DVI_BUILD_MODE.
+ .SS "Valid MODEs are:"
+ .TP
+ `local'
+ compile in the current directory, leaving all the auxiliary
+ files around.  This is the traditional TeX use.
+ .TP
+ `tidy'
+ compile in a local *.t2d directory, where the auxiliary files
+ are left.  Output files are copied back to the original file.
+ .TP
+ `clean'
+ same as `tidy', but remove the auxiliary directory afterwards.
+ Every compilation therefore requires the full cycle.
+ .SS "Using the `tidy' mode brings several advantages:"
+ .TP
+ \-
+ the current directory is not cluttered with plethora of temporary files.
+ .TP
+ \-
+ clutter can be even reduced using \fB\-\-build\-dir\fR=\fIdir\fR: all the *.t2d
+ directories are stored there.
+ .TP
+ \-
+ clutter can be reduced to zero using, e.g., \fB\-\-build\-dir=\fR/tmp/$USER.t2d
+ or \fB\-\-build\-dir=\fR$HOME/.t2d.
+ .TP
+ \-
+ the output file is updated after every succesful TeX run, for
+ sake of concurrent visualization of the output.  In a `local' build
+ the viewer stops during the whole TeX run.
+ .TP
+ \-
+ if the compilation fails, the previous state of the output file
+ is preserved.
+ .TP
+ \-
+ PDF and DVI compilation are kept in separate subdirectories
+ preventing any possibility of auxiliary file incompatibility.
+ .PP
+ On the other hand, because `tidy' compilation takes place in another
+ directory, occasionally TeX won't be able to find some files (e.g., when
+ using \egraphicspath): in that case use \fB\-I\fR to specify the additional
+ directories to consider.
+ .PP
+ The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO,
+ TEX (or PDFTEX), TEXINDEX, and THUMBPDF environment variables are used
+ to run those commands, if they are set.  Any CMD strings are added
+ after @setfilename for Texinfo input, in the first line for LaTeX input.
+ .SH "REPORTING BUGS"
+ Email bug reports to <bug\-texinfo@gnu.org>,
+ general questions and discussion to <help\-texinfo@gnu.org>.
+ Texinfo home page: http://www.gnu.org/software/texinfo/
+ .SH COPYRIGHT
+ Copyright \(co 2008 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ .br
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ .SH "SEE ALSO"
+ The full documentation for
+ .B texi2dvi
+ is maintained as a Texinfo manual.  If the
+ .B info
+ and
+ .B texi2dvi
+ programs are properly installed at your site, the command
+ .IP
+ .B info texi2dvi
+ .PP
+ should give you access to the complete manual.
diff -Nrc2 texinfo-4.12/doc/stamp-1 texinfo-4.13/doc/stamp-1
*** texinfo-4.12/doc/stamp-1	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/stamp-1	Thu Sep 18 11:46:49 2008
***************
*** 0 ****
--- 1,4 ----
+ @set UPDATED 18 September 2008
+ @set UPDATED-MONTH September 2008
+ @set EDITION 4.13
+ @set VERSION 4.13
diff -Nrc2 texinfo-4.12/doc/stamp-vti texinfo-4.13/doc/stamp-vti
*** texinfo-4.12/doc/stamp-vti	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/stamp-vti	Thu Sep 18 11:46:49 2008
***************
*** 0 ****
--- 1,4 ----
+ @set UPDATED 18 September 2008
+ @set UPDATED-MONTH September 2008
+ @set EDITION 4.13
+ @set VERSION 4.13
diff -Nrc2 texinfo-4.12/doc/texi2dvi.1 texinfo-4.13/doc/texi2dvi.1
*** texinfo-4.12/doc/texi2dvi.1	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/texi2dvi.1	Thu Sep 18 11:46:50 2008
***************
*** 0 ****
--- 1,187 ----
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+ .TH TEXI2DVI "1" "September 2008" "texi2dvi 1.135" "User Commands"
+ .SH NAME
+ texi2dvi \- convert Texinfo documents to DVI
+ .SH SYNOPSIS
+ .B texi2dvi
+ [\fIOPTION\fR]... \fIFILE\fR...
+ .SH DESCRIPTION
+ Run each Texinfo or (La)TeX FILE through TeX in turn until all
+ cross\-references are resolved, building all indices.  The directory
+ containing each FILE is searched for included files.  The suffix of FILE
+ is used to determine its language ((La)TeX or Texinfo).  To process
+ (e)plain TeX files, set the environment variable LATEX=tex.
+ .PP
+ In order to make texi2dvi a drop\-in replacement of TeX/LaTeX in AUC\-TeX,
+ the FILE may also be composed of the following simple TeX commands.
+ .TP
+ `\einput{FILE}'
+ the actual file to compile
+ .TP
+ `\enonstopmode'
+ same as \fB\-\-batch\fR
+ .PP
+ Makeinfo is used to perform Texinfo macro expansion before running TeX
+ when needed.
+ .SS "General options:"
+ .TP
+ \fB\-b\fR, \fB\-\-batch\fR
+ no interaction
+ .TP
+ \fB\-D\fR, \fB\-\-debug\fR
+ turn on shell debugging (set \fB\-x\fR)
+ .TP
+ \fB\-h\fR, \fB\-\-help\fR
+ display this help and exit successfully
+ .TP
+ \fB\-o\fR, \fB\-\-output\fR=\fIOFILE\fR
+ leave output in OFILE (implies \fB\-\-clean\fR);
+ only one input FILE may be specified in this case
+ .TP
+ \fB\-q\fR, \fB\-\-quiet\fR
+ no output unless errors (implies \fB\-\-batch\fR)
+ .TP
+ \fB\-s\fR, \fB\-\-silent\fR
+ same as \fB\-\-quiet\fR
+ .TP
+ \fB\-v\fR, \fB\-\-version\fR
+ display version information and exit successfully
+ .TP
+ \fB\-V\fR, \fB\-\-verbose\fR
+ report on what is done
+ .SS "TeX tuning:"
+ .TP
+ \-@
+ use @input instead of \einput for preloaded Texinfo
+ .TP
+ \fB\-\-dvi\fR
+ output a DVI file [default]
+ .TP
+ \fB\-\-dvipdf\fR
+ output a PDF file via DVI (using dvipdf)
+ .TP
+ \fB\-e\fR, \fB\-E\fR, \fB\-\-expand\fR
+ force macro expansion using makeinfo
+ .TP
+ \fB\-I\fR DIR
+ search DIR for Texinfo files
+ .TP
+ \fB\-l\fR, \fB\-\-language\fR=\fILANG\fR
+ specify LANG for FILE, either latex or texinfo
+ .TP
+ \fB\-\-no\-line\-error\fR
+ do not pass \fB\-\-file\-line\-error\fR to TeX
+ .TP
+ \fB\-p\fR, \fB\-\-pdf\fR
+ use pdftex or pdflatex for processing
+ .TP
+ \fB\-r\fR, \fB\-\-recode\fR
+ call recode before TeX to translate input
+ .TP
+ \fB\-\-recode\-from\fR=\fIENC\fR
+ recode from ENC to the @documentencoding
+ .TP
+ \fB\-\-src\-specials\fR
+ pass \fB\-\-src\-specials\fR to TeX
+ .TP
+ \fB\-t\fR, \fB\-\-command\fR=\fICMD\fR
+ insert CMD in copy of input file
+ .TP
+ or \fB\-\-texinfo\fR=\fICMD\fR
+ multiple values accumulate
+ .TP
+ \fB\-\-translate\-file\fR=\fIFILE\fR
+ use given charset translation file for TeX
+ .SS "Build modes:"
+ .TP
+ \fB\-\-build\fR=\fIMODE\fR
+ specify the treatment of auxiliary files [local]
+ .TP
+ \fB\-\-tidy\fR
+ same as \fB\-\-build\fR=\fItidy\fR
+ .TP
+ \fB\-c\fR, \fB\-\-clean\fR
+ same as \fB\-\-build\fR=\fIclean\fR
+ .TP
+ \fB\-\-build\-dir\fR=\fIDIR\fR
+ specify where the tidy compilation is performed;
+ implies \fB\-\-tidy\fR;
+ defaults to TEXI2DVI_BUILD_DIRECTORY [.]
+ .TP
+ \fB\-\-mostly\-clean\fR
+ remove the auxiliary files and directories
+ but not the output
+ .PP
+ The MODE specifies where the TeX compilation takes place, and, as a
+ consequence, how auxiliary files are treated.  The build mode
+ can also be set using the environment variable TEXI2DVI_BUILD_MODE.
+ .SS "Valid MODEs are:"
+ .TP
+ `local'
+ compile in the current directory, leaving all the auxiliary
+ files around.  This is the traditional TeX use.
+ .TP
+ `tidy'
+ compile in a local *.t2d directory, where the auxiliary files
+ are left.  Output files are copied back to the original file.
+ .TP
+ `clean'
+ same as `tidy', but remove the auxiliary directory afterwards.
+ Every compilation therefore requires the full cycle.
+ .SS "Using the `tidy' mode brings several advantages:"
+ .TP
+ \-
+ the current directory is not cluttered with plethora of temporary files.
+ .TP
+ \-
+ clutter can be even reduced using \fB\-\-build\-dir\fR=\fIdir\fR: all the *.t2d
+ directories are stored there.
+ .TP
+ \-
+ clutter can be reduced to zero using, e.g., \fB\-\-build\-dir=\fR/tmp/$USER.t2d
+ or \fB\-\-build\-dir=\fR$HOME/.t2d.
+ .TP
+ \-
+ the output file is updated after every succesful TeX run, for
+ sake of concurrent visualization of the output.  In a `local' build
+ the viewer stops during the whole TeX run.
+ .TP
+ \-
+ if the compilation fails, the previous state of the output file
+ is preserved.
+ .TP
+ \-
+ PDF and DVI compilation are kept in separate subdirectories
+ preventing any possibility of auxiliary file incompatibility.
+ .PP
+ On the other hand, because `tidy' compilation takes place in another
+ directory, occasionally TeX won't be able to find some files (e.g., when
+ using \egraphicspath): in that case use \fB\-I\fR to specify the additional
+ directories to consider.
+ .PP
+ The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO,
+ TEX (or PDFTEX), TEXINDEX, and THUMBPDF environment variables are used
+ to run those commands, if they are set.  Any CMD strings are added
+ after @setfilename for Texinfo input, in the first line for LaTeX input.
+ .SH "REPORTING BUGS"
+ Email bug reports to <bug\-texinfo@gnu.org>,
+ general questions and discussion to <help\-texinfo@gnu.org>.
+ Texinfo home page: http://www.gnu.org/software/texinfo/
+ .SH COPYRIGHT
+ Copyright \(co 2008 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ .br
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ .SH "SEE ALSO"
+ The full documentation for
+ .B texi2dvi
+ is maintained as a Texinfo manual.  If the
+ .B info
+ and
+ .B texi2dvi
+ programs are properly installed at your site, the command
+ .IP
+ .B info texi2dvi
+ .PP
+ should give you access to the complete manual.
diff -Nrc2 texinfo-4.12/doc/texi2pdf.1 texinfo-4.13/doc/texi2pdf.1
*** texinfo-4.12/doc/texi2pdf.1	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/texi2pdf.1	Thu Sep 18 11:46:50 2008
***************
*** 0 ****
--- 1,187 ----
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+ .TH TEXI2DVI "1" "September 2008" "texi2dvi 1.135" "User Commands"
+ .SH NAME
+ texi2dvi \- convert Texinfo documents to PDF
+ .SH SYNOPSIS
+ .B texi2dvi
+ [\fIOPTION\fR]... \fIFILE\fR...
+ .SH DESCRIPTION
+ Run each Texinfo or (La)TeX FILE through TeX in turn until all
+ cross\-references are resolved, building all indices.  The directory
+ containing each FILE is searched for included files.  The suffix of FILE
+ is used to determine its language ((La)TeX or Texinfo).  To process
+ (e)plain TeX files, set the environment variable LATEX=tex.
+ .PP
+ In order to make texi2dvi a drop\-in replacement of TeX/LaTeX in AUC\-TeX,
+ the FILE may also be composed of the following simple TeX commands.
+ .TP
+ `\einput{FILE}'
+ the actual file to compile
+ .TP
+ `\enonstopmode'
+ same as \fB\-\-batch\fR
+ .PP
+ Makeinfo is used to perform Texinfo macro expansion before running TeX
+ when needed.
+ .SS "General options:"
+ .TP
+ \fB\-b\fR, \fB\-\-batch\fR
+ no interaction
+ .TP
+ \fB\-D\fR, \fB\-\-debug\fR
+ turn on shell debugging (set \fB\-x\fR)
+ .TP
+ \fB\-h\fR, \fB\-\-help\fR
+ display this help and exit successfully
+ .TP
+ \fB\-o\fR, \fB\-\-output\fR=\fIOFILE\fR
+ leave output in OFILE (implies \fB\-\-clean\fR);
+ only one input FILE may be specified in this case
+ .TP
+ \fB\-q\fR, \fB\-\-quiet\fR
+ no output unless errors (implies \fB\-\-batch\fR)
+ .TP
+ \fB\-s\fR, \fB\-\-silent\fR
+ same as \fB\-\-quiet\fR
+ .TP
+ \fB\-v\fR, \fB\-\-version\fR
+ display version information and exit successfully
+ .TP
+ \fB\-V\fR, \fB\-\-verbose\fR
+ report on what is done
+ .SS "TeX tuning:"
+ .TP
+ \-@
+ use @input instead of \einput for preloaded Texinfo
+ .TP
+ \fB\-\-dvi\fR
+ output a DVI file [default]
+ .TP
+ \fB\-\-dvipdf\fR
+ output a PDF file via DVI (using dvipdf)
+ .TP
+ \fB\-e\fR, \fB\-E\fR, \fB\-\-expand\fR
+ force macro expansion using makeinfo
+ .TP
+ \fB\-I\fR DIR
+ search DIR for Texinfo files
+ .TP
+ \fB\-l\fR, \fB\-\-language\fR=\fILANG\fR
+ specify LANG for FILE, either latex or texinfo
+ .TP
+ \fB\-\-no\-line\-error\fR
+ do not pass \fB\-\-file\-line\-error\fR to TeX
+ .TP
+ \fB\-p\fR, \fB\-\-pdf\fR
+ use pdftex or pdflatex for processing
+ .TP
+ \fB\-r\fR, \fB\-\-recode\fR
+ call recode before TeX to translate input
+ .TP
+ \fB\-\-recode\-from\fR=\fIENC\fR
+ recode from ENC to the @documentencoding
+ .TP
+ \fB\-\-src\-specials\fR
+ pass \fB\-\-src\-specials\fR to TeX
+ .TP
+ \fB\-t\fR, \fB\-\-command\fR=\fICMD\fR
+ insert CMD in copy of input file
+ .TP
+ or \fB\-\-texinfo\fR=\fICMD\fR
+ multiple values accumulate
+ .TP
+ \fB\-\-translate\-file\fR=\fIFILE\fR
+ use given charset translation file for TeX
+ .SS "Build modes:"
+ .TP
+ \fB\-\-build\fR=\fIMODE\fR
+ specify the treatment of auxiliary files [local]
+ .TP
+ \fB\-\-tidy\fR
+ same as \fB\-\-build\fR=\fItidy\fR
+ .TP
+ \fB\-c\fR, \fB\-\-clean\fR
+ same as \fB\-\-build\fR=\fIclean\fR
+ .TP
+ \fB\-\-build\-dir\fR=\fIDIR\fR
+ specify where the tidy compilation is performed;
+ implies \fB\-\-tidy\fR;
+ defaults to TEXI2DVI_BUILD_DIRECTORY [.]
+ .TP
+ \fB\-\-mostly\-clean\fR
+ remove the auxiliary files and directories
+ but not the output
+ .PP
+ The MODE specifies where the TeX compilation takes place, and, as a
+ consequence, how auxiliary files are treated.  The build mode
+ can also be set using the environment variable TEXI2DVI_BUILD_MODE.
+ .SS "Valid MODEs are:"
+ .TP
+ `local'
+ compile in the current directory, leaving all the auxiliary
+ files around.  This is the traditional TeX use.
+ .TP
+ `tidy'
+ compile in a local *.t2d directory, where the auxiliary files
+ are left.  Output files are copied back to the original file.
+ .TP
+ `clean'
+ same as `tidy', but remove the auxiliary directory afterwards.
+ Every compilation therefore requires the full cycle.
+ .SS "Using the `tidy' mode brings several advantages:"
+ .TP
+ \-
+ the current directory is not cluttered with plethora of temporary files.
+ .TP
+ \-
+ clutter can be even reduced using \fB\-\-build\-dir\fR=\fIdir\fR: all the *.t2d
+ directories are stored there.
+ .TP
+ \-
+ clutter can be reduced to zero using, e.g., \fB\-\-build\-dir=\fR/tmp/$USER.t2d
+ or \fB\-\-build\-dir=\fR$HOME/.t2d.
+ .TP
+ \-
+ the output file is updated after every succesful TeX run, for
+ sake of concurrent visualization of the output.  In a `local' build
+ the viewer stops during the whole TeX run.
+ .TP
+ \-
+ if the compilation fails, the previous state of the output file
+ is preserved.
+ .TP
+ \-
+ PDF and DVI compilation are kept in separate subdirectories
+ preventing any possibility of auxiliary file incompatibility.
+ .PP
+ On the other hand, because `tidy' compilation takes place in another
+ directory, occasionally TeX won't be able to find some files (e.g., when
+ using \egraphicspath): in that case use \fB\-I\fR to specify the additional
+ directories to consider.
+ .PP
+ The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO,
+ TEX (or PDFTEX), TEXINDEX, and THUMBPDF environment variables are used
+ to run those commands, if they are set.  Any CMD strings are added
+ after @setfilename for Texinfo input, in the first line for LaTeX input.
+ .SH "REPORTING BUGS"
+ Email bug reports to <bug\-texinfo@gnu.org>,
+ general questions and discussion to <help\-texinfo@gnu.org>.
+ Texinfo home page: http://www.gnu.org/software/texinfo/
+ .SH COPYRIGHT
+ Copyright \(co 2008 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ .br
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ .SH "SEE ALSO"
+ The full documentation for
+ .B texi2dvi
+ is maintained as a Texinfo manual.  If the
+ .B info
+ and
+ .B texi2dvi
+ programs are properly installed at your site, the command
+ .IP
+ .B info texi2dvi
+ .PP
+ should give you access to the complete manual.
diff -Nrc2 texinfo-4.12/doc/texindex.1 texinfo-4.13/doc/texindex.1
*** texinfo-4.12/doc/texindex.1	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/texindex.1	Thu Sep 18 11:46:50 2008
***************
*** 0 ****
--- 1,42 ----
+ .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.36.
+ .TH TEXINDEX "1" "September 2008" "texindex 4.13" "User Commands"
+ .SH NAME
+ texindex \- sort Texinfo index files
+ .SH SYNOPSIS
+ .B texindex
+ [\fIOPTION\fR]... \fIFILE\fR...
+ .SH DESCRIPTION
+ Generate a sorted index for each TeX output FILE.
+ Usually FILE... is specified as `foo.??' for a document `foo.texi'.
+ .SH OPTIONS
+ .TP
+ \fB\-h\fR, \fB\-\-help\fR
+ display this help and exit
+ .TP
+ \fB\-o\fR, \fB\-\-output\fR FILE
+ send output to FILE
+ .TP
+ \fB\-\-version\fR
+ display version information and exit
+ .SH "REPORTING BUGS"
+ Email bug reports to bug\-texinfo@gnu.org,
+ general questions and discussion to help\-texinfo@gnu.org.
+ Texinfo home page: http://www.gnu.org/software/texinfo/
+ .SH COPYRIGHT
+ Copyright \(co 2008 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ .br
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ .SH "SEE ALSO"
+ The full documentation for
+ .B texindex
+ is maintained as a Texinfo manual.  If the
+ .B info
+ and
+ .B texindex
+ programs are properly installed at your site, the command
+ .IP
+ .B info texindex
+ .PP
+ should give you access to the complete manual.
diff -Nrc2 texinfo-4.12/doc/texinfo.5 texinfo-4.13/doc/texinfo.5
*** texinfo-4.12/doc/texinfo.5	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/texinfo.5	Thu Jan 20 14:38:32 2005
***************
*** 0 ****
--- 1,61 ----
+ .\" texinfo(5)
+ .\" $Id: texinfo.5,v 1.3 2005/01/20 22:38:32 karl Exp $
+ .\"
+ .\" Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
+ .\"
+ .\" Permission is granted to make and distribute verbatim copies of this
+ .\" manual provided the copyright notice and this permission notice are
+ .\" preserved on all copies.
+ .\"
+ .\" Permission is granted to copy and distribute modified versions of
+ .\" this manual under the conditions for verbatim copying, provided that
+ .\" the entire resulting derived work is distributed under the terms of a
+ .\" permission notice identical to this one.
+ .\"
+ .\" Permission is granted to copy and distribute translations of this
+ .\" manual into another language, under the above conditions for modified
+ .\" versions, except that this permission notice may be stated in a
+ .\" translation approved by the Foundation.
+ .\"
+ .de EX
+ .nf
+ .ft CW
+ .in +5
+ ..
+ .de EE
+ .in -5
+ .ft R
+ .fi
+ ..
+ .TH TEXINFO 5 "GNU Texinfo" "FSF"
+ .SH NAME
+ texinfo \- software documentation system
+ .SH DESCRIPTION
+ Texinfo is a documentation system that uses a single source file to
+ produce both online information and printed output.  It is primarily
+ designed for writing software manuals.
+ .PP
+ For a full description of the Texinfo language and associated tools,
+ please see the Texinfo manual (written in Texinfo itself).  Most likely,
+ running this command from your shell:
+ .EX
+ info texinfo
+ .EE
+ or this key sequence from inside Emacs:
+ .EX
+ M-x info RET m texinfo RET
+ .EE
+ will get you there.
+ .SH AVAILABILITY
+ ftp://ftp.gnu.org/gnu/texinfo/
+ .br
+ or any GNU mirror site.
+ .SH "REPORTING BUGS"
+ Please send bug reports to bug-texinfo@gnu.org,
+ general questions and discussion to help-texinfo@gnu.org.
+ .SH "SEE ALSO"
+ info(1), install-info(1), makeinfo(1), texi2dvi(1), texindex(1).
+ .br
+ emacs(1), tex(1).
+ .br
+ info(5).
diff -Nrc2 texinfo-4.12/doc/texinfo.tex texinfo-4.13/doc/texinfo.tex
*** texinfo-4.12/doc/texinfo.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/texinfo.tex	Thu May 22 05:11:32 2008
***************
*** 0 ****
--- 1,8997 ----
+ % texinfo.tex -- TeX macros to handle Texinfo files.
+ %
+ % Load plain if necessary, i.e., if running under initex.
+ \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
+ %
+ \def\texinfoversion{2008-04-18.10}
+ %
+ % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
+ % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+ % 2007, 2008 Free Software Foundation, Inc.
+ %
+ % This texinfo.tex file 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 3 of the
+ % License, or (at your option) any later version.
+ %
+ % This texinfo.tex file 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, see <http://www.gnu.org/licenses/>.
+ %
+ % As a special exception, when this file is read by TeX when processing
+ % a Texinfo source document, you may use the result without
+ % restriction.  (This has been our intent since Texinfo was invented.)
+ %
+ % Please try the latest version of texinfo.tex before submitting bug
+ % reports; you can get the latest version from:
+ %   http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
+ %   ftp://tug.org/tex/texinfo.tex
+ %     (and all CTAN mirrors, see http://www.ctan.org).
+ % The texinfo.tex in any given distribution could well be out
+ % of date, so if that's what you're using, please check.
+ %
+ % Send bug reports to bug-texinfo@gnu.org.  Please include including a
+ % complete document in each bug report with which we can reproduce the
+ % problem.  Patches are, of course, greatly appreciated.
+ %
+ % To process a Texinfo manual with TeX, it's most reliable to use the
+ % texi2dvi shell script that comes with the distribution.  For a simple
+ % manual foo.texi, however, you can get away with this:
+ %   tex foo.texi
+ %   texindex foo.??
+ %   tex foo.texi
+ %   tex foo.texi
+ %   dvips foo.dvi -o  # or whatever; this makes foo.ps.
+ % The extra TeX runs get the cross-reference information correct.
+ % Sometimes one run after texindex suffices, and sometimes you need more
+ % than two; texi2dvi does it as many times as necessary.
+ %
+ % It is possible to adapt texinfo.tex for other languages, to some
+ % extent.  You can get the existing language-specific files from the
+ % full Texinfo distribution.
+ %
+ % The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
+ 
+ 
+ \message{Loading texinfo [version \texinfoversion]:}
+ 
+ % If in a .fmt file, print the version number
+ % and turn on active characters that we couldn't do earlier because
+ % they might have appeared in the input file name.
+ \everyjob{\message{[Texinfo version \texinfoversion]}%
+   \catcode`+=\active \catcode`\_=\active}
+ 
+ 
+ \chardef\other=12
+ 
+ % We never want plain's \outer definition of \+ in Texinfo.
+ % For @tex, we can use \tabalign.
+ \let\+ = \relax
+ 
+ % Save some plain tex macros whose names we will redefine.
+ \let\ptexb=\b
+ \let\ptexbullet=\bullet
+ \let\ptexc=\c
+ \let\ptexcomma=\,
+ \let\ptexdot=\.
+ \let\ptexdots=\dots
+ \let\ptexend=\end
+ \let\ptexequiv=\equiv
+ \let\ptexexclam=\!
+ \let\ptexfootnote=\footnote
+ \let\ptexgtr=>
+ \let\ptexhat=^
+ \let\ptexi=\i
+ \let\ptexindent=\indent
+ \let\ptexinsert=\insert
+ \let\ptexlbrace=\{
+ \let\ptexless=<
+ \let\ptexnewwrite\newwrite
+ \let\ptexnoindent=\noindent
+ \let\ptexplus=+
+ \let\ptexrbrace=\}
+ \let\ptexslash=\/
+ \let\ptexstar=\*
+ \let\ptext=\t
+ \let\ptextop=\top
+ 
+ % If this character appears in an error message or help string, it
+ % starts a new line in the output.
+ \newlinechar = `^^J
+ 
+ % Use TeX 3.0's \inputlineno to get the line number, for better error
+ % messages, but if we're using an old version of TeX, don't do anything.
+ %
+ \ifx\inputlineno\thisisundefined
+   \let\linenumber = \empty % Pre-3.0.
+ \else
+   \def\linenumber{l.\the\inputlineno:\space}
+ \fi
+ 
+ % Set up fixed words for English if not already set.
+ \ifx\putwordAppendix\undefined  \gdef\putwordAppendix{Appendix}\fi
+ \ifx\putwordChapter\undefined   \gdef\putwordChapter{Chapter}\fi
+ \ifx\putwordfile\undefined      \gdef\putwordfile{file}\fi
+ \ifx\putwordin\undefined        \gdef\putwordin{in}\fi
+ \ifx\putwordIndexIsEmpty\undefined     \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
+ \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
+ \ifx\putwordInfo\undefined      \gdef\putwordInfo{Info}\fi
+ \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
+ \ifx\putwordMethodon\undefined  \gdef\putwordMethodon{Method on}\fi
+ \ifx\putwordNoTitle\undefined   \gdef\putwordNoTitle{No Title}\fi
+ \ifx\putwordof\undefined        \gdef\putwordof{of}\fi
+ \ifx\putwordon\undefined        \gdef\putwordon{on}\fi
+ \ifx\putwordpage\undefined      \gdef\putwordpage{page}\fi
+ \ifx\putwordsection\undefined   \gdef\putwordsection{section}\fi
+ \ifx\putwordSection\undefined   \gdef\putwordSection{Section}\fi
+ \ifx\putwordsee\undefined       \gdef\putwordsee{see}\fi
+ \ifx\putwordSee\undefined       \gdef\putwordSee{See}\fi
+ \ifx\putwordShortTOC\undefined  \gdef\putwordShortTOC{Short Contents}\fi
+ \ifx\putwordTOC\undefined       \gdef\putwordTOC{Table of Contents}\fi
+ %
+ \ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
+ \ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
+ \ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
+ \ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
+ \ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
+ \ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
+ \ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
+ \ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
+ \ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
+ \ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
+ \ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
+ \ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
+ %
+ \ifx\putwordDefmac\undefined    \gdef\putwordDefmac{Macro}\fi
+ \ifx\putwordDefspec\undefined   \gdef\putwordDefspec{Special Form}\fi
+ \ifx\putwordDefvar\undefined    \gdef\putwordDefvar{Variable}\fi
+ \ifx\putwordDefopt\undefined    \gdef\putwordDefopt{User Option}\fi
+ \ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
+ 
+ % Since the category of space is not known, we have to be careful.
+ \chardef\spacecat = 10
+ \def\spaceisspace{\catcode`\ =\spacecat}
+ 
+ % sometimes characters are active, so we need control sequences.
+ \chardef\colonChar = `\:
+ \chardef\commaChar = `\,
+ \chardef\dashChar  = `\-
+ \chardef\dotChar   = `\.
+ \chardef\exclamChar= `\!
+ \chardef\lquoteChar= `\`
+ \chardef\questChar = `\?
+ \chardef\rquoteChar= `\'
+ \chardef\semiChar  = `\;
+ \chardef\underChar = `\_
+ 
+ % Ignore a token.
+ %
+ \def\gobble#1{}
+ 
+ % The following is used inside several \edef's.
+ \def\makecsname#1{\expandafter\noexpand\csname#1\endcsname}
+ 
+ % Hyphenation fixes.
+ \hyphenation{
+   Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
+   ap-pen-dix bit-map bit-maps
+   data-base data-bases eshell fall-ing half-way long-est man-u-script
+   man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
+   par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
+   spell-ing spell-ings
+   stand-alone strong-est time-stamp time-stamps which-ever white-space
+   wide-spread wrap-around
+ }
+ 
+ % Margin to add to right of even pages, to left of odd pages.
+ \newdimen\bindingoffset
+ \newdimen\normaloffset
+ \newdimen\pagewidth \newdimen\pageheight
+ 
+ % For a final copy, take out the rectangles
+ % that mark overfull boxes (in case you have decided
+ % that the text looks ok even though it passes the margin).
+ %
+ \def\finalout{\overfullrule=0pt}
+ 
+ % @| inserts a changebar to the left of the current line.  It should
+ % surround any changed text.  This approach does *not* work if the
+ % change spans more than two lines of output.  To handle that, we would
+ % have adopt a much more difficult approach (putting marks into the main
+ % vertical list for the beginning and end of each change).
+ %
+ \def\|{%
+   % \vadjust can only be used in horizontal mode.
+   \leavevmode
+   %
+   % Append this vertical mode material after the current line in the output.
+   \vadjust{%
+     % We want to insert a rule with the height and depth of the current
+     % leading; that is exactly what \strutbox is supposed to record.
+     \vskip-\baselineskip
+     %
+     % \vadjust-items are inserted at the left edge of the type.  So
+     % the \llap here moves out into the left-hand margin.
+     \llap{%
+       %
+       % For a thicker or thinner bar, change the `1pt'.
+       \vrule height\baselineskip width1pt
+       %
+       % This is the space between the bar and the text.
+       \hskip 12pt
+     }%
+   }%
+ }
+ 
+ % Sometimes it is convenient to have everything in the transcript file
+ % and nothing on the terminal.  We don't just call \tracingall here,
+ % since that produces some useless output on the terminal.  We also make
+ % some effort to order the tracing commands to reduce output in the log
+ % file; cf. trace.sty in LaTeX.
+ %
+ \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
+ \def\loggingall{%
+   \tracingstats2
+   \tracingpages1
+   \tracinglostchars2  % 2 gives us more in etex
+   \tracingparagraphs1
+   \tracingoutput1
+   \tracingmacros2
+   \tracingrestores1
+   \showboxbreadth\maxdimen \showboxdepth\maxdimen
+   \ifx\eTeXversion\undefined\else % etex gives us more logging
+     \tracingscantokens1
+     \tracingifs1
+     \tracinggroups1
+     \tracingnesting2
+     \tracingassigns1
+   \fi
+   \tracingcommands3  % 3 gives us more in etex
+   \errorcontextlines16
+ }%
+ 
+ % add check for \lastpenalty to plain's definitions.  If the last thing
+ % we did was a \nobreak, we don't want to insert more space.
+ %
+ \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
+   \removelastskip\penalty-50\smallskip\fi\fi}
+ \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
+   \removelastskip\penalty-100\medskip\fi\fi}
+ \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
+   \removelastskip\penalty-200\bigskip\fi\fi}
+ 
+ % For @cropmarks command.
+ % Do @cropmarks to get crop marks.
+ %
+ \newif\ifcropmarks
+ \let\cropmarks = \cropmarkstrue
+ %
+ % Dimensions to add cropmarks at corners.
+ % Added by P. A. MacKay, 12 Nov. 1986
+ %
+ \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
+ \newdimen\cornerlong  \cornerlong=1pc
+ \newdimen\cornerthick \cornerthick=.3pt
+ \newdimen\topandbottommargin \topandbottommargin=.75in
+ 
+ % Output a mark which sets \thischapter, \thissection and \thiscolor.
+ % We dump everything together because we only have one kind of mark.
+ % This works because we only use \botmark / \topmark, not \firstmark.
+ %
+ % A mark contains a subexpression of the \ifcase ... \fi construct.
+ % \get*marks macros below extract the needed part using \ifcase.
+ %
+ % Another complication is to let the user choose whether \thischapter
+ % (\thissection) refers to the chapter (section) in effect at the top
+ % of a page, or that at the bottom of a page.  The solution is
+ % described on page 260 of The TeXbook.  It involves outputting two
+ % marks for the sectioning macros, one before the section break, and
+ % one after.  I won't pretend I can describe this better than DEK...
+ \def\domark{%
+   \toks0=\expandafter{\lastchapterdefs}%
+   \toks2=\expandafter{\lastsectiondefs}%
+   \toks4=\expandafter{\prevchapterdefs}%
+   \toks6=\expandafter{\prevsectiondefs}%
+   \toks8=\expandafter{\lastcolordefs}%
+   \mark{%
+                    \the\toks0 \the\toks2
+       \noexpand\or \the\toks4 \the\toks6
+     \noexpand\else \the\toks8
+   }%
+ }
+ % \topmark doesn't work for the very first chapter (after the title
+ % page or the contents), so we use \firstmark there -- this gets us
+ % the mark with the chapter defs, unless the user sneaks in, e.g.,
+ % @setcolor (or @url, or @link, etc.) between @contents and the very
+ % first @chapter.
+ \def\gettopheadingmarks{%
+   \ifcase0\topmark\fi
+   \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
+ }
+ \def\getbottomheadingmarks{\ifcase1\botmark\fi}
+ \def\getcolormarks{\ifcase2\topmark\fi}
+ 
+ % Avoid "undefined control sequence" errors.
+ \def\lastchapterdefs{}
+ \def\lastsectiondefs{}
+ \def\prevchapterdefs{}
+ \def\prevsectiondefs{}
+ \def\lastcolordefs{}
+ 
+ % Main output routine.
+ \chardef\PAGE = 255
+ \output = {\onepageout{\pagecontents\PAGE}}
+ 
+ \newbox\headlinebox
+ \newbox\footlinebox
+ 
+ % \onepageout takes a vbox as an argument.  Note that \pagecontents
+ % does insertions, but you have to call it yourself.
+ \def\onepageout#1{%
+   \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
+   %
+   \ifodd\pageno  \advance\hoffset by \bindingoffset
+   \else \advance\hoffset by -\bindingoffset\fi
+   %
+   % Do this outside of the \shipout so @code etc. will be expanded in
+   % the headline as they should be, not taken literally (outputting ''code).
+   \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
+   \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+   \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
+   \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+   %
+   {%
+     % Have to do this stuff outside the \shipout because we want it to
+     % take effect in \write's, yet the group defined by the \vbox ends
+     % before the \shipout runs.
+     %
+     \indexdummies         % don't expand commands in the output.
+     \normalturnoffactive  % \ in index entries must not stay \, e.g., if
+                % the page break happens to be in the middle of an example.
+                % We don't want .vr (or whatever) entries like this:
+                % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
+                % "\acronym" won't work when it's read back in;
+                % it needs to be 
+                % {\code {{\tt \backslashcurfont }acronym}
+     \shipout\vbox{%
+       % Do this early so pdf references go to the beginning of the page.
+       \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
+       %
+       \ifcropmarks \vbox to \outervsize\bgroup
+         \hsize = \outerhsize
+         \vskip-\topandbottommargin
+         \vtop to0pt{%
+           \line{\ewtop\hfil\ewtop}%
+           \nointerlineskip
+           \line{%
+             \vbox{\moveleft\cornerthick\nstop}%
+             \hfill
+             \vbox{\moveright\cornerthick\nstop}%
+           }%
+           \vss}%
+         \vskip\topandbottommargin
+         \line\bgroup
+           \hfil % center the page within the outer (page) hsize.
+           \ifodd\pageno\hskip\bindingoffset\fi
+           \vbox\bgroup
+       \fi
+       %
+       \unvbox\headlinebox
+       \pagebody{#1}%
+       \ifdim\ht\footlinebox > 0pt
+         % Only leave this space if the footline is nonempty.
+         % (We lessened \vsize for it in \oddfootingyyy.)
+         % The \baselineskip=24pt in plain's \makefootline has no effect.
+         \vskip 24pt
+         \unvbox\footlinebox
+       \fi
+       %
+       \ifcropmarks
+           \egroup % end of \vbox\bgroup
+         \hfil\egroup % end of (centering) \line\bgroup
+         \vskip\topandbottommargin plus1fill minus1fill
+         \boxmaxdepth = \cornerthick
+         \vbox to0pt{\vss
+           \line{%
+             \vbox{\moveleft\cornerthick\nsbot}%
+             \hfill
+             \vbox{\moveright\cornerthick\nsbot}%
+           }%
+           \nointerlineskip
+           \line{\ewbot\hfil\ewbot}%
+         }%
+       \egroup % \vbox from first cropmarks clause
+       \fi
+     }% end of \shipout\vbox
+   }% end of group with \indexdummies
+   \advancepageno
+   \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+ }
+ 
+ \newinsert\margin \dimen\margin=\maxdimen
+ 
+ \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
+ {\catcode`\@ =11
+ \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
+ % marginal hacks, juha@viisa.uucp (Juha Takala)
+ \ifvoid\margin\else % marginal info is present
+   \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
+ \dimen@=\dp#1\relax \unvbox#1\relax
+ \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+ }
+ 
+ % Here are the rules for the cropmarks.  Note that they are
+ % offset so that the space between them is truly \outerhsize or \outervsize
+ % (P. A. MacKay, 12 November, 1986)
+ %
+ \def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
+ \def\nstop{\vbox
+   {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
+ \def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
+ \def\nsbot{\vbox
+   {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
+ 
+ % Parse an argument, then pass it to #1.  The argument is the rest of
+ % the input line (except we remove a trailing comment).  #1 should be a
+ % macro which expects an ordinary undelimited TeX argument.
+ %
+ \def\parsearg{\parseargusing{}}
+ \def\parseargusing#1#2{%
+   \def\argtorun{#2}%
+   \begingroup
+     \obeylines
+     \spaceisspace
+     #1%
+     \parseargline\empty% Insert the \empty token, see \finishparsearg below.
+ }
+ 
+ {\obeylines %
+   \gdef\parseargline#1^^M{%
+     \endgroup % End of the group started in \parsearg.
+     \argremovecomment #1\comment\ArgTerm%
+   }%
+ }
+ 
+ % First remove any @comment, then any @c comment.
+ \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
+ \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
+ 
+ % Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
+ %
+ % \argremovec might leave us with trailing space, e.g.,
+ %    @end itemize  @c foo
+ % This space token undergoes the same procedure and is eventually removed
+ % by \finishparsearg.
+ %
+ \def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
+ \def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
+ \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
+   \def\temp{#3}%
+   \ifx\temp\empty
+     % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
+     \let\temp\finishparsearg
+   \else
+     \let\temp\argcheckspaces
+   \fi
+   % Put the space token in:
+   \temp#1 #3\ArgTerm
+ }
+ 
+ % If a _delimited_ argument is enclosed in braces, they get stripped; so
+ % to get _exactly_ the rest of the line, we had to prevent such situation.
+ % We prepended an \empty token at the very beginning and we expand it now,
+ % just before passing the control to \argtorun.
+ % (Similarly, we have to think about #3 of \argcheckspacesY above: it is
+ % either the null string, or it ends with \^^M---thus there is no danger
+ % that a pair of braces would be stripped.
+ %
+ % But first, we have to remove the trailing space token.
+ %
+ \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
+ 
+ % \parseargdef\foo{...}
+ %	is roughly equivalent to
+ % \def\foo{\parsearg\Xfoo}
+ % \def\Xfoo#1{...}
+ %
+ % Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
+ % favourite TeX trick.  --kasal, 16nov03
+ 
+ \def\parseargdef#1{%
+   \expandafter \doparseargdef \csname\string#1\endcsname #1%
+ }
+ \def\doparseargdef#1#2{%
+   \def#2{\parsearg#1}%
+   \def#1##1%
+ }
+ 
+ % Several utility definitions with active space:
+ {
+   \obeyspaces
+   \gdef\obeyedspace{ }
+ 
+   % Make each space character in the input produce a normal interword
+   % space in the output.  Don't allow a line break at this space, as this
+   % is used only in environments like @example, where each line of input
+   % should produce a line of output anyway.
+   %
+   \gdef\sepspaces{\obeyspaces\let =\tie}
+ 
+   % If an index command is used in an @example environment, any spaces
+   % therein should become regular spaces in the raw index file, not the
+   % expansion of \tie (\leavevmode \penalty \@M \ ).
+   \gdef\unsepspaces{\let =\space}
+ }
+ 
+ 
+ \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
+ 
+ % Define the framework for environments in texinfo.tex.  It's used like this:
+ %
+ %   \envdef\foo{...}
+ %   \def\Efoo{...}
+ %
+ % It's the responsibility of \envdef to insert \begingroup before the
+ % actual body; @end closes the group after calling \Efoo.  \envdef also
+ % defines \thisenv, so the current environment is known; @end checks
+ % whether the environment name matches.  The \checkenv macro can also be
+ % used to check whether the current environment is the one expected.
+ %
+ % Non-false conditionals (@iftex, @ifset) don't fit into this, so they
+ % are not treated as environments; they don't open a group.  (The
+ % implementation of @end takes care not to call \endgroup in this
+ % special case.)
+ 
+ 
+ % At run-time, environments start with this:
+ \def\startenvironment#1{\begingroup\def\thisenv{#1}}
+ % initialize
+ \let\thisenv\empty
+ 
+ % ... but they get defined via ``\envdef\foo{...}'':
+ \long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
+ \def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
+ 
+ % Check whether we're in the right environment:
+ \def\checkenv#1{%
+   \def\temp{#1}%
+   \ifx\thisenv\temp
+   \else
+     \badenverr
+   \fi
+ }
+ 
+ % Environment mismatch, #1 expected:
+ \def\badenverr{%
+   \errhelp = \EMsimple
+   \errmessage{This command can appear only \inenvironment\temp,
+     not \inenvironment\thisenv}%
+ }
+ \def\inenvironment#1{%
+   \ifx#1\empty
+     out of any environment%
+   \else
+     in environment \expandafter\string#1%
+   \fi
+ }
+ 
+ % @end foo executes the definition of \Efoo.
+ % But first, it executes a specialized version of \checkenv
+ %
+ \parseargdef\end{%
+   \if 1\csname iscond.#1\endcsname
+   \else
+     % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
+     \expandafter\checkenv\csname#1\endcsname
+     \csname E#1\endcsname
+     \endgroup
+   \fi
+ }
+ 
+ \newhelp\EMsimple{Press RETURN to continue.}
+ 
+ 
+ %% Simple single-character @ commands
+ 
+ % @@ prints an @
+ % Kludge this until the fonts are right (grr).
+ \def\@{{\tt\char64}}
+ 
+ % This is turned off because it was never documented
+ % and you can use @w{...} around a quote to suppress ligatures.
+ %% Define @` and @' to be the same as ` and '
+ %% but suppressing ligatures.
+ %\def\`{{`}}
+ %\def\'{{'}}
+ 
+ % Used to generate quoted braces.
+ \def\mylbrace {{\tt\char123}}
+ \def\myrbrace {{\tt\char125}}
+ \let\{=\mylbrace
+ \let\}=\myrbrace
+ \begingroup
+   % Definitions to produce \{ and \} commands for indices,
+   % and @{ and @} for the aux/toc files.
+   \catcode`\{ = \other \catcode`\} = \other
+   \catcode`\[ = 1 \catcode`\] = 2
+   \catcode`\! = 0 \catcode`\\ = \other
+   !gdef!lbracecmd[\{]%
+   !gdef!rbracecmd[\}]%
+   !gdef!lbraceatcmd[@{]%
+   !gdef!rbraceatcmd[@}]%
+ !endgroup
+ 
+ % @comma{} to avoid , parsing problems.
+ \let\comma = ,
+ 
+ % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
+ % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
+ \let\, = \c
+ \let\dotaccent = \.
+ \def\ringaccent#1{{\accent23 #1}}
+ \let\tieaccent = \t
+ \let\ubaraccent = \b
+ \let\udotaccent = \d
+ 
+ % Other special characters: @questiondown @exclamdown @ordf @ordm
+ % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
+ \def\questiondown{?`}
+ \def\exclamdown{!`}
+ \def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
+ \def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
+ 
+ % Dotless i and dotless j, used for accents.
+ \def\imacro{i}
+ \def\jmacro{j}
+ \def\dotless#1{%
+   \def\temp{#1}%
+   \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi
+   \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
+   \else \errmessage{@dotless can be used only with i or j}%
+   \fi\fi
+ }
+ 
+ % The \TeX{} logo, as in plain, but resetting the spacing so that a
+ % period following counts as ending a sentence.  (Idea found in latex.)
+ %
+ \edef\TeX{\TeX \spacefactor=1000 }
+ 
+ % @LaTeX{} logo.  Not quite the same results as the definition in
+ % latex.ltx, since we use a different font for the raised A; it's most
+ % convenient for us to use an explicitly smaller font, rather than using
+ % the \scriptstyle font (since we don't reset \scriptstyle and
+ % \scriptscriptstyle).
+ %
+ \def\LaTeX{%
+   L\kern-.36em
+   {\setbox0=\hbox{T}%
+    \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
+   \kern-.15em
+   \TeX
+ }
+ 
+ % Be sure we're in horizontal mode when doing a tie, since we make space
+ % equivalent to this in @example-like environments. Otherwise, a space
+ % at the beginning of a line will start with \penalty -- and
+ % since \penalty is valid in vertical mode, we'd end up putting the
+ % penalty on the vertical list instead of in the new paragraph.
+ {\catcode`@ = 11
+  % Avoid using \@M directly, because that causes trouble
+  % if the definition is written into an index file.
+  \global\let\tiepenalty = \@M
+  \gdef\tie{\leavevmode\penalty\tiepenalty\ }
+ }
+ 
+ % @: forces normal size whitespace following.
+ \def\:{\spacefactor=1000 }
+ 
+ % @* forces a line break.
+ \def\*{\hfil\break\hbox{}\ignorespaces}
+ 
+ % @/ allows a line break.
+ \let\/=\allowbreak
+ 
+ % @. is an end-of-sentence period.
+ \def\.{.\spacefactor=\endofsentencespacefactor\space}
+ 
+ % @! is an end-of-sentence bang.
+ \def\!{!\spacefactor=\endofsentencespacefactor\space}
+ 
+ % @? is an end-of-sentence query.
+ \def\?{?\spacefactor=\endofsentencespacefactor\space}
+ 
+ % @frenchspacing on|off  says whether to put extra space after punctuation.
+ % 
+ \def\onword{on}
+ \def\offword{off}
+ %
+ \parseargdef\frenchspacing{%
+   \def\temp{#1}%
+   \ifx\temp\onword \plainfrenchspacing
+   \else\ifx\temp\offword \plainnonfrenchspacing
+   \else
+     \errhelp = \EMsimple
+     \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
+   \fi\fi
+ }
+ 
+ % @w prevents a word break.  Without the \leavevmode, @w at the
+ % beginning of a paragraph, when TeX is still in vertical mode, would
+ % produce a whole line of output instead of starting the paragraph.
+ \def\w#1{\leavevmode\hbox{#1}}
+ 
+ % @group ... @end group forces ... to be all on one page, by enclosing
+ % it in a TeX vbox.  We use \vtop instead of \vbox to construct the box
+ % to keep its height that of a normal line.  According to the rules for
+ % \topskip (p.114 of the TeXbook), the glue inserted is
+ % max (\topskip - \ht (first item), 0).  If that height is large,
+ % therefore, no glue is inserted, and the space between the headline and
+ % the text is small, which looks bad.
+ %
+ % Another complication is that the group might be very large.  This can
+ % cause the glue on the previous page to be unduly stretched, because it
+ % does not have much material.  In this case, it's better to add an
+ % explicit \vfill so that the extra space is at the bottom.  The
+ % threshold for doing this is if the group is more than \vfilllimit
+ % percent of a page (\vfilllimit can be changed inside of @tex).
+ %
+ \newbox\groupbox
+ \def\vfilllimit{0.7}
+ %
+ \envdef\group{%
+   \ifnum\catcode`\^^M=\active \else
+     \errhelp = \groupinvalidhelp
+     \errmessage{@group invalid in context where filling is enabled}%
+   \fi
+   \startsavinginserts
+   %
+   \setbox\groupbox = \vtop\bgroup
+     % Do @comment since we are called inside an environment such as
+     % @example, where each end-of-line in the input causes an
+     % end-of-line in the output.  We don't want the end-of-line after
+     % the `@group' to put extra space in the output.  Since @group
+     % should appear on a line by itself (according to the Texinfo
+     % manual), we don't worry about eating any user text.
+     \comment
+ }
+ %
+ % The \vtop produces a box with normal height and large depth; thus, TeX puts
+ % \baselineskip glue before it, and (when the next line of text is done)
+ % \lineskip glue after it.  Thus, space below is not quite equal to space
+ % above.  But it's pretty close.
+ \def\Egroup{%
+     % To get correct interline space between the last line of the group
+     % and the first line afterwards, we have to propagate \prevdepth.
+     \endgraf % Not \par, as it may have been set to \lisppar.
+     \global\dimen1 = \prevdepth
+   \egroup           % End the \vtop.
+   % \dimen0 is the vertical size of the group's box.
+   \dimen0 = \ht\groupbox  \advance\dimen0 by \dp\groupbox
+   % \dimen2 is how much space is left on the page (more or less).
+   \dimen2 = \pageheight   \advance\dimen2 by -\pagetotal
+   % if the group doesn't fit on the current page, and it's a big big
+   % group, force a page break.
+   \ifdim \dimen0 > \dimen2
+     \ifdim \pagetotal < \vfilllimit\pageheight
+       \page
+     \fi
+   \fi
+   \box\groupbox
+   \prevdepth = \dimen1
+   \checkinserts
+ }
+ %
+ % TeX puts in an \escapechar (i.e., `@') at the beginning of the help
+ % message, so this ends up printing `@group can only ...'.
+ %
+ \newhelp\groupinvalidhelp{%
+ group can only be used in environments such as @example,^^J%
+ where each line of input produces a line of output.}
+ 
+ % @need space-in-mils
+ % forces a page break if there is not space-in-mils remaining.
+ 
+ \newdimen\mil  \mil=0.001in
+ 
+ % Old definition--didn't work.
+ %\parseargdef\need{\par %
+ %% This method tries to make TeX break the page naturally
+ %% if the depth of the box does not fit.
+ %{\baselineskip=0pt%
+ %\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak
+ %\prevdepth=-1000pt
+ %}}
+ 
+ \parseargdef\need{%
+   % Ensure vertical mode, so we don't make a big box in the middle of a
+   % paragraph.
+   \par
+   %
+   % If the @need value is less than one line space, it's useless.
+   \dimen0 = #1\mil
+   \dimen2 = \ht\strutbox
+   \advance\dimen2 by \dp\strutbox
+   \ifdim\dimen0 > \dimen2
+     %
+     % Do a \strut just to make the height of this box be normal, so the
+     % normal leading is inserted relative to the preceding line.
+     % And a page break here is fine.
+     \vtop to #1\mil{\strut\vfil}%
+     %
+     % TeX does not even consider page breaks if a penalty added to the
+     % main vertical list is 10000 or more.  But in order to see if the
+     % empty box we just added fits on the page, we must make it consider
+     % page breaks.  On the other hand, we don't want to actually break the
+     % page after the empty box.  So we use a penalty of 9999.
+     %
+     % There is an extremely small chance that TeX will actually break the
+     % page at this \penalty, if there are no other feasible breakpoints in
+     % sight.  (If the user is using lots of big @group commands, which
+     % almost-but-not-quite fill up a page, TeX will have a hard time doing
+     % good page breaking, for example.)  However, I could not construct an
+     % example where a page broke at this \penalty; if it happens in a real
+     % document, then we can reconsider our strategy.
+     \penalty9999
+     %
+     % Back up by the size of the box, whether we did a page break or not.
+     \kern -#1\mil
+     %
+     % Do not allow a page break right after this kern.
+     \nobreak
+   \fi
+ }
+ 
+ % @br   forces paragraph break (and is undocumented).
+ 
+ \let\br = \par
+ 
+ % @page forces the start of a new page.
+ %
+ \def\page{\par\vfill\supereject}
+ 
+ % @exdent text....
+ % outputs text on separate line in roman font, starting at standard page margin
+ 
+ % This records the amount of indent in the innermost environment.
+ % That's how much \exdent should take out.
+ \newskip\exdentamount
+ 
+ % This defn is used inside fill environments such as @defun.
+ \parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
+ 
+ % This defn is used inside nofill environments such as @example.
+ \parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount
+   \leftline{\hskip\leftskip{\rm#1}}}}
+ 
+ % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
+ % paragraph.  For more general purposes, use the \margin insertion
+ % class.  WHICH is `l' or `r'.
+ %
+ \newskip\inmarginspacing \inmarginspacing=1cm
+ \def\strutdepth{\dp\strutbox}
+ %
+ \def\doinmargin#1#2{\strut\vadjust{%
+   \nobreak
+   \kern-\strutdepth
+   \vtop to \strutdepth{%
+     \baselineskip=\strutdepth
+     \vss
+     % if you have multiple lines of stuff to put here, you'll need to
+     % make the vbox yourself of the appropriate size.
+     \ifx#1l%
+       \llap{\ignorespaces #2\hskip\inmarginspacing}%
+     \else
+       \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
+     \fi
+     \null
+   }%
+ }}
+ \def\inleftmargin{\doinmargin l}
+ \def\inrightmargin{\doinmargin r}
+ %
+ % @inmargin{TEXT [, RIGHT-TEXT]}
+ % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
+ % else use TEXT for both).
+ %
+ \def\inmargin#1{\parseinmargin #1,,\finish}
+ \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
+   \setbox0 = \hbox{\ignorespaces #2}%
+   \ifdim\wd0 > 0pt
+     \def\lefttext{#1}%  have both texts
+     \def\righttext{#2}%
+   \else
+     \def\lefttext{#1}%  have only one text
+     \def\righttext{#1}%
+   \fi
+   %
+   \ifodd\pageno
+     \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
+   \else
+     \def\temp{\inleftmargin\lefttext}%
+   \fi
+   \temp
+ }
+ 
+ % @include FILE -- \input text of FILE.
+ %
+ \def\include{\parseargusing\filenamecatcodes\includezzz}
+ \def\includezzz#1{%
+   \pushthisfilestack
+   \def\thisfile{#1}%
+   {%
+     \makevalueexpandable  % we want to expand any @value in FILE.
+     \turnoffactive        % and allow special characters in the expansion
+     \edef\temp{\noexpand\input #1 }%
+     %
+     % This trickery is to read FILE outside of a group, in case it makes
+     % definitions, etc.
+     \expandafter
+   }\temp
+   \popthisfilestack
+ }
+ \def\filenamecatcodes{%
+   \catcode`\\=\other
+   \catcode`~=\other
+   \catcode`^=\other
+   \catcode`_=\other
+   \catcode`|=\other
+   \catcode`<=\other
+   \catcode`>=\other
+   \catcode`+=\other
+   \catcode`-=\other
+ }
+ 
+ \def\pushthisfilestack{%
+   \expandafter\pushthisfilestackX\popthisfilestack\StackTerm
+ }
+ \def\pushthisfilestackX{%
+   \expandafter\pushthisfilestackY\thisfile\StackTerm
+ }
+ \def\pushthisfilestackY #1\StackTerm #2\StackTerm {%
+   \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}%
+ }
+ 
+ \def\popthisfilestack{\errthisfilestackempty}
+ \def\errthisfilestackempty{\errmessage{Internal error:
+   the stack of filenames is empty.}}
+ 
+ \def\thisfile{}
+ 
+ % @center line
+ % outputs that line, centered.
+ %
+ \parseargdef\center{%
+   \ifhmode
+     \let\next\centerH
+   \else
+     \let\next\centerV
+   \fi
+   \next{\hfil \ignorespaces#1\unskip \hfil}%
+ }
+ \def\centerH#1{%
+   {%
+     \hfil\break
+     \advance\hsize by -\leftskip
+     \advance\hsize by -\rightskip
+     \line{#1}%
+     \break
+   }%
+ }
+ \def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
+ 
+ % @sp n   outputs n lines of vertical space
+ 
+ \parseargdef\sp{\vskip #1\baselineskip}
+ 
+ % @comment ...line which is ignored...
+ % @c is the same as @comment
+ % @ignore ... @end ignore  is another way to write a comment
+ 
+ \def\comment{\begingroup \catcode`\^^M=\other%
+ \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
+ \commentxxx}
+ {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
+ 
+ \let\c=\comment
+ 
+ % @paragraphindent NCHARS
+ % We'll use ems for NCHARS, close enough.
+ % NCHARS can also be the word `asis' or `none'.
+ % We cannot feasibly implement @paragraphindent asis, though.
+ %
+ \def\asisword{asis} % no translation, these are keywords
+ \def\noneword{none}
+ %
+ \parseargdef\paragraphindent{%
+   \def\temp{#1}%
+   \ifx\temp\asisword
+   \else
+     \ifx\temp\noneword
+       \defaultparindent = 0pt
+     \else
+       \defaultparindent = #1em
+     \fi
+   \fi
+   \parindent = \defaultparindent
+ }
+ 
+ % @exampleindent NCHARS
+ % We'll use ems for NCHARS like @paragraphindent.
+ % It seems @exampleindent asis isn't necessary, but
+ % I preserve it to make it similar to @paragraphindent.
+ \parseargdef\exampleindent{%
+   \def\temp{#1}%
+   \ifx\temp\asisword
+   \else
+     \ifx\temp\noneword
+       \lispnarrowing = 0pt
+     \else
+       \lispnarrowing = #1em
+     \fi
+   \fi
+ }
+ 
+ % @firstparagraphindent WORD
+ % If WORD is `none', then suppress indentation of the first paragraph
+ % after a section heading.  If WORD is `insert', then do indent at such
+ % paragraphs.
+ %
+ % The paragraph indentation is suppressed or not by calling
+ % \suppressfirstparagraphindent, which the sectioning commands do.
+ % We switch the definition of this back and forth according to WORD.
+ % By default, we suppress indentation.
+ %
+ \def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
+ \def\insertword{insert}
+ %
+ \parseargdef\firstparagraphindent{%
+   \def\temp{#1}%
+   \ifx\temp\noneword
+     \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
+   \else\ifx\temp\insertword
+     \let\suppressfirstparagraphindent = \relax
+   \else
+     \errhelp = \EMsimple
+     \errmessage{Unknown @firstparagraphindent option `\temp'}%
+   \fi\fi
+ }
+ 
+ % Here is how we actually suppress indentation.  Redefine \everypar to
+ % \kern backwards by \parindent, and then reset itself to empty.
+ %
+ % We also make \indent itself not actually do anything until the next
+ % paragraph.
+ %
+ \gdef\dosuppressfirstparagraphindent{%
+   \gdef\indent{%
+     \restorefirstparagraphindent
+     \indent
+   }%
+   \gdef\noindent{%
+     \restorefirstparagraphindent
+     \noindent
+   }%
+   \global\everypar = {%
+     \kern -\parindent
+     \restorefirstparagraphindent
+   }%
+ }
+ 
+ \gdef\restorefirstparagraphindent{%
+   \global \let \indent = \ptexindent
+   \global \let \noindent = \ptexnoindent
+   \global \everypar = {}%
+ }
+ 
+ 
+ % @asis just yields its argument.  Used with @table, for example.
+ %
+ \def\asis#1{#1}
+ 
+ % @math outputs its argument in math mode.
+ %
+ % One complication: _ usually means subscripts, but it could also mean
+ % an actual _ character, as in @math{@var{some_variable} + 1}.  So make
+ % _ active, and distinguish by seeing if the current family is \slfam,
+ % which is what @var uses.
+ {
+   \catcode`\_ = \active
+   \gdef\mathunderscore{%
+     \catcode`\_=\active
+     \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
+   }
+ }
+ % Another complication: we want \\ (and @\) to output a \ character.
+ % FYI, plain.tex uses \\ as a temporary control sequence (why?), but
+ % this is not advertised and we don't care.  Texinfo does not
+ % otherwise define @\.
+ %
+ % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
+ \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
+ %
+ \def\math{%
+   \tex
+   \mathunderscore
+   \let\\ = \mathbackslash
+   \mathactive
+   % make the texinfo accent commands work in math mode
+   \let\"=\ddot
+   \let\'=\acute
+   \let\==\bar
+   \let\^=\hat
+   \let\`=\grave
+   \let\u=\breve
+   \let\v=\check
+   \let\~=\tilde
+   \let\dotaccent=\dot
+   $\finishmath
+ }
+ \def\finishmath#1{#1$\endgroup}  % Close the group opened by \tex.
+ 
+ % Some active characters (such as <) are spaced differently in math.
+ % We have to reset their definitions in case the @math was an argument
+ % to a command which sets the catcodes (such as @item or @section).
+ %
+ {
+   \catcode`^ = \active
+   \catcode`< = \active
+   \catcode`> = \active
+   \catcode`+ = \active
+   \gdef\mathactive{%
+     \let^ = \ptexhat
+     \let< = \ptexless
+     \let> = \ptexgtr
+     \let+ = \ptexplus
+   }
+ }
+ 
+ % Some math mode symbols.
+ \def\bullet{$\ptexbullet$}
+ \def\geq{\ifmmode \ge\else $\ge$\fi}
+ \def\leq{\ifmmode \le\else $\le$\fi}
+ \def\minus{\ifmmode -\else $-$\fi}
+ 
+ % @dots{} outputs an ellipsis using the current font.
+ % We do .5em per period so that it has the same spacing in the cm
+ % typewriter fonts as three actual period characters; on the other hand,
+ % in other typewriter fonts three periods are wider than 1.5em.  So do
+ % whichever is larger.
+ %
+ \def\dots{%
+   \leavevmode
+   \setbox0=\hbox{...}% get width of three periods
+   \ifdim\wd0 > 1.5em
+     \dimen0 = \wd0
+   \else
+     \dimen0 = 1.5em
+   \fi
+   \hbox to \dimen0{%
+     \hskip 0pt plus.25fil
+     .\hskip 0pt plus1fil
+     .\hskip 0pt plus1fil
+     .\hskip 0pt plus.5fil
+   }%
+ }
+ 
+ % @enddots{} is an end-of-sentence ellipsis.
+ %
+ \def\enddots{%
+   \dots
+   \spacefactor=\endofsentencespacefactor
+ }
+ 
+ % @comma{} is so commas can be inserted into text without messing up
+ % Texinfo's parsing.
+ %
+ \let\comma = ,
+ 
+ % @refill is a no-op.
+ \let\refill=\relax
+ 
+ % If working on a large document in chapters, it is convenient to
+ % be able to disable indexing, cross-referencing, and contents, for test runs.
+ % This is done with @novalidate (before @setfilename).
+ %
+ \newif\iflinks \linkstrue % by default we want the aux files.
+ \let\novalidate = \linksfalse
+ 
+ % @setfilename is done at the beginning of every texinfo file.
+ % So open here the files we need to have open while reading the input.
+ % This makes it possible to make a .fmt file for texinfo.
+ \def\setfilename{%
+    \fixbackslash  % Turn off hack to swallow `\input texinfo'.
+    \iflinks
+      \tryauxfile
+      % Open the new aux file.  TeX will close it automatically at exit.
+      \immediate\openout\auxfile=\jobname.aux
+    \fi % \openindices needs to do some work in any case.
+    \openindices
+    \let\setfilename=\comment % Ignore extra @setfilename cmds.
+    %
+    % If texinfo.cnf is present on the system, read it.
+    % Useful for site-wide @afourpaper, etc.
+    \openin 1 texinfo.cnf
+    \ifeof 1 \else \input texinfo.cnf \fi
+    \closein 1
+    %
+    \comment % Ignore the actual filename.
+ }
+ 
+ % Called from \setfilename.
+ %
+ \def\openindices{%
+   \newindex{cp}%
+   \newcodeindex{fn}%
+   \newcodeindex{vr}%
+   \newcodeindex{tp}%
+   \newcodeindex{ky}%
+   \newcodeindex{pg}%
+ }
+ 
+ % @bye.
+ \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
+ 
+ 
+ \message{pdf,}
+ % adobe `portable' document format
+ \newcount\tempnum
+ \newcount\lnkcount
+ \newtoks\filename
+ \newcount\filenamelength
+ \newcount\pgn
+ \newtoks\toksA
+ \newtoks\toksB
+ \newtoks\toksC
+ \newtoks\toksD
+ \newbox\boxA
+ \newcount\countA
+ \newif\ifpdf
+ \newif\ifpdfmakepagedest
+ 
+ % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
+ % can be set).  So we test for \relax and 0 as well as \undefined,
+ % borrowed from ifpdf.sty.
+ \ifx\pdfoutput\undefined
+ \else
+   \ifx\pdfoutput\relax
+   \else
+     \ifcase\pdfoutput
+     \else
+       \pdftrue
+     \fi
+   \fi
+ \fi
+ 
+ % PDF uses PostScript string constants for the names of xref targets,
+ % for display in the outlines, and in other places.  Thus, we have to
+ % double any backslashes.  Otherwise, a name like "\node" will be
+ % interpreted as a newline (\n), followed by o, d, e.  Not good.
+ % http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
+ % (and related messages, the final outcome is that it is up to the TeX
+ % user to double the backslashes and otherwise make the string valid, so
+ % that's what we do).
+ 
+ % double active backslashes.
+ % 
+ {\catcode`\@=0 \catcode`\\=\active
+  @gdef@activebackslashdouble{%
+    @catcode`@\=@active
+    @let\=@doublebackslash}
+ }
+ 
+ % To handle parens, we must adopt a different approach, since parens are
+ % not active characters.  hyperref.dtx (which has the same problem as
+ % us) handles it with this amazing macro to replace tokens, with minor
+ % changes for Texinfo.  It is included here under the GPL by permission
+ % from the author, Heiko Oberdiek.
+ % 
+ % #1 is the tokens to replace.
+ % #2 is the replacement.
+ % #3 is the control sequence with the string.
+ % 
+ \def\HyPsdSubst#1#2#3{%
+   \def\HyPsdReplace##1#1##2\END{%
+     ##1%
+     \ifx\\##2\\%
+     \else
+       #2%
+       \HyReturnAfterFi{%
+         \HyPsdReplace##2\END
+       }%
+     \fi
+   }%
+   \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
+ }
+ \long\def\HyReturnAfterFi#1\fi{\fi#1}
+ 
+ % #1 is a control sequence in which to do the replacements.
+ \def\backslashparens#1{%
+   \xdef#1{#1}% redefine it as its expansion; the definition is simply
+              % \lastnode when called from \setref -> \pdfmkdest.
+   \HyPsdSubst{(}{\realbackslash(}{#1}%
+   \HyPsdSubst{)}{\realbackslash)}{#1}%
+ }
+ 
+ \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
+ with PDF output, and none of those formats could be found.  (.eps cannot
+ be supported due to the design of the PDF format; use regular TeX (DVI
+ output) for that.)}
+ 
+ \ifpdf
+   %
+   % Color manipulation macros based on pdfcolor.tex.
+   \def\cmykDarkRed{0.28 1 1 0.35}
+   \def\cmykBlack{0 0 0 1}
+   %
+   \def\pdfsetcolor#1{\pdfliteral{#1 k}}
+   % Set color, and create a mark which defines \thiscolor accordingly,
+   % so that \makeheadline knows which color to restore.
+   \def\setcolor#1{%
+     \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
+     \domark
+     \pdfsetcolor{#1}%
+   }
+   %
+   \def\maincolor{\cmykBlack}
+   \pdfsetcolor{\maincolor}
+   \edef\thiscolor{\maincolor}
+   \def\lastcolordefs{}
+   %
+   \def\makefootline{%
+     \baselineskip24pt
+     \line{\pdfsetcolor{\maincolor}\the\footline}%
+   }
+   %
+   \def\makeheadline{%
+     \vbox to 0pt{%
+       \vskip-22.5pt
+       \line{%
+         \vbox to8.5pt{}%
+         % Extract \thiscolor definition from the marks.
+         \getcolormarks
+         % Typeset the headline with \maincolor, then restore the color.
+         \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
+       }%
+       \vss
+     }%
+     \nointerlineskip
+   }
+   %
+   %
+   \pdfcatalog{/PageMode /UseOutlines}
+   %
+   % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
+   \def\dopdfimage#1#2#3{%
+     \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+     \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+     %
+     % pdftex (and the PDF format) support .png, .jpg, .pdf (among
+     % others).  Let's try in that order.
+     \let\pdfimgext=\empty
+     \begingroup
+       \openin 1 #1.png \ifeof 1
+         \openin 1 #1.jpg \ifeof 1
+           \openin 1 #1.jpeg \ifeof 1
+             \openin 1 #1.JPG \ifeof 1
+               \openin 1 #1.pdf \ifeof 1
+                 \openin 1 #1.PDF \ifeof 1
+                   \errhelp = \nopdfimagehelp
+                   \errmessage{Could not find image file #1 for pdf}%
+                 \else \gdef\pdfimgext{PDF}%
+                 \fi
+               \else \gdef\pdfimgext{pdf}%
+               \fi
+             \else \gdef\pdfimgext{JPG}%
+             \fi
+           \else \gdef\pdfimgext{jpeg}%
+           \fi
+         \else \gdef\pdfimgext{jpg}%
+         \fi
+       \else \gdef\pdfimgext{png}%
+       \fi
+       \closein 1
+     \endgroup
+     %
+     % without \immediate, ancient pdftex seg faults when the same image is
+     % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
+     \ifnum\pdftexversion < 14
+       \immediate\pdfimage
+     \else
+       \immediate\pdfximage
+     \fi
+       \ifdim \wd0 >0pt width \imagewidth \fi
+       \ifdim \wd2 >0pt height \imageheight \fi
+       \ifnum\pdftexversion<13
+          #1.\pdfimgext
+        \else
+          {#1.\pdfimgext}%
+        \fi
+     \ifnum\pdftexversion < 14 \else
+       \pdfrefximage \pdflastximage
+     \fi}
+   %
+   \def\pdfmkdest#1{{%
+     % We have to set dummies so commands such as @code, and characters
+     % such as \, aren't expanded when present in a section title.
+     \indexnofonts
+     \turnoffactive
+     \activebackslashdouble
+     \makevalueexpandable
+     \def\pdfdestname{#1}%
+     \backslashparens\pdfdestname
+     \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+   }}
+   %
+   % used to mark target names; must be expandable.
+   \def\pdfmkpgn#1{#1}
+   %
+   % by default, use a color that is dark enough to print on paper as
+   % nearly black, but still distinguishable for online viewing.
+   \def\urlcolor{\cmykDarkRed}
+   \def\linkcolor{\cmykDarkRed}
+   \def\endlink{\setcolor{\maincolor}\pdfendlink}
+   %
+   % Adding outlines to PDF; macros for calculating structure of outlines
+   % come from Petr Olsak
+   \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
+     \else \csname#1\endcsname \fi}
+   \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
+     \advance\tempnum by 1
+     \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
+   %
+   % #1 is the section text, which is what will be displayed in the
+   % outline by the pdf viewer.  #2 is the pdf expression for the number
+   % of subentries (or empty, for subsubsections).  #3 is the node text,
+   % which might be empty if this toc entry had no corresponding node.
+   % #4 is the page number
+   %
+   \def\dopdfoutline#1#2#3#4{%
+     % Generate a link to the node text if that exists; else, use the
+     % page number.  We could generate a destination for the section
+     % text in the case where a section has no node, but it doesn't
+     % seem worth the trouble, since most documents are normally structured.
+     \def\pdfoutlinedest{#3}%
+     \ifx\pdfoutlinedest\empty
+       \def\pdfoutlinedest{#4}%
+     \else
+       % Doubled backslashes in the name.
+       {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
+        \backslashparens\pdfoutlinedest}%
+     \fi
+     %
+     % Also double the backslashes in the display string.
+     {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
+      \backslashparens\pdfoutlinetext}%
+     %
+     \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
+   }
+   %
+   \def\pdfmakeoutlines{%
+     \begingroup
+       % Thanh's hack / proper braces in bookmarks
+       \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
+       \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
+       %
+       % Read toc silently, to get counts of subentries for \pdfoutline.
+       \def\numchapentry##1##2##3##4{%
+ 	\def\thischapnum{##2}%
+ 	\def\thissecnum{0}%
+ 	\def\thissubsecnum{0}%
+       }%
+       \def\numsecentry##1##2##3##4{%
+ 	\advancenumber{chap\thischapnum}%
+ 	\def\thissecnum{##2}%
+ 	\def\thissubsecnum{0}%
+       }%
+       \def\numsubsecentry##1##2##3##4{%
+ 	\advancenumber{sec\thissecnum}%
+ 	\def\thissubsecnum{##2}%
+       }%
+       \def\numsubsubsecentry##1##2##3##4{%
+ 	\advancenumber{subsec\thissubsecnum}%
+       }%
+       \def\thischapnum{0}%
+       \def\thissecnum{0}%
+       \def\thissubsecnum{0}%
+       %
+       % use \def rather than \let here because we redefine \chapentry et
+       % al. a second time, below.
+       \def\appentry{\numchapentry}%
+       \def\appsecentry{\numsecentry}%
+       \def\appsubsecentry{\numsubsecentry}%
+       \def\appsubsubsecentry{\numsubsubsecentry}%
+       \def\unnchapentry{\numchapentry}%
+       \def\unnsecentry{\numsecentry}%
+       \def\unnsubsecentry{\numsubsecentry}%
+       \def\unnsubsubsecentry{\numsubsubsecentry}%
+       \readdatafile{toc}%
+       %
+       % Read toc second time, this time actually producing the outlines.
+       % The `-' means take the \expnumber as the absolute number of
+       % subentries, which we calculated on our first read of the .toc above.
+       %
+       % We use the node names as the destinations.
+       \def\numchapentry##1##2##3##4{%
+         \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
+       \def\numsecentry##1##2##3##4{%
+         \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
+       \def\numsubsecentry##1##2##3##4{%
+         \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
+       \def\numsubsubsecentry##1##2##3##4{% count is always zero
+         \dopdfoutline{##1}{}{##3}{##4}}%
+       %
+       % PDF outlines are displayed using system fonts, instead of
+       % document fonts.  Therefore we cannot use special characters,
+       % since the encoding is unknown.  For example, the eogonek from
+       % Latin 2 (0xea) gets translated to a | character.  Info from
+       % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
+       %
+       % xx to do this right, we have to translate 8-bit characters to
+       % their "best" equivalent, based on the @documentencoding.  Right
+       % now, I guess we'll just let the pdf reader have its way.
+       \indexnofonts
+       \setupdatafile
+       \catcode`\\=\active \otherbackslash
+       \input \tocreadfilename
+     \endgroup
+   }
+   %
+   \def\skipspaces#1{\def\PP{#1}\def\D{|}%
+     \ifx\PP\D\let\nextsp\relax
+     \else\let\nextsp\skipspaces
+       \ifx\p\space\else\addtokens{\filename}{\PP}%
+         \advance\filenamelength by 1
+       \fi
+     \fi
+     \nextsp}
+   \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+   \ifnum\pdftexversion < 14
+     \let \startlink \pdfannotlink
+   \else
+     \let \startlink \pdfstartlink
+   \fi
+   % make a live url in pdf output.
+   \def\pdfurl#1{%
+     \begingroup
+       % it seems we really need yet another set of dummies; have not
+       % tried to figure out what each command should do in the context
+       % of @url.  for now, just make @/ a no-op, that's the only one
+       % people have actually reported a problem with.
+       % 
+       \normalturnoffactive
+       \def\@{@}%
+       \let\/=\empty
+       \makevalueexpandable
+       \leavevmode\setcolor{\urlcolor}%
+       \startlink attr{/Border [0 0 0]}%
+         user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
+     \endgroup}
+   \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+   \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+   \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+   \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+   \def\maketoks{%
+     \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+     \ifx\first0\adn0
+     \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+     \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+     \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+     \else
+       \ifnum0=\countA\else\makelink\fi
+       \ifx\first.\let\next=\done\else
+         \let\next=\maketoks
+         \addtokens{\toksB}{\the\toksD}
+         \ifx\first,\addtokens{\toksB}{\space}\fi
+       \fi
+     \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+     \next}
+   \def\makelink{\addtokens{\toksB}%
+     {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+   \def\pdflink#1{%
+     \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
+     \setcolor{\linkcolor}#1\endlink}
+   \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+ \else
+   \let\pdfmkdest = \gobble
+   \let\pdfurl = \gobble
+   \let\endlink = \relax
+   \let\setcolor = \gobble
+   \let\pdfsetcolor = \gobble
+   \let\pdfmakeoutlines = \relax
+ \fi  % \ifx\pdfoutput
+ 
+ 
+ \message{fonts,}
+ 
+ % Change the current font style to #1, remembering it in \curfontstyle.
+ % For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
+ % italics, not bold italics.
+ %
+ \def\setfontstyle#1{%
+   \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
+   \csname ten#1\endcsname  % change the current font
+ }
+ 
+ % Select #1 fonts with the current style.
+ %
+ \def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
+ 
+ \def\rm{\fam=0 \setfontstyle{rm}}
+ \def\it{\fam=\itfam \setfontstyle{it}}
+ \def\sl{\fam=\slfam \setfontstyle{sl}}
+ \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
+ \def\tt{\fam=\ttfam \setfontstyle{tt}}
+ 
+ % Texinfo sort of supports the sans serif font style, which plain TeX does not.
+ % So we set up a \sf.
+ \newfam\sffam
+ \def\sf{\fam=\sffam \setfontstyle{sf}}
+ \let\li = \sf % Sometimes we call it \li, not \sf.
+ 
+ % We don't need math for this font style.
+ \def\ttsl{\setfontstyle{ttsl}}
+ 
+ 
+ % Default leading.
+ \newdimen\textleading  \textleading = 13.2pt
+ 
+ % Set the baselineskip to #1, and the lineskip and strut size
+ % correspondingly.  There is no deep meaning behind these magic numbers
+ % used as factors; they just match (closely enough) what Knuth defined.
+ %
+ \def\lineskipfactor{.08333}
+ \def\strutheightpercent{.70833}
+ \def\strutdepthpercent {.29167}
+ %
+ % can get a sort of poor man's double spacing by redefining this.
+ \def\baselinefactor{1}
+ %
+ \def\setleading#1{%
+   \dimen0 = #1\relax
+   \normalbaselineskip = \baselinefactor\dimen0
+   \normallineskip = \lineskipfactor\normalbaselineskip
+   \normalbaselines
+   \setbox\strutbox =\hbox{%
+     \vrule width0pt height\strutheightpercent\baselineskip
+                     depth \strutdepthpercent \baselineskip
+   }%
+ }
+ 
+ % PDF CMaps.  See also LaTeX's t1.cmap.
+ %
+ % do nothing with this by default.
+ \expandafter\let\csname cmapOT1\endcsname\gobble
+ \expandafter\let\csname cmapOT1IT\endcsname\gobble
+ \expandafter\let\csname cmapOT1TT\endcsname\gobble
+ 
+ % if we are producing pdf, and we have \pdffontattr, then define cmaps.
+ % (\pdffontattr was introduced many years ago, but people still run
+ % older pdftex's; it's easy to conditionalize, so we do.)
+ \ifpdf \ifx\pdffontattr\undefined \else
+   \begingroup
+     \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+     \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+ %%DocumentNeededResources: ProcSet (CIDInit)
+ %%IncludeResource: ProcSet (CIDInit)
+ %%BeginResource: CMap (TeX-OT1-0)
+ %%Title: (TeX-OT1-0 TeX OT1 0)
+ %%Version: 1.000
+ %%EndComments
+ /CIDInit /ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo
+ << /Registry (TeX)
+ /Ordering (OT1)
+ /Supplement 0
+ >> def
+ /CMapName /TeX-OT1-0 def
+ /CMapType 2 def
+ 1 begincodespacerange
+ <00> <7F>
+ endcodespacerange
+ 8 beginbfrange
+ <00> <01> <0393>
+ <09> <0A> <03A8>
+ <23> <26> <0023>
+ <28> <3B> <0028>
+ <3F> <5B> <003F>
+ <5D> <5E> <005D>
+ <61> <7A> <0061>
+ <7B> <7C> <2013>
+ endbfrange
+ 40 beginbfchar
+ <02> <0398>
+ <03> <039B>
+ <04> <039E>
+ <05> <03A0>
+ <06> <03A3>
+ <07> <03D2>
+ <08> <03A6>
+ <0B> <00660066>
+ <0C> <00660069>
+ <0D> <0066006C>
+ <0E> <006600660069>
+ <0F> <00660066006C>
+ <10> <0131>
+ <11> <0237>
+ <12> <0060>
+ <13> <00B4>
+ <14> <02C7>
+ <15> <02D8>
+ <16> <00AF>
+ <17> <02DA>
+ <18> <00B8>
+ <19> <00DF>
+ <1A> <00E6>
+ <1B> <0153>
+ <1C> <00F8>
+ <1D> <00C6>
+ <1E> <0152>
+ <1F> <00D8>
+ <21> <0021>
+ <22> <201D>
+ <27> <2019>
+ <3C> <00A1>
+ <3D> <003D>
+ <3E> <00BF>
+ <5C> <201C>
+ <5F> <02D9>
+ <60> <2018>
+ <7D> <02DD>
+ <7E> <007E>
+ <7F> <00A8>
+ endbfchar
+ endcmap
+ CMapName currentdict /CMap defineresource pop
+ end
+ end
+ %%EndResource
+ %%EOF
+     }\endgroup
+   \expandafter\edef\csname cmapOT1\endcsname#1{%
+     \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+   }%
+ %
+ % \cmapOT1IT
+   \begingroup
+     \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+     \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+ %%DocumentNeededResources: ProcSet (CIDInit)
+ %%IncludeResource: ProcSet (CIDInit)
+ %%BeginResource: CMap (TeX-OT1IT-0)
+ %%Title: (TeX-OT1IT-0 TeX OT1IT 0)
+ %%Version: 1.000
+ %%EndComments
+ /CIDInit /ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo
+ << /Registry (TeX)
+ /Ordering (OT1IT)
+ /Supplement 0
+ >> def
+ /CMapName /TeX-OT1IT-0 def
+ /CMapType 2 def
+ 1 begincodespacerange
+ <00> <7F>
+ endcodespacerange
+ 8 beginbfrange
+ <00> <01> <0393>
+ <09> <0A> <03A8>
+ <25> <26> <0025>
+ <28> <3B> <0028>
+ <3F> <5B> <003F>
+ <5D> <5E> <005D>
+ <61> <7A> <0061>
+ <7B> <7C> <2013>
+ endbfrange
+ 42 beginbfchar
+ <02> <0398>
+ <03> <039B>
+ <04> <039E>
+ <05> <03A0>
+ <06> <03A3>
+ <07> <03D2>
+ <08> <03A6>
+ <0B> <00660066>
+ <0C> <00660069>
+ <0D> <0066006C>
+ <0E> <006600660069>
+ <0F> <00660066006C>
+ <10> <0131>
+ <11> <0237>
+ <12> <0060>
+ <13> <00B4>
+ <14> <02C7>
+ <15> <02D8>
+ <16> <00AF>
+ <17> <02DA>
+ <18> <00B8>
+ <19> <00DF>
+ <1A> <00E6>
+ <1B> <0153>
+ <1C> <00F8>
+ <1D> <00C6>
+ <1E> <0152>
+ <1F> <00D8>
+ <21> <0021>
+ <22> <201D>
+ <23> <0023>
+ <24> <00A3>
+ <27> <2019>
+ <3C> <00A1>
+ <3D> <003D>
+ <3E> <00BF>
+ <5C> <201C>
+ <5F> <02D9>
+ <60> <2018>
+ <7D> <02DD>
+ <7E> <007E>
+ <7F> <00A8>
+ endbfchar
+ endcmap
+ CMapName currentdict /CMap defineresource pop
+ end
+ end
+ %%EndResource
+ %%EOF
+     }\endgroup
+   \expandafter\edef\csname cmapOT1IT\endcsname#1{%
+     \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+   }%
+ %
+ % \cmapOT1TT
+   \begingroup
+     \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+     \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+ %%DocumentNeededResources: ProcSet (CIDInit)
+ %%IncludeResource: ProcSet (CIDInit)
+ %%BeginResource: CMap (TeX-OT1TT-0)
+ %%Title: (TeX-OT1TT-0 TeX OT1TT 0)
+ %%Version: 1.000
+ %%EndComments
+ /CIDInit /ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo
+ << /Registry (TeX)
+ /Ordering (OT1TT)
+ /Supplement 0
+ >> def
+ /CMapName /TeX-OT1TT-0 def
+ /CMapType 2 def
+ 1 begincodespacerange
+ <00> <7F>
+ endcodespacerange
+ 5 beginbfrange
+ <00> <01> <0393>
+ <09> <0A> <03A8>
+ <21> <26> <0021>
+ <28> <5F> <0028>
+ <61> <7E> <0061>
+ endbfrange
+ 32 beginbfchar
+ <02> <0398>
+ <03> <039B>
+ <04> <039E>
+ <05> <03A0>
+ <06> <03A3>
+ <07> <03D2>
+ <08> <03A6>
+ <0B> <2191>
+ <0C> <2193>
+ <0D> <0027>
+ <0E> <00A1>
+ <0F> <00BF>
+ <10> <0131>
+ <11> <0237>
+ <12> <0060>
+ <13> <00B4>
+ <14> <02C7>
+ <15> <02D8>
+ <16> <00AF>
+ <17> <02DA>
+ <18> <00B8>
+ <19> <00DF>
+ <1A> <00E6>
+ <1B> <0153>
+ <1C> <00F8>
+ <1D> <00C6>
+ <1E> <0152>
+ <1F> <00D8>
+ <20> <2423>
+ <27> <2019>
+ <60> <2018>
+ <7F> <00A8>
+ endbfchar
+ endcmap
+ CMapName currentdict /CMap defineresource pop
+ end
+ end
+ %%EndResource
+ %%EOF
+     }\endgroup
+   \expandafter\edef\csname cmapOT1TT\endcsname#1{%
+     \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+   }%
+ \fi\fi
+ 
+ 
+ % Set the font macro #1 to the font named #2, adding on the
+ % specified font prefix (normally `cm').
+ % #3 is the font's design size, #4 is a scale factor, #5 is the CMap
+ % encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
+ % empty to omit).
+ \def\setfont#1#2#3#4#5{%
+   \font#1=\fontprefix#2#3 scaled #4
+   \csname cmap#5\endcsname#1%
+ }
+ % This is what gets called when #5 of \setfont is empty.
+ \let\cmap\gobble
+ % emacs-page end of cmaps
+ 
+ % Use cm as the default font prefix.
+ % To specify the font prefix, you must define \fontprefix
+ % before you read in texinfo.tex.
+ \ifx\fontprefix\undefined
+ \def\fontprefix{cm}
+ \fi
+ % Support font families that don't use the same naming scheme as CM.
+ \def\rmshape{r}
+ \def\rmbshape{bx}               %where the normal face is bold
+ \def\bfshape{b}
+ \def\bxshape{bx}
+ \def\ttshape{tt}
+ \def\ttbshape{tt}
+ \def\ttslshape{sltt}
+ \def\itshape{ti}
+ \def\itbshape{bxti}
+ \def\slshape{sl}
+ \def\slbshape{bxsl}
+ \def\sfshape{ss}
+ \def\sfbshape{ss}
+ \def\scshape{csc}
+ \def\scbshape{csc}
+ 
+ % Definitions for a main text size of 11pt.  This is the default in
+ % Texinfo.
+ % 
+ \def\definetextfontsizexi{%
+ % Text fonts (11.2pt, magstep1).
+ \def\textnominalsize{11pt}
+ \edef\mainmagstep{\magstephalf}
+ \setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+ \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+ \setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+ \setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+ \setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+ \setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+ \setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+ \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
+ \font\texti=cmmi10 scaled \mainmagstep
+ \font\textsy=cmsy10 scaled \mainmagstep
+ \def\textecsize{1095}
+ 
+ % A few fonts for @defun names and args.
+ \setfont\defbf\bfshape{10}{\magstep1}{OT1}
+ \setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
+ \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
+ \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+ 
+ % Fonts for indices, footnotes, small examples (9pt).
+ \def\smallnominalsize{9pt}
+ \setfont\smallrm\rmshape{9}{1000}{OT1}
+ \setfont\smalltt\ttshape{9}{1000}{OT1TT}
+ \setfont\smallbf\bfshape{10}{900}{OT1}
+ \setfont\smallit\itshape{9}{1000}{OT1IT}
+ \setfont\smallsl\slshape{9}{1000}{OT1}
+ \setfont\smallsf\sfshape{9}{1000}{OT1}
+ \setfont\smallsc\scshape{10}{900}{OT1}
+ \setfont\smallttsl\ttslshape{10}{900}{OT1TT}
+ \font\smalli=cmmi9
+ \font\smallsy=cmsy9
+ \def\smallecsize{0900}
+ 
+ % Fonts for small examples (8pt).
+ \def\smallernominalsize{8pt}
+ \setfont\smallerrm\rmshape{8}{1000}{OT1}
+ \setfont\smallertt\ttshape{8}{1000}{OT1TT}
+ \setfont\smallerbf\bfshape{10}{800}{OT1}
+ \setfont\smallerit\itshape{8}{1000}{OT1IT}
+ \setfont\smallersl\slshape{8}{1000}{OT1}
+ \setfont\smallersf\sfshape{8}{1000}{OT1}
+ \setfont\smallersc\scshape{10}{800}{OT1}
+ \setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
+ \font\smalleri=cmmi8
+ \font\smallersy=cmsy8
+ \def\smallerecsize{0800}
+ 
+ % Fonts for title page (20.4pt):
+ \def\titlenominalsize{20pt}
+ \setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+ \setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+ \setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+ \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+ \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+ \setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
+ \let\titlebf=\titlerm
+ \setfont\titlesc\scbshape{10}{\magstep4}{OT1}
+ \font\titlei=cmmi12 scaled \magstep3
+ \font\titlesy=cmsy10 scaled \magstep4
+ \def\authorrm{\secrm}
+ \def\authortt{\sectt}
+ \def\titleecsize{2074}
+ 
+ % Chapter (and unnumbered) fonts (17.28pt).
+ \def\chapnominalsize{17pt}
+ \setfont\chaprm\rmbshape{12}{\magstep2}{OT1}
+ \setfont\chapit\itbshape{10}{\magstep3}{OT1IT}
+ \setfont\chapsl\slbshape{10}{\magstep3}{OT1}
+ \setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT}
+ \setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT}
+ \setfont\chapsf\sfbshape{17}{1000}{OT1}
+ \let\chapbf=\chaprm
+ \setfont\chapsc\scbshape{10}{\magstep3}{OT1}
+ \font\chapi=cmmi12 scaled \magstep2
+ \font\chapsy=cmsy10 scaled \magstep3
+ \def\chapecsize{1728}
+ 
+ % Section fonts (14.4pt).
+ \def\secnominalsize{14pt}
+ \setfont\secrm\rmbshape{12}{\magstep1}{OT1}
+ \setfont\secit\itbshape{10}{\magstep2}{OT1IT}
+ \setfont\secsl\slbshape{10}{\magstep2}{OT1}
+ \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
+ \setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT}
+ \setfont\secsf\sfbshape{12}{\magstep1}{OT1}
+ \let\secbf\secrm
+ \setfont\secsc\scbshape{10}{\magstep2}{OT1}
+ \font\seci=cmmi12 scaled \magstep1
+ \font\secsy=cmsy10 scaled \magstep2
+ \def\sececsize{1440}
+ 
+ % Subsection fonts (13.15pt).
+ \def\ssecnominalsize{13pt}
+ \setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1}
+ \setfont\ssecit\itbshape{10}{1315}{OT1IT}
+ \setfont\ssecsl\slbshape{10}{1315}{OT1}
+ \setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT}
+ \setfont\ssecttsl\ttslshape{10}{1315}{OT1TT}
+ \setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1}
+ \let\ssecbf\ssecrm
+ \setfont\ssecsc\scbshape{10}{1315}{OT1}
+ \font\sseci=cmmi12 scaled \magstephalf
+ \font\ssecsy=cmsy10 scaled 1315
+ \def\ssececsize{1200}
+ 
+ % Reduced fonts for @acro in text (10pt).
+ \def\reducednominalsize{10pt}
+ \setfont\reducedrm\rmshape{10}{1000}{OT1}
+ \setfont\reducedtt\ttshape{10}{1000}{OT1TT}
+ \setfont\reducedbf\bfshape{10}{1000}{OT1}
+ \setfont\reducedit\itshape{10}{1000}{OT1IT}
+ \setfont\reducedsl\slshape{10}{1000}{OT1}
+ \setfont\reducedsf\sfshape{10}{1000}{OT1}
+ \setfont\reducedsc\scshape{10}{1000}{OT1}
+ \setfont\reducedttsl\ttslshape{10}{1000}{OT1TT}
+ \font\reducedi=cmmi10
+ \font\reducedsy=cmsy10
+ \def\reducedecsize{1000}
+ 
+ % reset the current fonts
+ \textfonts
+ \rm
+ } % end of 11pt text font size definitions
+ 
+ 
+ % Definitions to make the main text be 10pt Computer Modern, with
+ % section, chapter, etc., sizes following suit.  This is for the GNU
+ % Press printing of the Emacs 22 manual.  Maybe other manuals in the
+ % future.  Used with @smallbook, which sets the leading to 12pt.
+ % 
+ \def\definetextfontsizex{%
+ % Text fonts (10pt).
+ \def\textnominalsize{10pt}
+ \edef\mainmagstep{1000}
+ \setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+ \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+ \setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+ \setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+ \setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+ \setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+ \setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+ \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
+ \font\texti=cmmi10 scaled \mainmagstep
+ \font\textsy=cmsy10 scaled \mainmagstep
+ \def\textecsize{1000}
+ 
+ % A few fonts for @defun names and args.
+ \setfont\defbf\bfshape{10}{\magstephalf}{OT1}
+ \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
+ \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
+ \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+ 
+ % Fonts for indices, footnotes, small examples (9pt).
+ \def\smallnominalsize{9pt}
+ \setfont\smallrm\rmshape{9}{1000}{OT1}
+ \setfont\smalltt\ttshape{9}{1000}{OT1TT}
+ \setfont\smallbf\bfshape{10}{900}{OT1}
+ \setfont\smallit\itshape{9}{1000}{OT1IT}
+ \setfont\smallsl\slshape{9}{1000}{OT1}
+ \setfont\smallsf\sfshape{9}{1000}{OT1}
+ \setfont\smallsc\scshape{10}{900}{OT1}
+ \setfont\smallttsl\ttslshape{10}{900}{OT1TT}
+ \font\smalli=cmmi9
+ \font\smallsy=cmsy9
+ \def\smallecsize{0900}
+ 
+ % Fonts for small examples (8pt).
+ \def\smallernominalsize{8pt}
+ \setfont\smallerrm\rmshape{8}{1000}{OT1}
+ \setfont\smallertt\ttshape{8}{1000}{OT1TT}
+ \setfont\smallerbf\bfshape{10}{800}{OT1}
+ \setfont\smallerit\itshape{8}{1000}{OT1IT}
+ \setfont\smallersl\slshape{8}{1000}{OT1}
+ \setfont\smallersf\sfshape{8}{1000}{OT1}
+ \setfont\smallersc\scshape{10}{800}{OT1}
+ \setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
+ \font\smalleri=cmmi8
+ \font\smallersy=cmsy8
+ \def\smallerecsize{0800}
+ 
+ % Fonts for title page (20.4pt):
+ \def\titlenominalsize{20pt}
+ \setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+ \setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+ \setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+ \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+ \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+ \setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
+ \let\titlebf=\titlerm
+ \setfont\titlesc\scbshape{10}{\magstep4}{OT1}
+ \font\titlei=cmmi12 scaled \magstep3
+ \font\titlesy=cmsy10 scaled \magstep4
+ \def\authorrm{\secrm}
+ \def\authortt{\sectt}
+ \def\titleecsize{2074}
+ 
+ % Chapter fonts (14.4pt).
+ \def\chapnominalsize{14pt}
+ \setfont\chaprm\rmbshape{12}{\magstep1}{OT1}
+ \setfont\chapit\itbshape{10}{\magstep2}{OT1IT}
+ \setfont\chapsl\slbshape{10}{\magstep2}{OT1}
+ \setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT}
+ \setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT}
+ \setfont\chapsf\sfbshape{12}{\magstep1}{OT1}
+ \let\chapbf\chaprm
+ \setfont\chapsc\scbshape{10}{\magstep2}{OT1}
+ \font\chapi=cmmi12 scaled \magstep1
+ \font\chapsy=cmsy10 scaled \magstep2
+ \def\chapecsize{1440}
+ 
+ % Section fonts (12pt).
+ \def\secnominalsize{12pt}
+ \setfont\secrm\rmbshape{12}{1000}{OT1}
+ \setfont\secit\itbshape{10}{\magstep1}{OT1IT}
+ \setfont\secsl\slbshape{10}{\magstep1}{OT1}
+ \setfont\sectt\ttbshape{12}{1000}{OT1TT}
+ \setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT}
+ \setfont\secsf\sfbshape{12}{1000}{OT1}
+ \let\secbf\secrm
+ \setfont\secsc\scbshape{10}{\magstep1}{OT1}
+ \font\seci=cmmi12 
+ \font\secsy=cmsy10 scaled \magstep1
+ \def\sececsize{1200}
+ 
+ % Subsection fonts (10pt).
+ \def\ssecnominalsize{10pt}
+ \setfont\ssecrm\rmbshape{10}{1000}{OT1}
+ \setfont\ssecit\itbshape{10}{1000}{OT1IT}
+ \setfont\ssecsl\slbshape{10}{1000}{OT1}
+ \setfont\ssectt\ttbshape{10}{1000}{OT1TT}
+ \setfont\ssecttsl\ttslshape{10}{1000}{OT1TT}
+ \setfont\ssecsf\sfbshape{10}{1000}{OT1}
+ \let\ssecbf\ssecrm
+ \setfont\ssecsc\scbshape{10}{1000}{OT1}
+ \font\sseci=cmmi10
+ \font\ssecsy=cmsy10
+ \def\ssececsize{1000}
+ 
+ % Reduced fonts for @acro in text (9pt).
+ \def\reducednominalsize{9pt}
+ \setfont\reducedrm\rmshape{9}{1000}{OT1}
+ \setfont\reducedtt\ttshape{9}{1000}{OT1TT}
+ \setfont\reducedbf\bfshape{10}{900}{OT1}
+ \setfont\reducedit\itshape{9}{1000}{OT1IT}
+ \setfont\reducedsl\slshape{9}{1000}{OT1}
+ \setfont\reducedsf\sfshape{9}{1000}{OT1}
+ \setfont\reducedsc\scshape{10}{900}{OT1}
+ \setfont\reducedttsl\ttslshape{10}{900}{OT1TT}
+ \font\reducedi=cmmi9
+ \font\reducedsy=cmsy9
+ \def\reducedecsize{0900}
+ 
+ % reduce space between paragraphs
+ \divide\parskip by 2
+ 
+ % reset the current fonts
+ \textfonts
+ \rm
+ } % end of 10pt text font size definitions
+ 
+ 
+ % We provide the user-level command
+ %   @fonttextsize 10
+ % (or 11) to redefine the text font size.  pt is assumed.
+ % 
+ \def\xword{10}
+ \def\xiword{11}
+ %
+ \parseargdef\fonttextsize{%
+   \def\textsizearg{#1}%
+   \wlog{doing @fonttextsize \textsizearg}%
+   %
+   % Set \globaldefs so that documents can use this inside @tex, since
+   % makeinfo 4.8 does not support it, but we need it nonetheless.
+   % 
+  \begingroup \globaldefs=1
+   \ifx\textsizearg\xword \definetextfontsizex
+   \else \ifx\textsizearg\xiword \definetextfontsizexi
+   \else
+     \errhelp=\EMsimple
+     \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'}
+   \fi\fi
+  \endgroup
+ }
+ 
+ 
+ % In order for the font changes to affect most math symbols and letters,
+ % we have to define the \textfont of the standard families.  Since
+ % texinfo doesn't allow for producing subscripts and superscripts except
+ % in the main text, we don't bother to reset \scriptfont and
+ % \scriptscriptfont (which would also require loading a lot more fonts).
+ %
+ \def\resetmathfonts{%
+   \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
+   \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
+   \textfont\ttfam=\tentt \textfont\sffam=\tensf
+ }
+ 
+ % The font-changing commands redefine the meanings of \tenSTYLE, instead
+ % of just \STYLE.  We do this because \STYLE needs to also set the
+ % current \fam for math mode.  Our \STYLE (e.g., \rm) commands hardwire
+ % \tenSTYLE to set the current font.
+ %
+ % Each font-changing command also sets the names \lsize (one size lower)
+ % and \lllsize (three sizes lower).  These relative commands are used in
+ % the LaTeX logo and acronyms.
+ %
+ % This all needs generalizing, badly.
+ %
+ \def\textfonts{%
+   \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
+   \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
+   \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
+   \let\tenttsl=\textttsl
+   \def\curfontsize{text}%
+   \def\lsize{reduced}\def\lllsize{smaller}%
+   \resetmathfonts \setleading{\textleading}}
+ \def\titlefonts{%
+   \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
+   \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
+   \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
+   \let\tenttsl=\titlettsl
+   \def\curfontsize{title}%
+   \def\lsize{chap}\def\lllsize{subsec}%
+   \resetmathfonts \setleading{25pt}}
+ \def\titlefont#1{{\titlefonts\rm #1}}
+ \def\chapfonts{%
+   \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
+   \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
+   \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
+   \let\tenttsl=\chapttsl
+   \def\curfontsize{chap}%
+   \def\lsize{sec}\def\lllsize{text}%
+   \resetmathfonts \setleading{19pt}}
+ \def\secfonts{%
+   \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
+   \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
+   \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
+   \let\tenttsl=\secttsl
+   \def\curfontsize{sec}%
+   \def\lsize{subsec}\def\lllsize{reduced}%
+   \resetmathfonts \setleading{16pt}}
+ \def\subsecfonts{%
+   \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
+   \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
+   \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
+   \let\tenttsl=\ssecttsl
+   \def\curfontsize{ssec}%
+   \def\lsize{text}\def\lllsize{small}%
+   \resetmathfonts \setleading{15pt}}
+ \let\subsubsecfonts = \subsecfonts
+ \def\reducedfonts{%
+   \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl
+   \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc
+   \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
+   \let\tenttsl=\reducedttsl
+   \def\curfontsize{reduced}%
+   \def\lsize{small}\def\lllsize{smaller}%
+   \resetmathfonts \setleading{10.5pt}}
+ \def\smallfonts{%
+   \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
+   \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
+   \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
+   \let\tenttsl=\smallttsl
+   \def\curfontsize{small}%
+   \def\lsize{smaller}\def\lllsize{smaller}%
+   \resetmathfonts \setleading{10.5pt}}
+ \def\smallerfonts{%
+   \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
+   \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
+   \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
+   \let\tenttsl=\smallerttsl
+   \def\curfontsize{smaller}%
+   \def\lsize{smaller}\def\lllsize{smaller}%
+   \resetmathfonts \setleading{9.5pt}}
+ 
+ % Set the fonts to use with the @small... environments.
+ \let\smallexamplefonts = \smallfonts
+ 
+ % About \smallexamplefonts.  If we use \smallfonts (9pt), @smallexample
+ % can fit this many characters:
+ %   8.5x11=86   smallbook=72  a4=90  a5=69
+ % If we use \scriptfonts (8pt), then we can fit this many characters:
+ %   8.5x11=90+  smallbook=80  a4=90+  a5=77
+ % For me, subjectively, the few extra characters that fit aren't worth
+ % the additional smallness of 8pt.  So I'm making the default 9pt.
+ %
+ % By the way, for comparison, here's what fits with @example (10pt):
+ %   8.5x11=71  smallbook=60  a4=75  a5=58
+ %
+ % I wish the USA used A4 paper.
+ % --karl, 24jan03.
+ 
+ 
+ % Set up the default fonts, so we can use them for creating boxes.
+ %
+ \definetextfontsizexi
+ 
+ % Define these so they can be easily changed for other fonts.
+ \def\angleleft{$\langle$}
+ \def\angleright{$\rangle$}
+ 
+ % Count depth in font-changes, for error checks
+ \newcount\fontdepth \fontdepth=0
+ 
+ % Fonts for short table of contents.
+ \setfont\shortcontrm\rmshape{12}{1000}{OT1}
+ \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1}  % no cmb12
+ \setfont\shortcontsl\slshape{12}{1000}{OT1}
+ \setfont\shortconttt\ttshape{12}{1000}{OT1TT}
+ 
+ %% Add scribe-like font environments, plus @l for inline lisp (usually sans
+ %% serif) and @ii for TeX italic
+ 
+ % \smartitalic{ARG} outputs arg in italics, followed by an italic correction
+ % unless the following character is such as not to need one.
+ \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else
+                     \ptexslash\fi\fi\fi}
+ \def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
+ \def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
+ 
+ % like \smartslanted except unconditionally uses \ttsl.
+ % @var is set to this for defun arguments.
+ \def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
+ 
+ % like \smartslanted except unconditionally use \sl.  We never want
+ % ttsl for book titles, do we?
+ \def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
+ 
+ \let\i=\smartitalic
+ \let\slanted=\smartslanted
+ \let\var=\smartslanted
+ \let\dfn=\smartslanted
+ \let\emph=\smartitalic
+ 
+ % @b, explicit bold.
+ \def\b#1{{\bf #1}}
+ \let\strong=\b
+ 
+ % @sansserif, explicit sans.
+ \def\sansserif#1{{\sf #1}}
+ 
+ % We can't just use \exhyphenpenalty, because that only has effect at
+ % the end of a paragraph.  Restore normal hyphenation at the end of the
+ % group within which \nohyphenation is presumably called.
+ %
+ \def\nohyphenation{\hyphenchar\font = -1  \aftergroup\restorehyphenation}
+ \def\restorehyphenation{\hyphenchar\font = `- }
+ 
+ % Set sfcode to normal for the chars that usually have another value.
+ % Can't use plain's \frenchspacing because it uses the `\x notation, and
+ % sometimes \x has an active definition that messes things up.
+ %
+ \catcode`@=11
+   \def\plainfrenchspacing{%
+     \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
+     \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+     \def\endofsentencespacefactor{1000}% for @. and friends
+   }
+   \def\plainnonfrenchspacing{%
+     \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
+     \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
+     \def\endofsentencespacefactor{3000}% for @. and friends
+   }
+ \catcode`@=\other
+ \def\endofsentencespacefactor{3000}% default
+ 
+ \def\t#1{%
+   {\tt \rawbackslash \plainfrenchspacing #1}%
+   \null
+ }
+ \def\samp#1{`\tclose{#1}'\null}
+ \setfont\keyrm\rmshape{8}{1000}{OT1}
+ \font\keysy=cmsy9
+ \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+   \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+     \vbox{\hrule\kern-0.4pt
+      \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+     \kern-0.4pt\hrule}%
+   \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+ \def\key #1{{\nohyphenation \uppercase{#1}}\null}
+ % The old definition, with no lozenge:
+ %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
+ \def\ctrl #1{{\tt \rawbackslash \hat}#1}
+ 
+ % @file, @option are the same as @samp.
+ \let\file=\samp
+ \let\option=\samp
+ 
+ % @code is a modification of @t,
+ % which makes spaces the same size as normal in the surrounding text.
+ \def\tclose#1{%
+   {%
+     % Change normal interword space to be same as for the current font.
+     \spaceskip = \fontdimen2\font
+     %
+     % Switch to typewriter.
+     \tt
+     %
+     % But `\ ' produces the large typewriter interword space.
+     \def\ {{\spaceskip = 0pt{} }}%
+     %
+     % Turn off hyphenation.
+     \nohyphenation
+     %
+     \rawbackslash
+     \plainfrenchspacing
+     #1%
+   }%
+   \null
+ }
+ 
+ % We *must* turn on hyphenation at `-' and `_' in @code.
+ % Otherwise, it is too hard to avoid overfull hboxes
+ % in the Emacs manual, the Library manual, etc.
+ 
+ % Unfortunately, TeX uses one parameter (\hyphenchar) to control
+ % both hyphenation at - and hyphenation within words.
+ % We must therefore turn them both off (\tclose does that)
+ % and arrange explicitly to hyphenate at a dash.
+ %  -- rms.
+ {
+   \catcode`\-=\active \catcode`\_=\active
+   \catcode`\'=\active \catcode`\`=\active
+   %
+   \global\def\code{\begingroup
+     \catcode\rquoteChar=\active \catcode\lquoteChar=\active
+     \let'\codequoteright \let`\codequoteleft
+     %
+     \catcode\dashChar=\active  \catcode\underChar=\active
+     \ifallowcodebreaks
+      \let-\codedash
+      \let_\codeunder
+     \else
+      \let-\realdash
+      \let_\realunder
+     \fi
+     \codex
+   }
+ }
+ 
+ \def\realdash{-}
+ \def\codedash{-\discretionary{}{}{}}
+ \def\codeunder{%
+   % this is all so @math{@code{var_name}+1} can work.  In math mode, _
+   % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
+   % will therefore expand the active definition of _, which is us
+   % (inside @code that is), therefore an endless loop.
+   \ifusingtt{\ifmmode
+                \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
+              \else\normalunderscore \fi
+              \discretionary{}{}{}}%
+             {\_}%
+ }
+ \def\codex #1{\tclose{#1}\endgroup}
+ 
+ % An additional complication: the above will allow breaks after, e.g.,
+ % each of the four underscores in __typeof__.  This is undesirable in
+ % some manuals, especially if they don't have long identifiers in
+ % general.  @allowcodebreaks provides a way to control this.
+ % 
+ \newif\ifallowcodebreaks  \allowcodebreakstrue
+ 
+ \def\keywordtrue{true}
+ \def\keywordfalse{false}
+ 
+ \parseargdef\allowcodebreaks{%
+   \def\txiarg{#1}%
+   \ifx\txiarg\keywordtrue
+     \allowcodebreakstrue
+   \else\ifx\txiarg\keywordfalse
+     \allowcodebreaksfalse
+   \else
+     \errhelp = \EMsimple
+     \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
+   \fi\fi
+ }
+ 
+ % @kbd is like @code, except that if the argument is just one @key command,
+ % then @kbd has no effect.
+ 
+ % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
+ %   `example' (@kbd uses ttsl only inside of @example and friends),
+ %   or `code' (@kbd uses normal tty font always).
+ \parseargdef\kbdinputstyle{%
+   \def\txiarg{#1}%
+   \ifx\txiarg\worddistinct
+     \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
+   \else\ifx\txiarg\wordexample
+     \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
+   \else\ifx\txiarg\wordcode
+     \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+   \else
+     \errhelp = \EMsimple
+     \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
+   \fi\fi\fi
+ }
+ \def\worddistinct{distinct}
+ \def\wordexample{example}
+ \def\wordcode{code}
+ 
+ % Default is `distinct.'
+ \kbdinputstyle distinct
+ 
+ \def\xkey{\key}
+ \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
+ \ifx\one\xkey\ifx\threex\three \key{#2}%
+ \else{\tclose{\kbdfont\look}}\fi
+ \else{\tclose{\kbdfont\look}}\fi}
+ 
+ % For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
+ \let\indicateurl=\code
+ \let\env=\code
+ \let\command=\code
+ 
+ % @clicksequence{File @click{} Open ...}
+ \def\clicksequence#1{\begingroup #1\endgroup}
+ 
+ % @clickstyle @arrow   (by default)
+ \parseargdef\clickstyle{\def\click{#1}}
+ \def\click{\arrow}
+ 
+ % @uref (abbreviation for `urlref') takes an optional (comma-separated)
+ % second argument specifying the text to display and an optional third
+ % arg as text to display instead of (rather than in addition to) the url
+ % itself.  First (mandatory) arg is the url.  Perhaps eventually put in
+ % a hypertex \special here.
+ %
+ \def\uref#1{\douref #1,,,\finish}
+ \def\douref#1,#2,#3,#4\finish{\begingroup
+   \unsepspaces
+   \pdfurl{#1}%
+   \setbox0 = \hbox{\ignorespaces #3}%
+   \ifdim\wd0 > 0pt
+     \unhbox0 % third arg given, show only that
+   \else
+     \setbox0 = \hbox{\ignorespaces #2}%
+     \ifdim\wd0 > 0pt
+       \ifpdf
+         \unhbox0             % PDF: 2nd arg given, show only it
+       \else
+         \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
+       \fi
+     \else
+       \code{#1}% only url given, so show it
+     \fi
+   \fi
+   \endlink
+ \endgroup}
+ 
+ % @url synonym for @uref, since that's how everyone uses it.
+ %
+ \let\url=\uref
+ 
+ % rms does not like angle brackets --karl, 17may97.
+ % So now @email is just like @uref, unless we are pdf.
+ %
+ %\def\email#1{\angleleft{\tt #1}\angleright}
+ \ifpdf
+   \def\email#1{\doemail#1,,\finish}
+   \def\doemail#1,#2,#3\finish{\begingroup
+     \unsepspaces
+     \pdfurl{mailto:#1}%
+     \setbox0 = \hbox{\ignorespaces #2}%
+     \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
+     \endlink
+   \endgroup}
+ \else
+   \let\email=\uref
+ \fi
+ 
+ % Check if we are currently using a typewriter font.  Since all the
+ % Computer Modern typewriter fonts have zero interword stretch (and
+ % shrink), and it is reasonable to expect all typewriter fonts to have
+ % this property, we can check that font parameter.
+ %
+ \def\ifmonospace{\ifdim\fontdimen3\font=0pt }
+ 
+ % Typeset a dimension, e.g., `in' or `pt'.  The only reason for the
+ % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
+ %
+ \def\dmn#1{\thinspace #1}
+ 
+ \def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
+ 
+ % @l was never documented to mean ``switch to the Lisp font'',
+ % and it is not used as such in any manual I can find.  We need it for
+ % Polish suppressed-l.  --karl, 22sep96.
+ %\def\l#1{{\li #1}\null}
+ 
+ % Explicit font changes: @r, @sc, undocumented @ii.
+ \def\r#1{{\rm #1}}              % roman font
+ \def\sc#1{{\smallcaps#1}}       % smallcaps font
+ \def\ii#1{{\it #1}}             % italic font
+ 
+ % @acronym for "FBI", "NATO", and the like.
+ % We print this one point size smaller, since it's intended for
+ % all-uppercase.
+ % 
+ \def\acronym#1{\doacronym #1,,\finish}
+ \def\doacronym#1,#2,#3\finish{%
+   {\selectfonts\lsize #1}%
+   \def\temp{#2}%
+   \ifx\temp\empty \else
+     \space ({\unsepspaces \ignorespaces \temp \unskip})%
+   \fi
+ }
+ 
+ % @abbr for "Comput. J." and the like.
+ % No font change, but don't do end-of-sentence spacing.
+ % 
+ \def\abbr#1{\doabbr #1,,\finish}
+ \def\doabbr#1,#2,#3\finish{%
+   {\plainfrenchspacing #1}%
+   \def\temp{#2}%
+   \ifx\temp\empty \else
+     \space ({\unsepspaces \ignorespaces \temp \unskip})%
+   \fi
+ }
+ 
+ % @pounds{} is a sterling sign, which Knuth put in the CM italic font.
+ %
+ \def\pounds{{\it\$}}
+ 
+ % @euro{} comes from a separate font, depending on the current style.
+ % We use the free feym* fonts from the eurosym package by Henrik
+ % Theiling, which support regular, slanted, bold and bold slanted (and
+ % "outlined" (blackboard board, sort of) versions, which we don't need).
+ % It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
+ % 
+ % Although only regular is the truly official Euro symbol, we ignore
+ % that.  The Euro is designed to be slightly taller than the regular
+ % font height.
+ % 
+ % feymr - regular
+ % feymo - slanted
+ % feybr - bold
+ % feybo - bold slanted
+ % 
+ % There is no good (free) typewriter version, to my knowledge.
+ % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
+ % Hmm.
+ % 
+ % Also doesn't work in math.  Do we need to do math with euro symbols?
+ % Hope not.
+ % 
+ % 
+ \def\euro{{\eurofont e}}
+ \def\eurofont{%
+   % We set the font at each command, rather than predefining it in
+   % \textfonts and the other font-switching commands, so that
+   % installations which never need the symbol don't have to have the
+   % font installed.
+   % 
+   % There is only one designed size (nominal 10pt), so we always scale
+   % that to the current nominal size.
+   % 
+   % By the way, simply using "at 1em" works for cmr10 and the like, but
+   % does not work for cmbx10 and other extended/shrunken fonts.
+   % 
+   \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
+   %
+   \ifx\curfontstyle\bfstylename 
+     % bold:
+     \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
+   \else 
+     % regular:
+     \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
+   \fi
+   \thiseurofont
+ }
+ 
+ % Hacks for glyphs from the EC fonts similar to \euro.  We don't
+ % use \let for the aliases, because sometimes we redefine the original
+ % macro, and the alias should reflect the redefinition.
+ \def\guillemetleft{{\ecfont \char"13}}
+ \def\guillemotleft{\guillemetleft}
+ \def\guillemetright{{\ecfont \char"14}}
+ \def\guillemotright{\guillemetright}
+ \def\guilsinglleft{{\ecfont \char"0E}}
+ \def\guilsinglright{{\ecfont \char"0F}}
+ \def\quotedblbase{{\ecfont \char"12}}
+ \def\quotesinglbase{{\ecfont \char"0D}}
+ %
+ \def\ecfont{%
+   % We can't distinguish serif/sanserif and italic/slanted, but this
+   % is used for crude hacks anyway (like adding French and German
+   % quotes to documents typeset with CM, where we lose kerning), so
+   % hopefully nobody will notice/care.
+   \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
+   \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
+   \ifx\curfontstyle\bfstylename
+     % bold:
+     \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+   \else
+     % regular:
+     \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+   \fi
+   \thisecfont
+ }
+ 
+ % @registeredsymbol - R in a circle.  The font for the R should really
+ % be smaller yet, but lllsize is the best we can do for now.
+ % Adapted from the plain.tex definition of \copyright.
+ %
+ \def\registeredsymbol{%
+   $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}%
+                \hfil\crcr\Orb}}%
+     }$%
+ }
+ 
+ % @textdegree - the normal degrees sign.
+ %
+ \def\textdegree{$^\circ$}
+ 
+ % Laurent Siebenmann reports \Orb undefined with:
+ %  Textures 1.7.7 (preloaded format=plain 93.10.14)  (68K)  16 APR 2004 02:38
+ % so we'll define it if necessary.
+ % 
+ \ifx\Orb\undefined
+ \def\Orb{\mathhexbox20D}
+ \fi
+ 
+ % Quotes.
+ \chardef\quotedblleft="5C
+ \chardef\quotedblright=`\"
+ \chardef\quoteleft=`\`
+ \chardef\quoteright=`\'
+ 
+ 
+ \message{page headings,}
+ 
+ \newskip\titlepagetopglue \titlepagetopglue = 1.5in
+ \newskip\titlepagebottomglue \titlepagebottomglue = 2pc
+ 
+ % First the title page.  Must do @settitle before @titlepage.
+ \newif\ifseenauthor
+ \newif\iffinishedtitlepage
+ 
+ % Do an implicit @contents or @shortcontents after @end titlepage if the
+ % user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
+ %
+ \newif\ifsetcontentsaftertitlepage
+  \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
+ \newif\ifsetshortcontentsaftertitlepage
+  \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
+ 
+ \parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+         \endgroup\page\hbox{}\page}
+ 
+ \envdef\titlepage{%
+   % Open one extra group, as we want to close it in the middle of \Etitlepage.
+   \begingroup
+     \parindent=0pt \textfonts
+     % Leave some space at the very top of the page.
+     \vglue\titlepagetopglue
+     % No rule at page bottom unless we print one at the top with @title.
+     \finishedtitlepagetrue
+     %
+     % Most title ``pages'' are actually two pages long, with space
+     % at the top of the second.  We don't want the ragged left on the second.
+     \let\oldpage = \page
+     \def\page{%
+       \iffinishedtitlepage\else
+ 	 \finishtitlepage
+       \fi
+       \let\page = \oldpage
+       \page
+       \null
+     }%
+ }
+ 
+ \def\Etitlepage{%
+     \iffinishedtitlepage\else
+ 	\finishtitlepage
+     \fi
+     % It is important to do the page break before ending the group,
+     % because the headline and footline are only empty inside the group.
+     % If we use the new definition of \page, we always get a blank page
+     % after the title page, which we certainly don't want.
+     \oldpage
+   \endgroup
+   %
+   % Need this before the \...aftertitlepage checks so that if they are
+   % in effect the toc pages will come out with page numbers.
+   \HEADINGSon
+   %
+   % If they want short, they certainly want long too.
+   \ifsetshortcontentsaftertitlepage
+     \shortcontents
+     \contents
+     \global\let\shortcontents = \relax
+     \global\let\contents = \relax
+   \fi
+   %
+   \ifsetcontentsaftertitlepage
+     \contents
+     \global\let\contents = \relax
+     \global\let\shortcontents = \relax
+   \fi
+ }
+ 
+ \def\finishtitlepage{%
+   \vskip4pt \hrule height 2pt width \hsize
+   \vskip\titlepagebottomglue
+   \finishedtitlepagetrue
+ }
+ 
+ %%% Macros to be used within @titlepage:
+ 
+ \let\subtitlerm=\tenrm
+ \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
+ 
+ \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
+ 		\let\tt=\authortt}
+ 
+ \parseargdef\title{%
+   \checkenv\titlepage
+   \leftline{\titlefonts\rm #1}
+   % print a rule at the page bottom also.
+   \finishedtitlepagefalse
+   \vskip4pt \hrule height 4pt width \hsize \vskip4pt
+ }
+ 
+ \parseargdef\subtitle{%
+   \checkenv\titlepage
+   {\subtitlefont \rightline{#1}}%
+ }
+ 
+ % @author should come last, but may come many times.
+ % It can also be used inside @quotation.
+ %
+ \parseargdef\author{%
+   \def\temp{\quotation}%
+   \ifx\thisenv\temp
+     \def\quotationauthor{#1}% printed in \Equotation.
+   \else
+     \checkenv\titlepage
+     \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
+     {\authorfont \leftline{#1}}%
+   \fi
+ }
+ 
+ 
+ %%% Set up page headings and footings.
+ 
+ \let\thispage=\folio
+ 
+ \newtoks\evenheadline    % headline on even pages
+ \newtoks\oddheadline     % headline on odd pages
+ \newtoks\evenfootline    % footline on even pages
+ \newtoks\oddfootline     % footline on odd pages
+ 
+ % Now make TeX use those variables
+ \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
+                             \else \the\evenheadline \fi}}
+ \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
+                             \else \the\evenfootline \fi}\HEADINGShook}
+ \let\HEADINGShook=\relax
+ 
+ % Commands to set those variables.
+ % For example, this is what  @headings on  does
+ % @evenheading @thistitle|@thispage|@thischapter
+ % @oddheading @thischapter|@thispage|@thistitle
+ % @evenfooting @thisfile||
+ % @oddfooting ||@thisfile
+ 
+ 
+ \def\evenheading{\parsearg\evenheadingxxx}
+ \def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
+ \def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
+ \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+ 
+ \def\oddheading{\parsearg\oddheadingxxx}
+ \def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
+ \def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
+ \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+ 
+ \parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
+ 
+ \def\evenfooting{\parsearg\evenfootingxxx}
+ \def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish}
+ \def\evenfootingyyy #1\|#2\|#3\|#4\finish{%
+ \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+ 
+ \def\oddfooting{\parsearg\oddfootingxxx}
+ \def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish}
+ \def\oddfootingyyy #1\|#2\|#3\|#4\finish{%
+   \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
+   %
+   % Leave some space for the footline.  Hopefully ok to assume
+   % @evenfooting will not be used by itself.
+   \global\advance\pageheight by -12pt
+   \global\advance\vsize by -12pt
+ }
+ 
+ \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
+ 
+ % @evenheadingmarks top     \thischapter <- chapter at the top of a page
+ % @evenheadingmarks bottom  \thischapter <- chapter at the bottom of a page
+ %
+ % The same set of arguments for:
+ %
+ % @oddheadingmarks
+ % @evenfootingmarks
+ % @oddfootingmarks
+ % @everyheadingmarks
+ % @everyfootingmarks
+ 
+ \def\evenheadingmarks{\headingmarks{even}{heading}}
+ \def\oddheadingmarks{\headingmarks{odd}{heading}}
+ \def\evenfootingmarks{\headingmarks{even}{footing}}
+ \def\oddfootingmarks{\headingmarks{odd}{footing}}
+ \def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1}
+                           \headingmarks{odd}{heading}{#1} }
+ \def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1}
+                           \headingmarks{odd}{footing}{#1} }
+ % #1 = even/odd, #2 = heading/footing, #3 = top/bottom.
+ \def\headingmarks#1#2#3 {%
+   \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname
+   \global\expandafter\let\csname get#1#2marks\endcsname \temp
+ }
+ 
+ \everyheadingmarks bottom
+ \everyfootingmarks bottom
+ 
+ % @headings double      turns headings on for double-sided printing.
+ % @headings single      turns headings on for single-sided printing.
+ % @headings off         turns them off.
+ % @headings on          same as @headings double, retained for compatibility.
+ % @headings after       turns on double-sided headings after this page.
+ % @headings doubleafter turns on double-sided headings after this page.
+ % @headings singleafter turns on single-sided headings after this page.
+ % By default, they are off at the start of a document,
+ % and turned `on' after @end titlepage.
+ 
+ \def\headings #1 {\csname HEADINGS#1\endcsname}
+ 
+ \def\HEADINGSoff{%
+ \global\evenheadline={\hfil} \global\evenfootline={\hfil}
+ \global\oddheadline={\hfil} \global\oddfootline={\hfil}}
+ \HEADINGSoff
+ % When we turn headings on, set the page number to 1.
+ % For double-sided printing, put current file name in lower left corner,
+ % chapter name on inside top of right hand pages, document
+ % title on inside top of left hand pages, and page numbers on outside top
+ % edge of all pages.
+ \def\HEADINGSdouble{%
+ \global\pageno=1
+ \global\evenfootline={\hfil}
+ \global\oddfootline={\hfil}
+ \global\evenheadline={\line{\folio\hfil\thistitle}}
+ \global\oddheadline={\line{\thischapter\hfil\folio}}
+ \global\let\contentsalignmacro = \chapoddpage
+ }
+ \let\contentsalignmacro = \chappager
+ 
+ % For single-sided printing, chapter title goes across top left of page,
+ % page number on top right.
+ \def\HEADINGSsingle{%
+ \global\pageno=1
+ \global\evenfootline={\hfil}
+ \global\oddfootline={\hfil}
+ \global\evenheadline={\line{\thischapter\hfil\folio}}
+ \global\oddheadline={\line{\thischapter\hfil\folio}}
+ \global\let\contentsalignmacro = \chappager
+ }
+ \def\HEADINGSon{\HEADINGSdouble}
+ 
+ \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
+ \let\HEADINGSdoubleafter=\HEADINGSafter
+ \def\HEADINGSdoublex{%
+ \global\evenfootline={\hfil}
+ \global\oddfootline={\hfil}
+ \global\evenheadline={\line{\folio\hfil\thistitle}}
+ \global\oddheadline={\line{\thischapter\hfil\folio}}
+ \global\let\contentsalignmacro = \chapoddpage
+ }
+ 
+ \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
+ \def\HEADINGSsinglex{%
+ \global\evenfootline={\hfil}
+ \global\oddfootline={\hfil}
+ \global\evenheadline={\line{\thischapter\hfil\folio}}
+ \global\oddheadline={\line{\thischapter\hfil\folio}}
+ \global\let\contentsalignmacro = \chappager
+ }
+ 
+ % Subroutines used in generating headings
+ % This produces Day Month Year style of output.
+ % Only define if not already defined, in case a txi-??.tex file has set
+ % up a different format (e.g., txi-cs.tex does this).
+ \ifx\today\undefined
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
+ \fi
+ 
+ % @settitle line...  specifies the title of the document, for headings.
+ % It generates no output of its own.
+ \def\thistitle{\putwordNoTitle}
+ \def\settitle{\parsearg{\gdef\thistitle}}
+ 
+ 
+ \message{tables,}
+ % Tables -- @table, @ftable, @vtable, @item(x).
+ 
+ % default indentation of table text
+ \newdimen\tableindent \tableindent=.8in
+ % default indentation of @itemize and @enumerate text
+ \newdimen\itemindent  \itemindent=.3in
+ % margin between end of table item and start of table text.
+ \newdimen\itemmargin  \itemmargin=.1in
+ 
+ % used internally for \itemindent minus \itemmargin
+ \newdimen\itemmax
+ 
+ % Note @table, @ftable, and @vtable define @item, @itemx, etc., with
+ % these defs.
+ % They also define \itemindex
+ % to index the item name in whatever manner is desired (perhaps none).
+ 
+ \newif\ifitemxneedsnegativevskip
+ 
+ \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
+ 
+ \def\internalBitem{\smallbreak \parsearg\itemzzz}
+ \def\internalBitemx{\itemxpar \parsearg\itemzzz}
+ 
+ \def\itemzzz #1{\begingroup %
+   \advance\hsize by -\rightskip
+   \advance\hsize by -\tableindent
+   \setbox0=\hbox{\itemindicate{#1}}%
+   \itemindex{#1}%
+   \nobreak % This prevents a break before @itemx.
+   %
+   % If the item text does not fit in the space we have, put it on a line
+   % by itself, and do not allow a page break either before or after that
+   % line.  We do not start a paragraph here because then if the next
+   % command is, e.g., @kindex, the whatsit would get put into the
+   % horizontal list on a line by itself, resulting in extra blank space.
+   \ifdim \wd0>\itemmax
+     %
+     % Make this a paragraph so we get the \parskip glue and wrapping,
+     % but leave it ragged-right.
+     \begingroup
+       \advance\leftskip by-\tableindent
+       \advance\hsize by\tableindent
+       \advance\rightskip by0pt plus1fil
+       \leavevmode\unhbox0\par
+     \endgroup
+     %
+     % We're going to be starting a paragraph, but we don't want the
+     % \parskip glue -- logically it's part of the @item we just started.
+     \nobreak \vskip-\parskip
+     %
+     % Stop a page break at the \parskip glue coming up.  However, if
+     % what follows is an environment such as @example, there will be no
+     % \parskip glue; then the negative vskip we just inserted would
+     % cause the example and the item to crash together.  So we use this
+     % bizarre value of 10001 as a signal to \aboveenvbreak to insert
+     % \parskip glue after all.  Section titles are handled this way also.
+     % 
+     \penalty 10001
+     \endgroup
+     \itemxneedsnegativevskipfalse
+   \else
+     % The item text fits into the space.  Start a paragraph, so that the
+     % following text (if any) will end up on the same line.
+     \noindent
+     % Do this with kerns and \unhbox so that if there is a footnote in
+     % the item text, it can migrate to the main vertical list and
+     % eventually be printed.
+     \nobreak\kern-\tableindent
+     \dimen0 = \itemmax  \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
+     \unhbox0
+     \nobreak\kern\dimen0
+     \endgroup
+     \itemxneedsnegativevskiptrue
+   \fi
+ }
+ 
+ \def\item{\errmessage{@item while not in a list environment}}
+ \def\itemx{\errmessage{@itemx while not in a list environment}}
+ 
+ % @table, @ftable, @vtable.
+ \envdef\table{%
+   \let\itemindex\gobble
+   \tablecheck{table}%
+ }
+ \envdef\ftable{%
+   \def\itemindex ##1{\doind {fn}{\code{##1}}}%
+   \tablecheck{ftable}%
+ }
+ \envdef\vtable{%
+   \def\itemindex ##1{\doind {vr}{\code{##1}}}%
+   \tablecheck{vtable}%
+ }
+ \def\tablecheck#1{%
+   \ifnum \the\catcode`\^^M=\active
+     \endgroup
+     \errmessage{This command won't work in this context; perhaps the problem is
+       that we are \inenvironment\thisenv}%
+     \def\next{\doignore{#1}}%
+   \else
+     \let\next\tablex
+   \fi
+   \next
+ }
+ \def\tablex#1{%
+   \def\itemindicate{#1}%
+   \parsearg\tabley
+ }
+ \def\tabley#1{%
+   {%
+     \makevalueexpandable
+     \edef\temp{\noexpand\tablez #1\space\space\space}%
+     \expandafter
+   }\temp \endtablez
+ }
+ \def\tablez #1 #2 #3 #4\endtablez{%
+   \aboveenvbreak
+   \ifnum 0#1>0 \advance \leftskip by #1\mil \fi
+   \ifnum 0#2>0 \tableindent=#2\mil \fi
+   \ifnum 0#3>0 \advance \rightskip by #3\mil \fi
+   \itemmax=\tableindent
+   \advance \itemmax by -\itemmargin
+   \advance \leftskip by \tableindent
+   \exdentamount=\tableindent
+   \parindent = 0pt
+   \parskip = \smallskipamount
+   \ifdim \parskip=0pt \parskip=2pt \fi
+   \let\item = \internalBitem
+   \let\itemx = \internalBitemx
+ }
+ \def\Etable{\endgraf\afterenvbreak}
+ \let\Eftable\Etable
+ \let\Evtable\Etable
+ \let\Eitemize\Etable
+ \let\Eenumerate\Etable
+ 
+ % This is the counter used by @enumerate, which is really @itemize
+ 
+ \newcount \itemno
+ 
+ \envdef\itemize{\parsearg\doitemize}
+ 
+ \def\doitemize#1{%
+   \aboveenvbreak
+   \itemmax=\itemindent
+   \advance\itemmax by -\itemmargin
+   \advance\leftskip by \itemindent
+   \exdentamount=\itemindent
+   \parindent=0pt
+   \parskip=\smallskipamount
+   \ifdim\parskip=0pt \parskip=2pt \fi
+   \def\itemcontents{#1}%
+   % @itemize with no arg is equivalent to @itemize @bullet.
+   \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
+   \let\item=\itemizeitem
+ }
+ 
+ % Definition of @item while inside @itemize and @enumerate.
+ %
+ \def\itemizeitem{%
+   \advance\itemno by 1  % for enumerations
+   {\let\par=\endgraf \smallbreak}% reasonable place to break
+   {%
+    % If the document has an @itemize directly after a section title, a
+    % \nobreak will be last on the list, and \sectionheading will have
+    % done a \vskip-\parskip.  In that case, we don't want to zero
+    % parskip, or the item text will crash with the heading.  On the
+    % other hand, when there is normal text preceding the item (as there
+    % usually is), we do want to zero parskip, or there would be too much
+    % space.  In that case, we won't have a \nobreak before.  At least
+    % that's the theory.
+    \ifnum\lastpenalty<10000 \parskip=0in \fi
+    \noindent
+    \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
+    \vadjust{\penalty 1200}}% not good to break after first line of item.
+   \flushcr
+ }
+ 
+ % \splitoff TOKENS\endmark defines \first to be the first token in
+ % TOKENS, and \rest to be the remainder.
+ %
+ \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
+ 
+ % Allow an optional argument of an uppercase letter, lowercase letter,
+ % or number, to specify the first label in the enumerated list.  No
+ % argument is the same as `1'.
+ %
+ \envparseargdef\enumerate{\enumeratey #1  \endenumeratey}
+ \def\enumeratey #1 #2\endenumeratey{%
+   % If we were given no argument, pretend we were given `1'.
+   \def\thearg{#1}%
+   \ifx\thearg\empty \def\thearg{1}\fi
+   %
+   % Detect if the argument is a single token.  If so, it might be a
+   % letter.  Otherwise, the only valid thing it can be is a number.
+   % (We will always have one token, because of the test we just made.
+   % This is a good thing, since \splitoff doesn't work given nothing at
+   % all -- the first parameter is undelimited.)
+   \expandafter\splitoff\thearg\endmark
+   \ifx\rest\empty
+     % Only one token in the argument.  It could still be anything.
+     % A ``lowercase letter'' is one whose \lccode is nonzero.
+     % An ``uppercase letter'' is one whose \lccode is both nonzero, and
+     %   not equal to itself.
+     % Otherwise, we assume it's a number.
+     %
+     % We need the \relax at the end of the \ifnum lines to stop TeX from
+     % continuing to look for a <number>.
+     %
+     \ifnum\lccode\expandafter`\thearg=0\relax
+       \numericenumerate % a number (we hope)
+     \else
+       % It's a letter.
+       \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
+         \lowercaseenumerate % lowercase letter
+       \else
+         \uppercaseenumerate % uppercase letter
+       \fi
+     \fi
+   \else
+     % Multiple tokens in the argument.  We hope it's a number.
+     \numericenumerate
+   \fi
+ }
+ 
+ % An @enumerate whose labels are integers.  The starting integer is
+ % given in \thearg.
+ %
+ \def\numericenumerate{%
+   \itemno = \thearg
+   \startenumeration{\the\itemno}%
+ }
+ 
+ % The starting (lowercase) letter is in \thearg.
+ \def\lowercaseenumerate{%
+   \itemno = \expandafter`\thearg
+   \startenumeration{%
+     % Be sure we're not beyond the end of the alphabet.
+     \ifnum\itemno=0
+       \errmessage{No more lowercase letters in @enumerate; get a bigger
+                   alphabet}%
+     \fi
+     \char\lccode\itemno
+   }%
+ }
+ 
+ % The starting (uppercase) letter is in \thearg.
+ \def\uppercaseenumerate{%
+   \itemno = \expandafter`\thearg
+   \startenumeration{%
+     % Be sure we're not beyond the end of the alphabet.
+     \ifnum\itemno=0
+       \errmessage{No more uppercase letters in @enumerate; get a bigger
+                   alphabet}
+     \fi
+     \char\uccode\itemno
+   }%
+ }
+ 
+ % Call \doitemize, adding a period to the first argument and supplying the
+ % common last two arguments.  Also subtract one from the initial value in
+ % \itemno, since @item increments \itemno.
+ %
+ \def\startenumeration#1{%
+   \advance\itemno by -1
+   \doitemize{#1.}\flushcr
+ }
+ 
+ % @alphaenumerate and @capsenumerate are abbreviations for giving an arg
+ % to @enumerate.
+ %
+ \def\alphaenumerate{\enumerate{a}}
+ \def\capsenumerate{\enumerate{A}}
+ \def\Ealphaenumerate{\Eenumerate}
+ \def\Ecapsenumerate{\Eenumerate}
+ 
+ 
+ % @multitable macros
+ % Amy Hendrickson, 8/18/94, 3/6/96
+ %
+ % @multitable ... @end multitable will make as many columns as desired.
+ % Contents of each column will wrap at width given in preamble.  Width
+ % can be specified either with sample text given in a template line,
+ % or in percent of \hsize, the current width of text on page.
+ 
+ % Table can continue over pages but will only break between lines.
+ 
+ % To make preamble:
+ %
+ % Either define widths of columns in terms of percent of \hsize:
+ %   @multitable @columnfractions .25 .3 .45
+ %   @item ...
+ %
+ %   Numbers following @columnfractions are the percent of the total
+ %   current hsize to be used for each column. You may use as many
+ %   columns as desired.
+ 
+ 
+ % Or use a template:
+ %   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+ %   @item ...
+ %   using the widest term desired in each column.
+ 
+ % Each new table line starts with @item, each subsequent new column
+ % starts with @tab. Empty columns may be produced by supplying @tab's
+ % with nothing between them for as many times as empty columns are needed,
+ % ie, @tab@tab@tab will produce two empty columns.
+ 
+ % @item, @tab do not need to be on their own lines, but it will not hurt
+ % if they are.
+ 
+ % Sample multitable:
+ 
+ %   @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+ %   @item first col stuff @tab second col stuff @tab third col
+ %   @item
+ %   first col stuff
+ %   @tab
+ %   second col stuff
+ %   @tab
+ %   third col
+ %   @item first col stuff @tab second col stuff
+ %   @tab Many paragraphs of text may be used in any column.
+ %
+ %         They will wrap at the width determined by the template.
+ %   @item@tab@tab This will be in third column.
+ %   @end multitable
+ 
+ % Default dimensions may be reset by user.
+ % @multitableparskip is vertical space between paragraphs in table.
+ % @multitableparindent is paragraph indent in table.
+ % @multitablecolmargin is horizontal space to be left between columns.
+ % @multitablelinespace is space to leave between table items, baseline
+ %                                                            to baseline.
+ %   0pt means it depends on current normal line spacing.
+ %
+ \newskip\multitableparskip
+ \newskip\multitableparindent
+ \newdimen\multitablecolspace
+ \newskip\multitablelinespace
+ \multitableparskip=0pt
+ \multitableparindent=6pt
+ \multitablecolspace=12pt
+ \multitablelinespace=0pt
+ 
+ % Macros used to set up halign preamble:
+ %
+ \let\endsetuptable\relax
+ \def\xendsetuptable{\endsetuptable}
+ \let\columnfractions\relax
+ \def\xcolumnfractions{\columnfractions}
+ \newif\ifsetpercent
+ 
+ % #1 is the @columnfraction, usually a decimal number like .5, but might
+ % be just 1.  We just use it, whatever it is.
+ %
+ \def\pickupwholefraction#1 {%
+   \global\advance\colcount by 1
+   \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}%
+   \setuptable
+ }
+ 
+ \newcount\colcount
+ \def\setuptable#1{%
+   \def\firstarg{#1}%
+   \ifx\firstarg\xendsetuptable
+     \let\go = \relax
+   \else
+     \ifx\firstarg\xcolumnfractions
+       \global\setpercenttrue
+     \else
+       \ifsetpercent
+          \let\go\pickupwholefraction
+       \else
+          \global\advance\colcount by 1
+          \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
+                    % separator; typically that is always in the input, anyway.
+          \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
+       \fi
+     \fi
+     \ifx\go\pickupwholefraction
+       % Put the argument back for the \pickupwholefraction call, so
+       % we'll always have a period there to be parsed.
+       \def\go{\pickupwholefraction#1}%
+     \else
+       \let\go = \setuptable
+     \fi%
+   \fi
+   \go
+ }
+ 
+ % multitable-only commands.
+ %
+ % @headitem starts a heading row, which we typeset in bold.
+ % Assignments have to be global since we are inside the implicit group
+ % of an alignment entry.  Note that \everycr resets \everytab.
+ \def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}%
+ %
+ % A \tab used to include \hskip1sp.  But then the space in a template
+ % line is not enough.  That is bad.  So let's go back to just `&' until
+ % we encounter the problem it was intended to solve again.
+ %					--karl, nathan@acm.org, 20apr99.
+ \def\tab{\checkenv\multitable &\the\everytab}%
+ 
+ % @multitable ... @end multitable definitions:
+ %
+ \newtoks\everytab  % insert after every tab.
+ %
+ \envdef\multitable{%
+   \vskip\parskip
+   \startsavinginserts
+   %
+   % @item within a multitable starts a normal row.
+   % We use \def instead of \let so that if one of the multitable entries
+   % contains an @itemize, we don't choke on the \item (seen as \crcr aka
+   % \endtemplate) expanding \doitemize.
+   \def\item{\crcr}%
+   %
+   \tolerance=9500
+   \hbadness=9500
+   \setmultitablespacing
+   \parskip=\multitableparskip
+   \parindent=\multitableparindent
+   \overfullrule=0pt
+   \global\colcount=0
+   %
+   \everycr = {%
+     \noalign{%
+       \global\everytab={}%
+       \global\colcount=0 % Reset the column counter.
+       % Check for saved footnotes, etc.
+       \checkinserts
+       % Keeps underfull box messages off when table breaks over pages.
+       %\filbreak
+ 	% Maybe so, but it also creates really weird page breaks when the
+ 	% table breaks over pages. Wouldn't \vfil be better?  Wait until the
+ 	% problem manifests itself, so it can be fixed for real --karl.
+     }%
+   }%
+   %
+   \parsearg\domultitable
+ }
+ \def\domultitable#1{%
+   % To parse everything between @multitable and @item:
+   \setuptable#1 \endsetuptable
+   %
+   % This preamble sets up a generic column definition, which will
+   % be used as many times as user calls for columns.
+   % \vtop will set a single line and will also let text wrap and
+   % continue for many paragraphs if desired.
+   \halign\bgroup &%
+     \global\advance\colcount by 1
+     \multistrut
+     \vtop{%
+       % Use the current \colcount to find the correct column width:
+       \hsize=\expandafter\csname col\the\colcount\endcsname
+       %
+       % In order to keep entries from bumping into each other
+       % we will add a \leftskip of \multitablecolspace to all columns after
+       % the first one.
+       %
+       % If a template has been used, we will add \multitablecolspace
+       % to the width of each template entry.
+       %
+       % If the user has set preamble in terms of percent of \hsize we will
+       % use that dimension as the width of the column, and the \leftskip
+       % will keep entries from bumping into each other.  Table will start at
+       % left margin and final column will justify at right margin.
+       %
+       % Make sure we don't inherit \rightskip from the outer environment.
+       \rightskip=0pt
+       \ifnum\colcount=1
+ 	% The first column will be indented with the surrounding text.
+ 	\advance\hsize by\leftskip
+       \else
+ 	\ifsetpercent \else
+ 	  % If user has not set preamble in terms of percent of \hsize
+ 	  % we will advance \hsize by \multitablecolspace.
+ 	  \advance\hsize by \multitablecolspace
+ 	\fi
+        % In either case we will make \leftskip=\multitablecolspace:
+       \leftskip=\multitablecolspace
+       \fi
+       % Ignoring space at the beginning and end avoids an occasional spurious
+       % blank line, when TeX decides to break the line at the space before the
+       % box from the multistrut, so the strut ends up on a line by itself.
+       % For example:
+       % @multitable @columnfractions .11 .89
+       % @item @code{#}
+       % @tab Legal holiday which is valid in major parts of the whole country.
+       % Is automatically provided with highlighting sequences respectively
+       % marking characters.
+       \noindent\ignorespaces##\unskip\multistrut
+     }\cr
+ }
+ \def\Emultitable{%
+   \crcr
+   \egroup % end the \halign
+   \global\setpercentfalse
+ }
+ 
+ \def\setmultitablespacing{%
+   \def\multistrut{\strut}% just use the standard line spacing
+   %
+   % Compute \multitablelinespace (if not defined by user) for use in
+   % \multitableparskip calculation.  We used define \multistrut based on
+   % this, but (ironically) that caused the spacing to be off.
+   % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
+ \ifdim\multitablelinespace=0pt
+ \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
+ \global\advance\multitablelinespace by-\ht0
+ \fi
+ %% Test to see if parskip is larger than space between lines of
+ %% table. If not, do nothing.
+ %%        If so, set to same dimension as multitablelinespace.
+ \ifdim\multitableparskip>\multitablelinespace
+ \global\multitableparskip=\multitablelinespace
+ \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+                                       %% than skip between lines in the table.
+ \fi%
+ \ifdim\multitableparskip=0pt
+ \global\multitableparskip=\multitablelinespace
+ \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
+                                       %% than skip between lines in the table.
+ \fi}
+ 
+ 
+ \message{conditionals,}
+ 
+ % @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
+ % @ifnotxml always succeed.  They currently do nothing; we don't
+ % attempt to check whether the conditionals are properly nested.  But we
+ % have to remember that they are conditionals, so that @end doesn't
+ % attempt to close an environment group.
+ %
+ \def\makecond#1{%
+   \expandafter\let\csname #1\endcsname = \relax
+   \expandafter\let\csname iscond.#1\endcsname = 1
+ }
+ \makecond{iftex}
+ \makecond{ifnotdocbook}
+ \makecond{ifnothtml}
+ \makecond{ifnotinfo}
+ \makecond{ifnotplaintext}
+ \makecond{ifnotxml}
+ 
+ % Ignore @ignore, @ifhtml, @ifinfo, and the like.
+ %
+ \def\direntry{\doignore{direntry}}
+ \def\documentdescription{\doignore{documentdescription}}
+ \def\docbook{\doignore{docbook}}
+ \def\html{\doignore{html}}
+ \def\ifdocbook{\doignore{ifdocbook}}
+ \def\ifhtml{\doignore{ifhtml}}
+ \def\ifinfo{\doignore{ifinfo}}
+ \def\ifnottex{\doignore{ifnottex}}
+ \def\ifplaintext{\doignore{ifplaintext}}
+ \def\ifxml{\doignore{ifxml}}
+ \def\ignore{\doignore{ignore}}
+ \def\menu{\doignore{menu}}
+ \def\xml{\doignore{xml}}
+ 
+ % Ignore text until a line `@end #1', keeping track of nested conditionals.
+ %
+ % A count to remember the depth of nesting.
+ \newcount\doignorecount
+ 
+ \def\doignore#1{\begingroup
+   % Scan in ``verbatim'' mode:
+   \obeylines
+   \catcode`\@ = \other
+   \catcode`\{ = \other
+   \catcode`\} = \other
+   %
+   % Make sure that spaces turn into tokens that match what \doignoretext wants.
+   \spaceisspace
+   %
+   % Count number of #1's that we've seen.
+   \doignorecount = 0
+   %
+   % Swallow text until we reach the matching `@end #1'.
+   \dodoignore{#1}%
+ }
+ 
+ { \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source.
+   \obeylines %
+   %
+   \gdef\dodoignore#1{%
+     % #1 contains the command name as a string, e.g., `ifinfo'.
+     %
+     % Define a command to find the next `@end #1'.
+     \long\def\doignoretext##1^^M@end #1{%
+       \doignoretextyyy##1^^M@#1\_STOP_}%
+     %
+     % And this command to find another #1 command, at the beginning of a
+     % line.  (Otherwise, we would consider a line `@c @ifset', for
+     % example, to count as an @ifset for nesting.)
+     \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
+     %
+     % And now expand that command.
+     \doignoretext ^^M%
+   }%
+ }
+ 
+ \def\doignoreyyy#1{%
+   \def\temp{#1}%
+   \ifx\temp\empty			% Nothing found.
+     \let\next\doignoretextzzz
+   \else					% Found a nested condition, ...
+     \advance\doignorecount by 1
+     \let\next\doignoretextyyy		% ..., look for another.
+     % If we're here, #1 ends with ^^M\ifinfo (for example).
+   \fi
+   \next #1% the token \_STOP_ is present just after this macro.
+ }
+ 
+ % We have to swallow the remaining "\_STOP_".
+ %
+ \def\doignoretextzzz#1{%
+   \ifnum\doignorecount = 0	% We have just found the outermost @end.
+     \let\next\enddoignore
+   \else				% Still inside a nested condition.
+     \advance\doignorecount by -1
+     \let\next\doignoretext      % Look for the next @end.
+   \fi
+   \next
+ }
+ 
+ % Finish off ignored text.
+ { \obeylines%
+   % Ignore anything after the last `@end #1'; this matters in verbatim
+   % environments, where otherwise the newline after an ignored conditional
+   % would result in a blank line in the output.
+   \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
+ }
+ 
+ 
+ % @set VAR sets the variable VAR to an empty value.
+ % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
+ %
+ % Since we want to separate VAR from REST-OF-LINE (which might be
+ % empty), we can't just use \parsearg; we have to insert a space of our
+ % own to delimit the rest of the line, and then take it out again if we
+ % didn't need it.
+ % We rely on the fact that \parsearg sets \catcode`\ =10.
+ %
+ \parseargdef\set{\setyyy#1 \endsetyyy}
+ \def\setyyy#1 #2\endsetyyy{%
+   {%
+     \makevalueexpandable
+     \def\temp{#2}%
+     \edef\next{\gdef\makecsname{SET#1}}%
+     \ifx\temp\empty
+       \next{}%
+     \else
+       \setzzz#2\endsetzzz
+     \fi
+   }%
+ }
+ % Remove the trailing space \setxxx inserted.
+ \def\setzzz#1 \endsetzzz{\next{#1}}
+ 
+ % @clear VAR clears (i.e., unsets) the variable VAR.
+ %
+ \parseargdef\clear{%
+   {%
+     \makevalueexpandable
+     \global\expandafter\let\csname SET#1\endcsname=\relax
+   }%
+ }
+ 
+ % @value{foo} gets the text saved in variable foo.
+ \def\value{\begingroup\makevalueexpandable\valuexxx}
+ \def\valuexxx#1{\expandablevalue{#1}\endgroup}
+ {
+   \catcode`\- = \active \catcode`\_ = \active
+   %
+   \gdef\makevalueexpandable{%
+     \let\value = \expandablevalue
+     % We don't want these characters active, ...
+     \catcode`\-=\other \catcode`\_=\other
+     % ..., but we might end up with active ones in the argument if
+     % we're called from @code, as @code{@value{foo-bar_}}, though.
+     % So \let them to their normal equivalents.
+     \let-\realdash \let_\normalunderscore
+   }
+ }
+ 
+ % We have this subroutine so that we can handle at least some @value's
+ % properly in indexes (we call \makevalueexpandable in \indexdummies).
+ % The command has to be fully expandable (if the variable is set), since
+ % the result winds up in the index file.  This means that if the
+ % variable's value contains other Texinfo commands, it's almost certain
+ % it will fail (although perhaps we could fix that with sufficient work
+ % to do a one-level expansion on the result, instead of complete).
+ %
+ \def\expandablevalue#1{%
+   \expandafter\ifx\csname SET#1\endcsname\relax
+     {[No value for ``#1'']}%
+     \message{Variable `#1', used in @value, is not set.}%
+   \else
+     \csname SET#1\endcsname
+   \fi
+ }
+ 
+ % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
+ % with @set.
+ %
+ % To get special treatment of `@end ifset,' call \makeond and the redefine.
+ %
+ \makecond{ifset}
+ \def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
+ \def\doifset#1#2{%
+   {%
+     \makevalueexpandable
+     \let\next=\empty
+     \expandafter\ifx\csname SET#2\endcsname\relax
+       #1% If not set, redefine \next.
+     \fi
+     \expandafter
+   }\next
+ }
+ \def\ifsetfail{\doignore{ifset}}
+ 
+ % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+ % defined with @set, or has been undefined with @clear.
+ %
+ % The `\else' inside the `\doifset' parameter is a trick to reuse the
+ % above code: if the variable is not set, do nothing, if it is set,
+ % then redefine \next to \ifclearfail.
+ %
+ \makecond{ifclear}
+ \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
+ \def\ifclearfail{\doignore{ifclear}}
+ 
+ % @dircategory CATEGORY  -- specify a category of the dir file
+ % which this file should belong to.  Ignore this in TeX.
+ \let\dircategory=\comment
+ 
+ % @defininfoenclose.
+ \let\definfoenclose=\comment
+ 
+ 
+ \message{indexing,}
+ % Index generation facilities
+ 
+ % Define \newwrite to be identical to plain tex's \newwrite
+ % except not \outer, so it can be used within macros and \if's.
+ \edef\newwrite{\makecsname{ptexnewwrite}}
+ 
+ % \newindex {foo} defines an index named foo.
+ % It automatically defines \fooindex such that
+ % \fooindex ...rest of line... puts an entry in the index foo.
+ % It also defines \fooindfile to be the number of the output channel for
+ % the file that accumulates this index.  The file's extension is foo.
+ % The name of an index should be no more than 2 characters long
+ % for the sake of vms.
+ %
+ \def\newindex#1{%
+   \iflinks
+     \expandafter\newwrite \csname#1indfile\endcsname
+     \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+   \fi
+   \expandafter\xdef\csname#1index\endcsname{%     % Define @#1index
+     \noexpand\doindex{#1}}
+ }
+ 
+ % @defindex foo  ==  \newindex{foo}
+ %
+ \def\defindex{\parsearg\newindex}
+ 
+ % Define @defcodeindex, like @defindex except put all entries in @code.
+ %
+ \def\defcodeindex{\parsearg\newcodeindex}
+ %
+ \def\newcodeindex#1{%
+   \iflinks
+     \expandafter\newwrite \csname#1indfile\endcsname
+     \openout \csname#1indfile\endcsname \jobname.#1
+   \fi
+   \expandafter\xdef\csname#1index\endcsname{%
+     \noexpand\docodeindex{#1}}%
+ }
+ 
+ 
+ % @synindex foo bar    makes index foo feed into index bar.
+ % Do this instead of @defindex foo if you don't want it as a separate index.
+ %
+ % @syncodeindex foo bar   similar, but put all entries made for index foo
+ % inside @code.
+ %
+ \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
+ \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
+ 
+ % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
+ % #3 the target index (bar).
+ \def\dosynindex#1#2#3{%
+   % Only do \closeout if we haven't already done it, else we'll end up
+   % closing the target index.
+   \expandafter \ifx\csname donesynindex#2\endcsname \undefined
+     % The \closeout helps reduce unnecessary open files; the limit on the
+     % Acorn RISC OS is a mere 16 files.
+     \expandafter\closeout\csname#2indfile\endcsname
+     \expandafter\let\csname\donesynindex#2\endcsname = 1
+   \fi
+   % redefine \fooindfile:
+   \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
+   \expandafter\let\csname#2indfile\endcsname=\temp
+   % redefine \fooindex:
+   \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
+ }
+ 
+ % Define \doindex, the driver for all \fooindex macros.
+ % Argument #1 is generated by the calling \fooindex macro,
+ %  and it is "foo", the name of the index.
+ 
+ % \doindex just uses \parsearg; it calls \doind for the actual work.
+ % This is because \doind is more useful to call from other macros.
+ 
+ % There is also \dosubind {index}{topic}{subtopic}
+ % which makes an entry in a two-level index such as the operation index.
+ 
+ \def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
+ \def\singleindexer #1{\doind{\indexname}{#1}}
+ 
+ % like the previous two, but they put @code around the argument.
+ \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
+ \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
+ 
+ % Take care of Texinfo commands that can appear in an index entry.
+ % Since there are some commands we want to expand, and others we don't,
+ % we have to laboriously prevent expansion for those that we don't.
+ %
+ \def\indexdummies{%
+   \escapechar = `\\     % use backslash in output files.
+   \def\@{@}% change to @@ when we switch to @ as escape char in index files.
+   \def\ {\realbackslash\space }%
+   %
+   % Need these in case \tex is in effect and \{ is a \delimiter again.
+   % But can't use \lbracecmd and \rbracecmd because texindex assumes
+   % braces and backslashes are used only as delimiters.
+   \let\{ = \mylbrace
+   \let\} = \myrbrace
+   %
+   % I don't entirely understand this, but when an index entry is
+   % generated from a macro call, the \endinput which \scanmacro inserts
+   % causes processing to be prematurely terminated.  This is,
+   % apparently, because \indexsorttmp is fully expanded, and \endinput
+   % is an expandable command.  The redefinition below makes \endinput
+   % disappear altogether for that purpose -- although logging shows that
+   % processing continues to some further point.  On the other hand, it
+   % seems \endinput does not hurt in the printed index arg, since that
+   % is still getting written without apparent harm.
+   % 
+   % Sample source (mac-idx3.tex, reported by Graham Percival to
+   % help-texinfo, 22may06):
+   % @macro funindex {WORD}
+   % @findex xyz
+   % @end macro
+   % ...
+   % @funindex commtest
+   % 
+   % The above is not enough to reproduce the bug, but it gives the flavor.
+   % 
+   % Sample whatsit resulting:
+   % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
+   % 
+   % So:
+   \let\endinput = \empty
+   %
+   % Do the redefinitions.
+   \commondummies
+ }
+ 
+ % For the aux and toc files, @ is the escape character.  So we want to
+ % redefine everything using @ as the escape character (instead of
+ % \realbackslash, still used for index files).  When everything uses @,
+ % this will be simpler.
+ %
+ \def\atdummies{%
+   \def\@{@@}%
+   \def\ {@ }%
+   \let\{ = \lbraceatcmd
+   \let\} = \rbraceatcmd
+   %
+   % Do the redefinitions.
+   \commondummies
+   \otherbackslash
+ }
+ 
+ % Called from \indexdummies and \atdummies.
+ %
+ \def\commondummies{%
+   %
+   % \definedummyword defines \#1 as \string\#1\space, thus effectively
+   % preventing its expansion.  This is used only for control% words,
+   % not control letters, because the \space would be incorrect for
+   % control characters, but is needed to separate the control word
+   % from whatever follows.
+   %
+   % For control letters, we have \definedummyletter, which omits the
+   % space.
+   %
+   % These can be used both for control words that take an argument and
+   % those that do not.  If it is followed by {arg} in the input, then
+   % that will dutifully get written to the index (or wherever).
+   %
+   \def\definedummyword  ##1{\def##1{\string##1\space}}%
+   \def\definedummyletter##1{\def##1{\string##1}}%
+   \let\definedummyaccent\definedummyletter
+   %
+   \commondummiesnofonts
+   %
+   \definedummyletter\_%
+   %
+   % Non-English letters.
+   \definedummyword\AA
+   \definedummyword\AE
+   \definedummyword\L
+   \definedummyword\OE
+   \definedummyword\O
+   \definedummyword\aa
+   \definedummyword\ae
+   \definedummyword\l
+   \definedummyword\oe
+   \definedummyword\o
+   \definedummyword\ss
+   \definedummyword\exclamdown
+   \definedummyword\questiondown
+   \definedummyword\ordf
+   \definedummyword\ordm
+   %
+   % Although these internal commands shouldn't show up, sometimes they do.
+   \definedummyword\bf
+   \definedummyword\gtr
+   \definedummyword\hat
+   \definedummyword\less
+   \definedummyword\sf
+   \definedummyword\sl
+   \definedummyword\tclose
+   \definedummyword\tt
+   %
+   \definedummyword\LaTeX
+   \definedummyword\TeX
+   %
+   % Assorted special characters.
+   \definedummyword\bullet
+   \definedummyword\comma
+   \definedummyword\copyright
+   \definedummyword\registeredsymbol
+   \definedummyword\dots
+   \definedummyword\enddots
+   \definedummyword\equiv
+   \definedummyword\error
+   \definedummyword\euro
+   \definedummyword\guillemetleft
+   \definedummyword\guillemetright
+   \definedummyword\guilsinglleft
+   \definedummyword\guilsinglright
+   \definedummyword\expansion
+   \definedummyword\minus
+   \definedummyword\pounds
+   \definedummyword\point
+   \definedummyword\print
+   \definedummyword\quotedblbase
+   \definedummyword\quotedblleft
+   \definedummyword\quotedblright
+   \definedummyword\quoteleft
+   \definedummyword\quoteright
+   \definedummyword\quotesinglbase
+   \definedummyword\result
+   \definedummyword\textdegree
+   %
+   % We want to disable all macros so that they are not expanded by \write.
+   \macrolist
+   %
+   \normalturnoffactive
+   %
+   % Handle some cases of @value -- where it does not contain any
+   % (non-fully-expandable) commands.
+   \makevalueexpandable
+ }
+ 
+ % \commondummiesnofonts: common to \commondummies and \indexnofonts.
+ %
+ \def\commondummiesnofonts{%
+   % Control letters and accents.
+   \definedummyletter\!%
+   \definedummyaccent\"%
+   \definedummyaccent\'%
+   \definedummyletter\*%
+   \definedummyaccent\,%
+   \definedummyletter\.%
+   \definedummyletter\/%
+   \definedummyletter\:%
+   \definedummyaccent\=%
+   \definedummyletter\?%
+   \definedummyaccent\^%
+   \definedummyaccent\`%
+   \definedummyaccent\~%
+   \definedummyword\u
+   \definedummyword\v
+   \definedummyword\H
+   \definedummyword\dotaccent
+   \definedummyword\ringaccent
+   \definedummyword\tieaccent
+   \definedummyword\ubaraccent
+   \definedummyword\udotaccent
+   \definedummyword\dotless
+   %
+   % Texinfo font commands.
+   \definedummyword\b
+   \definedummyword\i
+   \definedummyword\r
+   \definedummyword\sc
+   \definedummyword\t
+   %
+   % Commands that take arguments.
+   \definedummyword\acronym
+   \definedummyword\cite
+   \definedummyword\code
+   \definedummyword\command
+   \definedummyword\dfn
+   \definedummyword\emph
+   \definedummyword\env
+   \definedummyword\file
+   \definedummyword\kbd
+   \definedummyword\key
+   \definedummyword\math
+   \definedummyword\option
+   \definedummyword\pxref
+   \definedummyword\ref
+   \definedummyword\samp
+   \definedummyword\strong
+   \definedummyword\tie
+   \definedummyword\uref
+   \definedummyword\url
+   \definedummyword\var
+   \definedummyword\verb
+   \definedummyword\w
+   \definedummyword\xref
+ }
+ 
+ % \indexnofonts is used when outputting the strings to sort the index
+ % by, and when constructing control sequence names.  It eliminates all
+ % control sequences and just writes whatever the best ASCII sort string
+ % would be for a given command (usually its argument).
+ %
+ \def\indexnofonts{%
+   % Accent commands should become @asis.
+   \def\definedummyaccent##1{\let##1\asis}%
+   % We can just ignore other control letters.
+   \def\definedummyletter##1{\let##1\empty}%
+   % Hopefully, all control words can become @asis.
+   \let\definedummyword\definedummyaccent
+   %
+   \commondummiesnofonts
+   %
+   % Don't no-op \tt, since it isn't a user-level command
+   % and is used in the definitions of the active chars like <, >, |, etc.
+   % Likewise with the other plain tex font commands.
+   %\let\tt=\asis
+   %
+   \def\ { }%
+   \def\@{@}%
+   % how to handle braces?
+   \def\_{\normalunderscore}%
+   %
+   % Non-English letters.
+   \def\AA{AA}%
+   \def\AE{AE}%
+   \def\L{L}%
+   \def\OE{OE}%
+   \def\O{O}%
+   \def\aa{aa}%
+   \def\ae{ae}%
+   \def\l{l}%
+   \def\oe{oe}%
+   \def\o{o}%
+   \def\ss{ss}%
+   \def\exclamdown{!}%
+   \def\questiondown{?}%
+   \def\ordf{a}%
+   \def\ordm{o}%
+   %
+   \def\LaTeX{LaTeX}%
+   \def\TeX{TeX}%
+   %
+   % Assorted special characters.
+   % (The following {} will end up in the sort string, but that's ok.)
+   \def\bullet{bullet}%
+   \def\comma{,}%
+   \def\copyright{copyright}%
+   \def\registeredsymbol{R}%
+   \def\dots{...}%
+   \def\enddots{...}%
+   \def\equiv{==}%
+   \def\error{error}%
+   \def\euro{euro}%
+   \def\guillemetleft{<<}%
+   \def\guillemetright{>>}%
+   \def\guilsinglleft{<}%
+   \def\guilsinglright{>}%
+   \def\expansion{==>}%
+   \def\minus{-}%
+   \def\pounds{pounds}%
+   \def\point{.}%
+   \def\print{-|}%
+   \def\quotedblbase{"}%
+   \def\quotedblleft{"}%
+   \def\quotedblright{"}%
+   \def\quoteleft{`}%
+   \def\quoteright{'}%
+   \def\quotesinglbase{,}%
+   \def\result{=>}%
+   \def\textdegree{degrees}%
+   %
+   % We need to get rid of all macros, leaving only the arguments (if present).
+   % Of course this is not nearly correct, but it is the best we can do for now.
+   % makeinfo does not expand macros in the argument to @deffn, which ends up
+   % writing an index entry, and texindex isn't prepared for an index sort entry
+   % that starts with \.
+   % 
+   % Since macro invocations are followed by braces, we can just redefine them
+   % to take a single TeX argument.  The case of a macro invocation that
+   % goes to end-of-line is not handled.
+   % 
+   \macrolist
+ }
+ 
+ \let\indexbackslash=0  %overridden during \printindex.
+ \let\SETmarginindex=\relax % put index entries in margin (undocumented)?
+ 
+ % Most index entries go through here, but \dosubind is the general case.
+ % #1 is the index name, #2 is the entry text.
+ \def\doind#1#2{\dosubind{#1}{#2}{}}
+ 
+ % Workhorse for all \fooindexes.
+ % #1 is name of index, #2 is stuff to put there, #3 is subentry --
+ % empty if called from \doind, as we usually are (the main exception
+ % is with most defuns, which call us directly).
+ %
+ \def\dosubind#1#2#3{%
+   \iflinks
+   {%
+     % Store the main index entry text (including the third arg).
+     \toks0 = {#2}%
+     % If third arg is present, precede it with a space.
+     \def\thirdarg{#3}%
+     \ifx\thirdarg\empty \else
+       \toks0 = \expandafter{\the\toks0 \space #3}%
+     \fi
+     %
+     \edef\writeto{\csname#1indfile\endcsname}%
+     %
+     \safewhatsit\dosubindwrite
+   }%
+   \fi
+ }
+ 
+ % Write the entry in \toks0 to the index file:
+ %
+ \def\dosubindwrite{%
+   % Put the index entry in the margin if desired.
+   \ifx\SETmarginindex\relax\else
+     \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
+   \fi
+   %
+   % Remember, we are within a group.
+   \indexdummies % Must do this here, since \bf, etc expand at this stage
+   \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
+       % so it will be output as is; and it will print as backslash.
+   %
+   % Process the index entry with all font commands turned off, to
+   % get the string to sort by.
+   {\indexnofonts
+    \edef\temp{\the\toks0}% need full expansion
+    \xdef\indexsorttmp{\temp}%
+   }%
+   %
+   % Set up the complete index entry, with both the sort key and
+   % the original text, including any font commands.  We write
+   % three arguments to \entry to the .?? file (four in the
+   % subentry case), texindex reduces to two when writing the .??s
+   % sorted result.
+   \edef\temp{%
+     \write\writeto{%
+       \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
+   }%
+   \temp
+ }
+ 
+ % Take care of unwanted page breaks/skips around a whatsit:
+ %
+ % If a skip is the last thing on the list now, preserve it
+ % by backing up by \lastskip, doing the \write, then inserting
+ % the skip again.  Otherwise, the whatsit generated by the
+ % \write or \pdfdest will make \lastskip zero.  The result is that
+ % sequences like this:
+ % @end defun
+ % @tindex whatever
+ % @defun ...
+ % will have extra space inserted, because the \medbreak in the
+ % start of the @defun won't see the skip inserted by the @end of
+ % the previous defun.
+ %
+ % But don't do any of this if we're not in vertical mode.  We
+ % don't want to do a \vskip and prematurely end a paragraph.
+ %
+ % Avoid page breaks due to these extra skips, too.
+ %
+ % But wait, there is a catch there:
+ % We'll have to check whether \lastskip is zero skip.  \ifdim is not
+ % sufficient for this purpose, as it ignores stretch and shrink parts
+ % of the skip.  The only way seems to be to check the textual
+ % representation of the skip.
+ %
+ % The following is almost like \def\zeroskipmacro{0.0pt} except that
+ % the ``p'' and ``t'' characters have catcode \other, not 11 (letter).
+ %
+ \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
+ %
+ \newskip\whatsitskip
+ \newcount\whatsitpenalty
+ %
+ % ..., ready, GO:
+ %
+ \def\safewhatsit#1{%
+ \ifhmode
+   #1%
+ \else
+   % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
+   \whatsitskip = \lastskip
+   \edef\lastskipmacro{\the\lastskip}%
+   \whatsitpenalty = \lastpenalty
+   %
+   % If \lastskip is nonzero, that means the last item was a
+   % skip.  And since a skip is discardable, that means this
+   % -\whatsitskip glue we're inserting is preceded by a
+   % non-discardable item, therefore it is not a potential
+   % breakpoint, therefore no \nobreak needed.
+   \ifx\lastskipmacro\zeroskipmacro
+   \else
+     \vskip-\whatsitskip
+   \fi
+   %
+   #1%
+   %
+   \ifx\lastskipmacro\zeroskipmacro
+     % If \lastskip was zero, perhaps the last item was a penalty, and
+     % perhaps it was >=10000, e.g., a \nobreak.  In that case, we want
+     % to re-insert the same penalty (values >10000 are used for various
+     % signals); since we just inserted a non-discardable item, any
+     % following glue (such as a \parskip) would be a breakpoint.  For example:
+     % 
+     %   @deffn deffn-whatever
+     %   @vindex index-whatever
+     %   Description.
+     % would allow a break between the index-whatever whatsit
+     % and the "Description." paragraph.
+     \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi
+   \else
+     % On the other hand, if we had a nonzero \lastskip,
+     % this make-up glue would be preceded by a non-discardable item
+     % (the whatsit from the \write), so we must insert a \nobreak.
+     \nobreak\vskip\whatsitskip
+   \fi
+ \fi
+ }
+ 
+ % The index entry written in the file actually looks like
+ %  \entry {sortstring}{page}{topic}
+ % or
+ %  \entry {sortstring}{page}{topic}{subtopic}
+ % The texindex program reads in these files and writes files
+ % containing these kinds of lines:
+ %  \initial {c}
+ %     before the first topic whose initial is c
+ %  \entry {topic}{pagelist}
+ %     for a topic that is used without subtopics
+ %  \primary {topic}
+ %     for the beginning of a topic that is used with subtopics
+ %  \secondary {subtopic}{pagelist}
+ %     for each subtopic.
+ 
+ % Define the user-accessible indexing commands
+ % @findex, @vindex, @kindex, @cindex.
+ 
+ \def\findex {\fnindex}
+ \def\kindex {\kyindex}
+ \def\cindex {\cpindex}
+ \def\vindex {\vrindex}
+ \def\tindex {\tpindex}
+ \def\pindex {\pgindex}
+ 
+ \def\cindexsub {\begingroup\obeylines\cindexsub}
+ {\obeylines %
+ \gdef\cindexsub "#1" #2^^M{\endgroup %
+ \dosubind{cp}{#2}{#1}}}
+ 
+ % Define the macros used in formatting output of the sorted index material.
+ 
+ % @printindex causes a particular index (the ??s file) to get printed.
+ % It does not print any chapter heading (usually an @unnumbered).
+ %
+ \parseargdef\printindex{\begingroup
+   \dobreak \chapheadingskip{10000}%
+   %
+   \smallfonts \rm
+   \tolerance = 9500
+   \plainfrenchspacing
+   \everypar = {}% don't want the \kern\-parindent from indentation suppression.
+   %
+   % See if the index file exists and is nonempty.
+   % Change catcode of @ here so that if the index file contains
+   % \initial {@}
+   % as its first line, TeX doesn't complain about mismatched braces
+   % (because it thinks @} is a control sequence).
+   \catcode`\@ = 11
+   \openin 1 \jobname.#1s
+   \ifeof 1
+     % \enddoublecolumns gets confused if there is no text in the index,
+     % and it loses the chapter title and the aux file entries for the
+     % index.  The easiest way to prevent this problem is to make sure
+     % there is some text.
+     \putwordIndexNonexistent
+   \else
+     %
+     % If the index file exists but is empty, then \openin leaves \ifeof
+     % false.  We have to make TeX try to read something from the file, so
+     % it can discover if there is anything in it.
+     \read 1 to \temp
+     \ifeof 1
+       \putwordIndexIsEmpty
+     \else
+       % Index files are almost Texinfo source, but we use \ as the escape
+       % character.  It would be better to use @, but that's too big a change
+       % to make right now.
+       \def\indexbackslash{\backslashcurfont}%
+       \catcode`\\ = 0
+       \escapechar = `\\
+       \begindoublecolumns
+       \input \jobname.#1s
+       \enddoublecolumns
+     \fi
+   \fi
+   \closein 1
+ \endgroup}
+ 
+ % These macros are used by the sorted index file itself.
+ % Change them to control the appearance of the index.
+ 
+ \def\initial#1{{%
+   % Some minor font changes for the special characters.
+   \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
+   %
+   % Remove any glue we may have, we'll be inserting our own.
+   \removelastskip
+   %
+   % We like breaks before the index initials, so insert a bonus.
+   \nobreak
+   \vskip 0pt plus 3\baselineskip
+   \penalty 0
+   \vskip 0pt plus -3\baselineskip
+   %
+   % Typeset the initial.  Making this add up to a whole number of
+   % baselineskips increases the chance of the dots lining up from column
+   % to column.  It still won't often be perfect, because of the stretch
+   % we need before each entry, but it's better.
+   %
+   % No shrink because it confuses \balancecolumns.
+   \vskip 1.67\baselineskip plus .5\baselineskip
+   \leftline{\secbf #1}%
+   % Do our best not to break after the initial.
+   \nobreak
+   \vskip .33\baselineskip plus .1\baselineskip
+ }}
+ 
+ % \entry typesets a paragraph consisting of the text (#1), dot leaders, and
+ % then page number (#2) flushed to the right margin.  It is used for index
+ % and table of contents entries.  The paragraph is indented by \leftskip.
+ %
+ % A straightforward implementation would start like this:
+ %	\def\entry#1#2{...
+ % But this freezes the catcodes in the argument, and can cause problems to
+ % @code, which sets - active.  This problem was fixed by a kludge---
+ % ``-'' was active throughout whole index, but this isn't really right.
+ %
+ % The right solution is to prevent \entry from swallowing the whole text.
+ %                                 --kasal, 21nov03
+ \def\entry{%
+   \begingroup
+     %
+     % Start a new paragraph if necessary, so our assignments below can't
+     % affect previous text.
+     \par
+     %
+     % Do not fill out the last line with white space.
+     \parfillskip = 0in
+     %
+     % No extra space above this paragraph.
+     \parskip = 0in
+     %
+     % Do not prefer a separate line ending with a hyphen to fewer lines.
+     \finalhyphendemerits = 0
+     %
+     % \hangindent is only relevant when the entry text and page number
+     % don't both fit on one line.  In that case, bob suggests starting the
+     % dots pretty far over on the line.  Unfortunately, a large
+     % indentation looks wrong when the entry text itself is broken across
+     % lines.  So we use a small indentation and put up with long leaders.
+     %
+     % \hangafter is reset to 1 (which is the value we want) at the start
+     % of each paragraph, so we need not do anything with that.
+     \hangindent = 2em
+     %
+     % When the entry text needs to be broken, just fill out the first line
+     % with blank space.
+     \rightskip = 0pt plus1fil
+     %
+     % A bit of stretch before each entry for the benefit of balancing
+     % columns.
+     \vskip 0pt plus1pt
+     %
+     % Swallow the left brace of the text (first parameter):
+     \afterassignment\doentry
+     \let\temp =
+ }
+ \def\doentry{%
+     \bgroup % Instead of the swallowed brace.
+       \noindent
+       \aftergroup\finishentry
+       % And now comes the text of the entry.
+ }
+ \def\finishentry#1{%
+     % #1 is the page number.
+     %
+     % The following is kludged to not output a line of dots in the index if
+     % there are no page numbers.  The next person who breaks this will be
+     % cursed by a Unix daemon.
+     \setbox\boxA = \hbox{#1}%
+     \ifdim\wd\boxA = 0pt
+       \ %
+     \else
+       %
+       % If we must, put the page number on a line of its own, and fill out
+       % this line with blank space.  (The \hfil is overwhelmed with the
+       % fill leaders glue in \indexdotfill if the page number does fit.)
+       \hfil\penalty50
+       \null\nobreak\indexdotfill % Have leaders before the page number.
+       %
+       % The `\ ' here is removed by the implicit \unskip that TeX does as
+       % part of (the primitive) \par.  Without it, a spurious underfull
+       % \hbox ensues.
+       \ifpdf
+ 	\pdfgettoks#1.%
+ 	\ \the\toksA
+       \else
+ 	\ #1%
+       \fi
+     \fi
+     \par
+   \endgroup
+ }
+ 
+ % Like plain.tex's \dotfill, except uses up at least 1 em.
+ \def\indexdotfill{\cleaders
+   \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
+ 
+ \def\primary #1{\line{#1\hfil}}
+ 
+ \newskip\secondaryindent \secondaryindent=0.5cm
+ \def\secondary#1#2{{%
+   \parfillskip=0in
+   \parskip=0in
+   \hangindent=1in
+   \hangafter=1
+   \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
+   \ifpdf
+     \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+   \else
+     #2
+   \fi
+   \par
+ }}
+ 
+ % Define two-column mode, which we use to typeset indexes.
+ % Adapted from the TeXbook, page 416, which is to say,
+ % the manmac.tex format used to print the TeXbook itself.
+ \catcode`\@=11
+ 
+ \newbox\partialpage
+ \newdimen\doublecolumnhsize
+ 
+ \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
+   % Grab any single-column material above us.
+   \output = {%
+     %
+     % Here is a possibility not foreseen in manmac: if we accumulate a
+     % whole lot of material, we might end up calling this \output
+     % routine twice in a row (see the doublecol-lose test, which is
+     % essentially a couple of indexes with @setchapternewpage off).  In
+     % that case we just ship out what is in \partialpage with the normal
+     % output routine.  Generally, \partialpage will be empty when this
+     % runs and this will be a no-op.  See the indexspread.tex test case.
+     \ifvoid\partialpage \else
+       \onepageout{\pagecontents\partialpage}%
+     \fi
+     %
+     \global\setbox\partialpage = \vbox{%
+       % Unvbox the main output page.
+       \unvbox\PAGE
+       \kern-\topskip \kern\baselineskip
+     }%
+   }%
+   \eject % run that output routine to set \partialpage
+   %
+   % Use the double-column output routine for subsequent pages.
+   \output = {\doublecolumnout}%
+   %
+   % Change the page size parameters.  We could do this once outside this
+   % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
+   % format, but then we repeat the same computation.  Repeating a couple
+   % of assignments once per index is clearly meaningless for the
+   % execution time, so we may as well do it in one place.
+   %
+   % First we halve the line length, less a little for the gutter between
+   % the columns.  We compute the gutter based on the line length, so it
+   % changes automatically with the paper format.  The magic constant
+   % below is chosen so that the gutter has the same value (well, +-<1pt)
+   % as it did when we hard-coded it.
+   %
+   % We put the result in a separate register, \doublecolumhsize, so we
+   % can restore it in \pagesofar, after \hsize itself has (potentially)
+   % been clobbered.
+   %
+   \doublecolumnhsize = \hsize
+     \advance\doublecolumnhsize by -.04154\hsize
+     \divide\doublecolumnhsize by 2
+   \hsize = \doublecolumnhsize
+   %
+   % Double the \vsize as well.  (We don't need a separate register here,
+   % since nobody clobbers \vsize.)
+   \vsize = 2\vsize
+ }
+ 
+ % The double-column output routine for all double-column pages except
+ % the last.
+ %
+ \def\doublecolumnout{%
+   \splittopskip=\topskip \splitmaxdepth=\maxdepth
+   % Get the available space for the double columns -- the normal
+   % (undoubled) page height minus any material left over from the
+   % previous page.
+   \dimen@ = \vsize
+   \divide\dimen@ by 2
+   \advance\dimen@ by -\ht\partialpage
+   %
+   % box0 will be the left-hand column, box2 the right.
+   \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+   \onepageout\pagesofar
+   \unvbox255
+   \penalty\outputpenalty
+ }
+ %
+ % Re-output the contents of the output page -- any previous material,
+ % followed by the two boxes we just split, in box0 and box2.
+ \def\pagesofar{%
+   \unvbox\partialpage
+   %
+   \hsize = \doublecolumnhsize
+   \wd0=\hsize \wd2=\hsize
+   \hbox to\pagewidth{\box0\hfil\box2}%
+ }
+ %
+ % All done with double columns.
+ \def\enddoublecolumns{%
+   % The following penalty ensures that the page builder is exercised
+   % _before_ we change the output routine.  This is necessary in the
+   % following situation:
+   %
+   % The last section of the index consists only of a single entry.
+   % Before this section, \pagetotal is less than \pagegoal, so no
+   % break occurs before the last section starts.  However, the last
+   % section, consisting of \initial and the single \entry, does not
+   % fit on the page and has to be broken off.  Without the following
+   % penalty the page builder will not be exercised until \eject
+   % below, and by that time we'll already have changed the output
+   % routine to the \balancecolumns version, so the next-to-last
+   % double-column page will be processed with \balancecolumns, which
+   % is wrong:  The two columns will go to the main vertical list, with
+   % the broken-off section in the recent contributions.  As soon as
+   % the output routine finishes, TeX starts reconsidering the page
+   % break.  The two columns and the broken-off section both fit on the
+   % page, because the two columns now take up only half of the page
+   % goal.  When TeX sees \eject from below which follows the final
+   % section, it invokes the new output routine that we've set after
+   % \balancecolumns below; \onepageout will try to fit the two columns
+   % and the final section into the vbox of \pageheight (see
+   % \pagebody), causing an overfull box.
+   %
+   % Note that glue won't work here, because glue does not exercise the
+   % page builder, unlike penalties (see The TeXbook, pp. 280-281).
+   \penalty0
+   %
+   \output = {%
+     % Split the last of the double-column material.  Leave it on the
+     % current page, no automatic page break.
+     \balancecolumns
+     %
+     % If we end up splitting too much material for the current page,
+     % though, there will be another page break right after this \output
+     % invocation ends.  Having called \balancecolumns once, we do not
+     % want to call it again.  Therefore, reset \output to its normal
+     % definition right away.  (We hope \balancecolumns will never be
+     % called on to balance too much material, but if it is, this makes
+     % the output somewhat more palatable.)
+     \global\output = {\onepageout{\pagecontents\PAGE}}%
+   }%
+   \eject
+   \endgroup % started in \begindoublecolumns
+   %
+   % \pagegoal was set to the doubled \vsize above, since we restarted
+   % the current page.  We're now back to normal single-column
+   % typesetting, so reset \pagegoal to the normal \vsize (after the
+   % \endgroup where \vsize got restored).
+   \pagegoal = \vsize
+ }
+ %
+ % Called at the end of the double column material.
+ \def\balancecolumns{%
+   \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
+   \dimen@ = \ht0
+   \advance\dimen@ by \topskip
+   \advance\dimen@ by-\baselineskip
+   \divide\dimen@ by 2 % target to split to
+   %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
+   \splittopskip = \topskip
+   % Loop until we get a decent breakpoint.
+   {%
+     \vbadness = 10000
+     \loop
+       \global\setbox3 = \copy0
+       \global\setbox1 = \vsplit3 to \dimen@
+     \ifdim\ht3>\dimen@
+       \global\advance\dimen@ by 1pt
+     \repeat
+   }%
+   %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
+   \setbox0=\vbox to\dimen@{\unvbox1}%
+   \setbox2=\vbox to\dimen@{\unvbox3}%
+   %
+   \pagesofar
+ }
+ \catcode`\@ = \other
+ 
+ 
+ \message{sectioning,}
+ % Chapters, sections, etc.
+ 
+ % \unnumberedno is an oxymoron, of course.  But we count the unnumbered
+ % sections so that we can refer to them unambiguously in the pdf
+ % outlines by their "section number".  We avoid collisions with chapter
+ % numbers by starting them at 10000.  (If a document ever has 10000
+ % chapters, we're in trouble anyway, I'm sure.)
+ \newcount\unnumberedno \unnumberedno = 10000
+ \newcount\chapno
+ \newcount\secno        \secno=0
+ \newcount\subsecno     \subsecno=0
+ \newcount\subsubsecno  \subsubsecno=0
+ 
+ % This counter is funny since it counts through charcodes of letters A, B, ...
+ \newcount\appendixno  \appendixno = `\@
+ %
+ % \def\appendixletter{\char\the\appendixno}
+ % We do the following ugly conditional instead of the above simple
+ % construct for the sake of pdftex, which needs the actual
+ % letter in the expansion, not just typeset.
+ %
+ \def\appendixletter{%
+   \ifnum\appendixno=`A A%
+   \else\ifnum\appendixno=`B B%
+   \else\ifnum\appendixno=`C C%
+   \else\ifnum\appendixno=`D D%
+   \else\ifnum\appendixno=`E E%
+   \else\ifnum\appendixno=`F F%
+   \else\ifnum\appendixno=`G G%
+   \else\ifnum\appendixno=`H H%
+   \else\ifnum\appendixno=`I I%
+   \else\ifnum\appendixno=`J J%
+   \else\ifnum\appendixno=`K K%
+   \else\ifnum\appendixno=`L L%
+   \else\ifnum\appendixno=`M M%
+   \else\ifnum\appendixno=`N N%
+   \else\ifnum\appendixno=`O O%
+   \else\ifnum\appendixno=`P P%
+   \else\ifnum\appendixno=`Q Q%
+   \else\ifnum\appendixno=`R R%
+   \else\ifnum\appendixno=`S S%
+   \else\ifnum\appendixno=`T T%
+   \else\ifnum\appendixno=`U U%
+   \else\ifnum\appendixno=`V V%
+   \else\ifnum\appendixno=`W W%
+   \else\ifnum\appendixno=`X X%
+   \else\ifnum\appendixno=`Y Y%
+   \else\ifnum\appendixno=`Z Z%
+   % The \the is necessary, despite appearances, because \appendixletter is
+   % expanded while writing the .toc file.  \char\appendixno is not
+   % expandable, thus it is written literally, thus all appendixes come out
+   % with the same letter (or @) in the toc without it.
+   \else\char\the\appendixno
+   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+ 
+ % Each @chapter defines these (using marks) as the number+name, number
+ % and name of the chapter.  Page headings and footings can use
+ % these.  @section does likewise.
+ \def\thischapter{}
+ \def\thischapternum{}
+ \def\thischaptername{}
+ \def\thissection{}
+ \def\thissectionnum{}
+ \def\thissectionname{}
+ 
+ \newcount\absseclevel % used to calculate proper heading level
+ \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
+ 
+ % @raisesections: treat @section as chapter, @subsection as section, etc.
+ \def\raisesections{\global\advance\secbase by -1}
+ \let\up=\raisesections % original BFox name
+ 
+ % @lowersections: treat @chapter as section, @section as subsection, etc.
+ \def\lowersections{\global\advance\secbase by 1}
+ \let\down=\lowersections % original BFox name
+ 
+ % we only have subsub.
+ \chardef\maxseclevel = 3
+ %
+ % A numbered section within an unnumbered changes to unnumbered too.
+ % To achive this, remember the "biggest" unnum. sec. we are currently in:
+ \chardef\unmlevel = \maxseclevel
+ %
+ % Trace whether the current chapter is an appendix or not:
+ % \chapheadtype is "N" or "A", unnumbered chapters are ignored.
+ \def\chapheadtype{N}
+ 
+ % Choose a heading macro
+ % #1 is heading type
+ % #2 is heading level
+ % #3 is text for heading
+ \def\genhead#1#2#3{%
+   % Compute the abs. sec. level:
+   \absseclevel=#2
+   \advance\absseclevel by \secbase
+   % Make sure \absseclevel doesn't fall outside the range:
+   \ifnum \absseclevel < 0
+     \absseclevel = 0
+   \else
+     \ifnum \absseclevel > 3
+       \absseclevel = 3
+     \fi
+   \fi
+   % The heading type:
+   \def\headtype{#1}%
+   \if \headtype U%
+     \ifnum \absseclevel < \unmlevel
+       \chardef\unmlevel = \absseclevel
+     \fi
+   \else
+     % Check for appendix sections:
+     \ifnum \absseclevel = 0
+       \edef\chapheadtype{\headtype}%
+     \else
+       \if \headtype A\if \chapheadtype N%
+ 	\errmessage{@appendix... within a non-appendix chapter}%
+       \fi\fi
+     \fi
+     % Check for numbered within unnumbered:
+     \ifnum \absseclevel > \unmlevel
+       \def\headtype{U}%
+     \else
+       \chardef\unmlevel = 3
+     \fi
+   \fi
+   % Now print the heading:
+   \if \headtype U%
+     \ifcase\absseclevel
+ 	\unnumberedzzz{#3}%
+     \or \unnumberedseczzz{#3}%
+     \or \unnumberedsubseczzz{#3}%
+     \or \unnumberedsubsubseczzz{#3}%
+     \fi
+   \else
+     \if \headtype A%
+       \ifcase\absseclevel
+ 	  \appendixzzz{#3}%
+       \or \appendixsectionzzz{#3}%
+       \or \appendixsubseczzz{#3}%
+       \or \appendixsubsubseczzz{#3}%
+       \fi
+     \else
+       \ifcase\absseclevel
+ 	  \chapterzzz{#3}%
+       \or \seczzz{#3}%
+       \or \numberedsubseczzz{#3}%
+       \or \numberedsubsubseczzz{#3}%
+       \fi
+     \fi
+   \fi
+   \suppressfirstparagraphindent
+ }
+ 
+ % an interface:
+ \def\numhead{\genhead N}
+ \def\apphead{\genhead A}
+ \def\unnmhead{\genhead U}
+ 
+ % @chapter, @appendix, @unnumbered.  Increment top-level counter, reset
+ % all lower-level sectioning counters to zero.
+ %
+ % Also set \chaplevelprefix, which we prepend to @float sequence numbers
+ % (e.g., figures), q.v.  By default (before any chapter), that is empty.
+ \let\chaplevelprefix = \empty
+ %
+ \outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
+ \def\chapterzzz#1{%
+   % section resetting is \global in case the chapter is in a group, such
+   % as an @include file.
+   \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+     \global\advance\chapno by 1
+   %
+   % Used for \float.
+   \gdef\chaplevelprefix{\the\chapno.}%
+   \resetallfloatnos
+   %
+   \message{\putwordChapter\space \the\chapno}%
+   %
+   % Write the actual heading.
+   \chapmacro{#1}{Ynumbered}{\the\chapno}%
+   %
+   % So @section and the like are numbered underneath this chapter.
+   \global\let\section = \numberedsec
+   \global\let\subsection = \numberedsubsec
+   \global\let\subsubsection = \numberedsubsubsec
+ }
+ 
+ \outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz
+ \def\appendixzzz#1{%
+   \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+     \global\advance\appendixno by 1
+   \gdef\chaplevelprefix{\appendixletter.}%
+   \resetallfloatnos
+   %
+   \def\appendixnum{\putwordAppendix\space \appendixletter}%
+   \message{\appendixnum}%
+   %
+   \chapmacro{#1}{Yappendix}{\appendixletter}%
+   %
+   \global\let\section = \appendixsec
+   \global\let\subsection = \appendixsubsec
+   \global\let\subsubsection = \appendixsubsubsec
+ }
+ 
+ \outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
+ \def\unnumberedzzz#1{%
+   \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+     \global\advance\unnumberedno by 1
+   %
+   % Since an unnumbered has no number, no prefix for figures.
+   \global\let\chaplevelprefix = \empty
+   \resetallfloatnos
+   %
+   % This used to be simply \message{#1}, but TeX fully expands the
+   % argument to \message.  Therefore, if #1 contained @-commands, TeX
+   % expanded them.  For example, in `@unnumbered The @cite{Book}', TeX
+   % expanded @cite (which turns out to cause errors because \cite is meant
+   % to be executed, not expanded).
+   %
+   % Anyway, we don't want the fully-expanded definition of @cite to appear
+   % as a result of the \message, we just want `@cite' itself.  We use
+   % \the<toks register> to achieve this: TeX expands \the<toks> only once,
+   % simply yielding the contents of <toks register>.  (We also do this for
+   % the toc entries.)
+   \toks0 = {#1}%
+   \message{(\the\toks0)}%
+   %
+   \chapmacro{#1}{Ynothing}{\the\unnumberedno}%
+   %
+   \global\let\section = \unnumberedsec
+   \global\let\subsection = \unnumberedsubsec
+   \global\let\subsubsection = \unnumberedsubsubsec
+ }
+ 
+ % @centerchap is like @unnumbered, but the heading is centered.
+ \outer\parseargdef\centerchap{%
+   % Well, we could do the following in a group, but that would break
+   % an assumption that \chapmacro is called at the outermost level.
+   % Thus we are safer this way:		--kasal, 24feb04
+   \let\centerparametersmaybe = \centerparameters
+   \unnmhead0{#1}%
+   \let\centerparametersmaybe = \relax
+ }
+ 
+ % @top is like @unnumbered.
+ \let\top\unnumbered
+ 
+ % Sections.
+ \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
+ \def\seczzz#1{%
+   \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+   \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
+ }
+ 
+ \outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
+ \def\appendixsectionzzz#1{%
+   \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+   \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
+ }
+ \let\appendixsec\appendixsection
+ 
+ \outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
+ \def\unnumberedseczzz#1{%
+   \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
+   \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
+ }
+ 
+ % Subsections.
+ \outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
+ \def\numberedsubseczzz#1{%
+   \global\subsubsecno=0  \global\advance\subsecno by 1
+   \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
+ }
+ 
+ \outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
+ \def\appendixsubseczzz#1{%
+   \global\subsubsecno=0  \global\advance\subsecno by 1
+   \sectionheading{#1}{subsec}{Yappendix}%
+                  {\appendixletter.\the\secno.\the\subsecno}%
+ }
+ 
+ \outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
+ \def\unnumberedsubseczzz#1{%
+   \global\subsubsecno=0  \global\advance\subsecno by 1
+   \sectionheading{#1}{subsec}{Ynothing}%
+                  {\the\unnumberedno.\the\secno.\the\subsecno}%
+ }
+ 
+ % Subsubsections.
+ \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
+ \def\numberedsubsubseczzz#1{%
+   \global\advance\subsubsecno by 1
+   \sectionheading{#1}{subsubsec}{Ynumbered}%
+                  {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
+ }
+ 
+ \outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
+ \def\appendixsubsubseczzz#1{%
+   \global\advance\subsubsecno by 1
+   \sectionheading{#1}{subsubsec}{Yappendix}%
+                  {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
+ }
+ 
+ \outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
+ \def\unnumberedsubsubseczzz#1{%
+   \global\advance\subsubsecno by 1
+   \sectionheading{#1}{subsubsec}{Ynothing}%
+                  {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}%
+ }
+ 
+ % These macros control what the section commands do, according
+ % to what kind of chapter we are in (ordinary, appendix, or unnumbered).
+ % Define them by default for a numbered chapter.
+ \let\section = \numberedsec
+ \let\subsection = \numberedsubsec
+ \let\subsubsection = \numberedsubsubsec
+ 
+ % Define @majorheading, @heading and @subheading
+ 
+ % NOTE on use of \vbox for chapter headings, section headings, and such:
+ %       1) We use \vbox rather than the earlier \line to permit
+ %          overlong headings to fold.
+ %       2) \hyphenpenalty is set to 10000 because hyphenation in a
+ %          heading is obnoxious; this forbids it.
+ %       3) Likewise, headings look best if no \parindent is used, and
+ %          if justification is not attempted.  Hence \raggedright.
+ 
+ 
+ \def\majorheading{%
+   {\advance\chapheadingskip by 10pt \chapbreak }%
+   \parsearg\chapheadingzzz
+ }
+ 
+ \def\chapheading{\chapbreak \parsearg\chapheadingzzz}
+ \def\chapheadingzzz#1{%
+   {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+                     \parindent=0pt\raggedright
+                     \rm #1\hfill}}%
+   \bigskip \par\penalty 200\relax
+   \suppressfirstparagraphindent
+ }
+ 
+ % @heading, @subheading, @subsubheading.
+ \parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{}
+   \suppressfirstparagraphindent}
+ \parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{}
+   \suppressfirstparagraphindent}
+ \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
+   \suppressfirstparagraphindent}
+ 
+ % These macros generate a chapter, section, etc. heading only
+ % (including whitespace, linebreaking, etc. around it),
+ % given all the information in convenient, parsed form.
+ 
+ %%% Args are the skip and penalty (usually negative)
+ \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
+ 
+ %%% Define plain chapter starts, and page on/off switching for it
+ % Parameter controlling skip before chapter headings (if needed)
+ 
+ \newskip\chapheadingskip
+ 
+ \def\chapbreak{\dobreak \chapheadingskip {-4000}}
+ \def\chappager{\par\vfill\supereject}
+ % Because \domark is called before \chapoddpage, the filler page will
+ % get the headings for the next chapter, which is wrong.  But we don't
+ % care -- we just disable all headings on the filler page.
+ \def\chapoddpage{%
+   \chappager
+   \ifodd\pageno \else
+     \begingroup
+       \evenheadline={\hfil}\evenfootline={\hfil}%
+       \oddheadline={\hfil}\oddfootline={\hfil}%
+       \hbox to 0pt{}%
+       \chappager
+     \endgroup
+   \fi
+ }
+ 
+ \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
+ 
+ \def\CHAPPAGoff{%
+ \global\let\contentsalignmacro = \chappager
+ \global\let\pchapsepmacro=\chapbreak
+ \global\let\pagealignmacro=\chappager}
+ 
+ \def\CHAPPAGon{%
+ \global\let\contentsalignmacro = \chappager
+ \global\let\pchapsepmacro=\chappager
+ \global\let\pagealignmacro=\chappager
+ \global\def\HEADINGSon{\HEADINGSsingle}}
+ 
+ \def\CHAPPAGodd{%
+ \global\let\contentsalignmacro = \chapoddpage
+ \global\let\pchapsepmacro=\chapoddpage
+ \global\let\pagealignmacro=\chapoddpage
+ \global\def\HEADINGSon{\HEADINGSdouble}}
+ 
+ \CHAPPAGon
+ 
+ % Chapter opening.
+ %
+ % #1 is the text, #2 is the section type (Ynumbered, Ynothing,
+ % Yappendix, Yomitfromtoc), #3 the chapter number.
+ %
+ % To test against our argument.
+ \def\Ynothingkeyword{Ynothing}
+ \def\Yomitfromtockeyword{Yomitfromtoc}
+ \def\Yappendixkeyword{Yappendix}
+ %
+ \def\chapmacro#1#2#3{%
+   % Insert the first mark before the heading break (see notes for \domark).
+   \let\prevchapterdefs=\lastchapterdefs
+   \let\prevsectiondefs=\lastsectiondefs
+   \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
+                         \gdef\thissection{}}%
+   %
+   \def\temptype{#2}%
+   \ifx\temptype\Ynothingkeyword
+     \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+                           \gdef\thischapter{\thischaptername}}%
+   \else\ifx\temptype\Yomitfromtockeyword
+     \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+                           \gdef\thischapter{}}%
+   \else\ifx\temptype\Yappendixkeyword
+     \toks0={#1}%
+     \xdef\lastchapterdefs{%
+       \gdef\noexpand\thischaptername{\the\toks0}%
+       \gdef\noexpand\thischapternum{\appendixletter}%
+       \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum:
+                                  \noexpand\thischaptername}%
+     }%
+   \else
+     \toks0={#1}%
+     \xdef\lastchapterdefs{%
+       \gdef\noexpand\thischaptername{\the\toks0}%
+       \gdef\noexpand\thischapternum{\the\chapno}%
+       \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum:
+                                  \noexpand\thischaptername}%
+     }%
+   \fi\fi\fi
+   %
+   % Output the mark.  Pass it through \safewhatsit, to take care of
+   % the preceding space.
+   \safewhatsit\domark
+   %
+   % Insert the chapter heading break.
+   \pchapsepmacro
+   %
+   % Now the second mark, after the heading break.  No break points
+   % between here and the heading.
+   \let\prevchapterdefs=\lastchapterdefs
+   \let\prevsectiondefs=\lastsectiondefs
+   \domark
+   %
+   {%
+     \chapfonts \rm
+     %
+     % Have to define \lastsection before calling \donoderef, because the
+     % xref code eventually uses it.  On the other hand, it has to be called
+     % after \pchapsepmacro, or the headline will change too soon.
+     \gdef\lastsection{#1}%
+     %
+     % Only insert the separating space if we have a chapter/appendix
+     % number, and don't print the unnumbered ``number''.
+     \ifx\temptype\Ynothingkeyword
+       \setbox0 = \hbox{}%
+       \def\toctype{unnchap}%
+     \else\ifx\temptype\Yomitfromtockeyword
+       \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
+       \def\toctype{omit}%
+     \else\ifx\temptype\Yappendixkeyword
+       \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
+       \def\toctype{app}%
+     \else
+       \setbox0 = \hbox{#3\enspace}%
+       \def\toctype{numchap}%
+     \fi\fi\fi
+     %
+     % Write the toc entry for this chapter.  Must come before the
+     % \donoderef, because we include the current node name in the toc
+     % entry, and \donoderef resets it to empty.
+     \writetocentry{\toctype}{#1}{#3}%
+     %
+     % For pdftex, we have to write out the node definition (aka, make
+     % the pdfdest) after any page break, but before the actual text has
+     % been typeset.  If the destination for the pdf outline is after the
+     % text, then jumping from the outline may wind up with the text not
+     % being visible, for instance under high magnification.
+     \donoderef{#2}%
+     %
+     % Typeset the actual heading.
+     \nobreak % Avoid page breaks at the interline glue.
+     \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+           \hangindent=\wd0 \centerparametersmaybe
+           \unhbox0 #1\par}%
+   }%
+   \nobreak\bigskip % no page break after a chapter title
+   \nobreak
+ }
+ 
+ % @centerchap -- centered and unnumbered.
+ \let\centerparametersmaybe = \relax
+ \def\centerparameters{%
+   \advance\rightskip by 3\rightskip
+   \leftskip = \rightskip
+   \parfillskip = 0pt
+ }
+ 
+ 
+ % I don't think this chapter style is supported any more, so I'm not
+ % updating it with the new noderef stuff.  We'll see.  --karl, 11aug03.
+ %
+ \def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
+ %
+ \def\unnchfopen #1{%
+ \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+                        \parindent=0pt\raggedright
+                        \rm #1\hfill}}\bigskip \par\nobreak
+ }
+ \def\chfopen #1#2{\chapoddpage {\chapfonts
+ \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
+ \par\penalty 5000 %
+ }
+ \def\centerchfopen #1{%
+ \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+                        \parindent=0pt
+                        \hfill {\rm #1}\hfill}}\bigskip \par\nobreak
+ }
+ \def\CHAPFopen{%
+   \global\let\chapmacro=\chfopen
+   \global\let\centerchapmacro=\centerchfopen}
+ 
+ 
+ % Section titles.  These macros combine the section number parts and
+ % call the generic \sectionheading to do the printing.
+ %
+ \newskip\secheadingskip
+ \def\secheadingbreak{\dobreak \secheadingskip{-1000}}
+ 
+ % Subsection titles.
+ \newskip\subsecheadingskip
+ \def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}}
+ 
+ % Subsubsection titles.
+ \def\subsubsecheadingskip{\subsecheadingskip}
+ \def\subsubsecheadingbreak{\subsecheadingbreak}
+ 
+ 
+ % Print any size, any type, section title.
+ %
+ % #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
+ % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
+ % section number.
+ %
+ \def\seckeyword{sec}
+ %
+ \def\sectionheading#1#2#3#4{%
+   {%
+     % Switch to the right set of fonts.
+     \csname #2fonts\endcsname \rm
+     %
+     \def\sectionlevel{#2}%
+     \def\temptype{#3}%
+     %
+     % Insert first mark before the heading break (see notes for \domark).
+     \let\prevsectiondefs=\lastsectiondefs
+     \ifx\temptype\Ynothingkeyword
+       \ifx\sectionlevel\seckeyword
+         \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
+                               \gdef\thissection{\thissectionname}}%
+       \fi
+     \else\ifx\temptype\Yomitfromtockeyword
+       % Don't redefine \thissection.
+     \else\ifx\temptype\Yappendixkeyword
+       \ifx\sectionlevel\seckeyword
+         \toks0={#1}%
+         \xdef\lastsectiondefs{%
+           \gdef\noexpand\thissectionname{\the\toks0}%
+           \gdef\noexpand\thissectionnum{#4}%
+           \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
+                                      \noexpand\thissectionname}%
+         }%
+       \fi
+     \else
+       \ifx\sectionlevel\seckeyword
+         \toks0={#1}%
+         \xdef\lastsectiondefs{%
+           \gdef\noexpand\thissectionname{\the\toks0}%
+           \gdef\noexpand\thissectionnum{#4}%
+           \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
+                                      \noexpand\thissectionname}%
+         }%
+       \fi
+     \fi\fi\fi
+     %
+     % Output the mark.  Pass it through \safewhatsit, to take care of
+     % the preceding space.
+     \safewhatsit\domark
+     %
+     % Insert space above the heading.
+     \csname #2headingbreak\endcsname
+     %
+     % Now the second mark, after the heading break.  No break points
+     % between here and the heading.
+     \let\prevsectiondefs=\lastsectiondefs
+     \domark
+     %
+     % Only insert the space after the number if we have a section number.
+     \ifx\temptype\Ynothingkeyword
+       \setbox0 = \hbox{}%
+       \def\toctype{unn}%
+       \gdef\lastsection{#1}%
+     \else\ifx\temptype\Yomitfromtockeyword
+       % for @headings -- no section number, don't include in toc,
+       % and don't redefine \lastsection.
+       \setbox0 = \hbox{}%
+       \def\toctype{omit}%
+       \let\sectionlevel=\empty
+     \else\ifx\temptype\Yappendixkeyword
+       \setbox0 = \hbox{#4\enspace}%
+       \def\toctype{app}%
+       \gdef\lastsection{#1}%
+     \else
+       \setbox0 = \hbox{#4\enspace}%
+       \def\toctype{num}%
+       \gdef\lastsection{#1}%
+     \fi\fi\fi
+     %
+     % Write the toc entry (before \donoderef).  See comments in \chapmacro.
+     \writetocentry{\toctype\sectionlevel}{#1}{#4}%
+     %
+     % Write the node reference (= pdf destination for pdftex).
+     % Again, see comments in \chapmacro.
+     \donoderef{#3}%
+     %
+     % Interline glue will be inserted when the vbox is completed.
+     % That glue will be a valid breakpoint for the page, since it'll be
+     % preceded by a whatsit (usually from the \donoderef, or from the
+     % \writetocentry if there was no node).  We don't want to allow that
+     % break, since then the whatsits could end up on page n while the
+     % section is on page n+1, thus toc/etc. are wrong.  Debian bug 276000.
+     \nobreak
+     %
+     % Output the actual section heading.
+     \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
+           \hangindent=\wd0  % zero if no section number
+           \unhbox0 #1}%
+   }%
+   % Add extra space after the heading -- half of whatever came above it.
+   % Don't allow stretch, though.
+   \kern .5 \csname #2headingskip\endcsname
+   %
+   % Do not let the kern be a potential breakpoint, as it would be if it
+   % was followed by glue.
+   \nobreak
+   %
+   % We'll almost certainly start a paragraph next, so don't let that
+   % glue accumulate.  (Not a breakpoint because it's preceded by a
+   % discardable item.)
+   \vskip-\parskip
+   % 
+   % This is purely so the last item on the list is a known \penalty >
+   % 10000.  This is so \startdefun can avoid allowing breakpoints after
+   % section headings.  Otherwise, it would insert a valid breakpoint between:
+   % 
+   %   @section sec-whatever
+   %   @deffn def-whatever
+   \penalty 10001
+ }
+ 
+ 
+ \message{toc,}
+ % Table of contents.
+ \newwrite\tocfile
+ 
+ % Write an entry to the toc file, opening it if necessary.
+ % Called from @chapter, etc.
+ %
+ % Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
+ % We append the current node name (if any) and page number as additional
+ % arguments for the \{chap,sec,...}entry macros which will eventually
+ % read this.  The node name is used in the pdf outlines as the
+ % destination to jump to.
+ %
+ % We open the .toc file for writing here instead of at @setfilename (or
+ % any other fixed time) so that @contents can be anywhere in the document.
+ % But if #1 is `omit', then we don't do anything.  This is used for the
+ % table of contents chapter openings themselves.
+ %
+ \newif\iftocfileopened
+ \def\omitkeyword{omit}%
+ %
+ \def\writetocentry#1#2#3{%
+   \edef\writetoctype{#1}%
+   \ifx\writetoctype\omitkeyword \else
+     \iftocfileopened\else
+       \immediate\openout\tocfile = \jobname.toc
+       \global\tocfileopenedtrue
+     \fi
+     %
+     \iflinks
+       {\atdummies
+        \edef\temp{%
+          \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
+        \temp
+       }%
+     \fi
+   \fi
+   %
+   % Tell \shipout to create a pdf destination on each page, if we're
+   % writing pdf.  These are used in the table of contents.  We can't
+   % just write one on every page because the title pages are numbered
+   % 1 and 2 (the page numbers aren't printed), and so are the first
+   % two pages of the document.  Thus, we'd have two destinations named
+   % `1', and two named `2'.
+   \ifpdf \global\pdfmakepagedesttrue \fi
+ }
+ 
+ 
+ % These characters do not print properly in the Computer Modern roman
+ % fonts, so we must take special care.  This is more or less redundant
+ % with the Texinfo input format setup at the end of this file.
+ % 
+ \def\activecatcodes{%
+   \catcode`\"=\active
+   \catcode`\$=\active
+   \catcode`\<=\active
+   \catcode`\>=\active
+   \catcode`\\=\active
+   \catcode`\^=\active
+   \catcode`\_=\active
+   \catcode`\|=\active
+   \catcode`\~=\active
+ }
+ 
+ 
+ % Read the toc file, which is essentially Texinfo input.
+ \def\readtocfile{%
+   \setupdatafile
+   \activecatcodes
+   \input \tocreadfilename
+ }
+ 
+ \newskip\contentsrightmargin \contentsrightmargin=1in
+ \newcount\savepageno
+ \newcount\lastnegativepageno \lastnegativepageno = -1
+ 
+ % Prepare to read what we've written to \tocfile.
+ %
+ \def\startcontents#1{%
+   % If @setchapternewpage on, and @headings double, the contents should
+   % start on an odd page, unlike chapters.  Thus, we maintain
+   % \contentsalignmacro in parallel with \pagealignmacro.
+   % From: Torbjorn Granlund <tege@matematik.su.se>
+   \contentsalignmacro
+   \immediate\closeout\tocfile
+   %
+   % Don't need to put `Contents' or `Short Contents' in the headline.
+   % It is abundantly clear what they are.
+   \chapmacro{#1}{Yomitfromtoc}{}%
+   %
+   \savepageno = \pageno
+   \begingroup                  % Set up to handle contents files properly.
+     \raggedbottom              % Worry more about breakpoints than the bottom.
+     \advance\hsize by -\contentsrightmargin % Don't use the full line length.
+     %
+     % Roman numerals for page numbers.
+     \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
+ }
+ 
+ % redefined for the two-volume lispref.  We always output on
+ % \jobname.toc even if this is redefined.
+ % 
+ \def\tocreadfilename{\jobname.toc}
+ 
+ % Normal (long) toc.
+ %
+ \def\contents{%
+   \startcontents{\putwordTOC}%
+     \openin 1 \tocreadfilename\space
+     \ifeof 1 \else
+       \readtocfile
+     \fi
+     \vfill \eject
+     \contentsalignmacro % in case @setchapternewpage odd is in effect
+     \ifeof 1 \else
+       \pdfmakeoutlines
+     \fi
+     \closein 1
+   \endgroup
+   \lastnegativepageno = \pageno
+   \global\pageno = \savepageno
+ }
+ 
+ % And just the chapters.
+ \def\summarycontents{%
+   \startcontents{\putwordShortTOC}%
+     %
+     \let\numchapentry = \shortchapentry
+     \let\appentry = \shortchapentry
+     \let\unnchapentry = \shortunnchapentry
+     % We want a true roman here for the page numbers.
+     \secfonts
+     \let\rm=\shortcontrm \let\bf=\shortcontbf
+     \let\sl=\shortcontsl \let\tt=\shortconttt
+     \rm
+     \hyphenpenalty = 10000
+     \advance\baselineskip by 1pt % Open it up a little.
+     \def\numsecentry##1##2##3##4{}
+     \let\appsecentry = \numsecentry
+     \let\unnsecentry = \numsecentry
+     \let\numsubsecentry = \numsecentry
+     \let\appsubsecentry = \numsecentry
+     \let\unnsubsecentry = \numsecentry
+     \let\numsubsubsecentry = \numsecentry
+     \let\appsubsubsecentry = \numsecentry
+     \let\unnsubsubsecentry = \numsecentry
+     \openin 1 \tocreadfilename\space
+     \ifeof 1 \else
+       \readtocfile
+     \fi
+     \closein 1
+     \vfill \eject
+     \contentsalignmacro % in case @setchapternewpage odd is in effect
+   \endgroup
+   \lastnegativepageno = \pageno
+   \global\pageno = \savepageno
+ }
+ \let\shortcontents = \summarycontents
+ 
+ % Typeset the label for a chapter or appendix for the short contents.
+ % The arg is, e.g., `A' for an appendix, or `3' for a chapter.
+ %
+ \def\shortchaplabel#1{%
+   % This space should be enough, since a single number is .5em, and the
+   % widest letter (M) is 1em, at least in the Computer Modern fonts.
+   % But use \hss just in case.
+   % (This space doesn't include the extra space that gets added after
+   % the label; that gets put in by \shortchapentry above.)
+   %
+   % We'd like to right-justify chapter numbers, but that looks strange
+   % with appendix letters.  And right-justifying numbers and
+   % left-justifying letters looks strange when there is less than 10
+   % chapters.  Have to read the whole toc once to know how many chapters
+   % there are before deciding ...
+   \hbox to 1em{#1\hss}%
+ }
+ 
+ % These macros generate individual entries in the table of contents.
+ % The first argument is the chapter or section name.
+ % The last argument is the page number.
+ % The arguments in between are the chapter number, section number, ...
+ 
+ % Chapters, in the main contents.
+ \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
+ %
+ % Chapters, in the short toc.
+ % See comments in \dochapentry re vbox and related settings.
+ \def\shortchapentry#1#2#3#4{%
+   \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
+ }
+ 
+ % Appendices, in the main contents.
+ % Need the word Appendix, and a fixed-size box.
+ %
+ \def\appendixbox#1{%
+   % We use M since it's probably the widest letter.
+   \setbox0 = \hbox{\putwordAppendix{} M}%
+   \hbox to \wd0{\putwordAppendix{} #1\hss}}
+ %
+ \def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
+ 
+ % Unnumbered chapters.
+ \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
+ \def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
+ 
+ % Sections.
+ \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
+ \let\appsecentry=\numsecentry
+ \def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
+ 
+ % Subsections.
+ \def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
+ \let\appsubsecentry=\numsubsecentry
+ \def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
+ 
+ % And subsubsections.
+ \def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
+ \let\appsubsubsecentry=\numsubsubsecentry
+ \def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
+ 
+ % This parameter controls the indentation of the various levels.
+ % Same as \defaultparindent.
+ \newdimen\tocindent \tocindent = 15pt
+ 
+ % Now for the actual typesetting. In all these, #1 is the text and #2 is the
+ % page number.
+ %
+ % If the toc has to be broken over pages, we want it to be at chapters
+ % if at all possible; hence the \penalty.
+ \def\dochapentry#1#2{%
+    \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
+    \begingroup
+      \chapentryfonts
+      \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+    \endgroup
+    \nobreak\vskip .25\baselineskip plus.1\baselineskip
+ }
+ 
+ \def\dosecentry#1#2{\begingroup
+   \secentryfonts \leftskip=\tocindent
+   \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+ \endgroup}
+ 
+ \def\dosubsecentry#1#2{\begingroup
+   \subsecentryfonts \leftskip=2\tocindent
+   \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+ \endgroup}
+ 
+ \def\dosubsubsecentry#1#2{\begingroup
+   \subsubsecentryfonts \leftskip=3\tocindent
+   \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+ \endgroup}
+ 
+ % We use the same \entry macro as for the index entries.
+ \let\tocentry = \entry
+ 
+ % Space between chapter (or whatever) number and the title.
+ \def\labelspace{\hskip1em \relax}
+ 
+ \def\dopageno#1{{\rm #1}}
+ \def\doshortpageno#1{{\rm #1}}
+ 
+ \def\chapentryfonts{\secfonts \rm}
+ \def\secentryfonts{\textfonts}
+ \def\subsecentryfonts{\textfonts}
+ \def\subsubsecentryfonts{\textfonts}
+ 
+ 
+ \message{environments,}
+ % @foo ... @end foo.
+ 
+ % @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+ %
+ % Since these characters are used in examples, they should be an even number of
+ % \tt widths. Each \tt character is 1en, so two makes it 1em.
+ %
+ \def\point{$\star$}
+ \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
+ \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+ \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
+ \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
+ \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+ 
+ % The @error{} command.
+ % Adapted from the TeXbook's \boxit.
+ %
+ \newbox\errorbox
+ %
+ {\tentt \global\dimen0 = 3em}% Width of the box.
+ \dimen2 = .55pt % Thickness of rules
+ % The text. (`r' is open on the right, `e' somewhat less so on the left.)
+ \setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
+ %
+ \setbox\errorbox=\hbox to \dimen0{\hfil
+    \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
+    \advance\hsize by -2\dimen2 % Rules.
+    \vbox{%
+       \hrule height\dimen2
+       \hbox{\vrule width\dimen2 \kern3pt          % Space to left of text.
+          \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
+          \kern3pt\vrule width\dimen2}% Space to right.
+       \hrule height\dimen2}
+     \hfil}
+ %
+ \def\error{\leavevmode\lower.7ex\copy\errorbox}
+ 
+ % @tex ... @end tex    escapes into raw Tex temporarily.
+ % One exception: @ is still an escape character, so that @end tex works.
+ % But \@ or @@ will get a plain tex @ character.
+ 
+ \envdef\tex{%
+   \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
+   \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
+   \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
+   \catcode `\%=14
+   \catcode `\+=\other
+   \catcode `\"=\other
+   \catcode `\|=\other
+   \catcode `\<=\other
+   \catcode `\>=\other
+   \escapechar=`\\
+   %
+   \let\b=\ptexb
+   \let\bullet=\ptexbullet
+   \let\c=\ptexc
+   \let\,=\ptexcomma
+   \let\.=\ptexdot
+   \let\dots=\ptexdots
+   \let\equiv=\ptexequiv
+   \let\!=\ptexexclam
+   \let\i=\ptexi
+   \let\indent=\ptexindent
+   \let\noindent=\ptexnoindent
+   \let\{=\ptexlbrace
+   \let\+=\tabalign
+   \let\}=\ptexrbrace
+   \let\/=\ptexslash
+   \let\*=\ptexstar
+   \let\t=\ptext
+   \expandafter \let\csname top\endcsname=\ptextop  % outer
+   \let\frenchspacing=\plainfrenchspacing
+   %
+   \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
+   \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
+   \def\@{@}%
+ }
+ % There is no need to define \Etex.
+ 
+ % Define @lisp ... @end lisp.
+ % @lisp environment forms a group so it can rebind things,
+ % including the definition of @end lisp (which normally is erroneous).
+ 
+ % Amount to narrow the margins by for @lisp.
+ \newskip\lispnarrowing \lispnarrowing=0.4in
+ 
+ % This is the definition that ^^M gets inside @lisp, @example, and other
+ % such environments.  \null is better than a space, since it doesn't
+ % have any width.
+ \def\lisppar{\null\endgraf}
+ 
+ % This space is always present above and below environments.
+ \newskip\envskipamount \envskipamount = 0pt
+ 
+ % Make spacing and below environment symmetrical.  We use \parskip here
+ % to help in doing that, since in @example-like environments \parskip
+ % is reset to zero; thus the \afterenvbreak inserts no space -- but the
+ % start of the next paragraph will insert \parskip.
+ %
+ \def\aboveenvbreak{{%
+   % =10000 instead of <10000 because of a special case in \itemzzz and
+   % \sectionheading, q.v.
+   \ifnum \lastpenalty=10000 \else
+     \advance\envskipamount by \parskip
+     \endgraf
+     \ifdim\lastskip<\envskipamount
+       \removelastskip
+       % it's not a good place to break if the last penalty was \nobreak
+       % or better ...
+       \ifnum\lastpenalty<10000 \penalty-50 \fi
+       \vskip\envskipamount
+     \fi
+   \fi
+ }}
+ 
+ \let\afterenvbreak = \aboveenvbreak
+ 
+ % \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins; it will
+ % also clear it, so that its embedded environments do the narrowing again.
+ \let\nonarrowing=\relax
+ 
+ % @cartouche ... @end cartouche: draw rectangle w/rounded corners around
+ % environment contents.
+ \font\circle=lcircle10
+ \newdimen\circthick
+ \newdimen\cartouter\newdimen\cartinner
+ \newskip\normbskip\newskip\normpskip\newskip\normlskip
+ \circthick=\fontdimen8\circle
+ %
+ \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
+ \def\ctr{{\hskip 6pt\circle\char'010}}
+ \def\cbl{{\circle\char'012\hskip -6pt}}
+ \def\cbr{{\hskip 6pt\circle\char'011}}
+ \def\carttop{\hbox to \cartouter{\hskip\lskip
+         \ctl\leaders\hrule height\circthick\hfil\ctr
+         \hskip\rskip}}
+ \def\cartbot{\hbox to \cartouter{\hskip\lskip
+         \cbl\leaders\hrule height\circthick\hfil\cbr
+         \hskip\rskip}}
+ %
+ \newskip\lskip\newskip\rskip
+ 
+ \envdef\cartouche{%
+   \ifhmode\par\fi  % can't be in the midst of a paragraph.
+   \startsavinginserts
+   \lskip=\leftskip \rskip=\rightskip
+   \leftskip=0pt\rightskip=0pt % we want these *outside*.
+   \cartinner=\hsize \advance\cartinner by-\lskip
+   \advance\cartinner by-\rskip
+   \cartouter=\hsize
+   \advance\cartouter by 18.4pt	% allow for 3pt kerns on either
+ 				% side, and for 6pt waste from
+ 				% each corner char, and rule thickness
+   \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
+   % Flag to tell @lisp, etc., not to narrow margin.
+   \let\nonarrowing = t%
+   \vbox\bgroup
+       \baselineskip=0pt\parskip=0pt\lineskip=0pt
+       \carttop
+       \hbox\bgroup
+ 	  \hskip\lskip
+ 	  \vrule\kern3pt
+ 	  \vbox\bgroup
+ 	      \kern3pt
+ 	      \hsize=\cartinner
+ 	      \baselineskip=\normbskip
+ 	      \lineskip=\normlskip
+ 	      \parskip=\normpskip
+ 	      \vskip -\parskip
+ 	      \comment % For explanation, see the end of \def\group.
+ }
+ \def\Ecartouche{%
+               \ifhmode\par\fi
+ 	      \kern3pt
+ 	  \egroup
+ 	  \kern3pt\vrule
+ 	  \hskip\rskip
+       \egroup
+       \cartbot
+   \egroup
+   \checkinserts
+ }
+ 
+ 
+ % This macro is called at the beginning of all the @example variants,
+ % inside a group.
+ \def\nonfillstart{%
+   \aboveenvbreak
+   \hfuzz = 12pt % Don't be fussy
+   \sepspaces % Make spaces be word-separators rather than space tokens.
+   \let\par = \lisppar % don't ignore blank lines
+   \obeylines % each line of input is a line of output
+   \parskip = 0pt
+   \parindent = 0pt
+   \emergencystretch = 0pt % don't try to avoid overfull boxes
+   \ifx\nonarrowing\relax
+     \advance \leftskip by \lispnarrowing
+     \exdentamount=\lispnarrowing
+   \else
+     \let\nonarrowing = \relax
+   \fi
+   \let\exdent=\nofillexdent
+ }
+ 
+ % If you want all examples etc. small: @set dispenvsize small.
+ % If you want even small examples the full size: @set dispenvsize nosmall.
+ % This affects the following displayed environments:
+ %    @example, @display, @format, @lisp
+ %
+ \def\smallword{small}
+ \def\nosmallword{nosmall}
+ \let\SETdispenvsize\relax
+ \def\setnormaldispenv{%
+   \ifx\SETdispenvsize\smallword
+     % end paragraph for sake of leading, in case document has no blank
+     % line.  This is redundant with what happens in \aboveenvbreak, but
+     % we need to do it before changing the fonts, and it's inconvenient
+     % to change the fonts afterward.
+     \ifnum \lastpenalty=10000 \else \endgraf \fi
+     \smallexamplefonts \rm
+   \fi
+ }
+ \def\setsmalldispenv{%
+   \ifx\SETdispenvsize\nosmallword
+   \else
+     \ifnum \lastpenalty=10000 \else \endgraf \fi
+     \smallexamplefonts \rm
+   \fi
+ }
+ 
+ % We often define two environments, @foo and @smallfoo.
+ % Let's do it by one command:
+ \def\makedispenv #1#2{
+   \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}
+   \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}
+   \expandafter\let\csname E#1\endcsname \afterenvbreak
+   \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
+ }
+ 
+ % Define two synonyms:
+ \def\maketwodispenvs #1#2#3{
+   \makedispenv{#1}{#3}
+   \makedispenv{#2}{#3}
+ }
+ 
+ % @lisp: indented, narrowed, typewriter font; @example: same as @lisp.
+ %
+ % @smallexample and @smalllisp: use smaller fonts.
+ % Originally contributed by Pavel@xerox.
+ %
+ \maketwodispenvs {lisp}{example}{%
+   \nonfillstart
+   \tt\quoteexpand
+   \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
+   \gobble       % eat return
+ }
+ % @display/@smalldisplay: same as @lisp except keep current font.
+ %
+ \makedispenv {display}{%
+   \nonfillstart
+   \gobble
+ }
+ 
+ % @format/@smallformat: same as @display except don't narrow margins.
+ %
+ \makedispenv{format}{%
+   \let\nonarrowing = t%
+   \nonfillstart
+   \gobble
+ }
+ 
+ % @flushleft: same as @format, but doesn't obey \SETdispenvsize.
+ \envdef\flushleft{%
+   \let\nonarrowing = t%
+   \nonfillstart
+   \gobble
+ }
+ \let\Eflushleft = \afterenvbreak
+ 
+ % @flushright.
+ %
+ \envdef\flushright{%
+   \let\nonarrowing = t%
+   \nonfillstart
+   \advance\leftskip by 0pt plus 1fill
+   \gobble
+ }
+ \let\Eflushright = \afterenvbreak
+ 
+ 
+ % @quotation does normal linebreaking (hence we can't use \nonfillstart)
+ % and narrows the margins.  We keep \parskip nonzero in general, since
+ % we're doing normal filling.  So, when using \aboveenvbreak and
+ % \afterenvbreak, temporarily make \parskip 0.
+ %
+ \envdef\quotation{%
+   {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
+   \parindent=0pt
+   %
+   % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+   \ifx\nonarrowing\relax
+     \advance\leftskip by \lispnarrowing
+     \advance\rightskip by \lispnarrowing
+     \exdentamount = \lispnarrowing
+   \else
+     \let\nonarrowing = \relax
+   \fi
+   \parsearg\quotationlabel
+ }
+ 
+ % We have retained a nonzero parskip for the environment, since we're
+ % doing normal filling.
+ %
+ \def\Equotation{%
+   \par
+   \ifx\quotationauthor\undefined\else
+     % indent a bit.
+     \leftline{\kern 2\leftskip \sl ---\quotationauthor}%
+   \fi
+   {\parskip=0pt \afterenvbreak}%
+ }
+ 
+ % If we're given an argument, typeset it in bold with a colon after.
+ \def\quotationlabel#1{%
+   \def\temp{#1}%
+   \ifx\temp\empty \else
+     {\bf #1: }%
+   \fi
+ }
+ 
+ 
+ % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
+ % If we want to allow any <char> as delimiter,
+ % we need the curly braces so that makeinfo sees the @verb command, eg:
+ % `@verbx...x' would look like the '@verbx' command.  --janneke@gnu.org
+ %
+ % [Knuth]: Donald Ervin Knuth, 1996.  The TeXbook.
+ %
+ % [Knuth] p.344; only we need to do the other characters Texinfo sets
+ % active too.  Otherwise, they get lost as the first character on a
+ % verbatim line.
+ \def\dospecials{%
+   \do\ \do\\\do\{\do\}\do\$\do\&%
+   \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
+   \do\<\do\>\do\|\do\@\do+\do\"%
+ }
+ %
+ % [Knuth] p. 380
+ \def\uncatcodespecials{%
+   \def\do##1{\catcode`##1=\other}\dospecials}
+ %
+ % [Knuth] pp. 380,381,391
+ % Disable Spanish ligatures ?` and !` of \tt font
+ \begingroup
+   \catcode`\`=\active\gdef`{\relax\lq}
+ \endgroup
+ %
+ % Setup for the @verb command.
+ %
+ % Eight spaces for a tab
+ \begingroup
+   \catcode`\^^I=\active
+   \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
+ \endgroup
+ %
+ \def\setupverb{%
+   \tt  % easiest (and conventionally used) font for verbatim
+   \def\par{\leavevmode\endgraf}%
+   \catcode`\`=\active
+   \tabeightspaces
+   % Respect line breaks,
+   % print special symbols as themselves, and
+   % make each space count
+   % must do in this order:
+   \obeylines \uncatcodespecials \sepspaces
+ }
+ 
+ % Setup for the @verbatim environment
+ %
+ % Real tab expansion
+ \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
+ %
+ \def\starttabbox{\setbox0=\hbox\bgroup}
+ 
+ % Allow an option to not replace quotes with a regular directed right
+ % quote/apostrophe (char 0x27), but instead use the undirected quote
+ % from cmtt (char 0x0d).  The undirected quote is ugly, so don't make it
+ % the default, but it works for pasting with more pdf viewers (at least
+ % evince), the lilypond developers report.  xpdf does work with the
+ % regular 0x27.  
+ % 
+ \def\codequoteright{%
+   \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
+     \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
+       '%
+     \else \char'15 \fi
+   \else \char'15 \fi
+ }
+ %
+ % and a similar option for the left quote char vs. a grave accent.
+ % Modern fonts display ASCII 0x60 as a grave accent, so some people like
+ % the code environments to do likewise.
+ % 
+ \def\codequoteleft{%
+   \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
+     \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
+       `%
+     \else \char'22 \fi
+   \else \char'22 \fi
+ }
+ %
+ \begingroup
+   \catcode`\^^I=\active
+   \gdef\tabexpand{%
+     \catcode`\^^I=\active
+     \def^^I{\leavevmode\egroup
+       \dimen0=\wd0 % the width so far, or since the previous tab
+       \divide\dimen0 by\tabw
+       \multiply\dimen0 by\tabw % compute previous multiple of \tabw
+       \advance\dimen0 by\tabw  % advance to next multiple of \tabw
+       \wd0=\dimen0 \box0 \starttabbox
+     }%
+   }
+   \catcode`\'=\active
+   \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
+   %
+   \catcode`\`=\active
+   \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
+   %
+   \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
+ \endgroup
+ 
+ % start the verbatim environment.
+ \def\setupverbatim{%
+   \let\nonarrowing = t%
+   \nonfillstart
+   % Easiest (and conventionally used) font for verbatim
+   \tt
+   \def\par{\leavevmode\egroup\box0\endgraf}%
+   \catcode`\`=\active
+   \tabexpand
+   \quoteexpand
+   % Respect line breaks,
+   % print special symbols as themselves, and
+   % make each space count
+   % must do in this order:
+   \obeylines \uncatcodespecials \sepspaces
+   \everypar{\starttabbox}%
+ }
+ 
+ % Do the @verb magic: verbatim text is quoted by unique
+ % delimiter characters.  Before first delimiter expect a
+ % right brace, after last delimiter expect closing brace:
+ %
+ %    \def\doverb'{'<char>#1<char>'}'{#1}
+ %
+ % [Knuth] p. 382; only eat outer {}
+ \begingroup
+   \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other
+   \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
+ \endgroup
+ %
+ \def\verb{\begingroup\setupverb\doverb}
+ %
+ %
+ % Do the @verbatim magic: define the macro \doverbatim so that
+ % the (first) argument ends when '@end verbatim' is reached, ie:
+ %
+ %     \def\doverbatim#1@end verbatim{#1}
+ %
+ % For Texinfo it's a lot easier than for LaTeX,
+ % because texinfo's \verbatim doesn't stop at '\end{verbatim}':
+ % we need not redefine '\', '{' and '}'.
+ %
+ % Inspired by LaTeX's verbatim command set [latex.ltx]
+ %
+ \begingroup
+   \catcode`\ =\active
+   \obeylines %
+   % ignore everything up to the first ^^M, that's the newline at the end
+   % of the @verbatim input line itself.  Otherwise we get an extra blank
+   % line in the output.
+   \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
+   % We really want {...\end verbatim} in the body of the macro, but
+   % without the active space; thus we have to use \xdef and \gobble.
+ \endgroup
+ %
+ \envdef\verbatim{%
+     \setupverbatim\doverbatim
+ }
+ \let\Everbatim = \afterenvbreak
+ 
+ 
+ % @verbatiminclude FILE - insert text of file in verbatim environment.
+ %
+ \def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
+ %
+ \def\doverbatiminclude#1{%
+   {%
+     \makevalueexpandable
+     \setupverbatim
+     \input #1
+     \afterenvbreak
+   }%
+ }
+ 
+ % @copying ... @end copying.
+ % Save the text away for @insertcopying later.
+ %
+ % We save the uninterpreted tokens, rather than creating a box.
+ % Saving the text in a box would be much easier, but then all the
+ % typesetting commands (@smallbook, font changes, etc.) have to be done
+ % beforehand -- and a) we want @copying to be done first in the source
+ % file; b) letting users define the frontmatter in as flexible order as
+ % possible is very desirable.
+ %
+ \def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
+ \def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
+ %
+ \def\insertcopying{%
+   \begingroup
+     \parindent = 0pt  % paragraph indentation looks wrong on title page
+     \scanexp\copyingtext
+   \endgroup
+ }
+ 
+ 
+ \message{defuns,}
+ % @defun etc.
+ 
+ \newskip\defbodyindent \defbodyindent=.4in
+ \newskip\defargsindent \defargsindent=50pt
+ \newskip\deflastargmargin \deflastargmargin=18pt
+ \newcount\defunpenalty
+ 
+ % Start the processing of @deffn:
+ \def\startdefun{%
+   \ifnum\lastpenalty<10000
+     \medbreak
+     \defunpenalty=10003 % Will keep this @deffn together with the
+                         % following @def command, see below.
+   \else
+     % If there are two @def commands in a row, we'll have a \nobreak,
+     % which is there to keep the function description together with its
+     % header.  But if there's nothing but headers, we need to allow a
+     % break somewhere.  Check specifically for penalty 10002, inserted
+     % by \printdefunline, instead of 10000, since the sectioning
+     % commands also insert a nobreak penalty, and we don't want to allow
+     % a break between a section heading and a defun.
+     %
+     % As a minor refinement, we avoid "club" headers by signalling
+     % with penalty of 10003 after the very first @deffn in the
+     % sequence (see above), and penalty of 10002 after any following
+     % @def command.
+     \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi
+     %
+     % Similarly, after a section heading, do not allow a break.
+     % But do insert the glue.
+     \medskip  % preceded by discardable penalty, so not a breakpoint
+   \fi
+   %
+   \parindent=0in
+   \advance\leftskip by \defbodyindent
+   \exdentamount=\defbodyindent
+ }
+ 
+ \def\dodefunx#1{%
+   % First, check whether we are in the right environment:
+   \checkenv#1%
+   %
+   % As above, allow line break if we have multiple x headers in a row.
+   % It's not a great place, though.
+   \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi
+   %
+   % And now, it's time to reuse the body of the original defun:
+   \expandafter\gobbledefun#1%
+ }
+ \def\gobbledefun#1\startdefun{}
+ 
+ % \printdefunline \deffnheader{text}
+ %
+ \def\printdefunline#1#2{%
+   \begingroup
+     % call \deffnheader:
+     #1#2 \endheader
+     % common ending:
+     \interlinepenalty = 10000
+     \advance\rightskip by 0pt plus 1fil
+     \endgraf
+     \nobreak\vskip -\parskip
+     \penalty\defunpenalty  % signal to \startdefun and \dodefunx
+     % Some of the @defun-type tags do not enable magic parentheses,
+     % rendering the following check redundant.  But we don't optimize.
+     \checkparencounts
+   \endgroup
+ }
+ 
+ \def\Edefun{\endgraf\medbreak}
+ 
+ % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
+ % the only thing remaining is to define \deffnheader.
+ %
+ \def\makedefun#1{%
+   \expandafter\let\csname E#1\endcsname = \Edefun
+   \edef\temp{\noexpand\domakedefun
+     \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
+   \temp
+ }
+ 
+ % \domakedefun \deffn \deffnx \deffnheader
+ %
+ % Define \deffn and \deffnx, without parameters.
+ % \deffnheader has to be defined explicitly.
+ %
+ \def\domakedefun#1#2#3{%
+   \envdef#1{%
+     \startdefun
+     \parseargusing\activeparens{\printdefunline#3}%
+   }%
+   \def#2{\dodefunx#1}%
+   \def#3%
+ }
+ 
+ %%% Untyped functions:
+ 
+ % @deffn category name args
+ \makedefun{deffn}{\deffngeneral{}}
+ 
+ % @deffn category class name args
+ \makedefun{defop}#1 {\defopon{#1\ \putwordon}}
+ 
+ % \defopon {category on}class name args
+ \def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+ 
+ % \deffngeneral {subind}category name args
+ %
+ \def\deffngeneral#1#2 #3 #4\endheader{%
+   % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
+   \dosubind{fn}{\code{#3}}{#1}%
+   \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
+ }
+ 
+ %%% Typed functions:
+ 
+ % @deftypefn category type name args
+ \makedefun{deftypefn}{\deftypefngeneral{}}
+ 
+ % @deftypeop category class type name args
+ \makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
+ 
+ % \deftypeopon {category on}class type name args
+ \def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+ 
+ % \deftypefngeneral {subind}category type name args
+ %
+ \def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
+   \dosubind{fn}{\code{#4}}{#1}%
+   \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+ }
+ 
+ %%% Typed variables:
+ 
+ % @deftypevr category type var args
+ \makedefun{deftypevr}{\deftypecvgeneral{}}
+ 
+ % @deftypecv category class type var args
+ \makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
+ 
+ % \deftypecvof {category of}class type var args
+ \def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
+ 
+ % \deftypecvgeneral {subind}category type var args
+ %
+ \def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
+   \dosubind{vr}{\code{#4}}{#1}%
+   \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+ }
+ 
+ %%% Untyped variables:
+ 
+ % @defvr category var args
+ \makedefun{defvr}#1 {\deftypevrheader{#1} {} }
+ 
+ % @defcv category class var args
+ \makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
+ 
+ % \defcvof {category of}class var args
+ \def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
+ 
+ %%% Type:
+ % @deftp category name args
+ \makedefun{deftp}#1 #2 #3\endheader{%
+   \doind{tp}{\code{#2}}%
+   \defname{#1}{}{#2}\defunargs{#3\unskip}%
+ }
+ 
+ % Remaining @defun-like shortcuts:
+ \makedefun{defun}{\deffnheader{\putwordDeffunc} }
+ \makedefun{defmac}{\deffnheader{\putwordDefmac} }
+ \makedefun{defspec}{\deffnheader{\putwordDefspec} }
+ \makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} }
+ \makedefun{defvar}{\defvrheader{\putwordDefvar} }
+ \makedefun{defopt}{\defvrheader{\putwordDefopt} }
+ \makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
+ \makedefun{defmethod}{\defopon\putwordMethodon}
+ \makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
+ \makedefun{defivar}{\defcvof\putwordInstanceVariableof}
+ \makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
+ 
+ % \defname, which formats the name of the @def (not the args).
+ % #1 is the category, such as "Function".
+ % #2 is the return type, if any.
+ % #3 is the function name.
+ %
+ % We are followed by (but not passed) the arguments, if any.
+ %
+ \def\defname#1#2#3{%
+   % Get the values of \leftskip and \rightskip as they were outside the @def...
+   \advance\leftskip by -\defbodyindent
+   %
+   % How we'll format the type name.  Putting it in brackets helps
+   % distinguish it from the body text that may end up on the next line
+   % just below it.
+   \def\temp{#1}%
+   \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
+   %
+   % Figure out line sizes for the paragraph shape.
+   % The first line needs space for \box0; but if \rightskip is nonzero,
+   % we need only space for the part of \box0 which exceeds it:
+   \dimen0=\hsize  \advance\dimen0 by -\wd0  \advance\dimen0 by \rightskip
+   % The continuations:
+   \dimen2=\hsize  \advance\dimen2 by -\defargsindent
+   % (plain.tex says that \dimen1 should be used only as global.)
+   \parshape 2 0in \dimen0 \defargsindent \dimen2
+   %
+   % Put the type name to the right margin.
+   \noindent
+   \hbox to 0pt{%
+     \hfil\box0 \kern-\hsize
+     % \hsize has to be shortened this way:
+     \kern\leftskip
+     % Intentionally do not respect \rightskip, since we need the space.
+   }%
+   %
+   % Allow all lines to be underfull without complaint:
+   \tolerance=10000 \hbadness=10000
+   \exdentamount=\defbodyindent
+   {%
+     % defun fonts. We use typewriter by default (used to be bold) because:
+     % . we're printing identifiers, they should be in tt in principle.
+     % . in languages with many accents, such as Czech or French, it's
+     %   common to leave accents off identifiers.  The result looks ok in
+     %   tt, but exceedingly strange in rm.
+     % . we don't want -- and --- to be treated as ligatures.
+     % . this still does not fix the ?` and !` ligatures, but so far no
+     %   one has made identifiers using them :).
+     \df \tt
+     \def\temp{#2}% return value type
+     \ifx\temp\empty\else \tclose{\temp} \fi
+     #3% output function name
+   }%
+   {\rm\enskip}% hskip 0.5 em of \tenrm
+   %
+   \boldbrax
+   % arguments will be output next, if any.
+ }
+ 
+ % Print arguments in slanted roman (not ttsl), inconsistently with using
+ % tt for the name.  This is because literal text is sometimes needed in
+ % the argument list (groff manual), and ttsl and tt are not very
+ % distinguishable.  Prevent hyphenation at `-' chars.
+ %
+ \def\defunargs#1{%
+   % use sl by default (not ttsl),
+   % tt for the names.
+   \df \sl \hyphenchar\font=0
+   %
+   % On the other hand, if an argument has two dashes (for instance), we
+   % want a way to get ttsl.  Let's try @var for that.
+   \let\var=\ttslanted
+   #1%
+   \sl\hyphenchar\font=45
+ }
+ 
+ % We want ()&[] to print specially on the defun line.
+ %
+ \def\activeparens{%
+   \catcode`\(=\active \catcode`\)=\active
+   \catcode`\[=\active \catcode`\]=\active
+   \catcode`\&=\active
+ }
+ 
+ % Make control sequences which act like normal parenthesis chars.
+ \let\lparen = ( \let\rparen = )
+ 
+ % Be sure that we always have a definition for `(', etc.  For example,
+ % if the fn name has parens in it, \boldbrax will not be in effect yet,
+ % so TeX would otherwise complain about undefined control sequence.
+ {
+   \activeparens
+   \global\let(=\lparen \global\let)=\rparen
+   \global\let[=\lbrack \global\let]=\rbrack
+   \global\let& = \&
+ 
+   \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
+   \gdef\magicamp{\let&=\amprm}
+ }
+ 
+ \newcount\parencount
+ 
+ % If we encounter &foo, then turn on ()-hacking afterwards
+ \newif\ifampseen
+ \def\amprm#1 {\ampseentrue{\bf\&#1 }}
+ 
+ \def\parenfont{%
+   \ifampseen
+     % At the first level, print parens in roman,
+     % otherwise use the default font.
+     \ifnum \parencount=1 \rm \fi
+   \else
+     % The \sf parens (in \boldbrax) actually are a little bolder than
+     % the contained text.  This is especially needed for [ and ] .
+     \sf
+   \fi
+ }
+ \def\infirstlevel#1{%
+   \ifampseen
+     \ifnum\parencount=1
+       #1%
+     \fi
+   \fi
+ }
+ \def\bfafterword#1 {#1 \bf}
+ 
+ \def\opnr{%
+   \global\advance\parencount by 1
+   {\parenfont(}%
+   \infirstlevel \bfafterword
+ }
+ \def\clnr{%
+   {\parenfont)}%
+   \infirstlevel \sl
+   \global\advance\parencount by -1
+ }
+ 
+ \newcount\brackcount
+ \def\lbrb{%
+   \global\advance\brackcount by 1
+   {\bf[}%
+ }
+ \def\rbrb{%
+   {\bf]}%
+   \global\advance\brackcount by -1
+ }
+ 
+ \def\checkparencounts{%
+   \ifnum\parencount=0 \else \badparencount \fi
+   \ifnum\brackcount=0 \else \badbrackcount \fi
+ }
+ % these should not use \errmessage; the glibc manual, at least, actually
+ % has such constructs (when documenting function pointers).
+ \def\badparencount{%
+   \message{Warning: unbalanced parentheses in @def...}%
+   \global\parencount=0
+ }
+ \def\badbrackcount{%
+   \message{Warning: unbalanced square brackets in @def...}%
+   \global\brackcount=0
+ }
+ 
+ 
+ \message{macros,}
+ % @macro.
+ 
+ % To do this right we need a feature of e-TeX, \scantokens,
+ % which we arrange to emulate with a temporary file in ordinary TeX.
+ \ifx\eTeXversion\undefined
+   \newwrite\macscribble
+   \def\scantokens#1{%
+     \toks0={#1}%
+     \immediate\openout\macscribble=\jobname.tmp
+     \immediate\write\macscribble{\the\toks0}%
+     \immediate\closeout\macscribble
+     \input \jobname.tmp
+   }
+ \fi
+ 
+ \def\scanmacro#1{%
+   \begingroup
+     \newlinechar`\^^M
+     \let\xeatspaces\eatspaces
+     % Undo catcode changes of \startcontents and \doprintindex
+     % When called from @insertcopying or (short)caption, we need active
+     % backslash to get it printed correctly.  Previously, we had
+     % \catcode`\\=\other instead.  We'll see whether a problem appears
+     % with macro expansion.				--kasal, 19aug04
+     \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+     % ... and \example
+     \spaceisspace
+     %
+     % Append \endinput to make sure that TeX does not see the ending newline.
+     % I've verified that it is necessary both for e-TeX and for ordinary TeX
+     %							--kasal, 29nov03
+     \scantokens{#1\endinput}%
+   \endgroup
+ }
+ 
+ \def\scanexp#1{%
+   \edef\temp{\noexpand\scanmacro{#1}}%
+   \temp
+ }
+ 
+ \newcount\paramno   % Count of parameters
+ \newtoks\macname    % Macro name
+ \newif\ifrecursive  % Is it recursive?
+ 
+ % List of all defined macros in the form
+ %    \definedummyword\macro1\definedummyword\macro2...
+ % Currently is also contains all @aliases; the list can be split
+ % if there is a need.
+ \def\macrolist{}
+ 
+ % Add the macro to \macrolist
+ \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
+ \def\addtomacrolistxxx#1{%
+      \toks0 = \expandafter{\macrolist\definedummyword#1}%
+      \xdef\macrolist{\the\toks0}%
+ }
+ 
+ % Utility routines.
+ % This does \let #1 = #2, with \csnames; that is,
+ %   \let \csname#1\endcsname = \csname#2\endcsname
+ % (except of course we have to play expansion games).
+ % 
+ \def\cslet#1#2{%
+   \expandafter\let
+   \csname#1\expandafter\endcsname
+   \csname#2\endcsname
+ }
+ 
+ % Trim leading and trailing spaces off a string.
+ % Concepts from aro-bend problem 15 (see CTAN).
+ {\catcode`\@=11
+ \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
+ \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
+ \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
+ \def\unbrace#1{#1}
+ \unbrace{\gdef\trim@@@ #1 } #2@{#1}
+ }
+ 
+ % Trim a single trailing ^^M off a string.
+ {\catcode`\^^M=\other \catcode`\Q=3%
+ \gdef\eatcr #1{\eatcra #1Q^^MQ}%
+ \gdef\eatcra#1^^MQ{\eatcrb#1Q}%
+ \gdef\eatcrb#1Q#2Q{#1}%
+ }
+ 
+ % Macro bodies are absorbed as an argument in a context where
+ % all characters are catcode 10, 11 or 12, except \ which is active
+ % (as in normal texinfo). It is necessary to change the definition of \.
+ 
+ % Non-ASCII encodings make 8-bit characters active, so un-activate
+ % them to avoid their expansion.  Must do this non-globally, to
+ % confine the change to the current group.
+ 
+ % It's necessary to have hard CRs when the macro is executed. This is
+ % done by  making ^^M (\endlinechar) catcode 12 when reading the macro
+ % body, and then making it the \newlinechar in \scanmacro.
+ 
+ \def\scanctxt{%
+   \catcode`\"=\other
+   \catcode`\+=\other
+   \catcode`\<=\other
+   \catcode`\>=\other
+   \catcode`\@=\other
+   \catcode`\^=\other
+   \catcode`\_=\other
+   \catcode`\|=\other
+   \catcode`\~=\other
+   \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
+ }
+ 
+ \def\scanargctxt{%
+   \scanctxt
+   \catcode`\\=\other
+   \catcode`\^^M=\other
+ }
+ 
+ \def\macrobodyctxt{%
+   \scanctxt
+   \catcode`\{=\other
+   \catcode`\}=\other
+   \catcode`\^^M=\other
+   \usembodybackslash
+ }
+ 
+ \def\macroargctxt{%
+   \scanctxt
+   \catcode`\\=\other
+ }
+ 
+ % \mbodybackslash is the definition of \ in @macro bodies.
+ % It maps \foo\ => \csname macarg.foo\endcsname => #N
+ % where N is the macro parameter number.
+ % We define \csname macarg.\endcsname to be \realbackslash, so
+ % \\ in macro replacement text gets you a backslash.
+ 
+ {\catcode`@=0 @catcode`@\=@active
+  @gdef@usembodybackslash{@let\=@mbodybackslash}
+  @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
+ }
+ \expandafter\def\csname macarg.\endcsname{\realbackslash}
+ 
+ \def\macro{\recursivefalse\parsearg\macroxxx}
+ \def\rmacro{\recursivetrue\parsearg\macroxxx}
+ 
+ \def\macroxxx#1{%
+   \getargs{#1}%           now \macname is the macname and \argl the arglist
+   \ifx\argl\empty       % no arguments
+      \paramno=0%
+   \else
+      \expandafter\parsemargdef \argl;%
+   \fi
+   \if1\csname ismacro.\the\macname\endcsname
+      \message{Warning: redefining \the\macname}%
+   \else
+      \expandafter\ifx\csname \the\macname\endcsname \relax
+      \else \errmessage{Macro name \the\macname\space already defined}\fi
+      \global\cslet{macsave.\the\macname}{\the\macname}%
+      \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
+      \addtomacrolist{\the\macname}%
+   \fi
+   \begingroup \macrobodyctxt
+   \ifrecursive \expandafter\parsermacbody
+   \else \expandafter\parsemacbody
+   \fi}
+ 
+ \parseargdef\unmacro{%
+   \if1\csname ismacro.#1\endcsname
+     \global\cslet{#1}{macsave.#1}%
+     \global\expandafter\let \csname ismacro.#1\endcsname=0%
+     % Remove the macro name from \macrolist:
+     \begingroup
+       \expandafter\let\csname#1\endcsname \relax
+       \let\definedummyword\unmacrodo
+       \xdef\macrolist{\macrolist}%
+     \endgroup
+   \else
+     \errmessage{Macro #1 not defined}%
+   \fi
+ }
+ 
+ % Called by \do from \dounmacro on each macro.  The idea is to omit any
+ % macro definitions that have been changed to \relax.
+ %
+ \def\unmacrodo#1{%
+   \ifx #1\relax
+     % remove this
+   \else
+     \noexpand\definedummyword \noexpand#1%
+   \fi
+ }
+ 
+ % This makes use of the obscure feature that if the last token of a
+ % <parameter list> is #, then the preceding argument is delimited by
+ % an opening brace, and that opening brace is not consumed.
+ \def\getargs#1{\getargsxxx#1{}}
+ \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
+ \def\getmacname #1 #2\relax{\macname={#1}}
+ \def\getmacargs#1{\def\argl{#1}}
+ 
+ % Parse the optional {params} list.  Set up \paramno and \paramlist
+ % so \defmacro knows what to do.  Define \macarg.blah for each blah
+ % in the params list, to be ##N where N is the position in that list.
+ % That gets used by \mbodybackslash (above).
+ 
+ % We need to get `macro parameter char #' into several definitions.
+ % The technique used is stolen from LaTeX:  let \hash be something
+ % unexpandable, insert that wherever you need a #, and then redefine
+ % it to # just before using the token list produced.
+ %
+ % The same technique is used to protect \eatspaces till just before
+ % the macro is used.
+ 
+ \def\parsemargdef#1;{\paramno=0\def\paramlist{}%
+         \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,}
+ \def\parsemargdefxxx#1,{%
+   \if#1;\let\next=\relax
+   \else \let\next=\parsemargdefxxx
+     \advance\paramno by 1%
+     \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
+         {\xeatspaces{\hash\the\paramno}}%
+     \edef\paramlist{\paramlist\hash\the\paramno,}%
+   \fi\next}
+ 
+ % These two commands read recursive and nonrecursive macro bodies.
+ % (They're different since rec and nonrec macros end differently.)
+ 
+ \long\def\parsemacbody#1@end macro%
+ {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+ \long\def\parsermacbody#1@end rmacro%
+ {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+ 
+ % This defines the macro itself. There are six cases: recursive and
+ % nonrecursive macros of zero, one, and many arguments.
+ % Much magic with \expandafter here.
+ % \xdef is used so that macro definitions will survive the file
+ % they're defined in; @include reads the file inside a group.
+ \def\defmacro{%
+   \let\hash=##% convert placeholders to macro parameter chars
+   \ifrecursive
+     \ifcase\paramno
+     % 0
+       \expandafter\xdef\csname\the\macname\endcsname{%
+         \noexpand\scanmacro{\temp}}%
+     \or % 1
+       \expandafter\xdef\csname\the\macname\endcsname{%
+          \bgroup\noexpand\macroargctxt
+          \noexpand\braceorline
+          \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+       \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+          \egroup\noexpand\scanmacro{\temp}}%
+     \else % many
+       \expandafter\xdef\csname\the\macname\endcsname{%
+          \bgroup\noexpand\macroargctxt
+          \noexpand\csname\the\macname xx\endcsname}%
+       \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+           \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+       \expandafter\expandafter
+       \expandafter\xdef
+       \expandafter\expandafter
+         \csname\the\macname xxx\endcsname
+           \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+     \fi
+   \else
+     \ifcase\paramno
+     % 0
+       \expandafter\xdef\csname\the\macname\endcsname{%
+         \noexpand\norecurse{\the\macname}%
+         \noexpand\scanmacro{\temp}\egroup}%
+     \or % 1
+       \expandafter\xdef\csname\the\macname\endcsname{%
+          \bgroup\noexpand\macroargctxt
+          \noexpand\braceorline
+          \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+       \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+         \egroup
+         \noexpand\norecurse{\the\macname}%
+         \noexpand\scanmacro{\temp}\egroup}%
+     \else % many
+       \expandafter\xdef\csname\the\macname\endcsname{%
+          \bgroup\noexpand\macroargctxt
+          \expandafter\noexpand\csname\the\macname xx\endcsname}%
+       \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+           \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+       \expandafter\expandafter
+       \expandafter\xdef
+       \expandafter\expandafter
+       \csname\the\macname xxx\endcsname
+       \paramlist{%
+           \egroup
+           \noexpand\norecurse{\the\macname}%
+           \noexpand\scanmacro{\temp}\egroup}%
+     \fi
+   \fi}
+ 
+ \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
+ 
+ % \braceorline decides whether the next nonwhitespace character is a
+ % {.  If so it reads up to the closing }, if not, it reads the whole
+ % line.  Whatever was read is then fed to the next control sequence
+ % as an argument (by \parsebrace or \parsearg)
+ \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
+ \def\braceorlinexxx{%
+   \ifx\nchar\bgroup\else
+     \expandafter\parsearg
+   \fi \macnamexxx}
+ 
+ 
+ % @alias.
+ % We need some trickery to remove the optional spaces around the equal
+ % sign.  Just make them active and then expand them all to nothing.
+ \def\alias{\parseargusing\obeyspaces\aliasxxx}
+ \def\aliasxxx #1{\aliasyyy#1\relax}
+ \def\aliasyyy #1=#2\relax{%
+   {%
+     \expandafter\let\obeyedspace=\empty
+     \addtomacrolist{#1}%
+     \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
+   }%
+   \next
+ }
+ 
+ 
+ \message{cross references,}
+ 
+ \newwrite\auxfile
+ \newif\ifhavexrefs    % True if xref values are known.
+ \newif\ifwarnedxrefs  % True if we warned once that they aren't known.
+ 
+ % @inforef is relatively simple.
+ \def\inforef #1{\inforefzzz #1,,,,**}
+ \def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+   node \samp{\ignorespaces#1{}}}
+ 
+ % @node's only job in TeX is to define \lastnode, which is used in
+ % cross-references.  The @node line might or might not have commas, and
+ % might or might not have spaces before the first comma, like:
+ % @node foo , bar , ...
+ % We don't want such trailing spaces in the node name.
+ %
+ \parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
+ %
+ % also remove a trailing comma, in case of something like this:
+ % @node Help-Cross,  ,  , Cross-refs
+ \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
+ \def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
+ 
+ \let\nwnode=\node
+ \let\lastnode=\empty
+ 
+ % Write a cross-reference definition for the current node.  #1 is the
+ % type (Ynumbered, Yappendix, Ynothing).
+ %
+ \def\donoderef#1{%
+   \ifx\lastnode\empty\else
+     \setref{\lastnode}{#1}%
+     \global\let\lastnode=\empty
+   \fi
+ }
+ 
+ % @anchor{NAME} -- define xref target at arbitrary point.
+ %
+ \newcount\savesfregister
+ %
+ \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
+ \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
+ \def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
+ 
+ % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
+ % anchor), which consists of three parts:
+ % 1) NAME-title - the current sectioning name taken from \lastsection,
+ %                 or the anchor name.
+ % 2) NAME-snt   - section number and type, passed as the SNT arg, or
+ %                 empty for anchors.
+ % 3) NAME-pg    - the page number.
+ %
+ % This is called from \donoderef, \anchor, and \dofloat.  In the case of
+ % floats, there is an additional part, which is not written here:
+ % 4) NAME-lof   - the text as it should appear in a @listoffloats.
+ %
+ \def\setref#1#2{%
+   \pdfmkdest{#1}%
+   \iflinks
+     {%
+       \atdummies  % preserve commands, but don't expand them
+       \edef\writexrdef##1##2{%
+ 	\write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
+ 	  ##1}{##2}}% these are parameters of \writexrdef
+       }%
+       \toks0 = \expandafter{\lastsection}%
+       \immediate \writexrdef{title}{\the\toks0 }%
+       \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
+       \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
+     }%
+   \fi
+ }
+ 
+ % @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
+ % the node name, #2 the name of the Info cross-reference, #3 the printed
+ % node name, #4 the name of the Info file, #5 the name of the printed
+ % manual.  All but the node name can be omitted.
+ %
+ \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
+ \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
+ \def\ref#1{\xrefX[#1,,,,,,,]}
+ \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
+   \unsepspaces
+   \def\printedmanual{\ignorespaces #5}%
+   \def\printedrefname{\ignorespaces #3}%
+   \setbox1=\hbox{\printedmanual\unskip}%
+   \setbox0=\hbox{\printedrefname\unskip}%
+   \ifdim \wd0 = 0pt
+     % No printed node name was explicitly given.
+     \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
+       % Use the node name inside the square brackets.
+       \def\printedrefname{\ignorespaces #1}%
+     \else
+       % Use the actual chapter/section title appear inside
+       % the square brackets.  Use the real section title if we have it.
+       \ifdim \wd1 > 0pt
+         % It is in another manual, so we don't have it.
+         \def\printedrefname{\ignorespaces #1}%
+       \else
+         \ifhavexrefs
+           % We know the real title if we have the xref values.
+           \def\printedrefname{\refx{#1-title}{}}%
+         \else
+           % Otherwise just copy the Info node name.
+           \def\printedrefname{\ignorespaces #1}%
+         \fi%
+       \fi
+     \fi
+   \fi
+   %
+   % Make link in pdf output.
+   \ifpdf
+     {\indexnofonts
+      \turnoffactive
+      % This expands tokens, so do it after making catcode changes, so _
+      % etc. don't get their TeX definitions.
+      \getfilename{#4}%
+      %
+      % See comments at \activebackslashdouble.
+      {\activebackslashdouble \xdef\pdfxrefdest{#1}%
+       \backslashparens\pdfxrefdest}%
+      %
+      \leavevmode
+      \startlink attr{/Border [0 0 0]}%
+      \ifnum\filenamelength>0
+        goto file{\the\filename.pdf} name{\pdfxrefdest}%
+      \else
+        goto name{\pdfmkpgn{\pdfxrefdest}}%
+      \fi
+     }%
+     \setcolor{\linkcolor}%
+   \fi
+   %
+   % Float references are printed completely differently: "Figure 1.2"
+   % instead of "[somenode], p.3".  We distinguish them by the
+   % LABEL-title being set to a magic string.
+   {%
+     % Have to otherify everything special to allow the \csname to
+     % include an _ in the xref name, etc.
+     \indexnofonts
+     \turnoffactive
+     \expandafter\global\expandafter\let\expandafter\Xthisreftitle
+       \csname XR#1-title\endcsname
+   }%
+   \iffloat\Xthisreftitle
+     % If the user specified the print name (third arg) to the ref,
+     % print it instead of our usual "Figure 1.2".
+     \ifdim\wd0 = 0pt
+       \refx{#1-snt}{}%
+     \else
+       \printedrefname
+     \fi
+     %
+     % if the user also gave the printed manual name (fifth arg), append
+     % "in MANUALNAME".
+     \ifdim \wd1 > 0pt
+       \space \putwordin{} \cite{\printedmanual}%
+     \fi
+   \else
+     % node/anchor (non-float) references.
+     %
+     % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
+     % insert empty discretionaries after hyphens, which means that it will
+     % not find a line break at a hyphen in a node names.  Since some manuals
+     % are best written with fairly long node names, containing hyphens, this
+     % is a loss.  Therefore, we give the text of the node name again, so it
+     % is as if TeX is seeing it for the first time.
+     \ifdim \wd1 > 0pt
+       \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
+     \else
+       % _ (for example) has to be the character _ for the purposes of the
+       % control sequence corresponding to the node, but it has to expand
+       % into the usual \leavevmode...\vrule stuff for purposes of
+       % printing. So we \turnoffactive for the \refx-snt, back on for the
+       % printing, back off for the \refx-pg.
+       {\turnoffactive
+        % Only output a following space if the -snt ref is nonempty; for
+        % @unnumbered and @anchor, it won't be.
+        \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
+        \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+       }%
+       % output the `[mynode]' via a macro so it can be overridden.
+       \xrefprintnodename\printedrefname
+       %
+       % But we always want a comma and a space:
+       ,\space
+       %
+       % output the `page 3'.
+       \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+     \fi
+   \fi
+   \endlink
+ \endgroup}
+ 
+ % This macro is called from \xrefX for the `[nodename]' part of xref
+ % output.  It's a separate macro only so it can be changed more easily,
+ % since square brackets don't work well in some documents.  Particularly
+ % one that Bob is working on :).
+ %
+ \def\xrefprintnodename#1{[#1]}
+ 
+ % Things referred to by \setref.
+ %
+ \def\Ynothing{}
+ \def\Yomitfromtoc{}
+ \def\Ynumbered{%
+   \ifnum\secno=0
+     \putwordChapter@tie \the\chapno
+   \else \ifnum\subsecno=0
+     \putwordSection@tie \the\chapno.\the\secno
+   \else \ifnum\subsubsecno=0
+     \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
+   \else
+     \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
+   \fi\fi\fi
+ }
+ \def\Yappendix{%
+   \ifnum\secno=0
+      \putwordAppendix@tie @char\the\appendixno{}%
+   \else \ifnum\subsecno=0
+      \putwordSection@tie @char\the\appendixno.\the\secno
+   \else \ifnum\subsubsecno=0
+     \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
+   \else
+     \putwordSection@tie
+       @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
+   \fi\fi\fi
+ }
+ 
+ % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
+ % If its value is nonempty, SUFFIX is output afterward.
+ %
+ \def\refx#1#2{%
+   {%
+     \indexnofonts
+     \otherbackslash
+     \expandafter\global\expandafter\let\expandafter\thisrefX
+       \csname XR#1\endcsname
+   }%
+   \ifx\thisrefX\relax
+     % If not defined, say something at least.
+     \angleleft un\-de\-fined\angleright
+     \iflinks
+       \ifhavexrefs
+         \message{\linenumber Undefined cross reference `#1'.}%
+       \else
+         \ifwarnedxrefs\else
+           \global\warnedxrefstrue
+           \message{Cross reference values unknown; you must run TeX again.}%
+         \fi
+       \fi
+     \fi
+   \else
+     % It's defined, so just use it.
+     \thisrefX
+   \fi
+   #2% Output the suffix in any case.
+ }
+ 
+ % This is the macro invoked by entries in the aux file.  Usually it's
+ % just a \def (we prepend XR to the control sequence name to avoid
+ % collisions).  But if this is a float type, we have more work to do.
+ %
+ \def\xrdef#1#2{%
+   {% The node name might contain 8-bit characters, which in our current
+    % implementation are changed to commands like @'e.  Don't let these
+    % mess up the control sequence name.
+     \indexnofonts
+     \turnoffactive
+     \xdef\safexrefname{#1}%
+   }%
+   %
+   \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref
+   %
+   % Was that xref control sequence that we just defined for a float?
+   \expandafter\iffloat\csname XR\safexrefname\endcsname
+     % it was a float, and we have the (safe) float type in \iffloattype.
+     \expandafter\let\expandafter\floatlist
+       \csname floatlist\iffloattype\endcsname
+     %
+     % Is this the first time we've seen this float type?
+     \expandafter\ifx\floatlist\relax
+       \toks0 = {\do}% yes, so just \do
+     \else
+       % had it before, so preserve previous elements in list.
+       \toks0 = \expandafter{\floatlist\do}%
+     \fi
+     %
+     % Remember this xref in the control sequence \floatlistFLOATTYPE,
+     % for later use in \listoffloats.
+     \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0
+       {\safexrefname}}%
+   \fi
+ }
+ 
+ % Read the last existing aux file, if any.  No error if none exists.
+ %
+ \def\tryauxfile{%
+   \openin 1 \jobname.aux
+   \ifeof 1 \else
+     \readdatafile{aux}%
+     \global\havexrefstrue
+   \fi
+   \closein 1
+ }
+ 
+ \def\setupdatafile{%
+   \catcode`\^^@=\other
+   \catcode`\^^A=\other
+   \catcode`\^^B=\other
+   \catcode`\^^C=\other
+   \catcode`\^^D=\other
+   \catcode`\^^E=\other
+   \catcode`\^^F=\other
+   \catcode`\^^G=\other
+   \catcode`\^^H=\other
+   \catcode`\^^K=\other
+   \catcode`\^^L=\other
+   \catcode`\^^N=\other
+   \catcode`\^^P=\other
+   \catcode`\^^Q=\other
+   \catcode`\^^R=\other
+   \catcode`\^^S=\other
+   \catcode`\^^T=\other
+   \catcode`\^^U=\other
+   \catcode`\^^V=\other
+   \catcode`\^^W=\other
+   \catcode`\^^X=\other
+   \catcode`\^^Z=\other
+   \catcode`\^^[=\other
+   \catcode`\^^\=\other
+   \catcode`\^^]=\other
+   \catcode`\^^^=\other
+   \catcode`\^^_=\other
+   % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
+   % in xref tags, i.e., node names.  But since ^^e4 notation isn't
+   % supported in the main text, it doesn't seem desirable.  Furthermore,
+   % that is not enough: for node names that actually contain a ^
+   % character, we would end up writing a line like this: 'xrdef {'hat
+   % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
+   % argument, and \hat is not an expandable control sequence.  It could
+   % all be worked out, but why?  Either we support ^^ or we don't.
+   %
+   % The other change necessary for this was to define \auxhat:
+   % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
+   % and then to call \auxhat in \setq.
+   %
+   \catcode`\^=\other
+   %
+   % Special characters.  Should be turned off anyway, but...
+   \catcode`\~=\other
+   \catcode`\[=\other
+   \catcode`\]=\other
+   \catcode`\"=\other
+   \catcode`\_=\other
+   \catcode`\|=\other
+   \catcode`\<=\other
+   \catcode`\>=\other
+   \catcode`\$=\other
+   \catcode`\#=\other
+   \catcode`\&=\other
+   \catcode`\%=\other
+   \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
+   %
+   % This is to support \ in node names and titles, since the \
+   % characters end up in a \csname.  It's easier than
+   % leaving it active and making its active definition an actual \
+   % character.  What I don't understand is why it works in the *value*
+   % of the xrdef.  Seems like it should be a catcode12 \, and that
+   % should not typeset properly.  But it works, so I'm moving on for
+   % now.  --karl, 15jan04.
+   \catcode`\\=\other
+   %
+   % Make the characters 128-255 be printing characters.
+   {%
+     \count1=128
+     \def\loop{%
+       \catcode\count1=\other
+       \advance\count1 by 1
+       \ifnum \count1<256 \loop \fi
+     }%
+   }%
+   %
+   % @ is our escape character in .aux files, and we need braces.
+   \catcode`\{=1
+   \catcode`\}=2
+   \catcode`\@=0
+ }
+ 
+ \def\readdatafile#1{%
+ \begingroup
+   \setupdatafile
+   \input\jobname.#1
+ \endgroup}
+ 
+ 
+ \message{insertions,}
+ % including footnotes.
+ 
+ \newcount \footnoteno
+ 
+ % The trailing space in the following definition for supereject is
+ % vital for proper filling; pages come out unaligned when you do a
+ % pagealignmacro call if that space before the closing brace is
+ % removed. (Generally, numeric constants should always be followed by a
+ % space to prevent strange expansion errors.)
+ \def\supereject{\par\penalty -20000\footnoteno =0 }
+ 
+ % @footnotestyle is meaningful for info output only.
+ \let\footnotestyle=\comment
+ 
+ {\catcode `\@=11
+ %
+ % Auto-number footnotes.  Otherwise like plain.
+ \gdef\footnote{%
+   \let\indent=\ptexindent
+   \let\noindent=\ptexnoindent
+   \global\advance\footnoteno by \@ne
+   \edef\thisfootno{$^{\the\footnoteno}$}%
+   %
+   % In case the footnote comes at the end of a sentence, preserve the
+   % extra spacing after we do the footnote number.
+   \let\@sf\empty
+   \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
+   %
+   % Remove inadvertent blank space before typesetting the footnote number.
+   \unskip
+   \thisfootno\@sf
+   \dofootnote
+ }%
+ 
+ % Don't bother with the trickery in plain.tex to not require the
+ % footnote text as a parameter.  Our footnotes don't need to be so general.
+ %
+ % Oh yes, they do; otherwise, @ifset (and anything else that uses
+ % \parseargline) fails inside footnotes because the tokens are fixed when
+ % the footnote is read.  --karl, 16nov96.
+ %
+ \gdef\dofootnote{%
+   \insert\footins\bgroup
+   % We want to typeset this text as a normal paragraph, even if the
+   % footnote reference occurs in (for example) a display environment.
+   % So reset some parameters.
+   \hsize=\pagewidth
+   \interlinepenalty\interfootnotelinepenalty
+   \splittopskip\ht\strutbox % top baseline for broken footnotes
+   \splitmaxdepth\dp\strutbox
+   \floatingpenalty\@MM
+   \leftskip\z@skip
+   \rightskip\z@skip
+   \spaceskip\z@skip
+   \xspaceskip\z@skip
+   \parindent\defaultparindent
+   %
+   \smallfonts \rm
+   %
+   % Because we use hanging indentation in footnotes, a @noindent appears
+   % to exdent this text, so make it be a no-op.  makeinfo does not use
+   % hanging indentation so @noindent can still be needed within footnote
+   % text after an @example or the like (not that this is good style).
+   \let\noindent = \relax
+   %
+   % Hang the footnote text off the number.  Use \everypar in case the
+   % footnote extends for more than one paragraph.
+   \everypar = {\hang}%
+   \textindent{\thisfootno}%
+   %
+   % Don't crash into the line above the footnote text.  Since this
+   % expands into a box, it must come within the paragraph, lest it
+   % provide a place where TeX can split the footnote.
+   \footstrut
+   \futurelet\next\fo@t
+ }
+ }%end \catcode `\@=11
+ 
+ % In case a @footnote appears in a vbox, save the footnote text and create
+ % the real \insert just after the vbox finished.  Otherwise, the insertion
+ % would be lost.
+ % Similarly, if a @footnote appears inside an alignment, save the footnote
+ % text to a box and make the \insert when a row of the table is finished.
+ % And the same can be done for other insert classes.  --kasal, 16nov03.
+ 
+ % Replace the \insert primitive by a cheating macro.
+ % Deeper inside, just make sure that the saved insertions are not spilled
+ % out prematurely.
+ %
+ \def\startsavinginserts{%
+   \ifx \insert\ptexinsert
+     \let\insert\saveinsert
+   \else
+     \let\checkinserts\relax
+   \fi
+ }
+ 
+ % This \insert replacement works for both \insert\footins{foo} and
+ % \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}.
+ %
+ \def\saveinsert#1{%
+   \edef\next{\noexpand\savetobox \makeSAVEname#1}%
+   \afterassignment\next
+   % swallow the left brace
+   \let\temp =
+ }
+ \def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}}
+ \def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1}
+ 
+ \def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
+ 
+ \def\placesaveins#1{%
+   \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
+     {\box#1}%
+ }
+ 
+ % eat @SAVE -- beware, all of them have catcode \other:
+ {
+   \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials  %  ;-)
+   \gdef\gobblesave @SAVE{}
+ }
+ 
+ % initialization:
+ \def\newsaveins #1{%
+   \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}%
+   \next
+ }
+ \def\newsaveinsX #1{%
+   \csname newbox\endcsname #1%
+   \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts
+     \checksaveins #1}%
+ }
+ 
+ % initialize:
+ \let\checkinserts\empty
+ \newsaveins\footins
+ \newsaveins\margin
+ 
+ 
+ % @image.  We use the macros from epsf.tex to support this.
+ % If epsf.tex is not installed and @image is used, we complain.
+ %
+ % Check for and read epsf.tex up front.  If we read it only at @image
+ % time, we might be inside a group, and then its definitions would get
+ % undone and the next image would fail.
+ \openin 1 = epsf.tex
+ \ifeof 1 \else
+   % Do not bother showing banner with epsf.tex v2.7k (available in
+   % doc/epsf.tex and on ctan).
+   \def\epsfannounce{\toks0 = }%
+   \input epsf.tex
+ \fi
+ \closein 1
+ %
+ % We will only complain once about lack of epsf.tex.
+ \newif\ifwarnednoepsf
+ \newhelp\noepsfhelp{epsf.tex must be installed for images to
+   work.  It is also included in the Texinfo distribution, or you can get
+   it from ftp://tug.org/tex/epsf.tex.}
+ %
+ \def\image#1{%
+   \ifx\epsfbox\undefined
+     \ifwarnednoepsf \else
+       \errhelp = \noepsfhelp
+       \errmessage{epsf.tex not found, images will be ignored}%
+       \global\warnednoepsftrue
+     \fi
+   \else
+     \imagexxx #1,,,,,\finish
+   \fi
+ }
+ %
+ % Arguments to @image:
+ % #1 is (mandatory) image filename; we tack on .eps extension.
+ % #2 is (optional) width, #3 is (optional) height.
+ % #4 is (ignored optional) html alt text.
+ % #5 is (ignored optional) extension.
+ % #6 is just the usual extra ignored arg for parsing this stuff.
+ \newif\ifimagevmode
+ \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
+   \catcode`\^^M = 5     % in case we're inside an example
+   \normalturnoffactive  % allow _ et al. in names
+   % If the image is by itself, center it.
+   \ifvmode
+     \imagevmodetrue
+     \nobreak\medskip
+     % Usually we'll have text after the image which will insert
+     % \parskip glue, so insert it here too to equalize the space
+     % above and below.
+     \nobreak\vskip\parskip
+     \nobreak
+   \fi
+   %
+   % Leave vertical mode so that indentation from an enclosing
+   % environment such as @quotation is respected.  On the other hand, if
+   % it's at the top level, we don't want the normal paragraph indentation.
+   \noindent
+   %
+   % Output the image.
+   \ifpdf
+     \dopdfimage{#1}{#2}{#3}%
+   \else
+     % \epsfbox itself resets \epsf?size at each figure.
+     \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
+     \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+     \epsfbox{#1.eps}%
+   \fi
+   %
+   \ifimagevmode \medskip \fi  % space after the standalone image
+ \endgroup}
+ 
+ 
+ % @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
+ % etc.  We don't actually implement floating yet, we always include the
+ % float "here".  But it seemed the best name for the future.
+ %
+ \envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
+ 
+ % There may be a space before second and/or third parameter; delete it.
+ \def\eatcommaspace#1, {#1,}
+ 
+ % #1 is the optional FLOATTYPE, the text label for this float, typically
+ % "Figure", "Table", "Example", etc.  Can't contain commas.  If omitted,
+ % this float will not be numbered and cannot be referred to.
+ %
+ % #2 is the optional xref label.  Also must be present for the float to
+ % be referable.
+ %
+ % #3 is the optional positioning argument; for now, it is ignored.  It
+ % will somehow specify the positions allowed to float to (here, top, bottom).
+ %
+ % We keep a separate counter for each FLOATTYPE, which we reset at each
+ % chapter-level command.
+ \let\resetallfloatnos=\empty
+ %
+ \def\dofloat#1,#2,#3,#4\finish{%
+   \let\thiscaption=\empty
+   \let\thisshortcaption=\empty
+   %
+   % don't lose footnotes inside @float.
+   %
+   % BEWARE: when the floats start float, we have to issue warning whenever an
+   % insert appears inside a float which could possibly float. --kasal, 26may04
+   %
+   \startsavinginserts
+   %
+   % We can't be used inside a paragraph.
+   \par
+   %
+   \vtop\bgroup
+     \def\floattype{#1}%
+     \def\floatlabel{#2}%
+     \def\floatloc{#3}% we do nothing with this yet.
+     %
+     \ifx\floattype\empty
+       \let\safefloattype=\empty
+     \else
+       {%
+         % the floattype might have accents or other special characters,
+         % but we need to use it in a control sequence name.
+         \indexnofonts
+         \turnoffactive
+         \xdef\safefloattype{\floattype}%
+       }%
+     \fi
+     %
+     % If label is given but no type, we handle that as the empty type.
+     \ifx\floatlabel\empty \else
+       % We want each FLOATTYPE to be numbered separately (Figure 1,
+       % Table 1, Figure 2, ...).  (And if no label, no number.)
+       %
+       \expandafter\getfloatno\csname\safefloattype floatno\endcsname
+       \global\advance\floatno by 1
+       %
+       {%
+         % This magic value for \lastsection is output by \setref as the
+         % XREFLABEL-title value.  \xrefX uses it to distinguish float
+         % labels (which have a completely different output format) from
+         % node and anchor labels.  And \xrdef uses it to construct the
+         % lists of floats.
+         %
+         \edef\lastsection{\floatmagic=\safefloattype}%
+         \setref{\floatlabel}{Yfloat}%
+       }%
+     \fi
+     %
+     % start with \parskip glue, I guess.
+     \vskip\parskip
+     %
+     % Don't suppress indentation if a float happens to start a section.
+     \restorefirstparagraphindent
+ }
+ 
+ % we have these possibilities:
+ % @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap
+ % @float Foo,lbl & no caption:    Foo 1.1
+ % @float Foo & @caption{Cap}:     Foo: Cap
+ % @float Foo & no caption:        Foo
+ % @float ,lbl & Caption{Cap}:     1.1: Cap
+ % @float ,lbl & no caption:       1.1
+ % @float & @caption{Cap}:         Cap
+ % @float & no caption:
+ %
+ \def\Efloat{%
+     \let\floatident = \empty
+     %
+     % In all cases, if we have a float type, it comes first.
+     \ifx\floattype\empty \else \def\floatident{\floattype}\fi
+     %
+     % If we have an xref label, the number comes next.
+     \ifx\floatlabel\empty \else
+       \ifx\floattype\empty \else % if also had float type, need tie first.
+         \appendtomacro\floatident{\tie}%
+       \fi
+       % the number.
+       \appendtomacro\floatident{\chaplevelprefix\the\floatno}%
+     \fi
+     %
+     % Start the printed caption with what we've constructed in
+     % \floatident, but keep it separate; we need \floatident again.
+     \let\captionline = \floatident
+     %
+     \ifx\thiscaption\empty \else
+       \ifx\floatident\empty \else
+ 	\appendtomacro\captionline{: }% had ident, so need a colon between
+       \fi
+       %
+       % caption text.
+       \appendtomacro\captionline{\scanexp\thiscaption}%
+     \fi
+     %
+     % If we have anything to print, print it, with space before.
+     % Eventually this needs to become an \insert.
+     \ifx\captionline\empty \else
+       \vskip.5\parskip
+       \captionline
+       %
+       % Space below caption.
+       \vskip\parskip
+     \fi
+     %
+     % If have an xref label, write the list of floats info.  Do this
+     % after the caption, to avoid chance of it being a breakpoint.
+     \ifx\floatlabel\empty \else
+       % Write the text that goes in the lof to the aux file as
+       % \floatlabel-lof.  Besides \floatident, we include the short
+       % caption if specified, else the full caption if specified, else nothing.
+       {%
+         \atdummies
+         %
+         % since we read the caption text in the macro world, where ^^M
+         % is turned into a normal character, we have to scan it back, so
+         % we don't write the literal three characters "^^M" into the aux file.
+ 	\scanexp{%
+ 	  \xdef\noexpand\gtemp{%
+ 	    \ifx\thisshortcaption\empty
+ 	      \thiscaption
+ 	    \else
+ 	      \thisshortcaption
+ 	    \fi
+ 	  }%
+ 	}%
+         \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
+ 	  \ifx\gtemp\empty \else : \gtemp \fi}}%
+       }%
+     \fi
+   \egroup  % end of \vtop
+   %
+   % place the captured inserts
+   %
+   % BEWARE: when the floats start floating, we have to issue warning
+   % whenever an insert appears inside a float which could possibly
+   % float. --kasal, 26may04
+   %
+   \checkinserts
+ }
+ 
+ % Append the tokens #2 to the definition of macro #1, not expanding either.
+ %
+ \def\appendtomacro#1#2{%
+   \expandafter\def\expandafter#1\expandafter{#1#2}%
+ }
+ 
+ % @caption, @shortcaption
+ %
+ \def\caption{\docaption\thiscaption}
+ \def\shortcaption{\docaption\thisshortcaption}
+ \def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
+ \def\defcaption#1#2{\egroup \def#1{#2}}
+ 
+ % The parameter is the control sequence identifying the counter we are
+ % going to use.  Create it if it doesn't exist and assign it to \floatno.
+ \def\getfloatno#1{%
+   \ifx#1\relax
+       % Haven't seen this figure type before.
+       \csname newcount\endcsname #1%
+       %
+       % Remember to reset this floatno at the next chap.
+       \expandafter\gdef\expandafter\resetallfloatnos
+         \expandafter{\resetallfloatnos #1=0 }%
+   \fi
+   \let\floatno#1%
+ }
+ 
+ % \setref calls this to get the XREFLABEL-snt value.  We want an @xref
+ % to the FLOATLABEL to expand to "Figure 3.1".  We call \setref when we
+ % first read the @float command.
+ %
+ \def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
+ 
+ % Magic string used for the XREFLABEL-title value, so \xrefX can
+ % distinguish floats from other xref types.
+ \def\floatmagic{!!float!!}
+ 
+ % #1 is the control sequence we are passed; we expand into a conditional
+ % which is true if #1 represents a float ref.  That is, the magic
+ % \lastsection value which we \setref above.
+ %
+ \def\iffloat#1{\expandafter\doiffloat#1==\finish}
+ %
+ % #1 is (maybe) the \floatmagic string.  If so, #2 will be the
+ % (safe) float type for this float.  We set \iffloattype to #2.
+ %
+ \def\doiffloat#1=#2=#3\finish{%
+   \def\temp{#1}%
+   \def\iffloattype{#2}%
+   \ifx\temp\floatmagic
+ }
+ 
+ % @listoffloats FLOATTYPE - print a list of floats like a table of contents.
+ %
+ \parseargdef\listoffloats{%
+   \def\floattype{#1}% floattype
+   {%
+     % the floattype might have accents or other special characters,
+     % but we need to use it in a control sequence name.
+     \indexnofonts
+     \turnoffactive
+     \xdef\safefloattype{\floattype}%
+   }%
+   %
+   % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE.
+   \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax
+     \ifhavexrefs
+       % if the user said @listoffloats foo but never @float foo.
+       \message{\linenumber No `\safefloattype' floats to list.}%
+     \fi
+   \else
+     \begingroup
+       \leftskip=\tocindent  % indent these entries like a toc
+       \let\do=\listoffloatsdo
+       \csname floatlist\safefloattype\endcsname
+     \endgroup
+   \fi
+ }
+ 
+ % This is called on each entry in a list of floats.  We're passed the
+ % xref label, in the form LABEL-title, which is how we save it in the
+ % aux file.  We strip off the -title and look up \XRLABEL-lof, which
+ % has the text we're supposed to typeset here.
+ %
+ % Figures without xref labels will not be included in the list (since
+ % they won't appear in the aux file).
+ %
+ \def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
+ \def\listoffloatsdoentry#1-title\finish{{%
+   % Can't fully expand XR#1-lof because it can contain anything.  Just
+   % pass the control sequence.  On the other hand, XR#1-pg is just the
+   % page number, and we want to fully expand that so we can get a link
+   % in pdf output.
+   \toksA = \expandafter{\csname XR#1-lof\endcsname}%
+   %
+   % use the same \entry macro we use to generate the TOC and index.
+   \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
+   \writeentry
+ }}
+ 
+ 
+ \message{localization,}
+ 
+ % @documentlanguage is usually given very early, just after
+ % @setfilename.  If done too late, it may not override everything
+ % properly.  Single argument is the language (de) or locale (de_DE)
+ % abbreviation.  It would be nice if we could set up a hyphenation file.
+ %
+ {
+   \catcode`\_ = \active
+   \globaldefs=1
+ \parseargdef\documentlanguage{\begingroup
+   \let_=\normalunderscore  % normal _ character for filenames
+   \tex % read txi-??.tex file in plain TeX.
+     % Read the file by the name they passed if it exists.
+     \openin 1 txi-#1.tex
+     \ifeof 1
+       \documentlanguagetrywithoutunderscore{#1_\finish}%
+     \else
+       \input txi-#1.tex
+     \fi
+     \closein 1
+   \endgroup
+ \endgroup}
+ }
+ %
+ % If they passed de_DE, and txi-de_DE.tex doesn't exist,
+ % try txi-de.tex.
+ % 
+ \def\documentlanguagetrywithoutunderscore#1_#2\finish{%
+   \openin 1 txi-#1.tex
+   \ifeof 1
+     \errhelp = \nolanghelp
+     \errmessage{Cannot read language file txi-#1.tex}%
+   \else
+     \input txi-#1.tex
+   \fi
+   \closein 1
+ }
+ %
+ \newhelp\nolanghelp{The given language definition file cannot be found or
+ is empty.  Maybe you need to install it?  In the current directory
+ should work if nowhere else does.}
+ 
+ % Set the catcode of characters 128 through 255 to the specified number.
+ %
+ \def\setnonasciicharscatcode#1{%
+    \count255=128
+    \loop\ifnum\count255<256
+       \global\catcode\count255=#1\relax
+       \advance\count255 by 1
+    \repeat
+ }
+ 
+ \def\setnonasciicharscatcodenonglobal#1{%
+    \count255=128
+    \loop\ifnum\count255<256
+       \catcode\count255=#1\relax
+       \advance\count255 by 1
+    \repeat
+ }
+ 
+ % @documentencoding sets the definition of non-ASCII characters
+ % according to the specified encoding.
+ %
+ \parseargdef\documentencoding{%
+   % Encoding being declared for the document.
+   \def\declaredencoding{\csname #1.enc\endcsname}%
+   %
+   % Supported encodings: names converted to tokens in order to be able
+   % to compare them with \ifx.
+   \def\ascii{\csname US-ASCII.enc\endcsname}%
+   \def\latnine{\csname ISO-8859-15.enc\endcsname}%
+   \def\latone{\csname ISO-8859-1.enc\endcsname}%
+   \def\lattwo{\csname ISO-8859-2.enc\endcsname}%
+   \def\utfeight{\csname UTF-8.enc\endcsname}%
+   %
+   \ifx \declaredencoding \ascii
+      \asciichardefs
+   %
+   \else \ifx \declaredencoding \lattwo
+      \setnonasciicharscatcode\active
+      \lattwochardefs
+   %
+   \else \ifx \declaredencoding \latone 
+      \setnonasciicharscatcode\active
+      \latonechardefs
+   %
+   \else \ifx \declaredencoding \latnine
+      \setnonasciicharscatcode\active
+      \latninechardefs
+   %
+   \else \ifx \declaredencoding \utfeight
+      \setnonasciicharscatcode\active
+      \utfeightchardefs
+   %
+   \else 
+     \message{Unknown document encoding #1, ignoring.}%
+   %
+   \fi % utfeight
+   \fi % latnine
+   \fi % latone
+   \fi % lattwo
+   \fi % ascii
+ }
+ 
+ % A message to be logged when using a character that isn't available
+ % the default font encoding (OT1).
+ % 
+ \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
+ 
+ % Take account of \c (plain) vs. \, (Texinfo) difference.
+ \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
+ 
+ % First, make active non-ASCII characters in order for them to be
+ % correctly categorized when TeX reads the replacement text of
+ % macros containing the character definitions.
+ \setnonasciicharscatcode\active
+ %
+ % Latin1 (ISO-8859-1) character definitions.
+ \def\latonechardefs{%
+   \gdef^^a0{~} 
+   \gdef^^a1{\exclamdown}
+   \gdef^^a2{\missingcharmsg{CENT SIGN}} 
+   \gdef^^a3{{\pounds}}
+   \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+   \gdef^^a5{\missingcharmsg{YEN SIGN}}
+   \gdef^^a6{\missingcharmsg{BROKEN BAR}} 
+   \gdef^^a7{\S}
+   \gdef^^a8{\"{}} 
+   \gdef^^a9{\copyright} 
+   \gdef^^aa{\ordf}
+   \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} 
+   \gdef^^ac{$\lnot$}
+   \gdef^^ad{\-} 
+   \gdef^^ae{\registeredsymbol} 
+   \gdef^^af{\={}}
+   %
+   \gdef^^b0{\textdegree}
+   \gdef^^b1{$\pm$}
+   \gdef^^b2{$^2$}
+   \gdef^^b3{$^3$}
+   \gdef^^b4{\'{}}
+   \gdef^^b5{$\mu$}
+   \gdef^^b6{\P}
+   %
+   \gdef^^b7{$^.$}
+   \gdef^^b8{\cedilla\ }
+   \gdef^^b9{$^1$}
+   \gdef^^ba{\ordm}
+   %
+   \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}}
+   \gdef^^bc{$1\over4$}
+   \gdef^^bd{$1\over2$}
+   \gdef^^be{$3\over4$}
+   \gdef^^bf{\questiondown}
+   %
+   \gdef^^c0{\`A}
+   \gdef^^c1{\'A}
+   \gdef^^c2{\^A}
+   \gdef^^c3{\~A}
+   \gdef^^c4{\"A}
+   \gdef^^c5{\ringaccent A} 
+   \gdef^^c6{\AE}
+   \gdef^^c7{\cedilla C}
+   \gdef^^c8{\`E}
+   \gdef^^c9{\'E}
+   \gdef^^ca{\^E}
+   \gdef^^cb{\"E}
+   \gdef^^cc{\`I}
+   \gdef^^cd{\'I}
+   \gdef^^ce{\^I}
+   \gdef^^cf{\"I}
+   %
+   \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}}
+   \gdef^^d1{\~N}
+   \gdef^^d2{\`O}
+   \gdef^^d3{\'O}
+   \gdef^^d4{\^O}
+   \gdef^^d5{\~O}
+   \gdef^^d6{\"O}
+   \gdef^^d7{$\times$}
+   \gdef^^d8{\O}
+   \gdef^^d9{\`U}
+   \gdef^^da{\'U}
+   \gdef^^db{\^U}
+   \gdef^^dc{\"U}
+   \gdef^^dd{\'Y}
+   \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}}
+   \gdef^^df{\ss}
+   %
+   \gdef^^e0{\`a}
+   \gdef^^e1{\'a}
+   \gdef^^e2{\^a}
+   \gdef^^e3{\~a}
+   \gdef^^e4{\"a}
+   \gdef^^e5{\ringaccent a}
+   \gdef^^e6{\ae}
+   \gdef^^e7{\cedilla c}
+   \gdef^^e8{\`e}
+   \gdef^^e9{\'e}
+   \gdef^^ea{\^e}
+   \gdef^^eb{\"e}
+   \gdef^^ec{\`{\dotless i}}
+   \gdef^^ed{\'{\dotless i}}
+   \gdef^^ee{\^{\dotless i}}
+   \gdef^^ef{\"{\dotless i}}
+   %
+   \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}}
+   \gdef^^f1{\~n}
+   \gdef^^f2{\`o}
+   \gdef^^f3{\'o}
+   \gdef^^f4{\^o}
+   \gdef^^f5{\~o}
+   \gdef^^f6{\"o}
+   \gdef^^f7{$\div$}
+   \gdef^^f8{\o}
+   \gdef^^f9{\`u}
+   \gdef^^fa{\'u}
+   \gdef^^fb{\^u}
+   \gdef^^fc{\"u}
+   \gdef^^fd{\'y}
+   \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}}
+   \gdef^^ff{\"y}
+ }
+ 
+ % Latin9 (ISO-8859-15) encoding character definitions.
+ \def\latninechardefs{%
+   % Encoding is almost identical to Latin1.
+   \latonechardefs
+   %
+   \gdef^^a4{\euro}
+   \gdef^^a6{\v S}
+   \gdef^^a8{\v s}
+   \gdef^^b4{\v Z}
+   \gdef^^b8{\v z}
+   \gdef^^bc{\OE}
+   \gdef^^bd{\oe}
+   \gdef^^be{\"Y}
+ }
+ 
+ % Latin2 (ISO-8859-2) character definitions.
+ \def\lattwochardefs{%
+   \gdef^^a0{~}
+   \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}}
+   \gdef^^a2{\u{}}
+   \gdef^^a3{\L}
+   \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+   \gdef^^a5{\v L}
+   \gdef^^a6{\'S}
+   \gdef^^a7{\S}
+   \gdef^^a8{\"{}}
+   \gdef^^a9{\v S}
+   \gdef^^aa{\cedilla S}
+   \gdef^^ab{\v T}
+   \gdef^^ac{\'Z}
+   \gdef^^ad{\-}
+   \gdef^^ae{\v Z}
+   \gdef^^af{\dotaccent Z}
+   %
+   \gdef^^b0{\textdegree}
+   \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}}
+   \gdef^^b2{\missingcharmsg{OGONEK}}
+   \gdef^^b3{\l}
+   \gdef^^b4{\'{}}
+   \gdef^^b5{\v l}
+   \gdef^^b6{\'s}
+   \gdef^^b7{\v{}}
+   \gdef^^b8{\cedilla\ }
+   \gdef^^b9{\v s}
+   \gdef^^ba{\cedilla s}
+   \gdef^^bb{\v t}
+   \gdef^^bc{\'z}
+   \gdef^^bd{\H{}}
+   \gdef^^be{\v z}
+   \gdef^^bf{\dotaccent z}
+   %
+   \gdef^^c0{\'R}
+   \gdef^^c1{\'A}
+   \gdef^^c2{\^A}
+   \gdef^^c3{\u A}
+   \gdef^^c4{\"A}
+   \gdef^^c5{\'L}
+   \gdef^^c6{\'C}
+   \gdef^^c7{\cedilla C}
+   \gdef^^c8{\v C}
+   \gdef^^c9{\'E}
+   \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}}
+   \gdef^^cb{\"E}
+   \gdef^^cc{\v E}
+   \gdef^^cd{\'I}
+   \gdef^^ce{\^I}
+   \gdef^^cf{\v D}
+   %
+   \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}}
+   \gdef^^d1{\'N}
+   \gdef^^d2{\v N}
+   \gdef^^d3{\'O}
+   \gdef^^d4{\^O}
+   \gdef^^d5{\H O}
+   \gdef^^d6{\"O}
+   \gdef^^d7{$\times$}
+   \gdef^^d8{\v R}
+   \gdef^^d9{\ringaccent U} 
+   \gdef^^da{\'U}
+   \gdef^^db{\H U}
+   \gdef^^dc{\"U}
+   \gdef^^dd{\'Y}
+   \gdef^^de{\cedilla T}
+   \gdef^^df{\ss}
+   %
+   \gdef^^e0{\'r}
+   \gdef^^e1{\'a}
+   \gdef^^e2{\^a}
+   \gdef^^e3{\u a}
+   \gdef^^e4{\"a}
+   \gdef^^e5{\'l}
+   \gdef^^e6{\'c}
+   \gdef^^e7{\cedilla c}
+   \gdef^^e8{\v c}
+   \gdef^^e9{\'e}
+   \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}}
+   \gdef^^eb{\"e}
+   \gdef^^ec{\v e}
+   \gdef^^ed{\'\i}
+   \gdef^^ee{\^\i}
+   \gdef^^ef{\v d}
+   %
+   \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}}
+   \gdef^^f1{\'n}
+   \gdef^^f2{\v n}
+   \gdef^^f3{\'o}
+   \gdef^^f4{\^o}
+   \gdef^^f5{\H o}
+   \gdef^^f6{\"o}
+   \gdef^^f7{$\div$}
+   \gdef^^f8{\v r}
+   \gdef^^f9{\ringaccent u}
+   \gdef^^fa{\'u}
+   \gdef^^fb{\H u}
+   \gdef^^fc{\"u}
+   \gdef^^fd{\'y}
+   \gdef^^fe{\cedilla t}
+   \gdef^^ff{\dotaccent{}}
+ }
+ 
+ % UTF-8 character definitions.
+ % 
+ % This code to support UTF-8 is based on LaTeX's utf8.def, with some
+ % changes for Texinfo conventions.  It is included here under the GPL by
+ % permission from Frank Mittelbach and the LaTeX team.
+ % 
+ \newcount\countUTFx
+ \newcount\countUTFy
+ \newcount\countUTFz
+ 
+ \gdef\UTFviiiTwoOctets#1#2{\expandafter
+    \UTFviiiDefined\csname u8:#1\string #2\endcsname}
+ %
+ \gdef\UTFviiiThreeOctets#1#2#3{\expandafter
+    \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
+ %
+ \gdef\UTFviiiFourOctets#1#2#3#4{\expandafter
+    \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}
+ 
+ \gdef\UTFviiiDefined#1{%
+   \ifx #1\relax
+     \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
+   \else
+     \expandafter #1%
+   \fi
+ }
+ 
+ \begingroup
+   \catcode`\~13
+   \catcode`\"12
+ 
+   \def\UTFviiiLoop{%
+     \global\catcode\countUTFx\active
+     \uccode`\~\countUTFx
+     \uppercase\expandafter{\UTFviiiTmp}%
+     \advance\countUTFx by 1
+     \ifnum\countUTFx < \countUTFy
+       \expandafter\UTFviiiLoop
+     \fi}
+ 
+   \countUTFx = "C2
+   \countUTFy = "E0
+   \def\UTFviiiTmp{%
+     \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
+   \UTFviiiLoop
+ 
+   \countUTFx = "E0
+   \countUTFy = "F0
+   \def\UTFviiiTmp{%
+     \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
+   \UTFviiiLoop
+ 
+   \countUTFx = "F0
+   \countUTFy = "F4
+   \def\UTFviiiTmp{%
+     \xdef~{\noexpand\UTFviiiFourOctets\string~}}
+   \UTFviiiLoop
+ \endgroup
+ 
+ \begingroup
+   \catcode`\"=12
+   \catcode`\<=12
+   \catcode`\.=12
+   \catcode`\,=12
+   \catcode`\;=12
+   \catcode`\!=12
+   \catcode`\~=13
+ 
+   \gdef\DeclareUnicodeCharacter#1#2{%
+     \countUTFz = "#1\relax
+     \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
+     \begingroup
+       \parseXMLCharref
+       \def\UTFviiiTwoOctets##1##2{%
+         \csname u8:##1\string ##2\endcsname}%
+       \def\UTFviiiThreeOctets##1##2##3{%
+         \csname u8:##1\string ##2\string ##3\endcsname}%
+       \def\UTFviiiFourOctets##1##2##3##4{%
+         \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
+       \expandafter\expandafter\expandafter\expandafter
+        \expandafter\expandafter\expandafter
+        \gdef\UTFviiiTmp{#2}%
+     \endgroup}
+ 
+   \gdef\parseXMLCharref{%
+     \ifnum\countUTFz < "A0\relax
+       \errhelp = \EMsimple
+       \errmessage{Cannot define Unicode char value < 00A0}%
+     \else\ifnum\countUTFz < "800\relax
+       \parseUTFviiiA,%
+       \parseUTFviiiB C\UTFviiiTwoOctets.,%
+     \else\ifnum\countUTFz < "10000\relax
+       \parseUTFviiiA;%
+       \parseUTFviiiA,%
+       \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
+     \else
+       \parseUTFviiiA;%
+       \parseUTFviiiA,%
+       \parseUTFviiiA!%
+       \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
+     \fi\fi\fi
+   }
+ 
+   \gdef\parseUTFviiiA#1{%
+     \countUTFx = \countUTFz
+     \divide\countUTFz by 64
+     \countUTFy = \countUTFz
+     \multiply\countUTFz by 64
+     \advance\countUTFx by -\countUTFz
+     \advance\countUTFx by 128
+     \uccode `#1\countUTFx
+     \countUTFz = \countUTFy}
+ 
+   \gdef\parseUTFviiiB#1#2#3#4{%
+     \advance\countUTFz by "#10\relax
+     \uccode `#3\countUTFz
+     \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
+ \endgroup
+ 
+ \def\utfeightchardefs{%
+   \DeclareUnicodeCharacter{00A0}{\tie}
+   \DeclareUnicodeCharacter{00A1}{\exclamdown}
+   \DeclareUnicodeCharacter{00A3}{\pounds}
+   \DeclareUnicodeCharacter{00A8}{\"{ }}
+   \DeclareUnicodeCharacter{00A9}{\copyright}
+   \DeclareUnicodeCharacter{00AA}{\ordf}
+   \DeclareUnicodeCharacter{00AB}{\guillemetleft}
+   \DeclareUnicodeCharacter{00AD}{\-}
+   \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
+   \DeclareUnicodeCharacter{00AF}{\={ }}
+ 
+   \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
+   \DeclareUnicodeCharacter{00B4}{\'{ }}
+   \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
+   \DeclareUnicodeCharacter{00BA}{\ordm}
+   \DeclareUnicodeCharacter{00BB}{\guillemetright}
+   \DeclareUnicodeCharacter{00BF}{\questiondown}
+ 
+   \DeclareUnicodeCharacter{00C0}{\`A}
+   \DeclareUnicodeCharacter{00C1}{\'A}
+   \DeclareUnicodeCharacter{00C2}{\^A}
+   \DeclareUnicodeCharacter{00C3}{\~A}
+   \DeclareUnicodeCharacter{00C4}{\"A}
+   \DeclareUnicodeCharacter{00C5}{\AA}
+   \DeclareUnicodeCharacter{00C6}{\AE}
+   \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
+   \DeclareUnicodeCharacter{00C8}{\`E}
+   \DeclareUnicodeCharacter{00C9}{\'E}
+   \DeclareUnicodeCharacter{00CA}{\^E}
+   \DeclareUnicodeCharacter{00CB}{\"E}
+   \DeclareUnicodeCharacter{00CC}{\`I}
+   \DeclareUnicodeCharacter{00CD}{\'I}
+   \DeclareUnicodeCharacter{00CE}{\^I}
+   \DeclareUnicodeCharacter{00CF}{\"I}
+ 
+   \DeclareUnicodeCharacter{00D1}{\~N}
+   \DeclareUnicodeCharacter{00D2}{\`O}
+   \DeclareUnicodeCharacter{00D3}{\'O}
+   \DeclareUnicodeCharacter{00D4}{\^O}
+   \DeclareUnicodeCharacter{00D5}{\~O}
+   \DeclareUnicodeCharacter{00D6}{\"O}
+   \DeclareUnicodeCharacter{00D8}{\O}
+   \DeclareUnicodeCharacter{00D9}{\`U}
+   \DeclareUnicodeCharacter{00DA}{\'U}
+   \DeclareUnicodeCharacter{00DB}{\^U}
+   \DeclareUnicodeCharacter{00DC}{\"U}
+   \DeclareUnicodeCharacter{00DD}{\'Y}
+   \DeclareUnicodeCharacter{00DF}{\ss}
+ 
+   \DeclareUnicodeCharacter{00E0}{\`a}
+   \DeclareUnicodeCharacter{00E1}{\'a}
+   \DeclareUnicodeCharacter{00E2}{\^a}
+   \DeclareUnicodeCharacter{00E3}{\~a}
+   \DeclareUnicodeCharacter{00E4}{\"a}
+   \DeclareUnicodeCharacter{00E5}{\aa}
+   \DeclareUnicodeCharacter{00E6}{\ae}
+   \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
+   \DeclareUnicodeCharacter{00E8}{\`e}
+   \DeclareUnicodeCharacter{00E9}{\'e}
+   \DeclareUnicodeCharacter{00EA}{\^e}
+   \DeclareUnicodeCharacter{00EB}{\"e}
+   \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
+   \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
+   \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
+   \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
+ 
+   \DeclareUnicodeCharacter{00F1}{\~n}
+   \DeclareUnicodeCharacter{00F2}{\`o}
+   \DeclareUnicodeCharacter{00F3}{\'o}
+   \DeclareUnicodeCharacter{00F4}{\^o}
+   \DeclareUnicodeCharacter{00F5}{\~o}
+   \DeclareUnicodeCharacter{00F6}{\"o}
+   \DeclareUnicodeCharacter{00F8}{\o}
+   \DeclareUnicodeCharacter{00F9}{\`u}
+   \DeclareUnicodeCharacter{00FA}{\'u}
+   \DeclareUnicodeCharacter{00FB}{\^u}
+   \DeclareUnicodeCharacter{00FC}{\"u}
+   \DeclareUnicodeCharacter{00FD}{\'y}
+   \DeclareUnicodeCharacter{00FF}{\"y}
+ 
+   \DeclareUnicodeCharacter{0100}{\=A}
+   \DeclareUnicodeCharacter{0101}{\=a}
+   \DeclareUnicodeCharacter{0102}{\u{A}}
+   \DeclareUnicodeCharacter{0103}{\u{a}}
+   \DeclareUnicodeCharacter{0106}{\'C}
+   \DeclareUnicodeCharacter{0107}{\'c}
+   \DeclareUnicodeCharacter{0108}{\^C}
+   \DeclareUnicodeCharacter{0109}{\^c}
+   \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
+   \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
+   \DeclareUnicodeCharacter{010C}{\v{C}}
+   \DeclareUnicodeCharacter{010D}{\v{c}}
+   \DeclareUnicodeCharacter{010E}{\v{D}}
+ 
+   \DeclareUnicodeCharacter{0112}{\=E}
+   \DeclareUnicodeCharacter{0113}{\=e}
+   \DeclareUnicodeCharacter{0114}{\u{E}}
+   \DeclareUnicodeCharacter{0115}{\u{e}}
+   \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
+   \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
+   \DeclareUnicodeCharacter{011A}{\v{E}}
+   \DeclareUnicodeCharacter{011B}{\v{e}}
+   \DeclareUnicodeCharacter{011C}{\^G}
+   \DeclareUnicodeCharacter{011D}{\^g}
+   \DeclareUnicodeCharacter{011E}{\u{G}}
+   \DeclareUnicodeCharacter{011F}{\u{g}}
+ 
+   \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
+   \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
+   \DeclareUnicodeCharacter{0124}{\^H}
+   \DeclareUnicodeCharacter{0125}{\^h}
+   \DeclareUnicodeCharacter{0128}{\~I}
+   \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
+   \DeclareUnicodeCharacter{012A}{\=I}
+   \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
+   \DeclareUnicodeCharacter{012C}{\u{I}}
+   \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
+ 
+   \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
+   \DeclareUnicodeCharacter{0131}{\dotless{i}}
+   \DeclareUnicodeCharacter{0132}{IJ}
+   \DeclareUnicodeCharacter{0133}{ij}
+   \DeclareUnicodeCharacter{0134}{\^J}
+   \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
+   \DeclareUnicodeCharacter{0139}{\'L}
+   \DeclareUnicodeCharacter{013A}{\'l}
+ 
+   \DeclareUnicodeCharacter{0141}{\L}
+   \DeclareUnicodeCharacter{0142}{\l}
+   \DeclareUnicodeCharacter{0143}{\'N}
+   \DeclareUnicodeCharacter{0144}{\'n}
+   \DeclareUnicodeCharacter{0147}{\v{N}}
+   \DeclareUnicodeCharacter{0148}{\v{n}}
+   \DeclareUnicodeCharacter{014C}{\=O}
+   \DeclareUnicodeCharacter{014D}{\=o}
+   \DeclareUnicodeCharacter{014E}{\u{O}}
+   \DeclareUnicodeCharacter{014F}{\u{o}}
+ 
+   \DeclareUnicodeCharacter{0150}{\H{O}}
+   \DeclareUnicodeCharacter{0151}{\H{o}}
+   \DeclareUnicodeCharacter{0152}{\OE}
+   \DeclareUnicodeCharacter{0153}{\oe}
+   \DeclareUnicodeCharacter{0154}{\'R}
+   \DeclareUnicodeCharacter{0155}{\'r}
+   \DeclareUnicodeCharacter{0158}{\v{R}}
+   \DeclareUnicodeCharacter{0159}{\v{r}}
+   \DeclareUnicodeCharacter{015A}{\'S}
+   \DeclareUnicodeCharacter{015B}{\'s}
+   \DeclareUnicodeCharacter{015C}{\^S}
+   \DeclareUnicodeCharacter{015D}{\^s}
+   \DeclareUnicodeCharacter{015E}{\cedilla{S}}
+   \DeclareUnicodeCharacter{015F}{\cedilla{s}}
+ 
+   \DeclareUnicodeCharacter{0160}{\v{S}}
+   \DeclareUnicodeCharacter{0161}{\v{s}}
+   \DeclareUnicodeCharacter{0162}{\cedilla{t}}
+   \DeclareUnicodeCharacter{0163}{\cedilla{T}}
+   \DeclareUnicodeCharacter{0164}{\v{T}}
+ 
+   \DeclareUnicodeCharacter{0168}{\~U}
+   \DeclareUnicodeCharacter{0169}{\~u}
+   \DeclareUnicodeCharacter{016A}{\=U}
+   \DeclareUnicodeCharacter{016B}{\=u}
+   \DeclareUnicodeCharacter{016C}{\u{U}}
+   \DeclareUnicodeCharacter{016D}{\u{u}}
+   \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
+   \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
+ 
+   \DeclareUnicodeCharacter{0170}{\H{U}}
+   \DeclareUnicodeCharacter{0171}{\H{u}}
+   \DeclareUnicodeCharacter{0174}{\^W}
+   \DeclareUnicodeCharacter{0175}{\^w}
+   \DeclareUnicodeCharacter{0176}{\^Y}
+   \DeclareUnicodeCharacter{0177}{\^y}
+   \DeclareUnicodeCharacter{0178}{\"Y}
+   \DeclareUnicodeCharacter{0179}{\'Z}
+   \DeclareUnicodeCharacter{017A}{\'z}
+   \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
+   \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
+   \DeclareUnicodeCharacter{017D}{\v{Z}}
+   \DeclareUnicodeCharacter{017E}{\v{z}}
+ 
+   \DeclareUnicodeCharacter{01C4}{D\v{Z}}
+   \DeclareUnicodeCharacter{01C5}{D\v{z}}
+   \DeclareUnicodeCharacter{01C6}{d\v{z}}
+   \DeclareUnicodeCharacter{01C7}{LJ}
+   \DeclareUnicodeCharacter{01C8}{Lj}
+   \DeclareUnicodeCharacter{01C9}{lj}
+   \DeclareUnicodeCharacter{01CA}{NJ}
+   \DeclareUnicodeCharacter{01CB}{Nj}
+   \DeclareUnicodeCharacter{01CC}{nj}
+   \DeclareUnicodeCharacter{01CD}{\v{A}}
+   \DeclareUnicodeCharacter{01CE}{\v{a}}
+   \DeclareUnicodeCharacter{01CF}{\v{I}}
+ 
+   \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
+   \DeclareUnicodeCharacter{01D1}{\v{O}}
+   \DeclareUnicodeCharacter{01D2}{\v{o}}
+   \DeclareUnicodeCharacter{01D3}{\v{U}}
+   \DeclareUnicodeCharacter{01D4}{\v{u}}
+ 
+   \DeclareUnicodeCharacter{01E2}{\={\AE}}
+   \DeclareUnicodeCharacter{01E3}{\={\ae}}
+   \DeclareUnicodeCharacter{01E6}{\v{G}}
+   \DeclareUnicodeCharacter{01E7}{\v{g}}
+   \DeclareUnicodeCharacter{01E8}{\v{K}}
+   \DeclareUnicodeCharacter{01E9}{\v{k}}
+ 
+   \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
+   \DeclareUnicodeCharacter{01F1}{DZ}
+   \DeclareUnicodeCharacter{01F2}{Dz}
+   \DeclareUnicodeCharacter{01F3}{dz}
+   \DeclareUnicodeCharacter{01F4}{\'G}
+   \DeclareUnicodeCharacter{01F5}{\'g}
+   \DeclareUnicodeCharacter{01F8}{\`N}
+   \DeclareUnicodeCharacter{01F9}{\`n}
+   \DeclareUnicodeCharacter{01FC}{\'{\AE}}
+   \DeclareUnicodeCharacter{01FD}{\'{\ae}}
+   \DeclareUnicodeCharacter{01FE}{\'{\O}}
+   \DeclareUnicodeCharacter{01FF}{\'{\o}}
+ 
+   \DeclareUnicodeCharacter{021E}{\v{H}}
+   \DeclareUnicodeCharacter{021F}{\v{h}}
+ 
+   \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
+   \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
+   \DeclareUnicodeCharacter{0228}{\cedilla{E}}
+   \DeclareUnicodeCharacter{0229}{\cedilla{e}}
+   \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
+   \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
+ 
+   \DeclareUnicodeCharacter{0232}{\=Y}
+   \DeclareUnicodeCharacter{0233}{\=y}
+   \DeclareUnicodeCharacter{0237}{\dotless{j}}
+ 
+   \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
+   \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
+   \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
+   \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
+   \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
+   \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
+   \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
+   \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
+   \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
+   \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
+   \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
+   \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
+ 
+   \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
+   \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
+ 
+   \DeclareUnicodeCharacter{1E20}{\=G}
+   \DeclareUnicodeCharacter{1E21}{\=g}
+   \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
+   \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
+   \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
+   \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
+   \DeclareUnicodeCharacter{1E26}{\"H}
+   \DeclareUnicodeCharacter{1E27}{\"h}
+ 
+   \DeclareUnicodeCharacter{1E30}{\'K}
+   \DeclareUnicodeCharacter{1E31}{\'k}
+   \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
+   \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
+   \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
+   \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
+   \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
+   \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
+   \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
+   \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
+   \DeclareUnicodeCharacter{1E3E}{\'M}
+   \DeclareUnicodeCharacter{1E3F}{\'m}
+ 
+   \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
+   \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
+   \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
+   \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
+   \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
+   \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
+   \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
+   \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
+   \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
+   \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
+ 
+   \DeclareUnicodeCharacter{1E54}{\'P}
+   \DeclareUnicodeCharacter{1E55}{\'p}
+   \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
+   \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
+   \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
+   \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
+   \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
+   \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
+   \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
+   \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
+ 
+   \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
+   \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
+   \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
+   \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
+   \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
+   \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
+   \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
+   \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
+   \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
+   \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
+ 
+   \DeclareUnicodeCharacter{1E7C}{\~V}
+   \DeclareUnicodeCharacter{1E7D}{\~v}
+   \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
+   \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
+ 
+   \DeclareUnicodeCharacter{1E80}{\`W}
+   \DeclareUnicodeCharacter{1E81}{\`w}
+   \DeclareUnicodeCharacter{1E82}{\'W}
+   \DeclareUnicodeCharacter{1E83}{\'w}
+   \DeclareUnicodeCharacter{1E84}{\"W}
+   \DeclareUnicodeCharacter{1E85}{\"w}
+   \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
+   \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
+   \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
+   \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
+   \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
+   \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
+   \DeclareUnicodeCharacter{1E8C}{\"X}
+   \DeclareUnicodeCharacter{1E8D}{\"x}
+   \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
+   \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
+ 
+   \DeclareUnicodeCharacter{1E90}{\^Z}
+   \DeclareUnicodeCharacter{1E91}{\^z}
+   \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
+   \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
+   \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
+   \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
+   \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
+   \DeclareUnicodeCharacter{1E97}{\"t}
+   \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
+   \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
+ 
+   \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
+   \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
+ 
+   \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
+   \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
+   \DeclareUnicodeCharacter{1EBC}{\~E}
+   \DeclareUnicodeCharacter{1EBD}{\~e}
+ 
+   \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
+   \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
+   \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
+   \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
+ 
+   \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
+   \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
+ 
+   \DeclareUnicodeCharacter{1EF2}{\`Y}
+   \DeclareUnicodeCharacter{1EF3}{\`y}
+   \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
+ 
+   \DeclareUnicodeCharacter{1EF8}{\~Y}
+   \DeclareUnicodeCharacter{1EF9}{\~y}
+ 
+   \DeclareUnicodeCharacter{2013}{--}
+   \DeclareUnicodeCharacter{2014}{---}
+   \DeclareUnicodeCharacter{2018}{\quoteleft}
+   \DeclareUnicodeCharacter{2019}{\quoteright}
+   \DeclareUnicodeCharacter{201A}{\quotesinglbase}
+   \DeclareUnicodeCharacter{201C}{\quotedblleft}
+   \DeclareUnicodeCharacter{201D}{\quotedblright}
+   \DeclareUnicodeCharacter{201E}{\quotedblbase}
+   \DeclareUnicodeCharacter{2022}{\bullet}
+   \DeclareUnicodeCharacter{2026}{\dots}
+   \DeclareUnicodeCharacter{2039}{\guilsinglleft}
+   \DeclareUnicodeCharacter{203A}{\guilsinglright}
+   \DeclareUnicodeCharacter{20AC}{\euro}
+ 
+   \DeclareUnicodeCharacter{2192}{\expansion}
+   \DeclareUnicodeCharacter{21D2}{\result}
+ 
+   \DeclareUnicodeCharacter{2212}{\minus}
+   \DeclareUnicodeCharacter{2217}{\point}
+   \DeclareUnicodeCharacter{2261}{\equiv}
+ }% end of \utfeightchardefs
+ 
+ 
+ % US-ASCII character definitions.
+ \def\asciichardefs{% nothing need be done
+    \relax
+ }
+ 
+ % Make non-ASCII characters printable again for compatibility with
+ % existing Texinfo documents that may use them, even without declaring a
+ % document encoding.
+ %
+ \setnonasciicharscatcode \other
+ 
+ 
+ \message{formatting,}
+ 
+ \newdimen\defaultparindent \defaultparindent = 15pt
+ 
+ \chapheadingskip = 15pt plus 4pt minus 2pt
+ \secheadingskip = 12pt plus 3pt minus 2pt
+ \subsecheadingskip = 9pt plus 2pt minus 2pt
+ 
+ % Prevent underfull vbox error messages.
+ \vbadness = 10000
+ 
+ % Don't be so finicky about underfull hboxes, either.
+ \hbadness = 2000
+ 
+ % Following George Bush, get rid of widows and orphans.
+ \widowpenalty=10000
+ \clubpenalty=10000
+ 
+ % Use TeX 3.0's \emergencystretch to help line breaking, but if we're
+ % using an old version of TeX, don't do anything.  We want the amount of
+ % stretch added to depend on the line length, hence the dependence on
+ % \hsize.  We call this whenever the paper size is set.
+ %
+ \def\setemergencystretch{%
+   \ifx\emergencystretch\thisisundefined
+     % Allow us to assign to \emergencystretch anyway.
+     \def\emergencystretch{\dimen0}%
+   \else
+     \emergencystretch = .15\hsize
+   \fi
+ }
+ 
+ % Parameters in order: 1) textheight; 2) textwidth;
+ % 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
+ % 7) physical page height; 8) physical page width.
+ %
+ % We also call \setleading{\textleading}, so the caller should define
+ % \textleading.  The caller should also set \parskip.
+ %
+ \def\internalpagesizes#1#2#3#4#5#6#7#8{%
+   \voffset = #3\relax
+   \topskip = #6\relax
+   \splittopskip = \topskip
+   %
+   \vsize = #1\relax
+   \advance\vsize by \topskip
+   \outervsize = \vsize
+   \advance\outervsize by 2\topandbottommargin
+   \pageheight = \vsize
+   %
+   \hsize = #2\relax
+   \outerhsize = \hsize
+   \advance\outerhsize by 0.5in
+   \pagewidth = \hsize
+   %
+   \normaloffset = #4\relax
+   \bindingoffset = #5\relax
+   %
+   \ifpdf
+     \pdfpageheight #7\relax
+     \pdfpagewidth #8\relax
+     % if we don't reset these, they will remain at "1 true in" of
+     % whatever layout pdftex was dumped with.
+     \pdfhorigin = 1 true in
+     \pdfvorigin = 1 true in
+   \fi
+   %
+   \setleading{\textleading}
+   %
+   \parindent = \defaultparindent
+   \setemergencystretch
+ }
+ 
+ % @letterpaper (the default).
+ \def\letterpaper{{\globaldefs = 1
+   \parskip = 3pt plus 2pt minus 1pt
+   \textleading = 13.2pt
+   %
+   % If page is nothing but text, make it come out even.
+   \internalpagesizes{607.2pt}{6in}% that's 46 lines
+                     {\voffset}{.25in}%
+                     {\bindingoffset}{36pt}%
+                     {11in}{8.5in}%
+ }}
+ 
+ % Use @smallbook to reset parameters for 7x9.25 trim size.
+ \def\smallbook{{\globaldefs = 1
+   \parskip = 2pt plus 1pt
+   \textleading = 12pt
+   %
+   \internalpagesizes{7.5in}{5in}%
+                     {-.2in}{0in}%
+                     {\bindingoffset}{16pt}%
+                     {9.25in}{7in}%
+   %
+   \lispnarrowing = 0.3in
+   \tolerance = 700
+   \hfuzz = 1pt
+   \contentsrightmargin = 0pt
+   \defbodyindent = .5cm
+ }}
+ 
+ % Use @smallerbook to reset parameters for 6x9 trim size.
+ % (Just testing, parameters still in flux.)
+ \def\smallerbook{{\globaldefs = 1
+   \parskip = 1.5pt plus 1pt
+   \textleading = 12pt
+   %
+   \internalpagesizes{7.4in}{4.8in}%
+                     {-.2in}{-.4in}%
+                     {0pt}{14pt}%
+                     {9in}{6in}%
+   %
+   \lispnarrowing = 0.25in
+   \tolerance = 700
+   \hfuzz = 1pt
+   \contentsrightmargin = 0pt
+   \defbodyindent = .4cm
+ }}
+ 
+ % Use @afourpaper to print on European A4 paper.
+ \def\afourpaper{{\globaldefs = 1
+   \parskip = 3pt plus 2pt minus 1pt
+   \textleading = 13.2pt
+   %
+   % Double-side printing via postscript on Laserjet 4050
+   % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
+   % To change the settings for a different printer or situation, adjust
+   % \normaloffset until the front-side and back-side texts align.  Then
+   % do the same for \bindingoffset.  You can set these for testing in
+   % your texinfo source file like this:
+   % @tex
+   % \global\normaloffset = -6mm
+   % \global\bindingoffset = 10mm
+   % @end tex
+   \internalpagesizes{673.2pt}{160mm}% that's 51 lines
+                     {\voffset}{\hoffset}%
+                     {\bindingoffset}{44pt}%
+                     {297mm}{210mm}%
+   %
+   \tolerance = 700
+   \hfuzz = 1pt
+   \contentsrightmargin = 0pt
+   \defbodyindent = 5mm
+ }}
+ 
+ % Use @afivepaper to print on European A5 paper.
+ % From romildo@urano.iceb.ufop.br, 2 July 2000.
+ % He also recommends making @example and @lisp be small.
+ \def\afivepaper{{\globaldefs = 1
+   \parskip = 2pt plus 1pt minus 0.1pt
+   \textleading = 12.5pt
+   %
+   \internalpagesizes{160mm}{120mm}%
+                     {\voffset}{\hoffset}%
+                     {\bindingoffset}{8pt}%
+                     {210mm}{148mm}%
+   %
+   \lispnarrowing = 0.2in
+   \tolerance = 800
+   \hfuzz = 1.2pt
+   \contentsrightmargin = 0pt
+   \defbodyindent = 2mm
+   \tableindent = 12mm
+ }}
+ 
+ % A specific text layout, 24x15cm overall, intended for A4 paper.
+ \def\afourlatex{{\globaldefs = 1
+   \afourpaper
+   \internalpagesizes{237mm}{150mm}%
+                     {\voffset}{4.6mm}%
+                     {\bindingoffset}{7mm}%
+                     {297mm}{210mm}%
+   %
+   % Must explicitly reset to 0 because we call \afourpaper.
+   \globaldefs = 0
+ }}
+ 
+ % Use @afourwide to print on A4 paper in landscape format.
+ \def\afourwide{{\globaldefs = 1
+   \afourpaper
+   \internalpagesizes{241mm}{165mm}%
+                     {\voffset}{-2.95mm}%
+                     {\bindingoffset}{7mm}%
+                     {297mm}{210mm}%
+   \globaldefs = 0
+ }}
+ 
+ % @pagesizes TEXTHEIGHT[,TEXTWIDTH]
+ % Perhaps we should allow setting the margins, \topskip, \parskip,
+ % and/or leading, also. Or perhaps we should compute them somehow.
+ %
+ \parseargdef\pagesizes{\pagesizesyyy #1,,\finish}
+ \def\pagesizesyyy#1,#2,#3\finish{{%
+   \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
+   \globaldefs = 1
+   %
+   \parskip = 3pt plus 2pt minus 1pt
+   \setleading{\textleading}%
+   %
+   \dimen0 = #1\relax
+   \advance\dimen0 by \voffset
+   %
+   \dimen2 = \hsize
+   \advance\dimen2 by \normaloffset
+   %
+   \internalpagesizes{#1}{\hsize}%
+                     {\voffset}{\normaloffset}%
+                     {\bindingoffset}{44pt}%
+                     {\dimen0}{\dimen2}%
+ }}
+ 
+ % Set default to letter.
+ %
+ \letterpaper
+ 
+ 
+ \message{and turning on texinfo input format.}
+ 
+ % Define macros to output various characters with catcode for normal text.
+ \catcode`\"=\other
+ \catcode`\~=\other
+ \catcode`\^=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\+=\other
+ \catcode`\$=\other
+ \def\normaldoublequote{"}
+ \def\normaltilde{~}
+ \def\normalcaret{^}
+ \def\normalunderscore{_}
+ \def\normalverticalbar{|}
+ \def\normalless{<}
+ \def\normalgreater{>}
+ \def\normalplus{+}
+ \def\normaldollar{$}%$ font-lock fix
+ 
+ % This macro is used to make a character print one way in \tt
+ % (where it can probably be output as-is), and another way in other fonts,
+ % where something hairier probably needs to be done.
+ %
+ % #1 is what to print if we are indeed using \tt; #2 is what to print
+ % otherwise.  Since all the Computer Modern typewriter fonts have zero
+ % interword stretch (and shrink), and it is reasonable to expect all
+ % typewriter fonts to have this, we can check that font parameter.
+ %
+ \def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
+ 
+ % Same as above, but check for italic font.  Actually this also catches
+ % non-italic slanted fonts since it is impossible to distinguish them from
+ % italic fonts.  But since this is only used by $ and it uses \sl anyway
+ % this is not a problem.
+ \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
+ 
+ % Turn off all special characters except @
+ % (and those which the user can use as if they were ordinary).
+ % Most of these we simply print from the \tt font, but for some, we can
+ % use math or other variants that look better in normal text.
+ 
+ \catcode`\"=\active
+ \def\activedoublequote{{\tt\char34}}
+ \let"=\activedoublequote
+ \catcode`\~=\active
+ \def~{{\tt\char126}}
+ \chardef\hat=`\^
+ \catcode`\^=\active
+ \def^{{\tt \hat}}
+ 
+ \catcode`\_=\active
+ \def_{\ifusingtt\normalunderscore\_}
+ \let\realunder=_
+ % Subroutine for the previous macro.
+ \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
+ 
+ \catcode`\|=\active
+ \def|{{\tt\char124}}
+ \chardef \less=`\<
+ \catcode`\<=\active
+ \def<{{\tt \less}}
+ \chardef \gtr=`\>
+ \catcode`\>=\active
+ \def>{{\tt \gtr}}
+ \catcode`\+=\active
+ \def+{{\tt \char 43}}
+ \catcode`\$=\active
+ \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+ 
+ % If a .fmt file is being used, characters that might appear in a file
+ % name cannot be active until we have parsed the command line.
+ % So turn them off again, and have \everyjob (or @setfilename) turn them on.
+ % \otherifyactive is called near the end of this file.
+ \def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
+ 
+ % Used sometimes to turn off (effectively) the active characters even after
+ % parsing them.
+ \def\turnoffactive{%
+   \normalturnoffactive
+   \otherbackslash
+ }
+ 
+ \catcode`\@=0
+ 
+ % \backslashcurfont outputs one backslash character in current font,
+ % as in \char`\\.
+ \global\chardef\backslashcurfont=`\\
+ \global\let\rawbackslashxx=\backslashcurfont  % let existing .??s files work
+ 
+ % \realbackslash is an actual character `\' with catcode other, and
+ % \doublebackslash is two of them (for the pdf outlines).
+ {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
+ 
+ % In texinfo, backslash is an active character; it prints the backslash
+ % in fixed width font.
+ \catcode`\\=\active
+ @def@normalbackslash{{@tt@backslashcurfont}}
+ % On startup, @fixbackslash assigns:
+ %  @let \ = @normalbackslash
+ 
+ % \rawbackslash defines an active \ to do \backslashcurfont.
+ % \otherbackslash defines an active \ to be a literal `\' character with
+ % catcode other.
+ @gdef@rawbackslash{@let\=@backslashcurfont}
+ @gdef@otherbackslash{@let\=@realbackslash}
+ 
+ % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+ % the literal character `\'.
+ % 
+ @def@normalturnoffactive{%
+   @let\=@normalbackslash
+   @let"=@normaldoublequote
+   @let~=@normaltilde
+   @let^=@normalcaret
+   @let_=@normalunderscore
+   @let|=@normalverticalbar
+   @let<=@normalless
+   @let>=@normalgreater
+   @let+=@normalplus
+   @let$=@normaldollar %$ font-lock fix
+   @unsepspaces
+ }
+ 
+ % Make _ and + \other characters, temporarily.
+ % This is canceled by @fixbackslash.
+ @otherifyactive
+ 
+ % If a .fmt file is being used, we don't want the `\input texinfo' to show up.
+ % That is what \eatinput is for; after that, the `\' should revert to printing
+ % a backslash.
+ %
+ @gdef@eatinput input texinfo{@fixbackslash}
+ @global@let\ = @eatinput
+ 
+ % On the other hand, perhaps the file did not have a `\input texinfo'. Then
+ % the first `\' in the file would cause an error. This macro tries to fix
+ % that, assuming it is called before the first `\' could plausibly occur.
+ % Also turn back on active characters that might appear in the input
+ % file name, in case not using a pre-dumped format.
+ %
+ @gdef@fixbackslash{%
+   @ifx\@eatinput @let\ = @normalbackslash @fi
+   @catcode`+=@active
+   @catcode`@_=@active
+ }
+ 
+ % Say @foo, not \foo, in error messages.
+ @escapechar = `@@
+ 
+ % These look ok in all fonts, so just make them not special.
+ @catcode`@& = @other
+ @catcode`@# = @other
+ @catcode`@% = @other
+ 
+ 
+ @c Local variables:
+ @c eval: (add-hook 'write-file-hooks 'time-stamp)
+ @c page-delimiter: "^\\\\message"
+ @c time-stamp-start: "def\\\\texinfoversion{"
+ @c time-stamp-format: "%:y-%02m-%02d.%02H"
+ @c time-stamp-end: "}"
+ @c End:
+ 
+ @c vim:sw=2:
+ 
+ @ignore
+    arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
+ @end ignore
diff -Nrc2 texinfo-4.12/doc/texinfo.txi texinfo-4.13/doc/texinfo.txi
*** texinfo-4.12/doc/texinfo.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/texinfo.txi	Thu Sep 18 11:31:57 2008
***************
*** 0 ****
--- 1,21234 ----
+ \input texinfo.tex    @c -*-texinfo-*-
+ @c $Id: texinfo.txi,v 1.225 2008/09/07 22:47:46 karl Exp $
+ @c Ordinarily, Texinfo files have the extension .texi.  But texinfo.texi
+ @c clashes with texinfo.tex on 8.3 filesystems, so we use texinfo.txi.
+ 
+ @c Everything between the start/end of header lines will be passed by
+ @c Emacs's {texinfo,makeinfo}-format region commands.  See the `start of
+ @c header' node for more info.
+ @c %**start of header
+ 
+ @c makeinfo and texinfo.tex ignore all text before @setfilename.
+ @c
+ @c Ordinarily, the setfilename argument ends with .info.  But
+ @c texinfo.info-13 is too long for 14-character filesystems.
+ @setfilename texinfo
+ 
+ @c Automake automatically updates version.texi to @set VERSION and
+ @c @set UPDATED to appropriate values.
+ @include version.texi
+ @settitle GNU Texinfo @value{VERSION}
+ 
+ @c Define a new index for options.
+ @defcodeindex op
+ @c Put everything except function (command, in this case) names in one
+ @c index (arbitrarily chosen to be the concept index).
+ @syncodeindex op cp
+ @syncodeindex vr cp
+ @syncodeindex pg cp
+ 
+ @paragraphindent 2
+ @c finalout
+ 
+ @comment %**end of header
+ 
+ @copying
+ This manual is for GNU Texinfo (version @value{VERSION}, @value{UPDATED}),
+ a documentation system that can produce both online information and a
+ printed manual from a single source.
+ 
+ Copyright @copyright{} 1988, 1990, 1991, 1992, 1993, 1995, 1996, 1997,
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Free Software Foundation, Inc.
+ 
+ @quotation
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2 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 are free to copy and modify
+ this GNU Manual.  Buying copies from GNU Press supports the FSF in
+ developing GNU and promoting software freedom.''
+ @end quotation
+ @end copying
+ 
+ @dircategory Texinfo documentation system
+ @direntry
+ * Texinfo: (texinfo).           The GNU documentation format.
+ * install-info: (texinfo)Invoking install-info. Update info/dir entries.
+ * texi2dvi: (texinfo)Format with texi2dvi.      Print Texinfo documents.
+ * texi2pdf: (texinfo)PDF Output.                PDF output for Texinfo.
+ * pdftexi2dvi: (texinfo)PDF Output.             PDF output for Texinfo.
+ * texindex: (texinfo)Format with tex/texindex.  Sort Texinfo index files.
+ * makeinfo: (texinfo)Invoking makeinfo.         Translate Texinfo source.
+ @end direntry
+ 
+ @c Before release, run C-u C-c C-u C-a (texinfo-all-menus-update with a
+ @c prefix arg).  This updates the node pointers, which texinfmt.el needs.
+ 
+ @c Set smallbook if printing in smallbook format so the example of the
+ @c smallbook font is actually written using smallbook; in bigbook, a kludge
+ @c is used for TeX output.  Do this through the -t option to texi2dvi,
+ @c so this same source can be used for other paper sizes as well.
+ @c smallbook
+ @c set smallbook
+ @c @@clear smallbook
+ 
+ @c If you like blank pages, add through texi2dvi -t.
+ @c setchapternewpage odd
+ 
+ @c Currently undocumented command, 5 December 1993:
+ @c nwnode          (Same as node, but no warnings; for `makeinfo'.)
+ 
+ 
+ @shorttitlepage GNU Texinfo
+ 
+ @titlepage
+ @title Texinfo
+ @subtitle The GNU Documentation Format
+ @subtitle for Texinfo version @value{VERSION}, @value{UPDATED}
+ 
+ @author Robert J. Chassell
+ @author Richard M. Stallman
+ 
+ @c Include the Distribution inside the titlepage so
+ @c that headings are turned off.
+ 
+ @page
+ @vskip 0pt plus 1filll
+ @insertcopying
+ 
+ @sp 1
+ Published by the Free Software Foundation @*
+ 51 Franklin St, Fifth Floor @*
+ Boston, MA 02110-1301 @*
+ USA @*
+ ISBN 1-882114-67-1 @c for version 4.0, September 1999.
+ @c ISBN 1-882114-65-5 is for version 3.12, March 1998.
+ @c ISBN 1-882114-64-7 is for edition 2.24 of November 1996.
+ @c ISBN 1-882114-63-9 is for edition 2.20 of 28 February 1995.
+ 
+ @sp 1
+ Cover art by Etienne Suvasa.
+ @end titlepage
+ 
+ 
+ @summarycontents
+ @contents
+ 
+ 
+ @ifnottex
+ @node Top
+ @top Texinfo
+ 
+ This manual is for GNU Texinfo (version @value{VERSION}, @value{UPDATED}),
+ a documentation system that can produce both online information and a
+ printed manual from a single source.
+ 
+ The first part of this master menu lists the major nodes in this Info
+ document, including the @@-command and concept indices.  The rest of
+ the menu lists all the lower level nodes in the document.
+ 
+ @end ifnottex
+ 
+ @menu
+ * Copying Conditions::            Your rights.
+ * Overview::                      Texinfo in brief.
+ * Texinfo Mode::                  Using the GNU Emacs Texinfo mode.
+ * Beginning a File::              What is at the beginning of a Texinfo file?
+ * Ending a File::                 What is at the end of a Texinfo file?
+ * Structuring::                   Creating chapters, sections, appendices, etc.
+ * Nodes::                         Writing nodes, the basic unit of Texinfo.
+ * Menus::                         Writing menus.
+ * Cross References::              Writing cross references.
+ * Marking Text::                  Marking words and phrases as code,
+                                     keyboard input, meta-syntactic
+                                     variables, and the like.
+ * Quotations and Examples::       Block quotations, examples, etc.
+ * Lists and Tables::              Itemized or numbered lists, and tables.
+ * Special Displays::              Floating figures and footnotes.
+ * Indices::                       Creating indices.
+ * Insertions::                    Inserting @@-signs, braces, etc.
+ * Breaks::                        Forcing or preventing line and page breaks.
+ * Definition Commands::           Describing functions and the like uniformly.
+ * Conditionals::                  Specifying text for only some output cases.
+ * Internationalization::          Supporting languages other than English.
+ * Defining New Texinfo Commands:: User-defined macros and aliases.
+ * Hardcopy::                            Output for paper, with @TeX{}.
+ * Creating and Installing Info Files::  Details on Info output.
+ * Generating HTML::               Details on HTML output.
+ 
+ * Command List::                  All the Texinfo @@-commands.
+ * Tips::                          Hints on how to write a Texinfo document.
+ * Sample Texinfo Files::          Complete examples, including full texts.
+ * Include Files::                 How to incorporate other Texinfo files.
+ * Headings::                      How to write page headings and footings.
+ * Catching Mistakes::             How to find formatting mistakes.
+ * GNU Free Documentation License::Copying this manual.
+ * Command and Variable Index::    A menu containing commands and variables.
+ * General Index::                 A menu covering many topics.
+ 
+ @detailmenu
+  --- The Detailed Node Listing ---
+ 
+ Overview of Texinfo
+ 
+ * Reporting Bugs::              Submitting effective bug reports.
+ * Using Texinfo::               Create printed or online output.
+ * Output Formats::              Overview of the supported output formats.
+ * Info Files::                  What is an Info file?
+ * Printed Books::               Characteristics of a printed book or manual.
+ * Formatting Commands::         @@-commands are used for formatting.
+ * Conventions::                 General rules for writing a Texinfo file.
+ * Comments::                    Writing comments and ignored text in general.
+ * Minimum::                     What a Texinfo file must have.
+ * Six Parts::                   Usually, a Texinfo file has six parts.
+ * Short Sample::                A short sample Texinfo file.
+ * History::                     Acknowledgements, contributors and genesis.
+ 
+ Using Texinfo Mode
+ 
+ * Texinfo Mode Overview::       How Texinfo mode can help you.
+ * Emacs Editing::               Texinfo mode adds to GNU Emacs' general
+                                   purpose editing features.
+ * Inserting::                   How to insert frequently used @@-commands.
+ * Showing the Structure::       How to show the structure of a file.
+ * Updating Nodes and Menus::    How to update or create new nodes and menus.
+ * Info Formatting::             How to format for Info.
+ * Printing::                    How to format and print part or all of a file.
+ * Texinfo Mode Summary::        Summary of all the Texinfo mode commands.
+ 
+ Updating Nodes and Menus
+ 
+ * Updating Commands::           Five major updating commands.
+ * Updating Requirements::       How to structure a Texinfo file for
+                                   using the updating command.
+ * Other Updating Commands::     How to indent descriptions, insert
+                                   missing nodes lines, and update
+                                   nodes in sequence.
+ 
+ Beginning a Texinfo File
+ 
+ * Sample Beginning::            A sample beginning for a Texinfo file.
+ * Texinfo File Header::         The first lines.
+ * Document Permissions::        Ensuring your manual is free.
+ * Titlepage & Copyright Page::  Creating the title and copyright pages.
+ * Contents::                    How to create a table of contents.
+ * The Top Node::                Creating the `Top' node and master menu.
+ * Global Document Commands::    Affecting formatting throughout.
+ * Software Copying Permissions::  Ensure that you and others continue to
+                                    have the right to use and share software.
+ 
+ Texinfo File Header
+ 
+ * First Line::                  The first line of a Texinfo file.
+ * Start of Header::             Formatting a region requires this.
+ * setfilename::                 Tell Info the name of the Info file.
+ * settitle::                    Create a title for the printed work.
+ * End of Header::               Formatting a region requires this.
+ 
+ Document Permissions
+ 
+ * copying::                     Declare the document's copying permissions.
+ * insertcopying::               Where to insert the permissions.
+ 
+ Title and Copyright Pages
+ 
+ * titlepage::                   Create a title for the printed document.
+ * titlefont center sp::         The @code{@@titlefont}, @code{@@center},
+                                  and @code{@@sp} commands.
+ * title subtitle author::       The @code{@@title}, @code{@@subtitle},
+                                  and @code{@@author} commands.
+ * Copyright::                   How to write the copyright notice and
+                                  include copying permissions.
+ * end titlepage::               Turn on page headings after the title and
+                                  copyright pages.
+ * headings on off::             An option for turning headings on and off
+                                  and double or single sided printing.
+ 
+ The `Top' Node and Master Menu
+ 
+ * Top Node Example::
+ * Master Menu Parts::
+ 
+ Global Document Commands
+ 
+ * documentdescription::         Document summary for the HTML output.
+ * setchapternewpage::           Start chapters on right-hand pages.
+ * paragraphindent::             Specify paragraph indentation.
+ * firstparagraphindent::        Suppress indentation of the first paragraph.
+ * exampleindent::               Specify environment indentation.
+ 
+ Ending a Texinfo File
+ 
+ * Printing Indices & Menus::    How to print an index in hardcopy and
+                                  generate index menus in Info.
+ * File End::                    How to mark the end of a file.
+ 
+ Chapter Structuring
+ 
+ * Tree Structuring::            A manual is like an upside down tree @dots{}
+ * Structuring Command Types::   How to divide a manual into parts.
+ * makeinfo top::                The @code{@@top} command, part of the `Top' node.
+ * chapter::
+ * unnumbered & appendix::
+ * majorheading & chapheading::
+ * section::
+ * unnumberedsec appendixsec heading::
+ * subsection::
+ * unnumberedsubsec appendixsubsec subheading::
+ * subsubsection::               Commands for the lowest level sections.
+ * Raise/lower sections::        How to change commands' hierarchical level.
+ 
+ Nodes
+ 
+ * Two Paths::                   Different commands to structure
+                                  Info output and printed output.
+ * Node Menu Illustration::      A diagram, and sample nodes and menus.
+ * node::                        Creating nodes, in detail.
+ * makeinfo Pointer Creation::   Letting makeinfo determine node pointers.
+ * anchor::                      Defining arbitrary cross-reference targets.
+ 
+ The @code{@@node} Command
+ 
+ * Node Names::                  How to choose node and pointer names.
+ * Writing a Node::              How to write an @code{@@node} line.
+ * Node Line Tips::              Keep names short.
+ * Node Line Requirements::      Keep names unique, without @@-commands.
+ * First Node::                  How to write a `Top' node.
+ * makeinfo top command::        How to use the @code{@@top} command.
+ 
+ Menus
+ 
+ * Menu Location::               Menus go at the ends of short nodes.
+ * Writing a Menu::              What is a menu?
+ * Menu Parts::                  A menu entry has three parts.
+ * Less Cluttered Menu Entry::   Two part menu entry.
+ * Menu Example::                Two and three part menu entries.
+ * Other Info Files::            How to refer to a different Info file.
+ 
+ Cross References
+ 
+ * References::                  What cross references are for.
+ * Cross Reference Commands::    A summary of the different commands.
+ * Cross Reference Parts::       A cross reference has several parts.
+ * xref::                        Begin a reference with `See' @dots{}
+ * Top Node Naming::             How to refer to the beginning of another file.
+ * ref::                         A reference for the last part of a sentence.
+ * pxref::                       How to write a parenthetical cross reference.
+ * inforef::                     How to refer to an Info-only file.
+ * uref::                        How to refer to a uniform resource locator.
+ * cite::                        How to refer to books not in the Info system.
+ 
+ @code{@@xref}
+ 
+ * Reference Syntax::            What a reference looks like and requires.
+ * One Argument::                @code{@@xref} with one argument.
+ * Two Arguments::               @code{@@xref} with two arguments.
+ * Three Arguments::             @code{@@xref} with three arguments.
+ * Four and Five Arguments::     @code{@@xref} with four and five arguments.
+ 
+ Marking Words and Phrases
+ 
+ * Indicating::                  How to indicate definitions, files, etc.
+ * Emphasis::                    How to emphasize text.
+ 
+ Indicating Definitions, Commands, etc.
+ 
+ * Useful Highlighting::         Highlighting provides useful information.
+ * code::                        Indicating program code.
+ * kbd::                         Showing keyboard input.
+ * key::                         Specifying keys.
+ * samp::                        A literal sequence of characters.
+ * verb::                        A verbatim sequence of characters.
+ * var::                         Indicating metasyntactic variables.
+ * env::                         Indicating environment variables.
+ * file::                        Indicating file names.
+ * command::                     Indicating command names.
+ * option::                      Indicating option names.
+ * dfn::                         Specifying definitions.
+ * abbr::                        Indicating abbreviations.
+ * acronym::                     Indicating acronyms.
+ * indicateurl::                 Indicating a World Wide Web reference.
+ * email::                       Indicating an electronic mail address.
+ 
+ Emphasizing Text
+ 
+ * emph & strong::               How to emphasize text in Texinfo.
+ * Smallcaps::                   How to use the small caps font.
+ * Fonts::                       Various font commands for printed output.
+ 
+ Quotations and Examples
+ 
+ * Block Enclosing Commands::    Different constructs for different purposes.
+ * quotation::                   Writing a quotation.
+ * example::                     Writing an example in a fixed-width font.
+ * verbatim::                    Writing a verbatim example.
+ * verbatiminclude::             Including a file verbatim.
+ * lisp::                        Illustrating Lisp code.
+ * small::                       Examples in a smaller font.
+ * display::                     Writing an example in the current font.
+ * format::                      Writing an example without narrowed margins.
+ * exdent::                      Undo indentation on a line.
+ * flushleft & flushright::      Pushing text flush left or flush right.
+ * noindent::                    Preventing paragraph indentation.
+ * indent::                      Forcing paragraph indentation.
+ * cartouche::                   Drawing rounded rectangles around examples.
+ 
+ Lists and Tables
+ 
+ * Introducing Lists::           Texinfo formats lists for you.
+ * itemize::                     How to construct a simple list.
+ * enumerate::                   How to construct a numbered list.
+ * Two-column Tables::           How to construct a two-column table.
+ * Multi-column Tables::         How to construct generalized tables.
+ 
+ Making a Two-column Table
+ 
+ * table::                       How to construct a two-column table.
+ * ftable vtable::               Automatic indexing for two-column tables.
+ * itemx::                       How to put more entries in the first column.
+ 
+ @code{@@multitable}: Multi-column Tables
+ 
+ * Multitable Column Widths::    Defining multitable column widths.
+ * Multitable Rows::             Defining multitable rows, with examples.
+ 
+ Special Displays
+ 
+ * Floats::                      Figures, tables, and the like.
+ * Images::                      Including graphics and images.
+ * Footnotes::                   Writing footnotes.
+ 
+ Floats
+ 
+ * float::                       Producing floating material.
+ * caption shortcaption::        Specifying descriptions for floats.
+ * listoffloats::                A table of contents for floats.
+ 
+ Inserting Images
+ 
+ * Image Syntax::
+ * Image Scaling::
+ 
+ Footnotes
+ 
+ * Footnote Commands::           How to write a footnote in Texinfo.
+ * Footnote Styles::             Controlling how footnotes appear in Info.
+ 
+ Indices
+ 
+ * Index Entries::               Choose different words for index entries.
+ * Predefined Indices::          Use different indices for different kinds
+                                  of entries.
+ * Indexing Commands::           How to make an index entry.
+ * Combining Indices::           How to combine indices.
+ * New Indices::                 How to define your own indices.
+ 
+ Combining Indices
+ 
+ * syncodeindex::                How to merge two indices, using @code{@@code}
+                                  font for the merged-from index.
+ * synindex::                    How to merge two indices, using the
+                                  default font of the merged-to index.
+ 
+ Special Insertions
+ 
+ * Atsign Braces Comma::         Inserting @@ and @{@} and ,.
+ * Inserting Quote Characters::  Inserting left and right quotes, in code.
+ * Inserting Space::             How to insert the right amount of space
+                                  within a sentence.
+ * Inserting Accents::           How to insert accents and special characters.
+ * Inserting Quotation Marks::   How to insert quotation marks.
+ * Dots Bullets::                How to insert dots and bullets.
+ * TeX and copyright::           How to insert the @TeX{} logo
+                                  and the copyright symbol.
+ * euro::                        How to insert the Euro currency symbol.
+ * pounds::                      How to insert the pounds currency symbol.
+ * textdegree::                  How to insert the degrees symbol.
+ * minus::                       How to insert a minus sign.
+ * geq leq::                     How to insert greater/less-than-or-equal signs.
+ * math::                        How to format a mathematical expression.
+ * Click Sequences::             Inserting GUI usage sequences.
+ * Glyphs::                      How to indicate results of evaluation,
+                                  expansion of macros, errors, etc.
+ 
+ Inserting @@ and @{@} and @comma{}
+ 
+ * Inserting an Atsign::
+ * Inserting Braces::
+ * Inserting a Comma::
+ 
+ Inserting Space
+ 
+ * Not Ending a Sentence::       Sometimes a . doesn't end a sentence.
+ * Ending a Sentence::           Sometimes it does.
+ * Multiple Spaces::             Inserting multiple spaces.
+ * frenchspacing::               Specifying end-of-sentence spacing.
+ * dmn::                         How to format a dimension.
+ 
+ Inserting Ellipsis and Bullets
+ 
+ * dots::                        How to insert dots @dots{}
+ * bullet::                      How to insert a bullet.
+ 
+ Inserting @TeX{} and Legal Symbols: @copyright{}, @registeredsymbol{}
+ 
+ * tex::                         The @TeX{} logos.
+ * copyright symbol::            The copyright symbol (c in a circle).
+ * registered symbol::           The registered symbol (R in a circle).
+ 
+ Glyphs for Examples
+ 
+ * Glyphs Summary::
+ * result::                      How to show the result of expression.
+ * expansion::                   How to indicate an expansion.
+ * Print Glyph::                 How to indicate printed output.
+ * Error Glyph::                 How to indicate an error message.
+ * Equivalence::                 How to indicate equivalence.
+ * Point Glyph::                 How to indicate the location of point.
+ 
+ Glyphs Summary
+ 
+ * result::
+ * expansion::
+ * Print Glyph::
+ * Error Glyph::
+ * Equivalence::
+ * Point Glyph::
+ 
+ Forcing and Preventing Breaks
+ 
+ * Break Commands::              Summary of break-related commands.
+ * Line Breaks::                 Forcing line breaks.
+ * - and hyphenation::           Helping @TeX{} with hyphenation points.
+ * allowcodebreaks::             Controlling line breaks within @@code text.
+ * w::                           Preventing unwanted line breaks in text.
+ * tie::                         Inserting an unbreakable but varying space.
+ * sp::                          Inserting blank lines.
+ * page::                        Forcing the start of a new page.
+ * group::                       Preventing unwanted page breaks.
+ * need::                        Another way to prevent unwanted page breaks.
+ 
+ Definition Commands
+ 
+ * Def Cmd Template::            Writing descriptions using definition commands.
+ * Def Cmd Continuation Lines::  Continuing the heading over source lines.
+ * Optional Arguments::          Handling optional and repeated arguments.
+ * deffnx::                      Group two or more `first' lines.
+ * Def Cmds in Detail::          Reference for all the definition commands.
+ * Def Cmd Conventions::         Conventions for writing definitions.
+ * Sample Function Definition::  An example.
+ 
+ The Definition Commands
+ 
+ * Functions Commands::          Commands for functions and similar entities.
+ * Variables Commands::          Commands for variables and similar entities.
+ * Typed Functions::             Commands for functions in typed languages.
+ * Typed Variables::             Commands for variables in typed languages.
+ * Data Types::                  The definition command for data types.
+ * Abstract Objects::            Commands for object-oriented programming.
+ 
+ Object-Oriented Programming
+ 
+ * Variables: Object-Oriented Variables.
+ * Methods: Object-Oriented Methods.
+ 
+ Conditionally Visible Text
+ 
+ * Conditional Commands::        Text for a given format.
+ * Conditional Not Commands::    Text for any format other than a given one.
+ * Raw Formatter Commands::      Using raw formatter commands.
+ * set clear value::             Variable tests and substitutions.
+ * Conditional Nesting::         Using conditionals inside conditionals.
+ 
+ @code{@@set}, @code{@@clear}, and @code{@@value}
+ 
+ * set value::                   Expand a flag variable to a string.
+ * ifset ifclear::               Format a region if a flag is set.
+ * value Example::               An easy way to update edition information.
+ 
+ Internationalization
+ 
+ * documentlanguage::            Declaring the current language.
+ * documentencoding::            Declaring the input encoding.
+ 
+ Defining New Texinfo Commands
+ 
+ * Defining Macros::             Defining and undefining new commands.
+ * Invoking Macros::             Using a macro, once you've defined it.
+ * Macro Details::               Limitations of Texinfo macros.
+ * alias::                       Command aliases.
+ * definfoenclose::              Customized highlighting.
+ 
+ Formatting and Printing Hardcopy
+ 
+ * Use TeX::                     Use @TeX{} to format for hardcopy.
+ * Format with tex/texindex::    How to format with explicit shell commands.
+ * Format with texi2dvi::        A simpler way to format.
+ * Print with lpr::              How to print.
+ * Within Emacs::                How to format and print from an Emacs shell.
+ * Texinfo Mode Printing::       How to format and print in Texinfo mode.
+ * Compile-Command::             How to print using Emacs's compile command.
+ * Requirements Summary::        @TeX{} formatting requirements summary.
+ * Preparing for TeX::           What to do before you use @TeX{}.
+ * Overfull hboxes::             What are and what to do with overfull hboxes.
+ * smallbook::                   How to print small format books and manuals.
+ * A4 Paper::                    How to print on A4 or A5 paper.
+ * pagesizes::                   How to print with customized page sizes.
+ * Cropmarks and Magnification:: How to print marks to indicate the size
+                                  of pages and how to print scaled up output.
+ * PDF Output::                  Portable Document Format output.
+ * Obtaining TeX::               How to Obtain @TeX{}.
+ 
+ Creating and Installing Info Files
+ 
+ * Creating an Info File::
+ * Installing an Info File::
+ 
+ Creating an Info File
+ 
+ * makeinfo advantages::         @code{makeinfo} provides better error checking.
+ * Invoking makeinfo::           How to run @code{makeinfo} from a shell.
+ * makeinfo options::            Specify fill-column and other options.
+ * Pointer Validation::          How to check that pointers point somewhere.
+ * makeinfo in Emacs::           How to run @code{makeinfo} from Emacs.
+ * texinfo-format commands::     Two Info formatting commands written
+                                  in Emacs Lisp are an alternative
+                                  to @code{makeinfo}.
+ * Batch Formatting::            How to format for Info in Emacs Batch mode.
+ * Tag and Split Files::         How tagged and split files help Info
+                                  to run better.
+ 
+ Installing an Info File
+ 
+ * Directory File::              The top level menu for all Info files.
+ * New Info File::               Listing a new Info file.
+ * Other Info Directories::      How to specify Info files that are
+                                  located in other directories.
+ * Installing Dir Entries::      How to specify what menu entry to add
+                                  to the Info directory.
+ * Invoking install-info::       @code{install-info} options.
+ 
+ Generating HTML
+ 
+ * HTML Translation::       Details of the HTML output.
+ * HTML Splitting::         How HTML output is split.
+ * HTML CSS::               Influencing HTML output with Cascading Style Sheets.
+ * HTML Xref::              Cross-references in HTML output.
+ 
+ HTML Cross-references
+ 
+ * Link Basics:       HTML Xref Link Basics.
+ * Node Expansion:    HTML Xref Node Name Expansion.
+ * Command Expansion: HTML Xref Command Expansion.
+ * 8-bit Expansion:   HTML Xref 8-bit Character Expansion.
+ * Mismatch:          HTML Xref Mismatch.
+ 
+ @@-Command List
+ 
+ * Command Syntax::    General syntax for varieties of @@-commands.
+ 
+ Sample Texinfo Files
+ 
+ * Short Sample Texinfo File::
+ * GNU Sample Texts::
+ * Verbatim Copying License::
+ * All-permissive Copying License::
+ 
+ GNU Free Documentation License
+ 
+ Include Files
+ 
+ * Using Include Files::         How to use the @code{@@include} command.
+ * texinfo-multiple-files-update::  How to create and update nodes and
+                                      menus when using included files.
+ * Include Files Requirements::  @code{texinfo-multiple-files-update} needs.
+ * Sample Include File::         A sample outer file with included files
+                                      within it; and a sample included file.
+ * Include Files Evolution::     How use of the @code{@@include} command
+                                      has changed over time.
+ 
+ Page Headings
+ 
+ * Headings Introduced::         Conventions for using page headings.
+ * Heading Format::              Standard page heading formats.
+ * Heading Choice::              How to specify the type of page heading.
+ * Custom Headings::             How to create your own headings and footings.
+ 
+ Formatting Mistakes
+ 
+ * makeinfo Preferred::          @code{makeinfo} finds errors.
+ * Debugging with Info::         How to catch errors with Info formatting.
+ * Debugging with TeX::          How to catch errors with @TeX{} formatting.
+ * Using texinfo-show-structure::  How to use @code{texinfo-show-structure}.
+ * Using occur::                 How to list all lines containing a pattern.
+ * Running Info-Validate::       How to find badly referenced nodes.
+ 
+ Finding Badly Referenced Nodes
+ 
+ * Using Info-validate::         How to run @code{Info-validate}.
+ * Unsplit::                     How to create an unsplit file.
+ * Tagifying::                   How to tagify a file.
+ * Splitting::                   How to split a file manually.
+ 
+ @end detailmenu
+ @end menu
+ 
+ @c Reward readers for getting to the end of the menu :).
+ @c Contributed by Arnold Robbins.
+ @quotation
+ Documentation is like sex: when it is good, it is very, very good; and
+ when it is bad, it is better than nothing.
+ ---Dick Brandon
+ @end quotation
+ 
+ 
+ @node Copying Conditions
+ @unnumbered Texinfo Copying Conditions
+ @cindex Copying conditions
+ @cindex Conditions for copying Texinfo
+ 
+ The programs currently being distributed that relate to Texinfo include
+ @code{makeinfo}, @code{info}, @code{texindex}, and @file{texinfo.tex}.
+ These programs are @dfn{free}; this means that everyone is free to use
+ them and free to redistribute them on a free basis.  The Texinfo-related
+ programs are not in the public domain; they are copyrighted and there
+ are restrictions on their distribution, but these restrictions are
+ designed to permit everything that a good cooperating citizen would want
+ to do.  What is not allowed is to try to prevent others from further
+ sharing any version of these programs that they might get from you.
+ 
+ Specifically, we want to make sure that you have the right to give away
+ copies of the programs that relate to Texinfo, that you receive source
+ code or else can get it if you want it, that you can change these
+ programs or use pieces of them in new free programs, and that you know
+ you can do these things.
+ 
+ To make sure that everyone has such rights, we have to forbid you to
+ deprive anyone else of these rights.  For example, if you distribute
+ copies of the Texinfo related programs, 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 tell them their rights.
+ 
+ Also, for our own protection, we must make certain that everyone finds
+ out that there is no warranty for the programs that relate to Texinfo.
+ If these programs are modified by someone else and passed on, we want
+ their recipients to know that what they have is not what we distributed,
+ so that any problems introduced by others will not reflect on our
+ reputation.
+ 
+ The precise conditions of the licenses for the programs currently being
+ distributed that relate to Texinfo are found in the General Public
+ Licenses that accompany them.  This manual specifically is covered by
+ the GNU Free Documentation License (@pxref{GNU Free Documentation
+ License}).
+ 
+ 
+ @node Overview
+ @chapter Overview of Texinfo
+ @cindex Overview of Texinfo
+ @cindex Texinfo overview
+ 
+ @dfn{Texinfo}@footnote{The first syllable of ``Texinfo'' is pronounced
+ like ``speck'', not ``hex''.  This odd pronunciation is derived from,
+ but is not the same as, the pronunciation of @TeX{}.  In the word
+ @TeX{}, the @samp{X} is actually the Greek letter ``chi'' rather than
+ the English letter ``ex''.  Pronounce @TeX{} as if the @samp{X} were the
+ last sound in the name `Bach'; but pronounce Texinfo as if the @samp{x}
+ were a `k'.  Spell ``Texinfo'' with a capital ``T'' and the other
+ letters in lower case.}  is a documentation system that uses a single
+ source file to produce both online information and printed output.  This
+ means that instead of writing two different documents, one for the
+ online information and the other for a printed work, you need write only
+ one document.  Therefore, when the work is revised, you need revise only
+ that one document.
+ 
+ Manuals for most GNU packages are written in Texinfo, and available
+ online at @url{http://www.gnu.org/doc}.
+ 
+ @menu
+ * Reporting Bugs::              Submitting effective bug reports.
+ * Using Texinfo::               Create printed or online output.
+ * Output Formats::              Overview of the supported output formats.
+ * Info Files::                  What is an Info file?
+ * Printed Books::               Characteristics of a printed book or manual.
+ * Formatting Commands::         @@-commands are used for formatting.
+ * Conventions::                 General rules for writing a Texinfo file.
+ * Comments::                    Writing comments and ignored text in general.
+ * Minimum::                     What a Texinfo file must have.
+ * Six Parts::                   Usually, a Texinfo file has six parts.
+ * Short Sample::                A short sample Texinfo file.
+ * History::                     Acknowledgements, contributors and genesis.
+ @end menu
+ 
+ 
+ @node Reporting Bugs
+ @section Reporting Bugs
+ 
+ @cindex Bugs, reporting
+ @cindex Suggestions for Texinfo, making
+ @cindex Reporting bugs
+ We welcome bug reports and suggestions for any aspect of the Texinfo system,
+ programs, documentation, installation, anything.  Please email them to
+ @email{bug-texinfo@@gnu.org}.  You can get the latest version of Texinfo
+ from @uref{ftp://ftp.gnu.org/gnu/texinfo/} and its mirrors worldwide.
+ 
+ @cindex Checklist for bug reports
+ For bug reports, please include enough information for the maintainers
+ to reproduce the problem.  Generally speaking, that means:
+ 
+ @itemize @bullet
+ @item the version number of Texinfo and the program(s) or manual(s) involved.
+ @item hardware and operating system names and versions.
+ @item the contents of any input files necessary to reproduce the bug.
+ @item a description of the problem and samples of any erroneous output.
+ @item any unusual options you gave to @command{configure}.
+ @item anything else that you think would be helpful.
+ @end itemize
+ 
+ When in doubt whether something is needed or not, include it.  It's
+ better to include too much than to leave out something important.
+ 
+ @cindex Patches, contributing
+ Patches are most welcome; if possible, please make them with
+ @samp{@w{diff -c}} (@pxref{Top,, Overview, diff, Comparing and Merging
+ Files}) and include @file{ChangeLog} entries (@pxref{Change Log,,,
+ emacs, The GNU Emacs Manual}), and follow the existing coding style.
+ 
+ 
+ @node Using Texinfo
+ @section Using Texinfo
+ 
+ @cindex Using Texinfo in general
+ @cindex Texinfo, introduction to
+ @cindex Introduction to Texinfo
+ 
+ Using Texinfo, you can create a printed document (via the @TeX{}
+ typesetting system) the normal features of a book, including chapters,
+ sections, cross references, and indices.  From the same Texinfo source
+ file, you can create an Info file with special features to make
+ documentation browsing easy.  You can also create from that same
+ source file an HTML output file suitable for use with a web browser,
+ or an XML file.  See the next section (@pxref{Output Formats}) for
+ details and the exact commands to generate output from the source.
+ 
+ @TeX{} works with virtually all printers; Info works with virtually all
+ computer terminals; the HTML output works with virtually all web
+ browsers.  Thus Texinfo can be used by almost any computer user.
+ 
+ @cindex Source file format
+ A Texinfo source file is a plain ASCII file containing text
+ interspersed with @dfn{@@-commands} (words preceded by an @samp{@@})
+ that tell the typesetting and formatting programs what to do.  You can
+ edit a Texinfo file with any text editor, but it is especially
+ convenient to use GNU Emacs since that editor has a special mode,
+ called Texinfo mode, that provides various Texinfo-related features.
+ (@xref{Texinfo Mode}.)
+ 
+ You can use Texinfo to create both online help and printed manuals;
+ moreover, Texinfo is freely redistributable.  For these reasons, Texinfo
+ is the official documentation format of the GNU project.  More
+ information is available at the @uref{http://www.gnu.org/doc/, GNU
+ documentation web page}.
+ 
+ 
+ @node Output Formats
+ @section Output Formats
+ @cindex Output formats
+ @cindex Back-end output formats
+ 
+ Here is a brief overview of the output formats currently supported by
+ Texinfo.
+ 
+ @table @asis
+ @item Info
+ @cindex Info output
+ (Generated via @command{makeinfo}.)  This format is essentially a
+ plain text transliteration of the Texinfo source.  It adds a few
+ control characters to separate nodes and provide navigational
+ information for menus, cross-references, indices, and so on.  See the
+ next section (@pxref{Info Files}) for more details on this format.
+ The Emacs Info subsystem (@pxref{Top,,Getting Started,info, Info}),
+ and the standalone @command{info} program (@pxref{Top
+ ,, Info Standalone, info-stnd, GNU Info}), among others, can read these
+ files.  @xref{Creating and Installing Info Files}.
+ 
+ @item Plain text
+ @cindex Plain text output
+ (Generated via @command{makeinfo --no-headers}.)  This is almost the
+ same as Info output, except the navigational control characters are
+ omitted.  Also, standard output is used by default.
+ 
+ @item HTML
+ @cindex HTML output
+ @cindex W3 consortium
+ @cindex Mozilla
+ @cindex Lynx
+ @cindex Emacs-W3
+ (Generated via @command{makeinfo --html}.)  This is the Hyper Text
+ Markup Language that has become the most commonly used language for
+ writing documents on the World Wide Web.  Web browsers, such as
+ Mozilla, Lynx, and Emacs-W3, can render this language online.  There
+ are many versions of HTML; @command{makeinfo} tries to use a subset
+ of the language that can be interpreted by any common browser.  For
+ details of the HTML language and much related information, see
+ @uref{http://www.w3.org/MarkUp/}.  @xref{Generating HTML}.
+ 
+ @item DVI
+ @cindex DVI output
+ @pindex dvips
+ @pindex xdvi
+ (Generated via @command{texi2dvi}.)  This DeVice Independent binary
+ format is output by the @TeX{} typesetting program
+ (@uref{http://tug.org}).  This is then read by a DVI `driver', which
+ writes the actual device-specific commands that can be viewed or
+ printed, notably Dvips for translation to PostScript (@pxref{Invoking
+ Dvips,,, dvips, Dvips}) and Xdvi for viewing on an X display
+ (@uref{http://sourceforge.net/projects/xdvi/}).  @xref{Hardcopy}.
+ 
+ Be aware that the Texinfo language is very different from and much
+ stricter than @TeX{}'s usual languages, plain @TeX{} and @LaTeX{}.
+ For more information on @TeX{} in general, please see the book
+ @cite{@TeX{} for the Impatient}, available from
+ @uref{http://savannah.gnu.org/projects/teximpatient}.
+ 
+ @item PDF
+ @cindex PDF output
+ @cindex Beebe, Nelson
+ @pindex pdftex
+ (Generated via @command{texi2dvi --pdf} or @command{texi2pdf}.)  This
+ format was developed by Adobe Systems for portable document
+ interchange, based on their previous PostScript language.  It can
+ represent the exact appearance of a document, including fonts and
+ graphics, and supporting arbitrary scaling.  It is intended to be
+ platform-independent and easily viewable, among other design goals;
+ @uref{http://tug.org/TUGboat/Articles/tb22-3/tb72beebe-pdf.pdf} has
+ some background.  Texinfo uses the @command{pdftex} program, a variant
+ of @TeX{}, to output PDF; see
+ @uref{http://tug.org/applications/pdftex}.  @xref{PDF Output}.
+ 
+ @item XML
+ @cindex XML output
+ @cindex DTD, for Texinfo XML
+ @pindex texinfo.dtd
+ (Generated via @command{makeinfo --xml}.)  XML is a generic syntax
+ specification usable for any sort of content (see, for example,
+ @uref{http://www.w3.org/XML/}).  The @command{makeinfo} XML output,
+ unlike all the formats above, interprets very little of the Texinfo
+ source.  Rather, it merely translates the Texinfo markup commands into
+ XML syntax, for processing by further XML tools.  The particular
+ syntax output is defined in the file @file{texinfo.dtd} included in
+ the Texinfo source distribution.
+ 
+ @item Docbook
+ @cindex Docbook output
+ (Generated via @command{makeinfo --docbook}.)  This is an XML-based
+ format developed some years ago, primarily for technical
+ documentation.  It therefore bears some resemblance, in broad
+ outlines, to Texinfo.  See @uref{http://www.docbook.org}.  If you want
+ to convert from Docbook @emph{to} Texinfo, please see
+ @uref{http://docbook2X.sourceforge.net}.
+ 
+ @end table
+ 
+ @cindex Man page output, not supported
+ From time to time, proposals are made to generate traditional Unix man
+ pages from Texinfo source.  However, because man pages have a very
+ strict conventional format, generating a good man page requires a
+ completely different source than the typical Texinfo applications of
+ writing a good user tutorial and/or a good reference manual.  This
+ makes generating man pages incompatible with the Texinfo design goal
+ of not having to document the same information in different ways for
+ different output formats.  You might as well just write the man page
+ directly.
+ 
+ @pindex help2man
+ @cindex O'Dea, Brendan
+ Man pages still have their place, and if you wish to support them, you
+ may find the program @command{help2man} to be useful; it generates a
+ traditional man page from the @samp{--help} output of a program.  In
+ fact, this is currently used to generate man pages for the programs in
+ the Texinfo distribution.  It is GNU software written by Brendan
+ O'Dea, available from @uref{ftp://ftp.gnu.org/gnu/help2man/}.
+ 
+ @cindex Output formats, supporting more
+ @cindex SGML-tools output format
+ If you are a programmer and would like to contribute to the GNU project
+ by implementing additional output formats for Texinfo, that would be
+ excellent.  But please do not write a separate translator texi2foo for
+ your favorite format foo!  That is the hard way to do the job, and makes
+ extra work in subsequent maintenance, since the Texinfo language is
+ continually being enhanced and updated.  Instead, the best approach is
+ modify @code{makeinfo} to generate the new format.
+ 
+ 
+ @node Info Files
+ @section Info Files
+ @cindex Info files
+ 
+ An Info file is a Texinfo file formatted so that the Info documentation
+ reading program can operate on it.  (@code{makeinfo}
+ and @code{texinfo-format-buffer} are two commands that convert a Texinfo file
+ into an Info file.)
+ 
+ Info files are divided into pieces called @dfn{nodes}, each of which
+ contains the discussion of one topic.  Each node has a name, and
+ contains both text for the user to read and pointers to other nodes,
+ which are identified by their names.  The Info program displays one node
+ at a time, and provides commands with which the user can move to other
+ related nodes.
+ 
+ @xref{Top,,, info, GNU Info}, for more information about using Info.
+ 
+ Each node of an Info file may have any number of child nodes that
+ describe subtopics of the node's topic.  The names of child
+ nodes are listed in a @dfn{menu} within the parent node; this
+ allows you to use certain Info commands to move to one of the child
+ nodes.  Generally, an Info file is organized like a book.  If a node
+ is at the logical level of a chapter, its child nodes are at the level
+ of sections; likewise, the child nodes of sections are at the level
+ of subsections.
+ 
+ All the children of any one parent are linked together in a
+ bidirectional chain of `Next' and `Previous' pointers.  The `Next'
+ pointer provides a link to the next section, and the `Previous' pointer
+ provides a link to the previous section.  This means that all the nodes
+ that are at the level of sections within a chapter are linked together.
+ Normally the order in this chain is the same as the order of the
+ children in the parent's menu.  Each child node records the parent node
+ name as its `Up' pointer.  The last child has no `Next' pointer, and the
+ first child has the parent both as its `Previous' and as its `Up'
+ pointer.@footnote{In some documents, the first child has no `Previous'
+ pointer.  Occasionally, the last child has the node name of the next
+ following higher level node as its `Next' pointer.}
+ 
+ The book-like structuring of an Info file into nodes that correspond
+ to chapters, sections, and the like is a matter of convention, not a
+ requirement.  The `Up', `Previous', and `Next' pointers of a node can
+ point to any other nodes, and a menu can contain any other nodes.
+ Thus, the node structure can be any directed graph.  But it is usually
+ more comprehensible to follow a structure that corresponds to the
+ structure of chapters and sections in a printed book or report.@refill
+ 
+ In addition to menus and to `Next', `Previous', and `Up' pointers, Info
+ provides pointers of another kind, called references, that can be
+ sprinkled throughout the text.  This is usually the best way to
+ represent links that do not fit a hierarchical structure.@refill
+ 
+ Usually, you will design a document so that its nodes match the
+ structure of chapters and sections in the printed output.  But
+ occasionally there are times when this is not right for the material
+ being discussed.  Therefore, Texinfo uses separate commands to specify
+ the node structure for the Info file and the section structure for the
+ printed output.@refill
+ 
+ Generally, you enter an Info file through a node that by convention is
+ named `Top'.  This node normally contains just a brief summary of the
+ file's purpose, and a large menu through which the rest of the file is
+ reached.  From this node, you can either traverse the file
+ systematically by going from node to node, or you can go to a specific
+ node listed in the main menu, or you can search the index menus and then
+ go directly to the node that has the information you want.  Alternatively,
+ with the standalone Info program, you can specify specific menu items on
+ the command line (@pxref{Top,,, info, Info}).
+ 
+ If you want to read through an Info file in sequence, as if it were a
+ printed manual, you can hit @key{SPC} repeatedly, or you get the whole
+ file with the advanced Info command @kbd{g *}.  (@inforef{Advanced,
+ Advanced Info commands, info}.)@refill
+ 
+ @c !!! dir file may be located in one of many places:
+ @c     /usr/local/emacs/info            mentioned in info.c DEFAULT_INFOPATH
+ @c     /usr/local/lib/emacs/info        mentioned in info.c DEFAULT_INFOPATH
+ @c     /usr/gnu/info                    mentioned in info.c DEFAULT_INFOPATH
+ @c     /usr/local/info
+ @c     /usr/local/lib/info
+ The @file{dir} file in the @file{info} directory serves as the
+ departure point for the whole Info system.  From it, you can reach the
+ `Top' nodes of each of the documents in a complete Info system.@refill
+ 
+ @cindex URI syntax for Info
+ If you wish to refer to an Info file in a URI, you can use the
+ (unofficial) syntax exemplified in the following.  This works with
+ Emacs/W3, for example:
+ @example
+ info:///usr/info/emacs#Dissociated%20Press
+ info:emacs#Dissociated%20Press
+ info://localhost/usr/info/emacs#Dissociated%20Press
+ @end example
+ 
+ The @command{info} program itself does not follow URIs of any kind.
+ 
+ 
+ @node Printed Books
+ @section Printed Books
+ @cindex Printed book and manual characteristics
+ @cindex Manual characteristics, printed
+ @cindex Book characteristics, printed
+ @cindex Texinfo printed book characteristics
+ @cindex Characteristics, printed books or manuals
+ 
+ @cindex Knuth, Donald
+ A Texinfo file can be formatted and typeset as a printed book or manual.
+ To do this, you need @TeX{}, a powerful, sophisticated typesetting
+ program written by Donald Knuth.@footnote{You can also use the
+ @pindex texi2roff@r{, unsupported software}
+ @uref{ftp://tug.org/texi2roff.tar.gz, @code{texi2roff}} program if you
+ do not have @TeX{}; since Texinfo is designed for use with @TeX{},
+ @code{texi2roff} is not described here.  @code{texi2roff} is not part of
+ the standard GNU distribution and is not maintained or up-to-date with
+ all the Texinfo features described in this manual.}
+ 
+ A Texinfo-based book is similar to any other typeset, printed work: it
+ can have a title page, copyright page, table of contents, and preface,
+ as well as chapters, numbered or unnumbered sections and subsections,
+ page headers, cross references, footnotes, and indices.@refill
+ 
+ You can use Texinfo to write a book without ever having the intention
+ of converting it into online information.  You can use Texinfo for
+ writing a printed novel, and even to write a printed memo, although
+ this latter application is not recommended since electronic mail is so
+ much easier.@refill
+ 
+ @TeX{} is a general purpose typesetting program.  Texinfo provides a
+ file @file{texinfo.tex} that contains information (definitions or
+ @dfn{macros}) that @TeX{} uses when it typesets a Texinfo file.
+ (@file{texinfo.tex} tells @TeX{} how to convert the Texinfo @@-commands
+ to @TeX{} commands, which @TeX{} can then process to create the typeset
+ document.)  @file{texinfo.tex} contains the specifications for printing
+ a document.  You can get the latest version of @file{texinfo.tex} from
+ the Texinfo home page, @uref{http://www.gnu.org/software/texinfo/}.
+ 
+ In the United States, documents are most often printed on 8.5 inch by 11
+ inch pages (216@dmn{mm} by 280@dmn{mm}); this is the default size.  But
+ you can also print for 7 inch by 9.25 inch pages (178@dmn{mm} by
+ 235@dmn{mm}, the @code{@@smallbook} size; or on A4 or A5 size paper
+ (@code{@@afourpaper}, @code{@@afivepaper}).  (@xref{smallbook, ,
+ Printing ``Small'' Books}.  Also, see @ref{A4 Paper, ,Printing on A4
+ Paper}.)
+ 
+ By changing the parameters in @file{texinfo.tex}, you can change the
+ size of the printed document.  In addition, you can change the style in
+ which the printed document is formatted; for example, you can change the
+ sizes and fonts used, the amount of indentation for each paragraph, the
+ degree to which words are hyphenated, and the like.  By changing the
+ specifications, you can make a book look dignified, old and serious, or
+ light-hearted, young and cheery.
+ 
+ @TeX{} is freely distributable.  It is written in a superset of Pascal
+ called WEB and can be compiled either in Pascal or (by using a
+ conversion program that comes with the @TeX{} distribution) in C.
+ (@xref{TeX Mode, ,@TeX{} Mode, emacs, The GNU Emacs Manual}, for information
+ about @TeX{}.)@refill
+ 
+ @TeX{} is very powerful and has a great many features.  Because a
+ Texinfo file must be able to present information both on a
+ character-only terminal in Info form and in a typeset book, the
+ formatting commands that Texinfo supports are necessarily limited.
+ 
+ To get a copy of @TeX{}, see
+ @ref{Obtaining TeX, , How to Obtain @TeX{}}.
+ 
+ 
+ @node Formatting Commands
+ @section @@-commands
+ @cindex @@-commands
+ @cindex Formatting commands
+ 
+ In a Texinfo file, the commands that tell @TeX{} how to typeset the
+ printed manual and tell @code{makeinfo} and
+ @code{texinfo-format-buffer} how to create an Info file are preceded
+ by @samp{@@}; they are called @dfn{@@-commands}.  For example,
+ @code{@@node} is the command to indicate a node and @code{@@chapter}
+ is the command to indicate the start of a chapter.@refill
+ 
+ @quotation Note
+ Almost all @@ command names are entirely lower case.
+ @end quotation
+ 
+ The Texinfo @@-commands are a strictly limited set of constructs.  The
+ strict limits make it possible for Texinfo files to be understood both
+ by @TeX{} and by the code that converts them into Info files.  You can
+ display Info files on any terminal that displays alphabetic and
+ numeric characters.  Similarly, you can print the output generated by
+ @TeX{} on a wide variety of printers.@refill
+ 
+ Depending on what they do or what arguments@footnote{The word
+ @dfn{argument} comes from the way it is used in mathematics and does not
+ refer to a dispute between two people; it refers to the information
+ presented to the command.  According to the @cite{Oxford English
+ Dictionary}, the word derives from the Latin for @dfn{to make clear,
+ prove}; thus it came to mean `the evidence offered as proof', which is
+ to say, `the information offered', which led to its mathematical
+ meaning.  In its other thread of derivation, the word came to mean `to
+ assert in a manner against which others may make counter assertions',
+ which led to the meaning of `argument' as a dispute.} they take, you
+ need to write @@-commands on lines of their own or as part of
+ sentences:
+ 
+ @itemize @bullet
+ @item
+ Write a command such as @code{@@quotation} at the beginning of a line as
+ the only text on the line.  (@code{@@quotation} begins an indented
+ environment.)
+ 
+ @item
+ Write a command such as @code{@@chapter} at the beginning of a line
+ followed by the command's arguments, in this case the chapter title, on
+ the rest of the line.  (@code{@@chapter} creates chapter titles.)@refill
+ 
+ @item
+ Write a command such as @code{@@dots@{@}} wherever you wish but usually
+ within a sentence. (@code{@@dots@{@}} creates an ellipsis @dots{})@refill
+ 
+ @item
+ Write a command such as @code{@@code@{@var{sample-code}@}} wherever you
+ wish (but usually within a sentence) with its argument,
+ @var{sample-code} in this example, between the braces.  (@code{@@code}
+ marks text as being code.)@refill
+ 
+ @item
+ Write a command such as @code{@@example} on a line of its own; write the
+ body-text on following lines; and write the matching @code{@@end}
+ command, @code{@@end example} in this case, on a line of its own
+ after the body-text. (@code{@@example} @dots{} @code{@@end example}
+ indents and typesets body-text as an example.)  It's usually ok to
+ indent environment commands like this, but in complicated and
+ hard-to-define circumstances the extra spaces cause extra space to
+ appear in the output, so beware.
+ @end itemize
+ 
+ @noindent
+ @cindex Braces, when to use
+ As a general rule, a command requires braces if it mingles among other
+ text; but it does not need braces if it starts a line of its own.  The
+ non-alphabetic commands, such as @code{@@:}, are exceptions to the rule;
+ they do not need braces.@refill
+ 
+ As you gain experience with Texinfo, you will rapidly learn how to
+ write the different commands: the different ways to write commands
+ actually make it easier to write and read Texinfo files than if all
+ commands followed exactly the same syntax.  @xref{Command Syntax, ,
+ @@-Command Syntax}, for all the details.
+ 
+ 
+ @node Conventions
+ @section General Syntactic Conventions
+ @cindex General syntactic conventions
+ @cindex Syntactic conventions
+ @cindex Conventions, syntactic
+ @cindex Characters, basic input
+ 
+ This section describes the general conventions used in all Texinfo documents.
+ 
+ @itemize @bullet
+ @item
+ @cindex Source files, characters used
+ All printable ASCII characters except @samp{@@}, @samp{@{} and
+ @samp{@}} can appear in a Texinfo file and stand for themselves.
+ @samp{@@} is the escape character which introduces commands, while
+ @samp{@{} and @samp{@}} are used to surround arguments to certain
+ commands.  To put one of these special characters into the document, put
+ an @samp{@@} character in front of it, like this: @samp{@@@@},
+ @samp{@@@{}, and @samp{@@@}}.
+ 
+ @item
+ @cindex Paragraph separator
+ @cindex Blank lines, as paragraph separator
+ @cindex Newlines, as blank lines
+ Separate paragraphs with one or more blank lines.  Currently Texinfo
+ only recognizes newline characters as end of line, not the CRLF
+ sequence used on some systems; so a @dfn{blank line} means exactly two
+ consecutive newlines.  Sometimes blank lines are useful or convenient
+ in other cases as well; you can use the @code{@@noindent} to inhibit
+ paragraph indentation if required (@pxref{noindent,,@code{@@noindent}}).
+ 
+ @item
+ Texinfo supports the usual quotation marks used in English, and
+ quotation marks used in other languages, please see @ref{Inserting
+ Quotation Marks}.
+ 
+ @item
+ @cindex Multiple dashes in source
+ @cindex Dashes in source
+ @cindex Hyphens in source, two or three in a row
+ @cindex Em dash, producing
+ @cindex En dash, producing
+ Use three hyphens in a row, @samp{---}, to produce a long dash---like
+ this (called an @dfn{em dash}), used for punctuation in sentences.
+ Use two hyphens, @samp{--}, to produce a medium dash (called an
+ @dfn{en dash}), used primarily for numeric ranges, as in ``June
+ 25--26''.  Use a single hyphen, @samp{-}, to produce a standard hyphen
+ used in compound words.  For display on the screen, Info reduces three
+ hyphens to two and two hyphens to one (not transitively!).  Of course,
+ any number of hyphens in the source remain as they are in literal
+ contexts, such as @code{@@code} and @code{@@example}.
+ 
+ @item
+ @cindex Tabs; don't use!
+ @strong{Caution:} Last, do not use tab characters in a Texinfo file
+ (except in verbatim modes)!  @TeX{} uses variable-width fonts, which
+ means that it is impractical at best to define a tab to work in all
+ circumstances.  Consequently, @TeX{} treats tabs like single spaces,
+ and that is not what they look like in the source.  Furthermore,
+ @code{makeinfo} does nothing special with tabs, and thus a tab
+ character in your input file will usually appear differently in the
+ output.
+ 
+ @noindent
+ To avoid this problem, Texinfo mode in GNU Emacs inserts
+ multiple spaces when you press the @key{TAB} key.  Also, you can run
+ @code{untabify} in Emacs to convert tabs in a region to multiple
+ spaces, or use the @code{unexpand} command from the shell.
+ 
+ @end itemize
+ 
+ 
+ @node Comments
+ @section Comments
+ 
+ @cindex Comments
+ @findex comment
+ @findex c @r{(comment)}
+ 
+ You can write comments in a Texinfo file that will not appear in
+ either the Info file or the printed manual by using the
+ @code{@@comment} command (which may be abbreviated to @code{@@c}).
+ Such comments are for the person who revises the Texinfo file.  All the
+ text on a line that follows either @code{@@comment} or @code{@@c} is a
+ comment; the rest of the line does not appear in either the Info file
+ or the printed manual.
+ 
+ Often, you can write the @code{@@comment} or @code{@@c} in the middle of
+ a line, and only the text that follows after the @code{@@comment} or
+ @code{@@c} command does not appear; but some commands, such as
+ @code{@@settitle} and @code{@@setfilename}, work on a whole line.  You
+ cannot use @code{@@comment} or @code{@@c} in a line beginning with such
+ a command.
+ 
+ @cindex Ignored text
+ @cindex Unprocessed text
+ @findex ignore
+ You can write long stretches of text that will not appear in either
+ the Info file or the printed manual by using the @code{@@ignore} and
+ @code{@@end ignore} commands.  Write each of these commands on a line
+ of its own, starting each command at the beginning of the line.  Text
+ between these two commands does not appear in the processed output.
+ You can use @code{@@ignore} and @code{@@end ignore} for writing
+ comments.
+ 
+ Text enclosed by @code{@@ignore} or by failing @code{@@ifset} or
+ @code{@@ifclear} conditions is ignored in the sense that it will not
+ contribute to the formatted output.  However, @TeX{} and makeinfo must
+ still parse the ignored text, in order to understand when to @emph{stop}
+ ignoring text from the source file; that means that you may still get
+ error messages if you have invalid Texinfo commands within ignored text.
+ 
+ 
+ @node Minimum
+ @section What a Texinfo File Must Have
+ @cindex Minimal Texinfo file (requirements)
+ @cindex Must have in Texinfo file
+ @cindex Required in Texinfo file
+ @cindex Texinfo file minimum
+ 
+ By convention, the name of a Texinfo file ends with (in order of
+ preference) one of the extensions @file{.texinfo}, @file{.texi},
+ @file{.txi}, or @file{.tex}.  The longer extensions are preferred since
+ they describe more clearly to a human reader the nature of the file.
+ The shorter extensions are for operating systems that cannot handle long
+ file names.
+ 
+ In order to be made into a printed manual and an Info file, a Texinfo
+ file @strong{must} begin with lines like this:
+ 
+ @example
+ @group
+ \input texinfo
+ @@setfilename @var{info-file-name}
+ @@settitle @var{name-of-manual}
+ @end group
+ @end example
+ 
+ @noindent
+ The contents of the file follow this beginning, and then you
+ @strong{must} end a Texinfo file with a line like this:
+ 
+ @example
+ @@bye
+ @end example
+ 
+ @findex \input @r{(raw @TeX{} startup)}
+ @noindent
+ Here's an explanation:
+ 
+ @itemize @bullet
+ @item
+ The @samp{\input texinfo} line tells @TeX{} to use the
+ @file{texinfo.tex} file, which tells @TeX{} how to translate the Texinfo
+ @@-commands into @TeX{} typesetting commands.  (Note the use of the
+ backslash, @samp{\}; this is correct for @TeX{}.)
+ 
+ @item
+ The @code{@@setfilename} line provides a name for the Info file and
+ tells @TeX{} to open auxiliary files.  @strong{All text before
+ @code{@@setfilename} is ignored!}
+ 
+ @item
+ The @code{@@settitle} line specifies a title for the page headers (or
+ footers) of the printed manual, and the default document description for
+ the @samp{<head>} in HTML format.  Strictly speaking, @code{@@settitle}
+ is optional---if you don't mind your document being titled `Untitled'.
+ 
+ @item
+ The @code{@@bye} line at the end of the file on a line of its own tells
+ the formatters that the file is ended and to stop formatting.
+ 
+ @end itemize
+ 
+ Typically, you will not use quite such a spare format, but will include
+ mode setting and start-of-header and end-of-header lines at the
+ beginning of a Texinfo file, like this:
+ 
+ @example
+ @group
+ \input texinfo   @@c -*-texinfo-*-
+ @@c %**start of header
+ @@setfilename @var{info-file-name}
+ @@settitle @var{name-of-manual}
+ @@c %**end of header
+ @end group
+ @end example
+ 
+ @noindent
+ In the first line, @samp{-*-texinfo-*-} causes Emacs to switch into
+ Texinfo mode when you edit the file.
+ 
+ The @code{@@c} lines which surround the @code{@@setfilename} and
+ @code{@@settitle} lines are optional, but you need them in order to
+ run @TeX{} or Info on just part of the file.  (@xref{Start of Header}.)
+ 
+ Furthermore, you will usually provide a Texinfo file with a title page,
+ indices, and the like, all of which are explained in this manual.  But
+ the minimum, which can be useful for short documents, is just the three
+ lines at the beginning and the one line at the end.
+ 
+ 
+ @node Six Parts
+ @section Six Parts of a Texinfo File
+ 
+ Generally, a Texinfo file contains more than the minimal beginning and
+ end described in the previous section---it usually contains the six
+ parts listed below.  These are described fully in the following sections.
+ 
+ @table @r
+ @item 1. Header
+ The @dfn{Header} names the file, tells @TeX{} which definitions file to
+ use, and other such housekeeping tasks.
+ 
+ @item 2. Summary and Copyright
+ The @dfn{Summary and Copyright} segment describes the document and
+ contains the copyright notice and copying permissions.  This is done
+ with the @code{@@copying} command.
+ 
+ @item 3. Title and Copyright
+ The @dfn{Title and Copyright} segment contains the title and copyright
+ pages for the printed manual.  The segment must be enclosed between
+ @code{@@titlepage} and @code{@@end titlepage} commands.  The title and
+ copyright page appear only in the printed manual.
+ 
+ @item 4. `Top' Node and Master Menu
+ The `Top' node starts off the online output; it does not appear in the
+ printed manual.  We recommend including the copying permissions here as
+ well as the segments above.  And it contains at least a top-level menu
+ listing the chapters, and possibly a @dfn{Master Menu} listing all the
+ nodes in the entire document.
+ 
+ @item 5. Body
+ The @dfn{Body} of the document is typically structured like a
+ traditional book or encyclopedia, but it may be free form.
+ 
+ @item 6. End
+ The @dfn{End} segment may contain commands for printing indices, and
+ closes with the @code{@@bye} command on a line of its own.
+ @end table
+ 
+ 
+ @node Short Sample
+ @section A Short Sample Texinfo File
+ @cindex Sample Texinfo file, with comments
+ 
+ Here is a very short but complete Texinfo file, in the six conventional
+ parts enumerated in the previous section, so you can see how Texinfo
+ source appears in practice.  The first three parts of the file, from
+ @samp{\input texinfo} through to @samp{@@end titlepage}, look more
+ intimidating than they are: most of the material is standard
+ boilerplate; when writing a manual, you simply change the names as
+ appropriate.
+ 
+ @xref{Beginning a File}, for full documentation on the commands listed
+ here.  @xref{GNU Sample Texts}, for the full texts to be used in GNU
+ manuals.
+ 
+ In the following, the sample text is @emph{indented}; comments on it are
+ not.  The complete file, without interspersed comments, is shown in
+ @ref{Short Sample Texinfo File}.
+ 
+ @subheading Part 1: Header
+ 
+ @noindent
+ The header does not appear in either the Info file or the
+ printed output.  It sets various parameters, including the
+ name of the Info file and the title used in the header.
+ 
+ @example
+ @group
+ \input texinfo   @@c -*-texinfo-*-
+ @@c %**start of header
+ @@setfilename sample.info
+ @@settitle Sample Manual 1.0
+ @@c %**end of header
+ @end group
+ @end example
+ 
+ @subheading Part 2: Summary Description and Copyright
+ 
+ @noindent
+ A real manual includes more text here, according to the license under
+ which it is distributed.  @xref{GNU Sample Texts}.
+ 
+ @example
+ @group
+ @@copying
+ This is a short example of a complete Texinfo file, version 1.0.
+ 
+ Copyright @@copyright@{@} 2005 Free Software Foundation, Inc.
+ @@end copying
+ @end group
+ @end example
+ 
+ @subheading Part 3: Titlepage, Contents, Copyright
+ 
+ @noindent
+ The titlepage segment does not appear in the online output, only in the
+ printed manual.  We use the @code{@@insertcopying} command to
+ include the permission text from the previous section, instead of
+ writing it out again; it is output on the back of the title page.  The
+ @code{@@contents} command generates a table of contents.
+ 
+ @example
+ @group
+ @@titlepage
+ @@title Sample Title
+ @end group
+ 
+ @group
+ @@c The following two commands start the copyright page.
+ @@page
+ @@vskip 0pt plus 1filll
+ @@insertcopying
+ @@end titlepage
+ @end group
+ 
+ @@c Output the table of contents at the beginning.
+ @@contents
+ @end example
+ 
+ @subheading Part 4: `Top' Node and Master Menu
+ 
+ @noindent
+ The `Top' node contains the master menu for the Info file.  Since the
+ printed manual uses a table of contents rather than a menu, it
+ excludes the `Top' node.  We repeat the short description from the
+ beginning of the @samp{@@copying} text, but there's no need to repeat
+ the copyright information, so we don't use @samp{@@insertcopying} here.
+ The @samp{@@top} command itself helps @command{makeinfo} determine the
+ relationships between nodes.
+ 
+ @example
+ @@ifnottex
+ @@node Top
+ @@top Short Sample
+ 
+ This is a short sample Texinfo file.
+ @@end ifnottex
+ 
+ @group
+ @@menu
+ * First Chapter::    The first chapter is the
+                        only chapter in this sample.
+ * Index::            Complete index.
+ @@end menu
+ @end group
+ @end example
+ 
+ 
+ @subheading Part 5: The Body of the Document
+ 
+ @noindent
+ The body segment contains all the text of the document, but not the
+ indices or table of contents.  This example illustrates a node and a
+ chapter containing an enumerated list.
+ 
+ @example
+ @group
+ @@node First Chapter
+ @@chapter First Chapter
+ 
+ @@cindex chapter, first
+ @end group
+ 
+ @group
+ This is the first chapter.
+ @@cindex index entry, another
+ @end group
+ 
+ @group
+ Here is a numbered list.
+ 
+ @@enumerate
+ @@item
+ This is the first item.
+ 
+ @@item
+ This is the second item.
+ @@end enumerate
+ @end group
+ @end example
+ 
+ 
+ @subheading Part 6: The End of the Document
+ 
+ @noindent
+ The end segment contains commands for generating an index in a node and
+ unnumbered chapter of its own, and the @code{@@bye} command that marks
+ the end of the document.
+ 
+ @example
+ @group
+ @@node Index
+ @@unnumbered Index
+ @end group
+ 
+ @group
+ @@printindex cp
+ 
+ @@bye
+ @end group
+ @end example
+ 
+ 
+ @subheading Some Results
+ 
+ Here is what the contents of the first chapter of the sample look like:
+ 
+ @sp 1
+ @need 700
+ @quotation
+ This is the first chapter.
+ 
+ Here is a numbered list.
+ 
+ @enumerate
+ @item
+ This is the first item.
+ 
+ @item
+ This is the second item.
+ @end enumerate
+ @end quotation
+ 
+ 
+ @node History
+ @section History
+ 
+ @cindex Stallman, Richard M.
+ @cindex Chassell, Robert J.
+ @cindex Fox, Brian
+ @cindex Berry, Karl
+ Richard M. Stallman invented the Texinfo format, wrote the initial
+ processors, and created Edition 1.0 of this manual.  Robert@tie{}J.
+ Chassell greatly revised and extended the manual, starting with
+ Edition 1.1.  Brian Fox was responsible for the standalone Texinfo
+ distribution until version 3.8, and wrote the standalone
+ @command{makeinfo} and @command{info} programs.  Karl Berry has
+ continued maintenance since Texinfo 3.8 (manual edition 2.22).
+ 
+ @cindex Pinard, Fran@,{c}ois
+ @cindex Zuhn, David D.
+ @cindex Weisshaus, Melissa
+ @cindex Zaretskii, Eli
+ @cindex Schwab, Andreas
+ @cindex Weinberg, Zack
+ Our thanks go out to all who helped improve this work, particularly the
+ indefatigable Eli Zaretskii and Andreas Schwab, who have provided
+ patches beyond counting.  Fran@,{c}ois Pinard and David@tie{}D. Zuhn,
+ tirelessly recorded and reported mistakes and obscurities.  Zack
+ Weinberg did the impossible by implementing the macro syntax in
+ @file{texinfo.tex}.  Special thanks go to Melissa Weisshaus for her
+ frequent reviews of nearly similar editions.  Dozens of others have
+ contributed patches and suggestions, they are gratefully acknowledged in
+ the @file{ChangeLog} file.  Our mistakes are our own.
+ 
+ @cindex Scribe
+ @cindex Reid, Brian
+ @cindex History of Texinfo
+ @cindex Texinfo history
+ A bit of history: in the 1970's at CMU, Brian Reid developed a program
+ and format named Scribe to mark up documents for printing.  It used the
+ @code{@@} character to introduce commands, as Texinfo does.  Much more
+ consequentially, it strove to describe document contents rather than
+ formatting, an idea wholeheartedly adopted by Texinfo.
+ 
+ @cindex Bolio
+ @cindex Bo@TeX{}
+ Meanwhile, people at MIT developed another, not too dissimilar format
+ called Bolio.  This then was converted to using @TeX{} as its typesetting
+ language: Bo@TeX{}.  The earliest Bo@TeX{} version seems to have been
+ 0.02 on October 31, 1984.
+ 
+ Bo@TeX{} could only be used as a markup language for documents to be
+ printed, not for online documents.  Richard Stallman (RMS) worked on
+ both Bolio and Bo@TeX{}.  He also developed a nifty on-line help format
+ called Info, and then combined Bo@TeX{} and Info to create Texinfo, a
+ mark up language for text that is intended to be read both online and
+ as printed hard copy.
+ 
+ 
+ @node Texinfo Mode
+ @chapter Using Texinfo Mode
+ @cindex Texinfo mode
+ @cindex Mode, using Texinfo
+ @cindex GNU Emacs
+ @cindex Emacs
+ 
+ You may edit a Texinfo file with any text editor you choose.  A Texinfo
+ file is no different from any other ASCII file.  However, GNU Emacs
+ comes with a special mode, called Texinfo mode, that provides Emacs
+ commands and tools to help ease your work.
+ 
+ This chapter describes features of GNU Emacs' Texinfo mode but not any
+ features of the Texinfo formatting language.  So if you are reading this
+ manual straight through from the beginning, you may want to skim through
+ this chapter briefly and come back to it after reading succeeding
+ chapters which describe the Texinfo formatting language in detail.
+ 
+ @menu
+ * Texinfo Mode Overview::       How Texinfo mode can help you.
+ * Emacs Editing::               Texinfo mode adds to GNU Emacs' general
+                                   purpose editing features.
+ * Inserting::                   How to insert frequently used @@-commands.
+ * Showing the Structure::       How to show the structure of a file.
+ * Updating Nodes and Menus::    How to update or create new nodes and menus.
+ * Info Formatting::             How to format for Info.
+ * Printing::                    How to format and print part or all of a file.
+ * Texinfo Mode Summary::        Summary of all the Texinfo mode commands.
+ @end menu
+ 
+ @node Texinfo Mode Overview
+ @section Texinfo Mode Overview
+ 
+ Texinfo mode provides special features for working with Texinfo files.
+ You can:
+ 
+ @itemize @bullet
+ @item
+ Insert frequently used @@-commands. @refill
+ 
+ @item
+ Automatically create @code{@@node} lines.
+ 
+ @item
+ Show the structure of a Texinfo source file.@refill
+ 
+ @item
+ Automatically create or update the `Next',
+ `Previous', and `Up' pointers of a node.
+ 
+ @item
+ Automatically create or update menus.@refill
+ 
+ @item
+ Automatically create a master menu.@refill
+ 
+ @item
+ Format a part or all of a file for Info.@refill
+ 
+ @item
+ Typeset and print part or all of a file.@refill
+ @end itemize
+ 
+ Perhaps the two most helpful features are those for inserting frequently
+ used @@-commands and for creating node pointers and menus.@refill
+ 
+ @node Emacs Editing
+ @section The Usual GNU Emacs Editing Commands
+ 
+ In most cases, the usual Text mode commands work the same in Texinfo
+ mode as they do in Text mode.  Texinfo mode adds new editing commands
+ and tools to GNU Emacs' general purpose editing features.  The major
+ difference concerns filling.  In Texinfo mode, the paragraph
+ separation variable and syntax table are redefined so that Texinfo
+ commands that should be on lines of their own are not inadvertently
+ included in paragraphs.  Thus, the @kbd{M-q} (@code{fill-paragraph})
+ command will refill a paragraph but not mix an indexing command on a
+ line adjacent to it into the paragraph.@refill
+ 
+ In addition, Texinfo mode sets the @code{page-delimiter} variable to
+ the value of @code{texinfo-chapter-level-regexp}; by default, this is
+ a regular expression matching the commands for chapters and their
+ equivalents, such as appendices.  With this value for the page
+ delimiter, you can jump from chapter title to chapter title with the
+ @kbd{C-x ]} (@code{forward-page}) and @kbd{C-x [}
+ (@code{backward-page}) commands and narrow to a chapter with the
+ @kbd{C-x n p} (@code{narrow-to-page}) command.  (@xref{Pages, , ,emacs,
+ The GNU Emacs Manual}, for details about the page commands.)@refill
+ 
+ You may name a Texinfo file however you wish, but the convention is to
+ end a Texinfo file name with one of the extensions
+ @file{.texinfo}, @file{.texi}, @file{.txi}, or @file{.tex}.  A longer
+ extension is preferred, since it is explicit, but a shorter extension
+ may be necessary for operating systems that limit the length of file
+ names.  GNU Emacs automatically enters Texinfo mode when you visit a
+ file with a @file{.texinfo}, @file{.texi} or @file{.txi}
+ extension.  Also, Emacs switches to Texinfo mode
+ when you visit a
+ file that has @samp{-*-texinfo-*-} in its first line.  If ever you are
+ in another mode and wish to switch to Texinfo mode, type @code{M-x
+ texinfo-mode}.@refill
+ 
+ Like all other Emacs features, you can customize or enhance Texinfo
+ mode as you wish.  In particular, the keybindings are very easy to
+ change.  The keybindings described here are the default or standard
+ ones.@refill
+ 
+ @node Inserting
+ @comment  node-name,  next,  previous,  up
+ @section Inserting Frequently Used Commands
+ @cindex Inserting frequently used commands
+ @cindex Frequently used commands, inserting
+ @cindex Commands, inserting them
+ 
+ Texinfo mode provides commands to insert various frequently used
+ @@-commands into the buffer.  You can use these commands to save
+ keystrokes.@refill
+ 
+ The insert commands are invoked by typing @kbd{C-c} twice and then the
+ first letter of the @@-command:@refill
+ 
+ @table @kbd
+ @item  C-c C-c c
+ @itemx M-x texinfo-insert-@@code
+ @findex texinfo-insert-@@code
+ Insert @code{@@code@{@}} and put the
+ cursor between the braces.@refill
+ 
+ @item  C-c C-c d
+ @itemx M-x texinfo-insert-@@dfn
+ @findex texinfo-insert-@@dfn
+ Insert @code{@@dfn@{@}} and put the
+ cursor between the braces.@refill
+ 
+ @item  C-c C-c e
+ @itemx M-x texinfo-insert-@@end
+ @findex texinfo-insert-@@end
+ Insert @code{@@end} and attempt to insert the correct following word,
+ such as @samp{example} or @samp{table}.  (This command does not handle
+ nested lists correctly, but inserts the word appropriate to the
+ immediately preceding list.)@refill
+ 
+ @item  C-c C-c i
+ @itemx M-x texinfo-insert-@@item
+ @findex texinfo-insert-@@item
+ Insert @code{@@item} and put the
+ cursor at the beginning of the next line.@refill
+ 
+ @item  C-c C-c k
+ @itemx M-x texinfo-insert-@@kbd
+ @findex texinfo-insert-@@kbd
+ Insert @code{@@kbd@{@}} and put the
+ cursor between the braces.@refill
+ 
+ @item  C-c C-c n
+ @itemx M-x texinfo-insert-@@node
+ @findex texinfo-insert-@@node
+ Insert @code{@@node} and a comment line
+ listing the sequence for the `Next',
+ `Previous', and `Up' nodes.
+ Leave point after the @code{@@node}.@refill
+ 
+ @item  C-c C-c o
+ @itemx M-x texinfo-insert-@@noindent
+ @findex texinfo-insert-@@noindent
+ Insert @code{@@noindent} and put the
+ cursor at the beginning of the next line.@refill
+ 
+ @item  C-c C-c s
+ @itemx M-x texinfo-insert-@@samp
+ @findex texinfo-insert-@@samp
+ Insert @code{@@samp@{@}} and put the
+ cursor between the braces.@refill
+ 
+ @item  C-c C-c t
+ @itemx M-x texinfo-insert-@@table
+ @findex texinfo-insert-@@table
+ Insert @code{@@table} followed by a @key{SPC}
+ and leave the cursor after the @key{SPC}.@refill
+ 
+ @item  C-c C-c v
+ @itemx M-x texinfo-insert-@@var
+ @findex texinfo-insert-@@var
+ Insert @code{@@var@{@}} and put the
+ cursor between the braces.@refill
+ 
+ @item  C-c C-c x
+ @itemx M-x texinfo-insert-@@example
+ @findex texinfo-insert-@@example
+ Insert @code{@@example} and put the
+ cursor at the beginning of the next line.@refill
+ 
+ @c M-@{  was the binding for texinfo-insert-braces;
+ @c in Emacs 19, backward-paragraph will take this binding.
+ @item C-c C-c @{
+ @itemx M-x texinfo-insert-braces
+ @findex texinfo-insert-braces
+ Insert @code{@{@}} and put the cursor between the braces.@refill
+ 
+ @item C-c @}
+ @itemx C-c  ]
+ @itemx M-x up-list
+ @findex up-list
+ Move from between a pair of braces forward past the closing brace.
+ Typing @kbd{C-c ]} is easier than typing @kbd{C-c @}}, which
+ is, however, more mnemonic; hence the two keybindings.  (Also, you can
+ move out from between braces by typing @kbd{C-f}.)@refill
+ @end table
+ 
+ To put a command such as @w{@code{@@code@{@dots{}@}}} around an
+ @emph{existing} word, position the cursor in front of the word and type
+ @kbd{C-u 1 C-c C-c c}.  This makes it easy to edit existing plain text.
+ The value of the prefix argument tells Emacs how many words following
+ point to include between braces---@samp{1} for one word, @samp{2} for
+ two words, and so on.  Use a negative argument to enclose the previous
+ word or words.  If you do not specify a prefix argument, Emacs inserts
+ the @@-command string and positions the cursor between the braces.  This
+ feature works only for those @@-commands that operate on a word or words
+ within one line, such as @code{@@kbd} and @code{@@var}.@refill
+ 
+ This set of insert commands was created after analyzing the frequency
+ with which different @@-commands are used in the @cite{GNU Emacs
+ Manual} and the @cite{GDB Manual}.  If you wish to add your own insert
+ commands, you can bind a keyboard macro to a key, use abbreviations,
+ or extend the code in @file{texinfo.el}.@refill
+ 
+ @findex texinfo-start-menu-description
+ @cindex Menu description, start
+ @cindex Description for menu, start
+ @kbd{C-c C-c C-d} (@code{texinfo-start-menu-description}) is an insert
+ command that works differently from the other insert commands.  It
+ inserts a node's section or chapter title in the space for the
+ description in a menu entry line.  (A menu entry has three parts, the
+ entry name, the node name, and the description.  Only the node name is
+ required, but a description helps explain what the node is about.
+ @xref{Menu Parts, , The Parts of a Menu}.)@refill
+ 
+ To use @code{texinfo-start-menu-description}, position point in a menu
+ entry line and type @kbd{C-c C-c C-d}.  The command looks for and copies
+ the title that goes with the node name, and inserts the title as a
+ description; it positions point at beginning of the inserted text so you
+ can edit it.  The function does not insert the title if the menu entry
+ line already contains a description.@refill
+ 
+ This command is only an aid to writing descriptions; it does not do the
+ whole job.  You must edit the inserted text since a title tends to use
+ the same words as a node name but a useful description uses different
+ words.@refill
+ 
+ @node Showing the Structure
+ @comment  node-name,  next,  previous,  up
+ @section Showing the Section Structure of a File
+ @cindex Showing the section structure of a file
+ @cindex Section structure of a file, showing it
+ @cindex Structure of a file, showing it
+ @cindex Outline of file structure, showing it
+ @cindex Contents-like outline of file structure
+ @cindex File section structure, showing it
+ @cindex Texinfo file section structure, showing it
+ 
+ You can show the section structure of a Texinfo file by using the
+ @kbd{C-c C-s} command (@code{texinfo-show-structure}).  This command
+ shows the section structure of a Texinfo file by listing the lines
+ that begin with the @@-commands for @code{@@chapter},
+ @code{@@section}, and the like.  It constructs what amounts
+ to a table of contents.  These lines are displayed in another buffer
+ called the @samp{*Occur*} buffer.  In that buffer, you can position
+ the cursor over one of the lines and use the @kbd{C-c C-c} command
+ (@code{occur-mode-goto-occurrence}), to jump to the corresponding spot
+ in the Texinfo file.@refill
+ 
+ @table @kbd
+ @item  C-c C-s
+ @itemx M-x texinfo-show-structure
+ @findex texinfo-show-structure
+ Show the @code{@@chapter}, @code{@@section}, and such lines of a
+ Texinfo file.@refill
+ 
+ @item  C-c C-c
+ @itemx M-x occur-mode-goto-occurrence
+ @findex occur-mode-goto-occurrence
+ Go to the line in the Texinfo file corresponding to the line under the
+ cursor in the @file{*Occur*} buffer.@refill
+ @end table
+ 
+ If you call @code{texinfo-show-structure} with a prefix argument by
+ typing @w{@kbd{C-u C-c C-s}}, it will list not only those lines with the
+ @@-commands for @code{@@chapter}, @code{@@section}, and the like, but
+ also the @code{@@node} lines.  You can use @code{texinfo-show-structure}
+ with a prefix argument to check whether the `Next', `Previous', and `Up'
+ pointers of an @code{@@node} line are correct.
+ 
+ Often, when you are working on a manual, you will be interested only
+ in the structure of the current chapter.  In this case, you can mark
+ off the region of the buffer that you are interested in by using the
+ @kbd{C-x n n} (@code{narrow-to-region}) command and
+ @code{texinfo-show-structure} will work on only that region.  To see
+ the whole buffer again, use @w{@kbd{C-x n w}} (@code{widen}).
+ (@xref{Narrowing, , , emacs, The GNU Emacs Manual}, for more
+ information about the narrowing commands.)@refill
+ 
+ @vindex page-delimiter
+ @cindex Page delimiter in Texinfo mode
+ In addition to providing the @code{texinfo-show-structure} command,
+ Texinfo mode sets the value of the page delimiter variable to match
+ the chapter-level @@-commands.  This enables you to use the @kbd{C-x
+ ]} (@code{forward-page}) and @kbd{C-x [} (@code{backward-page})
+ commands to move forward and backward by chapter, and to use the
+ @kbd{C-x n p} (@code{narrow-to-page}) command to narrow to a chapter.
+ @xref{Pages, , , emacs, The GNU Emacs Manual}, for more information
+ about the page commands.@refill
+ 
+ @node Updating Nodes and Menus
+ @comment  node-name,  next,  previous,  up
+ @section Updating Nodes and Menus
+ @cindex Updating nodes and menus
+ @cindex Create nodes, menus automatically
+ @cindex Insert nodes, menus automatically
+ @cindex Automatically insert nodes, menus
+ 
+ Texinfo mode provides commands for automatically creating or updating
+ menus and node pointers.  The commands are called ``update'' commands
+ because their most frequent use is for updating a Texinfo file after you
+ have worked on it; but you can use them to insert the `Next',
+ `Previous', and `Up' pointers into an @code{@@node} line that has none
+ and to create menus in a file that has none.
+ 
+ If you do not use the updating commands, you need to write menus and
+ node pointers by hand, which is a tedious task.@refill
+ 
+ @menu
+ * Updating Commands::           Five major updating commands.
+ * Updating Requirements::       How to structure a Texinfo file for
+                                   using the updating command.
+ * Other Updating Commands::     How to indent descriptions, insert
+                                   missing nodes lines, and update
+                                   nodes in sequence.
+ @end menu
+ 
+ @node Updating Commands
+ @subsection The Updating Commands
+ 
+ You can use the updating commands to:@refill
+ 
+ @itemize @bullet
+ @item
+ insert or update the `Next', `Previous', and `Up' pointers of a
+ node,@refill
+ 
+ @item
+ insert or update the menu for a section, and@refill
+ 
+ @item
+ create a master menu for a Texinfo source file.@refill
+ @end itemize
+ 
+ You can also use the commands to update all the nodes and menus in a
+ region or in a whole Texinfo file.@refill
+ 
+ The updating commands work only with conventional Texinfo files, which
+ are structured hierarchically like books.  In such files, a structuring
+ command line must follow closely after each @code{@@node} line, except
+ for the `Top' @code{@@node} line.  (A @dfn{structuring command line} is
+ a line beginning with @code{@@chapter}, @code{@@section}, or other
+ similar command.)
+ 
+ You can write the structuring command line on the line that follows
+ immediately after an @code{@@node} line or else on the line that
+ follows after a single @code{@@comment} line or a single
+ @code{@@ifinfo} line.  You cannot interpose more than one line between
+ the @code{@@node} line and the structuring command line; and you may
+ interpose only an @code{@@comment} line or an @code{@@ifinfo} line.
+ 
+ Commands which work on a whole buffer require that the `Top' node be
+ followed by a node with an @code{@@chapter} or equivalent-level command.
+ The menu updating commands will not create a main or master menu for a
+ Texinfo file that has only @code{@@chapter}-level nodes!  The menu
+ updating commands only create menus @emph{within} nodes for lower level
+ nodes.  To create a menu of chapters, you must provide a `Top'
+ node.
+ 
+ The menu updating commands remove menu entries that refer to other Info
+ files since they do not refer to nodes within the current buffer.  This
+ is a deficiency.  Rather than use menu entries, you can use cross
+ references to refer to other Info files.  None of the updating commands
+ affect cross references.@refill
+ 
+ Texinfo mode has five updating commands that are used most often: two
+ are for updating the node pointers or menu of a single node (or a
+ region); two are for updating every node pointer and menu in a file;
+ and one, the @code{texinfo-master-menu} command, is for creating a
+ master menu for a complete file, and optionally, for updating every
+ node and menu in the whole Texinfo file.@refill
+ 
+ The @code{texinfo-master-menu} command is the primary command:@refill
+ 
+ @table @kbd
+ @item C-c C-u m
+ @itemx M-x texinfo-master-menu
+ @findex texinfo-master-menu
+ Create or update a master menu that includes all the other menus
+ (incorporating the descriptions from pre-existing menus, if
+ any).@refill
+ 
+ With an argument (prefix argument, @kbd{C-u,} if interactive), first create or
+ update all the nodes and all the regular menus in the buffer before
+ constructing the master menu.  (@xref{The Top Node, , The Top Node and
+ Master Menu}, for more about a master menu.)@refill
+ 
+ For @code{texinfo-master-menu} to work, the Texinfo file must have a
+ `Top' node and at least one subsequent node.@refill
+ 
+ After extensively editing a Texinfo file, you can type the following:
+ 
+ @example
+ C-u M-x texinfo-master-menu
+ @exdent or
+ C-u C-c C-u m
+ @end example
+ 
+ @noindent
+ This updates all the nodes and menus completely and all at once.@refill
+ @end table
+ 
+ The other major updating commands do smaller jobs and are designed for
+ the person who updates nodes and menus as he or she writes a Texinfo
+ file.@refill
+ 
+ @need 1000
+ The commands are:@refill
+ 
+ @table @kbd
+ @item C-c C-u C-n
+ @itemx M-x texinfo-update-node
+ @findex texinfo-update-node
+ Insert the `Next', `Previous', and `Up' pointers for the node that point is
+ within (i.e., for the @code{@@node} line preceding point).  If the
+ @code{@@node} line has pre-existing `Next', `Previous', or `Up'
+ pointers in it, the old pointers are removed and new ones inserted.
+ With an argument (prefix argument, @kbd{C-u}, if interactive), this command
+ updates all @code{@@node} lines in the region (which is the text
+ between point and mark).@refill
+ 
+ @item C-c C-u C-m
+ @itemx M-x texinfo-make-menu
+ @findex texinfo-make-menu
+ Create or update the menu in the node that point is within.
+ With an argument (@kbd{C-u} as prefix argument, if
+ interactive), the command makes or updates menus for the
+ nodes which are either within or a part of the
+ region.@refill
+ 
+ Whenever @code{texinfo-make-menu} updates an existing menu, the
+ descriptions from that menu are incorporated into the new menu.  This
+ is done by copying descriptions from the existing menu to the entries
+ in the new menu that have the same node names.  If the node names are
+ different, the descriptions are not copied to the new menu.@refill
+ 
+ @item C-c C-u C-e
+ @itemx M-x texinfo-every-node-update
+ @findex texinfo-every-node-update
+ Insert or update the `Next', `Previous', and `Up' pointers for every
+ node in the buffer.@refill
+ 
+ @item C-c C-u C-a
+ @itemx M-x texinfo-all-menus-update
+ @findex texinfo-all-menus-update
+ Create or update all the menus in the buffer.  With an argument
+ (@kbd{C-u} as prefix argument, if interactive), first insert
+ or update all the node
+ pointers before working on the menus.@refill
+ 
+ If a master menu exists, the @code{texinfo-all-menus-update} command
+ updates it; but the command does not create a new master menu if none
+ already exists.  (Use the @code{texinfo-master-menu} command for
+ that.)@refill
+ 
+ When working on a document that does not merit a master menu, you can
+ type the following:
+ 
+ @example
+ C-u C-c C-u C-a
+ @exdent or
+ C-u M-x texinfo-all-menus-update
+ @end example
+ 
+ @noindent
+ This updates all the nodes and menus.@refill
+ @end table
+ 
+ The @code{texinfo-column-for-description} variable specifies the
+ column to which menu descriptions are indented.  By default, the value
+ is 32 although it can be useful to reduce it to as low as 24.  You
+ can set the variable via customization (@pxref{Changing an Option,,,
+ emacs, The GNU Emacs Manual}) or with the @kbd{M-x set-variable}
+ command (@pxref{Examining, , Examining and Setting Variables, emacs,
+ The GNU Emacs Manual}).
+ 
+ Also, the @code{texinfo-indent-menu-description} command may be used to
+ indent existing menu descriptions to a specified column.  Finally, if
+ you wish, you can use the @code{texinfo-insert-node-lines} command to
+ insert missing @code{@@node} lines into a file.  (@xref{Other Updating
+ Commands}, for more information.)@refill
+ 
+ @node Updating Requirements
+ @subsection Updating Requirements
+ @cindex Updating requirements
+ @cindex Requirements for updating commands
+ 
+ To use the updating commands, you must organize the Texinfo file
+ hierarchically with chapters, sections, subsections, and the like.
+ When you construct the hierarchy of the manual, do not `jump down'
+ more than one level at a time: you can follow the `Top' node with a
+ chapter, but not with a section; you can follow a chapter with a
+ section, but not with a subsection.  However, you may `jump up' any
+ number of levels at one time---for example, from a subsection to a
+ chapter.@refill
+ 
+ Each @code{@@node} line, with the exception of the line for the `Top'
+ node, must be followed by a line with a structuring command such as
+ @code{@@chapter}, @code{@@section}, or
+ @code{@@unnumberedsubsec}.@refill
+ 
+ Each @code{@@node} line/structuring-command line combination
+ must look either like this:
+ 
+ @example
+ @group
+ @@node     Comments,  Minimum, Conventions, Overview
+ @@comment  node-name, next,    previous,    up
+ @@section Comments
+ @end group
+ @end example
+ 
+ or like this (without the @code{@@comment} line):
+ 
+ @example
+ @group
+ @@node Comments, Minimum, Conventions, Overview
+ @@section Comments
+ @end group
+ @end example
+ 
+ or like this (without the explicit node pointers):
+ 
+ @example
+ @group
+ @@node Comments
+ @@section Comments
+ @end group
+ @end example
+ 
+ @noindent
+ In this example, `Comments' is the name of both the node and the
+ section.  The next node is called `Minimum' and the previous node is
+ called `Conventions'.  The `Comments' section is within the `Overview'
+ node, which is specified by the `Up' pointer.  (Instead of an
+ @code{@@comment} line, you may also write an @code{@@ifinfo} line.)
+ 
+ If a file has a `Top' node, it must be called @samp{top} or @samp{Top}
+ and be the first node in the file.
+ 
+ The menu updating commands create a menu of sections within a chapter,
+ a menu of subsections within a section, and so on.  This means that
+ you must have a `Top' node if you want a menu of chapters.@refill
+ 
+ Incidentally, the @code{makeinfo} command will create an Info file for a
+ hierarchically organized Texinfo file that lacks `Next', `Previous' and
+ `Up' pointers.  Thus, if you can be sure that your Texinfo file will be
+ formatted with @code{makeinfo}, you have no need for the update node
+ commands.  (@xref{Creating an Info File}, for more information about
+ @code{makeinfo}.)  However, both @code{makeinfo} and the
+ @code{texinfo-format-@dots{}} commands require that you insert menus in
+ the file.
+ 
+ 
+ @node Other Updating Commands
+ @subsection Other Updating Commands
+ 
+ In addition to the five major updating commands, Texinfo mode
+ possesses several less frequently used updating commands:@refill
+ 
+ @table @kbd
+ @item M-x texinfo-insert-node-lines
+ @findex texinfo-insert-node-lines
+ Insert @code{@@node} lines before the @code{@@chapter},
+ @code{@@section}, and other sectioning commands wherever they are
+ missing throughout a region in a Texinfo file.@refill
+ 
+ With an argument (@kbd{C-u} as prefix argument, if interactive), the
+ @code{texinfo-insert-node-lines} command not only inserts
+ @code{@@node} lines but also inserts the chapter or section titles as
+ the names of the corresponding nodes.  In addition, it inserts the
+ titles as node names in pre-existing @code{@@node} lines that lack
+ names.  Since node names should be more concise than section or
+ chapter titles, you must manually edit node names so inserted.@refill
+ 
+ For example, the following marks a whole buffer as a region and inserts
+ @code{@@node} lines and titles throughout:@refill
+ 
+ @example
+ C-x h C-u M-x texinfo-insert-node-lines
+ @end example
+ 
+ This command inserts titles as node names in @code{@@node} lines; the
+ @code{texinfo-start-menu-description} command (@pxref{Inserting,
+ Inserting Frequently Used Commands}) inserts titles as descriptions in
+ menu entries, a different action.  However, in both cases, you need to
+ edit the inserted text.
+ 
+ @item M-x texinfo-multiple-files-update
+ @findex texinfo-multiple-files-update @r{(in brief)}
+ Update nodes and menus in a document built from several separate files.
+ With @kbd{C-u} as a prefix argument, create and insert a master menu in
+ the outer file.  With a numeric prefix argument, such as @kbd{C-u 2}, first
+ update all the menus and all the `Next', `Previous', and `Up' pointers
+ of all the included files before creating and inserting a master menu in
+ the outer file.  The @code{texinfo-multiple-files-update} command is
+ described in the appendix on @code{@@include} files.
+ @xref{texinfo-multiple-files-update}.
+ 
+ @item M-x texinfo-indent-menu-description
+ @findex texinfo-indent-menu-description
+ Indent every description in the menu following point to the specified
+ column.  You can use this command to give yourself more space for
+ descriptions.  With an argument (@kbd{C-u} as prefix argument, if
+ interactive), the @code{texinfo-indent-menu-description} command indents
+ every description in every menu in the region.  However, this command
+ does not indent the second and subsequent lines of a multi-line
+ description.@refill
+ 
+ @item M-x texinfo-sequential-node-update
+ @findex texinfo-sequential-node-update
+ Insert the names of the nodes immediately following and preceding the
+ current node as the `Next' or `Previous' pointers regardless of those
+ nodes' hierarchical level.  This means that the `Next' node of a
+ subsection may well be the next chapter.  Sequentially ordered nodes are
+ useful for novels and other documents that you read through
+ sequentially.  (However, in Info, the @kbd{g *} command lets
+ you look through the file sequentially, so sequentially ordered nodes
+ are not strictly necessary.)  With an argument (prefix argument, if
+ interactive), the @code{texinfo-sequential-node-update} command
+ sequentially updates all the nodes in the region.@refill
+ @end table
+ 
+ @node Info Formatting
+ @comment  node-name,  next,  previous,  up
+ @section Formatting for Info
+ @cindex Formatting for Info
+ @cindex Running an Info formatter
+ @cindex Info formatting
+ 
+ Texinfo mode provides several commands for formatting part or all of a
+ Texinfo file for Info.  Often, when you are writing a document, you
+ want to format only part of a file---that is, a region.@refill
+ 
+ You can use either the @code{texinfo-format-region} or the
+ @code{makeinfo-region} command to format a region:@refill
+ 
+ @table @kbd
+ @findex texinfo-format-region
+ @item  C-c C-e C-r
+ @itemx M-x texinfo-format-region
+ @itemx C-c C-m C-r
+ @itemx M-x makeinfo-region
+ Format the current region for Info.@refill
+ @end table
+ 
+ You can use either the @code{texinfo-format-buffer} or the
+ @code{makeinfo-buffer} command to format a whole buffer:@refill
+ 
+ @table @kbd
+ @findex texinfo-format-buffer
+ @item  C-c C-e C-b
+ @itemx M-x texinfo-format-buffer
+ @itemx C-c C-m C-b
+ @itemx M-x makeinfo-buffer
+ Format the current buffer for Info.@refill
+ @end table
+ 
+ @need 1000
+ For example, after writing a Texinfo file, you can type the following:
+ 
+ @example
+ C-u C-c C-u m
+ @exdent or
+ C-u M-x texinfo-master-menu
+ @end example
+ 
+ @noindent
+ This updates all the nodes and menus.  Then type the following to create
+ an Info file:
+ 
+ @example
+ C-c C-m C-b
+ @exdent or
+ M-x makeinfo-buffer
+ @end example
+ 
+ For @TeX{} or the Info formatting commands to work, the file @emph{must}
+ include a line that has @code{@@setfilename} in its header.
+ 
+ @xref{Creating an Info File}, for details about Info formatting.@refill
+ 
+ @node Printing
+ @comment node-name,  next,  previous,  up
+ @section Printing
+ @cindex Formatting for printing
+ @cindex Printing a region or buffer
+ @cindex Region formatting and printing
+ @cindex Buffer formatting and printing
+ @cindex Part of file formatting and printing
+ 
+ Typesetting and printing a Texinfo file is a multi-step process in which
+ you first create a file for printing (called a DVI file), and then
+ print the file.  Optionally, you may also create indices.  To do this,
+ you must run the @code{texindex} command after first running the
+ @code{tex} typesetting command; and then you must run the @code{tex}
+ command again.  Or else run the @code{texi2dvi} command which
+ automatically creates indices as needed (@pxref{Format with texi2dvi}).
+ 
+ Often, when you are writing a document, you want to typeset and print
+ only part of a file to see what it will look like.  You can use the
+ @code{texinfo-tex-region} and related commands for this purpose.  Use
+ the @code{texinfo-tex-buffer} command to format all of a
+ buffer.@refill
+ 
+ @table @kbd
+ @item  C-c C-t C-b
+ @itemx M-x texinfo-tex-buffer
+ @findex texinfo-tex-buffer
+ Run @code{texi2dvi} on the buffer.  In addition to running @TeX{} on the
+ buffer, this command automatically creates or updates indices as
+ needed.@refill
+ 
+ @item  C-c C-t C-r
+ @itemx M-x texinfo-tex-region
+ @findex texinfo-tex-region
+ Run @TeX{} on the region.@refill
+ 
+ @item C-c C-t C-i
+ @itemx M-x texinfo-texindex
+ Run @code{texindex} to sort the indices of a Texinfo file formatted with
+ @code{texinfo-tex-region}.  The @code{texinfo-tex-region} command does
+ not run @code{texindex} automatically; it only runs the @code{tex}
+ typesetting command.  You must run the @code{texinfo-tex-region} command
+ a second time after sorting the raw index files with the @code{texindex}
+ command.  (Usually, you do not format an index when you format a region,
+ only when you format a buffer.  Now that the @code{texi2dvi} command
+ exists, there is little or no need for this command.)@refill
+ 
+ @item C-c C-t C-p
+ @itemx M-x texinfo-tex-print
+ @findex texinfo-tex-print
+ Print the file (or the part of the file) previously formatted with
+ @code{texinfo-tex-buffer} or @code{texinfo-tex-region}.@refill
+ @end table
+ 
+ For @code{texinfo-tex-region} or @code{texinfo-tex-buffer} to work, the
+ file @emph{must} start with a @samp{\input texinfo} line and must
+ include an @code{@@settitle} line.  The file must end with @code{@@bye}
+ on a line by itself.  (When you use @code{texinfo-tex-region}, you must
+ surround the @code{@@settitle} line with start-of-header and
+ end-of-header lines.)@refill
+ 
+ @xref{Hardcopy}, for a description of the other @TeX{} related
+ commands, such as @code{tex-show-print-queue}.@refill
+ 
+ @node Texinfo Mode Summary
+ @comment  node-name,  next,  previous,  up
+ @section Texinfo Mode Summary
+ 
+ In Texinfo mode, each set of commands has default keybindings that
+ begin with the same keys.  All the commands that are custom-created
+ for Texinfo mode begin with @kbd{C-c}.  The keys are somewhat
+ mnemonic.@refill
+ 
+ @subheading Insert Commands
+ 
+ The insert commands are invoked by typing @kbd{C-c} twice and then the
+ first letter of the @@-command to be inserted.  (It might make more
+ sense mnemonically to use @kbd{C-c C-i}, for `custom insert', but
+ @kbd{C-c C-c} is quick to type.)@refill
+ 
+ @example
+ C-c C-c c       @r{Insert} @samp{@@code}.
+ C-c C-c d       @r{Insert} @samp{@@dfn}.
+ C-c C-c e       @r{Insert} @samp{@@end}.
+ C-c C-c i       @r{Insert} @samp{@@item}.
+ C-c C-c n       @r{Insert} @samp{@@node}.
+ C-c C-c s       @r{Insert} @samp{@@samp}.
+ C-c C-c v       @r{Insert} @samp{@@var}.
+ C-c @{       @r{Insert braces.}
+ C-c ]
+ C-c @}       @r{Move out of enclosing braces.}
+ 
+ @group
+ C-c C-c C-d     @r{Insert a node's section title}
+                @r{in the space for the description}
+                @r{in a menu entry line.}
+ @end group
+ @end example
+ 
+ @subheading Show Structure
+ 
+ The @code{texinfo-show-structure} command is often used within a
+ narrowed region.@refill
+ 
+ @example
+ C-c C-s         @r{List all the headings.}
+ @end example
+ 
+ @subheading The Master Update Command
+ 
+ The @code{texinfo-master-menu} command creates a master menu; and can
+ be used to update every node and menu in a file as well.@refill
+ 
+ @c Probably should use @tables in this section.
+ @example
+ @group
+ C-c C-u m
+ M-x texinfo-master-menu
+                @r{Create or update a master menu.}
+ @end group
+ 
+ @group
+ C-u C-c C-u m   @r{With @kbd{C-u} as a prefix argument, first}
+                @r{create or update all nodes and regular}
+                @r{menus, and then create a master menu.}
+ @end group
+ @end example
+ 
+ @subheading Update Pointers
+ 
+ The update pointer commands are invoked by typing @kbd{C-c C-u} and
+ then either @kbd{C-n} for @code{texinfo-update-node} or @kbd{C-e} for
+ @code{texinfo-every-node-update}.@refill
+ 
+ @example
+ C-c C-u C-n     @r{Update a node.}
+ C-c C-u C-e     @r{Update every node in the buffer.}
+ @end example
+ 
+ @subheading Update Menus
+ 
+ Invoke the  update menu commands by typing @kbd{C-c C-u}
+ and then either @kbd{C-m} for @code{texinfo-make-menu} or
+ @kbd{C-a} for @code{texinfo-all-menus-update}.  To update
+ both nodes and menus at the same time, precede @kbd{C-c C-u
+ C-a} with @kbd{C-u}.@refill
+ 
+ @example
+ C-c C-u C-m     @r{Make or update a menu.}
+ 
+ @group
+ C-c C-u C-a     @r{Make or update all}
+                @r{menus in a buffer.}
+ @end group
+ 
+ @group
+ C-u C-c C-u C-a @r{With @kbd{C-u} as a prefix argument,}
+                @r{first create or update all nodes and}
+                @r{then create or update all menus.}
+ @end group
+ @end example
+ 
+ @subheading Format for Info
+ 
+ The Info formatting commands that are written in Emacs Lisp are
+ invoked by typing @kbd{C-c C-e} and then either @kbd{C-r} for a region
+ or @kbd{C-b} for the whole buffer.@refill
+ 
+ The Info formatting commands that are written in C and based on the
+ @code{makeinfo} program are invoked by typing @kbd{C-c C-m} and then
+ either @kbd{C-r} for a region or @kbd{C-b} for the whole buffer.@refill
+ 
+ @need 800
+ @noindent
+ Use the @code{texinfo-format@dots{}} commands:
+ 
+ @example
+ @group
+ C-c C-e C-r     @r{Format the region.}
+ C-c C-e C-b     @r{Format the buffer.}
+ @end group
+ @end example
+ 
+ @need 750
+ @noindent
+ Use @code{makeinfo}:
+ 
+ @example
+ C-c C-m C-r     @r{Format the region.}
+ C-c C-m C-b     @r{Format the buffer.}
+ C-c C-m C-l     @r{Recenter the @code{makeinfo} output buffer.}
+ C-c C-m C-k     @r{Kill the @code{makeinfo} formatting job.}
+ @end example
+ 
+ @subheading Typeset and Print
+ 
+ The @TeX{} typesetting and printing commands are invoked by typing
+ @kbd{C-c C-t} and then another control command: @kbd{C-r} for
+ @code{texinfo-tex-region}, @kbd{C-b} for @code{texinfo-tex-buffer},
+ and so on.@refill
+ 
+ @example
+ C-c C-t C-r     @r{Run @TeX{} on the region.}
+ C-c C-t C-b     @r{Run} @code{texi2dvi} @r{on the buffer.}
+ C-c C-t C-i     @r{Run} @code{texindex}.
+ C-c C-t C-p     @r{Print the DVI file.}
+ C-c C-t C-q     @r{Show the print queue.}
+ C-c C-t C-d     @r{Delete a job from the print queue.}
+ C-c C-t C-k     @r{Kill the current @TeX{} formatting job.}
+ C-c C-t C-x     @r{Quit a currently stopped @TeX{} formatting job.}
+ C-c C-t C-l     @r{Recenter the output buffer.}
+ @end example
+ 
+ @subheading Other Updating Commands
+ 
+ The remaining updating commands do not have standard keybindings because
+ they are rarely used.
+ 
+ @example
+ @group
+ M-x texinfo-insert-node-lines
+                @r{Insert missing @code{@@node} lines in region.}
+                @r{With @kbd{C-u} as a prefix argument,}
+                @r{use section titles as node names.}
+ @end group
+ 
+ @group
+ M-x texinfo-multiple-files-update
+                @r{Update a multi-file document.}
+                @r{With @kbd{C-u 2} as a prefix argument,}
+                @r{create or update all nodes and menus}
+                @r{in all included files first.}
+ @end group
+ 
+ @group
+ M-x texinfo-indent-menu-description
+                @r{Indent descriptions.}
+ @end group
+ 
+ @group
+ M-x texinfo-sequential-node-update
+                @r{Insert node pointers in strict sequence.}
+ @end group
+ @end example
+ 
+ 
+ @node Beginning a File
+ @chapter Beginning a Texinfo File
+ @cindex Beginning a Texinfo file
+ @cindex Texinfo file beginning
+ @cindex File beginning
+ 
+ Certain pieces of information must be provided at the beginning of a
+ Texinfo file, such as the name for the output file(s), the title of the
+ document, and the Top node.  A table of contents is also generally
+ produced here.
+ 
+ This chapter expands on the minimal complete Texinfo source file
+ previously given (@pxref{Six Parts}).  It describes the numerous
+ commands for handling the traditional frontmatter items in Texinfo.
+ 
+ @cindex Frontmatter, text in
+ Straight text outside of any command before the Top node should be
+ avoided.  Such text is treated differently in the different output
+ formats: visible in @TeX{} and HTML, by default not shown in Info
+ readers, and so on.
+ 
+ @menu
+ * Sample Beginning::            A sample beginning for a Texinfo file.
+ * Texinfo File Header::         The first lines.
+ * Document Permissions::        Ensuring your manual is free.
+ * Titlepage & Copyright Page::  Creating the title and copyright pages.
+ * Contents::                    How to create a table of contents.
+ * The Top Node::                Creating the `Top' node and master menu.
+ * Global Document Commands::    Affecting formatting throughout.
+ * Software Copying Permissions::  Ensure that you and others continue to
+                                    have the right to use and share software.
+ @end menu
+ 
+ 
+ @node Sample Beginning
+ @section Sample Texinfo File Beginning
+ 
+ @cindex Example beginning of Texinfo file
+ 
+ The following sample shows what is needed.  The elements given here are
+ explained in more detail in the following sections.  Other commands are
+ often included at the beginning of Texinfo files, but the ones here are
+ the most critical.
+ 
+ @xref{GNU Sample Texts}, for the full texts to be used in GNU manuals.
+ 
+ @example
+ \input texinfo   @@c -*-texinfo-*-
+ @@c %**start of header
+ @@setfilename @var{infoname}.info
+ @@settitle @var{name-of-manual} @var{version}
+ @@c %**end of header
+ 
+ @@copying
+ This manual is for @var{program}, version @var{version}.
+ 
+ Copyright @@copyright@{@} @var{years} @var{copyright-owner}.
+ 
+ @group
+ @@quotation
+ Permission is granted to @dots{}
+ @@end quotation
+ @@end copying
+ @end group
+ 
+ @group
+ @@titlepage
+ @@title @var{name-of-manual-when-printed}
+ @@subtitle @var{subtitle-if-any}
+ @@subtitle @var{second-subtitle}
+ @@author @var{author}
+ @end group
+ 
+ @group
+ @@c  The following two commands
+ @@c  start the copyright page.
+ @@page
+ @@vskip 0pt plus 1filll
+ @@insertcopying
+ @end group
+ 
+ Published by @dots{}
+ @@end titlepage
+ 
+ @@c So the toc is printed at the start.
+ @@contents
+ 
+ @@ifnottex
+ @@node Top
+ @@top @var{title}
+ 
+ This manual is for @var{program}, version @var{version}.
+ @@end ifnottex
+ 
+ @group
+ @@menu
+ * First Chapter::    Getting started @dots{}
+ * Second Chapter::          @dots{}
+  @dots{}
+ * Copying::          Your rights and freedoms.
+ @@end menu
+ @end group
+ 
+ @group
+ @@node First Chapter
+ @@chapter First Chapter
+ 
+ @@cindex first chapter
+ @@cindex chapter, first
+ @dots{}
+ @end group
+ @end example
+ 
+ 
+ @node Texinfo File Header
+ @section Texinfo File Header
+ @cindex Header for Texinfo files
+ @cindex Texinfo file header
+ 
+ Texinfo files start with at least three lines that provide Info and
+ @TeX{} with necessary information.  These are the @code{\input texinfo}
+ line, the @code{@@settitle} line, and the @code{@@setfilename} line.
+ 
+ Also, if you want to format just part of the Texinfo file, you must
+ write the @code{@@settitle} and @code{@@setfilename} lines between
+ start-of-header and end-of-header lines.  The start- and end-of-header
+ lines are optional, but they do no harm, so you might as well always
+ include them.
+ 
+ Any command that affects document formatting as a whole makes sense to
+ include in the header.  @code{@@synindex} (@pxref{synindex}), for
+ instance, is another command often included in the header.  @xref{GNU
+ Sample Texts}, for complete sample texts.
+ 
+ Thus, the beginning of a Texinfo file generally looks like this:
+ 
+ @example
+ @group
+ \input texinfo   @@c -*-texinfo-*-
+ @@c %**start of header
+ @@setfilename sample.info
+ @@settitle Sample Manual 1.0
+ @@c %**end of header
+ @end group
+ @end example
+ 
+ @menu
+ * First Line::                  The first line of a Texinfo file.
+ * Start of Header::             Formatting a region requires this.
+ * setfilename::                 Tell Info the name of the Info file.
+ * settitle::                    Create a title for the printed work.
+ * End of Header::               Formatting a region requires this.
+ @end menu
+ 
+ 
+ @node First Line
+ @subsection The First Line of a Texinfo File
+ @cindex First line of a Texinfo file
+ @cindex Beginning line of a Texinfo file
+ @cindex Header of a Texinfo file
+ 
+ Every Texinfo file that is to be the top-level input to @TeX{} must begin
+ with a line that looks like this:
+ 
+ @example
+ \input texinfo   @@c -*-texinfo-*-
+ @end example
+ 
+ @noindent
+ This line serves two functions:
+ 
+ @enumerate
+ @item
+ When the file is processed by @TeX{}, the @samp{\input texinfo} command
+ tells @TeX{} to load the macros needed for processing a Texinfo file.
+ These are in a file called @file{texinfo.tex}, which should have been
+ installed on your system along with either the @TeX{} or Texinfo
+ software.  @TeX{} uses the backslash, @samp{\}, to mark the beginning of
+ a command, exactly as Texinfo uses @samp{@@}.  The @file{texinfo.tex}
+ file causes the switch from @samp{\} to @samp{@@}; before the switch
+ occurs, @TeX{} requires @samp{\}, which is why it appears at the
+ beginning of the file.
+ 
+ @item
+ When the file is edited in GNU Emacs, the @samp{-*-texinfo-*-} mode
+ specification tells Emacs to use Texinfo mode.
+ @end enumerate
+ 
+ 
+ @node Start of Header
+ @subsection Start of Header
+ @cindex Start of header line
+ 
+ A start-of-header line is a Texinfo comment that looks like this:
+ 
+ @example
+ @@c %**start of header
+ @end example
+ 
+ Write the start-of-header line on the second line of a Texinfo file.
+ Follow the start-of-header line with @code{@@setfilename} and
+ @code{@@settitle} lines and, optionally, with other commands that
+ globally affect the document formatting, such as @code{@@synindex} or
+ @code{@@footnotestyle}; and then by an end-of-header line (@pxref{End of
+ Header}).
+ 
+ The start- and end-of-header lines allow you to format only part of a
+ Texinfo file for Info or printing.  @xref{texinfo-format commands}.
+ 
+ The odd string of characters, @samp{%**}, is to ensure that no other
+ comment is accidentally taken for a start-of-header line.  You can
+ change it if you wish by setting the @code{tex-start-of-header} and/or
+ @code{tex-end-of-header} Emacs variables.  @xref{Texinfo Mode Printing}.
+ 
+ 
+ @node setfilename
+ @subsection @code{@@setfilename}: Set the output file name
+ @findex setfilename
+ @cindex Texinfo requires @code{@@setfilename}
+ 
+ In order to serve as the primary input file for either @code{makeinfo}
+ or @TeX{}, a Texinfo file must contain a line that looks like this:
+ 
+ @example
+ @@setfilename @var{info-file-name}
+ @end example
+ 
+ Write the @code{@@setfilename} command at the beginning of a line and
+ follow it on the same line by the Info file name.  Do not write anything
+ else on the line; anything on the line after the command is considered
+ part of the file name, including what would otherwise be a
+ comment.
+ 
+ @cindex Ignored before @code{@@setfilename}
+ @cindex @samp{\input} source line ignored
+ The Info formatting commands ignore everything written before the
+ @code{@@setfilename} line, which is why the very first line of
+ the file (the @code{\input} line) does not show up in the output.
+ 
+ The @code{@@setfilename} line specifies the name of the output file to
+ be generated.  This name must be different from the name of the Texinfo
+ file.  There are two conventions for choosing the name: you can either
+ remove the extension (such as @samp{.texi}) entirely from the input file
+ name, or, preferably, replace it with the @samp{.info} extension.
+ 
+ @cindex Length of file names
+ @cindex File name collision
+ @cindex Info file name, choosing
+ Although an explicit @samp{.info} extension is preferable, some
+ operating systems cannot handle long file names.  You can run into a
+ problem even when the file name you specify is itself short enough.
+ This occurs because the Info formatters split a long Info file into
+ short indirect subfiles, and name them by appending @samp{-1},
+ @samp{-2}, @dots{}, @samp{-10}, @samp{-11}, and so on, to the original
+ file name.  (@xref{Tag and Split Files}.)  The subfile name
+ @file{texinfo.info-10}, for example, is too long for old systems with a
+ 14-character limit on filenames; so the Info file name for this document
+ is @file{texinfo} rather than @file{texinfo.info}.  When @code{makeinfo}
+ is running on operating systems such as MS-DOS which impose severe
+ limits on file names, it may remove some characters from the original
+ file name to leave enough space for the subfile suffix, thus producing
+ files named @file{texin-10}, @file{gcc.i12}, etc.
+ 
+ When producing HTML output, @code{makeinfo} will replace any extension
+ with @samp{html}, or add @samp{.html} if the given name has no
+ extension.
+ 
+ @pindex texinfo.cnf
+ The @code{@@setfilename} line produces no output when you typeset a
+ manual with @TeX{}, but it is nevertheless essential: it opens the
+ index, cross-reference, and other auxiliary files used by Texinfo, and
+ also reads @file{texinfo.cnf} if that file is present on your system
+ (@pxref{Preparing for TeX,, Preparing for @TeX{}}).
+ 
+ 
+ @node settitle
+ @subsection @code{@@settitle}: Set the document title
+ @findex settitle
+ 
+ In order to be made into a printed manual, a Texinfo file must contain
+ a line that looks like this:
+ 
+ @example
+ @@settitle @var{title}
+ @end example
+ 
+ Write the @code{@@settitle} command at the beginning of a line and
+ follow it on the same line by the title.  This tells @TeX{} the title to
+ use in a header or footer.  Do not write anything else on the line;
+ anything on the line after the command is considered part of the title,
+ including what would otherwise be a comment.
+ 
+ The @code{@@settitle} command should precede everything that generates
+ actual output.  The best place for it is right after the
+ @code{@@setfilename} command (see the previous section).
+ 
+ @cindex <title> HTML tag
+ In the HTML file produced by @command{makeinfo}, @var{title} serves as
+ the document @samp{<title>}.  It also becomes the default document
+ description in the @samp{<head>} part (@pxref{documentdescription}).
+ 
+ The title in the @code{@@settitle} command does not affect the title as
+ it appears on the title page.  Thus, the two do not need not match
+ exactly.  A practice we recommend is to include the version or edition
+ number of the manual in the @code{@@settitle} title; on the title page,
+ the version number generally appears as a @code{@@subtitle} so it would
+ be omitted from the @code{@@title}.  @xref{titlepage}.
+ 
+ Conventionally, when @TeX{} formats a Texinfo file for double-sided
+ output, the title is printed in the left-hand (even-numbered) page
+ headings and the current chapter title is printed in the right-hand
+ (odd-numbered) page headings.  (@TeX{} learns the title of each chapter
+ from each @code{@@chapter} command.)  By default, no page footer is
+ printed.
+ 
+ Even if you are printing in a single-sided style, @TeX{} looks for an
+ @code{@@settitle} command line, in case you include the manual title
+ in the heading.
+ 
+ @TeX{} prints page headings only for that text that comes after the
+ @code{@@end titlepage} command in the Texinfo file, or that comes
+ after an @code{@@headings} command that turns on headings.
+ (@xref{headings on off, , The @code{@@headings} Command}, for more
+ information.)
+ 
+ You may, if you wish, create your own, customized headings and footings.
+ @xref{Headings}, for a detailed discussion of this.
+ 
+ 
+ @node End of Header
+ @subsection End of Header
+ @cindex End of header line
+ 
+ Follow the header lines with an @w{end-of-header} line, which is a
+ Texinfo comment that looks like this:
+ 
+ @example
+ @@c %**end of header
+ @end example
+ 
+ @xref{Start of Header}.
+ 
+ 
+ @node Document Permissions
+ @section Document Permissions
+ @cindex Document Permissions
+ @cindex Copying Permissions
+ 
+ The copyright notice and copying permissions for a document need to
+ appear in several places in the various Texinfo output formats.
+ Therefore, Texinfo provides a command (@code{@@copying}) to declare
+ this text once, and another command (@code{@@insertcopying}) to
+ insert the text at appropriate points.
+ 
+ @menu
+ * copying::                     Declare the document's copying permissions.
+ * insertcopying::               Where to insert the permissions.
+ @end menu
+ 
+ 
+ @node copying
+ @subsection @code{@@copying}: Declare Copying Permissions
+ @findex copying
+ 
+ The @code{@@copying} command should be given very early in the document;
+ the recommended location is right after the header material
+ (@pxref{Texinfo File Header}).  It conventionally consists of a sentence
+ or two about what the program is, identification of the documentation
+ itself, the legal copyright line, and the copying permissions.  Here is
+ a skeletal example:
+ 
+ @example
+ @@copying
+ This manual is for @var{program} (version @var{version}, updated
+ @var{date}), which @dots{}
+ 
+ Copyright @@copyright@{@} @var{years} @var{copyright-owner}.
+ 
+ @@quotation
+ Permission is granted to @dots{}
+ @@end quotation
+ @@end copying
+ @end example
+ 
+ The @code{@@quotation} has no legal significance; it's there to improve
+ readability in some contexts.
+ 
+ @xref{GNU Sample Texts}, for the full text to be used in GNU manuals.
+ @xref{GNU Free Documentation License}, for the license itself under
+ which GNU and other free manuals are distributed.  You need to include
+ the license as an appendix to your document.
+ 
+ The text of @code{@@copying} is output as a comment at the beginning of
+ Info, HTML, and XML output files.  It is @emph{not} output implicitly in
+ plain text or @TeX{}; it's up to you to use @code{@@insertcopying} to
+ emit the copying information.  See the next section for details.
+ 
+ @findex copyright
+ The @code{@@copyright@{@}} command generates a @samp{c} inside a circle
+ in output formats that support this (print and HTML).  In the other
+ formats (Info and plain text), it generates @samp{(C)}.  The copyright
+ notice itself has the following legally defined sequence:
+ 
+ @example
+ Copyright @copyright{} @var{years} @var{copyright-owner}.
+ @end example
+ 
+ @cindex Copyright word, always in English
+ The word `Copyright' must always be written in English, even if the
+ document is otherwise written in another language.  This is due to
+ international law.
+ 
+ @cindex Years, in copyright line
+ The list of years should include all years in which a version was
+ completed (even if it was released in a subsequent year).  Ranges are
+ not allowed; each year must be written out individually and in full,
+ separated by commas.
+ 
+ @cindex Copyright holder for FSF works
+ @cindex Holder of copyright for FSF works
+ @cindex Owner of copyright for FSF works
+ The copyright owner (or owners) is whoever holds legal copyright on the
+ work.  In the case of works assigned to the FSF, the owner is `Free
+ Software Foundation, Inc.'.
+ 
+ The copyright `line' may actually be split across multiple lines, both
+ in the source document and in the output.  This often happens for
+ documents with a long history, having many different years of
+ publication.  If you do use several lines, do not indent any of them
+ (or anything else in the @code{@@copying} block) in the source file.
+ 
+ @xref{Copyright Notices,,,maintain,GNU Maintenance Instructions}, for
+ additional information.
+ 
+ 
+ @node insertcopying
+ @subsection @code{@@insertcopying}: Include Permissions Text
+ @findex insertcopying
+ @cindex Copying text, including
+ @cindex Permissions text, including
+ @cindex Including permissions text
+ 
+ The @code{@@insertcopying} command is simply written on a line by
+ itself, like this:
+ 
+ @example
+ @@insertcopying
+ @end example
+ 
+ This inserts the text previously defined by @code{@@copying}.  To meet
+ legal requirements, it must be used on the copyright page in the printed
+ manual (@pxref{Copyright}).
+ 
+ The @code{@@copying} command itself causes the permissions text to
+ appear in an Info file @emph{before} the first node.  The text is also
+ copied into the beginning of each split Info output file, as is legally
+ necessary.  This location implies a human reading the manual using Info
+ does @emph{not} see this text (except when using the advanced Info
+ command @kbd{g *}), but this does not matter for legal purposes,
+ because the text is present.
+ 
+ Similarly, the @code{@@copying} text is automatically included at the
+ beginning of each HTML output file, as an HTML comment.  Again, this
+ text is not visible (unless the reader views the HTML source).
+ 
+ The permissions text defined by @code{@@copying} also appears
+ automatically at the beginning of the XML output file.
+ 
+ 
+ @node Titlepage & Copyright Page
+ @section Title and Copyright Pages
+ 
+ In hard copy output, the manual's name and author are usually printed on
+ a title page.  Copyright information is usually printed on the back of
+ the title page.
+ 
+ The title and copyright pages appear in the printed manual, but not in
+ the Info file.  Because of this, it is possible to use several slightly
+ obscure @TeX{} typesetting commands that cannot be used in an Info file.
+ In addition, this part of the beginning of a Texinfo file contains the
+ text of the copying permissions that appears in the printed manual.
+ 
+ @cindex Title page, for plain text
+ @cindex Copyright page, for plain text
+ You may wish to include titlepage-like information for plain text
+ output.  Simply place any such leading material between
+ @code{@@ifplaintext} and @code{@@end ifplaintext}; @command{makeinfo}
+ includes this when writing plain text (@samp{--no-headers}), along with
+ an @code{@@insertcopying}.
+ 
+ @menu
+ * titlepage::                   Create a title for the printed document.
+ * titlefont center sp::         The @code{@@titlefont}, @code{@@center},
+                                  and @code{@@sp} commands.
+ * title subtitle author::       The @code{@@title}, @code{@@subtitle},
+                                  and @code{@@author} commands.
+ * Copyright::                   How to write the copyright notice and
+                                  include copying permissions.
+ * end titlepage::               Turn on page headings after the title and
+                                  copyright pages.
+ * headings on off::             An option for turning headings on and off
+                                  and double or single sided printing.
+ @end menu
+ 
+ 
+ @node titlepage
+ @subsection @code{@@titlepage}
+ @cindex Title page
+ @findex titlepage
+ 
+ Start the material for the title page and following copyright page
+ with @code{@@titlepage} on a line by itself and end it with
+ @code{@@end titlepage} on a line by itself.
+ 
+ The @code{@@end titlepage} command starts a new page and turns on page
+ numbering.  (@xref{Headings, , Page Headings}, for details about how to
+ generate page headings.)  All the material that you want to appear on
+ unnumbered pages should be put between the @code{@@titlepage} and
+ @code{@@end titlepage} commands.  You can force the table of contents to
+ appear there with the @code{@@setcontentsaftertitlepage} command
+ (@pxref{Contents}).
+ 
+ @findex page@r{, within @code{@@titlepage}}
+ By using the @code{@@page} command you can force a page break within the
+ region delineated by the @code{@@titlepage} and @code{@@end titlepage}
+ commands and thereby create more than one unnumbered page.  This is how
+ the copyright page is produced.  (The @code{@@titlepage} command might
+ perhaps have been better named the @code{@@titleandadditionalpages}
+ command, but that would have been rather long!)
+ 
+ When you write a manual about a computer program, you should write the
+ version of the program to which the manual applies on the title page.
+ If the manual changes more frequently than the program or is independent
+ of it, you should also include an edition number@footnote{We have found
+ that it is helpful to refer to versions of independent manuals as
+ `editions' and versions of programs as `versions'; otherwise, we find we
+ are liable to confuse each other in conversation by referring to both
+ the documentation and the software with the same words.} for the manual.
+ This helps readers keep track of which manual is for which version of
+ the program.  (The `Top' node should also contain this information; see
+ @ref{The Top Node}.)
+ 
+ Texinfo provides two main methods for creating a title page.  One method
+ uses the @code{@@titlefont}, @code{@@sp}, and @code{@@center} commands
+ to generate a title page in which the words on the page are
+ centered.
+ 
+ The second method uses the @code{@@title}, @code{@@subtitle}, and
+ @code{@@author} commands to create a title page with black rules under
+ the title and author lines and the subtitle text set flush to the
+ right hand side of the page.  With this method, you do not specify any
+ of the actual formatting of the title page.  You specify the text
+ you want, and Texinfo does the formatting.
+ 
+ You may use either method, or you may combine them; see the examples in
+ the sections below.
+ 
+ @findex shorttitlepage
+ @cindex Bastard title page
+ @cindex Title page, bastard
+ For extremely simple documents, and for the bastard title page in
+ traditional book frontmatter, Texinfo also provides a command
+ @code{@@shorttitlepage} which takes the rest of the line as the title.
+ The argument is typeset on a page by itself and followed by a blank
+ page.
+ 
+ 
+ @node titlefont center sp
+ @subsection @code{@@titlefont}, @code{@@center}, and @code{@@sp}
+ @findex titlefont
+ @findex center
+ @findex sp @r{(titlepage line spacing)}
+ 
+ You can use the @code{@@titlefont}, @code{@@sp}, and @code{@@center}
+ commands to create a title page for a printed document.  (This is the
+ first of the two methods for creating a title page in Texinfo.)
+ 
+ Use the @code{@@titlefont} command to select a large font suitable for
+ the title itself.  You can use @code{@@titlefont} more than once if you
+ have an especially long title.
+ 
+ For HTML output, each @code{@@titlefont} command produces an
+ @code{<h1>} heading, but the HTML document @code{<title>} is not
+ affected.  For that, you must put an @code{@@settitle} command before
+ the @code{@@titlefont} command (@pxref{settitle}).
+ 
+ @need 700
+ For example:
+ 
+ @example
+ @@titlefont@{Texinfo@}
+ @end example
+ 
+ Use the @code{@@center} command at the beginning of a line to center
+ the remaining text on that line.  Thus,
+ 
+ @example
+ @@center @@titlefont@{Texinfo@}
+ @end example
+ 
+ @noindent
+ centers the title, which in this example is ``Texinfo'' printed
+ in the title font.
+ 
+ Use the @code{@@sp} command to insert vertical space.  For example:
+ 
+ @example
+ @@sp 2
+ @end example
+ 
+ @noindent
+ This inserts two blank lines on the printed page.  (@xref{sp, ,
+ @code{@@sp}}, for more information about the @code{@@sp}
+ command.)
+ 
+ A template for this method looks like this:
+ 
+ @example
+ @group
+ @@titlepage
+ @@sp 10
+ @@center @@titlefont@{@var{name-of-manual-when-printed}@}
+ @@sp 2
+ @@center @var{subtitle-if-any}
+ @@sp 2
+ @@center @var{author}
+ @dots{}
+ @@end titlepage
+ @end group
+ @end example
+ 
+ The spacing of the example fits an 8.5 by 11 inch manual.
+ 
+ You can in fact use these commands anywhere, not just on a title page,
+ but since they are not logical markup commands, we don't recommend
+ them.
+ 
+ @node title subtitle author
+ @subsection @code{@@title}, @code{@@subtitle}, and @code{@@author}
+ @findex title
+ @findex subtitle
+ @findex author
+ 
+ You can use the @code{@@title}, @code{@@subtitle}, and @code{@@author}
+ commands to create a title page in which the vertical and horizontal
+ spacing is done for you automatically.  This contrasts with the method
+ described in the previous section, in which the @code{@@sp} command is
+ needed to adjust vertical spacing.
+ 
+ Write the @code{@@title}, @code{@@subtitle}, or @code{@@author}
+ commands at the beginning of a line followed by the title, subtitle,
+ or author.  These commands are only effective in @TeX{} output; it's
+ an error to use them anywhere except within @code{@@titlepage}.
+ 
+ The @code{@@title} command produces a line in which the title is set
+ flush to the left-hand side of the page in a larger than normal font.
+ The title is underlined with a black rule.  Only a single line is
+ allowed; the @code{@@*} command may not be used to break the title into
+ two lines.  To handle very long titles, you may find it profitable to
+ use both @code{@@title} and @code{@@titlefont}; see the final example in
+ this section.
+ 
+ The @code{@@subtitle} command sets subtitles in a normal-sized font
+ flush to the right-hand side of the page.
+ 
+ The @code{@@author} command sets the names of the author or authors in
+ a middle-sized font flush to the left-hand side of the page on a line
+ near the bottom of the title page.  The names are underlined with a
+ black rule that is thinner than the rule that underlines the title.
+ (The black rule only occurs if the @code{@@author} command line is
+ followed by an @code{@@page} command line.)
+ 
+ There are two ways to use the @code{@@author} command: you can write
+ the name or names on the remaining part of the line that starts with
+ an @code{@@author} command:
+ 
+ @example
+ @@author by Jane Smith and John Doe
+ @end example
+ 
+ @noindent
+ or you can write the names one above each other by using two (or more)
+ @code{@@author} commands:
+ 
+ @example
+ @group
+ @@author Jane Smith
+ @@author John Doe
+ @end group
+ @end example
+ 
+ @noindent
+ (Only the bottom name is underlined with a black rule.)
+ 
+ @need 950
+ A template for this method looks like this:
+ 
+ @example
+ @group
+ @@titlepage
+ @@title @var{name-of-manual-when-printed}
+ @@subtitle @var{subtitle-if-any}
+ @@subtitle @var{second-subtitle}
+ @@author @var{author}
+ @@page
+ @dots{}
+ @@end titlepage
+ @end group
+ @end example
+ 
+ You may also combine the @code{@@titlefont} method described in the
+ previous section and @code{@@title} method described in this one.  This
+ may be useful if you have a very long title.  Here is a real-life example:
+ 
+ @example
+ @group
+ @@titlepage
+ @@titlefont@{GNU Software@}
+ @@sp 1
+ @@title for MS-Windows and MS-DOS
+ @@subtitle Edition @@value@{e@} for Release @@value@{cde@}
+ @@author by Daniel Hagerty, Melissa Weisshaus
+ @@author and Eli Zaretskii
+ @end group
+ @end example
+ 
+ @noindent
+ (The use of @code{@@value} here is explained in @ref{value Example}.
+ 
+ 
+ @node Copyright
+ @subsection Copyright Page
+ @cindex Copyright page
+ @cindex Printed permissions
+ @cindex Permissions, printed
+ 
+ By international treaty, the copyright notice for a book must be either
+ on the title page or on the back of the title page.  When the copyright
+ notice is on the back of the title page, that page is customarily not
+ numbered.  Therefore, in Texinfo, the information on the copyright page
+ should be within @code{@@titlepage} and @code{@@end titlepage}
+ commands.
+ 
+ @findex vskip @r{@TeX{} vertical skip}
+ @findex filll @r{@TeX{} dimension}
+ Use the @code{@@page} command to cause a page break.  To push the
+ copyright notice and the other text on the copyright page towards the
+ bottom of the page, use the following incantation after @code{@@page}:
+ 
+ @example
+ @@vskip 0pt plus 1filll
+ @end example
+ 
+ @noindent
+ This is a @TeX{} command that is not supported by the Info formatting
+ commands.  The @code{@@vskip} command inserts whitespace.  The @samp{0pt
+ plus 1filll} means to put in zero points of mandatory whitespace, and as
+ much optional whitespace as needed to push the following text to the
+ bottom of the page.  Note the use of three @samp{l}s in the word
+ @samp{filll}; this is correct.
+ 
+ To insert the copyright text itself, write @code{@@insertcopying}
+ next (@pxref{Document Permissions}):
+ 
+ @example
+ @@insertcopying
+ @end example
+ 
+ Follow the copying text by the publisher, ISBN numbers, cover art
+ credits, and other such information.
+ 
+ Here is an example putting all this together:
+ 
+ @example
+ @@titlepage
+ @dots{}
+ @@page
+ @@vskip 0pt plus 1filll
+ @@insertcopying
+ 
+ Published by @dots{}
+ 
+ Cover art by @dots{}
+ @@end titlepage
+ @end example
+ 
+ 
+ @node end titlepage
+ @subsection Heading Generation
+ @findex end titlepage
+ @cindex Headings, page, begin to appear
+ @cindex Titlepage end starts headings
+ @cindex End titlepage starts headings
+ 
+ Like all @code{@@end} commands (@pxref{Quotations and Examples}), the @code{@@end titlepage} command
+ must be written at the beginning of a line by itself, with only one
+ space between the @code{@@end} and the @code{titlepage}.  It not only
+ marks the end of the title and copyright pages, but also causes @TeX{}
+ to start generating page headings and page numbers.
+ 
+ To repeat what is said elsewhere,  Texinfo has two standard page heading
+ formats, one for documents which are printed on one side of each sheet of paper
+ (single-sided printing), and the other for documents which are printed on both
+ sides of each sheet (double-sided printing).
+ You can specify these formats in different ways:
+ 
+ @itemize @bullet
+ @item
+ The conventional way is to write an @code{@@setchapternewpage} command
+ before the title page commands, and then have the @code{@@end
+ titlepage} command start generating page headings in the manner desired.
+ (@xref{setchapternewpage}.)
+ 
+ @item
+ Alternatively, you can use the @code{@@headings} command to prevent page
+ headings from being generated or to start them for either single or
+ double-sided printing.  (Write an @code{@@headings} command immediately
+ after the @code{@@end titlepage} command.  @xref{headings on off, , The
+ @code{@@headings} Command}, for more information.)@refill
+ 
+ @item
+ Or, you may specify your own page heading and footing format.
+ @xref{Headings, , Page Headings}, for detailed
+ information about page headings and footings.
+ @end itemize
+ 
+ Most documents are formatted with the standard single-sided or
+ double-sided format, using @code{@@setchapternewpage odd} for
+ double-sided printing and no @code{@@setchapternewpage} command for
+ single-sided printing.
+ 
+ 
+ @node headings on off
+ @subsection The @code{@@headings} Command
+ @findex headings
+ 
+ The @code{@@headings} command is rarely used.  It specifies what kind of
+ page headings and footings to print on each page.  Usually, this is
+ controlled by the @code{@@setchapternewpage} command.  You need the
+ @code{@@headings} command only if the @code{@@setchapternewpage} command
+ does not do what you want, or if you want to turn off predefined page
+ headings prior to defining your own.  Write an @code{@@headings} command
+ immediately after the @code{@@end titlepage} command.
+ 
+ You can use @code{@@headings} as follows:
+ 
+ @table @code
+ @item @@headings off
+ Turn off printing of page headings.
+ 
+ @item @@headings single
+ Turn on page headings appropriate for single-sided printing.
+ 
+ @item @@headings double
+ Turn on page headings appropriate for double-sided printing.  
+ 
+ @item @@headings singleafter
+ @itemx @@headings doubleafter
+ Turn on @code{single} or @code{double} headings, respectively, after the
+ current page is output.
+ 
+ @item @@headings on
+ Turn on page headings: @code{single} if @samp{@@setchapternewpage
+ on}, @code{double} otherwise.
+ @end table
+ 
+ For example, suppose you write @code{@@setchapternewpage off} before the
+ @code{@@titlepage} command to tell @TeX{} to start a new chapter on the
+ same page as the end of the last chapter.  This command also causes
+ @TeX{} to typeset page headers for single-sided printing.  To cause
+ @TeX{} to typeset for double sided printing, write @code{@@headings
+ double} after the @code{@@end titlepage} command.
+ 
+ You can stop @TeX{} from generating any page headings at all by
+ writing @code{@@headings off} on a line of its own immediately after the
+ line containing the @code{@@end titlepage} command, like this:
+ 
+ @example
+ @@end titlepage
+ @@headings off
+ @end example
+ 
+ @noindent
+ The @code{@@headings off} command overrides the @code{@@end titlepage}
+ command, which would otherwise cause @TeX{} to print page headings.
+ 
+ You can also specify your own style of page heading and footing.
+ @xref{Headings, , Page Headings}, for more information.
+ 
+ 
+ @node Contents
+ @section Generating a Table of Contents
+ @cindex Table of contents
+ @cindex Contents, Table of
+ @cindex Short table of contents
+ @findex contents
+ @findex summarycontents
+ @findex shortcontents
+ 
+ The @code{@@chapter}, @code{@@section}, and other structuring commands
+ (@pxref{Structuring}) supply the information to make up a
+ table of contents, but they do not cause an actual table to appear in
+ the manual.  To do this, you must use the @code{@@contents} and/or
+ @code{@@summarycontents} command(s).
+ 
+ @table @code
+ @item @@contents
+ Generates a table of contents in a printed manual, including all
+ chapters, sections, subsections, etc., as well as appendices and
+ unnumbered chapters.  Headings generated by @code{@@majorheading},
+ @code{@@chapheading}, and the other @code{@@@dots{}heading} commands
+ do not appear in the table of contents (@pxref{Structuring Command
+ Types}).
+ 
+ @item @@shortcontents
+ @itemx @@summarycontents
+ (@code{@@summarycontents} is a synonym for @code{@@shortcontents}.)
+ 
+ Generates a short or summary table of contents that lists only the
+ chapters, appendices, and unnumbered chapters.  Sections, subsections
+ and subsubsections are omitted.  Only a long manual needs a short
+ table of contents in addition to the full table of contents.
+ 
+ @end table
+ 
+ Both contents commands should be written on a line by themselves, and
+ are best placed near the beginning of the file, after the @code{@@end
+ titlepage} (@pxref{titlepage}).  The contents commands automatically
+ generate a chapter-like heading at the top of the first table of
+ contents page, so don't include any sectioning command such as
+ @code{@@unnumbered} before them.
+ 
+ Since an Info file uses menus instead of tables of contents, the Info
+ formatting commands ignore the contents commands.  But the contents are
+ included in plain text output (generated by @code{makeinfo
+ --no-headers}), unless @code{makeinfo} is writing its output to standard
+ output.
+ 
+ When @code{makeinfo} writes a short table of contents while producing
+ HTML output, the links in the short table of contents point to
+ corresponding entries in the full table of contents rather than the text
+ of the document. The links in the full table of contents point to the
+ main text of the document.
+ 
+ In the past, the contents commands were sometimes placed at the end of
+ the file, after any indices and just before the @code{@@bye}, but we
+ no longer recommend this.
+ 
+ @findex setcontentsaftertitlepage
+ @findex setshortcontentsaftertitlepage
+ @cindex Contents, after title page
+ @cindex Table of contents, after title page
+ However, since many existing Texinfo documents still do have the
+ @code{@@contents} at the end of the manual, if you are a user printing
+ a manual, you may wish to force the contents to be printed after the
+ title page.  You can do this by specifying
+ @code{@@setcontentsaftertitlepage} and/or
+ @code{@@setshortcontentsaftertitlepage}.  The first prints only the
+ main contents after the @code{@@end titlepage}; the second prints both
+ the short contents and the main contents.  In either case, any
+ subsequent @code{@@contents} or @code{@@shortcontents} is ignored
+ (unless, erroneously, no @code{@@end titlepage} is ever encountered).
+ 
+ You need to include the @code{@@set@dots{}contentsaftertitlepage}
+ commands early in the document (just after @code{@@setfilename}, for
+ example).  We recommend using @command{texi2dvi} (@pxref{Format with
+ texi2dvi}) to specify this without altering the source file at all.  For
+ example:
+ @example
+ texi2dvi --texinfo=@@setcontentsaftertitlepage foo.texi
+ @end example
+ 
+ 
+ @node The Top Node
+ @section The `Top' Node and Master Menu
+ @cindex Top node
+ @cindex Node, `Top'
+ 
+ The `Top' node is the node in which a reader enters an Info manual.
+ As such, it should begin with a brief description of the manual
+ (including the version number), and end with a master menu for the
+ whole manual.  Of course you should include any other general
+ information you feel a reader would find helpful.
+ 
+ @findex top
+ It is conventional and desirable to write an @code{@@top} sectioning
+ command line containing the title of the document immediately after
+ the @code{@@node Top} line (@pxref{makeinfo top command, , The
+ @code{@@top} Sectioning Command}).
+ 
+ The contents of the `Top' node should appear only in the online output;
+ none of it should appear in printed output, so enclose it between
+ @code{@@ifnottex} and @code{@@end ifnottex} commands.  (@TeX{} does not
+ print either an @code{@@node} line or a menu; they appear only in Info;
+ strictly speaking, you are not required to enclose these parts between
+ @code{@@ifnottex} and @code{@@end ifnottex}, but it is simplest to do
+ so.  @xref{Conditionals, , Conditionally Visible Text}.)
+ 
+ @menu
+ * Top Node Example::
+ * Master Menu Parts::
+ @end menu
+ 
+ 
+ @node Top Node Example
+ @subsection Top Node Example
+ 
+ @cindex Top node example
+ 
+ Here is an example of a Top node.
+ 
+ @example
+ @group
+ @@ifnottex
+ @@node Top
+ @@top Sample Title
+ 
+ @@insertcopying
+ @@end ifnottex
+ @end group
+ 
+ Additional general information.
+ 
+ @group
+ @@menu
+ * First Chapter::
+ * Second Chapter::
+ @dots{}
+ * Index::
+ @end group
+ @@end menu
+ @end example
+ 
+ 
+ @node Master Menu Parts
+ @subsection Parts of a Master Menu
+ @cindex Master menu
+ @cindex Menu, master
+ @cindex Parts of a master menu
+ 
+ A @dfn{master menu} is a detailed main menu listing all the nodes in a
+ file.
+ 
+ A master menu is enclosed in @code{@@menu} and @code{@@end menu}
+ commands and does not appear in the printed document.
+ 
+ Generally, a master menu is divided into parts.
+ 
+ @itemize @bullet
+ @item
+ The first part contains the major nodes in the Texinfo file: the nodes
+ for the chapters, chapter-like sections, and the appendices.
+ 
+ @item
+ The second part contains nodes for the indices.
+ 
+ @item
+ @findex detailmenu
+ @cindex Detailed menu
+ The third and subsequent parts contain a listing of the other, lower
+ level nodes, often ordered by chapter.  This way, rather than go
+ through an intermediary menu, an inquirer can go directly to a
+ particular node when searching for specific information.  These menu
+ items are not required; add them if you think they are a
+ convenience.  If you do use them, put @code{@@detailmenu} before the
+ first one, and @code{@@end detailmenu} after the last; otherwise,
+ @code{makeinfo} will get confused.
+ @end itemize
+ 
+ Each section in the menu can be introduced by a descriptive line.  So
+ long as the line does not begin with an asterisk, it will not be
+ treated as a menu entry.  (@xref{Writing a Menu}, for more
+ information.)
+ 
+ For example, the master menu for this manual looks like the following
+ (but has many more entries):
+ 
+ @example
+ @group
+ @@menu
+ * Copying Conditions::  Your rights.
+ * Overview::            Texinfo in brief.
+ @dots{}
+ @end group
+ @group
+ * Command and Variable Index::
+ * General Index::
+ @end group
+ 
+ @group
+ @@detailmenu
+ --- The Detailed Node Listing ---
+ 
+ Overview of Texinfo
+ 
+ * Reporting Bugs:: @dots{}
+ @dots{}
+ @end group
+ 
+ @group
+ Beginning a Texinfo File
+ 
+ * Sample Beginning:: @dots{}
+ @dots{}
+ @@end detailmenu
+ @@end menu
+ @end group
+ @end example
+ 
+ 
+ @node Global Document Commands
+ @section Global Document Commands
+ @cindex Global Document Commands
+ 
+ Besides the basic commands mentioned in the previous sections, here are
+ additional commands which affect the document as a whole.  They are
+ generally all given before the Top node, if they are given at all.
+ 
+ @menu
+ * documentdescription::         Document summary for the HTML output.
+ * setchapternewpage::           Start chapters on right-hand pages.
+ * paragraphindent::             Specify paragraph indentation.
+ * firstparagraphindent::        Suppress indentation of the first paragraph.
+ * exampleindent::               Specify environment indentation.
+ @end menu
+ 
+ 
+ @node documentdescription
+ @subsection @code{@@documentdescription}: Summary Text
+ @cindex Document description
+ @cindex Description of document
+ @cindex Summary of document
+ @cindex Abstract of document
+ @cindex <meta> HTML tag, and document description
+ @findex documentdescription
+ 
+ When producing HTML output for a document, @command{makeinfo} writes a
+ @samp{<meta>} element in the @samp{<head>} to give some idea of the
+ content of the document.  By default, this @dfn{description} is the title
+ of the document, taken from the @code{@@settitle} command
+ (@pxref{settitle}).  To change this, use the @code{@@documentdescription}
+ environment, as in:
+ 
+ @example
+ @@documentdescription
+ descriptive text.
+ @@end documentdescription
+ @end example
+ 
+ @noindent
+ This will produce the following output in the @samp{<head>} of the HTML:
+ 
+ @example
+ <meta name=description content="descriptive text.">
+ @end example
+ 
+ @code{@@documentdescription} must be specified before the first node of
+ the document.
+ 
+ 
+ @node setchapternewpage
+ @subsection @code{@@setchapternewpage}:
+ @cindex Starting chapters
+ @cindex Pages, starting odd
+ @findex setchapternewpage
+ 
+ In an officially bound book, text is usually printed on both sides of
+ the paper, chapters start on right-hand pages, and right-hand pages have
+ odd numbers.  But in short reports, text often is printed only on one
+ side of the paper.  Also in short reports, chapters sometimes do not
+ start on new pages, but are printed on the same page as the end of the
+ preceding chapter, after a small amount of vertical whitespace.
+ 
+ You can use the @code{@@setchapternewpage} command with various
+ arguments to specify how @TeX{} should start chapters and whether it
+ should format headers for printing on one or both sides of the paper
+ (single-sided or double-sided printing).
+ 
+ Write the @code{@@setchapternewpage} command at the beginning of a
+ line followed by its argument.
+ 
+ For example, you would write the following to cause each chapter to
+ start on a fresh odd-numbered page:
+ 
+ @example
+ @@setchapternewpage odd
+ @end example
+ 
+ You can specify one of three alternatives with the
+ @code{@@setchapternewpage} command:
+ 
+ @table @asis
+ 
+ @item @code{@@setchapternewpage off}
+ Cause @TeX{} to typeset a new chapter on the same page as the last
+ chapter, after skipping some vertical whitespace.  Also, cause @TeX{} to
+ format page headers for single-sided printing.
+ 
+ @item @code{@@setchapternewpage on}
+ Cause @TeX{} to start new chapters on new pages and to format page
+ headers for single-sided printing.  This is the form most often used for
+ short reports or personal printing. This is the default.
+ 
+ @item @code{@@setchapternewpage odd}
+ Cause @TeX{} to start new chapters on new, odd-numbered pages
+ (right-handed pages) and to typeset for double-sided printing.  This is
+ the form most often used for books and manuals.
+ @end table
+ 
+ Texinfo does not have an @code{@@setchapternewpage even} command,
+ because there is no printing tradition of starting chapters or books on
+ an even-numbered page.
+ 
+ If you don't like the default headers that @code{@@setchapternewpage}
+ sets, you can explicit control them with the @code{@@headings} command.
+ @xref{headings on off, , The @code{@@headings} Command}.
+ 
+ At the beginning of a manual or book, pages are not numbered---for
+ example, the title and copyright pages of a book are not numbered.  By
+ convention, table of contents and frontmatter pages are numbered with
+ roman numerals and not in sequence with the rest of the document.
+ 
+ Since an Info file does not have pages, the @code{@@setchapternewpage}
+ command has no effect on it.
+ 
+ We recommend not including any @code{@@setchapternewpage} command in
+ your manual sources at all, since the desired output is not intrinsic to
+ the document.  For a particular hard copy run, if you don't want the
+ default option (no blank pages, same headers on all pages) use the
+ @option{--texinfo} option to @command{texi2dvi} to specify the output
+ you want.
+ 
+ 
+ @node paragraphindent
+ @subsection @code{@@paragraphindent}: Paragraph Indenting
+ @cindex Indenting paragraphs, control of
+ @cindex Paragraph indentation control
+ @findex paragraphindent
+ 
+ The Texinfo processors may insert whitespace at the beginning of the
+ first line of each paragraph, thereby indenting that paragraph.  You can
+ use the @code{@@paragraphindent} command to specify this indentation.
+ Write an @code{@@paragraphindent} command at the beginning of a line
+ followed by either @samp{asis} or a number:
+ 
+ @example
+ @@paragraphindent @var{indent}
+ @end example
+ 
+ The indentation is according to the value of @var{indent}:
+ 
+ @table @asis
+ @item @code{asis}
+ Do not change the existing indentation (not implemented in @TeX{}).
+ 
+ @item @code{none}
+ @itemx 0
+ Omit all indentation.
+ 
+ @item @var{n}
+ Indent by @var{n} space characters in Info output, by @var{n} ems in
+ @TeX{}.
+ 
+ @end table
+ 
+ The default value of @var{indent} is 3.  @code{@@paragraphindent} is
+ ignored for HTML output.
+ 
+ It is best to write the @code{@@paragraphindent} command before the
+ end-of-header line at the beginning of a Texinfo file, so the region
+ formatting commands indent paragraphs as specified.  @xref{Start of
+ Header}.
+ 
+ A peculiarity of the @code{texinfo-format-buffer} and
+ @code{texinfo-format-region} commands is that they do not indent (nor
+ fill) paragraphs that contain @code{@@w} or @code{@@*} commands.
+ 
+ 
+ @node firstparagraphindent
+ @subsection @code{@@firstparagraphindent}: Indenting After Headings
+ @cindex First paragraph, suppressing indentation of
+ @cindex Suppressing first paragraph indentation
+ @cindex Preventing first paragraph indentation
+ @cindex Indenting, suppressing of first paragraph
+ @cindex Headings, indentation after
+ @findex firstparagraphindent
+ 
+ As you can see in the present manual, the first paragraph in any
+ section is not indented by default.  Typographically, indentation is a
+ paragraph separator, which means that it is unnecessary when a new
+ section begins.  This indentation is controlled with the
+ @code{@@firstparagraphindent} command:
+ 
+ @example
+ @@firstparagraphindent @var{word}
+ @end example
+ 
+ The first paragraph after a heading is indented according to the value
+ of @var{word}:
+ 
+ @table @asis
+ @item @code{none}
+ Prevents the first paragraph from being indented (default).
+ This option is ignored by @command{makeinfo} if
+ @code{@@paragraphindent asis} is in effect.
+ 
+ @item @code{insert}
+ Include normal paragraph indentation.  This respects the paragraph
+ indentation set by a @code{@@paragraphindent} command
+ (@pxref{paragraphindent}).
+ @end table
+ 
+ For HTML and XML output, the @code{@@firstparagraphindent} setting is
+ ignored.
+ 
+ It is best to write the @code{@@paragraphindent} command before the
+ end-of-header line at the beginning of a Texinfo file, so the region
+ formatting commands indent paragraphs as specified.  @xref{Start of
+ Header}.
+ 
+ 
+ @node exampleindent
+ @subsection @code{@@exampleindent}: Environment Indenting
+ @cindex Indenting environments
+ @cindex Environment indentation
+ @cindex Example indentation
+ @findex exampleindent
+ 
+ The Texinfo processors indent each line of @code{@@example} and similar
+ environments.  You can use the @code{@@exampleindent} command to specify
+ this indentation.  Write an @code{@@exampleindent} command at the
+ beginning of a line followed by either @samp{asis} or a number:
+ 
+ @example
+ @@exampleindent @var{indent}
+ @end example
+ 
+ @code{@@exampleindent} is ignored for HTML output.  Otherwise, the
+ indentation is according to the value of @var{indent}:
+ 
+ @table @asis
+ @item @code{asis}
+ Do not change the existing indentation (not implemented in @TeX{}).
+ 
+ @item 0
+ Omit all indentation.
+ 
+ @item @var{n}
+ Indent environments by @var{n} space characters in Info output, by
+ @var{n} ems in @TeX{}.
+ 
+ @end table
+ 
+ The default value of @var{indent} is 5 spaces in Info, and 0.4@dmn{in}
+ in @TeX{}, which is somewhat less.  (The reduction is to help @TeX{}
+ fit more characters onto physical lines.)
+ 
+ It is best to write the @code{@@exampleindent} command before the
+ end-of-header line at the beginning of a Texinfo file, so the region
+ formatting commands indent paragraphs as specified.  @xref{Start of
+ Header}.
+ 
+ 
+ @node Software Copying Permissions
+ @section Software Copying Permissions
+ @cindex Software copying permissions
+ @cindex Copying software
+ @cindex Distribution
+ @cindex License agreement
+ 
+ If the Texinfo file has a section containing the ``General Public
+ License'' and the distribution information and a warranty disclaimer for
+ the software that is documented, we recommend placing this right after
+ the `Top' node.  The General Public License is very important to Project
+ GNU software.  It ensures that you and others will continue to have a
+ right to use and share the software.
+ 
+ The copying and distribution information and the disclaimer are followed
+ by an introduction or else by the first chapter of the manual.
+ 
+ @cindex Introduction, as part of file
+ Although an introduction is not a required part of a Texinfo file, it
+ is very helpful.  Ideally, it should state clearly and concisely what
+ the file is about and who would be interested in reading it.  In
+ general, an introduction would follow the licensing and distribution
+ information, although sometimes people put it earlier in the document.
+ 
+ 
+ @node Ending a File
+ @chapter Ending a Texinfo File
+ @cindex Ending a Texinfo file
+ @cindex Texinfo file ending
+ @cindex File ending
+ @findex bye
+ 
+ The end of a Texinfo file should include commands to create indices,
+ and the @code{@@bye} command to mark the last line to be processed.
+ 
+ For example:
+ 
+ @example
+ @@node Index
+ @@unnumbered Index
+ 
+ @@printindex cp
+ 
+ @@bye
+ @end example
+ 
+ @menu
+ * Printing Indices & Menus::    How to print an index in hardcopy and
+                                  generate index menus in Info.
+ * File End::                    How to mark the end of a file.
+ @end menu
+ 
+ 
+ @node Printing Indices & Menus
+ @section Printing Indices and Menus
+ @cindex Printing an index
+ @cindex Indices, printing and menus
+ @cindex Generating menus with indices
+ @cindex Menus generated with indices
+ 
+ To print an index means to include it as part of a manual or Info file.
+ This does not happen automatically just because you use @code{@@cindex}
+ or other index-entry generating commands in the Texinfo file; those just
+ cause the raw data for the index to be accumulated.  To generate an
+ index, you must include the @code{@@printindex} command at the place in
+ the document where you want the index to appear.  Also, as part of the
+ process of creating a printed manual, you must run a program called
+ @code{texindex} (@pxref{Hardcopy}) to sort the raw data to produce a
+ sorted index file.  The sorted index file is what is actually used to
+ print the index.
+ 
+ Texinfo offers six separate types of predefined index, which suffice
+ in most cases.  @xref{Indices}, for information on this, as well
+ defining your own new indices, combining indices, and, most
+ importantly advice on writing the actual index entries.  This section
+ focuses on printing indices, which is done with the
+ @code{@@printindex} command.
+ 
+ @findex printindex
+ @code{@@printindex} takes one argument, a two-letter index
+ abbreviation.  It reads the corresponding sorted index file (for
+ printed output), and formats it appropriately into an index.
+ 
+ The @code{@@printindex} command does not generate a chapter heading
+ for the index, since different manuals have different needs.
+ Consequently, you should precede the @code{@@printindex} command with
+ a suitable section or chapter command (usually @code{@@appendix} or
+ @code{@@unnumbered}) to supply the chapter heading and put the index
+ into the table of contents.  Precede the chapter heading with an
+ @code{@@node} line as usual.
+ 
+ For example:
+ 
+ @smallexample
+ @group
+ @@node Variable Index
+ @@unnumbered Variable Index
+ 
+ @@printindex vr
+ @end group
+ 
+ @group
+ @@node Concept Index
+ @@unnumbered Concept Index
+ 
+ @@printindex cp
+ @end group
+ @end smallexample
+ 
+ If you have more than one index, we recommend placing the concept index last.
+ 
+ @itemize
+ @item
+ In printed output, @code{@@printindex} produces a traditional
+ two-column index, with dot leaders between the index terms and page
+ numbers.
+ 
+ @item
+ In Info output, @code{@@printindex} produces a special menu containing
+ the line number of the entry, relative to the start of the node.  Info
+ readers can use this to go to the exact line of an entry, not just the
+ containing node.  (Older Info readers will just go to the node.)
+ Here's an example:
+ 
+ @smallexample
+ * First index entry:   Top.   (line  7)
+ @end smallexample
+ 
+ @noindent The actual number of spaces is variable, to right-justify
+ the line number; it's been reduced here to make the line fit in the
+ printed manual.
+ 
+ @item
+ In plain text output, @code{@@printindex} produces the same menu, but
+ the line numbers are relative to the start of the file, since that's
+ more convenient for that format.
+ 
+ @item
+ In HTML and Docbook output, @code{@@printindex} produces links
+ to the index entries.
+ 
+ @item
+ In XML output, it simply records the index to be printed.
+ @end itemize
+ 
+ It's not possible to generate an index when writing to standard
+ output; @command{makeinfo} generates a warning in this case.
+ 
+ 
+ @node File End
+ @section @code{@@bye} File Ending
+ @findex bye
+ 
+ An @code{@@bye} command terminates Texinfo processing.  None of the
+ formatters read anything following @code{@@bye}.  The @code{@@bye}
+ command should be on a line by itself.
+ 
+ If you wish, you may follow the @code{@@bye} line with notes. These
+ notes will not be formatted and will not appear in either Info or a
+ printed manual; it is as if text after @code{@@bye} were within
+ @code{@@ignore} @dots{} @code{@@end ignore}.  Also, you may follow the
+ @code{@@bye} line with a local variables list for Emacs.
+ @xref{Compile-Command, , Using Local Variables and the Compile Command},
+ for more information.
+ 
+ 
+ @node Structuring
+ @chapter Chapter Structuring
+ @cindex Chapter structuring
+ @cindex Structuring of chapters
+ 
+ The @dfn{chapter structuring} commands divide a document into a hierarchy of
+ chapters, sections, subsections, and subsubsections.  These commands
+ generate large headings; they also provide information for the table
+ of contents of a printed manual (@pxref{Contents, , Generating a Table
+ of Contents}).@refill
+ 
+ The chapter structuring commands do not create an Info node structure,
+ so normally you should put an @code{@@node} command immediately before
+ each chapter structuring command (@pxref{Nodes}).  The only time you
+ are likely to use the chapter structuring commands without using the
+ node structuring commands is if you are writing a document that
+ contains no cross references and will never be transformed into Info
+ format.@refill
+ 
+ It is unlikely that you will ever write a Texinfo file that is
+ intended only as an Info file and not as a printable document.  If you
+ do, you might still use chapter structuring commands to create a
+ heading at the top of each node---but you don't need to.@refill
+ 
+ @menu
+ * Tree Structuring::            A manual is like an upside down tree @dots{}
+ * Structuring Command Types::   How to divide a manual into parts.
+ * makeinfo top::                The @code{@@top} command, part of the `Top' node.
+ * chapter::
+ * unnumbered & appendix::
+ * majorheading & chapheading::
+ * section::
+ * unnumberedsec appendixsec heading::
+ * subsection::
+ * unnumberedsubsec appendixsubsec subheading::
+ * subsubsection::               Commands for the lowest level sections.
+ * Raise/lower sections::        How to change commands' hierarchical level.
+ @end menu
+ 
+ 
+ @node Tree Structuring
+ @section Tree Structure of Sections
+ @cindex Tree structuring
+ 
+ A Texinfo file is usually structured like a book with chapters,
+ sections, subsections, and the like.  This structure can be visualized
+ as a tree (or rather as an upside-down tree) with the root at the top
+ and the levels corresponding to chapters, sections, subsection, and
+ subsubsections.@refill
+ 
+ Here is a diagram that shows a Texinfo file with three chapters,
+ each of which has two sections.@refill
+ 
+ @example
+ @group
+                          Top
+                           |
+         -------------------------------------
+        |                  |                  |
+     Chapter 1          Chapter 2          Chapter 3
+        |                  |                  |
+     --------           --------           --------
+    |        |         |        |         |        |
+ Section  Section   Section  Section   Section  Section
+   1.1      1.2       2.1      2.2       3.1      3.2
+ 
+ @end group
+ @end example
+ 
+ In a Texinfo file that has this structure, the beginning of Chapter 2
+ looks like this:@refill
+ 
+ @example
+ @group
+ @@node    Chapter 2,  Chapter 3, Chapter 1, top
+ @@chapter Chapter 2
+ @end group
+ @end example
+ 
+ The chapter structuring commands are described in the sections that
+ follow; the @code{@@node} and @code{@@menu} commands are described in
+ following chapters. (@xref{Nodes}, and see @ref{Menus}.)@refill
+ 
+ 
+ @node Structuring Command Types
+ @section Structuring Command Types
+ 
+ The chapter structuring commands fall into four groups or series, each
+ of which contains structuring commands corresponding to the
+ hierarchical levels of chapters, sections, subsections, and
+ subsubsections.@refill
+ 
+ The four groups are the @code{@@chapter} series, the
+ @code{@@unnumbered} series, the @code{@@appendix} series, and the
+ @code{@@heading} series.@refill
+ 
+ Each command produces titles that have a different appearance on the
+ printed page or Info file; only some of the commands produce
+ titles that are listed in the table of contents of a printed book or
+ manual.@refill
+ 
+ @itemize @bullet
+ @item
+ The @code{@@chapter} and @code{@@appendix} series of commands produce
+ numbered or lettered entries both in the body of a printed work and in
+ its table of contents.@refill
+ 
+ @item
+ The @code{@@unnumbered} series of commands produce unnumbered entries
+ both in the body of a printed work and in its table of contents.  The
+ @code{@@top} command, which has a special use, is a member of this
+ series (@pxref{makeinfo top, , @code{@@top}}).  An @code{@@unnumbered}
+ section should be associated with a node and be a normal part of the
+ document structure.
+ 
+ @item
+ The @code{@@heading} series of commands produce simple unnumbered
+ headings that do not appear in a table of contents, are not associated
+ with nodes, and cannot be cross-referenced.  The heading commands
+ never start a new page.
+ 
+ @item
+ The @code{@@majorheading} command is similar to @code{@@chapheading},
+ except that it generates a larger vertical whitespace before the
+ heading.
+ 
+ @item
+ When an @code{@@setchapternewpage} command says to do so, the
+ @code{@@chapter}, @code{@@unnumbered}, and @code{@@appendix} commands
+ start new pages in the printed manual; the @code{@@heading} commands
+ do not.@refill
+ @end itemize
+ 
+ Here are the four groups of chapter structuring commands:
+ 
+ @tex
+ {\globaldefs = 1 \smallfonts}
+ @end tex
+ 
+ @multitable @columnfractions .19 .30 .29 .22
+ @item                        @tab                              @tab                       @tab No new page
+ @item @i{Numbered}           @tab @i{Unnumbered}               @tab @i{Lettered/numbered} @tab @i{Unnumbered}
+ @item In contents            @tab In contents                  @tab In contents           @tab Not in contents
+ @item                        @tab @code{@@top}                 @tab                       @tab @code{@@majorheading}
+ @item @code{@@chapter}       @tab @code{@@unnumbered}          @tab @code{@@appendix} @tab @code{@@chapheading}
+ @item @code{@@section}       @tab @code{@@unnumberedsec}       @tab @code{@@appendixsec} @tab @code{@@heading}
+ @item @code{@@subsection}    @tab @code{@@unnumberedsubsec}    @tab @code{@@appendixsubsec} @tab @code{@@subheading}
+ @item @code{@@subsubsection} @tab @code{@@unnumberedsubsubsec} @tab @code{@@appendixsubsubsec} @tab @code{@@subsubheading}
+ @end multitable
+ @tex
+ {\globaldefs = 1 \textfonts}
+ @end tex
+ 
+ 
+ @node makeinfo top
+ @section @code{@@top}
+ 
+ The @code{@@top} command is a special sectioning command that you use
+ only after an @samp{@@node Top} line at the beginning of a Texinfo file.
+ The @code{@@top} command tells the @code{makeinfo} formatter which node
+ is the `Top' node, so it can use it as the root of the node tree if your
+ manual uses implicit node pointers.  It has the same typesetting effect as
+ @code{@@unnumbered} (@pxref{unnumbered & appendix, , @code{@@unnumbered}
+ and @code{@@appendix}}).  For detailed information, see @ref{makeinfo
+ top command, , The @code{@@top} Command}.
+ 
+ The @code{@@top} node and its menu (if any) is conventionally wrapped in
+ an @code{@@ifnottex} conditional so that it will appear only in Info and
+ HTML output, not @TeX{}.
+ 
+ 
+ @node chapter
+ @comment  node-name,  next,  previous,  up
+ @section @code{@@chapter}
+ @findex chapter
+ 
+ @code{@@chapter} identifies a chapter in the document.  Write the
+ command at the beginning of a line and follow it on the same line by
+ the title of the chapter.@refill
+ 
+ For example, this chapter in this manual is entitled ``Chapter
+ Structuring''; the @code{@@chapter} line looks like this:@refill
+ 
+ @example
+ @@chapter Chapter Structuring
+ @end example
+ 
+ In @TeX{}, the @code{@@chapter} command creates a chapter in the
+ document, specifying the chapter title.  The chapter is numbered
+ automatically.@refill
+ 
+ In Info, the @code{@@chapter} command causes the title to appear on a
+ line by itself, with a line of asterisks inserted underneath.  Thus,
+ in Info, the above example produces the following output:@refill
+ 
+ @example
+ Chapter Structuring
+ *******************
+ @end example
+ 
+ @findex centerchap
+ Texinfo also provides a command @code{@@centerchap}, which is analogous
+ to @code{@@unnumbered}, but centers its argument in the printed output.
+ This kind of stylistic choice is not usually offered by Texinfo.
+ @c but the Hacker's Dictionary wanted it ...
+ 
+ 
+ @node unnumbered & appendix
+ @section @code{@@unnumbered} and @code{@@appendix}
+ @findex unnumbered
+ @findex appendix
+ 
+ Use the @code{@@unnumbered} command to create a chapter that appears
+ in a printed manual without chapter numbers of any kind.  Use the
+ @code{@@appendix} command to create an appendix in a printed manual
+ that is labelled by letter (`A', `B', @dots{}) instead of by number.
+ 
+ Write an @code{@@appendix} or @code{@@unnumbered} command at the
+ beginning of a line and follow it on the same line by the title, as
+ you would if you were creating a chapter.
+ 
+ 
+ @node majorheading & chapheading
+ @section @code{@@majorheading}, @code{@@chapheading}
+ @findex majorheading
+ @findex chapheading
+ 
+ The @code{@@majorheading} and @code{@@chapheading} commands put
+ chapter-like headings in the body of a document.@refill
+ 
+ However, neither command causes @TeX{} to produce a numbered heading
+ or an entry in the table of contents; and neither command causes
+ @TeX{} to start a new page in a printed manual.@refill
+ 
+ In @TeX{}, an @code{@@majorheading} command generates a larger vertical
+ whitespace before the heading than an @code{@@chapheading} command but
+ is otherwise the same.
+ 
+ In Info,
+ the @code{@@majorheading} and
+ @code{@@chapheading} commands are equivalent to
+ @code{@@chapter}: the title is printed on a line by itself with a line
+ of asterisks underneath.  (@xref{chapter, , @code{@@chapter}}.)@refill
+ 
+ 
+ @node section
+ @section @code{@@section}
+ @findex section
+ 
+ A @code{@@section} command identifies a section within a chapter unit,
+ whether created with @code{@@chapter}, @code{@@unnumbered}, or
+ @code{@@appendix}, following the numbering scheme of the chapter-level
+ command.  Thus, within a @code{@@chapter} chapter numbered `1', the
+ section is numbered like `1.2'; within an @code{@@appendix}
+ ``chapter'' labeled `A', the section is numbered like `A.2'; within an
+ @code{@@unnumbered} chapter, the section gets no number.
+ 
+ For example, this section is headed with an @code{@@section} command
+ and looks like this in the Texinfo file:
+ 
+ @example
+ @@section @@code@{@@@@section@}
+ @end example
+ 
+ To create a section, write the @code{@@section} command at the
+ beginning of a line and follow it on the same line by the section
+ title.  The output is underlined with @samp{=} in Info.
+ 
+ Thus,
+ 
+ @example
+ @@section This is a section
+ @end example
+ 
+ @noindent
+ might produce the following in Info:
+ 
+ @example
+ @group
+ 5.7 This is a section
+ =====================
+ @end group
+ @end example
+ 
+ 
+ @node unnumberedsec appendixsec heading
+ @section @code{@@unnumberedsec}, @code{@@appendixsec}, @code{@@heading}
+ @findex unnumberedsec
+ @findex appendixsec
+ @findex heading
+ 
+ The @code{@@unnumberedsec}, @code{@@appendixsec}, and @code{@@heading}
+ commands are, respectively, the unnumbered, appendix-like, and
+ heading-like equivalents of the @code{@@section} command, as described
+ in the previous section.
+ 
+ @table @code
+ @item @@unnumberedsec
+ The @code{@@unnumberedsec} command may be used within an
+ unnumbered chapter or within a regular chapter or appendix to
+ provide an unnumbered section.@refill
+ 
+ @item @@appendixsec
+ @itemx @@appendixsection
+ @code{@@appendixsection} is a longer spelling of the
+ @code{@@appendixsec} command; the two are synonymous.@refill
+ @findex appendixsection
+ 
+ Conventionally, the @code{@@appendixsec} or @code{@@appendixsection}
+ command is used only within appendices.@refill
+ 
+ @item @@heading
+ You may use the @code{@@heading} command anywhere you wish for a
+ section-style heading that will not appear in the table of contents.@refill
+ @end table
+ 
+ @code{@@unnumberedsec} and @code{@@appendixsec} do not need to be used
+ in ordinary circumstances, because @code{@@section} may also be used
+ within @code{@@unnumbered} and @code{@@appendix} chapters; again, see
+ the previous section.
+ 
+ 
+ @node subsection
+ @section The @code{@@subsection} Command
+ @findex subsection
+ 
+ Subsections are to sections as sections are to chapters.
+ (@xref{section, , @code{@@section}}.)  In Info, subsection titles are
+ underlined with @samp{-}.  For example,
+ 
+ @example
+ @@subsection This is a subsection
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ @group
+ 1.2.3 This is a subsection
+ --------------------------
+ @end group
+ @end example
+ 
+ In a printed manual, subsections are listed in the table of contents
+ and are numbered three levels deep.@refill
+ 
+ 
+ @node unnumberedsubsec appendixsubsec subheading
+ @section The @code{@@subsection}-like Commands
+ @cindex Subsection-like commands
+ @findex unnumberedsubsec
+ @findex appendixsubsec
+ @findex subheading
+ 
+ The @code{@@unnumberedsubsec}, @code{@@appendixsubsec}, and
+ @code{@@subheading} commands are, respectively, the unnumbered,
+ appendix-like, and heading-like equivalents of the @code{@@subsection}
+ command.  (@xref{subsection, , @code{@@subsection}}.)
+ 
+ In Info, the @code{@@subsection}-like commands generate a title
+ underlined with hyphens.  In a printed manual, an @code{@@subheading}
+ command produces a heading like that of a subsection except that it is
+ not numbered and does not appear in the table of contents.  Similarly,
+ an @code{@@unnumberedsubsec} command produces an unnumbered heading like
+ that of a subsection and an @code{@@appendixsubsec} command produces a
+ subsection-like heading labelled with a letter and numbers; both of
+ these commands produce headings that appear in the table of
+ contents.
+ 
+ @code{@@unnumberedsubsec} and @code{@@appendixsubsec} do not need to
+ be used in ordinary circumstances, because @code{@@subsection} may
+ also be used within sections of @code{@@unnumbered} and
+ @code{@@appendix} chapters (@pxref{section,,@code{section}}).
+ 
+ 
+ @node subsubsection
+ @section The `subsub' Commands
+ @cindex Subsub commands
+ @findex subsubsection
+ @findex unnumberedsubsubsec
+ @findex appendixsubsubsec
+ @findex subsubheading
+ 
+ The fourth and lowest level sectioning commands in Texinfo are the
+ `subsub' commands.  They are:@refill
+ 
+ @table @code
+ @item @@subsubsection
+ Subsubsections are to subsections as subsections are to sections.
+ (@xref{subsection, , @code{@@subsection}}.)  In a printed manual,
+ subsubsection titles appear in the table of contents and are numbered
+ four levels deep.@refill
+ 
+ @item @@unnumberedsubsubsec
+ Unnumbered subsubsection titles appear in the table of contents of a
+ printed manual, but lack numbers.  Otherwise, unnumbered
+ subsubsections are the same as subsubsections.  In Info, unnumbered
+ subsubsections look exactly like ordinary subsubsections.@refill
+ 
+ @item @@appendixsubsubsec
+ Conventionally, appendix commands are used only for appendices and are
+ lettered and numbered appropriately in a printed manual.  They also
+ appear in the table of contents.  In Info, appendix subsubsections look
+ exactly like ordinary subsubsections.@refill
+ 
+ @item @@subsubheading
+ The @code{@@subsubheading} command may be used anywhere that you need
+ a small heading that will not appear in the table of contents.  In
+ Info, subsubheadings look exactly like ordinary subsubsection
+ headings.@refill
+ @end table
+ 
+ @code{@@unnumberedsubsubsec} and @code{@@appendixsubsubsec} do not
+ need to be used in ordinary circumstances, because
+ @code{@@subsubsection} may also be used within subsections of
+ @code{@@unnumbered} and @code{@@appendix} chapters
+ (@pxref{section,,@code{section}}).
+ 
+ 
+ In Info,  `subsub' titles are underlined with periods.
+ For example,@refill
+ 
+ @example
+ @@subsubsection This is a subsubsection
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ @group
+ 1.2.3.4 This is a subsubsection
+ ...............................
+ @end group
+ @end example
+ 
+ 
+ @node Raise/lower sections
+ @section @code{@@raisesections} and @code{@@lowersections}
+ @findex raisesections
+ @findex lowersections
+ @cindex Raising and lowering sections
+ @cindex Lowering and raising sections
+ @cindex Sections, raising and lowering
+ 
+ The @code{@@raisesections} and @code{@@lowersections} commands
+ implicitly raise and lower the hierarchical level of following
+ chapters, sections and the other sectioning commands.
+ 
+ That is, the @code{@@raisesections} command changes sections to
+ chapters, subsections to sections, and so on.  Conversely, the
+ @code{@@lowersections} command changes chapters to sections, sections
+ to subsections, and so on.  Thus, an @code{@@lowersections} command
+ cancels an @code{@@raisesections} command, and vice versa.
+ 
+ @cindex Include files, and section levels
+ You can use @code{@@lowersections} to include text written as an outer
+ or standalone Texinfo file in another Texinfo file as an inner,
+ included file.  Typical usage looks like this:
+ 
+ @example
+ @@lowersections
+ @@include somefile.texi
+ @@raisesections
+ @end example
+ 
+ @noindent (Without the @code{@@raisesections}, all the subsequent
+ sections in the document would be lowered.)
+ 
+ If the included file being lowered has a @code{@@top} node, you'll
+ need to conditionalize its inclusion with a flag (@pxref{set value}).
+ 
+ Another difficulty can arise with documents that use the (recommended)
+ feature of @command{makeinfo} for implicitly determining node
+ pointers.  Since @command{makeinfo} must assume a hierarchically
+ organized document to determine the pointers, you cannot just
+ arbitrarily sprinkle @code{@@raisesections} and @code{@@lowersections}
+ commands in the document.  The final result has to have menus that
+ take the raising and lowering into account.  Therefore, as a practical
+ matter, you generally only want to raise or lower large chunks,
+ usually in external files as shown above.
+ 
+ Repeated use of the commands continue to raise or lower the
+ hierarchical level a step at a time.  An attempt to raise above
+ `chapter' reproduces chapter commands; an attempt to lower below
+ `subsubsection' reproduces subsubsection commands.  Also, lowered
+ subsubsections and raised chapters will not work with
+ @command{makeinfo}'s feature of implicitly determining node pointers,
+ since the menu structure won't be correct.
+ 
+ Write each @code{@@raisesections} and @code{@@lowersections} command
+ on a line of its own.
+ 
+ 
+ @node Nodes
+ @chapter Nodes
+ 
+ @dfn{Nodes} are the primary segments of a Texinfo file.  They do not
+ in and of themselves impose a hierarchical or any other kind of
+ structure on a file.  Nodes contain @dfn{node pointers} that name
+ other nodes, and can contain @dfn{menus} which are lists of nodes.  In
+ Info, the movement commands can carry you to a pointed-to node or to a
+ node listed in a menu.
+ 
+ Node pointers and menus provide structure for Info files just as
+ chapters, sections, subsections, and the like, provide structure for
+ printed books.
+ 
+ Because node names are used in cross-references, it is not desirable
+ to casually change them.  Such name changes invalidate references from
+ other manuals, from mail archives, and so on.
+ 
+ @menu
+ * Two Paths::                   Different commands to structure
+                                  Info output and printed output.
+ * Node Menu Illustration::      A diagram, and sample nodes and menus.
+ * node::                        Creating nodes, in detail.
+ * makeinfo Pointer Creation::   Letting makeinfo determine node pointers.
+ * anchor::                      Defining arbitrary cross-reference targets.
+ @end menu
+ 
+ 
+ @node Two Paths
+ @section Two Paths
+ 
+ The node and menu commands and the chapter structuring commands are
+ technically independent of each other:
+ 
+ @itemize @bullet
+ @item
+ In Info, node and menu commands provide structure.  The chapter
+ structuring commands generate headings with different kinds of
+ underlining---asterisks for chapters, hyphens for sections, and so on;
+ they do nothing else.@refill
+ 
+ @item
+ In @TeX{}, the chapter structuring commands generate chapter and section
+ numbers and tables of contents.  The node and menu commands provide
+ information for cross references; they do nothing else.@refill
+ @end itemize
+ 
+ You can use node pointers and menus to structure an Info file any way
+ you want; and you can write a Texinfo file so that its Info output has a
+ different structure than its printed output.  However, virtually all
+ Texinfo files are written such that the structure for the Info output
+ corresponds to the structure for the printed output.  It is neither
+ convenient nor understandable to the reader to do otherwise.@refill
+ 
+ Generally, printed output is structured in a tree-like hierarchy in
+ which the chapters are the major limbs from which the sections branch
+ out.  Similarly, node pointers and menus are organized to create a
+ matching structure in the Info output.@refill
+ 
+ 
+ @node Node Menu Illustration
+ @section Node and Menu Illustration
+ 
+ Here is a copy of the diagram shown earlier that illustrates a Texinfo
+ file with three chapters, each of which contains two sections.@refill
+ 
+ The ``root'' is at the top of the diagram and the ``leaves'' are at the
+ bottom.  This is how such a diagram is drawn conventionally; it
+ illustrates an upside-down tree.  For this reason, the root node is
+ called the `Top' node, and `Up' node pointers carry you closer to the
+ root.@refill
+ 
+ @example
+ @group
+                          Top
+                           |
+         -------------------------------------
+        |                  |                  |
+     Chapter 1          Chapter 2          Chapter 3
+        |                  |                  |
+     --------           --------           --------
+    |        |         |        |         |        |
+ Section  Section   Section  Section   Section  Section
+   1.1      1.2       2.1      2.2       3.1      3.2
+ @end group
+ @end example
+ 
+ The fully-written command to start Chapter 2 would be this:
+ 
+ @example
+ @group
+ @@node     Chapter 2,  Chapter 3, Chapter 1, Top
+ @@comment  node-name,  next,      previous,  up
+ @end group
+ @end example
+ 
+ @noindent
+ This @code{@@node} line says that the name of this node is ``Chapter
+ 2'', the name of the `Next' node is ``Chapter 3'', the name of the
+ `Previous' node is ``Chapter 1'', and the name of the `Up' node is
+ ``Top''.  You can omit writing out these node names if your document is
+ hierarchically organized (@pxref{makeinfo Pointer Creation}), but the
+ pointer relationships still obtain.
+ 
+ @quotation Note
+ @strong{Please Note:} `Next' refers to the next node at the same
+ hierarchical level in the manual, not necessarily to the next node
+ within the Texinfo file.  In the Texinfo file, the subsequent node may
+ be at a lower level---a section-level node most often follows a
+ chapter-level node, for example.  `Next' and `Previous' refer to nodes
+ at the @emph{same} hierarchical level.  (The `Top' node contains the
+ exception to this rule.  Since the `Top' node is the only node at that
+ level, `Next' refers to the first following node, which is almost always
+ a chapter or chapter-level node.)@refill
+ @end quotation
+ 
+ To go to Sections 2.1 and 2.2 using Info, you need a menu inside Chapter
+ 2.  (@xref{Menus}.)  You would write the menu just
+ before the beginning of Section 2.1, like this:@refill
+ 
+ @example
+ @group
+    @@menu
+    * Sect. 2.1::    Description of this section.
+    * Sect. 2.2::
+    @@end menu
+ @end group
+ @end example
+ 
+ Write the node for Sect. 2.1 like this:@refill
+ 
+ @example
+ @group
+    @@node     Sect. 2.1, Sect. 2.2, Chapter 2, Chapter 2
+    @@comment  node-name, next,      previous,  up
+ @end group
+ @end example
+ 
+ In Info format, the `Next' and `Previous' pointers of a node usually
+ lead to other nodes at the same level---from chapter to chapter or from
+ section to section (sometimes, as shown, the `Previous' pointer points
+ up); an `Up' pointer usually leads to a node at the level above (closer
+ to the `Top' node); and a `Menu' leads to nodes at a level below (closer
+ to `leaves').  (A cross reference can point to a node at any level;
+ see @ref{Cross References}.)@refill
+ 
+ Usually, an @code{@@node} command and a chapter structuring command are
+ used in sequence, along with indexing commands.  (You may follow the
+ @code{@@node} line with a comment line that reminds you which pointer is
+ which.)@refill
+ 
+ Here is the beginning of the chapter in this manual called ``Ending a
+ Texinfo File''.  This shows an @code{@@node} line followed by a comment
+ line, an @code{@@chapter} line, and then by indexing lines.@refill
+ 
+ @example
+ @group
+ @@node    Ending a File, Structuring, Beginning a File, Top
+ @@comment node-name,     next,        previous,         up
+ @@chapter Ending a Texinfo File
+ @@cindex Ending a Texinfo file
+ @@cindex Texinfo file ending
+ @@cindex File ending
+ @end group
+ @end example
+ 
+ 
+ @node node
+ @section The @code{@@node} Command
+ 
+ @cindex Node, defined
+ @findex node
+ 
+ A @dfn{node} is a segment of text that begins at an @code{@@node}
+ command and continues until the next @code{@@node} command.  The
+ definition of node is different from that for chapter or section.  A
+ chapter may contain sections and a section may contain subsections;
+ but a node cannot contain subnodes; the text of a node continues only
+ until the next @code{@@node} command in the file.  A node usually
+ contains only one chapter structuring command, the one that follows
+ the @code{@@node} line.  On the other hand, in printed output nodes
+ are used only for cross references, so a chapter or section may
+ contain any number of nodes.  Indeed, a chapter usually contains
+ several nodes, one for each section, subsection, and
+ subsubsection.
+ 
+ To specify a node, write an @code{@@node} command at the beginning of
+ a line, and follow it with up to four arguments, separated by commas,
+ on the rest of the same line.  The first argument is required; it is
+ the name of this node (for details of node names, @pxref{Node Line
+ Requirements}).  The subsequent arguments are the names of the `Next',
+ `Previous', and `Up' pointers, in that order, and may be omitted if
+ your Texinfo document is hierarchically organized (@pxref{makeinfo
+ Pointer Creation}).
+ 
+ @opindex accesskey@r{, in HTML output}
+ Whether the node pointers are specified implicitly or explicitly, the
+ HTML output from @command{makeinfo} for each node includes links to
+ the `Next', `Previous', and `Up' nodes.  The HTML also uses the
+ @code{accesskey} attribute with the values @samp{n}, @samp{p}, and
+ @samp{u} respectively.  This allows people using web browsers to
+ follow the nagivation using (typically) @kbd{M-@var{letter}}, e.g.,
+ @kbd{M-n} for the `Next' node, from anywhere within the node.
+ 
+ You may insert spaces before each name on the @code{@@node} line if
+ you wish; the spaces are ignored.  You must write the name of the node
+ and (if present) the names of the `Next', `Previous', and `Up'
+ pointers all on the same line.  Otherwise, the formatters fail.
+ (@inforef{Top, info, info}, for more information about nodes in Info.)
+ 
+ Usually, you write one of the chapter-structuring command lines
+ immediately after an @code{@@node} line---for example, an
+ @code{@@section} or @code{@@subsection} line.  (@xref{Structuring
+ Command Types}.)
+ 
+ @TeX{} uses @code{@@node} lines to identify the names to use for cross
+ references.  For this reason, you must write @code{@@node} lines in a
+ Texinfo file that you intend to format for printing, even if you do not
+ intend to format it for Info.  (Cross references, such as the one at the
+ end of this sentence, are made with @code{@@xref} and related commands;
+ see @ref{Cross References}.)
+ 
+ @menu
+ * Node Names::                  How to choose node and pointer names.
+ * Writing a Node::              How to write an @code{@@node} line.
+ * Node Line Tips::              Keep names short.
+ * Node Line Requirements::      Keep names unique, without @@-commands.
+ * First Node::                  How to write a `Top' node.
+ * makeinfo top command::        How to use the @code{@@top} command.
+ @end menu
+ 
+ 
+ @node Node Names
+ @subsection Choosing Node and Pointer Names
+ 
+ @cindex Node names, choosing
+ The name of a node identifies the node (for details of node names,
+ @pxref{Node Line Requirements}).  The pointers enable you to reach
+ other nodes and consist simply of the names of those nodes.
+ 
+ Normally, a node's `Up' pointer contains the name of the node whose
+ menu mentions that node.  The node's `Next' pointer contains the name
+ of the node that follows the present node in that menu and its
+ `Previous' pointer contains the name of the node that precedes it in
+ that menu.  When a node's `Previous' node is the same as its `Up'
+ node, both node pointers name the same node.
+ 
+ Usually, the first node of a Texinfo file is the `Top' node, and its
+ `Up' and `Previous' pointers point to the @file{dir} file, which
+ contains the main menu for all of Info.
+ 
+ The `Top' node itself contains the main or master menu for the manual.
+ Also, it is helpful to include a brief description of the manual in the
+ `Top' node.  @xref{First Node}, for information on how to write the
+ first node of a Texinfo file.
+ 
+ Even when you explicitly specify all pointers, that does not mean you
+ can write the nodes in the Texinfo source file in an arbitrary order!
+ Because @TeX{} processes the file sequentially, irrespective of node
+ pointers, you must write the nodes in the order you wish them to appear
+ in the output.
+ 
+ 
+ @node Writing a Node
+ @subsection How to Write an @code{@@node} Line
+ @cindex Writing an @code{@@node} line
+ @cindex @code{@@node} line writing
+ @cindex Node line writing
+ 
+ The easiest way to write an @code{@@node} line is to write @code{@@node}
+ at the beginning of a line and then the name of the node, like
+ this:
+ 
+ @example
+ @@node @var{node-name}
+ @end example
+ 
+ If you are using GNU Emacs, you can use the update node commands
+ provided by Texinfo mode to insert the names of the pointers; or you
+ can leave the pointers out of the Texinfo file and let @code{makeinfo}
+ insert node pointers into the Info file it creates.  (@xref{Texinfo
+ Mode}, and @ref{makeinfo Pointer Creation}.)
+ 
+ Alternatively, you can insert the `Next', `Previous', and `Up'
+ pointers yourself.  If you do this, you may find it helpful to use the
+ Texinfo mode keyboard command @kbd{C-c C-c n}.  This command inserts
+ @samp{@@node} and a comment line listing the names of the pointers in
+ their proper order.  The comment line helps you keep track of which
+ arguments are for which pointers.  This comment line is especially useful
+ if you are not familiar with Texinfo.
+ 
+ The template for a fully-written-out node line with `Next', `Previous',
+ and `Up' pointers looks like this:
+ 
+ @example
+ @@node @var{node-name}, @var{next}, @var{previous}, @var{up}
+ @end example
+ 
+ The @var{node-name} argument must be present, but the others are
+ optional.  If you wish to specify some but not others, just insert
+ commas as needed, as in: @samp{@@node mynode,,,uppernode}.  However,
+ we recommend leaving off all the pointers and letting @code{makeinfo}
+ determine them, as described above.
+ 
+ If you wish, you can ignore @code{@@node} lines altogether in your first
+ draft and then use the @code{texinfo-insert-node-lines} command to
+ create @code{@@node} lines for you.  However, we do not recommend this
+ practice.  It is better to name the node itself at the same time that
+ you write a segment so you can easily make cross references.  A large
+ number of cross references are an especially important feature of a good
+ Info file.
+ 
+ After you have inserted an @code{@@node} line, you should immediately
+ write an @@-command for the chapter or section and insert its name.
+ Next (and this is important!), put in several index entries.  Usually,
+ you will find at least two and often as many as four or five ways of
+ referring to the node in the index.  Use them all.  This will make it
+ much easier for people to find the node.
+ 
+ 
+ @node Node Line Tips
+ @subsection @code{@@node} Line Tips
+ 
+ Here are three suggestions:
+ 
+ @itemize @bullet
+ @item
+ Try to pick node names that are informative but short.@refill
+ 
+ In the Info file, the file name, node name, and pointer names are all
+ inserted on one line, which may run into the right edge of the window.
+ (This does not cause a problem with Info, but is ugly.)@refill
+ 
+ @item
+ Try to pick node names that differ from each other near the beginnings
+ of their names.  This way, it is easy to use automatic name completion in
+ Info.@refill
+ 
+ @item
+ By convention, node names are capitalized just as they would be for
+ section or chapter titles---initial and significant words are
+ capitalized; others are not.@refill
+ @end itemize
+ 
+ 
+ @node Node Line Requirements
+ @subsection @code{@@node} Line Requirements
+ 
+ @cindex Node line requirements
+ @cindex Restrictions on node names
+ Here are several requirements for @code{@@node} lines:
+ 
+ @itemize @bullet
+ @cindex Unique nodename requirement
+ @cindex Node name must be unique
+ @item
+ All the node names for a single Info file must be unique.
+ 
+ Duplicates confuse the Info movement commands.  This means, for
+ example, that if you end every chapter with a summary, you must name
+ each summary node differently.  You cannot just call each one
+ ``Summary''.  You may, however, duplicate the titles of chapters, sections,
+ and the like.  Thus you can end each chapter in a book with a section
+ called ``Summary'', so long as the node names for those sections are all
+ different.
+ 
+ @item
+ A pointer name must be the name of a node.
+ 
+ The node to which a pointer points may come before or after the
+ node containing the pointer.
+ 
+ @cindex @@-commands in nodename
+ @cindex Node name, should not contain @@-commands
+ @item
+ @@-commands in node names are not allowed.  This includes punctuation
+ characters that are escaped with a @samp{@@}, such as @code{@@} and
+ @code{@{}, and accent commands such as @samp{@@'}.  (For a few cases
+ when this is useful, Texinfo has limited support for using
+ @w{@@-commands} in node names; see @ref{Pointer Validation}.)  Perhaps
+ this limitation will be removed some day.
+ 
+ @item
+ @cindex Colon in nodename
+ @cindex Comma in nodename
+ @cindex Parentheses in nodename
+ @cindex Period in nodename
+ @cindex Characters, invalid in node name
+ @cindex Invalid characters in node names
+ @cindex Node names, invalid characters in
+ Unfortunately, you cannot use periods, commas, colons or parentheses
+ within a node name; these confuse the Texinfo processors.  Perhaps
+ this limitation will be removed some day, too.
+ 
+ @need 700
+ For example, the following is a section title in this manual:
+ 
+ @smallexample
+ @@code@{@@@@unnumberedsec@}, @@code@{@@@@appendixsec@}, @@code@{@@@@heading@}
+ @end smallexample
+ 
+ @noindent
+ But the corresponding node name lacks the commas and the @@'s:
+ 
+ @smallexample
+ unnumberedsec appendixsec heading
+ @end smallexample
+ 
+ @cindex Case in node name
+ @item
+ Case is significant in node names.
+ 
+ @cindex White space in node name
+ @cindex Spaces in node name
+ Spaces before and after names on the @samp{@@node} line are ignored,
+ but spaces ``inside'' a name are significant.  For example:
+ 
+ @example
+ @@node  foo bar,
+ @@node foo bar ,
+ @@node  foo bar ,
+ @end example
+ 
+ @noindent all define the same node, @samp{foo bar}.  References to the
+ node should all use that name, without the leading or trailing spaces,
+ but with the internal spaces.
+ @end itemize
+ 
+ 
+ @node First Node
+ @subsection The First Node
+ @cindex Top node is first
+ @cindex First node
+ 
+ The first node of a Texinfo file is the @dfn{Top} node, except in an
+ included file (@pxref{Include Files}).  The Top node should contain a
+ short summary, copying permissions, and a master menu.  @xref{The Top
+ Node}, for more information on the Top node contents and examples.
+ 
+ Here is a description of the node pointers to be used in the Top node:
+ 
+ @itemize @bullet
+ 
+ @item
+ @cindex Up node of Top node
+ @cindex (dir) as Up node of Top node
+ The Top node (which must be named @samp{top} or @samp{Top}) should have
+ as its `Up' node the name of a node in another file, where there is a
+ menu that leads to this file.  Specify the file name in parentheses.
+ 
+ Usually, all Info files are installed in the same Info directory tree;
+ in this case, use @samp{(dir)} as the parent of the Top node; this is
+ short for @samp{(dir)top}, and specifies the Top node in the @file{dir}
+ file, which contains the main menu for the Info system as a whole.
+ 
+ @item
+ @cindex Prev node of Top node
+ The `Prev' node of the Top node should also be your @samp{(dir)} file.
+ 
+ @item
+ @cindex Next node of Top node
+ The `Next' node of the Top node should be the first chapter in your
+ document.
+ 
+ @end itemize
+ 
+ @xref{Installing an Info File}, for more information about installing
+ an Info file in the @file{info} directory.
+ 
+ It is usually best to leave the pointers off entirely and let the
+ tools implicitly define them, with this simple result:
+ 
+ @example
+ @@node Top
+ @end example
+ 
+ 
+ @node makeinfo top command
+ @subsection The @code{@@top} Sectioning Command
+ @findex top @r{(@@-command)}
+ 
+ A special sectioning command, @code{@@top} should be used with the
+ @code{@@node Top} line.  The @code{@@top} sectioning command tells
+ @code{makeinfo} that it marks the `Top' node in the file.  It provides
+ the information that @code{makeinfo} needs to insert node pointers
+ automatically.  Write the @code{@@top} command at the beginning of the
+ line immediately following the @code{@@node Top} line.  Write the title
+ on the remaining part of the same line as the @code{@@top} command.
+ 
+ In Info, the @code{@@top} sectioning command causes the title to appear
+ on a line by itself, with a line of asterisks inserted underneath, as
+ other sectioning commands do.
+ 
+ In @TeX{} and @code{texinfo-format-buffer}, the @code{@@top}
+ sectioning command is merely a synonym for @code{@@unnumbered}.
+ Neither of these formatters require an @code{@@top} command, and do
+ nothing special with it.  You can use @code{@@chapter} or
+ @code{@@unnumbered} after the @code{@@node Top} line when you use
+ these formatters.  Also, you can use @code{@@chapter} or
+ @code{@@unnumbered} when you use the Texinfo updating commands to
+ create or update pointers and menus.
+ 
+ Thus, in practice, a Top node starts like this:
+ 
+ @example
+ @@node Top
+ @@top Your Manual Title
+ @end example
+ 
+ 
+ @node makeinfo Pointer Creation
+ @section Creating Pointers with @code{makeinfo}
+ @cindex Creating pointers with @code{makeinfo}
+ @cindex Pointer creation with @code{makeinfo}
+ @cindex Automatic pointer creation with @code{makeinfo}
+ 
+ The @code{makeinfo} program has a feature for automatically
+ determining node pointers for a hierarchically organized document.  We
+ highly recommend using it.
+ 
+ When you take advantage of this feature, you do not need to write the
+ `Next', `Previous', and `Up' pointers after the name of a node.
+ However, you must write a sectioning command, such as @code{@@chapter}
+ or @code{@@section}, on the line immediately following each truncated
+ @code{@@node} line (except that comment lines may intervene).
+ 
+ In addition, you must follow the `Top' @code{@@node} line with a line
+ beginning with @code{@@top} to mark the `Top' node in the
+ file.  @xref{makeinfo top, , @code{@@top}}.
+ 
+ Finally, you must write the name of each node (except for the `Top'
+ node) in a menu that is one or more hierarchical levels above the
+ node's hierarchical level.
+ 
+ @cindex Detail menu
+ @findex detailmenu
+ If you use a detailed menu in your master menu (@pxref{Master Menu
+ Parts}), mark it with the @code{@@detailmenu @@dots@{@} @@end
+ detailmenu} environment, or @command{makeinfo} will get confused,
+ typically about the last and/or first node in the document.
+ 
+ This implicit node pointer creation feature in @code{makeinfo}
+ relieves you from the need to update menus and pointers manually or
+ with Texinfo mode commands.  (@xref{Updating Nodes and Menus}.)
+ 
+ In most cases, you will want to take advantage of this feature and not
+ redundantly specify node pointers.  However, Texinfo documents are not
+ required to be organized hierarchically or in fact to contain
+ sectioning commands at all (for example, if you never intend the
+ document to be printed).  The special procedure for handling the short
+ text before a menu (@pxref{Menus}) also disables this
+ feature, for that group of nodes.  In those cases, you will need to
+ explicitly specify all pointers.
+ 
+ @node anchor
+ @section @code{@@anchor}: Defining Arbitrary Cross-reference Targets
+ 
+ @findex anchor
+ @cindex Anchors
+ @cindex Cross-reference targets, arbitrary
+ @cindex Targets for cross-references, arbitrary
+ 
+ An @dfn{anchor} is a position in your document, labeled so that
+ cross-references can refer to it, just as they can to nodes.  You create
+ an anchor with the @code{@@anchor} command, and give the label as a
+ normal brace-delimited argument.  For example:
+ 
+ @example
+ This marks the @@anchor@{x-spot@}spot.
+ @dots{}
+ @@xref@{x-spot,,the spot@}.
+ @end example
+ 
+ @noindent produces:
+ 
+ @example
+ This marks the spot.
+ @dots{}
+ See [the spot], page 1.
+ @end example
+ 
+ As you can see, the @code{@@anchor} command itself produces no output.
+ This example defines an anchor `x-spot' just before the word `spot'.
+ You can refer to it later with an @code{@@xref} or other cross-reference
+ command, as shown.  @xref{Cross References}, for details on the
+ cross-reference commands.
+ 
+ It is best to put @code{@@anchor} commands just before the position you
+ wish to refer to; that way, the reader's eye is led on to the correct
+ text when they jump to the anchor.  You can put the @code{@@anchor}
+ command on a line by itself if that helps readability of the source.
+ Whitespace (including newlines) is ignored after @code{@@anchor}.
+ 
+ Anchor names and node names may not conflict.  Anchors and nodes are
+ given similar treatment in some ways; for example, the @code{goto-node}
+ command in standalone Info takes either an anchor name or a node name as
+ an argument.  (@xref{goto-node,,,info-stnd,GNU Info}.)
+ 
+ Also like node names, anchor names cannot include some characters
+ (@pxref{Node Line Requirements}).
+ 
+ 
+ @node Menus
+ @chapter Menus
+ @cindex Menus
+ @findex menu
+ 
+ @dfn{Menus} contain pointers to subordinate nodes.  In online output,
+ you use menus to go to such nodes.  Menus have no effect in printed
+ manuals and do not appear in them.
+ 
+ A node with a menu should not contain much text.  If you find yourself
+ writing a lot of text before a menu, we generally recommend moving
+ most of the text into a new subnode---all but a paragraph or two.
+ Otherwise, a reader with a terminal that displays only a few lines may
+ miss the menu and its associated text.  As a practical matter, it is
+ best to locate a menu within 20 or so lines of the beginning of the
+ node.
+ 
+ @menu
+ * Menu Location::               Menus go at the ends of short nodes.
+ * Writing a Menu::              What is a menu?
+ * Menu Parts::                  A menu entry has three parts.
+ * Less Cluttered Menu Entry::   Two part menu entry.
+ * Menu Example::                Two and three part menu entries.
+ * Other Info Files::            How to refer to a different Info file.
+ @end menu
+ 
+ 
+ @node Menu Location
+ @section Menu Location
+ @cindex Menu location
+ @cindex Location of menus
+ 
+ A menu must be located at the end of a node, without any regular text
+ or additional commands between the @code{@@end menu} and the beginning
+ of the next node.  (As a consequence, there may be at most one menu in
+ a node.)
+ 
+ @cindex Info format, and menus
+ This is actually a useful restriction, since a reader who uses the
+ menu could easily miss any such text.  Technically, it is necessary
+ because in Info format, there is no marker for the end of a menu, so
+ Info-reading programs would have no way to know when the menu ends and
+ normal text resumes.
+ 
+ @cindex Hierarchical documents, and menus
+ Technically, menus can carry you to any node, regardless of the
+ structure of the document; even to nodes in a different Info file.
+ However, we do not recommend ever making use of this, because the
+ @command{makeinfo} implicit pointer creation feature (@pxref{makeinfo
+ Pointer Creation}) and GNU Emacs Texinfo mode updating commands work
+ only to create menus of subordinate nodes in a hierarchically
+ structured document.  Instead, use cross references to refer to
+ arbitrary nodes.
+ 
+ In the past, we recommended using a @samp{@@heading} command within an
+ @code{@@ifinfo} conditional instead of the normal sectioning commands
+ after a very short node with a menu.  This had the advantage of making
+ the printed output look better, because there was no very short text
+ between two headings on the page.  But this also does not work with
+ @command{makeinfo}'s implicit pointer creation, and it also makes the
+ XML output incorrect, since it does not reflect the true document
+ structure.  So, regrettably, we can no longer recommend this.
+ 
+ 
+ @node Writing a Menu
+ @section Writing a Menu
+ @cindex Writing a menu
+ @cindex Menu writing
+ 
+ A menu consists of an @code{@@menu} command on a line by itself
+ followed by menu entry lines or menu comment lines and then by an
+ @code{@@end menu} command on a line by itself.
+ 
+ A menu looks like this:
+ 
+ @example
+ @group
+ @@menu
+ Larger Units of Text
+ 
+ * Files::                       All about handling files.
+ * Multiples: Buffers.           Multiple buffers; editing
+                                  several files at once.
+ @@end menu
+ @end group
+ @end example
+ 
+ In a menu, every line that begins with an @w{@samp{* }} is a @dfn{menu
+ entry}.  (Note the space after the asterisk.)  A line that does not
+ start with an @w{@samp{* }} may also appear in a menu.  Such a line is
+ not a menu entry but is a menu comment line that appears in the Info
+ file.  In the example above, the line @samp{Larger Units of Text} is a
+ menu comment line; the two lines starting with @w{@samp{* }} are menu
+ @cindex Spaces, in menus
+ entries.  Space characters in a menu are preserved as-is; this allows
+ you to format the menu as you wish.
+ 
+ @opindex accesskey@r{, in HTML output}
+ In the HTML output from @command{makeinfo}, the @code{accesskey}
+ attribute is used with the values @samp{1}@dots{}@samp{9} for the
+ first nine entries.  This allows people using web browsers to follow
+ the first menu entries using (typically) @kbd{M-@var{digit}}, e.g.,
+ @kbd{M-1} for the first entry.
+ 
+ 
+ @node Menu Parts
+ @section The Parts of a Menu
+ @cindex Parts of a menu
+ @cindex Menu parts
+ @cindex @code{@@menu} parts
+ 
+ A menu entry has three parts, only the second of which is required:
+ 
+ @enumerate
+ @item
+ The menu entry name (optional).
+ 
+ @item
+ The name of the node (required).
+ 
+ @item
+ A description of the item (optional).
+ @end enumerate
+ 
+ The template for a generic menu entry looks like this (but see the
+ next section for one more possibility):
+ 
+ @example
+ * @var{menu-entry-name}: @var{node-name}.   @var{description}
+ @end example
+ 
+ Follow the menu entry name with a single colon and follow the node name
+ with tab, comma, newline, or the two characters period and space
+ (@samp{. }).
+ 
+ In Info, a user selects a node with the @kbd{m} (@code{Info-menu})
+ command.  The menu entry name is what the user types after the @kbd{m}
+ command.
+ 
+ The third part of a menu entry is a descriptive phrase or sentence.
+ Menu entry names and node names are often short; the description
+ explains to the reader what the node is about.  A useful description
+ complements the node name rather than repeats it.  The description,
+ which is optional, can spread over two or more lines; if it does, some
+ authors prefer to indent the second line while others prefer to align it
+ with the first (and all others).  It's up to you.
+ 
+ 
+ @node Less Cluttered Menu Entry
+ @section Less Cluttered Menu Entry
+ @cindex Two part menu entry
+ @cindex Double-colon menu entries
+ @cindex Menu entries with two colons
+ @cindex Less cluttered menu entry
+ @cindex Uncluttered menu entry
+ 
+ When the menu entry name and node name are the same, you can write
+ the name immediately after the asterisk and space at the beginning of
+ the line and follow the name with two colons.
+ 
+ @need 800
+ For example, write
+ 
+ @example
+ * Name::                        @var{description}
+ @end example
+ 
+ @need 800
+ @noindent
+ instead of
+ 
+ @example
+ * Name: Name.                   @var{description}
+ @end example
+ 
+ You should indeed use the node name for the menu entry name whenever
+ possible, since it reduces visual clutter in the menu.
+ 
+ 
+ @node Menu Example
+ @section A Menu Example
+ @cindex Menu example
+ @cindex Example menu
+ 
+ A menu looks like this in Texinfo:@refill
+ 
+ @example
+ @group
+ @@menu
+ * menu entry name: Node name.   A short description.
+ * Node name::                   This form is preferred.
+ @@end menu
+ @end group
+ @end example
+ 
+ @need 800
+ @noindent
+ This produces:
+ 
+ @example
+ @group
+ * menu:
+ 
+ * menu entry name: Node name.   A short description.
+ * Node name::                   This form is preferred.
+ @end group
+ @end example
+ 
+ @need 700
+ Here is an example as you might see it in a Texinfo file:@refill
+ 
+ @example
+ @group
+ @@menu
+ Larger Units of Text
+ 
+ * Files::                       All about handling files.
+ * Multiples: Buffers.           Multiple buffers; editing
+                                  several files at once.
+ @@end menu
+ @end group
+ @end example
+ 
+ @need 800
+ @noindent
+ This produces:
+ 
+ @example
+ @group
+ * menu:
+ Larger Units of Text
+ 
+ * Files::                       All about handling files.
+ * Multiples: Buffers.           Multiple buffers; editing
+                                  several files at once.
+ @end group
+ @end example
+ 
+ In this example, the menu has two entries.  @samp{Files} is both a menu
+ entry name and the name of the node referred to by that name.
+ @samp{Multiples} is the menu entry name; it refers to the node named
+ @samp{Buffers}. The line @samp{Larger Units of Text} is a comment; it
+ appears in the menu, but is not an entry.@refill
+ 
+ Since no file name is specified with either @samp{Files} or
+ @samp{Buffers}, they must be the names of nodes in the same Info file
+ (@pxref{Other Info Files, , Referring to Other Info Files}).@refill
+ 
+ @node Other Info Files
+ @comment  node-name,  next,  previous,  up
+ @section Referring to Other Info Files
+ @cindex Referring to other Info files
+ @cindex Nodes in other Info files
+ @cindex Other Info files' nodes
+ @cindex Going to other Info files' nodes
+ @cindex Info; other files' nodes
+ 
+ You can create a menu entry that enables a reader in Info to go to a
+ node in another Info file by writing the file name in parentheses just
+ before the node name.  In this case, you should use the three-part menu
+ entry format, which saves the reader from having to type the file
+ name.@refill
+ 
+ @need 800
+ The format looks like this:@refill
+ 
+ @example
+ @group
+ @@menu
+ * @var{first-entry-name}:(@var{filename})@var{nodename}.     @var{description}
+ * @var{second-entry-name}:(@var{filename})@var{second-node}. @var{description}
+ @@end menu
+ @end group
+ @end example
+ 
+ For example, to refer directly to the @samp{Outlining} and
+ @samp{Rebinding} nodes in the @cite{Emacs Manual}, you would write a
+ menu like this:@refill
+ 
+ @example
+ @group
+ @@menu
+ * Outlining: (emacs)Outline Mode. The major mode for
+                                  editing outlines.
+ * Rebinding: (emacs)Rebinding.    How to redefine the
+                                  meaning of a key.
+ @@end menu
+ @end group
+ @end example
+ 
+ If you do not list the node name, but only name the file, then Info
+ presumes that you are referring to the `Top' node.@refill
+ 
+ The @file{dir} file that contains the main menu for Info has menu
+ entries that list only file names.  These take you directly to the `Top'
+ nodes of each Info document.  (@xref{Installing an Info File}.)
+ 
+ @need 700
+ For example:
+ 
+ @example
+ @group
+ * Info: (info).         Documentation browsing system.
+ * Emacs: (emacs).       The extensible, self-documenting
+                        text editor.
+ @end group
+ @end example
+ 
+ @noindent
+ (The @file{dir} top level directory for the Info system is an Info file,
+ not a Texinfo file, but a menu entry looks the same in both types of
+ file.)@refill
+ 
+ The GNU Emacs Texinfo mode menu updating commands only work with nodes
+ within the current buffer, so you cannot use them to create menus that
+ refer to other files.  You must write such menus by hand.
+ 
+ 
+ @node Cross References
+ @chapter Cross References
+ @cindex Making cross references
+ @cindex Cross references
+ @cindex References
+ 
+ @dfn{Cross references} are used to refer the reader to other parts of the
+ same or different Texinfo files.  In Texinfo, nodes and anchors are the
+ places to which cross references can refer.
+ 
+ @menu
+ * References::                  What cross references are for.
+ * Cross Reference Commands::    A summary of the different commands.
+ * Cross Reference Parts::       A cross reference has several parts.
+ * xref::                        Begin a reference with `See' @dots{}
+ * Top Node Naming::             How to refer to the beginning of another file.
+ * ref::                         A reference for the last part of a sentence.
+ * pxref::                       How to write a parenthetical cross reference.
+ * inforef::                     How to refer to an Info-only file.
+ * uref::                        How to refer to a uniform resource locator.
+ * cite::                        How to refer to books not in the Info system.
+ @end menu
+ 
+ @node References
+ @section What References Are For
+ 
+ Often, but not always, a printed document should be designed so that
+ it can be read sequentially.  People tire of flipping back and forth
+ to find information that should be presented to them as they need
+ it.@refill
+ 
+ However, in any document, some information will be too detailed for
+ the current context, or incidental to it; use cross references to
+ provide access to such information.  Also, an online help system or a
+ reference manual is not like a novel; few read such documents in
+ sequence from beginning to end.  Instead, people look up what they
+ need.  For this reason, such creations should contain many cross
+ references to help readers find other information that they may not
+ have read.@refill
+ 
+ In a printed manual, a cross reference results in a page reference,
+ unless it is to another manual altogether, in which case the cross
+ reference names that manual.@refill
+ 
+ In Info, a cross reference results in an entry that you can follow
+ using the Info @samp{f} command.  (@inforef{Help-Xref, Following
+ cross-references, info}.)
+ 
+ The various cross reference commands use nodes (or anchors,
+ @pxref{anchor,,@code{@@anchor}}) to define cross reference locations.
+ This is evident in Info, in which a cross reference takes you to the
+ specified location.  @TeX{} also uses nodes to define cross reference
+ locations, but the action is less obvious.  When @TeX{} generates a DVI
+ file, it records each node's page number and uses the page numbers in making
+ references.  Thus, if you are writing a manual that will only be
+ printed, and will not be used online, you must nonetheless write
+ @code{@@node} lines to name the places to which you make cross
+ references.@refill
+ 
+ @need 800
+ @node Cross Reference Commands
+ @comment  node-name,  next,  previous,  up
+ @section Different Cross Reference Commands
+ @cindex Different cross reference commands
+ 
+ There are four different cross reference commands:@refill
+ 
+ @table @code
+ @item @@xref
+ Used to start a sentence in the printed manual saying @w{`See @dots{}'}
+ or an Info cross-reference saying @samp{*Note @var{name}: @var{node}.}.
+ 
+ @item @@ref
+ Used within or, more often, at the end of a sentence; same as
+ @code{@@xref} for Info; produces just the reference in the printed
+ manual without a preceding `See'.@refill
+ 
+ @item @@pxref
+ Used within parentheses to make a reference that suits both an Info
+ file and a printed book.  Starts with a lower case `see' within the
+ printed manual. (@samp{p} is for `parenthesis'.)@refill
+ 
+ @item @@inforef
+ Used to make a reference to an Info file for which there is no printed
+ manual.@refill
+ @end table
+ 
+ @noindent
+ (The @code{@@cite} command is used to make references to books and
+ manuals for which there is no corresponding Info file and, therefore,
+ no node to which to point.   @xref{cite, , @code{@@cite}}.)@refill
+ 
+ @node Cross Reference Parts
+ @comment  node-name,  next,  previous,  up
+ @section Parts of a Cross Reference
+ @cindex Cross reference parts
+ @cindex Parts of a cross reference
+ 
+ A cross reference command requires only one argument, which is the
+ name of the node to which it refers.  But a cross reference command
+ may contain up to four additional arguments.  By using these
+ arguments, you can provide a cross reference name for Info, a topic
+ description or section title for the printed output, the name of a
+ different Info file, and the name of a different printed
+ manual.@refill
+ 
+ Here is a simple cross reference example:@refill
+ 
+ @example
+ @@xref@{Node name@}.
+ @end example
+ 
+ @noindent
+ which produces
+ 
+ @example
+ *Note Node name::.
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See Section @var{nnn} [Node name], page @var{ppp}.
+ @end quotation
+ 
+ @need 700
+ Here is an example of a full five-part cross reference:@refill
+ 
+ @example
+ @group
+ @@xref@{Node name, Cross Reference Name, Particular Topic,
+ info-file-name, A Printed Manual@}, for details.
+ @end group
+ @end example
+ 
+ @noindent
+ which produces
+ 
+ @example
+ *Note Cross Reference Name: (info-file-name)Node name,
+ for details.
+ @end example
+ 
+ @noindent
+ in Info and
+ 
+ @quotation
+ See section ``Particular Topic'' in @i{A Printed Manual}, for details.
+ @end quotation
+ 
+ @noindent
+ in a printed book.
+ 
+ The five possible arguments for a cross reference are:@refill
+ 
+ @enumerate
+ @item
+ The node or anchor name (required).  This is the location to which the
+ cross reference takes you.  In a printed document, the location of the
+ node provides the page reference only for references within the same
+ document.@refill
+ 
+ @item
+ The cross reference name for the Info reference, if it is to be
+ different from the node name or the topic description.  If you
+ include this argument, it becomes the first part of the cross reference.
+ It is usually omitted; then the topic description (third argument) is
+ used if it was specified; if that was omitted as well, the node name
+ is used.
+ 
+ @item
+ A topic description or section name.  Often, this is the title of the
+ section.  This is used as the name of the reference in the printed
+ manual.  If omitted, the node name is used.@refill
+ 
+ @item
+ The name of the Info file in which the reference is located, if it is
+ different from the current file.  You need not include any @samp{.info}
+ suffix on the file name, since Info readers try appending it
+ automatically.
+ 
+ @item
+ The name of a printed manual from a different Texinfo file.@refill
+ @end enumerate
+ 
+ The template for a full five argument cross reference looks like
+ this:@refill
+ 
+ @example
+ @group
+ @@xref@{@var{node-name}, @var{cross-reference-name}, @var{title-or-topic},
+ @var{info-file-name}, @var{printed-manual-title}@}.
+ @end group
+ @end example
+ 
+ Cross references with one, two, three, four, and five arguments are
+ described separately following the description of @code{@@xref}.@refill
+ 
+ Write a node name in a cross reference in exactly the same way as in
+ the @code{@@node} line, including the same capitalization; otherwise, the
+ formatters may not find the reference.@refill
+ 
+ You can write cross reference commands within a paragraph, but note
+ how Info and @TeX{} format the output of each of the various commands:
+ write @code{@@xref} at the beginning of a sentence; write
+ @code{@@pxref} only within parentheses, and so on.@refill
+ 
+ @node xref
+ @comment  node-name,  next,  previous,  up
+ @section @code{@@xref}
+ @findex xref
+ @cindex Cross references using @code{@@xref}
+ @cindex References using @code{@@xref}
+ 
+ The @code{@@xref} command generates a cross reference for the
+ beginning of a sentence.  The Info formatting commands convert it into
+ an Info cross reference, which the Info @samp{f} command can use to
+ bring you directly to another node.  The @TeX{} typesetting commands
+ convert it into a page reference, or a reference to another book or
+ manual.@refill
+ 
+ @menu
+ * Reference Syntax::            What a reference looks like and requires.
+ * One Argument::                @code{@@xref} with one argument.
+ * Two Arguments::               @code{@@xref} with two arguments.
+ * Three Arguments::             @code{@@xref} with three arguments.
+ * Four and Five Arguments::     @code{@@xref} with four and five arguments.
+ @end menu
+ 
+ @node Reference Syntax
+ @subsection What a Reference Looks Like and Requires
+ 
+ Most often, an Info cross reference looks like this:@refill
+ 
+ @example
+ *Note @var{node-name}::.
+ @end example
+ 
+ @noindent
+ or like this
+ 
+ @example
+ *Note @var{cross-reference-name}: @var{node-name}.
+ @end example
+ 
+ @noindent
+ In @TeX{}, a cross reference looks like this:
+ 
+ @quotation
+ See Section @var{section-number} [@var{node-name}], page @var{page}.
+ @end quotation
+ 
+ @noindent
+ or like this
+ 
+ @quotation
+ See Section @var{section-number} [@var{title-or-topic}], page @var{page}.
+ @end quotation
+ 
+ The @code{@@xref} command does not generate a period or comma to end
+ the cross reference in either the Info file or the printed output.
+ You must write that period or comma yourself; otherwise, Info will not
+ recognize the end of the reference.  (The @code{@@pxref} command works
+ differently.  @xref{pxref, , @code{@@pxref}}.)@refill
+ 
+ @quotation Caution
+ A period or comma @strong{must} follow the closing
+ brace of an @code{@@xref}.  It is required to terminate the cross
+ reference.  This period or comma will appear in the output, both in
+ the Info file and in the printed manual.@refill
+ @end quotation
+ 
+ @code{@@xref} must refer to an Info node by name.  Use @code{@@node}
+ to define the node (@pxref{Writing a Node}).@refill
+ 
+ @code{@@xref} is followed by several arguments inside braces, separated by
+ commas.  Whitespace before and after these commas is ignored.@refill
+ 
+ A cross reference requires only the name of a node; but it may contain
+ up to four additional arguments.  Each of these variations produces a
+ cross reference that looks somewhat different.@refill
+ 
+ @quotation Note
+ Commas separate arguments in a cross reference;
+ avoid including them in the title or other part lest the formatters
+ mistake them for separators.@refill
+ @end quotation
+ 
+ @node One Argument
+ @subsection @code{@@xref} with One Argument
+ 
+ The simplest form of @code{@@xref} takes one argument, the name of
+ another node in the same Info file.    The Info formatters produce
+ output that the Info readers can use to jump to the reference; @TeX{}
+ produces output that specifies the page and section number for you.@refill
+ 
+ @need 700
+ @noindent
+ For example,
+ 
+ @example
+ @@xref@{Tropical Storms@}.
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ *Note Tropical Storms::.
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See Section 3.1 [Tropical Storms], page 24.
+ @end quotation
+ 
+ @noindent
+ (Note that in the preceding example the closing brace is followed by a
+ period.)@refill
+ 
+ You can write a clause after the cross reference, like this:@refill
+ 
+ @example
+ @@xref@{Tropical Storms@}, for more info.
+ @end example
+ 
+ @noindent
+ which produces
+ 
+ @example
+ *Note Tropical Storms::, for more info.
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See Section 3.1 [Tropical Storms], page 24, for more info.
+ @end quotation
+ 
+ @noindent
+ (Note that in the preceding example the closing brace is followed by a
+ comma, and then by the clause, which is followed by a period.)@refill
+ 
+ @node Two Arguments
+ @subsection @code{@@xref} with Two Arguments
+ 
+ With two arguments, the second is used as the name of the Info cross
+ reference, while the first is still the name of the node to which the
+ cross reference points.@refill
+ 
+ @need 750
+ @noindent
+ The template is like this:
+ 
+ @example
+ @@xref@{@var{node-name}, @var{cross-reference-name}@}.
+ @end example
+ 
+ @need 700
+ @noindent
+ For example,
+ 
+ @example
+ @@xref@{Electrical Effects, Lightning@}.
+ @end example
+ 
+ @noindent
+ produces:
+ 
+ @example
+ *Note Lightning: Electrical Effects.
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See Section 5.2 [Electrical Effects], page 57.
+ @end quotation
+ 
+ @noindent
+ (Note that in the preceding example the closing brace is followed by a
+ period; and that the node name is printed, not the cross reference name.)
+ 
+ You can write a clause after the cross reference, like this:@refill
+ 
+ @example
+ @@xref@{Electrical Effects, Lightning@}, for more info.
+ @end example
+ 
+ @noindent
+ which produces
+ @example
+ *Note Lightning: Electrical Effects, for more info.
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See Section 5.2 [Electrical Effects], page 57, for more info.
+ @end quotation
+ 
+ @noindent
+ (Note that in the preceding example the closing brace is followed by a
+ comma, and then by the clause, which is followed by a period.)@refill
+ 
+ @node Three Arguments
+ @subsection @code{@@xref} with Three Arguments
+ 
+ A third argument replaces the node name in the @TeX{} output.  The third
+ argument should be the name of the section in the printed output, or
+ else state the topic discussed by that section.  Often, you will want to
+ use initial upper case letters so it will be easier to read when the
+ reference is printed.  Use a third argument when the node name is
+ unsuitable because of syntax or meaning.@refill
+ 
+ Remember to avoid placing a comma within the title or topic section of
+ a cross reference, or within any other section.  The formatters divide
+ cross references into arguments according to the commas; a comma
+ within a title or other section will divide it into two arguments.  In
+ a reference, you need to write a title such as ``Clouds, Mist, and
+ Fog'' without the commas.@refill
+ 
+ Also, remember to write a comma or period after the closing brace of an
+ @code{@@xref} to terminate the cross reference.  In the following
+ examples, a clause follows a terminating comma.@refill
+ 
+ 
+ @need 750
+ @noindent
+ The template is like this:
+ 
+ @example
+ @group
+ @@xref@{@var{node-name}, @var{cross-reference-name}, @var{title-or-topic}@}.
+ @end group
+ @end example
+ 
+ @need 700
+ @noindent
+ For example,
+ 
+ @example
+ @group
+ @@xref@{Electrical Effects, Lightning, Thunder and Lightning@},
+ for details.
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ *Note Lightning: Electrical Effects, for details.
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See Section 5.2 [Thunder and Lightning], page 57, for details.
+ @end quotation
+ 
+ If a third argument is given and the second one is empty, then the
+ third argument serves both.  (Note how two commas, side by side, mark
+ the empty second argument.)@refill
+ 
+ @example
+ @group
+ @@xref@{Electrical Effects, , Thunder and Lightning@},
+ for details.
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ *Note Thunder and Lightning: Electrical Effects, for details.
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See Section 5.2 [Thunder and Lightning], page 57, for details.
+ @end quotation
+ 
+ As a practical matter, it is often best to write cross references with
+ just the first argument if the node name and the section title are the
+ same, and with the first and third arguments if the node name and title
+ are different.@refill
+ 
+ Here are several examples from @cite{The GNU Awk User's Guide}:@refill
+ 
+ @smallexample
+ @@xref@{Sample Program@}.
+ @@xref@{Glossary@}.
+ @@xref@{Case-sensitivity, ,Case-sensitivity in Matching@}.
+ @@xref@{Close Output, , Closing Output Files and Pipes@},
+   for more information.
+ @@xref@{Regexp, , Regular Expressions as Patterns@}.
+ @end smallexample
+ 
+ @node Four and Five Arguments
+ @subsection @code{@@xref} with Four and Five Arguments
+ 
+ In a cross reference, a fourth argument specifies the name of another
+ Info file, different from the file in which the reference appears, and
+ a fifth argument specifies its title as a printed manual.@refill
+ 
+ Remember that a comma or period must follow the closing brace of an
+ @code{@@xref} command to terminate the cross reference.  In the
+ following examples, a clause follows a terminating comma.@refill
+ 
+ @need 800
+ @noindent
+ The template is:
+ 
+ @example
+ @group
+ @@xref@{@var{node-name}, @var{cross-reference-name}, @var{title-or-topic},
+ @var{info-file-name}, @var{printed-manual-title}@}.
+ @end group
+ @end example
+ 
+ @need 700
+ @noindent
+ For example,
+ 
+ @example
+ @@xref@{Electrical Effects, Lightning, Thunder and Lightning,
+ weather, An Introduction to Meteorology@}, for details.
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ *Note Lightning: (weather)Electrical Effects, for details.
+ @end example
+ 
+ @noindent
+ The name of the Info file is enclosed in parentheses and precedes
+ the name of the node.
+ 
+ @noindent
+ In a printed manual, the reference looks like this:@refill
+ 
+ @quotation
+ See section ``Thunder and Lightning'' in @i{An Introduction to
+ Meteorology}, for details.
+ @end quotation
+ 
+ @noindent
+ The title of the printed manual is typeset in italics; and the
+ reference lacks a page number since @TeX{} cannot know to which page a
+ reference refers when that reference is to another manual.@refill
+ 
+ Often, you will leave out the second argument when you use the long
+ version of @code{@@xref}.  In this case, the third argument, the topic
+ description, will be used as the cross reference name in Info.@refill
+ 
+ @noindent
+ The template looks like this:
+ 
+ @example
+ @@xref@{@var{node-name}, , @var{title-or-topic}, @var{info-file-name},
+ @var{printed-manual-title}@}, for details.
+ @end example
+ 
+ @noindent
+ which produces
+ 
+ @example
+ *Note @var{title-or-topic}: (@var{info-file-name})@var{node-name}, for details.
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See section @var{title-or-topic} in @var{printed-manual-title}, for details.
+ @end quotation
+ 
+ @need 700
+ @noindent
+ For example,
+ 
+ @example
+ @@xref@{Electrical Effects, , Thunder and Lightning,
+ weather, An Introduction to Meteorology@}, for details.
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ @group
+ *Note Thunder and Lightning: (weather)Electrical Effects,
+ for details.
+ @end group
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See section ``Thunder and Lightning'' in @i{An Introduction to
+ Meteorology}, for details.
+ @end quotation
+ 
+ On rare occasions, you may want to refer to another Info file that
+ is within a single printed manual---when multiple Texinfo files are
+ incorporated into the same @TeX{} run but make separate Info files.
+ In this case, you need to specify only the fourth argument, and not
+ the fifth.@refill
+ 
+ @node Top Node Naming
+ @section Naming a `Top' Node
+ @cindex Naming a `Top' Node in references
+ @cindex @samp{@r{Top}} node naming for references
+ 
+ In a cross reference, you must always name a node.  This means that in
+ order to refer to a whole manual, you must identify the `Top' node by
+ writing it as the first argument to the @code{@@xref} command.  (This
+ is different from the way you write a menu entry; see @ref{Other Info
+ Files, , Referring to Other Info Files}.)  At the same time, to
+ provide a meaningful section topic or title in the printed cross
+ reference (instead of the word `Top'), you must write an appropriate
+ entry for the third argument to the @code{@@xref} command.
+ @refill
+ 
+ @noindent
+ Thus, to make a cross reference to @cite{The GNU Make Manual},
+ write:@refill
+ 
+ @example
+ @@xref@{Top, , Overview, make, The GNU Make Manual@}.
+ @end example
+ 
+ @noindent
+ which produces
+ 
+ @example
+ *Note Overview: (make)Top.
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ See section ``Overview'' in @i{The GNU Make Manual}.
+ @end quotation
+ 
+ @noindent
+ In this example, @samp{Top} is the name of the first node, and
+ @samp{Overview} is the name of the first section of the manual.
+ 
+ 
+ @node ref
+ @section @code{@@ref}
+ @cindex Cross references using @code{@@ref}
+ @cindex References using @code{@@ref}
+ @findex ref
+ 
+ @code{@@ref} is nearly the same as @code{@@xref} except that it does
+ not generate a `See' in the printed output, just the reference itself.
+ This makes it useful as the last part of a sentence.
+ 
+ @noindent For example,
+ 
+ @cindex Hurricanes
+ @example
+ For more information, @@pxref@{This@}, and @@ref@{That@}.
+ @end example
+ 
+ @noindent produces in Info:
+ 
+ @example
+ For more information, *note This::, and *note That::.
+ @end example
+ 
+ @noindent and in printed output:
+ 
+ @quotation
+ For more information, see Section 1.1 [This], page 1,
+ and Section 1.2 [That], page 2.
+ @end quotation
+ 
+ The @code{@@ref} command sometimes tempts writers to express
+ themselves in a manner that is suitable for a printed manual but looks
+ awkward in the Info format.  Bear in mind that your audience will be
+ using both the printed and the Info format.  For example:
+ 
+ @cindex Sea surges
+ @example
+ Sea surges are described in @@ref@{Hurricanes@}.
+ @end example
+ 
+ @noindent looks ok in the printed output:
+ 
+ @quotation
+ Sea surges are described in Section 6.7 [Hurricanes], page 72.
+ @end quotation
+ 
+ @noindent but is awkward to read in Info, ``note'' being a verb:
+ 
+ @example
+ Sea surges are described in *note Hurricanes::.
+ @end example
+ 
+ You should write a period or comma immediately after an @code{@@ref}
+ command with two or more arguments.  If there is no such following
+ punctuation, @command{makeinfo} will generate a (grammatically
+ incorrect) period in the Info output; otherwise, the cross-reference
+ would fail completely, due to the current syntax of Info format.
+ 
+ In general, it is best to use @code{@@ref} only when you need some
+ word other than ``see'' to precede the reference.  When ``see'' (or
+ ``See'') is ok, @code{@@xref} and @code{@@pxref} are preferable.
+ 
+ 
+ @node pxref
+ @section @code{@@pxref}
+ @cindex Cross references using @code{@@pxref}
+ @cindex References using @code{@@pxref}
+ @findex pxref
+ 
+ The parenthetical reference command, @code{@@pxref}, is nearly the
+ same as @code{@@xref}, but it is best used at the end of a sentence or
+ before a closing parenthesis.  The command differs from @code{@@xref}
+ in two ways:
+ 
+ @enumerate
+ @item
+ @TeX{} typesets the reference for the printed manual with a lower case
+ `see' rather than an upper case `See'.
+ 
+ @item
+ The Info formatting commands automatically end the reference with a
+ closing colon or period, if necessary.
+ @end enumerate
+ 
+ @code{@@pxref} is designed so that the output looks right and works
+ right at the end of a sentence or parenthetical phrase, both in
+ printed output and in an Info file.  In a printed manual, a closing
+ comma or period should not follow a cross reference within
+ parentheses; such punctuation is wrong.  But in an Info file, suitable
+ closing punctuation must follow the cross reference so Info can
+ recognize its end.  @code{@@pxref} spares you the need to use
+ complicated methods to put a terminator into one form of the output
+ and not the other.
+ 
+ @noindent
+ With one argument, a parenthetical cross reference looks like this:
+ 
+ @cindex Flooding
+ @example
+ @dots{} storms cause flooding (@@pxref@{Hurricanes@}) @dots{}
+ @end example
+ 
+ @need 800
+ @noindent
+ which produces
+ 
+ @example
+ @group
+ @dots{} storms cause flooding (*note Hurricanes::) @dots{}
+ @end group
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ @dots{} storms cause flooding (see Section 6.7 [Hurricanes], page 72) @dots{}
+ @end quotation
+ 
+ With two arguments, a parenthetical cross reference has this template:
+ 
+ @example
+ @dots{} (@@pxref@{@var{node-name}, @var{cross-reference-name}@}) @dots{}
+ @end example
+ 
+ @noindent
+ which produces
+ 
+ @example
+ @dots{} (*note @var{cross-reference-name}: @var{node-name}.) @dots{}
+ @end example
+ 
+ @noindent
+ and
+ 
+ @quotation
+ @dots{} (see Section @var{nnn} [@var{node-name}], page @var{ppp}) @dots{}
+ @end quotation
+ 
+ @code{@@pxref} can be used with up to five arguments, just like
+ @code{@@xref} (@pxref{xref, , @code{@@xref}}).
+ 
+ In past versions of Texinfo, it was not allowed to write punctuation
+ after a @code{@@pxref}, so it could be used @emph{only} before a right
+ parenthesis.  This is no longer the case, so now it can be used (for
+ example) at the end of a sentence, where a lowercase ``see'' works
+ best.  For instance:
+ 
+ @example
+ @dots{} For more information, @@pxref@{More@}.
+ @end example
+ 
+ @noindent
+ which outputs (in Info):
+ 
+ @example
+ @dots{} For more information, *note More::.
+ @end example
+ 
+ @noindent
+ This works fine.  @code{@@pxref} should only be followed by a comma,
+ period, or right parenthesis; in other cases, @command{makeinfo} has
+ to insert a period to make the cross-reference work correctly in Info,
+ and that period looks wrong.
+ 
+ As a matter of general style, @code{@@pxref} is best used at the ends
+ of sentences.  Although it technically works in the middle of a
+ sentence, that location breaks up the flow of reading.
+ 
+ 
+ @node inforef
+ @section @code{@@inforef}
+ @cindex Cross references using @code{@@inforef}
+ @cindex References using @code{@@inforef}
+ @findex inforef
+ 
+ @code{@@inforef} is used for making cross references to Info
+ documents---even from a printed manual.  This might be because you
+ want to refer to conditional @code{@@ifinfo} text
+ (@pxref{Conditionals}), or because printed output is not available
+ (perhaps because there is no Texinfo source), among other
+ possibilities.
+ 
+ The command takes either two or three arguments, in the following
+ order:@refill
+ 
+ @enumerate
+ @item
+ The node name.
+ 
+ @item
+ The cross reference name (optional).
+ 
+ @item
+ The Info file name.
+ @end enumerate
+ 
+ @noindent
+ Separate the arguments with commas, as with @code{@@xref}.  Also, you
+ must terminate the reference with a comma or period after the
+ @samp{@}}, as you do with @code{@@xref}.@refill
+ 
+ @noindent
+ The template is:
+ 
+ @example
+ @@inforef@{@var{node-name}, @var{cross-reference-name}, @var{info-file-name}@},
+ @end example
+ 
+ @need 800
+ @noindent
+ For example,
+ 
+ @example
+ @group
+ @@inforef@{Advanced, Advanced Info commands, info@},
+ for more information.
+ @end group
+ @end example
+ 
+ @need 800
+ @noindent
+ produces (in Info):
+ 
+ @example
+ @group
+ *Note Advanced Info commands: (info)Advanced,
+ for more information.
+ @end group
+ @end example
+ 
+ @need 800
+ @noindent
+ and (in the printed output):
+ 
+ @quotation
+ See Info file @file{info}, node @samp{Advanced}, for more information.
+ @end quotation
+ 
+ (This particular example is not realistic, since the Info manual is
+ written in Texinfo, so all formats are available.)
+ 
+ The converse of @code{@@inforef} is @code{@@cite}, which is used to
+ refer to printed works for which no Info form exists.  @xref{cite, ,
+ @code{@@cite}}.
+ 
+ 
+ @node uref
+ @section @code{@@url}, @code{@@uref@{@var{url}[, @var{text}][, @var{replacement}]@}}
+ @findex uref
+ @cindex Uniform resource locator, referring to
+ @cindex URL, referring to
+ 
+ @cindex @code{href}, producing HTML
+ @code{@@uref} produces a reference to a uniform resource locator (url).
+ It takes one mandatory argument, the url, and two optional arguments
+ which control the text that is displayed.  In HTML output, @code{@@uref}
+ produces a link you can follow.
+ 
+ @code{@@url} is a synonym for @code{@@uref}.  Originally, @code{@@url}
+ had the meaning of @code{@@indicateurl}
+ (@pxref{indicateurl,,@code{@@indicateurl}}), but in actual practice it
+ was misused the vast majority of the time.  So we've changed the
+ meaning.
+ 
+ The second argument, if specified, is the text to display (the default
+ is the url itself); in Info and DVI output, but not in HTML output, the
+ url is also output.
+ 
+ @cindex Man page, reference to
+ The third argument, if specified, is the text to display, but in this
+ case the url is @emph{not} output in any format.  This is useful when
+ the text is already sufficiently referential, as in a man page.  If
+ the third argument is given, the second argument is ignored.
+ 
+ If the url is long enough to cause problems with line breaking, you
+ may find it useful to insert @code{@@/} at places where a line break
+ would be acceptable (after @samp{/} characters, for instance).  This
+ tells @TeX{} to allow (but not force) a line break at those places.
+ @xref{Line Breaks}.
+ 
+ Here is an example of the simple one argument form, where the url is
+ both the target and the text of the link:
+ 
+ @example
+ The official GNU ftp site is @@uref@{ftp://ftp.gnu.org/gnu@}.
+ @end example
+ 
+ @noindent produces:
+ @display
+ The official GNU ftp site is @uref{ftp://ftp.gnu.org/gnu}.
+ @end display
+ 
+ 
+ An example of the two-argument form:
+ @example
+ The official @@uref@{ftp://ftp.gnu.org/gnu, GNU ftp site@}
+ holds programs and texts.
+ @end example
+ 
+ @noindent produces:
+ @display
+ The official @uref{ftp://ftp.gnu.org/gnu, GNU ftp site}
+ holds programs and texts.
+ @end display
+ 
+ @noindent that is, the Info output is this:
+ @example
+ The official GNU ftp site (ftp://ftp.gnu.org/gnu)
+ holds programs and texts.
+ @end example
+ 
+ @noindent and the HTML output is this:
+ @example
+ The official <a href="ftp://ftp.gnu.org/gnu">GNU ftp site</a>
+ holds programs and texts.
+ @end example
+ 
+ 
+ An example of the three-argument form:
+ @example
+ The @@uref@{/man.cgi/1/ls,,ls@} program @dots{}
+ @end example
+ 
+ @noindent produces:
+ @display
+ The @uref{/man.cgi/1/ls,,ls} program @dots{}
+ @end display
+ 
+ @noindent but with HTML:
+ @example
+ The <a href="/man.cgi/1/ls">ls</a> program @dots{}
+ @end example
+ 
+ To merely indicate a url without creating a link people can follow, use
+ @code{@@indicateurl} (@pxref{indicateurl, @code{@@indicateurl}}).
+ 
+ Some people prefer to display url's in the unambiguous format:
+ 
+ @display
+ <URL:http://@var{host}/@var{path}>
+ @end display
+ 
+ @noindent
+ @cindex <URL: convention, not used
+ You can use this form in the input file if you wish.  We feel it's not
+ necessary to include the @samp{<URL:} and @samp{>} in the output,
+ since any software that tries to detect url's in text already has to
+ detect them without the @samp{<URL:} to be useful.
+ 
+ 
+ @node cite
+ @section @code{@@cite}@{@var{reference}@}
+ @findex cite
+ 
+ Use the @code{@@cite} command for the name of a book that lacks a
+ companion Info file.  The command produces italics in the printed
+ manual, and quotation marks in the Info file.
+ 
+ If a book is written in Texinfo, it is better to use a cross reference
+ command since a reader can easily follow such a reference in Info.
+ @xref{xref, , @code{@@xref}}.
+ 
+ 
+ @node Marking Text
+ @chapter Marking Words and Phrases
+ @cindex Paragraph, marking text within
+ @cindex Marking words and phrases
+ @cindex Words and phrases, marking them
+ @cindex Marking text within a paragraph
+ @cindex Text, marking up
+ 
+ In Texinfo, you can mark words and phrases in a variety of ways.
+ The Texinfo formatters use this information to determine how to
+ highlight the text.
+ You can specify, for example, whether a word or phrase is a
+ defining occurrence, a metasyntactic variable, or a symbol used in a
+ program.  Also, you can emphasize text, in several different ways.
+ 
+ @menu
+ * Indicating::                  How to indicate definitions, files, etc.
+ * Emphasis::                    How to emphasize text.
+ @end menu
+ 
+ 
+ @node Indicating
+ @section Indicating Definitions, Commands, etc.
+ @cindex Highlighting text
+ @cindex Indicating commands, definitions, etc.
+ 
+ Texinfo has commands for indicating just what kind of object a piece of
+ text refers to.  For example, metasyntactic variables are marked by
+ @code{@@var}, and code by @code{@@code}.  Since the pieces of text are
+ labelled by commands that tell what kind of object they are, it is easy
+ to change the way the Texinfo formatters prepare such text.  (Texinfo is
+ an @emph{intentional} formatting language rather than a @emph{typesetting}
+ formatting language.)@refill
+ 
+ For example, in a printed manual,
+ code is usually illustrated in a typewriter font;
+ @code{@@code} tells @TeX{} to typeset this text in this font.  But it
+ would be easy to change the way @TeX{} highlights code to use another
+ font, and this change would not affect how keystroke examples are
+ highlighted.  If straight typesetting commands were used in the body
+ of the file and you wanted to make a change, you would need to check
+ every single occurrence to make sure that you were changing code and
+ not something else that should not be changed.@refill
+ 
+ @menu
+ * Useful Highlighting::         Highlighting provides useful information.
+ * code::                        Indicating program code.
+ * kbd::                         Showing keyboard input.
+ * key::                         Specifying keys.
+ * samp::                        Indicating a literal sequence of characters.
+ * verb::                        Indicating a verbatim sequence of characters.
+ * var::                         Indicating metasyntactic variables.
+ * env::                         Indicating environment variables.
+ * file::                        Indicating file names.
+ * command::                     Indicating command names.
+ * option::                      Indicating option names.
+ * dfn::                         Specifying definitions.
+ * abbr::                        Indicating abbreviations.
+ * acronym::                     Indicating acronyms.
+ * indicateurl::                 Indicating an example URL.
+ * email::                       Indicating an electronic mail address.
+ @end menu
+ 
+ 
+ @node Useful Highlighting
+ @subsection Highlighting Commands are Useful
+ 
+ The highlighting commands can be used to extract useful information
+ from the file, such as lists of functions or file names.  It is
+ possible, for example, to write a program in Emacs Lisp (or a keyboard
+ macro) to insert an index entry after every paragraph that contains
+ words or phrases marked by a specified command.  You could do this to
+ construct an index of functions if you had not already made the
+ entries.@refill
+ 
+ The commands serve a variety of purposes:@refill
+ 
+ @table @code
+ @item @@code@{@var{sample-code}@}
+ Indicate text that is a literal example of a piece of a program.
+ @xref{code,,@code{@@code}}.
+ 
+ @item @@kbd@{@var{keyboard-characters}@}
+ Indicate keyboard input.
+ @xref{kbd,,@code{@@kbd}}.
+ 
+ @item @@key@{@var{key-name}@}
+ Indicate the conventional name for a key on a keyboard.
+ @xref{key,,@code{@@key}}.
+ 
+ @item @@samp@{@var{text}@}
+ Indicate text that is a literal example of a sequence of characters.
+ @xref{samp,,@code{@@samp}}.
+ 
+ @item @@verb@{@var{text}@}
+ Write a verbatim sequence of characters.
+ @xref{verb,,@code{@@verb}}.
+ 
+ @item @@var@{@var{metasyntactic-variable}@}
+ Indicate a metasyntactic variable.
+ @xref{var,,@code{@@var}}.
+ 
+ @item @@env@{@var{environment-variable}@}
+ Indicate an environment variable.
+ @xref{env,,@code{@@env}}.
+ 
+ @item @@file@{@var{file-name}@}
+ Indicate the name of a file.
+ @xref{file,,@code{@@file}}.
+ 
+ @item @@command@{@var{command-name}@}
+ Indicate the name of a command.
+ @xref{command,,@code{@@command}}.
+ 
+ @item @@option@{@var{option}@}
+ Indicate a command-line option.
+ @xref{option,,@code{@@option}}.
+ 
+ @item @@dfn@{@var{term}@}
+ Indicate the introductory or defining use of a term.
+ @xref{dfn,,@code{@@dfn}}.
+ 
+ @item @@cite@{@var{reference}@}
+ Indicate the name of a book.
+ @xref{cite,,@code{@@cite}}.
+ 
+ @item @@abbr@{@var{abbreviation}@}
+ Indicate an abbreviation, such as `Comput.'.
+ 
+ @item @@acronym@{@var{acronym}@}
+ Indicate an acronym.
+ @xref{acronym,,@code{@@acronym}}.
+ 
+ @item @@indicateurl@{@var{uniform-resource-locator}@}
+ Indicate an example (that is, nonfunctional) uniform resource locator.
+ @xref{indicateurl,,@code{@@indicateurl}}.  (Use @code{@@url}
+ (@pxref{uref,,@code{@@url}}) for live url's.)
+ 
+ @item @@email@{@var{email-address}[, @var{displayed-text}]@}
+ Indicate an electronic mail address.
+ @xref{email,,@code{@@email}}.
+ 
+ @ignore
+ @item @@ctrl@{@var{ctrl-char}@}
+ Use for an ASCII control character.
+ @end ignore
+ @end table
+ 
+ 
+ @node code
+ @subsection @code{@@code}@{@var{sample-code}@}
+ @findex code
+ 
+ @cindex Syntactic tokens, indicating
+ Use the @code{@@code} command to indicate text that is a piece of a
+ program and which consists of entire syntactic tokens.  Enclose the
+ text in braces.
+ 
+ @cindex Expressions in a program, indicating
+ @cindex Keywords, indicating
+ @cindex Reserved words, indicating
+ Thus, you should use @code{@@code} for an expression in a program, for
+ the name of a variable or function used in a program, or for a
+ keyword in a programming language.
+ 
+ Use @code{@@code} for command names in languages that resemble
+ programming languages, such as Texinfo.  For example, @code{@@code} and
+ @code{@@samp} are produced by writing @samp{@@code@{@@@@code@}} and
+ @samp{@@code@{@@@@samp@}} in the Texinfo source, respectively.
+ 
+ @cindex Case, not altering in @code{@@code}
+ It is incorrect to alter the case of a word inside an @code{@@code}
+ command when it appears at the beginning of a sentence.  Most computer
+ languages are case sensitive.  In C, for example, @code{Printf} is
+ different from the identifier @code{printf}, and most likely is a
+ misspelling of it.  Even in languages which are not case sensitive, it
+ is confusing to a human reader to see identifiers spelled in different
+ ways.  Pick one spelling and always use that.  If you do not want to
+ start a sentence with a command name written all in lower case, you
+ should rearrange the sentence.
+ 
+ In the printed manual, @code{@@code} causes @TeX{} to typeset the
+ argument in a typewriter face.  In the Info file, it causes the Info
+ formatting commands to use single quotation marks around the text.
+ For example,
+ 
+ @example
+ The function returns @@code@{nil@}.
+ @end example
+ 
+ @noindent
+ produces this:
+ 
+ @quotation
+ The function returns @code{nil}.
+ @end quotation
+ 
+ @iftex
+ @noindent
+ and this in the Info file:
+ @example
+ The function returns `nil'.
+ @end example
+ @end iftex
+ 
+ Here are some cases for which it is preferable @emph{not} to use @code{@@code}:
+ 
+ @itemize @bullet
+ @item
+ For shell command names such as @command{ls} (use @code{@@command}).
+ 
+ @item
+ For shell options such as @samp{-c} when such options stand alone (use
+ @code{@@option}).
+ 
+ @item
+ Also, an entire shell command often looks better if written using
+ @code{@@samp} rather than @code{@@code}.  In this case, the rule is to
+ choose the more pleasing format.
+ 
+ @item
+ For environment variable such as @env{TEXINPUTS} (use @code{@@env}).
+ 
+ @item
+ For a string of characters shorter than a syntactic token.  For example,
+ if you are writing about @samp{goto-ch}, which is just a part of the
+ name for the @code{goto-char} Emacs Lisp function, you should use
+ @code{@@samp}.
+ 
+ @item
+ In general, when writing about the characters used in a token; for
+ example, do not use @code{@@code} when you are explaining what letters
+ or printable symbols can be used in the names of functions.  (Use
+ @code{@@samp}.)  Also, you should not use @code{@@code} to mark text
+ that is considered input to programs unless the input is written in a
+ language that is like a programming language.  For example, you should
+ not use @code{@@code} for the keystroke commands of GNU Emacs (use
+ @code{@@kbd} instead) although you may use @code{@@code} for the names
+ of the Emacs Lisp functions that the keystroke commands invoke.
+ 
+ @end itemize
+ 
+ Since @code{@@command}, @code{@@option}, and @code{@@env} were
+ introduced relatively recently, it is acceptable to use @code{@@code} or
+ @code{@@samp} for command names, options, and environment variables.
+ The new commands allow you to express the markup more precisely, but
+ there is no real harm in using the older commands, and of course the
+ long-standing manuals do so.
+ 
+ Ordinarily, @TeX{} will consider breaking lines at @samp{-} and
+ @samp{_} characters within @code{@@code} and related commands.  This
+ can be controlled with @code{@@allowcodebreaks}
+ (@pxref{allowcodebreaks,,@code{@@allowcodebreaks}}).
+ 
+ 
+ @node kbd
+ @subsection @code{@@kbd}@{@var{keyboard-characters}@}
+ @findex kbd
+ @cindex Keyboard input
+ 
+ Use the @code{@@kbd} command for characters of input to be typed by
+ users.  For example, to refer to the characters @kbd{M-a}, write:
+ 
+ @example
+ @@kbd@{M-a@}
+ @end example
+ 
+ @noindent
+ and to refer to the characters @kbd{M-x shell}, write:
+ 
+ @example
+ @@kbd@{M-x shell@}
+ @end example
+ 
+ @cindex User input
+ @cindex Slanted typewriter font, for @code{@@kbd}
+ By default, the @code{@@kbd} command produces a different font
+ (slanted typewriter instead of normal typewriter) in the printed
+ manual, so users can distinguish the characters that they are supposed
+ to type from those that the computer outputs.
+ 
+ In Info output, @code{@@kbd} is usually the same as @code{@@code},
+ producing `quotes' around its argument.  However, in typewriter-like
+ contexts such as the @code{@@example} environment (@pxref{example})
+ and @code{@@code} command itself, the quotes are omitted, since Info
+ format cannot use distinguishing fonts.
+ 
+ @findex kbdinputstyle
+ Since the usage of @code{@@kbd} varies from manual to manual, you can
+ control the font switching with the @code{@@kbdinputstyle} command.
+ This command has no effect on Info output.  Write this command at the
+ beginning of a line with a single word as an argument, one of the
+ following:
+ 
+ @vindex distinct@r{, value for @code{@@kbdinputstyle}}
+ @vindex example@r{, value for @code{@@kbdinputstyle}}
+ @vindex code@r{, value for @code{@@kbdinputstyle}}
+ @table @samp
+ @item code
+ Always use the same font for @code{@@kbd} as @code{@@code}.
+ @item example
+ Use the distinguishing font for @code{@@kbd} only in @code{@@example}
+ and similar environments.
+ @item distinct
+ (the default) Always use the distinguishing font for @code{@@kbd}.
+ @end table
+ 
+ You can embed another @@-command inside the braces of an @code{@@kbd}
+ command.  Here, for example, is the way to describe a command that
+ would be described more verbosely as ``press the @samp{r} key and then
+ press the @key{RETURN} key'':
+ 
+ @example
+ @@kbd@{r @@key@{RET@}@}
+ @end example
+ 
+ @noindent
+ This produces: @kbd{r @key{RET}}.  (The present manual uses the
+ default for @code{@@kbdinputstyle}.)
+ 
+ You also use the @code{@@kbd} command if you are spelling out the letters
+ you type; for example:
+ 
+ @example
+ To give the @@code@{logout@} command,
+ type the characters @@kbd@{l o g o u t @@key@{RET@}@}.
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @quotation
+ To give the @code{logout} command,
+ type the characters @kbd{l o g o u t @key{RET}}.
+ @end quotation
+ 
+ (Also, this example shows that you can add spaces for clarity.  If you
+ explicitly want to mention a space character as one of the characters of
+ input, write @kbd{@@key@{SPC@}} for it.)@refill
+ 
+ 
+ @node key
+ @subsection @code{@@key}@{@var{key-name}@}
+ @findex key
+ 
+ Use the @code{@@key} command for the conventional name for a key on a
+ keyboard, as in:@refill
+ 
+ @example
+ @@key@{RET@}
+ @end example
+ 
+ You can use the @code{@@key} command within the argument of an
+ @code{@@kbd} command when the sequence of characters to be typed
+ includes one or more keys that are described by name.@refill
+ 
+ For example, to produce @kbd{C-x @key{ESC}} and @kbd{M-@key{TAB}} you
+ would type:
+ 
+ @example
+ @@kbd@{C-x @@key@{ESC@}@}
+ @@kbd@{M-@@key@{TAB@}@}
+ @end example
+ 
+ Here is a list of the recommended names for keys:
+ @cindex Recommended names for keys
+ @cindex Keys, recommended names
+ @cindex Names recommended for keys
+ @cindex Abbreviations for keys
+ 
+ @quotation
+ @table @t
+ @item SPC
+ Space
+ @item RET
+ Return
+ @item LFD
+ Linefeed (however, since most keyboards nowadays do not have a Linefeed key,
+ it might be better to call this character @kbd{C-j})
+ @item TAB
+ Tab
+ @item BS
+ Backspace
+ @item ESC
+ Escape
+ @item DELETE
+ Delete
+ @item SHIFT
+ Shift
+ @item CTRL
+ Control
+ @item META
+ Meta
+ @end table
+ @end quotation
+ 
+ @cindex META key
+ There are subtleties to handling words like `meta' or `ctrl' that are
+ names of modifier keys.  When mentioning a character in which the
+ modifier key is used, such as @kbd{Meta-a}, use the @code{@@kbd} command
+ alone; do not use the @code{@@key} command; but when you are referring
+ to the modifier key in isolation, use the @code{@@key} command.  For
+ example, write @samp{@@kbd@{Meta-a@}} to produce @kbd{Meta-a} and
+ @samp{@@key@{META@}} to produce @key{META}.
+ 
+ As a convention in GNU manuals, @code{@@key} should not be used in
+ index entries.
+ 
+ 
+ @node samp
+ @subsection @code{@@samp}@{@var{text}@}
+ @findex samp
+ 
+ Use the @code{@@samp} command to indicate text that is a literal example
+ or `sample' of a sequence of characters in a file, string, pattern, etc.
+ Enclose the text in braces.  The argument appears within single
+ quotation marks in both the Info file and the printed manual; in
+ addition, it is printed in a fixed-width font.@refill
+ 
+ @example
+ To match @@samp@{foo@} at the end of the line,
+ use the regexp @@samp@{foo$@}.
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @quotation
+ To match @samp{foo} at the end of the line, use the regexp
+ @samp{foo$}.@refill
+ @end quotation
+ 
+ Any time you are referring to single characters, you should use
+ @code{@@samp} unless @code{@@kbd} or @code{@@key} is more appropriate.
+ Also, you may use @code{@@samp} for entire statements in C and for entire
+ shell commands---in this case, @code{@@samp} often looks better than
+ @code{@@code}.  Basically, @code{@@samp} is a catchall for whatever is
+ not covered by @code{@@code}, @code{@@kbd}, or @code{@@key}.@refill
+ 
+ Only include punctuation marks within braces if they are part of the
+ string you are specifying.  Write punctuation marks outside the braces
+ if those punctuation marks are part of the English text that surrounds
+ the string.  In the following sentence, for example, the commas and
+ period are outside of the braces:@refill
+ 
+ @example
+ @group
+ In English, the vowels are @@samp@{a@}, @@samp@{e@},
+ @@samp@{i@}, @@samp@{o@}, @@samp@{u@}, and sometimes
+ @@samp@{y@}.
+ @end group
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @quotation
+ In English, the vowels are @samp{a}, @samp{e},
+ @samp{i}, @samp{o}, @samp{u},  and sometimes
+ @samp{y}.
+ @end quotation
+ 
+ 
+ @node verb
+ @subsection @code{@@verb}@{<char>@var{text}<char>@}
+ @findex verb
+ @cindex Verbatim in-line text
+ 
+ @cindex Delimiter character, for verbatim
+ Use the @code{@@verb} command to print a verbatim sequence of
+ characters.
+ 
+ Like @LaTeX{}'s @code{\verb} command, the verbatim text can be quoted using
+ any unique delimiter character.  Enclose the verbatim text, including the
+ delimiters, in braces.  Text is printed in a fixed-width font:
+ 
+ @example
+ How many @@verb@{|@@|@}-escapes does one need to print this
+ @@verb@{.@@a @@b @@c.@} string or @@verb@{+@@'e@?`@!`@{@}\+@} this?
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ How many @verb{|@|}-escapes does one need to print this
+ @verb{.@a @b @c.} string or these @verb{+@'e?`{}!`\+} this?
+ @end example
+ 
+ This is in contrast to @code{@@samp} (see the previous section),
+ @code{@@code}, and similar commands; in those cases, the argument is
+ normal Texinfo text, where the three characters @code{@@@{@}} are
+ special.  With @code{@@verb}, nothing is special except the delimiter
+ character you choose.
+ 
+ It is not reliable to use @code{@@verb} inside other Texinfo
+ constructs.  In particular, it does not work to use @code{@@verb} in
+ anything related to cross-referencing, such as section titles or
+ figure captions.
+ 
+ 
+ @node var
+ @subsection @code{@@var}@{@var{metasyntactic-variable}@}
+ @findex var
+ 
+ Use the @code{@@var} command to indicate metasyntactic variables.  A
+ @dfn{metasyntactic variable} is something that stands for another piece of
+ text.  For example, you should use a metasyntactic variable in the
+ documentation of a function to describe the arguments that are passed
+ to that function.@refill
+ 
+ Do not use @code{@@var} for the names of particular variables in
+ programming languages.  These are specific names from a program, so
+ @code{@@code} is correct for them (@pxref{code}).  For example, the
+ Emacs Lisp variable @code{texinfo-tex-command} is not a metasyntactic
+ variable; it is properly formatted using @code{@@code}.
+ 
+ Do not use @code{@@var} for environment variables either; @code{@@env}
+ is correct for them (see the next section).
+ 
+ The effect of @code{@@var} in the Info file is to change the case of the
+ argument to all upper case.  In the printed manual and HTML output, the
+ argument is printed in slanted type.
+ 
+ @need 700
+ For example,
+ 
+ @example
+ To delete file @@var@{filename@},
+ type @@samp@{rm @@var@{filename@}@}.
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @quotation
+ To delete file @var{filename}, type @samp{rm @var{filename}}.
+ @end quotation
+ 
+ @noindent
+ (Note that @code{@@var} may appear inside @code{@@code},
+ @code{@@samp}, @code{@@file}, etc.)@refill
+ 
+ Write a metasyntactic variable all in lower case without spaces, and
+ use hyphens to make it more readable.  Thus, the Texinfo source for
+ the illustration of how to begin a Texinfo manual looks like
+ this:@refill
+ 
+ @example
+ @group
+ \input texinfo
+ @@@@setfilename @@var@{info-file-name@}
+ @@@@settitle @@var@{name-of-manual@}
+ @end group
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @example
+ @group
+ \input texinfo
+ @@setfilename @var{info-file-name}
+ @@settitle @var{name-of-manual}
+ @end group
+ @end example
+ 
+ In some documentation styles, metasyntactic variables are shown with
+ angle brackets, for example:@refill
+ 
+ @example
+ @dots{}, type rm <filename>
+ @end example
+ 
+ @noindent
+ However, that is not the style that Texinfo uses.  (You can, of
+ course, modify the sources to @file{texinfo.tex} and the Info formatting commands
+ to output the @code{<@dots{}>} format if you wish.)@refill
+ 
+ 
+ @node env
+ @subsection @code{@@env}@{@var{environment-variable}@}
+ @findex env
+ 
+ Use the @code{@@env} command to indicate environment variables, as used
+ by many operating systems, including GNU.  Do not use it for
+ metasyntactic variables; use @code{@@var} instead (see the previous
+ section).
+ 
+ @code{@@env} is equivalent to @code{@@code} in its effects.
+ For example:
+ 
+ @example
+ The @@env@{PATH@} environment variable @dots{}
+ @end example
+ @noindent produces
+ @quotation
+ The @env{PATH} environment variable @dots{}
+ @end quotation
+ 
+ 
+ @node file
+ @subsection @code{@@file}@{@var{file-name}@}
+ @findex file
+ 
+ Use the @code{@@file} command to indicate text that is the name of a
+ file, buffer, or directory, or is the name of a node in Info.  You can
+ also use the command for file name suffixes.  Do not use @code{@@file}
+ for symbols in a programming language; use @code{@@code}.
+ 
+ Currently, @code{@@file} is equivalent to @code{@@samp} in its effects.
+ For example,@refill
+ 
+ @example
+ The @@file@{.el@} files are in
+ the @@file@{/usr/local/emacs/lisp@} directory.
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @quotation
+ The @file{.el} files are in
+ the @file{/usr/local/emacs/lisp} directory.
+ @end quotation
+ 
+ 
+ @node command
+ @subsection @code{@@command}@{@var{command-name}@}
+ @findex command
+ @cindex Command names, indicating
+ @cindex Program names, indicating
+ 
+ Use the @code{@@commannd} command to indicate command names, such as
+ @command{ls} or @command{cc}.
+ 
+ @code{@@command} is equivalent to @code{@@code} in its effects.
+ For example:
+ 
+ @example
+ The command @@command@{ls@} lists directory contents.
+ @end example
+ @noindent produces
+ @quotation
+ The command @command{ls} lists directory contents.
+ @end quotation
+ 
+ You should write the name of a program in the ordinary text font, rather
+ than using @code{@@command}, if you regard it as a new English word,
+ such as `Emacs' or `Bison'.
+ 
+ When writing an entire shell command invocation, as in @samp{ls -l},
+ you should use either @code{@@samp} or @code{@@code} at your discretion.
+ 
+ 
+ @node option
+ @subsection @code{@@option}@{@var{option-name}@}
+ @findex option
+ 
+ Use the @code{@@option} command to indicate a command-line option; for
+ example, @option{-l} or @option{--version} or
+ @option{--output=@var{filename}}.
+ 
+ @code{@@option} is equivalent to @code{@@samp} in its effects.
+ For example:
+ 
+ @example
+ The option @@option@{-l@} produces a long listing.
+ @end example
+ @noindent produces
+ @quotation
+ The option @option{-l} produces a long listing.
+ @end quotation
+ 
+ In tables, putting options inside @code{@@code} produces a
+ more pleasing effect.
+ 
+ @node dfn
+ @comment  node-name,  next,  previous,  up
+ @subsection @code{@@dfn}@{@var{term}@}
+ @findex dfn
+ 
+ Use the @code{@@dfn} command to identify the introductory or defining
+ use of a technical term.  Use the command only in passages whose
+ purpose is to introduce a term which will be used again or which the
+ reader ought to know.  Mere passing mention of a term for the first
+ time does not deserve @code{@@dfn}.  The command generates italics in
+ the printed manual, and double quotation marks in the Info file.  For
+ example:@refill
+ 
+ @example
+ Getting rid of a file is called @@dfn@{deleting@} it.
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @quotation
+ Getting rid of a file is called @dfn{deleting} it.
+ @end quotation
+ 
+ As a general rule, a sentence containing the defining occurrence of a
+ term should be a definition of the term.  The sentence does not need
+ to say explicitly that it is a definition, but it should contain the
+ information of a definition---it should make the meaning clear.
+ 
+ @ignore
+ @c node ctrl, , cite, Indicating
+ @comment  node-name,  next,  previous,  up
+ @c subsection @code{@@ctrl}@{@var{ctrl-char}@}
+ @findex ctrl
+ 
+ The @code{@@ctrl} command is seldom used.  It describes an ASCII
+ control character by inserting the actual character into the Info
+ file.
+ 
+ Usually, in Texinfo, you talk what you type as keyboard entry by
+ describing it with @code{@@kbd}: thus, @samp{@@kbd@{C-a@}} for
+ @kbd{C-a}.  Use @code{@@kbd} in this way when talking about a control
+ character that is typed on the keyboard by the user.  When talking
+ about a control character appearing in a file or a string, do not use
+ @code{@@kbd} since the control character is not typed.  Also, do not
+ use @samp{C-} but spell out @code{control-}, as in @samp{control-a},
+ to make it easier for a reader to understand.@refill
+ 
+ @code{@@ctrl} is an idea from the beginnings of Texinfo which may not
+ really fit in to the scheme of things.  But there may be times when
+ you want to use the command.  The pattern is
+ @code{@@ctrl@{@var{ch}@}}, where @var{ch} is an ASCII character
+ whose control-equivalent is wanted.  For example, to specify
+ @samp{control-f}, you would enter@refill
+ 
+ @example
+ @@ctrl@{f@}
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @quotation
+ @ctrl{f}
+ @end quotation
+ 
+ In the Info file, this generates the specified control character, output
+ literally into the file.  This is done so a user can copy the specified
+ control character (along with whatever else he or she wants) into another
+ Emacs buffer and use it.  Since the `control-h',`control-i', and
+ `control-j' characters are formatting characters, they should not be
+ indicated with @code{@@ctrl}.@refill
+ 
+ In a printed manual, @code{@@ctrl} generates text to describe or
+ identify that control character: an uparrow followed by the character
+ @var{ch}.@refill
+ @end ignore
+ 
+ 
+ @node abbr
+ @subsection @code{@@abbr}@{@var{abbreviation}[, @var{meaning}]@}
+ @findex abbr
+ 
+ @cindex Abbreviations, tagging
+ You can use the @code{@@abbr} command for general abbreviations.  The
+ abbreviation is given as the single argument in braces, as in
+ @samp{@@abbr@{Comput.@}}.  As a matter of style, or for particular
+ abbreviations, you may prefer to omit periods, as in
+ @samp{@@abbr@{Mr@} Stallman}.
+ 
+ @code{@@abbr} accepts an optional second argument, intended to be used
+ for the meaning of the abbreviation.
+ 
+ If the abbreviation ends with a lowercase letter and a period, and is
+ not at the end of a sentence, and has no second argument, remember to
+ use the @code{@@.} command (@pxref{Not Ending a
+ Sentence}) to get the correct spacing.  However, you do not have to
+ use @code{@@.} within the abbreviation itself; Texinfo automatically
+ assumes periods within the abbreviation do not end a sentence.
+ 
+ @cindex <abbr> and <abbrev> tags
+ In @TeX{} and in the Info output, the first argument is printed as-is;
+ if the second argument is present, it is printed in parentheses after
+ the abbreviation.  In HTML and XML, the @code{<abbr>} tag is
+ used; in Docbook, the @code{<abbrev>} tag is used.  For instance:
+ 
+ @example
+ @@abbr@{Comput. J., Computer Journal@}
+ @end example
+ 
+ @noindent produces:
+ 
+ @display
+ @abbr{Comput. J., Computer Journal}
+ @end display
+ 
+ For abbreviations consisting of all capital letters, you may prefer to
+ use the @code{@@acronym} command instead.  See the next section for
+ more on the usage of these two commands.
+ 
+ 
+ @node acronym
+ @subsection @code{@@acronym}@{@var{acronym}[, @var{meaning}]@}
+ @findex acronym
+ 
+ @cindex NASA, as acronym
+ @cindex Acronyms, tagging
+ Use the @code{@@acronym} command for abbreviations written in all
+ capital letters, such as `@acronym{NASA}'.  The abbreviation is given as
+ the single argument in braces, as in @samp{@@acronym@{NASA@}}.  As
+ a matter of style, or for particular acronyms, you may prefer to
+ use periods, as in @samp{@@acronym@{N.A.S.A.@}}.
+ 
+ @code{@@acronym} accepts an optional second argument, intended to be
+ used for the meaning of the acronym.
+ 
+ If the acronym is at the end of a sentence, and if there is no second
+ argument, remember to use the @code{@@.} or similar command
+ (@pxref{Ending a Sentence}) to get the correct spacing.
+ 
+ @cindex <acronym> tag
+ In @TeX{}, the acronym is printed in slightly smaller font.  In the
+ Info output, the argument is printed as-is.  In either format, if the
+ second argument is present, it is printed in parentheses after the
+ acronym.  In HTML, Docbook, and XML, the @code{<acronym>} tag is
+ used.  
+ 
+ For instance (since GNU is a recursive acronym, we use
+ @code{@@acronym} recursively):
+ 
+ @example
+ @@acronym@{GNU, @@acronym@{GNU@}'s Not Unix@}
+ @end example
+ 
+ @noindent produces:
+ 
+ @display
+ @acronym{GNU, @acronym{GNU}'s Not Unix}
+ @end display
+ 
+ @cindex Family names, in all capitals
+ In some circumstances, it is conventional to print family names in all
+ capitals.  Don't use @code{@@acronym} for this, since a name is not an
+ acronym.  Use @code{@@sc} instead (@pxref{Smallcaps}).
+ 
+ @code{@@abbr} and @code{@@acronym} are closely related commands: they
+ both signal to the reader that a shortened form is being used, and
+ possibly give a meaning.  When choosing whether to use these two
+ commands, please bear the following in mind.
+ 
+ @itemize @minus
+ @item
+ In standard English usage, acronyms are a subset of abbreviations:
+ they include pronounceable words like `@acronym{NATO}', `radar', and
+ `snafu', and some sources also include syllable acronyms like
+ `Usenet', hybrids like `@acronym{SIGGRAPH}', and unpronounceable
+ initialisms like `@acronym{FBI}'.
+ 
+ @item
+ In Texinfo, an acronym (but not an abbreviation) should consist only
+ of capital letters and periods, no lowercase.
+ 
+ @item
+ In @TeX{}, an acronym (but not an abbreviation) is printed in a
+ slightly smaller font.
+ 
+ @item
+ Some browsers place a dotted bottom border under abbreviations but not
+ acronyms.
+ 
+ @item
+ It's not essential to use either of these commands for all
+ abbreviations; use your judgment.  Text is perfectly readable without
+ them.
+ 
+ @end itemize
+ 
+ 
+ @node indicateurl
+ @subsection @code{@@indicateurl}@{@var{uniform-resource-locator}@}
+ @findex indicateurl
+ @cindex Uniform resource locator, indicating
+ @cindex URL, indicating
+ 
+ Use the @code{@@indicateurl} command to indicate a uniform resource
+ locator on the World Wide Web.  This is analogous to @code{@@file},
+ @code{@@var}, etc., and is purely for markup purposes.  It does not
+ produce a link you can follow in HTML output (use the @code{@@uref}
+ command for that, @pxref{uref,, @code{@@uref}}).  It is useful for
+ url's which do not actually exist.  For example:
+ 
+ @example
+ For example, the url might be @@indicateurl@{http://example.org/path@}.
+ @end example
+ 
+ @noindent which produces:
+ 
+ @display
+ For example, the url might be @indicateurl{http://example.org/path}.
+ @end display
+ 
+ 
+ @node email
+ @subsection @code{@@email}@{@var{email-address}[, @var{displayed-text}]@}
+ @findex email
+ 
+ Use the @code{@@email} command to indicate an electronic mail address.
+ It takes one mandatory argument, the address, and one optional argument, the
+ text to display (the default is the address itself).
+ 
+ @cindex Mailto link
+ In Info, the address is shown in angle brackets, preceded by the text
+ to display if any.  In @TeX{}, the angle brackets are omitted.  In
+ HTML output, @code{@@email} produces a @samp{mailto} link that usually
+ brings up a mail composition window.  For example:
+ 
+ @example
+ Send bug reports to @@email@{bug-texinfo@@@@gnu.org@},
+ suggestions to the @@email@{bug-texinfo@@@@gnu.org, same place@}.
+ @end example
+ @noindent produces
+ @display
+ Send bug reports to @email{bug-texinfo@@gnu.org},
+ suggestions to the @email{bug-texinfo@@gnu.org, same place}.
+ @end display
+ 
+ 
+ @node Emphasis
+ @section Emphasizing Text
+ @cindex Emphasizing text
+ 
+ Usually, Texinfo changes the font to mark words in the text according to
+ what category the words belong to; an example is the @code{@@code} command.
+ Most often, this is the best way to mark words.
+ However, sometimes you will want to emphasize text without indicating a
+ category.  Texinfo has two commands to do this.  Also, Texinfo has
+ several commands that specify the font in which @TeX{} will typeset
+ text.  These commands have no effect on Info and only one of them,
+ the @code{@@r} command, has any regular use.@refill
+ 
+ @menu
+ * emph & strong::               How to emphasize text in Texinfo.
+ * Smallcaps::                   How to use the small caps font.
+ * Fonts::                       Various font commands for printed output.
+ @end menu
+ 
+ @node emph & strong
+ @subsection @code{@@emph}@{@var{text}@} and @code{@@strong}@{@var{text}@}
+ @cindex Emphasizing text, font for
+ @findex emph
+ @findex strong
+ 
+ The @code{@@emph} and @code{@@strong} commands are for emphasis;
+ @code{@@strong} is stronger.  In printed output, @code{@@emph} produces
+ @emph{italics} and @code{@@strong} produces @strong{bold}.
+ 
+ For example,
+ 
+ @example
+ @group
+ @@strong@{Caution:@} @@samp@{rm * .[^.]*@}
+ removes @@emph@{all@} files in the directory.
+ @end group
+ @end example
+ 
+ @noindent
+ produces the following in printed output and HTML:
+ 
+ @quotation
+ @strong{Caution}: @samp{rm * .[^.]*}
+ removes @emph{all} files in the directory.
+ @end quotation
+ 
+ @noindent
+ and the following in Info:
+ 
+ @example
+ *Caution:* `rm * .[^.]*' removes _all_
+ files in the directory.
+ @end example
+ 
+ The @code{@@strong} command is seldom used except to mark what is, in
+ effect, a typographical element, such as the word `Caution' in the
+ preceding example.
+ 
+ In the Info output, @code{@@emph} surrounds the text with underscores
+ (@samp{_}), and @code{@@strong} puts asterisks around the text.
+ 
+ @quotation Caution
+ Do not use @code{@@strong} with the word @samp{Note}; Info will
+ mistake the combination for a cross reference.  (It's usually
+ redundant, anyway.)  Use a phrase such as @strong{Please notice} or
+ @strong{Caution} instead, or the optional argument to
+ @code{@@quotation}---@samp{Note} is allowable there.
+ @end quotation
+ 
+ 
+ @node Smallcaps
+ @subsection @code{@@sc}@{@var{text}@}: The Small Caps Font
+ @cindex Small caps font
+ @findex sc @r{(small caps font)}
+ 
+ Use the @samp{@@sc} command to set text in @sc{a small caps font}
+ (where possible).  Write the text you want to be in small caps between
+ braces in lower case, like this:
+ 
+ @example
+ Richard @@sc@{Stallman@} founded @@acronym@{GNU@}.
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @display
+ Richard @sc{Stallman} founded @acronym{GNU}.
+ @end display
+ 
+ As shown here, we recommend using @code{@@acronym} for actual
+ acronyms (@pxref{acronym}), and reserving @code{@@sc} for special
+ cases where you want small caps.  The output is not the same
+ (@code{@@acronym} prints in a smaller text font, not the small caps
+ font), but more importantly it describes the actual text more
+ accurately.
+ 
+ Family names are one case where small capitals are sometimes desirable,
+ also as shown here.
+ 
+ @cindex <small> tag
+ @TeX{} typesets any uppercase letters between the braces of an
+ @code{@@sc} command in full-size capitals; only lowercase letters are
+ printed in the small caps font.  In the Info output, the argument to
+ @code{@@sc} is printed in all upper case.  In HTML, the argument is
+ uppercased and the output marked with the @code{<small>} tag to reduce
+ the font size.
+ 
+ Since it's redundant to mark all-uppercase text with @code{@@sc},
+ @command{makeinfo} warns about such usage.
+ 
+ We recommend using regular mixed case wherever possible.
+ 
+ 
+ @node Fonts
+ @subsection Fonts for Printing, Not Info
+ @cindex Fonts for printing, not Info
+ 
+ @findex fonttextsize
+ @cindex Font size, reducing
+ @cindex Reducing font size
+ @cindex Smaller fonts
+ Texinfo provides one command to change the size of the main body font
+ in the @TeX{} output for a document: @code{@@fonttextsize}.  It has no
+ effect at all in other output.  It takes a single argument on the
+ remainder of the line, which must be either @samp{10} or @samp{11}.
+ For example:
+ 
+ @example
+ @@fonttextsize 10
+ @end example
+ 
+ @cindex Printing cost, reducing
+ The effect is to reduce the body font to a 10@dmn{pt} size (the
+ default is 11@dmn{pt}).  Fonts for other elements, such as sections
+ and chapters, are reduced accordingly.  This should only be used in
+ conjunction with @code{@@smallbook} (@pxref{smallbook,,Printing
+ ``Small'' Books}) or similar, since 10@dmn{pt} fonts on standard paper
+ (8.5x11 or A4) are too small.  One reason to use this command is to
+ save pages, and hence printing cost, for physical books.
+ 
+ Texinfo does not at present have commands to switch the font family
+ to use, or more general size-changing commands.
+ 
+ @cindex Styles, font
+ Texinfo also provides a number of font commands that specify font changes
+ in the printed manual and (where possible) in the HTML output, but
+ have no effect in the Info file.  All the commands apply to an
+ argument that follows, surrounded by braces.
+ 
+ @table @code
+ @item @@b
+ @findex b @r{(bold font)}
+ @cindex Bold font
+ selects @b{bold} face;
+ 
+ @item @@i
+ @findex i @r{(italic font)}
+ @cindex Italic font
+ selects an @i{italic} font;
+ 
+ @item @@r
+ @findex r @r{(roman font)}
+ @cindex Roman font
+ @cindex Default font
+ selects a @r{roman} font, which is the usual font in which text is
+ printed.  It may or may not be seriffed.
+ 
+ @item @@sansserif
+ @findex sansserif @r{(sans serif font)}
+ @cindex Sans serif font
+ selects a @sansserif{sans serif} font;
+ 
+ @item @@slanted
+ @findex slanted @r{(slanted font)}
+ @cindex Slanted font
+ @cindex Oblique font
+ selects a @slanted{slanted} font;
+ 
+ @item @@t
+ @findex t @r{(typewriter font)}
+ @cindex Monospace font
+ @cindex Fixed-width font
+ @cindex Typewriter font
+ selects the @t{fixed-width}, typewriter-style font used by @code{@@code};
+ 
+ @end table
+ 
+ (The commands with longer names were invented much later than the
+ others, at which time it did not seem desirable to use very short
+ names for such an infrequently needed feature.)
+ 
+ @cindex <lineannotation> Docbook tag
+ Only the @code{@@r} command has much use: in example-like
+ environments, you can use the @code{@@r} command to write comments in
+ the standard roman font instead of the fixed-width font.  This looks
+ better in printed output, and produces a @code{<lineannotation>} tag
+ in Docbook output.
+ 
+ For example,
+ 
+ @example
+ @group
+ @@lisp
+ (+ 2 2)    ; @@r@{Add two plus two.@}
+ @@end lisp
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @lisp
+ (+ 2 2)    ; @r{Add two plus two.}
+ @end lisp
+ 
+ In general, you should avoid using the other font commands.  Some of
+ them are only useful when documenting functionality of specific font
+ effects, such as in @TeX{} and related packages.
+ 
+ 
+ @node Quotations and Examples
+ @chapter Quotations and Examples
+ 
+ Quotations and examples are blocks of text consisting of one or more
+ whole paragraphs that are set off from the bulk of the text and
+ treated differently.  They are usually indented in the output.
+ 
+ @findex end
+ In Texinfo, you always begin a quotation or example by writing an
+ @@-command at the beginning of a line by itself, and end it by writing
+ an @code{@@end} command that is also at the beginning of a line by
+ itself.  For instance, you begin an example by writing @code{@@example}
+ by itself at the beginning of a line and end the example by writing
+ @code{@@end example} on a line by itself, at the beginning of that
+ line, and with only one space between the @code{@@end} and the
+ @code{example}.
+ 
+ @menu
+ * Block Enclosing Commands::    Different constructs for different purposes.
+ * quotation::                   Writing a quotation.
+ * example::                     Writing an example in a fixed-width font.
+ * verbatim::                    Writing a verbatim example.
+ * verbatiminclude::             Including a file verbatim.
+ * lisp::                        Illustrating Lisp code.
+ * small::                       Examples in a smaller font.
+ * display::                     Writing an example in the current font.
+ * format::                      Writing an example without narrowed margins.
+ * exdent::                      Undo indentation on a line.
+ * flushleft & flushright::      Pushing text flush left or flush right.
+ * noindent::                    Preventing paragraph indentation.
+ * indent::                      Forcing paragraph indentation.
+ * cartouche::                   Drawing rounded rectangles around examples.
+ @end menu
+ 
+ 
+ @node Block Enclosing Commands
+ @section Block Enclosing Commands
+ 
+ Here are commands for quotations and examples, explained further in the
+ following sections:
+ 
+ @table @code
+ @item @@quotation
+ Indicate text that is quoted. The text is filled, indented (from both
+ margins), and printed in a roman font by default.
+ 
+ @item @@example
+ Illustrate code, commands, and the like. The text is printed
+ in a fixed-width font, and indented but not filled.
+ 
+ @item @@verbatim
+ Mark a piece of text that is to be printed verbatim; no character
+ substitutions are made and all commands are ignored, until the next
+ @code{@@end verbatim}.  The text is printed in a fixed-width font,
+ and not indented or filled.  Extra spaces and blank lines are
+ significant, and tabs are expanded.
+ 
+ @item @@smallexample
+ Same as @code{@@example}, except that in @TeX{} this command typesets
+ text in a smaller font.
+ 
+ @item @@lisp
+ Like @code{@@example}, but specifically for illustrating Lisp code. The
+ text is printed in a fixed-width font, and indented but not filled.
+ 
+ @item @@smalllisp
+ Is to @code{@@lisp} as @code{@@smallexample} is to @code{@@example}.
+ 
+ @item @@display
+ Display illustrative text.  The text is indented but not filled, and
+ no font is selected (so, by default, the font is roman).@refill
+ 
+ @item @@smalldisplay
+ Is to @code{@@display} as @code{@@smallexample} is to @code{@@example}.
+ 
+ @item @@format
+ Like @code{@@display} (the text is not filled and no font is selected),
+ but the text is not indented.
+ 
+ @item @@smallformat
+ Is to @code{@@format} as @code{@@smallexample} is to @code{@@example}.
+ @end table
+ 
+ The @code{@@exdent} command is used within the above constructs to
+ undo the indentation of a line.
+ 
+ The @code{@@flushleft} and @code{@@flushright} commands are used to line
+ up the left or right margins of unfilled text.@refill
+ 
+ The @code{@@noindent} command may be used after one of the above
+ constructs to prevent the following text from being indented as a new
+ paragraph.
+ 
+ You can use the @code{@@cartouche} environment around one of the above
+ constructs to highlight the example or quotation by drawing a box with
+ rounded corners around it.  @xref{cartouche, , Drawing Cartouches Around
+ Examples}.
+ 
+ 
+ @node quotation
+ @section @code{@@quotation}: Block quotations
+ @cindex Quotations
+ @findex quotation
+ 
+ The text of a quotation is processed normally (regular font, text is
+ filled) except that:
+ 
+ @itemize @bullet
+ @item
+ the margins are closer to the center of the page, so the whole of the
+ quotation is indented;
+ 
+ @item
+ and the first lines of paragraphs are indented no more than other lines.
+ 
+ @end itemize
+ 
+ @quotation
+ This is an example of text written between an @code{@@quotation}
+ command and an @code{@@end quotation} command.  An @code{@@quotation}
+ command is most often used to indicate text that is excerpted from
+ another (real or hypothetical) printed work.
+ @end quotation
+ 
+ Write an @code{@@quotation} command as text on a line by itself.  This
+ line will disappear from the output.  Mark the end of the quotation
+ with a line beginning with and containing only @code{@@end quotation}.
+ The @code{@@end quotation} line will likewise disappear from the
+ output.
+ 
+ @code{@@quotation} takes one optional argument, given on the remainder
+ of the line.  This text, if present, is included at the beginning of
+ the quotation in bold or otherwise emphasized, and followed with a
+ @samp{:}.  For example:
+ 
+ @example
+ @@quotation Note
+ This is
+ a foo.
+ @@end quotation
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @quotation Note
+ This is
+ a foo.
+ @end quotation
+ 
+ If the @code{@@quotation} argument is exactly one of these words:
+ 
+ @example
+ Caution  Important  Note  Tip  Warning
+ @end example
+ 
+ @cindex <note> Docbook tag
+ @cindex <blockquote> HTML tag
+ @noindent then the Docbook output uses corresponding special tags
+ (@code{<note>}, etc.) instead of the default @code{<blockquote>}.
+ HTML output always uses @code{<blockquote>}.
+ 
+ 
+ @node example
+ @section @code{@@example}: Example Text
+ @cindex Examples, formatting them
+ @cindex Formatting examples
+ @findex example
+ 
+ The @code{@@example} environment is used to indicate an example that
+ is not part of the running text, such as computer input or output.
+ Write an @code{@@example} command at the beginning of a line by
+ itself.  Mark the end of the example with an @code{@@end example}
+ command, also written at the beginning of a line by itself.
+ 
+ An @code{@@example} environment has the following characteristics:
+ 
+ @itemize
+ @item Each line in the input file is a line in the output; that is,
+ the source text is not filled as it normally is.
+ @item Extra spaces and blank lines are significant.
+ @item The output is indented.
+ @item The output uses a fixed-width font.
+ @item Texinfo commands @emph{are} expanded; if you want the output to
+ be the input verbatim, use the @code{@@verbatim} environment instead
+ (@pxref{verbatim,,@code{@@verbatim}}).
+ @end itemize
+ 
+ For example,
+ 
+ @example
+ @@example
+ cp foo @@var@{dest1@}; \
+  cp foo @@var@{dest2@}
+ @@end example
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ cp foo @var{dest1}; \
+  cp foo @var{dest2}
+ @end example
+ 
+ The lines containing @code{@@example} and @code{@@end example} will
+ disappear from the output.  To make the output look good, you should
+ put a blank line before the @code{@@example} and another blank line
+ after the @code{@@end example}.  Blank lines inside the beginning
+ @code{@@example} and the ending @code{@@end example}, on the other
+ hand, do appear in the output.
+ 
+ @quotation Caution
+ Do not use tabs in the lines of an example!  (Or anywhere else in
+ Texinfo, except in verbatim environments.)  @TeX{} treats tabs as
+ single spaces, and that is not what they look like.  In Emacs, you can
+ use @kbd{M-x untabify} to convert tabs in a region to multiple spaces.
+ @end quotation
+ 
+ Examples are often, logically speaking, ``in the middle'' of a
+ paragraph, and the text that continues afterwards should not be
+ indented, as in the example above.  The @code{@@noindent} command
+ prevents a piece of text from being indented as if it were a new
+ paragraph (@pxref{noindent,,@code{@@noindent}}.
+ 
+ If you want to embed code fragments within sentences, instead of
+ displaying them, use the @code{@@code} command or its relatives
+ (@pxref{code,,@code{@@code}}).
+ 
+ If you wish to write a ``comment'' on a line of an example in the
+ normal roman font, you can use the @code{@@r} command (@pxref{Fonts}).
+ 
+ 
+ @node verbatim
+ @section @code{@@verbatim}: Literal Text
+ @findex verbatim
+ @cindex Verbatim environment
+ 
+ Use the @code{@@verbatim} environment for printing of text that may
+ contain special characters or commands that should not be interpreted,
+ such as computer input or output (@code{@@example} interprets its text
+ as regular Texinfo commands).  This is especially useful for including automatically
+ generated files in a Texinfo manual.
+ 
+ In general, the output will be just the same as the input.  No
+ character substitutions are made, e.g., all spaces and blank lines are
+ significant, including tabs.  In the printed manual, the text is
+ typeset in a fixed-width font, and not indented or filled.
+ 
+ Write a @code{@@verbatim} command at the beginning of a line by itself.
+ This line will disappear from the output.  Mark the end of the verbatim
+ block with a @code{@@end verbatim} command, also written at the
+ beginning of a line by itself.  The @code{@@end verbatim} will also
+ disappear from the output.
+ 
+ For example:
+ @c oops, got to trick this a bit: can't use @end verbatim inside @verbatim
+ 
+ @example
+ @exdent @t{@@verbatim}
+ @exdent @t{@{}
+ @exdent @key{TAB}@t{@@command with strange characters: @@'e}
+ @exdent @t{expand@key{TAB}me}
+ @exdent @t{@}}
+ @exdent @t{@@end verbatim}
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @verbatim
+ {
+         @command with strange characters: @'e
+ expand	me
+ }
+ @end verbatim
+ 
+ Since the lines containing @code{@@verbatim} and @code{@@end verbatim}
+ produce no output, typically you should put a blank line before the
+ @code{@@verbatim} and another blank line after the @code{@@end
+ verbatim}.  Blank lines between the beginning @code{@@verbatim} and
+ the ending @code{@@end verbatim} will appear in the output.
+ 
+ @cindex Verbatim, small
+ @cindex Small verbatim
+ You can get a ``small'' verbatim by enclosing the @code{@@verbatim} in
+ an @code{@@smallformat} environment, as shown here:
+ 
+ @c more cheating ...
+ @smallexample
+ @exdent @t{@@smallformat}
+ @exdent @t{@@verbatim}
+ @exdent @t{... still verbatim, but in a smaller font ...}
+ @exdent @t{@@end verbatim}
+ @exdent @t{@@end smallformat}
+ @end smallexample
+ 
+ Finally, a word of warning: it is not reliable to use
+ @code{@@verbatim} inside other Texinfo constructs.
+ 
+ 
+ @node verbatiminclude
+ @section @code{@@verbatiminclude} @var{file}: Include a File Verbatim
+ @cindex Verbatim, include file
+ @cindex Including a file verbatim
+ @findex verbatiminclude
+ 
+ You can include the exact contents of a file in the document with the
+ @code{@@verbatiminclude} command:
+ 
+ @example
+ @@verbatiminclude @var{filename}
+ @end example
+ 
+ The contents of @var{filename} is printed in a verbatim environment
+ (@pxref{verbatim,,@code{@@verbatim}}).  Generally, the file is printed
+ exactly as it is, with all special characters and white space
+ retained.  No indentation is added; if you want indentation, enclose
+ the @code{@@verbatiminclude} within @code{@@example}
+ (@pxref{example,,@code{@@example}}).
+ 
+ The name of the file is taken literally, with a single exception:
+ @code{@@value@{@var{var}@}} references are expanded.  This makes it
+ possible to include files in other directories within a distribution,
+ for instance:
+ 
+ @example
+ @@verbatiminclude @@value@{top_srcdir@}/NEWS
+ @end example
+ 
+ @noindent (You still have to get @code{top_srcdir} defined in the
+ first place.)
+ 
+ For a method on printing the file contents in a smaller font size, see
+ the end of the previous section on @code{@@verbatim}.
+ 
+ 
+ @node lisp
+ @section @code{@@lisp}: Marking a Lisp Example
+ @findex lisp
+ @cindex Lisp example
+ 
+ The @code{@@lisp} command is used for Lisp code.  It is synonymous
+ with the @code{@@example} command.
+ 
+ @lisp
+ This is an example of text written between an
+ @code{@@lisp} command and an @code{@@end lisp} command.
+ @end lisp
+ 
+ Use @code{@@lisp} instead of @code{@@example} to preserve information
+ regarding the nature of the example.  This is useful, for example, if
+ you write a function that evaluates only and all the Lisp code in a
+ Texinfo file.  Then you can use the Texinfo file as a Lisp
+ library.@footnote{It would be straightforward to extend Texinfo to work
+ in a similar fashion for C, Fortran, or other languages.}
+ 
+ Mark the end of @code{@@lisp} with @code{@@end lisp} on a line by
+ itself.
+ 
+ 
+ @node small
+ @section @code{@@small@dots{}} Block Commands
+ @cindex Small examples
+ @cindex Examples in smaller fonts
+ @cindex Lisp examples in smaller fonts
+ @findex smalldisplay
+ @findex smallexample
+ @findex smallformat
+ @findex smalllisp
+ 
+ In addition to the regular @code{@@example} and @code{@@lisp} commands,
+ Texinfo has ``small'' example-style commands.  These are
+ @code{@@smalldisplay}, @code{@@smallexample}, @code{@@smallformat}, and
+ @code{@@smalllisp}.
+ 
+ In Info, the @code{@@small@dots{}} commands are equivalent to their
+ non-small companion commands.
+ 
+ In @TeX{}, however, the @code{@@small@dots{}} commands typeset text in
+ a smaller font than the non-small example commands.  Consequently,
+ many examples containing long lines fit on a page without needing to
+ be shortened.
+ 
+ Mark the end of an @code{@@small@dots{}} block with a corresponding
+ @code{@@end small@dots{}}.  For example, pair @code{@@smallexample} with
+ @code{@@end smallexample}.
+ 
+ Here is an example of the font used by the @code{@@small@dots{}}
+ commands (in Info, the output will be the same as usual):
+ 
+ @smallexample
+ @dots{} 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.
+ @end smallexample
+ 
+ The @code{@@small@dots{}} commands make it easier to prepare manuals
+ without forcing you to edit examples by hand to fit them onto narrower
+ pages.
+ 
+ As a general rule, a printed document looks much better if you use
+ only one of (for instance) @code{@@example} or @code{@@smallexample}
+ consistently within a chapter.
+ 
+ 
+ @node display
+ @section @code{@@display} and @code{@@smalldisplay}
+ @cindex Display formatting
+ @findex display
+ 
+ The @code{@@display} command begins a kind of example, where each line
+ of input produces a line of output, and the output is indented.  It is
+ thus like the @code{@@example} command except that, in a printed
+ manual, @code{@@display} does not select the fixed-width font.  In
+ fact, it does not specify the font at all, so that the text appears in
+ the same font it would have appeared in without the @code{@@display}
+ command.
+ 
+ @display
+ This is an example of text written between an @code{@@display} command
+ and an @code{@@end display} command.  The @code{@@display} command
+ indents the text, but does not fill it.
+ @end display
+ 
+ @findex smalldisplay
+ Texinfo also provides a command @code{@@smalldisplay}, which is like
+ @code{@@display} but uses a smaller font in @code{@@smallbook} format.
+ @xref{small}.
+ 
+ The @code{@@table} command (@pxref{table}) does not work inside
+ @code{@@display}.  Since @code{@@display} is line-oriented, it doesn't
+ make sense to use them together.  If you want to indent a table, try
+ @code{@@quotation} (@pxref{quotation}).
+ 
+ 
+ @node format
+ @section @code{@@format} and @code{@@smallformat}
+ @findex format
+ 
+ The @code{@@format} command is similar to @code{@@example} except
+ that, in the printed manual, @code{@@format} does not select the
+ fixed-width font and does not narrow the margins.
+ 
+ @format
+ This is an example of text written between an @code{@@format} command
+ and an @code{@@end format} command.  As you can see
+ from this example,
+ the @code{@@format} command does not fill the text.
+ @end format
+ 
+ @findex smallformat
+ Texinfo also provides a command @code{@@smallformat}, which is like
+ @code{@@format} but uses a smaller font in @code{@@smallbook} format.
+ @xref{small}.
+ 
+ 
+ 
+ @node exdent
+ @section @code{@@exdent}: Undoing a Line's Indentation
+ @cindex Indentation undoing
+ @findex exdent
+ 
+ The @code{@@exdent} command removes any indentation a line might have.
+ The command is written at the beginning of a line and applies only to
+ the text that follows the command that is on the same line.  Do not use
+ braces around the text.  In a printed manual, the text on an
+ @code{@@exdent} line is printed in the roman font.@refill
+ 
+ @code{@@exdent} is usually used within examples.  Thus,@refill
+ 
+ @example
+ @group
+ @@example
+ This line follows an @@@@example command.
+ @@exdent This line is exdented.
+ This line follows the exdented line.
+ The @@@@end example comes on the next line.
+ @@end example
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ @group
+ This line follows an @@example command.
+ @exdent This line is exdented.
+ This line follows the exdented line.
+ The @@end example comes on the next line.
+ @end group
+ @end example
+ 
+ In practice, the @code{@@exdent} command is rarely used.
+ Usually, you un-indent text by ending the example and
+ returning the page to its normal width.@refill
+ 
+ 
+ @node flushleft & flushright
+ @section @code{@@flushleft} and @code{@@flushright}
+ @findex flushleft
+ @findex flushright
+ @cindex Ragged right
+ @cindex Ragged left
+ 
+ The @code{@@flushleft} and @code{@@flushright} commands line up the
+ ends of lines on the left and right margins of a page,
+ but do not fill the text.  The commands are written on lines of their
+ own, without braces.  The @code{@@flushleft} and @code{@@flushright}
+ commands are ended by @code{@@end flushleft} and @code{@@end
+ flushright} commands on lines of their own.@refill
+ 
+ @need 1500
+ For example,
+ 
+ @example
+ @group
+ @@flushleft
+ This text is
+ written flushleft.
+ @@end flushleft
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @quotation
+ @flushleft
+ This text is
+ written flushleft.
+ @end flushleft
+ @end quotation
+ 
+ 
+ @code{@@flushright} produces the type of indentation often used in the
+ return address of letters.  For example,
+ 
+ @example
+ @group
+ @@flushright
+ Here is an example of text written
+ flushright.  The @@code@{@@flushright@} command
+ right justifies every line but leaves the
+ left end ragged.
+ @@end flushright
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @flushright
+ Here is an example of text written
+ flushright.  The @code{@@flushright} command
+ right justifies every line but leaves the
+ left end ragged.
+ @end flushright
+ 
+ 
+ @node noindent
+ @section @code{@@noindent}: Omitting Indentation
+ @cindex Omitting indentation
+ @cindex Suppressing indentation
+ @cindex Indentation, omitting
+ @findex noindent
+ 
+ An example or other inclusion can break a paragraph into segments.
+ Ordinarily, the formatters indent text that follows an example as a new
+ paragraph.  You can prevent this on a case-by-case basis by writing
+ @code{@@noindent} at the beginning of a line, preceding the continuation
+ text.  You can also disable indentation for all paragraphs globally with
+ @code{@@paragraphindent} (@pxref{paragraphindent, Paragraph Indenting}).
+ 
+ It is best to write @code{@@noindent} on a line by itself, since in most
+ environments, spaces following the command will not be ignored.  It's ok
+ to use it at the beginning of a line, with text following, outside of
+ any environment.
+ 
+ @need 1500
+ For example:
+ 
+ @example
+ @group
+ @@example
+ This is an example
+ @@end example
+ 
+ @@noindent
+ This line is not indented.  As you can see, the
+ beginning of the line is fully flush left with the line
+ that follows after it.  (This whole example is between
+ @@code@{@@@@display@} and @@code@{@@@@end display@}.)
+ @end group
+ @end example
+ 
+ @noindent produces:
+ 
+ @display
+ 
+ @example
+ This is an example
+ @end example
+ 
+ @noindent
+ This line is not indented.  As you can see, the
+ beginning of the line is fully flush left with the line
+ that follows after it.  (This whole example is between
+ @code{@@display} and @code{@@end display}.)
+ 
+ @end display
+ 
+ To adjust the number of blank lines properly in the Info file output,
+ remember that the line containing @code{@@noindent} does not generate a
+ blank line, and neither does the @code{@@end example} line.
+ 
+ In the Texinfo source file for this manual, each line that says
+ `produces' is preceded by @code{@@noindent}.
+ 
+ Do not put braces after an @code{@@noindent} command; they are not
+ necessary, since @code{@@noindent} is a command used outside of
+ paragraphs (@pxref{Command Syntax}).
+ 
+ 
+ @node indent
+ @section @code{@@indent}: Forcing Indentation
+ @cindex Forcing indentation
+ @cindex Inserting indentation
+ @cindex Indentation, forcing
+ @findex indent
+ 
+ @indent
+ To complement the @code{@@noindent} command (see the previous
+ section), Texinfo provides the @code{@@indent} command that forces a
+ paragraph to be indented.  This paragraph, for instance, is indented
+ using an @code{@@indent} command.  The first paragraph of a section is
+ the most likely place to use @code{@@indent}, to override the normal
+ behavior of no indentation there (@pxref{paragraphindent}).
+ 
+ It is best to write @code{@@indent} on a line by itself, since in most
+ environments, spaces following the command will not be ignored.  The
+ @code{@@indent} line will not generate a blank line in the Info output
+ within an environment.
+ 
+ However, it is ok to use it at the beginning of a line, with text
+ following, outside of any environment.
+ 
+ Do not put braces after an @code{@@indent} command; they are not
+ necessary, since @code{@@indent} is a command used outside of
+ paragraphs (@pxref{Command Syntax}).
+ 
+ 
+ @node cartouche
+ @section @code{@@cartouche}: Rounded Rectangles Around Examples
+ @findex cartouche
+ @cindex Box with rounded corners
+ @cindex Rounded rectangles, around examples
+ 
+ In a printed manual, the @code{@@cartouche} command draws a box with
+ rounded corners around its contents.  In HTML, a normal rectangle is
+ drawn (that's the best HTML can do).  @code{@@cartouche} has no effect
+ in Info output.
+ 
+ You can use this command to further highlight an example or quotation.
+ For instance, you could write a manual in which one type of example is
+ surrounded by a cartouche for emphasis.
+ 
+ For example,
+ 
+ @example
+ @@cartouche
+ @@example
+ % pwd
+ /usr/local/share/emacs
+ @@end example
+ @@end cartouche
+ @end example
+ 
+ @noindent
+ surrounds the two-line example with a box with rounded corners, in the
+ printed manual.
+ 
+ The output from the example looks like this (if you're reading this in
+ Info, you'll see the @code{@@cartouche} had no effect):
+ 
+ @cartouche
+ @example
+ % pwd
+ /usr/local/info
+ @end example
+ @end cartouche
+ 
+ For proper output in HTML, it's necessary to put the
+ @code{@@cartouche} around the @code{@@example}, and not the other way
+ around.  This limitation of @command{makeinfo} may be removed one day.
+ 
+ @code{@@cartouche} also implies @code{@@group} (@pxref{group}).
+ 
+ @node Lists and Tables
+ @chapter Lists and Tables
+ @cindex Making lists and tables
+ @cindex Lists and tables, making
+ @cindex Tables and lists, making
+ 
+ Texinfo has several ways of making lists and tables.  Lists can be
+ bulleted or numbered; two-column tables can highlight the items in
+ the first column; multi-column tables are also supported.
+ 
+ @menu
+ * Introducing Lists::           Texinfo formats lists for you.
+ * itemize::                     How to construct a simple list.
+ * enumerate::                   How to construct a numbered list.
+ * Two-column Tables::           How to construct a two-column table.
+ * Multi-column Tables::         How to construct generalized tables.
+ @end menu
+ 
+ @node Introducing Lists
+ @section Introducing Lists
+ 
+ Texinfo automatically indents the text in lists or tables, and numbers
+ an enumerated list.  This last feature is useful if you modify the
+ list, since you do not need to renumber it yourself.@refill
+ 
+ Numbered lists and tables begin with the appropriate @@-command at the
+ beginning of a line, and end with the corresponding @code{@@end}
+ command on a line by itself.  The table and itemized-list commands
+ also require that you write formatting information on the same line as
+ the beginning @@-command.@refill
+ 
+ Begin an enumerated list, for example, with an @code{@@enumerate}
+ command and end the list with an @code{@@end enumerate} command.
+ Begin an itemized list with an @code{@@itemize} command, followed on
+ the same line by a formatting command such as @code{@@bullet}, and end
+ the list with an @code{@@end itemize} command.@refill
+ @findex end
+ 
+ Precede each element of a list with an @code{@@item} or @code{@@itemx}
+ command.@refill
+ 
+ @sp 1
+ @noindent
+ Here is an itemized list of the different kinds of table and lists:@refill
+ 
+ @itemize @bullet
+ @item
+ Itemized lists with and without bullets.
+ 
+ @item
+ Enumerated lists, using numbers or letters.
+ 
+ @item
+ Two-column tables with highlighting.
+ @end itemize
+ 
+ @sp 1
+ @noindent
+ Here is an enumerated list with the same items:@refill
+ 
+ @enumerate
+ @item
+ Itemized lists with and without bullets.
+ 
+ @item
+ Enumerated lists, using numbers or letters.
+ 
+ @item
+ Two-column tables with highlighting.
+ @end enumerate
+ 
+ @sp 1
+ @noindent
+ And here is a two-column table with the same items and their
+ @w{@@-commands}:@refill
+ 
+ @table @code
+ @item @@itemize
+ Itemized lists with and without bullets.
+ 
+ @item @@enumerate
+ Enumerated lists, using numbers or letters.
+ 
+ @item @@table
+ @itemx @@ftable
+ @itemx @@vtable
+ Two-column tables, optionally with indexing.
+ @end table
+ 
+ 
+ @node itemize
+ @section @code{@@itemize}: Making an Itemized List
+ @cindex Itemization
+ @findex itemize
+ 
+ The @code{@@itemize} command produces sequences of indented
+ paragraphs, with a bullet or other mark inside the left margin
+ at the beginning of each paragraph for which such a mark is desired.@refill
+ 
+ @cindex @code{@@w}, for blank items
+ Begin an itemized list by writing @code{@@itemize} at the beginning of
+ a line.  Follow the command, on the same line, with a character or a
+ Texinfo command that generates a mark.  Usually, you will write
+ @code{@@bullet} after @code{@@itemize}, but you can use
+ @code{@@minus}, or any command or character that results in a single
+ character in the Info file.  If you don't want any mark at all, use
+ @code{@@w}.  (When you write the mark command such as
+ @code{@@bullet} after an @code{@@itemize} command, you may omit the
+ @samp{@{@}}.)  If you don't specify a mark command, the default is
+ @code{@@bullet}.
+ 
+ Write the text of the indented paragraphs themselves after the
+ @code{@@itemize}, up to another line that says @code{@@end
+ itemize}.@refill
+ 
+ @findex item
+ At the beginning of each paragraph for which a mark in the margin is
+ desired, write a line that starts with @code{@@item}.  It is ok to
+ have text following the @code{@@item}.
+ 
+ Usually, you should put a blank line before an @code{@@item}.  This
+ puts a blank line in the Info file. (@TeX{} inserts the proper
+ interline whitespace in either case.)  Except when the entries are
+ very brief, these blank lines make the list look better.@refill
+ 
+ Here is an example of the use of @code{@@itemize}, followed by the
+ output it produces.  @code{@@bullet} produces an @samp{*} in Info and a
+ round dot in @TeX{}.
+ 
+ @example
+ @group
+ @@itemize @@bullet
+ @@item
+ Some text for foo.
+ 
+ @@item
+ Some text
+ for bar.
+ @@end itemize
+ @end group
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @quotation
+ @itemize @bullet
+ @item
+ Some text for foo.
+ 
+ @item
+ Some text
+ for bar.
+ @end itemize
+ @end quotation
+ 
+ Itemized lists may be embedded within other itemized lists.  Here is a
+ list marked with dashes embedded in a list marked with bullets:@refill
+ 
+ @example
+ @group
+ @@itemize @@bullet
+ @@item
+ First item.
+ 
+ @@itemize @@minus
+ @@item
+ Inner item.
+ 
+ @@item
+ Second inner item.
+ @@end itemize
+ 
+ @@item
+ Second outer item.
+ @@end itemize
+ @end group
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @quotation
+ @itemize @bullet
+ @item
+ First item.
+ 
+ @itemize @minus
+ @item
+ Inner item.
+ 
+ @item
+ Second inner item.
+ @end itemize
+ 
+ @item
+ Second outer item.
+ @end itemize
+ @end quotation
+ 
+ 
+ @node enumerate
+ @section @code{@@enumerate}: Making a Numbered or Lettered List
+ @cindex Enumeration
+ @findex enumerate
+ 
+ @code{@@enumerate} is like @code{@@itemize} (@pxref{itemize,,
+ @code{@@itemize}}), except that the labels on the items are
+ successive integers or letters instead of bullets.
+ 
+ Write the @code{@@enumerate} command at the beginning of a line.  The
+ command does not require an argument, but accepts either a number or a
+ letter as an option.  Without an argument, @code{@@enumerate} starts the
+ list with the number @samp{1}.  With a numeric argument, such as
+ @samp{3}, the command starts the list with that number.  With an upper
+ or lower case letter, such as @samp{a} or @samp{A}, the command starts
+ the list with that letter.
+ 
+ Write the text of the enumerated list in the same way as an itemized
+ list: write a line starting with @code{@@item} at the beginning of
+ each paragraph that you want enumerated.  It is ok to have text
+ following the @code{@@item}.
+ 
+ You should put a blank line between entries in the list.
+ This generally makes it easier to read the Info file.
+ 
+ @need 1500
+ Here is an example of @code{@@enumerate} without an argument:
+ 
+ @example
+ @group
+ @@enumerate
+ @@item
+ Underlying causes.
+ 
+ @@item
+ Proximate causes.
+ @@end enumerate
+ @end group
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @enumerate
+ @item
+ Underlying causes.
+ 
+ @item
+ Proximate causes.
+ @end enumerate
+ @sp 1
+ Here is an example with an argument of @kbd{3}:@refill
+ @sp 1
+ @example
+ @group
+ @@enumerate 3
+ @@item
+ Predisposing causes.
+ 
+ @@item
+ Precipitating causes.
+ 
+ @@item
+ Perpetuating causes.
+ @@end enumerate
+ @end group
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @enumerate 3
+ @item
+ Predisposing causes.
+ 
+ @item
+ Precipitating causes.
+ 
+ @item
+ Perpetuating causes.
+ @end enumerate
+ @sp 1
+ Here is a brief summary of the alternatives.  The summary is constructed
+ using @code{@@enumerate} with an argument of @kbd{a}.@refill
+ @sp 1
+ @enumerate a
+ @item
+ @code{@@enumerate}
+ 
+ Without an argument, produce a numbered list, starting with the number
+ 1.@refill
+ 
+ @item
+ @code{@@enumerate @var{positive-integer}}
+ 
+ With a (positive) numeric argument, start a numbered list with that
+ number.  You can use this to continue a list that you interrupted with
+ other text.@refill
+ 
+ @item
+ @code{@@enumerate @var{upper-case-letter}}
+ 
+ With an upper case letter as argument, start a list
+ in which each item is marked
+ by a letter, beginning with that upper case letter.@refill
+ 
+ @item
+ @code{@@enumerate @var{lower-case-letter}}
+ 
+ With a lower case letter as argument, start a list
+ in which each item is marked by
+ a letter, beginning with that lower case letter.@refill
+ @end enumerate
+ 
+ You can also nest enumerated lists, as in an outline.@refill
+ 
+ @node Two-column Tables
+ @section Making a Two-column Table
+ @cindex Tables, making two-column
+ @findex table
+ 
+ @code{@@table} is similar to @code{@@itemize} (@pxref{itemize,,
+ @code{@@itemize}}), but allows you to specify a name or heading line for
+ each item.  The @code{@@table} command is used to produce two-column
+ tables, and is especially useful for glossaries, explanatory
+ exhibits, and command-line option summaries.
+ 
+ @menu
+ * table::                       How to construct a two-column table.
+ * ftable vtable::               Automatic indexing for two-column tables.
+ * itemx::                       How to put more entries in the first column.
+ @end menu
+ 
+ @node table
+ @subsection Using the @code{@@table} Command
+ 
+ @cindex Definition lists, typesetting
+ Use the @code{@@table} command to produce two-column tables.  It is
+ usually listed for ``definition lists'' of various sorts, where you
+ have a list of terms and a brief text with each one.
+ 
+ Write the @code{@@table} command at the beginning of a line, after a
+ blank line, and follow it on the same line with an argument that is a
+ Texinfo ``indicating'' command such as @code{@@code}, @code{@@samp},
+ @code{@@var}, @code{@@option}, or @code{@@kbd} (@pxref{Indicating}).
+ 
+ This command will be applied to the text that goes into the first
+ column of each item and thus determines how it will be highlighted.
+ For example, @code{@@table @@code} will cause the text in the first
+ column to be output as if it @code{@@code} command.
+ 
+ @findex asis
+ You may also use the @code{@@asis} command as an argument to
+ @code{@@table}.  @code{@@asis} is a command that does nothing; if you
+ use this command after @code{@@table}, the first column entries are
+ output without added highlighting (``as is'').
+ 
+ The @code{@@table} command works with other commands besides those
+ explicitly mentioned here.  However, you can only use commands that
+ normally take arguments in braces.  (In this case, however, you use
+ the command name without an argument, because the subsequent
+ @code{@@item}'s will supply the argument.)
+ 
+ @findex item
+ Begin each table entry with an @code{@@item} command at the beginning
+ of a line.  Write the first column text on the same line as the
+ @code{@@item} command.  Write the second column text on the line
+ following the @code{@@item} line and on subsequent lines.  (You do not
+ need to type anything for an empty second column entry.)  You may
+ write as many lines of supporting text as you wish, even several
+ paragraphs.  But only the text on the same line as the @code{@@item}
+ will be placed in the first column (including any footnotes).
+ 
+ Normally, you should put a blank line before an @code{@@item} line.
+ This puts a blank line in the Info file.  Except when the entries are
+ very brief, a blank line looks better.
+ 
+ End the table with a line consisting of @code{@@end table}, followed
+ by a blank line.  @TeX{} will always start a new paragraph after the
+ table, so the blank line is needed for the Info output to be analogous.
+ 
+ @need 1500
+ The following table, for example, highlights the text in the first
+ column with an @code{@@samp} command:
+ 
+ @example
+ @group
+ @@table @@samp
+ @@item foo
+ This is the text for
+ @@samp@{foo@}.
+ 
+ @@item bar
+ Text for @@samp@{bar@}.
+ @@end table
+ @end group
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @table @samp
+ @item foo
+ This is the text for
+ @samp{foo}.
+ @item bar
+ Text for @samp{bar}.
+ @end table
+ 
+ If you want to list two or more named items with a single block of
+ text, use the @code{@@itemx} command.  (@xref{itemx,,@code{@@itemx}}.)
+ 
+ 
+ @node ftable vtable
+ @subsection @code{@@ftable} and @code{@@vtable}
+ @cindex Tables with indexes
+ @cindex Indexing table entries automatically
+ @findex ftable
+ @findex vtable
+ 
+ The @code{@@ftable} and @code{@@vtable} commands are the same as the
+ @code{@@table} command except that @code{@@ftable} automatically enters
+ each of the items in the first column of the table into the index of
+ functions and @code{@@vtable} automatically enters each of the items in
+ the first column of the table into the index of variables.  This
+ simplifies the task of creating indices.  Only the items on the same
+ line as the @code{@@item} commands are indexed, and they are indexed in
+ exactly the form that they appear on that line.  @xref{Indices},
+ for more information about indices.@refill
+ 
+ Begin a two-column table using @code{@@ftable} or @code{@@vtable} by
+ writing the @@-command at the beginning of a line, followed on the same
+ line by an argument that is a Texinfo command such as @code{@@code},
+ exactly as you would for an @code{@@table} command; and end the table
+ with an @code{@@end ftable} or @code{@@end vtable} command on a line by
+ itself.
+ 
+ See the example for @code{@@table} in the previous section.
+ 
+ @node itemx
+ @subsection @code{@@itemx}
+ @cindex Two named items for @code{@@table}
+ @findex itemx
+ 
+ Use the @code{@@itemx} command inside a table when you have two or more
+ first column entries for the same item, each of which should appear on a
+ line of its own.
+ 
+ Use @code{@@item} for the first entry, and @code{@@itemx} for all
+ subsequent entries; @code{@@itemx} must always follow an @code{@@item}
+ command, with no blank line intervening.
+ 
+ The @code{@@itemx} command works exactly like @code{@@item} except
+ that it does not generate extra vertical space above the first column
+ text.  If you have multiple consecutive @code{@@itemx} commands, do
+ not insert any blank lines between them.
+ 
+ For example,
+ 
+ @example
+ @group
+ @@table @@code
+ @@item upcase
+ @@itemx downcase
+ These two functions accept a character or a string as
+ argument, and return the corresponding upper case (lower
+ case) character or string.
+ @@end table
+ @end group
+ @end example
+ 
+ @noindent
+ This produces:
+ 
+ @table @code
+ @item upcase
+ @itemx downcase
+ These two functions accept a character or a string as
+ argument, and return the corresponding upper case (lower
+ case) character or string.@refill
+ @end table
+ 
+ @noindent
+ (Note also that this example illustrates multi-line supporting text in
+ a two-column table.)@refill
+ 
+ 
+ @node Multi-column Tables
+ @section @code{@@multitable}: Multi-column Tables
+ @cindex Tables, making multi-column
+ @findex multitable
+ 
+ @code{@@multitable} allows you to construct tables with any number of
+ columns, with each column having any width you like.
+ 
+ You define the column widths on the @code{@@multitable} line itself, and
+ write each row of the actual table following an @code{@@item} command,
+ with columns separated by an @code{@@tab} command.  Finally, @code{@@end
+ multitable} completes the table.  Details in the sections below.
+ 
+ @menu
+ * Multitable Column Widths::    Defining multitable column widths.
+ * Multitable Rows::             Defining multitable rows, with examples.
+ @end menu
+ 
+ @node Multitable Column Widths
+ @subsection Multitable Column Widths
+ @cindex Multitable column widths
+ @cindex Column widths, defining for multitables
+ @cindex Widths, defining multitable column
+ 
+ You can define the column widths for a multitable in two ways: as
+ fractions of the line length; or with a prototype row.  Mixing the two
+ methods is not supported.  In either case, the widths are defined
+ entirely on the same line as the @code{@@multitable} command.
+ 
+ @enumerate
+ @item
+ @findex columnfractions
+ @cindex Line length, column widths as fraction of
+ To specify column widths as fractions of the line length, write
+ @code{@@columnfractions} and the decimal numbers (presumably less than
+ 1; a leading zero is allowed and ignored) after the
+ @code{@@multitable} command, as in:
+ 
+ @example
+ @@multitable @@columnfractions .33 .33 .33
+ @end example
+ 
+ The fractions need not add up exactly to 1.0, as these do not.  This
+ allows you to produce tables that do not need the full line length.
+ 
+ @item
+ @cindex Prototype row, column widths defined by
+ To specify a prototype row, write the longest entry for each column
+ enclosed in braces after the @code{@@multitable} command.  For example:
+ 
+ @example
+ @@multitable @{some text for column one@} @{for column two@}
+ @end example
+ 
+ @noindent
+ The first column will then have the width of the typeset `some text for
+ column one', and the second column the width of `for column two'.
+ 
+ The prototype entries need not appear in the table itself.
+ 
+ Although we used simple text in this example, the prototype entries can
+ contain Texinfo commands; markup commands such as @code{@@code} are
+ particularly likely to be useful.
+ 
+ @end enumerate
+ 
+ 
+ @node Multitable Rows
+ @subsection Multitable Rows
+ @cindex Multitable rows
+ @cindex Rows, of a multitable
+ 
+ @findex item
+ @findex tab
+ After the @code{@@multitable} command defining the column widths (see
+ the previous section), you begin each row in the body of a multitable
+ with @code{@@item}, and separate the column entries with @code{@@tab}.
+ Line breaks are not special within the table body, and you may break
+ input lines in your source file as necessary.
+ 
+ @findex headitem
+ @cindex Heading row, in table
+ @cindex <thead> HTML tag
+ You can also use @code{@@headitem} instead of @code{@@item} to produce
+ a @dfn{heading row}.  The @TeX{} output for such a row is in bold, and
+ the HTML, XML, and Docbook output uses the @code{<thead>} tag.  In
+ Info, the heading row is followed by a separator line made of dashes
+ (@samp{-} characters).
+ 
+ Here is a complete example of a multi-column table (the text is from
+ @cite{The GNU Emacs Manual}, @pxref{Split Window,, Splitting Windows,
+ emacs, The GNU Emacs Manual}):
+ 
+ @example
+ @@multitable @@columnfractions .15 .45 .4
+ @@headitem Key @@tab Command @@tab Description
+ @@item C-x 2
+ @@tab @@code@{split-window-vertically@}
+ @@tab Split the selected window into two windows,
+ with one above the other.
+ @@item C-x 3
+ @@tab @@code@{split-window-horizontally@}
+ @@tab Split the selected window into two windows
+ positioned side by side.
+ @@item C-Mouse-2
+ @@tab
+ @@tab In the mode line or scroll bar of a window,
+ split that window.
+ @@end multitable
+ @end example
+ 
+ @noindent produces:
+ 
+ @multitable @columnfractions .15 .45 .4
+ @headitem Key @tab Command @tab Description
+ @item C-x 2
+ @tab @code{split-window-vertically}
+ @tab Split the selected window into two windows,
+ with one above the other.
+ @item C-x 3
+ @tab @code{split-window-horizontally}
+ @tab Split the selected window into two windows
+ positioned side by side.
+ @item C-Mouse-2
+ @tab
+ @tab In the mode line or scroll bar of a window,
+ split that window.
+ @end multitable
+ 
+ 
+ @node Special Displays
+ @chapter Special Displays
+ @cindex Special displays
+ 
+ The commands in this chapter allow you to write text that is specially
+ displayed (output format permitting), outside of the normal document
+ flow.
+ 
+ One set of such commands is for creating ``floats'', that is, figures,
+ tables, and the like, set off from the main text, possibly numbered,
+ captioned, and/or referred to from elsewhere in the document.  Images
+ are often included in these displays.
+ 
+ Another group of commands is for creating footnotes in Texinfo.
+ 
+ @menu
+ * Floats::                      Figures, tables, and the like.
+ * Images::                      Including graphics and images.
+ * Footnotes::                   Writing footnotes.
+ @end menu
+ 
+ 
+ @node Floats
+ @section Floats
+ @cindex Floats, in general
+ 
+ A @dfn{float} is a display which is set off from the main text.  It is
+ typically labelled as being a ``Figure'', ``Table'', ``Example'', or
+ some similar type.
+ 
+ @cindex Floating, not yet implemented
+ A float is so-named because, in principle, it can be moved to the
+ bottom or top of the current page, or to a following page, in the
+ printed output.  (Floating does not make sense in other output
+ formats.)  In the present version of Texinfo, however, this floating
+ is unfortunately not yet implemented.  Instead, the floating material
+ is simply output at the current location, more or less as if it were
+ an @code{@@group} (@pxref{group,,@code{@@group}}).
+ 
+ @menu
+ * float::                       Producing floating material.
+ * caption shortcaption::        Specifying descriptions for floats.
+ * listoffloats::                A table of contents for floats.
+ @end menu
+ 
+ 
+ @node float
+ @subsection @code{@@float} [@var{type}][,@var{label}]: Floating Material
+ @findex float
+ @cindex Float environment
+ 
+ To produce floating material, enclose the material you want to be
+ displayed separate between @code{@@float} and @code{@@end float}
+ commands, on lines by themselves.
+ 
+ Floating material uses @code{@@image} to display an already-existing
+ graphic (@pxref{Images}), or @code{@@multitable} to display a table
+ (@pxref{Multi-column Tables}).  However, the contents of the float can
+ be anything.  Here's an example with simple text:
+ 
+ @example
+ @@float Figure,fig:ex1
+ This is an example float.
+ @@end float
+ @end example
+ 
+ @noindent And the output:
+ 
+ @float Figure,fig:ex1
+ This is an example float.
+ @end float
+ 
+ As shown in the example, @code{@@float} takes two arguments (separated
+ by a comma), @var{type} and @var{label}.  Both are optional.
+ 
+ @table @var
+ @item type
+ Specifies the sort of float this is; typically a word such as
+ ``Figure'', ``Table'', etc.  If not given, and @var{label} is, any
+ cross-referencing will simply use a bare number.
+ 
+ @item label
+ Specifies a cross-reference label for this float.  If given, this
+ float is automatically given a number, and will appear in any
+ @code{@@listoffloats} output (@pxref{listoffloats}).  Cross-references
+ to @var{label} are allowed.
+ 
+ @cindex Floats, making unnumbered
+ @cindex Unnumbered float, creating
+ On the other hand, if @var{label} is not given, then the float will
+ not be numbered and consequently will not appear in the
+ @code{@@listoffloats} output or be cross-referenceable.
+ @end table
+ 
+ @noindent Normally, you specify both @var{type} and @var{label}, to get a
+ labeled and numbered float.
+ 
+ @cindex Floats, numbering of
+ @cindex Numbering of floats
+ In Texinfo, all floats are numbered the same way: with the chapter
+ number (or appendix letter), a period, and the float number, which
+ simply counts 1, 2, 3, @dots{}, and is reset at each chapter.  Each
+ float type is counted independently.  
+ 
+ Floats within an @code{@@unnumbered} are numbered, or outside of any
+ chapter, are simply numbered consecutively from 1.
+ 
+ These numbering conventions are not, at present, changeable.
+ 
+ 
+ @node caption shortcaption
+ @subsection @code{@@caption} & @code{@@shortcaption}
+ @findex caption
+ @findex shortcaption
+ @cindex Captions, for floats
+ @cindex Short captions, for lists of floats
+ 
+ You may write an @code{@@caption} anywhere within a @code{@@float}
+ environment, to define a caption for the float.  It is not allowed in
+ any other context.  @code{@@caption} takes a single argument, enclosed
+ in braces.  Here's an example:
+ 
+ @example
+ @@float
+ An example float, with caption.
+ @@caption@{Caption for example float.@}
+ @@end float
+ @end example
+ 
+ @noindent The output is:
+ 
+ @float
+ An example float, with caption.
+ @caption{Caption for example float.}
+ @end float
+ 
+ @code{@@caption} can appear anywhere within the float; it is not
+ processed until the @code{@@end float}.  The caption text is usually a
+ sentence or two, but may consist of several paragraphs if necessary.
+ 
+ In the output, the caption always appears below the float; this is not
+ currently changeable.  It is preceded by the float type and/or number,
+ as specified to the @code{@@float} command (see the previous section).
+ 
+ The @code{@@shortcaption} command likewise may be used only within
+ @code{@@float}, and takes a single argument in braces.  The short
+ caption text is used instead of the caption text in a list of floats
+ (see the next section).  Thus, you can write a long caption for the
+ main document, and a short title to appear in the list of floats.  For
+ example:
+ 
+ @example
+ @@float
+ ... as above ...
+ @@shortcaption@{Text for list of floats.@}
+ @@end float
+ @end example
+ 
+ The text for @code{@@caption} and @code{@@shortcaption} may not
+ contain comments (@code{@@c}), verbatim text (@code{@@verb}),
+ environments such as @code{@@example}, or other complex constructs.
+ 
+ 
+ @node listoffloats
+ @subsection @code{@@listoffloats}: Tables of Contents for Floats
+ @findex listoffloats
+ @cindex List of floats
+ @cindex Floats, list of
+ @cindex Table of contents, for floats
+ 
+ You can write a @code{@@listoffloats} command to generate a list of
+ floats for a given float type (@pxref{float}), analogous to the
+ document's overall table of contents.  Typically, it is written in its
+ own @code{@@unnumbered} node to provide a heading and structure,
+ rather like @code{@@printindex} (@pxref{Printing Indices & Menus}).
+ 
+ @code{@@listoffloats} takes one optional argument, the float type.
+ Here's an example:
+ 
+ @example
+ @@node List of Figures
+ @@unnumbered List of Figures
+ @@listoffloats Figure
+ @end example
+ 
+ @noindent And the output from @code{@@listoffloats}:
+ 
+ @display
+ @listoffloats Figure
+ @end display
+ 
+ Without any argument, @code{@@listoffloats} generates a list of
+ floats for which no float type was specified, i.e., no first argument
+ to the @code{@@float} command (@pxref{float}).
+ 
+ Each line in the list of floats contains the float type (if any),
+ the float number, and the caption, if any---the @code{@@shortcaption}
+ argument, if it was specified, else the @code{@@caption} argument.
+ In Info, the result is a menu where each float can be selected.  In
+ HTML, each line is a link to the float.  In printed output, the page
+ number is included.
+ 
+ Unnumbered floats (those without cross-reference labels) are omitted
+ from the list of floats.
+ 
+ 
+ @node Images
+ @section Inserting Images
+ 
+ @cindex Images, inserting
+ @cindex Pictures, inserting
+ @findex image
+ 
+ You can insert an image given in an external file with the
+ @code{@@image} command.  Although images can be used anywhere,
+ including the middle of a paragraph, we describe them in this chapter
+ since they are most often part of a displayed figure or example.
+ 
+ @menu
+ * Image Syntax::
+ * Image Scaling::
+ @end menu
+ 
+ 
+ @node Image Syntax
+ @subsection Image Syntax
+ 
+ Here is the synopsis of the @code{@@image} command:
+ 
+ @example
+ @@image@{@var{filename}@r{[,} @var{width}@r{[,} @var{height}@r{[,} @var{alttext}@r{[, }@var{extension}@r{]]]]}@}
+ @end example
+ 
+ @cindex Formats for images
+ @cindex Image formats
+ The @var{filename} argument is mandatory, and must not have an
+ extension, because the different processors support different formats:
+ 
+ @itemize @bullet
+ @item
+ @pindex eps image format
+ @TeX{} reads the file @file{@var{filename}.eps} (Encapsulated PostScript
+ format).
+ @item
+ @pindex pdftex@r{, and images}
+ @pindex png image format
+ @pindex jpeg image format
+ @pindex pdf image inclusions
+ pdf@TeX{} reads @file{@var{filename}.png}, @file{@var{filename}.jpg},
+ @file{@var{filename}.jpeg}, or @file{@var{filename}.pdf} (in that
+ order).  It also tries uppercase versions of the extensions.  The PDF
+ format cannot support EPS images, so they must be converted first.
+ @item
+ @code{makeinfo} includes @file{@var{filename}.txt} verbatim for
+ Info output (more or less as if it was an @code{@@example}).
+ @item
+ @code{makeinfo} uses the optional fifth argument @var{extension} to
+ @code{@@image} for the filename extension, if it is specified.  For example:
+ 
+ @pindex XPM image format
+ @example
+ @@image@{foo,,,,.xpm@}
+ @end example
+ 
+ @noindent
+ will cause @code{makeinfo} to look for @file{foo.xpm} before any others.
+ 
+ @end itemize
+ 
+ The @var{width} and @var{height} arguments are described in the next
+ section.
+ 
+ For @TeX{} output, if an image is the only thing in a paragraph it
+ will ordinarily be displayed on a line by itself, respecting the
+ current environment indentation, but without the normal paragraph
+ indentation.  If you want it centered, use @code{@@center}
+ (@pxref{titlefont center sp,,@code{@@titlefont @@center @@sp}}).
+ 
+ @cindex Alt attribute for images
+ @cindex Images, alternate text for
+ @findex - (in image alt string)
+ For HTML output, @code{makeinfo} sets the @dfn{alt attribute} for
+ inline images to the optional @var{alttext} (fourth) argument to
+ @code{@@image}, if supplied.  If not supplied, @code{makeinfo} uses
+ the full file name of the image being displayed.  The @var{alttext} is
+ taken as Texinfo text, so special characters such as @samp{"} and
+ @samp{<} and @samp{&} are escaped in the HTML and XML output; also,
+ you can get an empty @code{alt} string with @code{@@-} (a command
+ that produces no output; @pxref{- and hyphenation}).
+ 
+ For Info output, the @code{alt} string is also processed as Texinfo
+ text and output.  In this case, @samp{\} is escaped as @samp{\\} and
+ @samp{"} as @samp{\"}; no other escapes are done.
+ 
+ @cindex PNG image format
+ @cindex JPEG image format
+ If you do not supply the optional @var{extension} (fifth) argument,
+ @code{makeinfo} first tries @file{@var{filename}.png}; if that does
+ not exist, it tries @file{@var{filename}.jpg}.  If that does not exist
+ either, it complains.
+ 
+ In Info output, @code{makeinfo} writes a reference to the binary image
+ file (trying @var{filename} suffixed with @file{@var{extension}},
+ @file{@var{.extension}}, @file{.png}, or @file{.jpg}, in that order)
+ if one exists.  It also literally includes the @file{.txt} file if one
+ exists.  This way, Info readers which can display images (such as the
+ Emacs Info browser, running under X) can do so, whereas Info readers
+ which can only use text (such as the standalone Info reader) can
+ display the textual version.
+ 
+ @cindex @samp{^@@^H} for images in Info
+ The implementation of this is to put the following construct into the
+ Info output:
+ 
+ @example
+ ^@@^H[image src="@var{binaryfile}" text="@var{txtfile}"
+            alt="@var{alttext} ... ^@@^H]
+ @end example
+ 
+ @noindent where @samp{^@@} and @samp{^H} stand for the actual null and
+ backspace control characters.  If one of the files is not present, the
+ corresponding argument is omitted.
+ 
+ The reason for mentioning this here is that older Info browsers (this
+ feature was introduced in Texinfo version 4.6) will display the above
+ literally, which, although not pretty, should not be harmful.
+ 
+ 
+ @node Image Scaling
+ @subsection Image Scaling
+ 
+ @cindex Images, scaling
+ @cindex Scaling images
+ @cindex Width of images
+ @cindex Height of images
+ @cindex Aspect ratio of images
+ @cindex Distorting images
+ The optional @var{width} and @var{height} arguments to the
+ @code{@@image} command (see the previous section) specify the size to
+ scale the image to.  They are ignored for Info output.  If neither is
+ specified, the image is presented in its natural size (given in the
+ file); if only one is specified, the other is scaled proportionately;
+ and if both are specified, both are respected, thus possibly distorting
+ the original image by changing its aspect ratio.
+ 
+ @cindex Dimensions and image sizes
+ The @var{width} and @var{height} may be specified using any valid @TeX{}
+ dimension, namely:
+ 
+ @table @asis
+ @item pt
+ @cindex Points (dimension)
+ point (72.27pt = 1in)
+ @item pc
+ @cindex Picas
+ pica (1pc = 12pt)
+ @item bp
+ @cindex Big points
+ big point (72bp = 1in)
+ @item in
+ @cindex Inches
+ inch
+ @item cm
+ @cindex Centimeters
+ centimeter (2.54cm = 1in)
+ @item mm
+ @cindex Millimeters
+ millimeter (10mm = 1cm)
+ @item dd
+ @cindex Did@^ot points
+ did@^ot point (1157dd = 1238pt)
+ @item cc
+ @cindex Ciceros
+ cicero (1cc = 12dd)
+ @item sp
+ @cindex Scaled points
+ scaled point (65536sp = 1pt)
+ @end table
+ 
+ @pindex ridt.eps
+ For example, the following will scale a file @file{ridt.eps} to one
+ inch vertically, with the width scaled proportionately:
+ 
+ @example
+ @@image@{ridt,,1in@}
+ @end example
+ 
+ @pindex epsf.tex
+ For @code{@@image} to work with @TeX{}, the file @file{epsf.tex} must be
+ installed somewhere that @TeX{} can find it.  (The standard location is
+ @file{@var{texmf}/tex/generic/dvips/epsf.tex}, where @var{texmf} is a
+ root of your @TeX{} directory tree.)  This file is included in the
+ Texinfo distribution and is also available from
+ @uref{ftp://tug.org/tex/epsf.tex}, among other places.
+ 
+ @code{@@image} can be used within a line as well as for displayed
+ figures.  Therefore, if you intend it to be displayed, be sure to leave
+ a blank line before the command, or the output will run into the
+ preceding text.
+ 
+ Image scaling is presently implemented only in @TeX{}, not in HTML or
+ any other sort of output.
+ 
+ 
+ @node Footnotes
+ @section Footnotes
+ @cindex Footnotes
+ @findex footnote
+ 
+ A @dfn{footnote} is for a reference that documents or elucidates the
+ primary text.@footnote{A footnote should complement or expand upon
+ the primary text, but a reader should not need to read a footnote to
+ understand the primary text.  For a thorough discussion of footnotes,
+ see @cite{The Chicago Manual of Style}, which is published by the
+ University of Chicago Press.}  Footnotes are distracting; use them
+ sparingly, if at all.  Standard bibliographical references are better
+ placed in a bibliography at the end of a document than in footnotes
+ throughout.
+ 
+ @menu
+ * Footnote Commands::           How to write a footnote in Texinfo.
+ * Footnote Styles::             Controlling how footnotes appear in Info.
+ @end menu
+ 
+ 
+ @node Footnote Commands
+ @subsection Footnote Commands
+ 
+ In Texinfo, footnotes are created with the @code{@@footnote} command.
+ This command is followed immediately by a left brace, then by the text
+ of the footnote, and then by a terminating right brace.  Footnotes may
+ be of any length (they will be broken across pages if necessary), but
+ are usually short.  The template is:
+ 
+ @example
+ ordinary text@@footnote@{@var{text of footnote}@}
+ @end example
+ 
+ As shown here, the @code{@@footnote} command should come right after the
+ text being footnoted, with no intervening space; otherwise, the footnote
+ marker might end up starting a line.
+ 
+ For example, this clause is followed by a sample footnote@footnote{Here
+ is the sample footnote.}; in the Texinfo source, it looks like
+ this:
+ 
+ @example
+ @dots{}a sample footnote@@footnote@{Here is the sample
+ footnote.@}; in the Texinfo source@dots{}
+ @end example
+ 
+ As you can see, the source includes two punctuation marks next to each
+ other; in this case, @samp{.@};} is the sequence.  This is normal (the
+ first ends the footnote and the second belongs to the sentence being
+ footnoted), so don't worry that it looks odd.
+ 
+ In a printed manual or book, the reference mark for a footnote is a
+ small, superscripted number; the text of the footnote appears at the
+ bottom of the page, below a horizontal line.
+ 
+ In Info, the reference mark for a footnote is a pair of parentheses
+ with the footnote number between them, like this: @samp{(1)}.  The
+ reference mark is followed by a cross-reference link to the footnote's
+ text.
+ 
+ In the HTML output, footnote references are marked with a small,
+ superscripted number which is rendered as a hypertext link to the
+ footnote text.
+ 
+ By the way, footnotes in the argument of an @code{@@item} command for a
+ @code{@@table} must be on the same line as the @code{@@item}
+ (as usual).  @xref{Two-column Tables}.
+ 
+ 
+ @node Footnote Styles
+ @subsection Footnote Styles
+ 
+ Info has two footnote styles, which determine where the text of the
+ footnote is located:
+ 
+ @itemize @bullet
+ @cindex @samp{@r{End}} node footnote style
+ @item
+ In the `End' node style, all the footnotes for a single node
+ are placed at the end of that node.  The footnotes are separated from
+ the rest of the node by a line of dashes with the word
+ @samp{Footnotes} within it.  Each footnote begins with an
+ @samp{(@var{n})} reference mark.
+ 
+ @need 700
+ @noindent
+ Here is an example of a single footnote in the end of node style:@refill
+ 
+ @example
+ @group
+ --------- Footnotes ---------
+ 
+ (1)  Here is a sample footnote.
+ @end group
+ @end example
+ 
+ @cindex @samp{@r{Separate}} footnote style
+ @item
+ In the `Separate' node style, all the footnotes for a single
+ node are placed in an automatically constructed node of
+ their own.  In this style, a ``footnote reference'' follows
+ each @samp{(@var{n})} reference mark in the body of the
+ node.  The footnote reference is actually a cross reference
+ which you use to reach the footnote node.
+ 
+ The name of the node with the footnotes is constructed
+ by appending @w{@samp{-Footnotes}} to the name of the node
+ that contains the footnotes. (Consequently, the footnotes'
+ node for the @file{Footnotes} node is
+ @w{@file{Footnotes-Footnotes}}!)  The footnotes' node has an
+ `Up' node pointer that leads back to its parent node.
+ 
+ @noindent
+ Here is how the first footnote in this manual looks after being
+ formatted for Info in the separate node style:
+ 
+ @smallexample
+ @group
+ File: texinfo.info  Node: Overview-Footnotes, Up: Overview
+ 
+ (1) The first syllable of "Texinfo" is pronounced like "speck", not
+ "hex". @dots{}
+ @end group
+ @end smallexample
+ @end itemize
+ 
+ Unless your document has long and important footnotes (as in, say,
+ Gibbon's @cite{Decline and Fall @dots{}}), we recommend the @samp{end}
+ style, as it is simpler for readers to follow.
+ 
+ @findex footnotestyle
+ Use the @code{@@footnotestyle} command to specify an Info file's
+ footnote style.  Write this command at the beginning of a line followed
+ by an argument, either @samp{end} for the end node style or
+ @samp{separate} for the separate node style.
+ 
+ @need 700
+ For example,
+ 
+ @example
+ @@footnotestyle end
+ @end example
+ @noindent
+ or
+ @example
+ @@footnotestyle separate
+ @end example
+ 
+ Write an @code{@@footnotestyle} command before or shortly after the
+ end-of-header line at the beginning of a Texinfo file.  (If you
+ include the @code{@@footnotestyle} command between the start-of-header
+ and end-of-header lines, the region formatting commands will format
+ footnotes as specified.)@refill
+ 
+ If you do not specify a footnote style, the formatting commands use
+ their default style.  Currently, @code{texinfo-format-buffer} and
+ @code{texinfo-format-region} use the `separate' style and
+ @code{makeinfo} uses the `end' style.
+ 
+ 
+ @node Indices
+ @chapter Indices
+ @cindex Indices
+ 
+ Using Texinfo, you can generate indices without having to sort and
+ collate entries manually.  In an index, the entries are listed in
+ alphabetical order, together with information on how to find the
+ discussion of each entry.  In a printed manual, this information
+ consists of page numbers.  In an Info file, this information is a menu
+ entry leading to the first node referenced.
+ 
+ Texinfo provides several predefined kinds of index: an index
+ for functions, an index for variables, an index for concepts, and so
+ on.  You can combine indices or use them for other than their
+ canonical purpose.  Lastly, you can define your own new indices.
+ 
+ @xref{Printing Indices & Menus}, for information on how to print
+ indices.
+ 
+ @menu
+ * Index Entries::               Choose different words for index entries.
+ * Predefined Indices::          Use different indices for different kinds
+                                  of entries.
+ * Indexing Commands::           How to make an index entry.
+ * Combining Indices::           How to combine indices.
+ * New Indices::                 How to define your own indices.
+ @end menu
+ 
+ 
+ @node Index Entries
+ @section Making Index Entries
+ @cindex Index entries, making
+ @cindex Entries, making index
+ 
+ When you are making index entries, it is good practice to think of the
+ different ways people may look for something.  Different people
+ @emph{do not} think of the same words when they look something up.  A
+ helpful index will have items indexed under all the different words
+ that people may use.  For example, one reader may think it obvious that
+ the two-letter names for indices should be listed under ``Indices,
+ two-letter names'', since the word ``Index'' is the general concept.
+ But another reader may remember the specific concept of two-letter
+ names and search for the entry listed as ``Two letter names for
+ indices''.  A good index will have both entries and will help both
+ readers.@refill
+ 
+ Like typesetting, the construction of an index is a highly skilled,
+ professional art, the subtleties of which are not appreciated until you
+ need to do it yourself.@refill
+ 
+ @xref{Printing Indices & Menus}, for information about printing an index
+ at the end of a book or creating an index menu in an Info file.@refill
+ 
+ 
+ @node Predefined Indices
+ @section Predefined Indices
+ 
+ Texinfo provides six predefined indices.  Here are their nominal
+ meanings, abbreviations, and the corresponding index entry commands:
+ 
+ @table @samp
+ @item cp
+ @cindex @code{cp} (concept) index
+ (@code{@@cindex}) concept index, for general concepts.
+ @item fn
+ @cindex @code{fn} (function) index
+ (@code{@@findex}) function index, for function and function-like
+ names (such as entry points of libraries).
+ @item ky
+ @cindex @code{ky} (keystroke) index
+ (@code{@@kindex}) keystroke index, for keyboard commands.
+ @item pg
+ @cindex @code{pg} (program) index
+ (@code{@@pindex}) program index, for names of programs.
+ @item tp
+ @cindex @code{tp} (data type) index
+ (@code{@@tindex}) data type index, for type names (such as structures
+ defined in header files).
+ @item vr
+ @cindex @code{vr} (variable) index
+ (@code{@@vindex}) variable index, for variable names (such as global
+ variables of libraries).
+ @end table
+ 
+ @noindent
+ Not every manual needs all of these, and most manuals use only two or
+ three at most.  The present manual, for example, has two indices: a
+ concept index and an @@-command index (that is actually the function
+ index but is called a command index in the chapter heading).
+ 
+ You are not required to use the predefined indices strictly for their
+ canonical purposes.  For example, suppose you wish to index some C
+ preprocessor macros.  You could put them in the function index along
+ with actual functions, just by writing @code{@@findex} commands for
+ them; then, when you print the ``Function Index'' as an unnumbered
+ chapter, you could give it the title `Function and Macro Index' and
+ all will be consistent for the reader.
+ 
+ On the other hand, it is best not to stray too far from the meaning of
+ the predefined indices.  Otherwise, in the event that your text is
+ combined with other text from other manuals, the index entries will
+ not match up.  Instead, define your own new index (@pxref{New
+ Indices}).
+ 
+ We recommend having a single index in the final document whenever
+ possible, however many source indices you use, since then readers have
+ only one place to look.  Two or more source indices can be combined
+ into one output index using the @code{@@synindex} or
+ @code{@@syncodeindex} commands (@pxref{Combining Indices}).
+ 
+ 
+ @node Indexing Commands
+ @section Defining the Entries of an Index
+ @cindex Defining indexing entries
+ @cindex Index entries
+ @cindex Entries for an index
+ @cindex Specifying index entries
+ @cindex Creating index entries
+ 
+ The data to make an index come from many individual indexing commands
+ scattered throughout the Texinfo source file.  Each command says to add
+ one entry to a particular index; after formatting, the index will give
+ the current page number or node name as the reference.@refill
+ 
+ An index entry consists of an indexing command at the beginning of a
+ line followed, on the rest of the line, by the entry.@refill
+ 
+ For example, this section begins with the following five entries for
+ the concept index:@refill
+ 
+ @example
+ @@cindex Defining indexing entries
+ @@cindex Index entries, defining
+ @@cindex Entries for an index
+ @@cindex Specifying index entries
+ @@cindex Creating index entries
+ @end example
+ 
+ Each predefined index has its own indexing command---@code{@@cindex}
+ for the concept index, @code{@@findex} for the function index, and so
+ on, as listed in the previous section.
+ 
+ @cindex Writing index entries
+ @cindex Index entry writing
+ Concept index entries consist of text.  The best way to write an index
+ is to choose entries that are terse yet clear.  If you can do this,
+ the index often looks better if the entries are not capitalized, but
+ written just as they would appear in the middle of a sentence.
+ (Capitalize proper names and acronyms that always call for upper case
+ letters.)  This is the case convention we use in most GNU manuals'
+ indices.
+ 
+ If you don't see how to make an entry terse yet clear, make it longer
+ and clear---not terse and confusing.  If many of the entries are several
+ words long, the index may look better if you use a different convention:
+ to capitalize the first word of each entry.  But do not capitalize a
+ case-sensitive name such as a C or Lisp function name or a shell
+ command; that would be a spelling error.
+ 
+ Whichever case convention you use, please use it consistently!
+ 
+ Entries in indices other than the concept index are symbol names in
+ programming languages, or program names; these names are usually
+ case-sensitive, so use upper and lower case as required for them.
+ 
+ @cindex Index font types
+ By default, entries for a concept index are printed in a small roman
+ font and entries for the other indices are printed in a small
+ @code{@@code} font.  You may change the way part of an entry is
+ printed with the usual Texinfo commands, such as @code{@@file} for
+ file names (@pxref{Marking Text}), and @code{@@r} for the normal roman
+ font (@pxref{Fonts}).
+ 
+ @quotation Caution
+ Do not use a colon in an index entry.  In Info, a colon separates the
+ menu entry name from the node name, so a colon in the entry itself
+ confuses Info.  @xref{Menu Parts}, for more information about the
+ structure of a menu entry.
+ @end quotation
+ 
+ 
+ @node Combining Indices
+ @section Combining Indices
+ @cindex Combining indices
+ @cindex Indices, combining them
+ 
+ Sometimes you will want to combine two disparate indices such as
+ functions and concepts, perhaps because you have few enough entries
+ that a separate index would look silly.
+ 
+ You could put functions into the concept index by writing
+ @code{@@cindex} commands for them instead of @code{@@findex} commands,
+ and produce a consistent manual by printing the concept index with the
+ title `Function and Concept Index' and not printing the `Function
+ Index' at all; but this is not a robust procedure.  It works only if
+ your document is never included as part of another document that is
+ designed to have a separate function index; if your document were to
+ be included with such a document, the functions from your document and
+ those from the other would not end up together.  Also, to make your
+ function names appear in the right font in the concept index, you
+ would need to enclose every one of them between the braces of
+ @code{@@code}.
+ 
+ @menu
+ * syncodeindex::                How to merge two indices, using @code{@@code}
+                                  font for the merged-from index.
+ * synindex::                    How to merge two indices, using the
+                                  default font of the merged-to index.
+ @end menu
+ 
+ @node syncodeindex
+ @subsection @code{@@syncodeindex}
+ @findex syncodeindex
+ 
+ When you want to combine functions and concepts into one index, you
+ should index the functions with @code{@@findex} and index the concepts
+ with @code{@@cindex}, and use the @code{@@syncodeindex} command to
+ redirect the function index entries into the concept index.@refill
+ 
+ The @code{@@syncodeindex} command takes two arguments; they are the name
+ of the index to redirect, and the name of the index to redirect it to.
+ The template looks like this:@refill
+ 
+ @example
+ @@syncodeindex @var{from} @var{to}
+ @end example
+ 
+ @cindex Predefined names for indices
+ @cindex Two letter names for indices
+ @cindex Indices, two letter names
+ @cindex Names for indices
+ For this purpose, the indices are given two-letter names:@refill
+ 
+ @table @samp
+ @item cp
+ concept index
+ @item fn
+ function index
+ @item vr
+ variable index
+ @item ky
+ key index
+ @item pg
+ program index
+ @item tp
+ data type index
+ @end table
+ 
+ Write an @code{@@syncodeindex} command before or shortly after the
+ end-of-header line at the beginning of a Texinfo file.  For example,
+ to merge a function index with a concept index, write the
+ following:@refill
+ 
+ @example
+ @@syncodeindex fn cp
+ @end example
+ 
+ @noindent
+ This will cause all entries designated for the function index to merge
+ in with the concept index instead.@refill
+ 
+ To merge both a variables index and a function index into a concept
+ index, write the following:@refill
+ 
+ @example
+ @group
+ @@syncodeindex vr cp
+ @@syncodeindex fn cp
+ @end group
+ @end example
+ 
+ @cindex Fonts for indices
+ The @code{@@syncodeindex} command puts all the entries from the `from'
+ index (the redirected index) into the @code{@@code} font, overriding
+ whatever default font is used by the index to which the entries are
+ now directed.  This way, if you direct function names from a function
+ index into a concept index, all the function names are printed in the
+ @code{@@code} font as you would expect.@refill
+ 
+ @node synindex
+ @subsection @code{@@synindex}
+ @findex synindex
+ 
+ The @code{@@synindex} command is nearly the same as the
+ @code{@@syncodeindex} command, except that it does not put the
+ `from' index  entries into the @code{@@code} font; rather it puts
+ them in the roman font.  Thus, you use @code{@@synindex} when you
+ merge a concept index into a function index.@refill
+ 
+ @xref{Printing Indices & Menus}, for information about printing an index
+ at the end of a book or creating an index menu in an Info file.@refill
+ 
+ 
+ @node New Indices
+ @section Defining New Indices
+ @cindex Defining new indices
+ @cindex Indices, defining new
+ @cindex New index defining
+ @findex defindex
+ @findex defcodeindex
+ 
+ In addition to the predefined indices, you may use the
+ @code{@@defindex} and @code{@@defcodeindex} commands to define new
+ indices.  These commands create new indexing @@-commands with which
+ you mark index entries.  The @code{@@defindex} command is used like
+ this:
+ 
+ @example
+ @@defindex @var{name}
+ @end example
+ 
+ The name of an index should be a two letter word, such as @samp{au}.
+ For example:
+ 
+ @example
+ @@defindex au
+ @end example
+ 
+ This defines a new index, called the @samp{au} index.  At the same
+ time, it creates a new indexing command, @code{@@auindex}, that you
+ can use to make index entries.  Use this new indexing command just as
+ you would use a predefined indexing command.
+ 
+ For example, here is a section heading followed by a concept index
+ entry and two @samp{au} index entries.
+ 
+ @example
+ @@section Cognitive Semantics
+ @@cindex kinesthetic image schemas
+ @@auindex Johnson, Mark
+ @@auindex Lakoff, George
+ @end example
+ 
+ @noindent
+ (Evidently, @samp{au} serves here as an abbreviation for ``author''.)
+ 
+ In general, Texinfo constructs the new indexing command by
+ concatenating the name of the index with @samp{index}; thus, defining
+ an @samp{xy} index leads to the automatic creation of an
+ @code{@@xyindex} command.
+ 
+ Use the @code{@@printindex} command to print the index, as you do with
+ the predefined indices.  For example:
+ 
+ @example
+ @group
+ @@node Author Index
+ @@unnumbered Author Index
+ 
+ @@printindex au
+ @end group
+ @end example
+ 
+ The @code{@@defcodeindex} is like the @code{@@defindex} command,
+ except that, in the printed output, it prints entries in an
+ @code{@@code} font by default instead of a roman font.  
+ 
+ You should define new indices before the end-of-header line of a
+ Texinfo file, and (of course) before any @code{@@synindex} or
+ @code{@@syncodeindex} commands (@pxref{Texinfo File Header}).
+ 
+ 
+ @node Insertions
+ @chapter Special Insertions
+ @cindex Inserting special characters and symbols
+ @cindex Special insertions
+ 
+ Texinfo provides several commands for inserting characters that have
+ special meaning in Texinfo, such as braces, and for other graphic
+ elements that do not correspond to simple characters you can type.
+ 
+ @iftex
+ These are:
+ 
+ @itemize @bullet
+ @item @samp{@@} and braces and commas.
+ @item Whitespace within and around a sentence.
+ @item Accents.
+ @item Dots and bullets.
+ @item The @TeX{} logo and the copyright symbol.
+ @item The euro and pounds currency symbols.
+ @item The degrees symbol.
+ @item The minus sign.
+ @item Mathematical expressions.
+ @item Glyphs for evaluation, macros, errors, etc.
+ @item Footnotes.
+ @item Images.
+ @end itemize
+ @end iftex
+ 
+ @menu
+ * Atsign Braces Comma::         Inserting @@ and @{@} and ,.
+ * Inserting Quote Characters::  Inserting left and right quotes, in code.
+ * Inserting Space::             How to insert the right amount of space
+                                  within a sentence.
+ * Inserting Accents::           How to insert accents and special characters.
+ * Inserting Quotation Marks::   How to insert quotation marks.
+ * Dots Bullets::                How to insert dots and bullets.
+ * TeX and copyright::           How to insert the @TeX{} logo
+                                  and the copyright symbol.
+ * euro::                        How to insert the Euro currency symbol.
+ * pounds::                      How to insert the pounds currency symbol.
+ * textdegree::                  How to insert the degrees symbol.
+ * minus::                       How to insert a minus sign.
+ * geq leq::                     How to insert greater/less-than-or-equal signs.
+ * math::                        How to format a mathematical expression.
+ * Click Sequences::             Inserting GUI usage sequences.
+ * Glyphs::                      How to indicate results of evaluation,
+                                  expansion of macros, errors, etc.
+ @end menu
+ 
+ 
+ @node Atsign Braces Comma
+ @section Inserting @@ and @{@} and @comma{}
+ @cindex Special characters, inserting
+ @cindex Commands to insert special characters
+ 
+ @samp{@@} and curly braces are special characters in Texinfo.  To insert
+ these characters so they appear in text, you must put an @samp{@@} in
+ front of these characters to prevent Texinfo from misinterpreting
+ them.
+ 
+ The comma `,' is a special character only in one uncommon context:
+ it separates arguments to commands that take multiple arguments.
+ 
+ @menu
+ * Inserting an Atsign::
+ * Inserting Braces::
+ * Inserting a Comma::
+ @end menu
+ 
+ 
+ @node Inserting an Atsign
+ @subsection Inserting `@@' with @code{@@@@}
+ @findex @@ @r{(literal @samp{@@})}
+ @cindex Inserting @@ @r{(literal @samp{@@})}
+ 
+ @code{@@@@} stands for a single @samp{@@} in either printed or Info
+ output.
+ 
+ Do not put braces after an @code{@@@@} command.
+ 
+ 
+ @node Inserting Braces
+ @subsection Inserting `@{' and `@}' with @code{@@@{} and @code{@@@}}
+ @cindex Braces, inserting
+ @findex @{ @r{(literal @samp{@{})}
+ @findex @} @r{(literal @samp{@}})}
+ 
+ @code{@@@{} stands for a single @samp{@{} in either printed or Info
+ output.
+ 
+ @code{@@@}} stands for a single @samp{@}} in either printed or Info
+ output.
+ 
+ Do not put braces after either an @code{@@@{} or an @code{@@@}}
+ command.
+ 
+ 
+ @node Inserting a Comma
+ @subsection Inserting `,' with @code{@@comma@{@}}
+ @cindex Commas, inserting
+ @findex comma
+ 
+ Ordinarily, a comma `,' is a normal character that can be simply typed
+ in your input where you need it.
+ 
+ However, Texinfo uses the comma as a special character in one uncommon
+ context: some commands, such as @code{@@acronym} (@pxref{acronym}) and
+ @code{@@xref} (@pxref{Cross References}), as well as user-defined
+ macros (@pxref{Defining Macros}), can take more than one argument.  In
+ these cases, the comma character is used to separate arguments.
+ 
+ Since a comma character would confuse Texinfo's parsing for these
+ commands, you must use the command @samp{@@comma@{@}} instead if you want
+ to pass an actual comma.  Here are some examples:
+ 
+ @example
+ @@acronym@{ABC, A Bizarre @@comma@{@}@}
+ @@xref@{Comma,, The @@comma@{@} symbol@}
+ @@mymac@{One argument@@comma@{@} containing a comma@}
+ @end example
+ 
+ Although @comma{} can be used nearly anywhere, there is no need for it
+ anywhere except in this unusual case.
+ 
+ 
+ @node Inserting Quote Characters
+ @section Inserting Quote Characters
+ 
+ @cindex Inserting quote characters
+ @cindex Quote characters, inserting
+ 
+ As explained in the early section on general Texinfo input conventions
+ (@pxref{Conventions}), Texinfo source files use the ASCII character
+ @code{`} (96 decimal) to produce a left quote (`), and ASCII @code{'}
+ (39 decimal) to produce a right quote (').  Doubling these input
+ characters (@code{``} and @code{''}) produces double quotes (`` and
+ '').  These are the conventions used by @TeX{}.
+ 
+ This works all right for text.  However, in examples of computer code,
+ readers are especially likely to cut and paste the text
+ verbatim---and, unfortunately, some document viewers will mangle these
+ characters.  (The free PDF reader @command{xpdf} works fine, but other
+ PDF readers, both free and nonfree, have problems.)
+ 
+ If this is a concern for your document, Texinfo provides two special
+ settings via @code{@@set}:
+ 
+ @table @code
+ @item @@set txicodequoteundirected
+ causes the output for the @code{'} character to be the undirected
+ single quote, like this:
+ @set txicodequoteundirected
+ @code{'}.
+ @clear txicodequoteundirected
+ 
+ @item @@set txicodequotebacktick
+ Cause the output for the @code{`} character to be the standalone grave
+ accent, like this:
+ @set txicodequotebacktick
+ @code{`}.
+ @clear txicodequotebacktick
+ 
+ @end table
+ 
+ @code{xyza`'bc}
+ 
+ If you want these settings for only part of the document,
+ @code{@@clear} will restore the normal behavior, as in
+ @code{@@clear@tie{}txicodequoteundirected}.
+ 
+ These settings affect @code{@@code}, @code{@@example}, and
+ @code{@@verbatim}; they do not affect @code{@@samp}.  (@xref{Useful
+ Highlighting}.)
+ 
+ 
+ @node Inserting Space
+ @section Inserting Space
+ 
+ @cindex Inserting space
+ @cindex Spacing, inserting
+ The following sections describe commands that control spacing of various
+ kinds within and after sentences.
+ 
+ @menu
+ * Not Ending a Sentence::       Sometimes a . doesn't end a sentence.
+ * Ending a Sentence::           Sometimes it does.
+ * Multiple Spaces::             Inserting multiple spaces.
+ * frenchspacing::               Specifying end-of-sentence spacing.
+ * dmn::                         How to format a dimension.
+ @end menu
+ 
+ 
+ @node Not Ending a Sentence
+ @subsection Not Ending a Sentence
+ 
+ @cindex Not ending a sentence
+ @cindex Sentence non-ending punctuation
+ @cindex Periods, inserting
+ Depending on whether a period or exclamation point or question mark is
+ inside or at the end of a sentence, less or more space is inserted after
+ a period in a typeset manual.  Since it is not always possible
+ to determine when a period ends a sentence and when it is used
+ in an abbreviation, special commands are needed in some circumstances.
+ Usually, Texinfo can guess how to handle periods, so you do not need to
+ use the special commands; you just enter a period as you would if you
+ were using a typewriter, which means you put two spaces after the
+ period, question mark, or exclamation mark that ends a sentence.
+ 
+ @findex <colon> @r{(suppress end-of-sentence space)}
+ Use the @code{@@:}@: command after a period, question mark,
+ exclamation mark, or colon that should not be followed by extra space.
+ For example, use @code{@@:}@: after periods that end abbreviations
+ which are not at the ends of sentences.
+ 
+ For example,
+ 
+ @example
+ foo vs.@@: bar
+ foo vs. bar
+ @end example
+ 
+ @noindent
+ @ifnottex
+ produces
+ @end ifnottex
+ @iftex
+ produces the following.  If you look carefully at this printed output,
+ you will see a little extraneous space after @samp{vs.}@: in the second
+ line.
+ @end iftex
+ 
+ @quotation
+ foo vs.@: bar @*
+ foo vs. bar
+ @end quotation
+ 
+ @noindent
+ @code{@@:} has no effect on the Info and HTML output.  In Docbook and
+ XML, the previous punctuation character (.?!:) is output as an entity
+ instead of as the normal character: @samp{&period; &quest; &excl;
+ &colon;}.  This gives further processors a chance to notice and not
+ add the usual extra space.
+ 
+ Do not put braces after @code{@@:} (or any non-alphabetic command).
+ 
+ 
+ @node Ending a Sentence
+ @subsection Ending a Sentence
+ 
+ @cindex Ending a Sentence
+ @cindex Sentence ending punctuation
+ 
+ @findex .  @r{(end of sentence)}
+ @findex ! @r{(end of sentence)}
+ @findex ? @r{(end of sentence)}
+ Use @code{@@.}@: instead of a period, @code{@@!}@: instead of an
+ exclamation point, and @code{@@?}@: instead of a question mark at the end
+ of a sentence that ends with a capital letter.  Otherwise, @TeX{}
+ will think the letter is an abbreviation and will not insert the correct
+ end-of-sentence spacing.  Here is an example:
+ 
+ @example
+ Give it to M.I.B. and to M.E.W@@.  Also, give it to R.J.C@@.
+ Give it to M.I.B. and to M.E.W.  Also, give it to R.J.C.
+ @end example
+ 
+ @noindent
+ @ifnottex
+ produces
+ @end ifnottex
+ @iftex
+ produces the following.  If you look carefully at this printed output,
+ you will see a little more whitespace after the @samp{W} in the first
+ line.
+ @end iftex
+ 
+ @quotation
+ Give it to M.I.B. and to M.E.W@.  Also, give it to R.J.C@.@*
+ Give it to M.I.B. and to M.E.W.  Also, give it to R.J.C.
+ @end quotation
+ 
+ In the Info file output, @code{@@.}@: is equivalent to a simple
+ @samp{.}; likewise for @code{@@!}@: and @code{@@?}@:.
+ 
+ The meanings of @code{@@:} and @code{@@.}@: in Texinfo are designed to
+ work well with the Emacs sentence motion commands (@pxref{Sentences,,,
+ emacs, The GNU Emacs Manual}).
+ 
+ Do not put braces after any of these commands.
+ 
+ 
+ @node Multiple Spaces
+ @subsection Multiple Spaces
+ 
+ @cindex Multiple spaces
+ @cindex Whitespace, inserting
+ @cindex Space, inserting horizontal
+ @findex <space>
+ @findex <tab>
+ @findex <newline>
+ 
+ Ordinarily, @TeX{} collapses multiple whitespace characters (space, tab,
+ and newline) into a single space.  Info output, on the other hand,
+ preserves whitespace as you type it, except for changing a newline into
+ a space; this is why it is important to put two spaces at the end of
+ sentences in Texinfo documents.
+ 
+ Occasionally, you may want to actually insert several consecutive
+ spaces, either for purposes of example (what your program does with
+ multiple spaces as input), or merely for purposes of appearance in
+ headings or lists.  Texinfo supports three commands:
+ @code{@@@kbd{SPACE}}, @code{@@@kbd{TAB}}, and @code{@@@kbd{NL}}, all of
+ which insert a single space into the output.  (Here,
+ @code{@@@kbd{SPACE}} represents an @samp{@@} character followed by a
+ space, i.e., @samp{@@ }, and @kbd{TAB} and @kbd{NL} represent the tab
+ character and end-of-line, i.e., when @samp{@@} is the last character on
+ a line.)
+ 
+ For example,
+ @example
+ Spacey@@ @@ @@ @@
+ example.
+ @end example
+ 
+ @noindent produces
+ 
+ @example
+ Spacey@ @ @ @
+ example.
+ @end example
+ 
+ Other possible uses of @code{@@@kbd{SPACE}} have been subsumed by
+ @code{@@multitable} (@pxref{Multi-column Tables}).
+ 
+ Do not follow any of these commands with braces.
+ 
+ To produce a non-breakable space, see @ref{tie, @code{@@tie}}.
+ 
+ 
+ @node frenchspacing
+ @subsection @code{@@frenchspacing} @var{val}: Control sentence spacing
+ @findex frenchspacing
+ @cindex French spacing
+ @cindex Sentences, spacing after
+ @cindex Space, after sentences
+ 
+ In American typography, it is traditional and correct to put extra
+ space at the end of a sentence, after a semi-colon, and so on.  This
+ is the default in Texinfo.  In French typography (and many others),
+ this extra space is wrong; all spaces are uniform.
+ 
+ Therefore Texinfo provides the @code{@@frenchspacing} command to
+ control the spacing after punctuation.  It reads the rest of the line
+ as its argument, which must be the single word @samp{on} or @samp{off}
+ (always these words, regardless of the language) of the document.
+ Here is an example:
+ 
+ @example
+ @@frenchspacing on
+ This is text. Two sentences. Three sentences. French spacing.
+ 
+ @@frenchspacing off
+ This is text. Two sentences. Three sentences. Non-French spacing.
+ @end example
+ 
+ @noindent produces (there will be no difference in Info):
+ 
+ @frenchspacing on
+ This is text. Two sentences. Three sentences. French spacing.
+ 
+ @frenchspacing off
+ This is text. Two sentences. Three sentences. Non-French spacing.
+ 
+ @code{@@frenchspacing} mainly affects the printed output, including
+ the output after @code{@@.}, @code{@@!}, and @code{@@?} (@pxref{Ending
+ a Sentence}).
+ 
+ In Info, usually space characters in the input are written unaltered
+ to the output, and @code{@@frenchspacing} does not change this.  It
+ does change the one case where @command{makeinfo} outputs a space on
+ its own: when a sentence ends at a newline in the source.  Here's an
+ example:
+ 
+ @example
+ Some sentence.
+ Next sentence.
+ @end example
+ 
+ @noindent produces in Info output, with @code{@@frenchspacing off}
+ (the default), two spaces between the sentences:
+ 
+ @example
+ Some sentence.  Next sentence.
+ @end example
+ 
+ @noindent With @code{@@frenchspacing on}, @command{makeinfo} outputs
+ only a single space:
+ 
+ @example
+ Some sentence. Next sentence.
+ @end example
+ 
+ @code{@@frenchspacing} has no effect on the HTML or Docbook output;
+ for XML, it outputs a transliteration of itself (@pxref{Output
+ Formats}).
+ 
+ 
+ @node dmn
+ @subsection @code{@@dmn}@{@var{dimension}@}: Format a Dimension
+ @cindex Thin space between number, dimension
+ @cindex Dimension formatting
+ @cindex Format a dimension
+ @findex dmn
+ 
+ At times, you may want to write @samp{12@dmn{pt}} or
+ @samp{8.5@dmn{in}} with little or no space between the number and the
+ abbreviation for the dimension.  You can use the @code{@@dmn} command
+ to do this.  On seeing the command, @TeX{} inserts just enough space
+ for proper typesetting; the Info formatting commands insert no space
+ at all, since the Info file does not require it.
+ 
+ To use the @code{@@dmn} command, write the number and then follow it
+ immediately, with no intervening space, by @code{@@dmn}, and then by
+ the dimension within braces.  For example,
+ 
+ @example
+ A4 paper is 8.27@@dmn@{in@} wide.
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @quotation
+ A4 paper is 8.27@dmn{in} wide.
+ @end quotation
+ 
+ Not everyone uses this style.  Some people prefer @w{@samp{8.27 in.@@:}}
+ or @w{@samp{8.27 inches}} to @samp{8.27@@dmn@{in@}} in the Texinfo file.
+ In these cases, however, the formatters may insert a line break between
+ the number and the dimension, so use @code{@@w} (@pxref{w}).  Also, if
+ you write a period after an abbreviation within a sentence, you should
+ write @samp{@@:} after the period to prevent @TeX{} from inserting extra
+ whitespace, as shown here.  @xref{Not Ending a Sentence}.
+ 
+ 
+ @node Inserting Accents
+ @section Inserting Accents
+ 
+ @cindex Inserting accents
+ @cindex Accents, inserting
+ @cindex Floating accents, inserting
+ 
+ Here is a table with the commands Texinfo provides for inserting
+ floating accents.  They all need an argument, the character to accent,
+ which can either be given in braces as usual (@code{@@'@{e@}}), or, as
+ a special case, the braces can be omitted, in which case the argument
+ is the next character (@code{@@'e}).  This is to make the source as
+ convenient as possible to type and read, since accented characters are
+ very common in some languages.
+ 
+ If the command is alphabetic, such as @code{@@dotaccent}, then there
+ must be a space between the command name and argument if braces are
+ not used.  If the command is non-alphabetic, such as @code{@@'}, then
+ there must @emph{not} be a space; the argument is the very next
+ character.
+ 
+ Exception: the argument to @code{@@tieaccent} must be enclosed in
+ braces (since it is two characters instead of one).
+ 
+ @findex documentencoding
+ To get the true accented characters output in Info, not just the ASCII
+ transliterations, it is necessary to specify @code{@@documentencoding}
+ with an encoding which supports the required characters
+ (@pxref{documentencoding,,@code{@@documentencoding}}).  In this case,
+ you can also use non-ASCII (e.g., pre-accented) characters in the
+ source file.
+ 
+ @findex " @r{(umlaut accent)}
+ @cindex Umlaut accent
+ @findex ' @r{(umlaut accent)}
+ @cindex Acute accent
+ @findex = @r{(macron accent)}
+ @cindex Macron accent
+ @findex ^ @r{(circumflex accent)}
+ @cindex Circumflex accent
+ @findex ` @r{(grave accent)}
+ @cindex Grave accent
+ @findex ~ @r{(tilde accent)}
+ @cindex Tilde accent
+ @findex , @r{(cedilla accent)}
+ @cindex Cedilla accent
+ @findex dotaccent
+ @cindex Dot accent
+ @findex H @r{(Hungarian umlaut accent)}
+ @cindex Hungarian umlaut accent
+ @findex ringaccent
+ @cindex Ring accent
+ @findex tieaccent
+ @cindex Tie-after accent
+ @findex u @r{(breve accent)}
+ @cindex Breve accent
+ @findex ubaraccent
+ @cindex Underbar accent
+ @findex udotaccent
+ @cindex Underdot accent
+ @findex v @r{(check accent)}
+ @cindex Hacek accent
+ @cindex Check accent
+ @cindex Caron accent
+ @multitable {@t{@@questiondown@{@}}} {Output} {hacek/check/caron accent}
+ @headitem Command           @tab Output         @tab What
+ @item @t{@@"o}              @tab @"o            @tab umlaut accent
+ @item @t{@@'o}              @tab @'o            @tab acute accent
+ @item @t{@@,@{c@}}          @tab @,{c}          @tab cedilla accent
+ @item @t{@@=o}              @tab @=o            @tab macron/overbar accent
+ @item @t{@@^o}              @tab @^o            @tab circumflex accent
+ @item @t{@@`o}              @tab @`o            @tab grave accent
+ @item @t{@@~o}              @tab @~o            @tab tilde accent
+ @item @t{@@dotaccent@{o@}}  @tab @dotaccent{o}  @tab overdot accent
+ @item @t{@@H@{o@}}          @tab @H{o}          @tab long Hungarian umlaut
+ @item @t{@@ringaccent@{o@}} @tab @ringaccent{o} @tab ring accent
+ @item @t{@@tieaccent@{oo@}} @tab @tieaccent{oo} @tab tie-after accent
+ @item @t{@@u@{o@}}          @tab @u{o}          @tab breve accent
+ @item @t{@@ubaraccent@{o@}} @tab @ubaraccent{o} @tab underbar accent
+ @item @t{@@udotaccent@{o@}} @tab @udotaccent{o} @tab underdot accent
+ @item @t{@@v@{o@}}          @tab @v{o}          @tab hacek/check/caron accent
+ @end multitable
+ 
+ This table lists the Texinfo commands for inserting other characters
+ commonly used in languages other than English.
+ 
+ @findex questiondown
+ @cindex @questiondown{}
+ @findex exclamdown
+ @cindex @exclamdown{}
+ @findex aa
+ @cindex @aa{}
+ @findex AA
+ @cindex @AA{}
+ @findex ae
+ @cindex @ae{}
+ @findex AE
+ @cindex @AE{}
+ @findex dotless
+ @cindex @dotless{i} (dotless i)
+ @cindex @dotless{j} (dotless j)
+ @cindex Dotless i, j
+ @findex l
+ @cindex @l{}
+ @findex L
+ @cindex @L{}
+ @findex o
+ @cindex @o{}
+ @findex O
+ @cindex @O{}
+ @findex oe
+ @cindex @oe{}
+ @findex OE
+ @cindex @OE{}
+ @cindex Romance ordinals
+ @cindex Ordinals, Romance
+ @cindex Feminine ordinal
+ @findex ordf
+ @cindex @ordf{}
+ @cindex Masculine ordinal
+ @findex ordm
+ @cindex @ordm{}
+ @findex ss
+ @cindex @ss{}
+ @cindex Es-zet
+ @cindex Sharp S
+ @cindex German S
+ @multitable {@t{@@questiondown@{@}}} {oe OE} {es-zet or sharp S}
+ @item @t{@@exclamdown@{@}}   @tab @exclamdown{}   @tab upside-down !
+ @item @t{@@questiondown@{@}} @tab @questiondown{} @tab upside-down ?
+ @item @t{@@aa@{@} @@AA@{@}}  @tab @aa{} @AA{}     @tab a,A with circle
+ @item @t{@@ae@{@} @@AE@{@}}  @tab @ae{} @AE{}     @tab ae,AE ligatures
+ @item @t{@@dotless@{i@}}     @tab @dotless{i}     @tab dotless i
+ @item @t{@@dotless@{j@}}     @tab @dotless{j}     @tab dotless j
+ @item @t{@@l@{@} @@L@{@}}    @tab @l{} @L{}       @tab suppressed-L,l
+ @item @t{@@o@{@} @@O@{@}}    @tab @o{} @O{}       @tab O,o with slash
+ @item @t{@@oe@{@} @@OE@{@}}  @tab @oe{} @OE{}     @tab oe,OE ligatures
+ @item @t{@@ordf@{@} @@ordm@{@}}  @tab @ordf{} @ordm{}     @tab Spanish ordinals
+ @item @t{@@ss@{@}}           @tab @ss{}           @tab es-zet or sharp S
+ @end multitable
+ 
+ 
+ @node Inserting Quotation Marks
+ @section Inserting Quotation Marks
+ @cindex Inserting quotation marks
+ @cindex Quotation marks, inserting
+ 
+ @cindex Quotation characters (`'), in source
+ Use doubled single-quote characters to begin and end quotations:
+ @w{@t{`@w{}`@dots{}'@w{}'}}.  @TeX{} converts two single quotes to
+ left- and right-hand doubled quotation marks,
+ @c this comes out as "like this" in Info, which is just confusing.
+ @iftex
+ ``like this'',
+ @end iftex
+ and Info converts doubled single-quote characters to ASCII
+ double-quotes: @w{@t{`@w{}`@dots{}'@w{}'}} becomes @w{@t{"@dots{}"}}.
+ 
+ You may occasionally need to produce two consecutive single quotes;
+ for example, in documenting a computer language such as Maxima where
+ @t{'@w{}'} is a valid command.  You can do this with the input
+ @t{'@@w@{@}'}; the empty @code{@@w} command stops the combination into
+ the double-quote characters.
+ 
+ @cindex Unicode quotation characters
+ @cindex Grave accent, vs. left quote
+ The left quote character (@t{`}, ASCII code 96) used in Texinfo is a
+ grave accent in ANSI and ISO character set standards.  We use it as a
+ quote character because that is how @TeX{} is set up, by default.
+ 
+ Texinfo supports several other quotation marks used in languages other
+ than English.  Below is a table with the commands Texinfo provides for
+ inserting quotation marks.
+ 
+ @findex documentencoding
+ @cindex UTF-8
+ @cindex ISO 8859-15
+ @cindex Latin 9
+ @cindex ISO 8859-1
+ @cindex Latin 1
+ In order to get the symbols for the quotation marks in encoded Info
+ output, it is necessary to specify @code{@@documentencoding UTF-8}.
+ (@xref{documentencoding,,@code{@@documentencoding}}.)  Double
+ guillemets are also present in ISO 8859-1 (aka Latin@tie{}1) and ISO
+ 8859-15 (aka Latin@tie{}9).
+ 
+ @cindex European Computer Modern fonts
+ @cindex EC fonts
+ The standard @TeX{} fonts support the usual quotation marks used in
+ English (the ones produced with single and doubled ASCII
+ single-quotes).  For the other quotation marks, @TeX{} uses European
+ Computer Modern (EC) fonts (@file{ecrm1000} and other variants).
+ These fonts are freely available, of course; you can download them
+ from @url{http://@/www.ctan.org/@/tex-archive/@/fonts/ec}, among other
+ places.
+ 
+ @cindex CM-Super fonts
+ The free EC fonts are bitmap fonts created with Metafont.  Especially
+ for on-line viewing, Type@tie{}1 (vector) versions of the fonts are
+ preferable; these are available in the CM-Super font package
+ (@url{http://@/www.ctan.org/@/tex-archive/@/fonts/@/ps-type1/@/cm-super}).
+ 
+ Both distributions include installation instructions.
+ 
+ @cindex Single quotation marks
+ @cindex Double quotation marks
+ @cindex Left quotation marks
+ @cindex Right quotation marks
+ @findex quotedblleft
+ @cindex ``
+ @findex quoteleft
+ @cindex `
+ @findex quotedblright
+ @cindex ''
+ @findex quoteright
+ @cindex '
+ @cindex Double low-9 quotation mark
+ @cindex Single low-9 quotation mark
+ @findex quotedblbase
+ @cindex @quotedblbase{} (double low-9 quotation mark)
+ @findex quotesinglbase
+ @cindex @quotesinglbase{} (single low-9 quotation mark)
+ @cindex Angle quotation marks
+ @cindex Guillemets
+ @cindex Guillemots
+ @cindex French quotation marks
+ @cindex Quotation marks, French
+ @cindex German quotation marks
+ @cindex Quotation marks, German
+ @cindex Double guillemets
+ @cindex Single guillemets
+ @cindex Double angle quotation marks
+ @cindex Single angle quotation marks
+ @cindex Left-pointing angle quotation marks
+ @cindex Right-pointing angle quotation marks
+ @cindex Double left-pointing angle quotation mark
+ @cindex Double right-pointing angle quotation mark
+ @cindex Single left-pointing angle quotation mark
+ @cindex Single right-pointing angle quotation mark
+ @findex guillemetleft
+ @findex guillemotleft
+ @cindex @guillemetleft{}
+ @findex guillemetright
+ @findex guillemotright
+ @cindex @guillemetright{}
+ @findex guilsinglleft
+ @cindex @guilsinglleft{}
+ @findex guilsinglright
+ @cindex @guilsinglright{}
+ @multitable {@t{@@quotedblright@{@} '@w{}'}} {Glyph} {Right-pointing double angle quotation mark (U+00BB)}
+ @headitem Command                    @tab Glyph             @tab Unicode name (point)
+ @item @verb{.@quotedblleft{} ``.}    @tab @quotedblleft{}   @tab Left double quotation mark (U+201C)
+ @item @verb{.@quotedblright{} ''.}   @tab @quotedblright{}  @tab Right double quotation mark (U+201D)
+ @item @verb{.@quoteleft{} `.}        @tab @quoteleft{}      @tab Left single quotation mark (U+2018)
+ @item @verb{.@quoteright{} '.}       @tab @quoteright{}     @tab Right single quotation mark (U+2019)
+ @item @t{@@quotedblbase@{@}}         @tab @quotedblbase{}   @tab Double low-9 quotation mark (U+201E)
+ @item @t{@@quotesinglbase@{@}}       @tab @quotesinglbase{} @tab Single low-9 quotation mark (U+201A)
+ @item @t{@@guillemetleft@{@}}        @tab @guillemetleft{}  @tab Left-pointing double angle quotation mark (U+00AB)
+ @item @t{@@guillemetright@{@}}       @tab @guillemetright{} @tab Right-pointing double angle quotation mark (U+00BB)
+ @item @t{@@guilsinglleft@{@}}        @tab @guilsinglleft{}  @tab Single left-pointing angle quotation mark (U+2039)
+ @item @t{@@guilsinglright@{@}}       @tab @guilsinglright{} @tab Single right-pointing angle quotation mark (U+203A)
+ @end multitable
+ 
+ For the double angle quotation marks, Adobe and @LaTeX{} glyph names
+ are also supported:  @code{@@guillemotleft} and
+ @code{@@guillemotright}.  These names are actually incorrect; a
+ ``guillemot'' is a bird species (a type of auk).
+ 
+ Traditions for quotation mark usage vary to a great extent between
+ languages (@url{http://@/en.wikipedia.org/@/wiki/@/Quotation_mark%2C_non-English_usage@/#Overview}).
+ Texinfo does not provide commands for typesetting quotation marks
+ according to the numerous traditions.  Therefore, you have to choose
+ the commands appropriate for the language of your manual.  Sometimes
+ aliases (@pxref{alias,,@code{@@alias}}) can simplify the usage and
+ make the source code more readable.  For example, in German,
+ @code{@@quotedblbase} is used for the left double quote, and the right
+ double quote is actually @code{@@quotedblleft}, which is
+ counter-intuitive.  Thus, in this case the following aliases would be
+ convenient:
+ 
+ @example
+ @@alias lgqq = quotedblbase
+ @@alias rgqq = quotedblleft
+ @end example
+ 
+ 
+ @node Dots Bullets
+ @section Inserting Ellipsis and Bullets
+ @cindex Dots, inserting
+ @cindex Bullets, inserting
+ @cindex Ellipsis, inserting
+ @cindex Inserting ellipsis
+ @cindex Inserting dots
+ @cindex Special typesetting commands
+ @cindex Typesetting commands for dots, etc.
+ 
+ An @dfn{ellipsis} (a line of dots) is not typeset as a string of
+ periods, so a special command is used for ellipsis in Texinfo.  The
+ @code{@@bullet} command is special, too.  Each of these commands is
+ followed by a pair of braces, @samp{@{@}}, without any whitespace
+ between the name of the command and the braces.  (You need to use braces
+ with these commands because you can use them next to other text; without
+ the braces, the formatters would be confused.  @xref{Command Syntax, ,
+ @@-Command Syntax}, for further information.)@refill
+ 
+ @menu
+ * dots::                        How to insert dots @dots{}
+ * bullet::                      How to insert a bullet.
+ @end menu
+ 
+ 
+ @node dots
+ @subsection @code{@@dots}@{@} (@dots{}) and @code{@@enddots}@{@} (@enddots{})
+ @findex dots
+ @findex enddots
+ @cindex Inserting dots
+ @cindex Dots, inserting
+ 
+ Use the @code{@@dots@{@}} command to generate an ellipsis, which is
+ three dots in a row, appropriately spaced @dots{} like so.  Do
+ not simply write three periods in the input file; that would work for
+ the Info file output, but would produce the wrong amount of space
+ between the periods in the printed manual.
+ 
+ Similarly, the @code{@@enddots@{@}} command generates an
+ end-of-sentence ellipsis, which has different spacing afterwards,
+ @enddots{}  Look closely to see the difference.
+ 
+ @iftex
+ Here is an ellipsis: @dots{}
+ Here are three periods in a row: ...
+ 
+ In printed output, the three periods in a row are much closer together than
+ the dots in the ellipsis.
+ @end iftex
+ 
+ 
+ @node bullet
+ @subsection @code{@@bullet}@{@} (@bullet{})
+ @findex bullet
+ 
+ Use the @code{@@bullet@{@}} command to generate a large round dot, or
+ the closest possible thing to one.  In Info, an asterisk is used.@refill
+ 
+ Here is a bullet: @bullet{}
+ 
+ When you use @code{@@bullet} in @code{@@itemize}, you do not need to
+ type the braces, because @code{@@itemize} supplies them.
+ (@xref{itemize, , @code{@@itemize}}.)@refill
+ 
+ 
+ @node TeX and copyright
+ @section Inserting @TeX{} and Legal Symbols: @copyright{}, @registeredsymbol{}
+ 
+ The logo `@TeX{}' is typeset in a special fashion and it needs an
+ @@-command.  The copyright and registered symbols, `@copyright{}' and
+ `@registeredsymbol{}', is also special.  Each of these commands is
+ followed by a pair of braces, @samp{@{@}}, without any whitespace
+ between the name of the command and the braces.
+ 
+ @menu
+ * tex::                         The @TeX{} logos.
+ * copyright symbol::            The copyright symbol (c in a circle).
+ * registered symbol::           The registered symbol (R in a circle).
+ @end menu
+ 
+ 
+ @node tex
+ @subsection @code{@@TeX}@{@} (@TeX{}) and @code{@@LaTeX}@{@} (@LaTeX{})
+ @findex TeX
+ @findex LaTeX
+ @cindex Logos, @TeX{}
+ @cindex @TeX{} logo
+ @cindex @LaTeX{} logo
+ 
+ Use the @code{@@TeX@{@}} command to generate `@TeX{}'.  In a printed
+ manual, this is a special logo that is different from three ordinary
+ letters.  In Info, it just looks like @samp{TeX}.
+ 
+ Similarly, use the @code{@@LaTeX@{@}} command to generate `@LaTeX{}',
+ which is even more special in printed manuals (and different from the
+ incorrect @code{La@@TeX@{@}}.  In Info, the result is just
+ @samp{LaTeX}.  (@LaTeX{} is another macro package built on top of
+ @TeX{}, very loosely analogous to Texinfo in that it emphasizes
+ logical structure, but much (much) larger.)
+ 
+ The spelling of these commands are unusual among Texinfo commands in
+ that they use both uppercase and lowercase letters.
+ 
+ 
+ @node copyright symbol
+ @subsection @code{@@copyright@{@}} (@copyright{})
+ @findex copyright
+ @cindex Copyright symbol
+ 
+ Use the @code{@@copyright@{@}} command to generate the copyright
+ symbol, `@copyright{}'.  Where possible, this is a @samp{c}
+ inside a circle; in Info, this is @samp{(C)}.
+ 
+ 
+ @node registered symbol
+ @subsection @code{@@registeredsymbol@{@}} (@registeredsymbol{})
+ @findex registeredsymbol
+ @cindex Registered symbol
+ 
+ Use the @code{@@registeredsymbol@{@}} command to generate the
+ registered symbol, `@registeredsymbol{}'.  Where possible, this is an
+ @samp{R} inside a circle; in Info, this is @samp{(R)}.
+ 
+ 
+ @node euro
+ @section @code{@@euro}@{@} (@euro{}): Euro Currency Symbol
+ @findex euro
+ @cindex Euro symbol
+ 
+ Use the @code{@@euro@{@}} command to generate `@euro{}'.  Where
+ possible, this is the symbol for the Euro currency, invented as part
+ of the European economic unification.  In plain Info, it is the word
+ @samp{Euro }.  A trailing space is included in the text
+ transliteration since typically no space is desired after the symbol,
+ so it would be inappropriate to have a space in the source document.
+ 
+ Texinfo cannot magically synthesize support for the Euro symbol where
+ the underlying system (fonts, software, whatever) does not support
+ it.  Therefore, in many cases it is preferable to use the word
+ ``Euro''.  (In banking circles, the abbreviation for the Euro is EUR.)
+ 
+ @cindex ISO 8859-15
+ @cindex Latin 9
+ In order to get the Euro symbol in encoded Info output, for example,
+ it is necessary to specify @code{@@documentencoding ISO-8859-15}.
+ (@xref{documentencoding,,@code{@@documentencoding}}.)  The Euro symbol
+ is in ISO 8859-15 (aka Latin@tie{}9), and is @emph{not} in the more
+ widely-used and supported ISO 8859-1 (Latin@tie{}1).
+ 
+ @pindex feymr10
+ @cindex Euro font
+ The Euro symbol does not exist in the standard @TeX{} fonts (which
+ were designed before the Euro was legislated into existence).
+ Therefore, @TeX{} uses an additional font, named @code{feymr10} (along
+ with other variables).  It is freely available, of course; you can
+ download it from @url{http://www.ctan.org/tex-archive/fonts/eurosym},
+ among other places.  The distribution includes installation
+ instructions.
+ 
+ 
+ @node pounds
+ @section @code{@@pounds}@{@} (@pounds{}): Pounds Sterling
+ @findex pounds
+ @cindex Pounds symbol
+ 
+ Use the @code{@@pounds@{@}} command to generate `@pounds{}'.  Where
+ possible, this is the symbol for the currency pounds sterling.  In
+ Info, it is a @samp{#}.
+ 
+ 
+ @node textdegree
+ @section @code{@@textdegree}@{@} (@textdegree{}): Degrees Symbol
+ @findex textdegree
+ @cindex Degree symbol
+ 
+ Use the @code{@@textdegree@{@}} command to generate `@textdegree{}'.
+ Where possible, this is the normal symbol for degrees.  In plain text
+ and Info output, it is an @samp{o}.
+ 
+ 
+ @node minus
+ @section @code{@@minus}@{@} (@minus{}): Inserting a Minus Sign
+ @findex minus
+ @cindex Minus sign
+ 
+ @cindex Em dash, compared to minus sign
+ @cindex Hyphen, compared to minus
+ Use the @code{@@minus@{@}} command to generate a minus sign.  In a
+ fixed-width font, this is a single hyphen, but in a proportional font,
+ the symbol is the customary length for a minus sign---a little longer
+ than a hyphen, shorter than an em-dash:
+ 
+ @display
+ @samp{@minus{}} is a minus sign generated with @samp{@@minus@{@}},
+ 
+ `-' is a hyphen generated with the character @samp{-},
+ 
+ `---' is an em-dash for text.
+ @end display
+ 
+ @noindent
+ In the fixed-width font used by Info, @code{@@minus@{@}} is the same
+ as a hyphen.
+ 
+ You should not use @code{@@minus@{@}} inside @code{@@code} or
+ @code{@@example} because the width distinction is not made in the
+ fixed-width font they use.
+ 
+ When you use @code{@@minus} to specify the mark beginning each entry in
+ an itemized list, you do not need to type the braces
+ (@pxref{itemize, , @code{@@itemize}}).
+ 
+ 
+ @node geq leq
+ @section @code{@@geq@{@}} (@geq{}) and @code{@@leq@{@}} (@leq{}): Inserting relations
+ @findex geq
+ @findex leq
+ 
+ Use the @code{@@geq@{@}} and @code{@@geq@{@}} commands to generate
+ greater-than-or-equal and less-than-equal-signs, `@geq{}' and
+ `@leq{}'.  In plain text and Info output, these are the ASCII
+ sequences @samp{>=} and @samp{<=}.  The 
+ 
+ 
+ @node math
+ @section @code{@@math}: Inserting Mathematical Expressions
+ @findex math
+ @cindex Mathematical expressions
+ @cindex Formulas, mathematical
+ 
+ You can write a short mathematical expression with the @code{@@math}
+ command.  Write the mathematical expression between braces, like this:
+ 
+ @example
+ @@math@{(a + b)(a + b) = a^2 + 2ab + b^2@}
+ @end example
+ 
+ @iftex
+ @noindent This produces the following in @TeX{}:
+ 
+ @display
+ @math{(a + b)(a + b) = a^2 + 2ab + b^2}
+ @end display
+ 
+ @noindent and the following in other formats:
+ @end iftex
+ @ifnottex
+ @noindent This produces the following in Info and HTML:
+ @end ifnottex
+ 
+ @example
+ (a + b)(a + b) = a^2 + 2ab + b^2
+ @end example
+ 
+ The @code{@@math} command has no special effect on the Info and HTML
+ output.  @command{makeinfo} expands any @code{@@}-commands as usual,
+ but it does not try to produce good mathematical formatting in any
+ way.
+ 
+ However, as far as the @TeX{} output is concerned, plain @TeX{}
+ mathematical commands are allowed in @code{@@math}, starting with
+ @samp{\}, and the plain @TeX{} math characters like @samp{^} and
+ @samp{_} are also recognized.  In essence, @code{@@math} drops you
+ into plain @TeX{} math mode.
+ 
+ This allows you to conveniently write superscripts and subscripts (as
+ in the above example), and also to use all the plain @TeX{} math
+ control sequences for symbols, functions, and so on, and thus get
+ proper formatting in the @TeX{} output, at least.
+ 
+ It's best to use @samp{\} instead of @samp{@@} for any such
+ mathematical commands; otherwise, @command{makeinfo} will complain.
+ On the other hand, input with matching (but unescaped) braces, such as
+ @samp{k_@{75@}}, is allowed inside @code{@@math}, although
+ @command{makeinfo} would complain about the bare braces in regular
+ input.
+ 
+ Here's an example:
+ 
+ @example
+ @@math@{\sin 2\pi \equiv \cos 3\pi@}
+ @end example
+ 
+ @iftex
+ @noindent which looks like this in @TeX{}:
+ @display
+ @math{\sin 2\pi \equiv \cos 3\pi}
+ @end display
+ 
+ @noindent and
+ @end iftex
+ @noindent which looks like the input in Info and HTML:
+ @example
+ \sin 2\pi \equiv \cos 3\pi
+ @end example
+ 
+ @findex \ @r{(literal \ in @code{@@math})}
+ Since @samp{\} is an escape character inside @code{@@math}, you can use
+ @code{@@\} to get a literal backslash (@code{\\} will work in @TeX{},
+ but you'd get the literal @samp{\\} in Info).  @code{@@\} is not
+ defined outside of @code{@@math}, since a @samp{\} ordinarily produces a
+ literal @samp{\}.
+ 
+ @cindex Displayed equations
+ @cindex Equations, displayed
+ For displayed equations, you must at present use @TeX{} directly
+ (@pxref{Raw Formatter Commands}).
+ 
+ 
+ @node Click Sequences
+ @section Click Sequences
+ @cindex Click sequences
+ @cindex Sequence of clicks
+ @cindex GUI click sequence
+ 
+ @findex clicksequence
+ When documenting graphical interfaces, it is necessary to describe
+ sequences such as `Click on @samp{File}, then choose @samp{Open}, then
+ @dots{}'.  Texinfo offers commands @code{@@clicksequence} and
+ @code{click} to represent this, typically used like this:
+ 
+ @example
+ @dots{} @@clicksequence@{File @@click@{@} Open@} @dots{}
+ @end example
+ 
+ @noindent
+ which produces:
+ 
+ @display
+ @dots{} @clicksequence{File @click{} Open} @dots{}
+ @end display
+ 
+ @findex click
+ @findex arrow
+ The @code{@@click} command produces a simple right arrow (@samp{->} in
+ Info) by default; this glyph is also available independently via the
+ command @code{@@arrow@{@}}.
+ 
+ @findex clickstyle
+ You can change the glyph produced by @code{@@click} with the command
+ @code{@@clickstyle}, which takes a command name as its single argument
+ on the rest of the line, much like @code{@@itemize} and friends
+ (@pxref{itemize,,@code{@@itemize}}).  The command should produce a
+ glyph, and the usual empty braces @samp{@{@}} are omitted.  Here's an
+ example:
+ 
+ @example
+ @@clickstyle @@result
+ @dots{} @@clicksequence@{File @@click@{@} Open@} @dots{}
+ @end example
+ 
+ @noindent
+ now produces:
+ 
+ @display
+ @clickstyle @result
+ @dots{} @clicksequence{File @click{} Open} @dots{}
+ @end display
+ 
+ 
+ @node Glyphs
+ @section Glyphs for Examples
+ @cindex Glyphs
+ @cindex Examples, glyphs for
+ 
+ In Texinfo, code is often illustrated in examples that are delimited
+ by @code{@@example} and @code{@@end example}, or by @code{@@lisp} and
+ @code{@@end lisp}.  In such examples, you can indicate the results of
+ evaluation or an expansion using @samp{@result{}} or
+ @samp{@expansion{}}.  Likewise, there are commands to insert glyphs
+ to indicate
+ printed output, error messages, equivalence of expressions, and the
+ location of point.
+ 
+ The glyph-insertion commands do not need to be used within an example, but
+ most often they are.  Every  glyph-insertion command is followed by a pair of
+ left- and right-hand braces.@refill
+ 
+ @menu
+ * Glyphs Summary::
+ * result::                      How to show the result of expression.
+ * expansion::                   How to indicate an expansion.
+ * Print Glyph::                 How to indicate printed output.
+ * Error Glyph::                 How to indicate an error message.
+ * Equivalence::                 How to indicate equivalence.
+ * Point Glyph::                 How to indicate the location of point.
+ @end menu
+ 
+ 
+ @node Glyphs Summary
+ @subsection Glyphs Summary
+ 
+ Here are the different glyph commands:@refill
+ 
+ @table @asis
+ @item @result{}
+ @code{@@result@{@}} points to the result of an expression.@refill
+ 
+ @item @expansion{}
+ @code{@@expansion@{@}} shows the results of a macro expansion.@refill
+ 
+ @item @print{}
+ @code{@@print@{@}} indicates printed output.@refill
+ 
+ @item @error{}
+ @code{@@error@{@}} indicates that the following text is an error
+ message.@refill
+ 
+ @item @equiv{}
+ @code{@@equiv@{@}} indicates the exact equivalence of two forms.@refill
+ 
+ @item @point{}
+ @code{@@point@{@}} shows the location of point.@refill
+ @end table
+ 
+ @menu
+ * result::
+ * expansion::
+ * Print Glyph::
+ * Error Glyph::
+ * Equivalence::
+ * Point Glyph::
+ @end menu
+ 
+ 
+ @node result
+ @subsection @code{@@result@{@}} (@result{}): Indicating Evaluation
+ @cindex Result of an expression
+ @cindex Indicating evaluation
+ @cindex Evaluation glyph
+ @cindex Value of an expression, indicating
+ @findex result
+ 
+ Use the @code{@@result@{@}} command to indicate the result of
+ evaluating an expression.@refill
+ 
+ @iftex
+ The @code{@@result@{@}} command is displayed as @samp{@result{}} in
+ the printed output and as @samp{=>} in other formats.
+ @end iftex
+ @ifnottex
+ The @code{@@result@{@}} command is displayed as @samp{@result{}} in
+ Info and HTML and as a true double stemmed arrow in the printed output.
+ @end ifnottex
+ 
+ Thus, the following,
+ 
+ @lisp
+ (cdr '(1 2 3))
+     @result{} (2 3)
+ @end lisp
+ 
+ @noindent
+ may be read as ``@code{(cdr '(1 2 3))} evaluates to @code{(2 3)}''.
+ 
+ 
+ @node expansion
+ @subsection @code{@@expansion@{@}} (@expansion{}): Indicating an Expansion
+ @cindex Expansion, indicating
+ @cindex Macro expansion, indicating
+ @findex expansion
+ 
+ When an expression is a macro call, it expands into a new expression.
+ You can indicate the result of the expansion with the
+ @code{@@expansion@{@}} command.@refill
+ 
+ @iftex
+ The @code{@@expansion@{@}} command is displayed as @samp{@expansion{}}
+ in the printed output and as @samp{==>} in other formats.
+ @end iftex
+ @ifnottex
+ The @code{@@expansion@{@}} command is displayed as @samp{@expansion{}}
+ in Info and HTML, and as a long arrow with a flat base in the printed
+ output.
+ @end ifnottex
+ 
+ @need 700
+ For example, the following
+ 
+ @example
+ @group
+ @@lisp
+ (third '(a b c))
+     @@expansion@{@} (car (cdr (cdr '(a b c))))
+     @@result@{@} c
+ @@end lisp
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @lisp
+ @group
+ (third '(a b c))
+     @expansion{} (car (cdr (cdr '(a b c))))
+     @result{} c
+ @end group
+ @end lisp
+ 
+ @noindent
+ which may be read as:
+ 
+ @quotation
+ @code{(third '(a b c))} expands to @code{(car (cdr (cdr '(a b c))))};
+ the result of evaluating the expression is @code{c}.
+ @end quotation
+ 
+ @noindent
+ Often, as in this case, an example looks better if the
+ @code{@@expansion@{@}} and @code{@@result@{@}} commands are indented.
+ 
+ 
+ @node Print Glyph
+ @subsection @code{@@print@{@}} (@print{}): Indicating Printed Output
+ @cindex Printed output, indicating
+ @findex print
+ 
+ Sometimes an expression will print output during its execution.  You
+ can indicate the printed output with the @code{@@print@{@}} command.@refill
+ 
+ @iftex
+ The @code{@@print@{@}} command is displayed as @samp{-|} in Info and
+ HTML and as @samp{@print{}} in the printed output.
+ @end iftex
+ @ifnottex
+ The @code{@@print@{@}} command is displayed as @samp{@print{}} in Info
+ and HTML and (similarly) as a horizontal dash butting against a
+ vertical bar in the printed output.
+ @end ifnottex
+ 
+ In the following example, the printed text is indicated with
+ @samp{@print{}}, and the value of the expression follows on the
+ last line.
+ 
+ @lisp
+ @group
+ (progn (print 'foo) (print 'bar))
+     @print{} foo
+     @print{} bar
+     @result{} bar
+ @end group
+ @end lisp
+ 
+ @noindent
+ In a Texinfo source file, this example is written as follows:
+ 
+ @lisp
+ @group
+ @@lisp
+ (progn (print 'foo) (print 'bar))
+     @@print@{@} foo
+     @@print@{@} bar
+     @@result@{@} bar
+ @@end lisp
+ @end group
+ @end lisp
+ 
+ 
+ @node Error Glyph
+ @subsection @code{@@error@{@}} (@error{}): Indicating an Error Message
+ @cindex Error message, indicating
+ @findex error
+ 
+ A piece of code may cause an error when you evaluate it.  You can
+ designate the error message with the @code{@@error@{@}} command.@refill
+ 
+ @iftex
+ The @code{@@error@{@}} command is displayed as @samp{error-->} in Info
+ and HTML and as @samp{@error{}} in the printed output.
+ @end iftex
+ @ifnottex
+ The @code{@@error@{@}} command is displayed as @samp{@error{}} in Info
+ and HTML and as the word `error' in a box in the printed output.
+ @end ifnottex
+ 
+ @need 700
+ Thus,
+ 
+ @example
+ @@lisp
+ (+ 23 'x)
+ @@error@{@} Wrong type argument: integer-or-marker-p, x
+ @@end lisp
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @lisp
+ (+ 23 'x)
+ @error{} Wrong type argument: integer-or-marker-p, x
+ @end lisp
+ 
+ @noindent
+ This indicates that the following error message is printed
+ when you evaluate the expression:
+ 
+ @lisp
+ Wrong type argument: integer-or-marker-p, x
+ @end lisp
+ 
+ @samp{@error{}} itself is not part of the error message.
+ 
+ 
+ @node Equivalence
+ @subsection @code{@@equiv@{@}} (@equiv{}): Indicating Equivalence
+ @cindex Equivalence, indicating
+ @findex equiv
+ 
+ Sometimes two expressions produce identical results.  You can indicate the
+ exact equivalence of two forms with the @code{@@equiv@{@}} command.@refill
+ 
+ @iftex
+ The @code{@@equiv@{@}} command is displayed as @samp{==} in Info and
+ HTML and as @samp{@equiv{}} in the printed output.
+ @end iftex
+ @ifnottex
+ The @code{@@equiv@{@}} command is displayed as @samp{@equiv{}} in Info
+ and HTML and as a standard mathematical equivalence sign (three
+ parallel horizontal lines) in the printed output.
+ @end ifnottex
+ 
+ Thus,
+ 
+ @example
+ @@lisp
+ (make-sparse-keymap) @@equiv@{@} (list 'keymap)
+ @@end lisp
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @lisp
+ (make-sparse-keymap) @equiv{} (list 'keymap)
+ @end lisp
+ 
+ @noindent
+ This indicates that evaluating @code{(make-sparse-keymap)} produces
+ identical results to evaluating @code{(list 'keymap)}.
+ 
+ 
+ @node Point Glyph
+ @subsection @code{@@point@{@}} (@point{}): Indicating Point in a Buffer
+ @cindex Point, indicating in a buffer
+ @findex point
+ 
+ Sometimes you need to show an example of text in an Emacs buffer.  In
+ such examples, the convention is to include the entire contents of the
+ buffer in question between two lines of dashes containing the buffer
+ name.@refill
+ 
+ You can use the @samp{@@point@{@}} command to show the location of point
+ in the text in the buffer.  (The symbol for point, of course, is not
+ part of the text in the buffer; it indicates the place @emph{between}
+ two characters where point is located.)@refill
+ 
+ @iftex
+ The @code{@@point@{@}} command is displayed as @samp{-!-} in Info and
+ HTML and as @samp{@point{}} in the printed output.
+ @end iftex
+ @ifnottex
+ The @code{@@point@{@}} command is displayed as @samp{@point{}} in Info
+ and HTML and as a small five pointed star in the printed
+ output.
+ @end ifnottex
+ 
+ The following example shows the contents of buffer @file{foo} before
+ and after evaluating a Lisp command to insert the word @code{changed}.@refill
+ 
+ @example
+ @group
+ ---------- Buffer: foo ----------
+ This is the @point{}contents of foo.
+ ---------- Buffer: foo ----------
+ 
+ @end group
+ @end example
+ 
+ @example
+ @group
+ (insert "changed ")
+     @result{} nil
+ ---------- Buffer: foo ----------
+ This is the changed @point{}contents of foo.
+ ---------- Buffer: foo ----------
+ 
+ @end group
+ @end example
+ 
+ In a Texinfo source file, the example is written like this:@refill
+ 
+ @example
+ @@example
+ ---------- Buffer: foo ----------
+ This is the @@point@{@}contents of foo.
+ ---------- Buffer: foo ----------
+ 
+ (insert "changed ")
+     @@result@{@} nil
+ ---------- Buffer: foo ----------
+ This is the changed @@point@{@}contents of foo.
+ ---------- Buffer: foo ----------
+ @@end example
+ @end example
+ 
+ 
+ @node Breaks
+ @chapter Forcing and Preventing Breaks
+ @cindex Forcing line and page breaks
+ @cindex Making line and page breaks
+ @cindex Preventing line and page breaks
+ 
+ @cindex Line breaks
+ Usually, a Texinfo file is processed both by @TeX{} and by one of the
+ Info formatting commands.  Line, paragraph, or page breaks sometimes
+ occur in the `wrong' place in one or other form of output.  You must
+ ensure that text looks right both in the printed manual and in the
+ Info file.
+ 
+ @cindex White space, excessive
+ @cindex Page breaks
+ For example, in a printed manual, page breaks may occur awkwardly in
+ the middle of an example; to prevent this, you can hold text together
+ using a grouping command that keeps the text from being split across
+ two pages.  Conversely, you may want to force a page break where none
+ would occur normally.  Fortunately, problems like these do not often
+ arise.  When they do, use the break, break prevention, or pagination
+ commands.
+ 
+ @menu
+ * Break Commands::              Summary of break-related commands.
+ * Line Breaks::                 Forcing line breaks.
+ * - and hyphenation::           Helping @TeX{} with hyphenation points.
+ * allowcodebreaks::             Controlling line breaks within @@code text.
+ * w::                           Preventing unwanted line breaks in text.
+ * tie::                         Inserting an unbreakable but varying space.
+ * sp::                          Inserting blank lines.
+ * page::                        Forcing the start of a new page.
+ * group::                       Preventing unwanted page breaks.
+ * need::                        Another way to prevent unwanted page breaks.
+ @end menu
+ 
+ 
+ @node Break Commands
+ @section Break Commands
+ 
+ The break commands create or allow line and paragraph breaks:
+ 
+ @table @code
+ @item @@*
+ Force a line break.
+ 
+ @item @@sp @var{n}
+ Skip @var{n} blank lines.
+ 
+ @item @@-
+ Insert a discretionary hyphen.
+ 
+ @item @@hyphenation@{@var{hy-phen-a-ted words}@}
+ Define hyphen points in @var{hy-phen-a-ted words}.
+ @end table
+ 
+ These commands hold text together on a single line:
+ 
+ @table @code
+ @item @@w@{@var{text}@}
+ Prevent @var{text} from being split and hyphenated across two lines.
+ @item @@tie@{@}
+ Insert a normal interword space at which a line break may not occur.
+ @end table
+ @iftex
+ @sp 1
+ @end iftex
+ 
+ The pagination commands apply only to printed output, since Info
+ files do not have pages.
+ 
+ @table @code
+ @item @@page
+ Start a new page in the printed manual.
+ 
+ @item @@group
+ Hold text together that must appear on one printed page.
+ 
+ @item @@need @var{mils}
+ Start a new printed page if not enough space on this one.
+ @end table
+ 
+ 
+ @node Line Breaks
+ @section @code{@@*} and @code{@@/}: Generate and Allow Line Breaks
+ @findex * @r{(force line break)}
+ @findex / @r{(allow line break)}
+ @cindex Line breaks
+ @cindex Breaks in a line
+ @cindex Force line break
+ @cindex Allow line break
+ 
+ The @code{@@*} command forces a line break in both the printed manual and
+ in Info.  The @code{@@/} command allows a line break (printed manual only).
+ 
+ Here is an example with @code{@@*}:
+ 
+ @example
+ This line @@* is broken @@*in two places.
+ @end example
+ 
+ @noindent produces
+ 
+ @example
+ @group
+ This line
+ is broken
+ in two places.
+ @end group
+ @end example
+ 
+ The @code{@@/} command can be useful within a url
+ (@pxref{uref,,@code{@@uref}}), which tend to be long and are otherwise
+ unbreakable.  For example:
+ 
+ @example
+ The official Texinfo home page is on the GNU web site:
+ @@uref@{http://www.gnu.org/@@/software/@@/gnu/@@/texinfo@}.
+ @end example
+ 
+ @noindent produces
+ 
+ @display
+ The official Texinfo home page is on the GNU web site:
+ @uref{http://www.gnu.org/@/software/@/gnu/@/texinfo}.
+ @end display
+ 
+ @noindent Without the @code{@@/} commands, @TeX{} would have nowhere to
+ break the line.  @code{@@/} has no effect in the online output.
+ 
+ 
+ @node - and hyphenation
+ @section @code{@@-} and @code{@@hyphenation}: Helping @TeX{} Hyphenate
+ 
+ @findex - @r{(discretionary hyphen)}
+ @findex hyphenation
+ @cindex Hyphenation, helping @TeX{} do
+ @cindex Fine-tuning, and hyphenation
+ 
+ Although @TeX{}'s hyphenation algorithm is generally pretty good, it
+ does miss useful hyphenation points from time to time.  (Or, far more
+ rarely, insert an incorrect hyphenation.)  So, for documents with an
+ unusual vocabulary or when fine-tuning for a printed edition, you may
+ wish to help @TeX{} out.  Texinfo supports two commands for this:
+ 
+ @table @code
+ @item @@-
+ Insert a discretionary hyphen, i.e., a place where @TeX{} can (but does
+ not have to) hyphenate.  This is especially useful when you notice an
+ overfull hbox is due to @TeX{} missing a hyphenation (@pxref{Overfull
+ hboxes}).  @TeX{} will not insert any hyphenation points itself into a
+ word containing @code{@@-}.
+ 
+ @item @@hyphenation@{@var{hy-phen-a-ted words}@}
+ Tell @TeX{} how to hyphenate @var{hy-phen-a-ted words}.  As shown, you
+ put a @samp{-} at each hyphenation point.  For example:
+ @example
+ @@hyphenation@{man-u-script man-u-scripts@}
+ @end example
+ @noindent @TeX{} only uses the specified hyphenation points when the
+ words match exactly, so give all necessary variants, such as plurals.
+ @end table
+ 
+ Info, HTML, and other non-@TeX{} output is not hyphenated, so none of
+ these commands have any effect there.
+ 
+ 
+ @node allowcodebreaks
+ @section @code{@@allowcodebreaks}: Control Line Breaks in @code{@@code}
+ 
+ @findex allowcodebreaks
+ @cindex Breaks, within @code{@@code}
+ @cindex -, breakpoint within @code{@@code}
+ @cindex Hyphen, breakpoint within @code{@@code}
+ @cindex Dash, breakpoint within @code{@@code}
+ @cindex _, breakpoint within @code{@@code}
+ @cindex Underscore, breakpoint within @code{@@code}
+ 
+ Ordinarily, @TeX{} will consider breaking lines at @samp{-} and
+ @samp{_} characters within @code{@@code} and related commands
+ (@pxref{code,,@code{@@code}}), more or less as if they were ``empty''
+ hyphenation points.
+ 
+ This is necessary as many manuals, especially for Lisp-family
+ languages, must document very long identifiers.  On the other hand,
+ other manuals don't have this problems, and you may not wish to allow
+ a line break at the underscore in, for example, @code{SIZE_MAX}, or
+ even worse, after any of the four underscores in @code{__typeof__}.
+ 
+ So Texinfo provides this command:
+ 
+ @example
+ @@allowcodebreaks false
+ @end example
+ 
+ @noindent to prevent @TeX{} from breaking at @samp{-} or @samp{_} within
+ @code{@@code}.  You can go back to allowing such breaks with
+ @code{@@allowcodebreaks true}.  Write these commands on lines by
+ themselves.
+ 
+ These commands can be given anywhere in the document.  For example,
+ you may have just one problematic paragraph where you need to turn off
+ the breaks, but want them in general, or vice versa.
+ 
+ This command has no effect in Info, HTML, and other non-@TeX{} output.
+ 
+ 
+ @node w
+ @section @code{@@w}@{@var{text}@}: Prevent Line Breaks
+ @findex w @r{(prevent line break)}
+ @cindex Line breaks, preventing
+ 
+ @code{@@w@{@var{text}@}} outputs @var{text} and prohibits line breaks
+ within @var{text}, for both @TeX{} and @command{makeinfo}.
+ 
+ @cindex Non-breakable space, fixed
+ @cindex Unbreakable space, fixed
+ Thus, you can use @code{@@w} to produce a non-breakable space, fixed at
+ the width of a normal interword space:
+ 
+ @example
+ @@w@{ @} @@w@{ @} @@w@{ @} indentation.
+ @end example
+ 
+ @noindent produces:
+ 
+ @display
+ @w{ } @w{ } @w{ } indentation.
+ @end display
+ 
+ The space from @code{@@w@{@w{ }@}}, as well as being non-breakable,
+ also will not stretch or shrink.  Sometimes that is what you want, for
+ instance if you're doing manual indenting.  However, usually you want
+ a normal interword space that does stretch and shrink (in the printed
+ output); see the @code{@@tie} command in the next section.
+ 
+ @cindex Hyphenation, preventing
+ You can also use the @code{@@w} command to prevent @TeX{} from
+ automatically hyphenating a long name or phrase that happens to fall
+ near the end of a line.  @command{makeinfo} does not ever hyphenate
+ words.
+ 
+ @cindex Keyword expansion, preventing
+ @cindex Version control keywords, preventing expansion of
+ @cindex $Id expansion, preventing
+ You can also use @code{@@w} to avoid unwanted keyword expansion in
+ source control systems.  For example, to literally write @t{@w{$}Id$}
+ in your document, use @code{@@w@{$@}Id$}.
+ 
+ 
+ @node tie
+ @section @code{@@tie@{@}}: Inserting an Unbreakable Space
+ @findex tie @r{(unbreakable interword space)}
+ @cindex Tied space
+ @cindex Non-breakable space, variable
+ @cindex Unbreakable space, variable
+ 
+ The @code{@@tie@{@}} command produces a normal interword space at which
+ a line break may not occur.  Always write it with following (empty)
+ braces, as usual for commands used within a paragraph.  Here's an
+ example:
+ 
+ @example
+ @@TeX@{@} was written by Donald E.@@tie@{@}Knuth.
+ @end example
+ 
+ @noindent produces:
+ 
+ @display
+ @TeX{} was written by Donald E.@tie{}Knuth.
+ @end display
+ 
+ There are two important differences between @code{@@tie@{@}} and
+ @code{@@w@{@w{ }@}}:
+ 
+ @itemize
+ @item
+ The space produced by @code{@@tie@{@}} will stretch and shrink slightly
+ along with the normal interword spaces in the paragraph; the space
+ produced by @code{@@w@{@w{ }@}} will not vary.
+ 
+ @item
+ @code{@@tie@{@}} allows hyphenation of the surrounding words, while
+ @code{@@w@{@w{ }@}} inhibits hyphenation of those words (for @TeX{}nical
+ reasons, namely that it produces an @samp{\hbox}).
+ 
+ @end itemize
+ 
+ 
+ @node sp
+ @section @code{@@sp} @var{n}: Insert Blank Lines
+ @findex sp @r{(line spacing)}
+ @cindex Space, inserting vertical
+ @cindex Blank lines
+ @cindex Line spacing
+ 
+ A line beginning with and containing only @code{@@sp @var{n}}
+ generates @var{n} blank lines of space in both the printed manual and
+ the Info file.  @code{@@sp} also forces a paragraph break.  For
+ example,
+ 
+ @example
+ @@sp 2
+ @end example
+ 
+ @noindent
+ generates two blank lines.
+ 
+ The @code{@@sp} command is most often used in the title page.@refill
+ 
+ @ignore
+ @c node br, page, sp, Breaks
+ @comment  node-name,  next,  previous,  up
+ @c section @code{@@br}: Generate Paragraph Breaks
+ @findex br @r{(paragraph breaks)}
+ @cindex Paragraph breaks
+ @cindex Breaks in a paragraph
+ 
+ The @code{@@br} command forces a paragraph break.  It inserts a blank
+ line.  You can use the command within or at the end of a line.  If
+ used within a line, the @code{@@br@{@}} command must be followed by
+ left and right braces (as shown here) to mark the end of the
+ command.@refill
+ 
+ @need 700
+ For example,
+ 
+ @example
+ @group
+ This line @@br@{@}contains and is ended by paragraph breaks@@br
+ and is followed by another line.
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @example
+ @group
+ This line
+ 
+ contains and is ended by paragraph breaks
+ 
+ and is followed by another line.
+ @end group
+ @end example
+ 
+ The @code{@@br} command is seldom used.
+ @end ignore
+ 
+ 
+ @node page
+ @section @code{@@page}: Start a New Page
+ @cindex Page breaks
+ @findex page
+ 
+ A line containing only @code{@@page} starts a new page in a printed
+ manual.  The command has no effect on Info files since they are not
+ paginated.  An @code{@@page} command is often used in the @code{@@titlepage}
+ section of a Texinfo file to start the copyright page.
+ 
+ 
+ @node group
+ @comment  node-name,  next,  previous,  up
+ @section @code{@@group}: Prevent Page Breaks
+ @cindex Group (hold text together vertically)
+ @cindex Holding text together vertically
+ @cindex Vertically holding text together
+ @findex group
+ 
+ The @code{@@group} command (on a line by itself) is used inside an
+ @code{@@example} or similar construct to begin an unsplittable vertical
+ group, which will appear entirely on one page in the printed output.
+ The group is terminated by a line containing only @code{@@end group}.
+ These two lines produce no output of their own, and in the Info file
+ output they have no effect at all.@refill
+ 
+ @c Once said that these environments
+ @c turn off vertical spacing between ``paragraphs''.
+ @c Also, quotation used to work, but doesn't in texinfo-2.72
+ Although @code{@@group} would make sense conceptually in a wide
+ variety of contexts, its current implementation works reliably only
+ within @code{@@example} and variants, and within @code{@@display},
+ @code{@@format}, @code{@@flushleft} and @code{@@flushright}.
+ @xref{Quotations and Examples}.  (What all these commands have in
+ common is that each line of input produces a line of output.)  In
+ other contexts, @code{@@group} can cause anomalous vertical
+ spacing.@refill
+ 
+ @need 750
+ This formatting requirement means that you should write:
+ 
+ @example
+ @group
+ @@example
+ @@group
+ @dots{}
+ @@end group
+ @@end example
+ @end group
+ @end example
+ 
+ @noindent
+ with the @code{@@group} and @code{@@end group} commands inside the
+ @code{@@example} and @code{@@end example} commands.
+ 
+ The @code{@@group} command is most often used to hold an example
+ together on one page.  In this Texinfo manual, more than 100 examples
+ contain text that is enclosed between @code{@@group} and @code{@@end
+ group}.
+ 
+ If you forget to end a group, you may get strange and unfathomable
+ error messages when you run @TeX{}.  This is because @TeX{} keeps
+ trying to put the rest of the Texinfo file onto the one page and does
+ not start to generate error messages until it has processed
+ considerable text.  It is a good rule of thumb to look for a missing
+ @code{@@end group} if you get incomprehensible error messages in
+ @TeX{}.@refill
+ 
+ @node need
+ @comment  node-name,  next,  previous,  up
+ @section @code{@@need @var{mils}}: Prevent Page Breaks
+ @cindex Need space at page bottom
+ @findex need
+ 
+ A line containing only @code{@@need @var{n}} starts
+ a new page in a printed manual if fewer than @var{n} mils (thousandths
+ of an inch) remain on the current page.  Do not use
+ braces around the argument @var{n}.  The @code{@@need} command has no
+ effect on Info files since they are not paginated.@refill
+ 
+ @need 800
+ This paragraph is preceded by an @code{@@need} command that tells
+ @TeX{} to start a new page if fewer than 800 mils (eight-tenths
+ inch) remain on the page.  It looks like this:@refill
+ 
+ @example
+ @group
+ @@need 800
+ This paragraph is preceded by @dots{}
+ @end group
+ @end example
+ 
+ The @code{@@need} command is useful for preventing orphans (single
+ lines at the bottoms of printed pages).@refill
+ 
+ 
+ @node Definition Commands
+ @chapter Definition Commands
+ @cindex Definition commands
+ 
+ The @code{@@deffn} command and the other @dfn{definition commands}
+ enable you to describe functions, variables, macros, commands, user
+ options, special forms and other such artifacts in a uniform
+ format.@refill
+ 
+ In the Info file, a definition causes the entity
+ category---`Function', `Variable', or whatever---to appear at the
+ beginning of the first line of the definition, followed by the
+ entity's name and arguments.  In the printed manual, the command
+ causes @TeX{} to print the entity's name and its arguments on the left
+ margin and print the category next to the right margin.  In both
+ output formats, the body of the definition is indented.  Also, the
+ name of the entity is entered into the appropriate index:
+ @code{@@deffn} enters the name into the index of functions,
+ @code{@@defvr} enters it into the index of variables, and so
+ on (@pxref{Predefined Indices}).
+ 
+ A manual need not and should not contain more than one definition for
+ a given name.  An appendix containing a summary should use
+ @code{@@table} rather than the definition commands.@refill
+ 
+ @menu
+ * Def Cmd Template::            Writing descriptions using definition commands.
+ * Def Cmd Continuation Lines::  Continuing the heading over source lines.
+ * Optional Arguments::          Handling optional and repeated arguments.
+ * deffnx::                      Group two or more `first' lines.
+ * Def Cmds in Detail::          Reference for all the definition commands.
+ * Def Cmd Conventions::         Conventions for writing definitions.
+ * Sample Function Definition::  An example.
+ @end menu
+ 
+ 
+ @node Def Cmd Template
+ @section The Template for a Definition
+ @cindex Definition template
+ @cindex Template for a definition
+ 
+ The @code{@@deffn} command is used for definitions of entities that
+ resemble functions.  To write a definition using the @code{@@deffn}
+ command, write the @code{@@deffn} command at the beginning of a line
+ and follow it on the same line by the category of the entity, the name
+ of the entity itself, and its arguments (if any).  Then write the body
+ of the definition on succeeding lines.  (You may embed examples in the
+ body.)  Finally, end the definition with an @code{@@end deffn} command
+ written on a line of its own.
+ 
+ The other definition commands follow the same format: a line with the
+ @code{@@def@dots{}} command and whatever arguments are appropriate for
+ that command; the body of the definition; and a corresponding
+ @code{@@end} line.
+ 
+ The template for a definition looks like this:
+ 
+ @example
+ @group
+ @@deffn @var{category} @var{name} @var{arguments}@dots{}
+ @var{body-of-definition}
+ @@end deffn
+ @end group
+ @end example
+ 
+ @need 700
+ @noindent
+ For example,
+ 
+ @example
+ @group
+ @@deffn Command forward-word count
+ This command moves point forward @@var@{count@} words
+ (or backward if @@var@{count@} is negative). @dots{}
+ @@end deffn
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @quotation
+ @deffn Command forward-word count
+ This command moves point forward @var{count} words
+ (or backward if @var{count} is negative). @dots{}
+ @end deffn
+ @end quotation
+ 
+ Capitalize the category name like a title.  If the name of the
+ category contains spaces, as in the phrase `Interactive Command',
+ enclose it in braces.  For example:
+ 
+ @example
+ @group
+ @@deffn @{Interactive Command@} isearch-forward
+ @dots{}
+ @@end deffn
+ @end group
+ @end example
+ 
+ @noindent
+ Otherwise, the second word will be mistaken for the name of the
+ entity.  As a general rule, when any of the arguments in the heading
+ line @emph{except} the last one are more than one word, you need to
+ enclose them in braces.  This may also be necessary if the text
+ contains commands, for example, @samp{@{declaraci@@'on@}} if you are
+ writing in Spanish.
+ 
+ Some of the definition commands are more general than others.  The
+ @code{@@deffn} command, for example, is the general definition command
+ for functions and the like---for entities that may take arguments.
+ When you use this command, you specify the category to which the
+ entity belongs.  Three predefined, specialized variations
+ (@code{@@defun}, @code{@@defmac}, and @code{@@defspec}) specify the
+ category for you: ``Function'', ``Macro'', and ``Special Form''
+ respectively.  (In Lisp, a special form is an entity much like a
+ function.)  Similarly, the general @code{@@defvr} command is
+ accompanied by several specialized variations for describing
+ particular kinds of variables.
+ 
+ @xref{Sample Function Definition}, for a detailed example of a
+ function definition, including the use of @code{@@example} inside the
+ definition.
+ 
+ @cindex Macros in definition commands
+ Unfortunately, due to implementation difficulties, macros are not expanded
+ in @code{@@deffn} and all the other definition commands.
+ 
+ 
+ @node Def Cmd Continuation Lines
+ @section Definition Command Continuation Lines
+ @cindex Continuation lines in definition commands
+ @cindex Definition command headings, continuing
+ @cindex @samp{@@} as continuation in definition commands
+ 
+ The heading line of a definition command can get very long.
+ Therefore, Texinfo has a special syntax allowing them to be continued
+ over multiple lines of the source file: a lone @samp{@@} at the end of
+ each line to be continued.  Here's an example:
+ 
+ @example
+ @@defun fn-name @@
+   arg1 arg2 arg3
+ This is the basic continued defun.
+ @@end defun
+ @end example
+ 
+ @noindent produces:
+ 
+ @defun fn-name @
+   arg1 arg2 arg3
+ This is the basic continued defun.
+ @end defun
+ 
+ @noindent
+ As you can see, the continued lines are combined, as if they had been
+ typed on one source line.
+ 
+ Although this example only shows a one-line continuation,
+ continuations may extend over any number of lines; simply put an
+ @code{@@} at the end of each line to be continued.
+ 
+ The @code{@@} character does not have to be the last character on the
+ physical line: whitespace is allowed (and ignored) afterwards.
+ 
+ @cindex Whitespace, collapsed around continuations
+ @cindex Collapsing whitespace around continuations
+ In general, any number of spaces or tabs around the @code{@@}
+ continuation character, both on the line with the @code{@@} and on the
+ continued line, are collapsed into a single space.  There is one
+ exception: the Texinfo processors will not fully collapse whitespace
+ around a continuation inside braces.  For example:
+ 
+ @example
+ @@deffn @{Category @@
+   Name@} @dots{}
+ @end example
+ 
+ @noindent The output (not shown) has excess space between `Category'
+ and `Name'.  In this case, simply elide any unwanted whitespace in
+ your input, or put the continuation @code{@@} outside braces.
+ 
+ @code{@@} does not (currently) function as a continuation character in
+ @emph{any} other context.  Ordinarily, @samp{@@} followed by a
+ whitespace character (space, tab, newline) produces a normal interword
+ space (@pxref{Multiple Spaces}).
+ 
+ 
+ @node Optional Arguments
+ @section Optional and Repeated Arguments
+ @cindex Optional and repeated arguments
+ @cindex Repeated and optional arguments
+ @cindex Arguments, repeated and optional
+ @cindex Syntax, optional & repeated arguments
+ @cindex Meta-syntactic chars for arguments
+ 
+ Some entities take optional or repeated arguments, which may be
+ specified by a distinctive glyph that uses square brackets and
+ ellipses.  For @w{example}, a special form often breaks its argument list
+ into separate arguments in more complicated ways than a
+ straightforward function.
+ 
+ @c This is consistent with Emacs Lisp Reference manual
+ An argument enclosed within square brackets is optional.
+ Thus, [@var{optional-arg}] means that @var{optional-arg} is optional.
+ An argument followed by an ellipsis is optional
+ and may be repeated more than once.
+ @c This is consistent with Emacs Lisp Reference manual
+ Thus, @var{repeated-args}@samp{@dots{}} stands for zero or more
+ arguments.  Parentheses are used when several arguments are grouped
+ into additional levels of list structure in Lisp.
+ 
+ Here is the @code{@@defspec} line of an example of an imaginary
+ special form:
+ 
+ @quotation
+ @defspec foobar (@var{var} [@var{from} @var{to} [@var{inc}]]) @var{body}@dots{}
+ @end defspec
+ @tex
+ \vskip \parskip
+ @end tex
+ @end quotation
+ 
+ @noindent
+ In this example, the arguments @var{from} and @var{to} are optional,
+ but must both be present or both absent.  If they are present,
+ @var{inc} may optionally be specified as well.  These arguments are
+ grouped with the argument @var{var} into a list, to distinguish them
+ from @var{body}, which includes all remaining elements of the
+ form.@refill
+ 
+ In a Texinfo source file, this @code{@@defspec} line is written like
+ this (except it would not be split over two lines, as it is in this
+ example).@refill
+ 
+ @example
+ @group
+ @@defspec foobar (@@var@{var@} [@@var@{from@} @@var@{to@}
+     [@@var@{inc@}]]) @@var@{body@}@@dots@{@}
+ @end group
+ @end example
+ 
+ @noindent
+ The function is listed in the Command and Variable Index under
+ @samp{foobar}.@refill
+ 
+ 
+ @node deffnx
+ @section Two or More `First' Lines
+ @cindex Two `First' Lines for @code{@@deffn}
+ @cindex Grouping two definitions together
+ @cindex Definitions grouped together
+ @findex deffnx
+ 
+ To create two or more `first' or header lines for a definition, follow
+ the first @code{@@deffn} line by a line beginning with @code{@@deffnx}.
+ The @code{@@deffnx} command works exactly like @code{@@deffn}
+ except that it does not generate extra vertical white space between it
+ and the preceding line.@refill
+ 
+ @need 1000
+ For example,
+ 
+ @example
+ @group
+ @@deffn @{Interactive Command@} isearch-forward
+ @@deffnx @{Interactive Command@} isearch-backward
+ These two search commands are similar except @dots{}
+ @@end deffn
+ @end group
+ @end example
+ 
+ @noindent
+ produces
+ 
+ @deffn {Interactive Command} isearch-forward
+ @deffnx {Interactive Command} isearch-backward
+ These two search commands are similar except @dots{}
+ @end deffn
+ 
+ Each definition command has an `x' form: @code{@@defunx},
+ @code{@@defvrx}, @code{@@deftypefunx}, etc.
+ 
+ The `x' forms work similarly to @code{@@itemx} (@pxref{itemx}).
+ 
+ 
+ @node Def Cmds in Detail
+ @section The Definition Commands
+ 
+ Texinfo provides more than a dozen definition commands, all of which
+ are described in this section.@refill
+ 
+ The definition commands automatically enter the name of the entity in
+ the appropriate index: for example, @code{@@deffn}, @code{@@defun},
+ and @code{@@defmac} enter function names in the index of functions;
+ @code{@@defvr} and @code{@@defvar} enter variable names in the index
+ of variables.@refill
+ 
+ Although the examples that follow mostly illustrate Lisp, the commands
+ can be used for other programming languages.@refill
+ 
+ @menu
+ * Functions Commands::          Commands for functions and similar entities.
+ * Variables Commands::          Commands for variables and similar entities.
+ * Typed Functions::             Commands for functions in typed languages.
+ * Typed Variables::             Commands for variables in typed languages.
+ * Data Types::                  The definition command for data types.
+ * Abstract Objects::            Commands for object-oriented programming.
+ @end menu
+ 
+ @node Functions Commands
+ @subsection Functions and Similar Entities
+ 
+ This section describes the commands for describing functions and similar
+ entities:@refill
+ 
+ @table @code
+ @findex deffn
+ @item @@deffn @var{category} @var{name} @var{arguments}@dots{}
+ The @code{@@deffn} command is the general definition command for
+ functions, interactive commands, and similar entities that may take
+ arguments.  You must choose a term to describe the category of entity
+ being defined; for example, ``Function'' could be used if the entity is
+ a function.  The @code{@@deffn} command is written at the beginning of a
+ line and is followed on the same line by the category of entity being
+ described, the name of this particular entity, and its arguments, if
+ any.  Terminate the definition with @code{@@end deffn} on a line of its
+ own.@refill
+ 
+ @need 750
+ For example, here is a definition:
+ 
+ @example
+ @group
+ @@deffn Command forward-char nchars
+ Move point forward @@var@{nchars@} characters.
+ @@end deffn
+ @end group
+ @end example
+ 
+ @noindent
+ This shows a rather terse definition for a ``command'' named
+ @code{forward-char} with one argument, @var{nchars}.
+ 
+ @code{@@deffn} and prints argument names such as @var{nchars} in slanted
+ type in the printed output, because we think of these names as
+ metasyntactic variables---they stand for the actual argument values.
+ Within the text of the description, however, write an argument name
+ explicitly with @code{@@var} to refer to the value of the argument.
+ In the example above, we used @samp{@@var@{nchars@}} in this way.
+ 
+ In the unusual case when an argument name contains @samp{--}, or
+ another character sequence which is treated specially
+ (@pxref{Conventions}), use @code{@@var} around the argument.  This
+ causes the name to be printed in slanted typewriter, instead of the
+ regular slanted font, exactly as input.
+ @c except for ?` and !`, but we won't explain that.
+ 
+ The template for @code{@@deffn} is:
+ 
+ @example
+ @group
+ @@deffn @var{category} @var{name} @var{arguments}@dots{}
+ @var{body-of-definition}
+ @@end deffn
+ @end group
+ @end example
+ 
+ @findex defun
+ @item @@defun @var{name} @var{arguments}@dots{}
+ The @code{@@defun} command is the definition command for functions.
+ @code{@@defun} is equivalent to @samp{@@deffn Function @dots{}}.
+ Terminate the definition with @code{@@end defun} on a line of its own.
+ Thus, the template is:
+ 
+ @example
+ @group
+ @@defun @var{function-name} @var{arguments}@dots{}
+ @var{body-of-definition}
+ @@end defun
+ @end group
+ @end example
+ 
+ @findex defmac
+ @item @@defmac @var{name} @var{arguments}@dots{}
+ The @code{@@defmac} command is the definition command for macros.
+ @code{@@defmac} is equivalent to @samp{@@deffn Macro @dots{}} and
+ works like @code{@@defun}.
+ 
+ @findex defspec
+ @item @@defspec @var{name} @var{arguments}@dots{}
+ The @code{@@defspec} command is the definition command for special
+ forms.  (In Lisp, a special form is an entity much like a function,
+ @pxref{Special Forms,,, elisp, GNU Emacs Lisp Reference Manual}.)
+ @code{@@defspec} is equivalent to @samp{@@deffn @{Special Form@}
+ @dots{}} and works like @code{@@defun}.
+ @end table
+ 
+ All these commands create entries in the index of functions.
+ 
+ 
+ @node Variables Commands
+ @subsection Variables and Similar Entities
+ 
+ Here are the commands for defining variables and similar
+ entities:@refill
+ 
+ @table @code
+ @findex defvr
+ @item @@defvr @var{category} @var{name}
+ The @code{@@defvr} command is a general definition command for
+ something like a variable---an entity that records a value.  You must
+ choose a term to describe the category of entity being defined; for
+ example, ``Variable'' could be used if the entity is a variable.
+ Write the @code{@@defvr} command at the beginning of a line and
+ follow it on the same line by the category of the entity and the
+ name of the entity.
+ 
+ Capitalize the category name like a title.  If the name of the category
+ contains spaces, as in the name ``User Option'', enclose it in braces.
+ Otherwise, the second word will be mistaken for the name of the entity.
+ For example,
+ 
+ @example
+ @group
+ @@defvr @{User Option@} fill-column
+ This buffer-local variable specifies
+ the maximum width of filled lines.
+ @dots{}
+ @@end defvr
+ @end group
+ @end example
+ 
+ Terminate the definition with @code{@@end defvr} on a line of its
+ own.@refill
+ 
+ The template is:
+ 
+ @example
+ @group
+ @@defvr @var{category} @var{name}
+ @var{body-of-definition}
+ @@end defvr
+ @end group
+ @end example
+ 
+ @code{@@defvr} creates an entry in the index of variables for @var{name}.
+ 
+ @findex defvar
+ @item @@defvar @var{name}
+ The @code{@@defvar} command is the definition command for variables.
+ @code{@@defvar} is equivalent to @samp{@@defvr Variable
+ @dots{}}.@refill
+ 
+ @need 750
+ For example:
+ 
+ @example
+ @group
+ @@defvar kill-ring
+ @dots{}
+ @@end defvar
+ @end group
+ @end example
+ 
+ The template is:
+ 
+ @example
+ @group
+ @@defvar @var{name}
+ @var{body-of-definition}
+ @@end defvar
+ @end group
+ @end example
+ 
+ @code{@@defvar} creates an entry in the index of variables for
+ @var{name}.@refill
+ 
+ @findex defopt
+ @item @@defopt @var{name}
+ @cindex User options, marking
+ The @code{@@defopt} command is the definition command for @dfn{user
+ options}, i.e., variables intended for users to change according to
+ taste; Emacs has many such (@pxref{Variables,,, emacs, The GNU Emacs
+ Manual}).  @code{@@defopt} is equivalent to @samp{@@defvr @{User
+ Option@} @dots{}} and works like @code{@@defvar}.  It creates an entry
+ in the index of variables.
+ @end table
+ 
+ 
+ @node Typed Functions
+ @subsection Functions in Typed Languages
+ 
+ The @code{@@deftypefn} command and its variations are for describing
+ functions in languages in which you must declare types of variables and
+ functions, such as C and C++.
+ 
+ @table @code
+ @findex deftypefn
+ @item @@deftypefn @var{category} @var{data-type} @var{name} @var{arguments}@dots{}
+ The @code{@@deftypefn} command is the general definition command for
+ functions and similar entities that may take arguments and that are
+ typed.  The @code{@@deftypefn} command is written at the beginning of
+ a line and is followed on the same line by the category of entity
+ being described, the type of the returned value, the name of this
+ particular entity, and its arguments, if any.@refill
+ 
+ @need 800
+ @noindent
+ For example,
+ 
+ @example
+ @group
+ @@deftypefn @{Library Function@} int foobar
+   (int @@var@{foo@}, float @@var@{bar@})
+ @dots{}
+ @@end deftypefn
+ @end group
+ @end example
+ 
+ @need 1000
+ @noindent
+ (where the text before the ``@dots{}'', shown above as two lines, would
+ actually be a single line in a real Texinfo file) produces the following
+ in Info:
+ 
+ @smallexample
+ @group
+ -- Library Function: int foobar (int FOO, float BAR)
+ @dots{}
+ @end group
+ @end smallexample
+ @iftex
+ 
+ In a printed manual, it produces:
+ 
+ @quotation
+ @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
+ @dots{}
+ @end deftypefn
+ @end quotation
+ @end iftex
+ 
+ This means that @code{foobar} is a ``library function'' that returns an
+ @code{int}, and its arguments are @var{foo} (an @code{int}) and
+ @var{bar} (a @code{float}).@refill
+ 
+ Since in typed languages, the actual names of the arguments are
+ typically scattered among data type names and keywords, Texinfo cannot
+ find them without help.  You can either (a)@tie{}write everything
+ as straight text, and it will be printed in slanted type; (b)@tie{}use
+ @code{@@var} for the variable names, which will uppercase the
+ variable names in Info and use the slanted typewriter font in printed
+ output; (c)@tie{}use @code{@@var} for the variable names and
+ @code{@@code} for the type names and keywords, which will be dutifully
+ obeyed.
+ 
+ The template for @code{@@deftypefn} is:@refill
+ 
+ @example
+ @group
+ @@deftypefn @var{category} @var{data-type} @var{name} @var{arguments} @dots{}
+ @var{body-of-description}
+ @@end deftypefn
+ @end group
+ @end example
+ 
+ @noindent
+ Note that if the @var{category} or @var{data type} is more than one
+ word then it must be enclosed in braces to make it a single argument.@refill
+ 
+ If you are describing a procedure in a language that has packages,
+ such as Ada, you might consider using @code{@@deftypefn} in a manner
+ somewhat contrary to the convention described in the preceding
+ paragraphs.  For example:
+ 
+ @example
+ @group
+ @@deftypefn stacks private push @@
+        (@@var@{s@}:in out stack; @@
+        @@var@{n@}:in integer)
+ @dots{}
+ @@end deftypefn
+ @end group
+ @end example
+ 
+ @noindent
+ (The @code{@@deftypefn} arguments are shown using continuations
+ (@pxref{Def Cmd Continuation Lines}), but could be on a single line in
+ a real Texinfo file.)
+ 
+ In this instance, the procedure is classified as belonging to the
+ package @code{stacks} rather than classified as a `procedure' and its
+ data type is described as @code{private}.  (The name of the procedure
+ is @code{push}, and its arguments are @var{s} and @var{n}.)@refill
+ 
+ @code{@@deftypefn} creates an entry in the index of functions for
+ @var{name}.
+ 
+ @item @@deftypefun @var{data-type} @var{name} @var{arguments}@dots{}
+ @findex deftypefun
+ The @code{@@deftypefun} command is the specialized definition command
+ for functions in typed languages.  The command is equivalent to
+ @samp{@@deftypefn Function @dots{}}.  The template is:
+ 
+ @example
+ @group
+ @@deftypefun @var{type} @var{name} @var{arguments}@dots{}
+ @var{body-of-description}
+ @@end deftypefun
+ @end group
+ @end example
+ 
+ @code{@@deftypefun} creates an entry in the index of functions for
+ @var{name}.
+ 
+ @end table
+ 
+ 
+ @node Typed Variables
+ @subsection Variables in Typed Languages
+ 
+ Variables in typed languages are handled in a manner similar to
+ functions in typed languages.  @xref{Typed Functions}.  The general
+ definition command @code{@@deftypevr} corresponds to
+ @code{@@deftypefn} and the specialized definition command
+ @code{@@deftypevar} corresponds to @code{@@deftypefun}.@refill
+ 
+ @table @code
+ @findex deftypevr
+ @item @@deftypevr @var{category} @var{data-type} @var{name}
+ The @code{@@deftypevr} command is the general definition command for
+ something like a variable in a typed language---an entity that records
+ a value.  You must choose a term to describe the category of the
+ entity being defined; for example, ``Variable'' could be used if the
+ entity is a variable.@refill
+ 
+ The @code{@@deftypevr} command is written at the beginning of a line
+ and is followed on the same line by the category of the entity
+ being described, the data type, and the name of this particular
+ entity.@refill
+ 
+ @need 800
+ @noindent
+ For example:
+ 
+ @example
+ @group
+ @@deftypevr @{Global Flag@} int enable
+ @dots{}
+ @@end deftypevr
+ @end group
+ @end example
+ 
+ @noindent
+ produces the following in Info:
+ 
+ @example
+ @group
+ -- Global Flag: int enable
+ @dots{}
+ @end group
+ @end example
+ @iftex
+ 
+ @noindent
+ and the following in a printed manual:
+ 
+ @quotation
+ @deftypevr {Global Flag} int enable
+ @dots{}
+ @end deftypevr
+ @end quotation
+ @end iftex
+ 
+ @need 800
+ The template is:
+ 
+ @example
+ @@deftypevr @var{category} @var{data-type} @var{name}
+ @var{body-of-description}
+ @@end deftypevr
+ @end example
+ 
+ @findex deftypevar
+ @item @@deftypevar @var{data-type} @var{name}
+ The @code{@@deftypevar} command is the specialized definition command
+ for variables in typed languages.  @code{@@deftypevar} is equivalent
+ to @samp{@@deftypevr Variable @dots{}}.  The template is:
+ 
+ @example
+ @group
+ @@deftypevar @var{data-type} @var{name}
+ @var{body-of-description}
+ @@end deftypevar
+ @end group
+ @end example
+ @end table
+ 
+ These commands create entries in the index of variables.
+ 
+ @node Data Types
+ @subsection Data Types
+ 
+ Here is the command for data types:@refill
+ 
+ @table @code
+ @findex deftp
+ @item @@deftp @var{category} @var{name} @var{attributes}@dots{}
+ The @code{@@deftp} command is the generic definition command for data
+ types.  The command is written at the beginning of a line and is
+ followed on the same line by the category, by the name of the type
+ (which is a word like @code{int} or @code{float}), and then by names of
+ attributes of objects of that type.  Thus, you could use this command
+ for describing @code{int} or @code{float}, in which case you could use
+ @code{data type} as the category.  (A data type is a category of
+ certain objects for purposes of deciding which operations can be
+ performed on them.)@refill
+ 
+ In Lisp, for example,  @dfn{pair} names a particular data
+ type, and an object of that type has two slots called the
+ @sc{car} and the @sc{cdr}.  Here is how you would write the first line
+ of a definition of @code{pair}.@refill
+ 
+ @example
+ @group
+ @@deftp @{Data type@} pair car cdr
+ @dots{}
+ @@end deftp
+ @end group
+ @end example
+ 
+ @need 950
+ The template is:
+ 
+ @example
+ @group
+ @@deftp @var{category} @var{name-of-type} @var{attributes}@dots{}
+ @var{body-of-definition}
+ @@end deftp
+ @end group
+ @end example
+ 
+ @code{@@deftp} creates an entry in the index of data types.
+ @end table
+ 
+ 
+ @node Abstract Objects
+ @subsection Object-Oriented Programming
+ 
+ @cindex Object-oriented programming
+ 
+ Here are the commands for formatting descriptions about abstract
+ objects, such as are used in object-oriented programming.  A class is
+ a defined type of abstract object.  An instance of a class is a
+ particular object that has the type of the class.  An instance
+ variable is a variable that belongs to the class but for which each
+ instance has its own value.
+ 
+ @menu
+ * Variables: Object-Oriented Variables.
+ * Methods: Object-Oriented Methods.
+ @end menu
+ 
+ 
+ @node Object-Oriented Variables
+ @subsubsection Object-Oriented Variables
+ 
+ @cindex Variables, object-oriented
+ 
+ These commands allow you to define different sorts of variables in
+ object-oriented programming languages.
+ 
+ @table @code
+ @item @@defcv @var{category} @var{class} @var{name}
+ @findex defcv
+ The @code{@@defcv} command is the general definition command for
+ variables associated with classes in object-oriented programming.  The
+ @code{@@defcv} command is followed by three arguments: the category of
+ thing being defined, the class to which it belongs, and its
+ name.  For instance:
+ 
+ @example
+ @group
+ @@defcv @{Class Option@} Window border-pattern
+ @dots{}
+ @@end defcv
+ @end group
+ @end example
+ 
+ @noindent produces:
+ @defcv {Class Option} Window border-pattern
+ @dots{}
+ @end defcv
+ 
+ @code{@@defcv} creates an entry in the index of variables.
+ 
+ @item @@deftypecv @var{category} @var{class} @var{data-type} @var{name}
+ @findex deftypecv
+ The @code{@@deftypecv} command is the definition command for typed
+ class variables in object-oriented programming.  It is analogous to
+ @code{@@defcv} with the addition of the @var{data-type} parameter to
+ specify the type of the instance variable.  Ordinarily, the data type
+ is a programming language construct that should be marked with
+ @code{@@code}. For instance:
+ 
+ @example
+ @group
+ @@deftypecv @{Class Option@} Window @@code@{int@} border-pattern
+ @dots{}
+ @@end deftypecv
+ @end group
+ @end example
+ 
+ @noindent produces:
+ 
+ @deftypecv {Class Option} Window @code{int} border-pattern
+ @dots{}
+ @end deftypecv
+ 
+ @code{@@deftypecv} creates an entry in the index of variables.
+ 
+ @item @@defivar @var{class} @var{name}
+ @findex defivar
+ The @code{@@defivar} command is the definition command for instance
+ variables in object-oriented programming.  @code{@@defivar} is
+ equivalent to @samp{@@defcv @{Instance Variable@} @dots{}}.  For
+ instance:
+ 
+ @example
+ @group
+ @@defivar Window border-pattern
+ @dots{}
+ @@end defivar
+ @end group
+ @end example
+ 
+ @noindent produces:
+ 
+ @defivar Window border-pattern
+ @dots{}
+ @end defivar
+ 
+ @code{@@defivar} creates an entry in the index of variables.
+ 
+ @item @@deftypeivar @var{class} @var{data-type} @var{name}
+ @findex deftypeivar
+ The @code{@@deftypeivar} command is the definition command for typed
+ instance variables in object-oriented programming.  It is analogous to
+ @code{@@defivar} with the addition of the @var{data-type} parameter to
+ specify the type of the instance variable.  Ordinarily, the data type
+ is a programming language construct that should be marked with
+ @code{@@code}. For instance:
+ 
+ @example
+ @group
+ @@deftypeivar Window @@code@{int@} border-pattern
+ @dots{}
+ @@end deftypeivar
+ @end group
+ @end example
+ 
+ @noindent produces:
+ 
+ @deftypeivar Window @code{int} border-pattern
+ @dots{}
+ @end deftypeivar
+ 
+ @code{@@deftypeivar} creates an entry in the index of variables.
+ 
+ @end table
+ 
+ @node Object-Oriented Methods
+ @subsubsection Object-Oriented Methods
+ 
+ @cindex Methods, object-oriented
+ 
+ These commands allow you to define different sorts of function-like
+ entities resembling methods in object-oriented programming languages.
+ These entities take arguments, as functions do, but are associated with
+ particular classes of objects.
+ 
+ @table @code
+ 
+ @findex defop
+ @item @@defop @var{category} @var{class} @var{name} @var{arguments}@dots{}
+ The @code{@@defop} command is the general definition command for these
+ method-like entities.
+ 
+ For example, some systems have constructs called @dfn{wrappers} that
+ are associated with classes as methods are, but that act more like
+ macros than like functions.  You could use @code{@@defop Wrapper} to
+ describe one of these.@refill
+ 
+ Sometimes it is useful to distinguish methods and @dfn{operations}.
+ You can think of an operation as the specification for a method.
+ Thus, a window system might specify that all window classes have a
+ method named @code{expose}; we would say that this window system
+ defines an @code{expose} operation on windows in general.  Typically,
+ the operation has a name and also specifies the pattern of arguments;
+ all methods that implement the operation must accept the same
+ arguments, since applications that use the operation do so without
+ knowing which method will implement it.@refill
+ 
+ Often it makes more sense to document operations than methods.  For
+ example, window application developers need to know about the
+ @code{expose} operation, but need not be concerned with whether a
+ given class of windows has its own method to implement this operation.
+ To describe this operation, you would write:@refill
+ 
+ @example
+ @@defop Operation windows expose
+ @end example
+ 
+ The @code{@@defop} command is written at the beginning of a line and
+ is followed on the same line by the overall name of the category of
+ operation, the name of the class of the operation, the name of the
+ operation, and its arguments, if any.@refill
+ 
+ The template is:
+ @example
+ @group
+ @@defop @var{category} @var{class} @var{name} @var{arguments}@dots{}
+ @var{body-of-definition}
+ @@end defop
+ @end group
+ @end example
+ 
+ @code{@@defop} creates an entry, such as `@code{expose} on
+ @code{windows}', in the index of functions.@refill
+ 
+ @findex deftypeop
+ @item @@deftypeop @var{category} @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
+ The @code{@@deftypeop} command is the definition command for typed
+ operations in object-oriented programming.  It is similar to
+ @code{@@defop} with the addition of the @var{data-type} parameter to
+ specify the return type of the method.  @code{@@deftypeop} creates an
+ entry in the index of functions.
+ 
+ @item @@defmethod @var{class} @var{name} @var{arguments}@dots{}
+ @findex defmethod
+ The @code{@@defmethod} command is the definition command for methods
+ in object-oriented programming.  A method is a kind of function that
+ implements an operation for a particular class of objects and its
+ subclasses.
+ @ignore
+ @c ADR: Who cares?!?
+ @c KB: Oh, I don't know, I think this info is crucial!
+ In the Lisp Machine, methods actually were functions, but
+ they were usually defined with @code{defmethod}.
+ @end ignore
+ 
+ @code{@@defmethod} is equivalent to @samp{@@defop Method @dots{}}.
+ The command is written at the beginning of a line and is followed by
+ the name of the class of the method, the name of the method, and its
+ arguments, if any.@refill
+ 
+ @noindent
+ For example:
+ @example
+ @group
+ @@defmethod @code{bar-class} bar-method argument
+ @dots{}
+ @@end defmethod
+ @end group
+ @end example
+ 
+ @noindent
+ illustrates the definition for a method called @code{bar-method} of
+ the class @code{bar-class}.  The method takes an argument.
+ 
+ @code{@@defmethod} creates an entry in the index of functions.
+ 
+ @item @@deftypemethod @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
+ @findex defmethod
+ The @code{@@deftypemethod} command is the definition command for methods
+ in object-oriented typed languages, such as C++ and Java.  It is similar
+ to the @code{@@defmethod} command with the addition of the
+ @var{data-type} parameter to specify the return type of the method.
+ @code{@@deftypemethod} creates an entry in the index of functions.
+ 
+ @end table
+ 
+ 
+ @node Def Cmd Conventions
+ @section Conventions for Writing Definitions
+ @cindex Definition conventions
+ @cindex Conventions for writing definitions
+ 
+ When you write a definition using @code{@@deffn}, @code{@@defun}, or
+ one of the other definition commands, please take care to use
+ arguments that indicate the meaning, as with the @var{count} argument
+ to the @code{forward-word} function.  Also, if the name of an argument
+ contains the name of a type, such as @var{integer}, take care that the
+ argument actually is of that type.@refill
+ 
+ 
+ @node Sample Function Definition
+ @section A Sample Function Definition
+ @cindex Function definitions
+ @cindex Command definitions
+ @cindex Macro definitions
+ @cindex Sample function definition
+ 
+ A function definition uses the @code{@@defun} and @code{@@end defun}
+ commands.  The name of the function follows immediately after the
+ @code{@@defun} command and it is followed, on the same line, by the
+ parameter list.@refill
+ 
+ Here is a definition from @ref{Calling Functions,,, elisp, The GNU Emacs
+ Lisp Reference Manual}.
+ 
+ @quotation
+ @defun apply function &rest arguments
+ @code{apply} calls @var{function} with @var{arguments}, just
+ like @code{funcall} but with one difference: the last of
+ @var{arguments} is a list of arguments to give to
+ @var{function}, rather than a single argument.  We also say
+ that this list is @dfn{appended} to the other arguments.
+ 
+ @code{apply} returns the result of calling @var{function}.
+ As with @code{funcall}, @var{function} must either be a Lisp
+ function or a primitive function; special forms and macros
+ do not make sense in @code{apply}.
+ 
+ @example
+ (setq f 'list)
+     @result{} list
+ (apply f 'x 'y 'z)
+ @error{} Wrong type argument: listp, z
+ (apply '+ 1 2 '(3 4))
+     @result{} 10
+ (apply '+ '(1 2 3 4))
+     @result{} 10
+ 
+ (apply 'append '((a b c) nil (x y z) nil))
+     @result{} (a b c x y z)
+ @end example
+ 
+ An interesting example of using @code{apply} is found in the description
+ of @code{mapcar}.@refill
+ @end defun
+ @end quotation
+ 
+ @need 1200
+ In the Texinfo source file, this example looks like this:
+ 
+ @example
+ @group
+ @@defun apply function &rest arguments
+ @@code@{apply@} calls @@var@{function@} with
+ @@var@{arguments@}, just like @@code@{funcall@} but with one
+ difference: the last of @@var@{arguments@} is a list of
+ arguments to give to @@var@{function@}, rather than a single
+ argument.  We also say that this list is @@dfn@{appended@}
+ to the other arguments.
+ @end group
+ 
+ @group
+ @@code@{apply@} returns the result of calling
+ @@var@{function@}.  As with @@code@{funcall@},
+ @@var@{function@} must either be a Lisp function or a
+ primitive function; special forms and macros do not make
+ sense in @@code@{apply@}.
+ @end group
+ 
+ @group
+ @@example
+ (setq f 'list)
+     @@result@{@} list
+ (apply f 'x 'y 'z)
+ @@error@{@} Wrong type argument: listp, z
+ (apply '+ 1 2 '(3 4))
+     @@result@{@} 10
+ (apply '+ '(1 2 3 4))
+     @@result@{@} 10
+ 
+ (apply 'append '((a b c) nil (x y z) nil))
+     @@result@{@} (a b c x y z)
+ @@end example
+ @end group
+ 
+ @group
+ An interesting example of using @@code@{apply@} is found
+ in the description of @@code@{mapcar@}.
+ @@end defun
+ @end group
+ @end example
+ 
+ @noindent
+ In this manual, this function is listed in the Command and Variable
+ Index under @code{apply}.@refill
+ 
+ Ordinary variables and user options are described using a format like
+ that for functions except that variables do not take arguments.
+ 
+ 
+ @node Conditionals
+ @chapter Conditionally Visible Text
+ @cindex Conditionally visible text
+ @cindex Text, conditionally visible
+ @cindex Visibility of conditional text
+ @cindex If text conditionally visible
+ 
+ The @dfn{conditional commands} allow you to use different text for
+ different output formats, or for general conditions that you define.
+ For example, you can use them to specify different text for the
+ printed manual and the Info output.
+ 
+ The conditional commands comprise the following categories.
+ 
+ @itemize @bullet
+ @item
+ Commands specific to an output format (Info, @TeX{}, HTML, @dots{}).
+ 
+ @item
+ Commands specific to any output format @emph{other} than a given
+ one (not Info, not @TeX{}, @dots{}).
+ 
+ @item
+ `Raw' formatter text for any output format, passed straight
+ through with no interpretation of @@-commands.
+ 
+ @item
+ Format-independent variable substitutions, and testing if a variable
+ is set or clear.
+ 
+ @end itemize
+ 
+ @menu
+ * Conditional Commands::        Text for a given format.
+ * Conditional Not Commands::    Text for any format other than a given one.
+ * Raw Formatter Commands::      Using raw formatter commands.
+ * set clear value::             Variable tests and substitutions.
+ * Conditional Nesting::         Using conditionals inside conditionals.
+ @end menu
+ 
+ 
+ @node Conditional Commands
+ @section Conditional Commands
+ 
+ Texinfo has an @code{@@if@var{format}} environment for each output
+ format, to allow conditional inclusion of text for a particular output
+ format.
+ 
+ @findex ifinfo
+ @code{@@ifinfo} begins segments of text that should be ignored by
+ @TeX{} when it typesets the printed manual, and by @command{makeinfo}
+ when not producing Info output.  The segment of text appears only in
+ the Info file and, for historical compatibility, the plain text
+ output.
+ 
+ @findex ifdocbook
+ @findex ifhtml
+ @findex ifplaintext
+ @findex iftex
+ @findex ifxml
+ The environments for the other formats are analogous:
+ 
+ @table @code
+ @item @@ifdocbook @dots{} @@end ifdocbook
+ Text to appear only in the Docbook output.
+ 
+ @item @@ifhtml @dots{} @@end ifhtml
+ Text to appear only in the HTML output.
+ 
+ @item @@ifplaintext @dots{} @@end ifplaintext
+ Text to appear only in the plain text output.
+ 
+ @item @@iftex @dots{} @@end iftex
+ Text to appear only in the printed manual.
+ 
+ @item @@ifxml @dots{} @@end ifxml
+ Text to appear only in the XML output.
+ @end table
+ 
+ The @code{@@if@dots{}} and @code{@@end if@dots{}} commands must appear
+ on lines by themselves in your source file.
+ 
+ Here is an example showing all these conditionals:
+ 
+ @example
+ @@iftex
+ This text will appear only in the printed manual.
+ @@end iftex
+ @@ifinfo
+ However, this text will appear only in Info and plain text.
+ @@end ifinfo
+ @@ifhtml
+ And this text will only appear in HTML.
+ @@end ifhtml
+ @@ifplaintext
+ Whereas this text will only appear in plain text.
+ @@end ifplaintext
+ @@ifxml
+ Notwithstanding that this will only appear in XML.
+ @@end ifxml
+ @@ifdocbook
+ Nevertheless, this will only appear in Docbook.
+ @@end ifdocbook
+ @end example
+ 
+ @noindent
+ The preceding example produces the following line:
+ 
+ @iftex
+ This text will appear only in the printed manual.
+ @end iftex
+ @ifinfo
+ However, this text will appear only in Info and plain text.
+ @end ifinfo
+ @ifhtml
+ And this text will only appear in HTML.
+ @end ifhtml
+ @ifplaintext
+ Whereas this text will only appear in plain text.
+ @end ifplaintext
+ @ifxml
+ Notwithstanding that this will only appear in XML.
+ @end ifxml
+ @ifdocbook
+ Nevertheless, this will only appear in Docbook.
+ @end ifdocbook
+ 
+ @noindent
+ Notice that you only see one of the input lines, depending on which
+ version of the manual you are reading.
+ 
+ 
+ @node Conditional Not Commands
+ @section Conditional Not Commands
+ @findex ifnotdocbook
+ @findex ifnothtml
+ @findex ifnotinfo
+ @findex ifnotplaintext
+ @findex ifnottex
+ @findex ifnotxml
+ 
+ You can specify text to be included in any output format @emph{other}
+ than a given one with the @code{@@ifnot@dots{}} environments:
+ 
+ @example
+ @@ifnotdocbook @dots{} @@end ifnotdocbook
+ @@ifnothtml @dots{} @@end ifnothtml
+ @@ifnotinfo @dots{} @@end ifnotinfo
+ @@ifnotplaintext @dots{} @@end ifnotplaintext
+ @@ifnottex @dots{} @@end ifnottex
+ @@ifnotxml @dots{} @@end ifnotxml
+ @end example
+ 
+ @noindent
+ The @code{@@ifnot@dots{}} command and the @code{@@end} command must
+ appear on lines by themselves in your actual source file.
+ 
+ If the output file is being made in the given format, the
+ region is @emph{ignored}.  Otherwise, it is included.
+ 
+ There is one exception (for historical compatibility):
+ @code{@@ifnotinfo} text is omitted for both Info and plain text
+ output, not just Info.  To specify text which appears only in Info and
+ not in plain text, use @code{@@ifnotplaintext}, like this:
+ 
+ @example
+ @@ifinfo
+ @@ifnotplaintext
+ This will be in Info, but not plain text.
+ @@end ifnotplaintext
+ @@end ifinfo
+ @end example
+ 
+ The regions delimited by these commands are ordinary Texinfo source as
+ with @code{@@iftex}, not raw formatter source as with @code{@@tex}
+ (@pxref{Raw Formatter Commands}).
+ 
+ 
+ @node Raw Formatter Commands
+ @section Raw Formatter Commands
+ @cindex Raw formatter commands
+ @cindex @TeX{} commands, using ordinary
+ @cindex Ordinary @TeX{} commands, using
+ @cindex Commands using raw @TeX{}
+ @cindex Docbook, including raw
+ @cindex HTML, including raw
+ @cindex XML, including raw
+ @cindex Plain @TeX{}
+ 
+ Inside a region delineated by @code{@@iftex} and @code{@@end iftex},
+ you can embed some raw @TeX{} commands.  The Texinfo processors will
+ ignore such a region unless @TeX{} output is being produced.  You can
+ write the @TeX{} commands as you would write them in a normal @TeX{}
+ file, except that you must replace the @samp{\} used by @TeX{} with an
+ @samp{@@}.  For example, in the @code{@@titlepage} section of a
+ Texinfo file, you can use the @TeX{} command @code{@@vskip} to format
+ the copyright page.  (The @code{@@titlepage} command causes Info to
+ ignore the region automatically, as it does with the @code{@@iftex}
+ command.)
+ 
+ However, most features of plain @TeX{} will not work within
+ @code{@@iftex}, as they are overridden by Texinfo features.  The
+ purpose of @code{@@iftex} is to provide conditional processing for the
+ Texinfo source, not provide access to underlying formatting features.
+ 
+ @findex tex
+ You can enter plain @TeX{} completely, and use @samp{\} in the @TeX{}
+ commands, by delineating a region with the @code{@@tex} and @code{@@end
+ tex} commands.  All plain @TeX{} commands and category codes are
+ restored within an @code{@@tex} region.  The sole exception is that the
+ @code{@@} character still introduces a command, so that @code{@@end tex}
+ can be recognized properly.  As with @code{@@iftex}, Texinfo
+ processors will ignore such a region unless @TeX{} output is being produced.
+ 
+ @findex \gdef @r{within @code{@@tex}}
+ In complex cases, you may wish to define new @TeX{} macros within
+ @code{@@tex}.  You must use @code{\gdef} to do this, not @code{\def},
+ because @code{@@tex} regions are processed in a @TeX{} group.
+ 
+ @cindex Mathematical expressions
+ As an example, here is a mathematical expression written in plain @TeX{}:
+ 
+ @example
+ @@tex
+ $$ \chi^2 = \sum_@{i=1@}^N
+          \left (y_i - (a + b x_i)
+          \over \sigma_i\right)^2 $$
+ @@end tex
+ @end example
+ 
+ @noindent
+ The output of this example will appear only in a printed manual.  If
+ you are reading this in Info, you will not see the equation that appears
+ in the printed manual.
+ @iftex
+ In a printed manual, the above expression looks like
+ this:
+ @end iftex
+ 
+ @tex
+ $$ \chi^2 = \sum_{i=1}^N
+          \left(y_i - (a + b x_i)
+          \over \sigma_i\right)^2 $$
+ @end tex
+ 
+ @findex ifhtml
+ @findex html
+ Analogously, you can use @code{@@ifhtml @dots{} @@end ifhtml} to delimit
+ a region to be included in HTML output only, and @code{@@html @dots{}
+ @@end html} for a region of raw HTML.
+ 
+ @findex ifxml
+ @findex xml
+ Likewise, you can use @code{@@ifxml @dots{} @@end ifxml} to delimit
+ a region to be included in XML output only, and @code{@@xml @dots{}
+ @@end xml} for a region of raw XML.
+ 
+ @findex ifdocbook
+ @findex docbook
+ Again likewise, you can use @code{@@ifdocbook @dots{} @@end ifdocbook}
+ to delimit a region to be included in Docbook output only, and
+ @code{@@docbook @dots{} @@end docbook} for a region of raw Docbook.
+ 
+ In all cases, the exception to the raw processing is that @code{@@} is
+ still an escape character, so the @code{@@end} command can be
+ recognized.
+ 
+ 
+ @node set clear value
+ @section @code{@@set}, @code{@@clear}, and @code{@@value}
+ 
+ You can direct the Texinfo formatting commands to format or ignore parts
+ of a Texinfo file with the @code{@@set}, @code{@@clear}, @code{@@ifset},
+ and @code{@@ifclear} commands.
+ 
+ Here are brief descriptions of these commands, see the following
+ sections for more details:
+ 
+ @table @code
+ @item @@set @var{flag} [@var{value}]
+ Set the variable @var{flag}, to the optional @var{value} if specified.
+ 
+ @item @@clear @var{flag}
+ Undefine the variable @var{flag}, whether or not it was previously defined.
+ 
+ @item @@ifset @var{flag}
+ If @var{flag} is set, text through the next @code{@@end ifset} command
+ is formatted.  If @var{flag} is clear, text through the following
+ @code{@@end ifset} command is ignored.
+ 
+ @item @@ifclear @var{flag}
+ If @var{flag} is set, text through the next @code{@@end ifclear} command
+ is ignored.  If @var{flag} is clear, text through the following
+ @code{@@end ifclear} command is formatted.
+ @end table
+ 
+ @menu
+ * set value::                   Expand a flag variable to a string.
+ * ifset ifclear::               Format a region if a flag is set.
+ * value Example::               An easy way to update edition information.
+ @end menu
+ 
+ 
+ @node set value
+ @subsection @code{@@set} and @code{@@value}
+ @findex set
+ @findex value
+ @findex clear
+ 
+ You use the @code{@@set} command to specify a value for a flag, which
+ is later expanded by the @code{@@value} command.
+ 
+ A @dfn{flag} (aka @dfn{variable}) is an identifier.  It is best to use
+ only letters and numerals in a flag name, not @samp{-} or
+ @samp{_}---they will work in some contexts, but not all, due to
+ limitations in @TeX{}.
+ 
+ The value is the remainder of the input line, and can contain anything.
+ 
+ Write the @code{@@set} command like this:
+ 
+ @example
+ @@set foo This is a string.
+ @end example
+ 
+ @noindent
+ This sets the value of the flag @code{foo} to ``This is a string.''.
+ 
+ The Texinfo formatters then replace an @code{@@value@{@var{flag}@}}
+ command with the string to which @var{flag} is set.  Thus, when
+ @code{foo} is set as shown above, the Texinfo formatters convert this:
+ 
+ @example
+ @group
+ @@value@{foo@}
+ @exdent @r{to this:}
+ This is a string.
+ @end group
+ @end example
+ 
+ You can write an @code{@@value} command within a paragraph; but you
+ must write an @code{@@set} command on a line of its own.
+ 
+ If you write the @code{@@set} command like this:
+ 
+ @example
+ @@set foo
+ @end example
+ 
+ @noindent
+ without specifying a string, the value of @code{foo} is the empty string.
+ 
+ If you clear a previously set flag with @code{@@clear @var{flag}}, a
+ subsequent @code{@@value@{flag@}} command will report an error.
+ 
+ For example, if you set @code{foo} as follows:
+ 
+ @example
+ @@set howmuch very, very, very
+ @end example
+ 
+ @noindent
+ then the formatters transform
+ 
+ @example
+ @group
+ It is a @@value@{howmuch@} wet day.
+ @exdent @r{into}
+ It is a very, very, very wet day.
+ @end group
+ @end example
+ 
+ If you write
+ 
+ @example
+ @@clear howmuch
+ @end example
+ 
+ @noindent
+ then the formatters transform
+ 
+ @example
+ @group
+ It is a @@value@{howmuch@} wet day.
+ @exdent @r{into}
+ It is a @{No value for "howmuch"@} wet day.
+ @end group
+ @end example
+ 
+ 
+ @node ifset ifclear
+ @subsection @code{@@ifset} and @code{@@ifclear}
+ 
+ @findex ifset
+ When a @var{flag} is set, the Texinfo formatting commands format text
+ between subsequent pairs of @code{@@ifset @var{flag}} and @code{@@end
+ ifset} commands.  When the @var{flag} is cleared, the Texinfo formatting
+ commands do @emph{not} format the text.  @code{@@ifclear} operates
+ analogously.
+ 
+ Write the conditionally formatted text between @code{@@ifset @var{flag}}
+ and @code{@@end ifset} commands, like this:
+ 
+ @example
+ @group
+ @@ifset @var{flag}
+ @var{conditional-text}
+ @@end ifset
+ @end group
+ @end example
+ 
+ For example, you can create one document that has two variants, such as
+ a manual for a `large' and `small' model:
+ 
+ @cindex Shrubbery
+ @example
+ You can use this machine to dig up shrubs
+ without hurting them.
+ 
+ @@set large
+ 
+ @@ifset large
+ It can also dig up fully grown trees.
+ @@end ifset
+ 
+ Remember to replant promptly @dots{}
+ @end example
+ 
+ @noindent
+ In the example, the formatting commands will format the text between
+ @code{@@ifset large} and @code{@@end ifset} because the @code{large}
+ flag is set.
+ 
+ When @var{flag} is cleared, the Texinfo formatting commands do
+ @emph{not} format the text between @code{@@ifset @var{flag}} and
+ @code{@@end ifset}; that text is ignored and does not appear in either
+ printed or Info output.
+ 
+ For example, if you clear the flag of the preceding example by writing
+ an @code{@@clear large} command after the @code{@@set large} command
+ (but before the conditional text), then the Texinfo formatting commands
+ ignore the text between the @code{@@ifset large} and @code{@@end ifset}
+ commands.  In the formatted output, that text does not appear; in both
+ printed and Info output, you see only the lines that say, ``You can use
+ this machine to dig up shrubs without hurting them.  Remember to replant
+ promptly @dots{}''.
+ 
+ @findex ifclear
+ If a flag is cleared with an @code{@@clear @var{flag}} command, then
+ the formatting commands format text between subsequent pairs of
+ @code{@@ifclear} and @code{@@end ifclear} commands.  But if the flag
+ is set with @code{@@set @var{flag}}, then the formatting commands do
+ @emph{not} format text between an @code{@@ifclear} and an @code{@@end
+ ifclear} command; rather, they ignore that text.  An @code{@@ifclear}
+ command looks like this:
+ 
+ @example
+ @@ifclear @var{flag}
+ @end example
+ 
+ 
+ @node value Example
+ @subsection @code{@@value} Example
+ 
+ You can use the @code{@@value} command to minimize the number of
+ places you need to change when you record an update to a manual.
+ @xref{GNU Sample Texts}, for the full text of an example of using this
+ to work with Automake distributions.
+ 
+ This example is adapted from @ref{Top,, Overview, make, The GNU Make
+ Manual}.
+ 
+ @enumerate
+ @item
+ Set the flags:
+ 
+ @example
+ @group
+ @@set EDITION 0.35 Beta
+ @@set VERSION 3.63 Beta
+ @@set UPDATED 14 August 1992
+ @@set UPDATE-MONTH August 1992
+ @end group
+ @end example
+ 
+ @item
+ Write text for the @code{@@copying} section (@pxref{copying}):
+ 
+ @example
+ @group
+ @@copying
+ This is Edition @@value@{EDITION@},
+ last updated @@value@{UPDATED@},
+ of @@cite@{The GNU Make Manual@},
+ for @@code@{make@}, version @@value@{VERSION@}.
+ 
+ Copyright @dots{}
+ 
+ Permission is granted @dots{}
+ @@end copying
+ @end group
+ @end example
+ 
+ @item
+ Write text for the title page, for people reading the printed manual:
+ 
+ @example
+ @group
+ @@titlepage
+ @@title GNU Make
+ @@subtitle A Program for Directing Recompilation
+ @@subtitle Edition @@value@{EDITION@}, @dots{}
+ @@subtitle @@value@{UPDATE-MONTH@}
+ @@page
+ @@insertcopying
+ @dots{}
+ @@end titlepage
+ @end group
+ @end example
+ 
+ @noindent
+ (On a printed cover, a date listing the month and the year looks less
+ fussy than a date listing the day as well as the month and year.)
+ 
+ @item
+ Write text for the Top node, for people reading the Info file:
+ 
+ @example
+ @group
+ @@ifnottex
+ @@node Top
+ @@top Make
+ 
+ @@insertcopying
+ @dots{}
+ @@end ifnottex
+ @end group
+ @end example
+ 
+ After you format the manual, the @code{@@value} constructs have been
+ expanded, so the output contains text like this:
+ 
+ @example
+ @group
+ This is Edition 0.35 Beta, last updated 14 August 1992,
+ of `The GNU Make Manual', for `make', Version 3.63 Beta.
+ @end group
+ @end example
+ @end enumerate
+ 
+ When you update the manual, you change only the values of the flags; you
+ do not need to edit the three sections.
+ 
+ 
+ @node Conditional Nesting
+ @section Conditional Nesting
+ @cindex Conditionals, nested
+ @cindex Nesting conditionals
+ 
+ Conditionals can be nested; however, the details are a little tricky.
+ The difficulty comes with failing conditionals, such as
+ @code{@@ifhtml} when HTML is not being produced, where the included
+ text is to be ignored.  However, it is not to be @emph{completely}
+ ignored, since it is useful to have one @code{@@ifset} inside another,
+ for example---that is a way to include text only if two conditions are
+ met.  Here's an example:
+ 
+ @example
+ @@ifset somevar
+ @@ifset anothervar
+ Both somevar and anothervar are set.
+ @@end ifset
+ @@ifclear anothervar
+ Somevar is set, anothervar is not.
+ @@end ifclear
+ @@end ifset
+ @end example
+ 
+ Technically, Texinfo requires that for a failing conditional, the
+ ignored text must be properly nested with respect to that failing
+ conditional.  Unfortunately, it's not always feasible to check that
+ @emph{all} conditionals are properly nested, because then the
+ processors could have to fully interpret the ignored text, which
+ defeats the purpose of the command.  Here's an example illustrating
+ these rules:
+ 
+ @example
+ @@ifset a
+ @@ifset b
+ @@ifclear ok  - ok, ignored
+ @@end junky   - ok, ignored
+ @@end ifset
+ @@c WRONG - missing @@end ifset.
+ @end example
+ 
+ Finally, as mentioned above, all conditional commands must be on lines
+ by themselves, with no text (even spaces) before or after.  Otherwise,
+ the processors cannot reliably determine which commands to consider
+ for nesting purposes.
+ 
+ 
+ @node Internationalization
+ @chapter Internationalization
+ 
+ @cindex Internationalization
+ Texinfo has some support for writing in languages other than English,
+ although this area still needs considerable work.
+ 
+ For a list of the various accented and special characters Texinfo
+ supports, see @ref{Inserting Accents}.
+ 
+ @menu
+ * documentlanguage::            Declaring the current language.
+ * documentencoding::            Declaring the input encoding.
+ @end menu
+ 
+ 
+ @node documentlanguage
+ @section @code{@@documentlanguage @var{ll}[_@var{cc}]}: Set the Document Language
+ 
+ @findex documentlanguage
+ @cindex Language, declaring
+ @cindex Locale, declaring
+ @cindex Document language, declaring
+ 
+ The @code{@@documentlanguage} command declares the current document
+ locale.  Write it on a line by itself, near the beginning of the
+ file, but after @code{@@setfilename}
+ (@pxref{setfilename,,@code{@@setfilename}}):
+ 
+ @example
+ @@documentlanguage @var{ll}[_@var{cc}]
+ @end example
+ 
+ Include a two-letter ISO@tie{}639-2 language code (@var{ll}) following
+ the command name, optionally followed by an underscore and two-letter
+ ISO@tie{}3166 two-letter country code (@var{cc}).  If you have a
+ multilingual document, the intent is to be able to use this command
+ multiple times, to declare each language change.  If the command is
+ not used at all, the default is @code{en_US} for US English.
+ 
+ As with GNU Gettext (@pxref{Top,,,gettext, Gettext}), if the country
+ code is omitted, the main dialect is assumed where possible.  For
+ example, @code{de} is equivalent to @code{de_DE} (German as spoken in
+ Germany).
+ 
+ @cindex Document strings, translation of
+ For Info and other online output, this command changes the translation
+ of various @dfn{document strings} such as ``see'' in cross-references
+ (@pxref{Cross References}), ``Function' in defuns (@pxref{Definition
+ Commands}), and so on.  Some strings, such as ``Node:'', ``Next:'',
+ ``Menu:'', etc., are keywords in Info output, so are not translated
+ there; they are translated in other output formats.
+ 
+ @cindex @file{txi-@var{cc}.tex}
+ For @TeX{}, this command causes a file @file{txi-@var{locale}.tex} to
+ be read (if it exists).  If @code{@@setdocumentlanguage} argument
+ contains the optional @samp{_@var{cc}} suffix, this is tried first.
+ For example, with @code{@@setdocumentlanguage de_DE}, @TeX{} first
+ looks for @file{txi-de_DE.tex}, then @file{txi-de.tex}.
+ 
+ Such a @file{txi-*} file is intended to redefine the various English
+ words used in @TeX{} output, such as `Chapter', `See', and so on.  We
+ are aware that individual words like these cannot always be translated
+ in isolation, and that a very different strategy would be required for
+ ideographic (among other) scripts.  Help in improving Texinfo's
+ language support is welcome.
+ 
+ @cindex Hyphenation patterns, language-dependent
+ It would also be desirable for this command to also change @TeX{}'s
+ ideas of the current hyphenation patterns (via the @TeX{} primitive
+ @code{\language}), but this is unfortunately not currently
+ implemented.
+ 
+ In September 2006, the W3C Internationalization Activity released a
+ new recommendation for specifying languages:
+ @url{http://www.rfc-editor.org/rfc/bcp/bcp47.txt}.  When Gettext
+ supports this new scheme, Texinfo will too.
+ 
+ @cindex ISO 639-2 language codes
+ @cindex ISO 3166 country codes
+ @cindex Language codes
+ @cindex Country codes
+ Since the lists of language codes and country codes are updated
+ relatively frequently, we don't attempt to list them here.  The valid
+ language codes are on the official home page for ISO@tie{}639,
+ @url{http://www.loc.gov/standards/iso639-2/}.  The country codes and
+ the official web site for ISO@tie{}3166 can be found via
+ @url{http://en.wikipedia.org/wiki/ISO_3166}.
+ 
+ 
+ @node documentencoding
+ @section @code{@@documentencoding @var{enc}}: Set Input Encoding
+ 
+ @findex documentencoding
+ @cindex Encoding, declaring
+ @cindex Input encoding, declaring
+ @cindex Character set, declaring
+ @cindex Document input encoding
+ 
+ The @code{@@documentencoding} command declares the input document
+ encoding.  Write it on a line by itself, with a valid encoding
+ specification following, near the beginning of the file but after
+ @code{@@setfilename} (@pxref{setfilename,,@code{@@setfilename}}):
+ 
+ @example
+ @@documentencoding @var{enc}
+ @end example
+ 
+ At present, Texinfo supports only these encodings:
+ 
+ @table @code
+ @item US-ASCII
+ This has no particular effect, but it's included for completeness.
+ 
+ @itemx UTF-8
+ The vast global character encoding, expressed in 8-bit bytes.
+ The Texinfo processors have no deep knowledge of Unicode; for the most
+ part, they just pass along the input they are given to the output.
+ 
+ @itemx ISO-8859-1
+ @itemx ISO-8859-15
+ @item ISO-8859-2
+ These specify the standard encodings for Western European (the first
+ two) and Eastern European languages (the third), respectively.  ISO
+ 8859-15 replaces some little-used characters from 8859-1 (e.g.,
+ precomposed fractions) with more commonly needed ones, such as the
+ Euro symbol (@euro{}).
+ 
+ A full description of the encodings is beyond our scope here;
+ one useful reference is @uref{http://czyborra.com/charsets/iso8859.html}.
+ 
+ @item koi8-r
+ This is the commonly used encoding for the Russian language.
+ 
+ @item koi8-u
+ This is the commonly used encoding for the Ukrainian language.
+ 
+ @end table
+ 
+ Specifying an encoding @var{enc} has the following effects:
+ 
+ @opindex --enable-encoding
+ @cindex Local Variables: section, for encoding
+ @cindex Info output, and encoding
+ In Info output, unless the option @option{--disable-encoding} is given
+ to @command{makeinfo}, a so-called `Local Variables' section
+ (@pxref{File Variables,,,emacs,The GNU Emacs Manual}) is output
+ including @var{enc}.  This allows Info readers to set the encoding
+ appropriately.
+ 
+ @example
+ Local Variables:
+ coding: @var{enc}
+ End:
+ @end example
+ 
+ Also, in Info and plain text output (barring
+ @option{--disable-encoding}), accent constructs and special
+ characters, such as @code{@@'e}, are output as the actual 8-bit
+ character in the given encoding.
+ 
+ @cindex HTML output, and encodings
+ @cindex @code{http-equiv}, and charset specification
+ @cindex @code{<meta>} HTML tag, and charset specification
+ In HTML output, a @samp{<meta>} tag is output, in the @samp{<head>}
+ section of the HTML, that specifies @var{enc}.  Web servers and
+ browsers cooperate to use this information so the correct encoding is
+ used to display the page, if supported by the system.
+ 
+ @example
+ <meta http-equiv="Content-Type" content="text/html;
+      charset=@var{enc}">
+ @end example
+ 
+ In split HTML output, if @option{--transliterate-file-names} is
+ given (@pxref{HTML Xref 8-bit Character Expansion}), the names of HTML
+ files are formed by transliteration of the corresponding node names,
+ using the specified encoding. 
+ 
+ In XML and Docbook output, the given document encoding is written in
+ the output file as usual with those formats.
+ 
+ In @TeX{} output, the characters which are supported in the standard
+ Computer Modern fonts are output accordingly.  (For example, this
+ means using constructed accents rather than precomposed glyphs.)
+ Using a missing character generates a warning message, as does
+ specifying an unimplemented encoding.
+ 
+ 
+ @node Defining New Texinfo Commands
+ @chapter Defining New Texinfo Commands
+ @cindex Macros
+ @cindex Defining new Texinfo commands
+ @cindex New Texinfo commands, defining
+ @cindex Texinfo commands, defining new
+ @cindex User-defined Texinfo commands
+ 
+ Texinfo provides several ways to define new commands:
+ 
+ @itemize @bullet
+ @item
+ A Texinfo @dfn{macro} allows you to define a new Texinfo command as any
+ sequence of text and/or existing commands (including other macros).  The
+ macro can have any number of @dfn{parameters}---text you supply each
+ time you use the macro.
+ 
+ Incidentally, these macros have nothing to do with the @code{@@defmac}
+ command, which is for documenting macros in the subject of the manual
+ (@pxref{Def Cmd Template}).
+ 
+ @item
+ @samp{@@alias} is a convenient way to define a new name for an existing
+ command.
+ 
+ @item
+ @samp{@@definfoenclose} allows you to define new commands with
+ customized output in the Info file.
+ 
+ @end itemize
+ 
+ @menu
+ * Defining Macros::             Defining and undefining new commands.
+ * Invoking Macros::             Using a macro, once you've defined it.
+ * Macro Details::               Limitations of Texinfo macros.
+ * alias::                       Command aliases.
+ * definfoenclose::              Customized highlighting.
+ @end menu
+ 
+ 
+ @node Defining Macros
+ @section Defining Macros
+ @cindex Defining macros
+ @cindex Macro definitions
+ 
+ @findex macro
+ You use the Texinfo @code{@@macro} command to define a macro, like this:
+ 
+ @example
+ @@macro @var{macroname}@{@var{param1}, @var{param2}, @dots{}@}
+ @var{text} @dots{} \@var{param1}\ @dots{}
+ @@end macro
+ @end example
+ 
+ The @dfn{parameters} @var{param1}, @var{param2}, @dots{} correspond to
+ arguments supplied when the macro is subsequently used in the document
+ (described in the next section).
+ 
+ @cindex Macro names, valid characters in
+ @cindex Names of macros, valid characters of
+ For a macro to work consistently with @TeX{}, @var{macroname} must
+ consist entirely of letters: no digits, hyphens, underscores, or other
+ special characters.  So, we recommend using only letters.  However,
+ @command{makeinfo} will accept anything except @samp{@{@}_^=};
+ @samp{_} and @samp{^} are excluded so that macros can be called in
+ @code{@@math} mode without a following space
+ (@pxref{math,,@code{@@math}}).
+ 
+ If a macro needs no parameters, you can define it either with an empty
+ list (@samp{@@macro foo @{@}}) or with no braces at all (@samp{@@macro
+ foo}).
+ 
+ @cindex Body of a macro
+ @cindex Mutually recursive macros
+ @cindex Recursion, mutual
+ The definition or @dfn{body} of the macro can contain most Texinfo
+ commands, including previously-defined macros.  Not-yet-defined macro
+ invocations are not allowed; thus, it is not possible to have mutually
+ recursive Texinfo macros.  Also, a macro definition that defines another
+ macro does not work in @TeX{} due to limitations in the design of
+ @code{@@macro}.
+ 
+ @cindex Parameters to macros
+ In the macro body, instances of a parameter name surrounded by
+ backslashes, as in @samp{\@var{param1}\} in the example above, are
+ replaced by the corresponding argument from the macro invocation.  You
+ can use parameter names any number of times in the body, including zero.
+ 
+ @cindex Backslash in macros
+ To get a single @samp{\} in the macro expansion, use @samp{\\}.  Any
+ other use of @samp{\} in the body yields a warning.
+ 
+ @cindex Spaces in macros
+ @cindex Whitespace in macros
+ The newlines after the @code{@@macro} line and before the @code{@@end
+ macro} line are ignored, that is, not included in the macro body.  All
+ other whitespace is treated according to the usual Texinfo rules.
+ 
+ @cindex Recursive macro invocations
+ @findex rmacro
+ To allow a macro to be used recursively, that is, in an argument to a
+ call to itself, you must define it with @samp{@@rmacro}, like this:
+ 
+ @example
+ @@rmacro rmac @{arg@}
+ a\arg\b
+ @@end rmacro
+ @dots{}
+ @@rmac@{1@@rmac@{text@}2@}
+ @end example
+ 
+ This produces the output `a1atextb2b'.  With @samp{@@macro} instead of
+ @samp{@@rmacro}, an error message is given.
+ 
+ @findex unmacro
+ @cindex Macros, undefining
+ @cindex Undefining macros
+ You can undefine a macro @var{foo} with @code{@@unmacro @var{foo}}.
+ It is not an error to undefine a macro that is already undefined.
+ For example:
+ 
+ @example
+ @@unmacro foo
+ @end example
+ 
+ 
+ @node Invoking Macros
+ @section Invoking Macros
+ @cindex Invoking macros
+ @cindex Expanding macros
+ @cindex Running macros
+ @cindex Macro invocation
+ 
+ After a macro is defined (see the previous section), you can use
+ (@dfn{invoke}) it in your document like this:
+ 
+ @example
+ @@@var{macroname} @{@var{arg1}, @var{arg2}, @dots{}@}
+ @end example
+ 
+ @noindent and the result will be just as if you typed the body of
+ @var{macroname} at that spot.  For example:
+ 
+ @example
+ @@macro foo @{p, q@}
+ Together: \p\ & \q\.
+ @@end macro
+ @@foo@{a, b@}
+ @end example
+ 
+ @noindent produces:
+ 
+ @display
+ Together: a & b.
+ @end display
+ 
+ @cindex Backslash, and macros
+ Thus, the arguments and parameters are separated by commas and delimited
+ by braces; any whitespace after (but not before) a comma is ignored.
+ The braces are required in the invocation (but not the definition), even
+ when the macro takes no arguments, consistent with all other Texinfo
+ commands.  For example:
+ 
+ @example
+ @@macro argless @{@}
+ No arguments here.
+ @@end macro
+ @@argless@{@}
+ @end example
+ 
+ @noindent produces:
+ 
+ @display
+ No arguments here.
+ @end display
+ 
+ @cindex Comma, in macro arguments
+ Passing strings containing commas as macro arguments requires special
+ care, since they should be properly @dfn{quoted} to prevent
+ @command{makeinfo} from confusing them with argument separators.  To
+ manually quote a comma, prepend it with a backslash character, like
+ this: @code{\,}.  Alternatively, use the @code{@@comma} command
+ (@pxref{Inserting a Comma}).  However, to facilitate use of macros,
+ @command{makeinfo} implements a set of rules called @dfn{automatic
+ quoting}:
+ 
+ @enumerate 1
+ @item If a macro takes only one argument, all commas in its invocation
+ are quoted by default.  For example:
+ 
+ @example
+ @group
+ @@macro FIXME@{text@}
+ @@strong@{FIXME: \text\@}
+ @@end macro
+ 
+ @@FIXME@{A nice feature, though it can be dangerous.@}
+ @end group
+ @end example
+ 
+ @noindent
+ will produce the following output
+ 
+ @example
+ @strong{FIXME: A nice feature, though it can be dangerous.}
+ @end example
+ 
+ And indeed, it can.  Namely, @command{makeinfo}
+ does not control number of arguments passed to one-argument
+ macros, so be careful when you invoke them.
+ 
+ @item If a macro invocation includes another command (including a
+ recursive invocation of itself), any commas in the nested command
+ invocation(s) are quoted by default.  For example, in
+ 
+ @example
+ @@say@{@@strong@{Yes, I do@}, person one@}
+ @end example
+ 
+ the comma after @samp{Yes} is implicitly quoted.  Here's another
+ example, with a recursive macro:
+ 
+ @example
+ @group
+ @@rmacro cat@{a,b@}
+ \a\\b\
+ @@end rmacro
+ 
+ @@cat@{@@cat@{foo, bar@}, baz@}
+ @end group
+ @end example
+ 
+ @noindent
+ will produce the string @samp{foobarbaz}.
+ 
+ @item Otherwise, a comma should be explicitly quoted, as above, to be
+ treated as a part of an argument.
+ @end enumerate
+ 
+ @cindex Braces, in macro arguments
+ Other characters that need to be quoted in macro arguments are
+ curly braces and backslash.  For example
+ 
+ @example
+ @@@var{macname} @{\\\@{\@}\,@}
+ @end example
+ 
+ @noindent
+ will pass the (almost certainly error-producing) argument
+ @samp{\@{@},} to @var{macname}.  However, commas in parameters, even
+ if escaped by a backslash, might cause trouble in @TeX{}.
+ 
+ If the macro is defined to take a single argument, and is invoked
+ without any braces, the entire rest of the line after the macro name is
+ supplied as the argument.  For example:
+ 
+ @example
+ @@macro bar @{p@}
+ Twice: \p\ & \p\.
+ @@end macro
+ @@bar aah
+ @end example
+ 
+ @noindent produces:
+ 
+ @c Sorry for cheating, but let's not require macros to process the manual.
+ @display
+ Twice: aah & aah.
+ @end display
+ 
+ If the macro is defined to take a single argument, and is invoked with
+ braces, the braced text is passed as the argument, regardless of
+ commas.  For example:
+ 
+ @example
+ @@macro bar @{p@}
+ Twice: \p\ & \p\.
+ @@end macro
+ @@bar@{a,b@}
+ @end example
+ 
+ @noindent produces:
+ 
+ @display
+ Twice: a,b & a,b.
+ @end display
+ 
+ 
+ @node Macro Details
+ @section Macro Details and Caveats
+ @cindex Macro details
+ @cindex Details of macro usage
+ @cindex Caveats for macro usage
+ 
+ Due to unavoidable limitations, certain macro-related constructs cause
+ problems with @TeX{}.  If you get macro-related errors when producing
+ the printed version of a manual, try expanding the macros with
+ @command{makeinfo} by invoking @command{texi2dvi} with the @samp{-E}
+ option (@pxref{Format with texi2dvi}).
+ 
+ @itemize @bullet
+ @item
+ As mentioned earlier, macro names must consist entirely of letters.
+ 
+ @item
+ It is not advisable to redefine any @TeX{} primitive, plain, or
+ Texinfo command name as a macro. Unfortunately this is a very large
+ set of names, and the possible resulting errors are unpredictable.
+ 
+ @item
+ All macros are expanded inside at least one @TeX{} group.  This means
+ that @code{@@set} and other such commands have no effect inside a
+ macro.
+ 
+ @item
+ Commas in macro arguments, even if escaped by a backslash, don't
+ always work.
+ 
+ @item
+ Macro arguments cannot cross lines.
+ 
+ @item
+ It is (usually) best to avoid comments inside macro definitions, but
+ see the next item.
+ 
+ @item
+ Macros containing a command which must be on a line by itself, such as
+ a conditional, cannot be invoked in the middle of a line.  In general,
+ the interaction of newlines in the macro definitions and invocations
+ depends on the precise commands and context.  You may be able to work
+ around some problems with judicious use of @code{@@c}.  Suppose you
+ define a macro that is always intended to be used on a line by itself:
+ 
+ @example
+ @@macro linemac
+ @@cindex whatever
+ @@c
+ @@end macro
+ ...
+ foo
+ @@linemac
+ bar
+ @end example
+ 
+ Without the @code{@@c}, there will be an unwanted blank line between
+ the @samp{@@cindex whatever} and the @samp{bar} (one newline comes
+ from the macro definition, one from after the invocation), causing a
+ paragraph break.
+ 
+ On the other hand, you wouldn't want the @code{@@c} if the macro was
+ sometimes invoked in the middle of a line (the text after the
+ invocation would be treated as a comment).
+ 
+ @item
+ In general, you can't arbitrarily substitute a macro call for Texinfo
+ command arguments, even when the text is the same.  It might work with
+ some commands, it fails with others.  Best not to do it at all.  For
+ instance, this fails:
+ 
+ @example
+ @@macro offmacro
+ off
+ @@end macro
+ @@headings @@offmacro
+ @end example
+ 
+ @noindent
+ You would expect this to be equivalent to @code{@@headings off}, but
+ for @TeX{}nical reasons, it fails with a mysterious error message
+ (@code{Paragraph ended before @@headings was complete}).
+ 
+ @item
+ Macros cannot define macros in the natural way.  To do this, you must
+ use conditionals and raw @TeX{}.  For example:
+ 
+ @example
+ @@ifnottex
+ @@macro ctor @{name, arg@}
+ @@macro \name\
+ something involving \arg\ somehow
+ @@end macro
+ @@end macro
+ @@end ifnottex
+ @@tex
+ \gdef\ctor#1@{\ctorx#1,@}
+ \gdef\ctorx#1,#2,@{\def#1@{something involving #2 somehow@}@}
+ @@end tex
+ @end example
+ 
+ @end itemize
+ 
+ The @command{makeinfo} implementation also has limitations:
+ 
+ @itemize
+ @item
+ @code{@@verbatim} and macros do not mix; for instance, you can't start
+ a verbatim block inside a macro and end it outside.
+ (@xref{verbatim}.)  Starting any environment inside a macro and ending
+ it outside may or may not work, for that matter.
+ 
+ @item
+ Macros that completely define macros are ok, but it's not possible to
+ have incorrectly nested macro definitions.  That is, @code{@@macro}
+ and @code{@@end macro} (likewise for @code{@@rmacro}) must be
+ correctly paired.  For example, you cannot start a macro definition
+ within a macro, and then end the nested definition outside the macro.
+ 
+ @item
+ @code{@@rmacro} is a kludge.
+ 
+ @end itemize
+ 
+ One more limitation is common to both implementations: white space is
+ ignored at the beginnings of lines.
+ 
+ Future major revisions of Texinfo may ease some of these limitations
+ (by introducing a new macro syntax).
+ 
+ 
+ @node alias
+ @section @samp{@@alias @var{new}=@var{existing}}
+ @cindex Aliases, command
+ @cindex Command aliases
+ @findex alias
+ 
+ The @samp{@@alias} command defines a new command to be just like an
+ existing one.  This is useful for defining additional markup names, thus
+ preserving semantic information in the input even though the output
+ result may be the same.
+ 
+ Write the @samp{@@alias} command on a line by itself, followed by the
+ new command name, an equals sign, and the existing command name.
+ Whitespace around the equals sign is ignored.  Thus:
+ @example
+ @@alias @var{new} = @var{existing}
+ @end example
+ 
+ For example, if your document contains citations for both books and
+ some other media (movies, for example), you might like to define a
+ macro @code{@@moviecite@{@}} that does the same thing as an ordinary
+ @code{@@cite@{@}} but conveys the extra semantic information as well.
+ You'd do this as follows:
+ 
+ @example
+ @@alias moviecite = cite
+ @end example
+ 
+ Macros do not always have the same effect as aliases, due to vagaries
+ of argument parsing.  Also, aliases are much simpler to define than
+ macros.  So the command is not redundant.  (It was also heavily used
+ in the Jargon File!)
+ 
+ Aliases must not be recursive, directly or indirectly.
+ 
+ It is not advisable to redefine any @TeX{} primitive, plain, or
+ Texinfo command name as an alias.  Unfortunately this is a very large
+ set of names, and the possible resulting errors are completely random.
+ 
+ 
+ @node definfoenclose
+ @section @samp{definfoenclose}: Customized Highlighting
+ @cindex Highlighting, customized
+ @cindex Customized highlighting
+ @findex definfoenclose
+ 
+ A @code{@@definfoenclose} command may be used to define a highlighting
+ command for Info, but not for @TeX{}.  A command defined using
+ @code{@@definfoenclose} marks text by enclosing it in strings that
+ precede and follow the text.  You can use this to get closer control of
+ your Info output.
+ 
+ Presumably, if you define a command with @code{@@definfoenclose} for Info,
+ you will create a corresponding command for @TeX{}, either in
+ @file{texinfo.tex}, @file{texinfo.cnf}, or within an @samp{@@iftex} in
+ your document.
+ 
+ Write a @code{@@definfoenclose} command on a line and follow it with
+ three arguments separated by commas.  The first argument to
+ @code{@@definfoenclose} is the @@-command name (without the @code{@@});
+ the second argument is the Info start delimiter string; and the third
+ argument is the Info end delimiter string.  The latter two arguments
+ enclose the highlighted text in the Info file.  A delimiter string may
+ contain spaces.  Neither the start nor end delimiter is required.  If
+ you do not want a start delimiter but do want an end delimiter, you must
+ follow the command name with two commas in a row; otherwise, the Info
+ formatting commands will naturally misinterpret the end delimiter string
+ you intended as the start delimiter string.
+ 
+ If you do a @code{@@definfoenclose} on the name of a predefined macro
+ (such as @code{@@emph}, @code{@@strong}, @code{@@t}, or @code{@@i}), the
+ enclosure definition will override the built-in definition.
+ 
+ An enclosure command defined this way takes one argument in braces; this
+ is intended for new markup commands (@pxref{Marking Text}).
+ 
+ @findex phoo
+ For example, you can write:
+ 
+ @example
+ @@definfoenclose phoo,//,\\
+ @end example
+ 
+ @noindent
+ near the beginning of a Texinfo file to define @code{@@phoo} as an Info
+ formatting command that inserts `//' before and `\\' after the argument
+ to @code{@@phoo}.  You can then write @code{@@phoo@{bar@}} wherever you
+ want `//bar\\' highlighted in Info.
+ 
+ Also, for @TeX{} formatting, you could write
+ 
+ @example
+ @@iftex
+ @@global@@let@@phoo=@@i
+ @@end iftex
+ @end example
+ 
+ @noindent
+ to define @code{@@phoo} as a command that causes @TeX{} to typeset the
+ argument to @code{@@phoo} in italics.
+ 
+ Each definition applies to its own formatter: one for @TeX{}, the other
+ for @code{texinfo-format-buffer} or @code{texinfo-format-region}.  The
+ @code{@@definfoenclose} command need not be within @samp{@@ifinfo}, but
+ the raw @TeX{} commands do need to be in @samp{@@iftex}.
+ 
+ @findex headword
+ Here is another example: write
+ 
+ @example
+ @@definfoenclose headword, , :
+ @end example
+ 
+ @noindent
+ near the beginning of the file, to define @code{@@headword} as an Info
+ formatting command that inserts nothing before and a colon after the
+ argument to @code{@@headword}.
+ 
+ @samp{@@definfoenclose} definitions must not be recursive, directly or
+ indirectly.
+ 
+ 
+ @node Hardcopy
+ @chapter Formatting and Printing Hardcopy
+ @cindex Format and print hardcopy
+ @cindex Printing hardcopy
+ @cindex Hardcopy, printing it
+ @cindex Making a printed manual
+ @cindex Sorting indices
+ @cindex Indices, sorting
+ @cindex @TeX{} index sorting
+ @pindex texindex
+ 
+ There are three major shell commands for making a printed manual from a
+ Texinfo file: one for converting the Texinfo file into a file that will be
+ printed, a second for sorting indices, and a third for printing the
+ formatted document.  When you use the shell commands, you can either
+ work directly in the operating system shell or work within a shell
+ inside GNU Emacs.
+ 
+ If you are using GNU Emacs, you can use commands provided by Texinfo
+ mode instead of shell commands.  In addition to the three commands to
+ format a file, sort the indices, and print the result, Texinfo mode
+ offers key bindings for commands to recenter the output buffer, show the
+ print queue, and delete a job from the print queue.
+ 
+ @menu
+ * Use TeX::                     Use @TeX{} to format for hardcopy.
+ * Format with tex/texindex::    How to format with explicit shell commands.
+ * Format with texi2dvi::        A simpler way to format.
+ * Print with lpr::              How to print.
+ * Within Emacs::                How to format and print from an Emacs shell.
+ * Texinfo Mode Printing::       How to format and print in Texinfo mode.
+ * Compile-Command::             How to print using Emacs's compile command.
+ * Requirements Summary::        @TeX{} formatting requirements summary.
+ * Preparing for TeX::           What to do before you use @TeX{}.
+ * Overfull hboxes::             What are and what to do with overfull hboxes.
+ * smallbook::                   How to print small format books and manuals.
+ * A4 Paper::                    How to print on A4 or A5 paper.
+ * pagesizes::                   How to print with customized page sizes.
+ * Cropmarks and Magnification:: How to print marks to indicate the size
+                                  of pages and how to print scaled up output.
+ * PDF Output::                  Portable Document Format output.
+ * Obtaining TeX::               How to Obtain @TeX{}.
+ @end menu
+ 
+ @node Use TeX
+ @section Use @TeX{}
+ 
+ The typesetting program called @TeX{} is used for formatting a Texinfo
+ file.  @TeX{} is a very powerful typesetting program and, if used correctly,
+ does an exceptionally good job.  (@xref{Obtaining TeX, , How to Obtain
+ @TeX{}}, for information on how to obtain @TeX{}.)
+ 
+ The standalone @code{makeinfo} program and Emacs functions
+ @code{texinfo-format-region} and @code{texinfo-format-buffer} commands
+ read the very same @@-commands in the Texinfo file as does @TeX{}, but
+ process them differently to make an Info file (@pxref{Creating an Info
+ File}).
+ 
+ 
+ @node Format with tex/texindex
+ @section Format with @code{tex} and @code{texindex}
+ @cindex Shell formatting with @code{tex} and @code{texindex}
+ @cindex Formatting with @code{tex} and @code{texindex}
+ @cindex DVI file
+ 
+ You can format the Texinfo file with the shell command @code{tex}
+ followed by the name of the Texinfo file.  For example:
+ 
+ @example
+ tex foo.texi
+ @end example
+ 
+ @noindent @TeX{} will produce a @dfn{DVI file} as well as several auxiliary
+ files containing information for indices, cross references, etc.  The
+ DVI file (for @dfn{DeVice Independent} file) can be printed on virtually
+ any device (see the following sections).
+ 
+ @pindex texindex
+ The @code{tex} formatting command itself does not sort the indices; it
+ writes an output file of unsorted index data.  To generate a printed
+ index after running the @command{tex} command, you first need a sorted
+ index to work from.  The @command{texindex} command sorts indices.
+ (The source file @file{texindex.c} comes as part of the standard
+ Texinfo distribution, among other places.)  (@command{texi2dvi} runs
+ @command{tex} and @command{texindex} as necessary.)
+ 
+ @cindex Names of index files
+ @cindex Index file names
+ The @code{tex} formatting command outputs unsorted index files under
+ names that obey a standard convention: the name of your main input file
+ with any @samp{.tex} (or similar, @pxref{tex invocation,,, web2c,
+ Web2c}) extension removed, followed by the two letter names of indices.
+ For example, the raw index output files for the input file
+ @file{foo.texinfo} would be @file{foo.cp}, @file{foo.vr}, @file{foo.fn},
+ @file{foo.tp}, @file{foo.pg} and @file{foo.ky}.  Those are exactly the
+ arguments to give to @code{texindex}.
+ 
+ @need 1000
+ @cindex Wildcards
+ @cindex Globbing
+ Instead of specifying all the unsorted index file names explicitly, you
+ can use @samp{??} as shell wildcards and give the command in this
+ form:
+ 
+ @example
+ texindex foo.??
+ @end example
+ 
+ @noindent
+ This command will run @code{texindex} on all the unsorted index files,
+ including any that you have defined yourself using @code{@@defindex}
+ or @code{@@defcodeindex}.  (You may execute @samp{texindex foo.??}
+ even if there are similarly named files with two letter extensions
+ that are not index files, such as @samp{foo.el}.  The @code{texindex}
+ command reports but otherwise ignores such files.)
+ 
+ For each file specified, @code{texindex} generates a sorted index file
+ whose name is made by appending @samp{s} to the input file name.  The
+ @code{@@printindex} command looks for a file with that name
+ (@pxref{Printing Indices & Menus}).  @code{texindex} does not alter the
+ raw index output file.
+ 
+ After you have sorted the indices, you need to rerun @code{tex} on the
+ Texinfo file.  This regenerates the DVI file, this time with
+ up-to-date index entries.
+ 
+ Finally, you may need to run @code{tex} one more time, to get the page
+ numbers in the cross-references correct.
+ 
+ To summarize, this is a five step process:
+ 
+ @enumerate
+ @item
+ Run @code{tex} on your Texinfo file.  This generates a DVI file (with
+ undefined cross-references and no indices), and the raw index files
+ (with two letter extensions).
+ 
+ @item
+ Run @code{texindex} on the raw index files.  This creates the
+ corresponding sorted index files (with three letter extensions).
+ 
+ @item
+ Run @code{tex} again on your Texinfo file.  This regenerates the DVI
+ file, this time with indices and defined cross-references, but with page
+ numbers for the cross-references from last time, generally incorrect.
+ 
+ @item
+ Sort the indices again, with @code{texindex}.
+ 
+ @item
+ Run @code{tex} one last time.  This time the correct page numbers are
+ written for the cross-references.
+ @end enumerate
+ 
+ @pindex texi2dvi
+ Alternatively, it's a one-step process: run @code{texi2dvi}
+ (@pxref{Format with texi2dvi}).
+ 
+ You need not run @code{texindex} each time after you run @code{tex}.  If
+ you do not, on the next run, the @code{tex} formatting command will use
+ whatever sorted index files happen to exist from the previous use of
+ @code{texindex}.  This is usually ok while you are debugging.
+ 
+ @cindex Auxiliary files, avoiding
+ @findex novalidate
+ @cindex Pointer validation, suppressing
+ @cindex Chapters, formatting one at a time
+ Sometimes you may wish to print a document while you know it is
+ incomplete, or to print just one chapter of a document.  In that case,
+ the usual auxiliary files that @TeX{} creates and warnings @TeX{} gives
+ when cross-references are not satisfied are just nuisances.  You can
+ avoid them with the @code{@@novalidate} command, which you must give
+ @emph{before} the @code{@@setfilename} command
+ (@pxref{setfilename,,@code{@@setfilename}}).  Thus, the beginning of
+ your file would look approximately like this:
+ 
+ @example
+ \input texinfo
+ @@novalidate
+ @@setfilename myfile.info
+ @dots{}
+ @end example
+ 
+ @noindent @code{@@novalidate} also turns off validation in
+ @code{makeinfo}, just like its @code{--no-validate} option
+ (@pxref{Pointer Validation}).
+ 
+ 
+ @node Format with texi2dvi
+ @section Format with @code{texi2dvi}
+ @pindex texi2dvi @r{(shell script)}
+ 
+ The @code{texi2dvi} command automatically runs both @TeX{} and
+ @command{texindex} as many times as necessary to produce a DVI file
+ with sorted indices and all cross-references resolved.  It is
+ therefore simpler than manually executing the
+ @code{tex}---@code{texindex}---@code{tex}---@code{tex} sequence
+ described in the previous section.
+ 
+ To run @code{texi2dvi} on an input file @file{foo.texi}, do this (where
+ @samp{prompt$ } is your shell prompt):
+ 
+ @example
+ prompt$ @kbd{texi2dvi foo.texi}
+ @end example
+ 
+ As shown in this example, the input filenames to @code{texi2dvi} must
+ include any extension (@samp{.texi}, @samp{.texinfo}, etc.).  Under
+ MS-DOS and perhaps in other circumstances, you may need to run @samp{sh
+ texi2dvi foo.texi} instead of relying on the operating system to invoke
+ the shell on the @samp{texi2dvi} script.
+ 
+ @opindex --command @r{(@command{texi2dvi})}
+ One useful option to @code{texi2dvi} is @samp{--command=@var{cmd}}.
+ This inserts @var{cmd} on a line by itself after the
+ @code{@@setfilename} in a temporary copy of the input file before
+ running @TeX{}.  With this, you can specify different printing
+ formats, such as @code{@@smallbook} (@pxref{smallbook}),
+ @code{@@afourpaper} (@pxref{A4 Paper}), or @code{@@pagesizes}
+ (@pxref{pagesizes}), without actually changing the document source.
+ (You can also do this on a site-wide basis with @file{texinfo.cnf};
+ @pxref{Preparing for TeX,,Preparing for @TeX{}}).
+ 
+ @opindex --pdf @r{(@command{texi2dvi})}
+ With the @option{--pdf} option, @command{texi2dvi} produces PDF output
+ instead of DVI (@pxref{PDF Output}), by running @command{pdftex}
+ instead of @command{tex}.  Alternatively, the command
+ @command{texi2pdf} is an abbreviation for running @samp{texi2dvi
+ --pdf}.  The command @command{pdftexi2dvi} is also supported as a
+ convenience to AUC-@TeX{} users, since the latter merely prepends
+ @samp{pdf} to DVI producing tools to have PDF producing tools.
+ 
+ @cindex @LaTeX{}, processing with @command{texi2dvi}
+ @command{texi2dvi} can also be used to process @LaTeX{} files; simply
+ run @samp{texi2dvi filename.ext}.
+ 
+ @opindex --language @r{(@command{texi2dvi})}
+ Normally @command{texi2dvi} is able to guess the input file language
+ by its contents and file name suffix. If, however, it fails to do so
+ you can specify the input language using
+ @option{--language=@var{lang}} command line option, where @var{lang}
+ is either @samp{latex} or @samp{texinfo}.
+ 
+ @command{texi2dvi} will use @command{etex} (or @command{pdfetex}) if
+ they are available; these extended versions of @TeX{} are not
+ required, and the DVI (or PDF) output is identical, but they simplify
+ the @TeX{} programming in some cases, and provide additional tracing
+ information when debugging @file{texinfo.tex}.
+ 
+ @opindex --translate-file @r{(@command{texi2dvi})}
+ Several options are provided for handling documents, written in
+ character sets other than ASCII. The
+ @option{--translate-file=@var{file}} option instructs
+ @command{texi2dvi} to translate input into internal @TeX{} character
+ set using @dfn{translation file} @var{file} (@pxref{TCX files, TCX
+ files, TCX files: Character translations, web2c, Web2c: A @TeX{}
+ implementation}).
+ 
+ @opindex --recode @r{(@command{texi2dvi})}
+ The options @option{--recode} and @option{--recode-from=@var{enc}}
+ allow conversion of an input document before running @TeX{}. The
+ @option{--recode} option recodes the document from encoding specified
+ by @samp{@@documentencoding} command
+ (@pxref{documentencoding,,@code{documentencoding}}) to plain 7-bit
+ @samp{texinfo} encoding.
+ 
+ @opindex --recode-from @r{(@command{texi2dvi})}
+ The option @option{--recode-from=@var{enc}} recodes the document from
+ @var{enc} encoding to the encoding specified by
+ @samp{@@documentencoding}. This is useful, for example, if the
+ document is written in @samp{UTF-8} encoding and an equivalent 8-bit
+ encoding is supported by @command{makeinfo}.
+ 
+ Both @option{--recode} and @option{--recode-from=@var{enc}} use
+ @command{recode} utility to perform the conversion. If
+ @command{recode} fails to process the file, @command{texi2dvi} prints
+ a warning and continues using unmodified input file.
+ 
+ For a list of other options, run @samp{texi2dvi --help}.
+ 
+ 
+ @node Print with lpr
+ @section Shell Print Using @code{lpr -d}
+ @pindex lpr @r{(DVI print command)}
+ 
+ The precise command to print a DVI file depends on your system
+ installation.  Two common ones are @samp{dvips foo.dvi -o} and @samp{lpr
+ -d foo.dvi}.
+ 
+ For example, the following commands will (perhaps) suffice to sort the
+ indices, format, and print the @cite{Bison Manual}:
+ 
+ @example
+ @group
+ tex bison.texinfo
+ texindex bison.??
+ tex bison.texinfo
+ lpr -d bison.dvi
+ @end group
+ @end example
+ 
+ @noindent
+ (Remember that the shell commands may be different at your site; but
+ these are commonly used versions.)
+ 
+ Using the @code{texi2dvi} shell script (see the previous section):
+ 
+ @example
+ @group
+ texi2dvi bison.texinfo
+ lpr -d bison.dvi
+ # or perhaps dvips bison.dvi -o
+ @end group
+ @end example
+ 
+ @cindex Shell printing, on MS-DOS/MS-Windows
+ @cindex Printing DVI files, on MS-DOS/MS-Windows
+ @pindex lpr@r{-d, replacements on MS-DOS/MS-Windows}
+ @code{lpr} is a standard program on Unix systems, but it is usually
+ absent on MS-DOS/MS-Windows.  Some network packages come with a
+ program named @code{lpr}, but these are usually limited to sending files
+ to a print server over the network, and generally don't support the
+ @samp{-d} option.  If you are unfortunate enough to work on one of these
+ systems, you have several alternative ways of printing DVI files:
+ 
+ @itemize @bullet{}
+ @item Find and install a Unix-like @code{lpr} program, or its clone.
+ If you can do that, you will be able to print DVI files just like
+ described above.
+ 
+ @item Send the DVI files to a network printer queue for DVI files.
+ Some network printers have special queues for printing DVI files.  You
+ should be able to set up your network software to send files to that
+ queue.  In some cases, the version of @code{lpr} which comes with your
+ network software will have a special option to send a file to specific
+ queues, like this:
+ 
+ @example
+ lpr -Qdvi -hprint.server.domain bison.dvi
+ @end example
+ 
+ @item Convert the DVI file to a Postscript or PCL file and send it to your
+ local printer.  @xref{Invoking Dvips,,, dvips, Dvips}, and the man
+ pages for @code{dvilj}, for detailed description of these tools.  Once
+ the DVI file is converted to the format your local printer understands
+ directly, just send it to the appropriate port, usually @samp{PRN}.
+ @end itemize
+ 
+ 
+ @node Within Emacs
+ @section From an Emacs Shell
+ @cindex Print, format from Emacs shell
+ @cindex Format, print from Emacs shell
+ @cindex Shell, format, print from
+ @cindex Emacs shell, format, print from
+ @cindex GNU Emacs shell, format, print from
+ 
+ You can give formatting and printing commands from a shell within GNU
+ Emacs.  To create a shell within Emacs, type @kbd{M-x shell}.  In this
+ shell, you can format and print the document.  @xref{Hardcopy, , Format
+ and Print Hardcopy}, for details.
+ 
+ You can switch to and from the shell buffer while @code{tex} is
+ running and do other editing.  If you are formatting a long document
+ on a slow machine, this can be very convenient.@refill
+ 
+ You can also use @code{texi2dvi} from an Emacs shell.  For example,
+ here is how to use @code{texi2dvi} to format and print @cite{Using and
+ Porting GNU CC} from a shell within Emacs:
+ 
+ @example
+ @group
+ texi2dvi gcc.texinfo
+ lpr -d gcc.dvi
+ @end group
+ @end example
+ 
+ See the next section for more information about formatting
+ and printing in Texinfo mode.
+ 
+ 
+ @node Texinfo Mode Printing
+ @section Formatting and Printing in Texinfo Mode
+ @cindex Region printing in Texinfo mode
+ @cindex Format and print in Texinfo mode
+ @cindex Print and format in Texinfo mode
+ 
+ Texinfo mode provides several predefined key commands for @TeX{}
+ formatting and printing.  These include commands for sorting indices,
+ looking at the printer queue, killing the formatting job, and
+ recentering the display of the buffer in which the operations
+ occur.@refill
+ 
+ @table @kbd
+ @item C-c C-t C-b
+ @itemx M-x texinfo-tex-buffer
+ Run @code{texi2dvi} on the current buffer.@refill
+ 
+ @item C-c C-t C-r
+ @itemx M-x texinfo-tex-region
+ Run @TeX{} on the current region.@refill
+ 
+ @item C-c C-t C-i
+ @itemx M-x texinfo-texindex
+ Sort the indices of a Texinfo file formatted with
+ @code{texinfo-tex-region}.@refill
+ 
+ @item C-c C-t C-p
+ @itemx M-x texinfo-tex-print
+ Print a DVI file that was made with @code{texinfo-tex-region} or
+ @code{texinfo-tex-buffer}.@refill
+ 
+ @item C-c C-t C-q
+ @itemx M-x tex-show-print-queue
+ Show the print queue.@refill
+ 
+ @item C-c C-t C-d
+ @itemx M-x texinfo-delete-from-print-queue
+ Delete a job from the print queue; you will be prompted for the job
+ number shown by a preceding @kbd{C-c C-t C-q} command
+ (@code{texinfo-show-tex-print-queue}).@refill
+ 
+ @item C-c C-t C-k
+ @itemx M-x tex-kill-job
+ Kill the currently running @TeX{} job started by either
+ @code{texinfo-tex-region} or @code{texinfo-tex-buffer}, or any other
+ process running in the Texinfo shell buffer.@refill
+ 
+ @item C-c C-t C-x
+ @itemx M-x texinfo-quit-job
+ Quit a @TeX{} formatting job that has stopped because of an error by
+ sending an @key{x} to it.  When you do this, @TeX{} preserves a record
+ of what it did in a @file{.log} file.@refill
+ 
+ @item C-c C-t C-l
+ @itemx M-x tex-recenter-output-buffer
+ Redisplay the shell buffer in which the @TeX{} printing and formatting
+ commands are run to show its most recent output.@refill
+ @end table
+ 
+ @need 1000
+ Thus, the usual sequence of commands for formatting a buffer is as
+ follows (with comments to the right):@refill
+ 
+ @example
+ @group
+ C-c C-t C-b             @r{Run @code{texi2dvi} on the buffer.}
+ C-c C-t C-p             @r{Print the DVI file.}
+ C-c C-t C-q             @r{Display the printer queue.}
+ @end group
+ @end example
+ 
+ The Texinfo mode @TeX{} formatting commands start a subshell in Emacs
+ called the @file{*tex-shell*}.  The @code{texinfo-tex-command},
+ @code{texinfo-texindex-command}, and @code{tex-dvi-print-command}
+ commands are all run in this shell.
+ 
+ You can watch the commands operate in the @samp{*tex-shell*} buffer,
+ and you can switch to and from and use the @samp{*tex-shell*} buffer
+ as you would any other shell buffer.@refill
+ 
+ @need 1500
+ The formatting and print commands depend on the values of several variables.
+ The default values are:@refill
+ 
+ @example
+ @group
+     @r{Variable}                              @r{Default value}
+ 
+ texinfo-texi2dvi-command                  "texi2dvi"
+ texinfo-tex-command                       "tex"
+ texinfo-texindex-command                  "texindex"
+ texinfo-delete-from-print-queue-command   "lprm"
+ texinfo-tex-trailer                       "@@bye"
+ tex-start-of-header                       "%**start"
+ tex-end-of-header                         "%**end"
+ tex-dvi-print-command                     "lpr -d"
+ tex-show-queue-command                    "lpq"
+ @end group
+ @end example
+ 
+ You can change the values of these variables with the @kbd{M-x
+ set-variable} command (@pxref{Examining, , Examining and Setting
+ Variables, emacs, The GNU Emacs Manual}), or with your @file{.emacs}
+ initialization file (@pxref{Init File, , , emacs, The GNU Emacs
+ Manual}).
+ 
+ @cindex Customize Emacs package (@t{Development/Docs/Texinfo})
+ Beginning with version 20, GNU Emacs offers a user-friendly interface,
+ called @dfn{Customize}, for changing values of user-definable variables.
+ @xref{Easy Customization, , Easy Customization Interface, emacs, The GNU
+ Emacs Manual}, for more details about this.  The Texinfo variables can
+ be found in the @samp{Development/Docs/Texinfo} group, once you invoke
+ the @kbd{M-x customize} command.
+ 
+ 
+ @node Compile-Command
+ @section Using the Local Variables List
+ @cindex Local variables
+ @cindex Compile command for formatting
+ @cindex Format with the compile command
+ 
+ Yet another way to apply the @TeX{} formatting command to a Texinfo file
+ is to put that command in a @dfn{local variables list} at the end of the
+ Texinfo file.  You can then specify the @code{tex} or @code{texi2dvi}
+ commands as a @code{compile-command} and have Emacs run it by typing
+ @kbd{M-x compile}.  This creates a special shell called the
+ @file{*compilation*} buffer in which Emacs runs the compile command.
+ For example, at the end of the @file{gdb.texinfo} file, after the
+ @code{@@bye}, you could put the following:@refill
+ 
+ @example
+ @group
+ Local Variables:
+ compile-command: "texi2dvi gdb.texinfo"
+ End:
+ @end group
+ @end example
+ 
+ @noindent
+ This technique is most often used by programmers who also compile programs
+ this way; see @ref{Compilation, , , emacs, The GNU Emacs Manual}.@refill
+ 
+ 
+ @node Requirements Summary
+ @section @TeX{} Formatting Requirements Summary
+ @cindex Requirements for formatting
+ @cindex Minimal requirements for formatting
+ @cindex Formatting requirements
+ 
+ Every Texinfo file that is to be input to @TeX{} must begin with a
+ @code{\input} command and must contain an @code{@@setfilename} command:
+ 
+ @example
+ \input texinfo
+ @@setfilename @var{arg-not-used-by-@TeX{}}
+ @end example
+ 
+ @noindent
+ The first command instructs @TeX{} to load the macros it needs to
+ process a Texinfo file and the second command opens auxiliary files.
+ 
+ Every Texinfo file must end with a line that terminates @TeX{}'s
+ processing and forces out unfinished pages:
+ 
+ @example
+ @@bye
+ @end example
+ 
+ Strictly speaking, these lines are all a Texinfo file needs to be
+ processed successfully by @TeX{}.
+ 
+ Usually, however, the beginning includes an @code{@@settitle} command to
+ define the title of the printed manual, an @code{@@setchapternewpage}
+ command, a title page, a copyright page, and permissions.  Besides an
+ @code{@@bye}, the end of a file usually includes indices and a table of
+ contents.  (And of course most manuals contain a body of text as well.)
+ 
+ For more information, see:
+ 
+ @itemize @bullet
+ @item @ref{settitle, , @code{@@settitle}}.
+ @item @ref{setchapternewpage, , @code{@@setchapternewpage}}.
+ @item @ref{Headings, ,Page Headings}.
+ @item @ref{Titlepage & Copyright Page}.
+ @item @ref{Printing Indices & Menus}.
+ @item @ref{Contents}.
+ @end itemize
+ 
+ 
+ @node Preparing for TeX
+ @section Preparing for @TeX{}
+ @cindex Preparing for @TeX{}
+ @cindex @TeX{} input initialization
+ @cindex @b{.profile} initialization file
+ @cindex @b{.cshrc} initialization file
+ @cindex Initialization file for @TeX{} input
+ 
+ @TeX{} needs to know where to find the @file{texinfo.tex} file that the
+ @samp{\input texinfo} command on the first line reads.  The
+ @file{texinfo.tex} file tells @TeX{} how to handle @@-commands; it is
+ included in all standard GNU distributions.  The latest version is
+ always available from the Texinfo source repository:
+ @smalldisplay
+ @uref{http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/doc/texinfo.tex?rev=HEAD}
+ @end smalldisplay
+ 
+ @pindex texinfo.tex@r{, installing}
+ 
+ Usually, the installer has put the @file{texinfo.tex} file in the
+ default directory that contains @TeX{} macros when GNU Texinfo, Emacs or
+ other GNU software is installed.  In this case, @TeX{} will find the
+ file and you do not need to do anything special.  If this has not been
+ done, you can put @file{texinfo.tex} in the current directory when you
+ run @TeX{}, and @TeX{} will find it there.
+ 
+ @pindex epsf.tex@r{, installing}
+ Also, you should install @file{epsf.tex}, if it is not already installed
+ from another distribution.  More details are at the end of the description
+ of the @code{@@image} command (@pxref{Images}).
+ 
+ @cindex European Computer Modern fonts, installing
+ @cindex EC fonts, installing
+ @cindex CM-Super fonts, installing
+ To be able to use quotation marks other than those used in English
+ you'll need to install European Computer Modern fonts and optionally
+ CM-Super fonts, unless they are already installed (@pxref{Inserting
+ Quotation Marks}).
+ 
+ @pindex feymr10@r{, installing}
+ @cindex Euro font, installing
+ If you intend to use the @code{@@euro} command, you should install the
+ Euro font, if it is not already installed.  @xref{euro}.
+ 
+ @pindex texinfo.cnf @r{installation}
+ @cindex Customizing of @TeX{} for Texinfo
+ @cindex Site-wide Texinfo configuration file
+ Optionally, you may create an additional @file{texinfo.cnf}, and install
+ it as well.  This file is read by @TeX{} when the @code{@@setfilename}
+ command is executed (@pxref{setfilename,, @code{@@setfilename}}).  You can put any
+ commands you like there, according to local site-wide conventions.  They
+ will be read by @TeX{} when processing any Texinfo document.  For
+ example, if @file{texinfo.cnf} contains the line @samp{@@afourpaper}
+ (@pxref{A4 Paper}), then all Texinfo documents will be processed with
+ that page size in effect.  If you have nothing to put in
+ @file{texinfo.cnf}, you do not need to create it.
+ 
+ @cindex Environment variable @code{TEXINPUTS}
+ @vindex TEXINPUTS
+ If neither of the above locations for these system files suffice for
+ you, you can specify the directories explicitly.  For
+ @file{texinfo.tex}, you can do this by writing the complete path for the
+ file after the @code{\input} command.  Another way, that works for both
+ @file{texinfo.tex} and @file{texinfo.cnf} (and any other file @TeX{}
+ might read), is to set the @code{TEXINPUTS} environment variable in your
+ @file{.cshrc} or @file{.profile} file.
+ 
+ Which you use of @file{.cshrc} or @file{.profile} depends on
+ whether you use a Bourne shell-compatible (@code{sh}, @code{bash},
+ @code{ksh}, @dots{}) or C shell-compatible (@code{csh}, @code{tcsh})
+ command interpreter.  The latter read the @file{.cshrc} file for
+ initialization information, and the former read @file{.profile}.
+ 
+ In a @file{.cshrc} file, you could use the following @code{csh} command
+ sequence:
+ 
+ @example
+ setenv TEXINPUTS .:/home/me/mylib:
+ @end example
+ 
+ @need 1000
+ In a @file{.profile} file, you could use the following @code{sh} command
+ sequence:
+ 
+ @example
+ @group
+ TEXINPUTS=.:/home/me/mylib:
+ export TEXINPUTS
+ @end group
+ @end example
+ 
+ On MS-DOS/MS-Windows, you would say it like this@footnote{Note the use
+ of the @samp{;} character, instead of @samp{:}, as directory separator
+ on these systems.}:
+ 
+ @example
+ @group
+ set TEXINPUTS=.;d:/home/me/mylib;c:
+ @end group
+ @end example
+ 
+ @noindent
+ It is customary for DOS/Windows users to put such commands in the
+ @file{autoexec.bat} file, or in the Windows Registry.
+ 
+ @noindent
+ These settings would cause @TeX{} to look for @file{\input} file first
+ in the current directory, indicated by the @samp{.}, then in a
+ hypothetical user @samp{me}'s @file{mylib} directory, and finally in
+ the system directories.  (A leading, trailing, or doubled @samp{:}
+ indicates searching the system directories at that point.)
+ 
+ @cindex Dumping a .fmt file
+ @cindex Format file, dumping
+ Finally, you may wish to dump a @file{.fmt} file (@pxref{Memory dumps,,,
+ web2c, Web2c}) so that @TeX{} can load Texinfo faster.  (The
+ disadvantage is that then updating @file{texinfo.tex} requires
+ redumping.)  You can do this by running this command, assuming
+ @file{epsf.tex} is findable by @TeX{}:
+ 
+ @example
+ initex texinfo @@dump
+ @end example
+ 
+ @noindent
+ (@code{dump} is a @TeX{} primitive.)  Then, move @file{texinfo.fmt} to
+ wherever your @code{.fmt} files are found; typically, this will be in the
+ subdirectory @file{web2c} of your @TeX{} installation.
+ 
+ 
+ @node Overfull hboxes
+ @section Overfull ``hboxes''
+ @cindex Overfull @samp{hboxes}
+ @cindex @samp{hboxes}, overfull
+ @cindex Final output
+ 
+ @TeX{} is sometimes unable to typeset a line without extending it into
+ the right margin.  This can occur when @TeX{} comes upon what it
+ interprets as a long word that it cannot hyphenate, such as an
+ electronic mail network address or a very long title.  When this
+ happens, @TeX{} prints an error message like this:
+ 
+ @example
+ Overfull @@hbox (20.76302pt too wide)
+ @end example
+ 
+ @findex hbox
+ @noindent
+ (In @TeX{}, lines are in ``horizontal boxes'', hence the term, ``hbox''.
+ @samp{@@hbox} is a @TeX{} primitive not needed in the Texinfo language.)
+ 
+ @TeX{} also provides the line number in the Texinfo source file and
+ the text of the offending line, which is marked at all the places that
+ @TeX{} considered hyphenation.
+ @xref{Debugging with TeX, , Catching Errors with @TeX{} Formatting},
+ for more information about typesetting errors.
+ 
+ If the Texinfo file has an overfull hbox, you can rewrite the sentence
+ so the overfull hbox does not occur, or you can decide to leave it.  A
+ small excursion into the right margin often does not matter and may not
+ even be noticeable.
+ 
+ If you have many overfull boxes and/or an antipathy to rewriting, you
+ can coerce @TeX{} into greatly increasing the allowable interword
+ spacing, thus (if you're lucky) avoiding many of the bad line breaks,
+ like this:
+ 
+ @findex \emergencystretch
+ @example
+ @@tex
+ \global\emergencystretch = .9\hsize
+ @@end tex
+ @end example
+ 
+ @noindent
+ (You should adjust the fraction as needed.)  This huge value for
+ @code{\emergencystretch} cannot be the default, since then the typeset
+ output would generally be of noticeably lower quality; the default
+ is @samp{.15\hsize}.  @code{\hsize} is the @TeX{} dimension
+ containing the current line width.
+ 
+ @cindex Black rectangle in hardcopy
+ @cindex Rectangle, black in hardcopy
+ @cindex Box, ugly black in hardcopy
+ @cindex Ugly black rectangles in hardcopy
+ For what overfull boxes you have, however, @TeX{} will print a large,
+ ugly, black rectangle beside the line that contains the overfull hbox
+ unless told otherwise.  This is so you will notice the location of the
+ problem if you are correcting a draft.
+ 
+ @findex finalout
+ To prevent such a monstrosity from marring your final printout, write
+ the following in the beginning of the Texinfo file on a line of its own,
+ before the @code{@@titlepage} command:
+ 
+ @example
+ @@finalout
+ @end example
+ 
+ 
+ @node smallbook
+ @section Printing ``Small'' Books
+ @findex smallbook
+ @cindex Small book size
+ @cindex Book, printing small
+ @cindex Page sizes for books
+ @cindex Size of printed book
+ 
+ By default, @TeX{} typesets pages for printing in an 8.5 by 11 inch
+ format.  However, you can direct @TeX{} to typeset a document in a 7 by
+ 9.25 inch format that is suitable for bound books by inserting the
+ following command on a line by itself at the beginning of the Texinfo
+ file, before the title page:@refill
+ 
+ @example
+ @@smallbook
+ @end example
+ 
+ @noindent
+ (Since many books are about 7 by 9.25 inches, this command might better
+ have been called the @code{@@regularbooksize} command, but it came to be
+ called the @code{@@smallbook} command by comparison to the 8.5 by 11
+ inch format.)
+ 
+ If you write the @code{@@smallbook} command between the
+ start-of-header and end-of-header lines, the Texinfo mode @TeX{}
+ region formatting command, @code{texinfo-tex-region}, will format the
+ region in ``small'' book size (@pxref{Start of Header}).@refill
+ 
+ @xref{small}, for information about
+ commands that make it easier to produce examples for a smaller manual.
+ 
+ @xref{Format with texi2dvi}, and @ref{Preparing for TeX,,Preparing for
+ @TeX{}}, for other ways to format with @code{@@smallbook} that do not
+ require changing the source file.
+ 
+ 
+ @node A4 Paper
+ @section Printing on A4 Paper
+ @cindex A4 paper, printing on
+ @cindex A5 paper, printing on
+ @cindex Paper size, A4
+ @cindex European A4 paper
+ @findex afourpaper
+ 
+ You can tell @TeX{} to format a document for printing on European size
+ A4 paper (or A5) with the @code{@@afourpaper} (or @code{@@afivepaper})
+ command.  Write the command on a line by itself near the beginning of
+ the Texinfo file, before the title page.  For example, this is how you
+ would write the header for this manual:
+ 
+ @example
+ @group
+ \input texinfo    @@c -*-texinfo-*-
+ @@c %**start of header
+ @@setfilename texinfo
+ @@settitle Texinfo
+ @@afourpaper
+ @@c %**end of header
+ @end group
+ @end example
+ 
+ @xref{Format with texi2dvi}, and @ref{Preparing for TeX,,Preparing for
+ @TeX{}}, for other ways to format for different paper sizes that do not
+ require changing the source file.
+ 
+ @findex afourlatex
+ @findex afourwide
+ You may or may not prefer the formatting that results from the command
+ @code{@@afourlatex}.  There's also @code{@@afourwide} for A4 paper in
+ wide format.
+ 
+ @node pagesizes
+ @section @code{@@pagesizes} [@var{width}][, @var{height}]: Custom Page Sizes
+ @findex pagesizes
+ @cindex Custom page sizes
+ @cindex Page sizes, customized
+ @cindex Text width and height
+ @cindex Width of text area
+ @cindex Height of text area
+ @cindex Depth of text area
+ 
+ You can explicitly specify the height and (optionally) width of the main
+ text area on the page with the @code{@@pagesizes} command.  Write this
+ on a line by itself near the beginning of the Texinfo file, before the
+ title page.  The height comes first, then the width if desired,
+ separated by a comma.  Examples:
+ 
+ @example
+ @@pagesizes 200mm,150mm  @c for b5 paper
+ @end example
+ @noindent and
+ @example
+ @@pagesizes 11.5in      @c for legal paper
+ @end example
+ 
+ @cindex B5 paper, printing on
+ @cindex Legal paper, printing on
+ This would be reasonable for printing on B5-size paper.  To emphasize,
+ this command specifies the size of the @emph{text area}, not the size of
+ the paper (which is 250@dmn{mm} by 177@dmn{mm} for B5, 14@dmn{in} by
+ 8.5@dmn{in} for legal).
+ 
+ @cindex Margins on page, not controllable
+ To make more elaborate changes, such as changing any of the page
+ margins, you must define a new command in @file{texinfo.tex} (or
+ @file{texinfo.cnf}, @pxref{Preparing for TeX,,Preparing for @TeX{}}).
+ 
+ @xref{Format with texi2dvi}, and @ref{Preparing for TeX,,Preparing for
+ @TeX{}}, for other ways to specify @code{@@pagesizes} that do not
+ require changing the source file.
+ 
+ @code{@@pagesizes} is ignored by @code{makeinfo}.
+ 
+ 
+ @node Cropmarks and Magnification
+ @section Cropmarks and Magnification
+ @findex cropmarks
+ @cindex Cropmarks for printing
+ @cindex Printing cropmarks
+ You can (attempt to) direct @TeX{} to print cropmarks at the corners of
+ pages with the @code{@@cropmarks} command.  Write the @code{@@cropmarks}
+ command on a line by itself between @code{@@iftex} and @code{@@end
+ iftex} lines near the beginning of the Texinfo file, before the title
+ page, like this:@refill
+ 
+ @example
+ @group
+ @@iftex
+ @@cropmarks
+ @@end iftex
+ @end group
+ @end example
+ 
+ This command is mainly for printers that typeset several pages on one
+ sheet of film; but you can attempt to use it to mark the corners of a
+ book set to 7 by 9.25 inches with the @code{@@smallbook} command.
+ (Printers will not produce cropmarks for regular sized output that is
+ printed on regular sized paper.)  Since different printing machines work
+ in different ways, you should explore the use of this command with a
+ spirit of adventure.  You may have to redefine the command in
+ @file{texinfo.tex}.
+ 
+ @findex \mag @r{(raw @TeX{} magnification)}
+ @cindex Magnified printing
+ @cindex Larger or smaller pages
+ You can attempt to direct @TeX{} to typeset pages larger or smaller than
+ usual with the @code{\mag} @TeX{} command.  Everything that is typeset
+ is scaled proportionally larger or smaller.  (@code{\mag} stands for
+ ``magnification''.)  This is @emph{not} a Texinfo @@-command, but is a
+ plain @TeX{} command that is prefixed with a backslash.  You have to
+ write this command between @code{@@tex} and @code{@@end tex}
+ (@pxref{Raw Formatter Commands}).
+ 
+ Follow the @code{\mag} command with an @samp{=} and then a number that
+ is 1000 times the magnification you desire.  For example, to print pages
+ at 1.2 normal size, write the following near the beginning of the
+ Texinfo file, before the title page:
+ 
+ @example
+ @group
+ @@tex
+ \mag=1200
+ @@end tex
+ @end group
+ @end example
+ 
+ With some printing technologies, you can print normal-sized copies that
+ look better than usual by giving a larger-than-normal master to your
+ print shop.  They do the reduction, thus effectively increasing the
+ resolution.
+ 
+ Depending on your system, DVI files prepared with a
+ nonstandard-@code{\mag} may not print or may print only with certain
+ magnifications.  Be prepared to experiment.
+ 
+ 
+ @node PDF Output
+ @section PDF Output
+ @cindex PDF output
+ 
+ @pindex pdftex
+ The simplest way to generate PDF output from Texinfo source is to run
+ the convenience script @command{texi2pdf} (or @command{pdftexi2dvi});
+ this simply executes the @command{texi2dvi} script with the
+ @option{--pdf} option (@pxref{Format with texi2dvi}).  If for some
+ reason you want to process the document by hand, simply run the
+ @command{pdftex} program instead of plain @command{tex}.  That is, run
+ @samp{pdftex foo.texi} instead of @samp{tex foo.texi}.
+ 
+ @dfn{PDF} stands for `Portable Document Format'. It was invented by
+ Adobe Systems some years ago for document interchange, based on their
+ PostScript language.  Related links:
+ 
+ @itemize
+ @item
+ GNU GV, a @uref{http://www.foolabs.com/xpdf/, Ghostscript-based PDF
+ reader}.  (It can also preview PostScript documents.)
+ 
+ @item
+ A freely available standalone @uref{http://www.foolabs.com/xpdf/,
+ PDF reader} for the X window system.
+ 
+ @item
+ @uref{http://partners.adobe.com/asn/acrobat/sdk/public/docs/, PDF definition}.
+ 
+ @end itemize
+ 
+ At present, Texinfo does not provide
+ @samp{@@ifpdf} or @samp{@@pdf} commands as for the other output
+ formats, since PDF documents contain many internal links that would be
+ hard or impossible to get right at the Texinfo source level.
+ 
+ PDF files require special software to be displayed, unlike the plain
+ ASCII formats (Info, HTML) that Texinfo supports.  They also tend to
+ be much larger than the DVI files output by @TeX{} by default.
+ Nevertheless, a PDF file does define an actual typeset document in a
+ self-contained file, so it has its place.
+ 
+ 
+ @node Obtaining TeX
+ @section How to Obtain @TeX{}
+ @cindex Obtaining @TeX{}
+ @cindex @TeX{}, how to obtain
+ 
+ @c !!! Here is information about obtaining TeX.  Update it whenever.
+ @c !!! Also consider updating TeX.README on ftp.gnu.org.
+ @c     Updated by RJC on 1 March 1995, conversation with MacKay.
+ @c     Updated by kb@cs.umb.edu on 29 July 1996.
+ @c     Updated by kb@cs.umb.edu on 25 April 1997.
+ @c     Updated by kb@cs.umb.edu on 27 February 1998.
+ @TeX{} is freely redistributable.  You can obtain @TeX{} for Unix
+ systems via anonymous ftp or on physical media.  The core material
+ consists of the Web2c @TeX{} distribution (@uref{http://tug.org/web2c}).
+ 
+ Instructions for retrieval by anonymous ftp and information on other
+ available distributions:
+ @uref{http://tug.org/unixtex.ftp}.
+ 
+ The Free Software Foundation provides a core distribution on its Source
+ Code CD-ROM suitable for printing Texinfo manuals.  To order it, contact:
+ 
+ @display
+ @group
+ Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor
+ Boston, MA @ @ 02110-1301
+ USA
+ Telephone: @w{+1-617-542-5942}
+ Fax: (including Japan) @w{+1-617-542-2652}
+ Free Dial Fax (in Japan):
+ @w{ } @w{ } @w{ } 0031-13-2473 (KDD)
+ @w{ } @w{ } @w{ } 0066-3382-0158 (IDC)
+ Electronic mail: @code{gnu@@gnu.org}
+ @end group
+ @end display
+ 
+ Many other @TeX{} distributions are available; see
+ @uref{http://tug.org/}.
+ 
+ 
+ @node Creating and Installing Info Files
+ @chapter Creating and Installing Info Files
+ 
+ This chapter describes how to create and install Info files.  @xref{Info
+ Files}, for general information about the file format itself.
+ 
+ @menu
+ * Creating an Info File::
+ * Installing an Info File::
+ @end menu
+ 
+ 
+ @node Creating an Info File
+ @section Creating an Info File
+ @cindex Creating an Info file
+ @cindex Info, creating an online file
+ @cindex Formatting a file for Info
+ 
+ @code{makeinfo} is a program that converts a Texinfo file into an Info
+ file, HTML file, or plain text.  @code{texinfo-format-region} and
+ @code{texinfo-format-buffer} are GNU Emacs functions that convert
+ Texinfo to Info.
+ 
+ For information on installing the Info file in the Info system,
+ @pxref{Installing an Info File}.
+ 
+ @menu
+ * makeinfo advantages::         @code{makeinfo} provides better error checking.
+ * Invoking makeinfo::           How to run @code{makeinfo} from a shell.
+ * makeinfo options::            Specify fill-column and other options.
+ * Pointer Validation::          How to check that pointers point somewhere.
+ * makeinfo in Emacs::           How to run @code{makeinfo} from Emacs.
+ * texinfo-format commands::     Two Info formatting commands written
+                                  in Emacs Lisp are an alternative
+                                  to @code{makeinfo}.
+ * Batch Formatting::            How to format for Info in Emacs Batch mode.
+ * Tag and Split Files::         How tagged and split files help Info
+                                  to run better.
+ @end menu
+ 
+ 
+ @node makeinfo advantages
+ @subsection @code{makeinfo} Preferred
+ 
+ The @code{makeinfo} utility creates an Info file from a Texinfo source
+ file more quickly than either of the Emacs formatting commands and
+ provides better error messages.  We recommend it.  @code{makeinfo} is a
+ C program that is independent of Emacs.  You do not need to run Emacs to
+ use @code{makeinfo}, which means you can use @code{makeinfo} on machines
+ that are too small to run Emacs.  You can run @code{makeinfo} in any one
+ of three ways: from an operating system shell, from a shell inside
+ Emacs, or by typing the @kbd{C-c C-m C-r} or the @kbd{C-c C-m C-b}
+ command in Texinfo mode in Emacs.
+ 
+ The @code{texinfo-format-region} and the @code{texinfo-format-buffer}
+ commands are useful if you cannot run @code{makeinfo}.  Also, in some
+ circumstances, they format short regions or buffers more quickly than
+ @code{makeinfo}.
+ 
+ 
+ @node Invoking makeinfo
+ @subsection Running @code{makeinfo} from a Shell
+ @pindex makeinfo
+ 
+ To create an Info file from a Texinfo file, invoke @command{makeinfo}
+ followed by the name of the Texinfo file.  Thus, to create the Info
+ file for Bison, type the following to the shell:
+ 
+ @example
+ makeinfo bison.texinfo
+ @end example
+ 
+ (You can run a shell inside Emacs by typing @kbd{M-x shell}.)
+ 
+ @command{makeinfo} has many options to control its actions and output;
+ see the next section.
+ 
+ You can give @command{makeinfo} more than one input file name; each is
+ processed in turn.  If an input file name is @samp{-}, or no input
+ file names are given at all, standard input is read.
+ 
+ 
+ @node makeinfo options
+ @subsection Options for @code{makeinfo}
+ @cindex @code{makeinfo} options
+ @cindex Options for @code{makeinfo}
+ 
+ The @command{makeinfo} program accepts many options.  Perhaps the most
+ commonly needed are those that change the output format.  By default,
+ @command{makeinfo} outputs Info files.
+ 
+ Each command line option is a word preceded by @samp{--} or a letter
+ preceded by @samp{-}.  You can use abbreviations for the long option
+ names as long as they are unique.
+ 
+ For example, you could use the following shell command to create an Info
+ file for @file{bison.texinfo} in which each line is filled to only 68
+ columns:
+ 
+ @example
+ makeinfo --fill-column=68 bison.texinfo
+ @end example
+ 
+ You can write two or more options in sequence, like this:@refill
+ 
+ @example
+ makeinfo --no-split --fill-column=70 @dots{}
+ @end example
+ 
+ @noindent
+ This would keep the Info file together as one possibly very long
+ file and would also set the fill column to 70.
+ 
+ The options are:
+ 
+ @table @code
+ 
+ @item -D @var{var}
+ @opindex -D @var{var}
+ Cause the variable @var{var} to be defined.  This is equivalent to
+ @code{@@set @var{var}} in the Texinfo file (@pxref{set clear value}).
+ 
+ @item --commands-in-node-names
+ @opindex --commands-in-node-names
+ Allow @code{@@}-commands in node names.  This is not recommended, as it
+ can probably never be implemented in @TeX{}.  It also makes
+ @code{makeinfo} much slower.  Also, this option is ignored when
+ @samp{--no-validate} is used.  @xref{Pointer Validation}, for more
+ details.
+ 
+ @item --css-include=@var{file}
+ @opindex --css-include
+ Include the contents of @var{file}, which should contain cascading
+ style sheets specifications, in the @samp{<style>} block of the HTML
+ output.  @xref{HTML CSS}.  If @var{file} is @samp{-}, read standard
+ input.
+ 
+ @item --css-ref=@var{url}
+ @opindex --css-ref
+ In HTML mode, add a @samp{<link>} tag to the HTML output which
+ references a cascading style sheet at @var{url}. This allows using
+ standalone style sheets.
+ 
+ @item --disable-encoding
+ @itemx --enable-encoding
+ @opindex --disable-encoding
+ @opindex --enable-encoding
+ By default, or with @option{--enable-encoding}, output accented and
+ special characters in Info or plain text output based on
+ @samp{@@documentencoding}.  With @option{--disable-encoding}, 7-bit
+ ASCII transliterations are output.
+ @xref{documentencoding,,@code{documentencoding}}, and @ref{Inserting
+ Accents}.
+ 
+ @item --docbook
+ @opindex --docbook
+ Generate Docbook output rather than Info.
+ 
+ @item --document-language=@var{lang}
+ @opindex --document-language
+ @vindex LANG
+ Use @var{lang} to translate Texinfo keywords which end up in the
+ output document.  The default is the locale specified by the
+ @code{@@documentlanguage} command if there is one
+ (@pxref{documentlanguage}).
+ 
+ @item --error-limit=@var{limit}
+ @itemx -e @var{limit}
+ @opindex --error-limit=@var{limit}
+ @opindex -e @var{limit}
+ Set the maximum number of errors that @code{makeinfo} will report
+ before exiting (on the assumption that continuing would be useless);
+ default 100.
+ 
+ @item --fill-column=@var{width}
+ @itemx -f @var{width}
+ @opindex --fill-column=@var{width}
+ @opindex -f @var{width}
+ Specify the maximum number of columns in a line; this is the right-hand
+ edge of a line.  Paragraphs that are filled will be filled to this
+ width.  (Filling is the process of breaking up and connecting lines so
+ that lines are the same length as or shorter than the number specified
+ as the fill column.  Lines are broken between words.) The default value
+ is 72.  Ignored with @samp{--html}.
+ 
+ @item --footnote-style=@var{style}
+ @itemx -s @var{style}
+ @opindex --footnote-style=@var{style}
+ @opindex -s @var{style}
+ Set the footnote style to @var{style}, either @samp{end} for the end
+ node style (the default) or @samp{separate} for the separate node style.
+ The value set by this option overrides the value set in a Texinfo file
+ by an @code{@@footnotestyle} command (@pxref{Footnotes}).  When the
+ footnote style is @samp{separate}, @code{makeinfo} makes a new node
+ containing the footnotes found in the current node.  When the footnote
+ style is @samp{end}, @code{makeinfo} places the footnote references at
+ the end of the current node.  Ignored with @samp{--html}.
+ 
+ @item --force
+ @itemx -F
+ @opindex --force
+ @opindex -F
+ Ordinarily, if the input file has errors, the output files are not
+ created.  With this option, they are preserved.
+ 
+ @item --help
+ @itemx -h
+ @opindex --help
+ @opindex -h
+ Print a usage message listing all available options, then exit successfully.
+ 
+ @item --html
+ @opindex --html
+ Generate HTML output rather than Info.  @xref{Generating HTML}.  By
+ default, the HTML output is split into one output file per Texinfo
+ source node, and the split output is written into a subdirectory with
+ the name of the top-level info file.
+ 
+ @item -I @var{dir}
+ @opindex -I @var{dir}
+ Append @var{dir} to the directory search list for finding files that
+ are included using the @code{@@include} command.  By default,
+ @code{makeinfo} searches only the current directory.  If @var{dir} is
+ not given, the current directory @file{.} is appended.  Note that
+ @var{dir} can actually be a list of several directories separated by the
+ usual path separator character (@samp{:} on Unix, @samp{;} on
+ MS-DOS/MS-Windows).
+ 
+ @item --ifdocbook
+ @opindex --ifdocbook
+ @itemx --ifhtml
+ @opindex --ifhtml
+ @itemx --ifinfo
+ @opindex --ifinfo
+ @itemx --ifplaintext
+ @opindex --ifplaintext
+ @itemx --iftex
+ @opindex --iftex
+ @itemx --ifxml
+ @opindex --ifxml
+ For the specified format, process @samp{@@if@var{format}} and
+ @samp{@@@var{format}} commands even if not generating the given output
+ format.  For instance, if @option{--iftex} is specified, then
+ @samp{@@iftex} and @samp{@@tex} blocks will be read.  
+ 
+ @item --internal-links=@var{file} 
+ @opindex --internal-links=@var{file}
+ In HTML mode, output a tab separated file containing three columns:
+ the internal link to an indexed item or item in the table of contents, 
+ the name of the index (or "toc") in which it occurs, and the term
+ which was indexed or entered.
+ 
+ @item --macro-expand=@var{file}
+ @itemx -E @var{file}
+ @opindex --macro-expand=@var{file}
+ @opindex -E @var{file}
+ Output the Texinfo source with all the macros expanded to the named
+ file.  Normally, the results of macro expansion are used internally by
+ @code{makeinfo} and then discarded.  This option is used by
+ @command{texi2dvi}.
+ 
+ @item --no-headers
+ @item --plaintext
+ @opindex --no-headers
+ @opindex --plaintext
+ @cindex Plain text output
+ @cindex ASCII text output
+ @cindex Generating plain text files
+ @cindex @file{INSTALL} file, generating
+ @cindex Node separators, omitting
+ @cindex Menus, omitting
+ Do not include menus or node separator lines in the output, and
+ implicitly @option{--enable-encoding} (see above).  This results in a
+ simple plain text file that you can (for example) send in email
+ without complications, or include in a distribution (as in an
+ @file{INSTALL} file).
+ 
+ @cindex Navigation links, omitting
+ For HTML output, likewise omit menus.  And if @samp{--no-split} is also
+ specified, do not include a navigation links at the top of each node
+ (these are never included in the default case of split output).
+ @xref{Generating HTML}.
+ 
+ In both cases, ignore @code{@@setfilename} and write to standard
+ output by default---can be overridden with @option{-o}.
+ 
+ @item --no-ifdocbook
+ @opindex --no-ifdocbook
+ @itemx --no-ifhtml
+ @opindex --no-ifhtml
+ @itemx --no-ifinfo
+ @opindex --no-ifinfo
+ @itemx --no-ifplaintext
+ @opindex --no-ifplaintext
+ @itemx --no-iftex
+ @opindex --no-iftex
+ @itemx --no-ifxml
+ @opindex --no-ifxml
+ Do not process @samp{@@if@var{format}} and @samp{@@@var{format}}
+ commands, and do process @samp{@@ifnot@var{format}}, even if
+ generating the given format.  For instance, if @option{--no-ifhtml} is
+ specified, then @samp{@@ifhtml} and @samp{@@html} blocks will not be
+ read, and @samp{@@ifnothtml} blocks will be.
+ 
+ @item --no-number-footnotes
+ @opindex --no-number-footnotes
+ Suppress automatic footnote numbering.  By default, @code{makeinfo}
+ numbers each footnote sequentially in a single node, resetting the
+ current footnote number to 1 at the start of each node.
+ 
+ @item --no-number-sections
+ @opindex --no-number-sections
+ Do not output chapter, section, and appendix numbers.
+ You need to specify this if your manual is not hierarchically-structured.
+ 
+ @item --no-split
+ @opindex --no-split
+ @cindex Splitting of output files
+ @cindex Output file splitting
+ Suppress the splitting stage of @code{makeinfo}.  By default, large
+ output files (where the size is greater than 70k bytes) are split into
+ smaller subfiles.  For Info output, each one is approximately 50k bytes.
+ For HTML output, each file contains one node (@pxref{Generating HTML}).
+ 
+ @item --no-pointer-validate
+ @itemx --no-validate
+ @opindex --no-pointer-validate
+ @opindex --no-validate
+ @cindex Pointer validation, suppressing
+ Suppress the pointer-validation phase of @code{makeinfo}---a dangerous
+ thing to do.  This can also be done with the @code{@@novalidate}
+ command (@pxref{Use TeX,,Use @TeX{}}).  Normally, after a Texinfo file
+ is processed, some consistency checks are made to ensure that cross
+ references can be resolved, etc.  @xref{Pointer Validation}.
+ 
+ @item --no-warn
+ @opindex --no-warn
+ Suppress warning messages (but @emph{not} error messages).
+ 
+ @item --number-sections
+ @opindex --number-sections
+ Output chapter, section, and appendix numbers as in printed manuals.
+ This is the default.  It works only with hierarchically-structured
+ manuals.
+ 
+ @item --output=@var{file}
+ @itemx -o @var{file}
+ @opindex --output=@var{file}
+ @opindex -o @var{file}
+ Specify that the output should be directed to @var{file} and not to the
+ file name specified in the @code{@@setfilename} command found in the
+ Texinfo source (@pxref{setfilename}).  If @var{file} is @samp{-}, output
+ goes to standard output and @samp{--no-split} is implied.  For split
+ HTML output, @var{file} is the name for the directory into which all
+ HTML nodes are written (@pxref{Generating HTML}).
+ 
+ @item -P @var{dir}
+ @opindex -P @var{dir}
+ Prepend @var{dir} to the directory search list for @code{@@include}.
+ If @var{dir} is not given, the current directory @file{.} is prepended.
+ See @samp{-I} for more details.
+ 
+ @item --paragraph-indent=@var{indent}
+ @itemx -p @var{indent}
+ @opindex --paragraph-indent=@var{indent}
+ @opindex -p @var{indent}
+ Set the paragraph indentation style to @var{indent}.  The value set by
+ this option overrides the value set in a Texinfo file by an
+ @code{@@paragraphindent} command (@pxref{paragraphindent}).  The value
+ of @var{indent} is interpreted as follows:
+ 
+ @table @asis
+ @item @samp{asis}
+ Preserve any existing indentation at the starts of paragraphs.
+ 
+ @item @samp{0} or @samp{none}
+ Delete any existing indentation.
+ 
+ @item @var{num}
+ Indent each paragraph by @var{num} spaces.
+ @end table
+ 
+ @item --split-size=@var{num}
+ @opindex --split-size=@var{num}
+ Keep Info files to at most @var{num} characters; default is 300,000.
+ 
+ @item --transliterate-file-names
+ @opindex --transliterate-file-names
+ Enable transliteration of 8-bit characters in node names for the
+ purpose of file name creation. @xref{HTML Xref 8-bit Character Expansion}.
+ 
+ @item -U @var{var}
+ Cause @var{var} to be undefined.  This is equivalent to
+ @code{@@clear @var{var}} in the Texinfo file (@pxref{set clear value}).
+ 
+ @item --verbose
+ @opindex --verbose
+ Cause @code{makeinfo} to display messages saying what it is doing.
+ Normally, @code{makeinfo} only outputs messages if there are errors or
+ warnings.
+ 
+ @item --version
+ @itemx -V
+ @opindex --version
+ @opindex -V
+ Print the version number, then exit successfully.
+ 
+ @item --xml
+ @opindex --xml
+ Generate XML output rather than Info.
+ 
+ @end table
+ 
+ @vindex TEXINFO_OUTPUT_FORMAT
+ @cindex Environment variable @code{TEXINFO_OUTPUT_FORMAT}
+ @command{makeinfo} also reads the environment variable
+ @env{TEXINFO_OUTPUT_FORMAT} to determine the output format, if not
+ overridden by a command line option.  The possible values are:
+ 
+ @example
+ docbook  html  info  plaintext  xml
+ @end example
+ 
+ If not set, Info output is the default.
+ 
+ 
+ @node Pointer Validation
+ @subsection Pointer Validation
+ @cindex Pointer validation with @code{makeinfo}
+ @cindex Validation of pointers
+ 
+ If you do not suppress pointer validation with the @samp{--no-validate}
+ option or the @code{@@novalidate} command in the source file (@pxref{Use
+ TeX,,Use @TeX{}}), @code{makeinfo} will check the validity of the final
+ Info file.  Mostly, this means ensuring that nodes you have referenced
+ really exist.  Here is a complete list of what is checked:
+ 
+ @enumerate
+ @item
+ If a `Next', `Previous', or `Up' node reference is a reference to a
+ node in the current file and is not an external reference such as to
+ @file{(dir)}, then the referenced node must exist.@refill
+ 
+ @item
+ In every node, if the `Previous' node is different from the `Up' node,
+ then the node pointed to by the `Previous' field must have a `Next'
+ field which points back to this node.@refill
+ 
+ @item
+ Every node except the `Top' node must have an `Up' pointer.@refill
+ 
+ @item
+ The node referenced by an `Up' pointer must itself reference the current
+ node through a menu item, unless the node referenced by `Up'
+ has the form `(@var{file})'.
+ 
+ @item
+ If the `Next' reference of a node is not the same as the `Next' reference
+ of the `Up' reference, then the node referenced by the `Next' pointer
+ must have a `Previous' pointer that points back to the current node.
+ This rule allows the last node in a section to point to the first node
+ of the next chapter.@refill
+ 
+ @item
+ Every node except `Top' should be referenced by at least one other node,
+ either via the `Previous' or `Next' links, or via a menu or a
+ cross-reference.@refill
+ @end enumerate
+ 
+ @cindex @@-commands in @@node, limited support
+ Some Texinfo documents might fail during the validation phase because
+ they use commands like @code{@@value} and @code{@@definfoenclose} in
+ node definitions and cross-references inconsistently.  (Your best bet
+ is to avoid using @@-commands in node names.)  Consider the
+ following example:
+ 
+ @example
+ @group
+ @@set nodename Node 1
+ 
+ @@node @@value@{nodename@}, Node 2, Top, Top
+ 
+ This is node 1.
+ 
+ @@node Node 2, , Node 1, Top
+ 
+ This is node 2.
+ @end group
+ @end example
+ 
+ @noindent
+ Here, the node ``Node 1'' was referenced both verbatim and through
+ @code{@@value}.
+ 
+ By default, @code{makeinfo} fails such cases, because node names are not
+ fully expanded until they are written to the output file.  You should
+ always try to reference nodes consistently; e.g., in the above example,
+ the second @code{@@node} line should have also used @code{@@value}.
+ However, if, for some reason, you @emph{must} reference node names
+ inconsistently, and @code{makeinfo} fails to validate the file, you can
+ use the @samp{--commands-in-node-names} option to force @code{makeinfo}
+ to perform the expensive expansion of all node names it finds in the
+ document.  This might considerably slow down the program, though;
+ twofold increase in conversion time was measured for large documents
+ such as the Jargon file.
+ 
+ @cindex @@value in @@node lines
+ The support for @code{@@}-commands in @code{@@node} directives is not
+ general enough to be freely used.  For example, if the example above
+ redefined @code{nodename} somewhere in the document, @code{makeinfo}
+ will fail to convert it, even if invoked with the
+ @samp{--commands-in-node-names} option.
+ 
+ @samp{--commands-in-node-names} has no effect if the @samp{--no-validate}
+ option is given.
+ 
+ 
+ @node makeinfo in Emacs
+ @subsection Running @code{makeinfo} Within Emacs
+ @cindex Running @code{makeinfo} in Emacs
+ @cindex @code{makeinfo} inside Emacs
+ @cindex Shell, running @code{makeinfo} in
+ 
+ You can run @code{makeinfo} in GNU Emacs Texinfo mode by using either the
+ @code{makeinfo-region} or the @code{makeinfo-buffer} commands.  In
+ Texinfo mode, the commands are bound to @kbd{C-c C-m C-r} and @kbd{C-c
+ C-m C-b} by default.@refill
+ 
+ @table @kbd
+ @item C-c C-m C-r
+ @itemx M-x makeinfo-region
+ Format the current region for Info.@refill
+ @findex makeinfo-region
+ 
+ @item C-c C-m C-b
+ @itemx M-x makeinfo-buffer
+ Format the current buffer for Info.@refill
+ @findex makeinfo-buffer
+ @end table
+ 
+ When you invoke @code{makeinfo-region} the output goes to a temporary
+ buffer.  When you invoke @code{makeinfo-buffer} output goes to the
+ file set with @code{@@setfilename} (@pxref{setfilename}).
+ 
+ The Emacs @code{makeinfo-region} and @code{makeinfo-buffer} commands
+ run the @code{makeinfo} program in a temporary shell buffer.  If
+ @code{makeinfo} finds any errors, Emacs displays the error messages in
+ the temporary buffer.@refill
+ 
+ @cindex Errors, parsing
+ @cindex Parsing errors
+ @findex next-error
+ You can parse the error messages by typing @kbd{C-x `}
+ (@code{next-error}).  This causes Emacs to go to and position the
+ cursor on the line in the Texinfo source that @code{makeinfo} thinks
+ caused the error.  @xref{Compilation, , Running @code{make} or
+ Compilers Generally, emacs, The GNU Emacs Manual}, for more
+ information about using the @code{next-error} command.@refill
+ 
+ In addition, you can kill the shell in which the @code{makeinfo}
+ command is running or make the shell buffer display its most recent
+ output.@refill
+ 
+ @table @kbd
+ @item C-c C-m C-k
+ @itemx M-x makeinfo-kill-job
+ @findex makeinfo-kill-job
+ Kill the current running @code{makeinfo} job
+ (from @code{makeinfo-region} or @code{makeinfo-buffer}).@refill
+ 
+ @item C-c C-m C-l
+ @itemx M-x makeinfo-recenter-output-buffer
+ @findex makeinfo-recenter-output-buffer
+ Redisplay the @code{makeinfo} shell buffer to display its most recent
+ output.@refill
+ @end table
+ 
+ @noindent
+ (Note that the parallel commands for killing and recentering a @TeX{}
+ job are @kbd{C-c C-t C-k} and @kbd{C-c C-t C-l}.  @xref{Texinfo Mode
+ Printing}.)@refill
+ 
+ You can specify options for @code{makeinfo} by setting the
+ @code{makeinfo-options} variable with either the @kbd{M-x
+ customize} or the @kbd{M-x set-variable} command, or by setting the
+ variable in your @file{.emacs} initialization file.
+ 
+ For example, you could write the following in your @file{.emacs} file:@refill
+ 
+ @example
+ @group
+ (setq makeinfo-options
+      "--paragraph-indent=0 --no-split
+       --fill-column=70 --verbose")
+ @end group
+ @end example
+ 
+ @noindent
+ @c If you write these three cross references using xref, you see
+ @c three references to the same named manual, which looks strange.
+ @iftex
+ For more information, see @ref{makeinfo options, , Options for
+ @code{makeinfo}}, as well as ``Easy Customization Interface,'' ``Examining
+ and Setting Variables,'' and ``Init File'' in @cite{The GNU Emacs
+ Manual}.
+ @end iftex
+ @ifnottex
+ For more information, see@*
+ @ref{Easy Customization, , Easy Customization Interface, emacs, The GNU Emacs Manual},@*
+ @ref{Examining, , Examining and Setting Variables, emacs, The GNU Emacs Manual},@*
+ @ref{Init File, , , emacs, The GNU Emacs Manual}, and@*
+ @ref{makeinfo options, , Options for @code{makeinfo}}.
+ @end ifnottex
+ 
+ @node texinfo-format commands
+ @subsection The @code{texinfo-format@dots{}} Commands
+ 
+ In GNU Emacs in Texinfo mode, you can format part or all of a Texinfo
+ file with the @code{texinfo-format-region} command.  This formats the
+ current region and displays the formatted text in a temporary buffer
+ called @samp{*Info Region*}.@refill
+ 
+ Similarly, you can format a buffer with the
+ @code{texinfo-format-buffer} command.  This command creates a new
+ buffer and generates the Info file in it.  Typing @kbd{C-x C-s} will
+ save the Info file under the name specified by the
+ @code{@@setfilename} line which must be near the beginning of the
+ Texinfo file.@refill
+ 
+ @table @kbd
+ @item C-c C-e C-r
+ @itemx @code{texinfo-format-region}
+ @findex texinfo-format-region
+ Format the current region for Info.
+ 
+ @item C-c C-e C-b
+ @itemx @code{texinfo-format-buffer}
+ @findex texinfo-format-buffer
+ Format the current buffer for Info.
+ @end table
+ 
+ The @code{texinfo-format-region} and @code{texinfo-format-buffer}
+ commands provide you with some error checking, and other functions can
+ provide you with further help in finding formatting errors.  These
+ procedures are described in an appendix; see @ref{Catching Mistakes}.
+ However, the @code{makeinfo} program is often faster and
+ provides better error checking (@pxref{makeinfo in Emacs}).@refill
+ 
+ @node Batch Formatting
+ @comment  node-name,  next,  previous,  up
+ @subsection Batch Formatting
+ @cindex Batch formatting for Info
+ @cindex Info batch formatting
+ 
+ You can format Texinfo files for Info using @code{batch-texinfo-format}
+ and Emacs Batch mode.  You can run Emacs in Batch mode from any shell,
+ including a shell inside of Emacs.  (@xref{Command Arguments,,,
+ emacs, The GNU Emacs Manual}.)
+ 
+ Here is a shell command to format all the files that end in
+ @file{.texinfo} in the current directory:
+ 
+ @example
+ emacs -batch -funcall batch-texinfo-format *.texinfo
+ @end example
+ 
+ @noindent
+ Emacs processes all the files listed on the command line, even if an
+ error occurs while attempting to format some of them.@refill
+ 
+ Run @code{batch-texinfo-format} only with Emacs in Batch mode as shown;
+ it is not interactive.  It kills the Batch mode Emacs on completion.@refill
+ 
+ @code{batch-texinfo-format} is convenient if you lack @code{makeinfo}
+ and want to format several Texinfo files at once.  When you use Batch
+ mode, you create a new Emacs process.  This frees your current Emacs, so
+ you can continue working in it.  (When you run
+ @code{texinfo-format-region} or @code{texinfo-format-buffer}, you cannot
+ use that Emacs for anything else until the command finishes.)@refill
+ 
+ @node Tag and Split Files
+ @comment  node-name,  next,  previous,  up
+ @subsection Tag Files and Split Files
+ @cindex Making a tag table automatically
+ @cindex Tag table, making automatically
+ 
+ If a Texinfo file has more than 30,000 bytes,
+ @code{texinfo-format-buffer} automatically creates a tag table
+ for its Info file;  @code{makeinfo} always creates a tag table.  With
+ a @dfn{tag table}, Info can jump to new nodes more quickly than it can
+ otherwise.@refill
+ 
+ @cindex Indirect subfiles
+ In addition, if the Texinfo file contains more than about 300,000
+ bytes, @code{texinfo-format-buffer} and @code{makeinfo} split the
+ large Info file into shorter @dfn{indirect} subfiles of about 300,000
+ bytes each.  Big files are split into smaller files so that Emacs does
+ not need to make a large buffer to hold the whole of a large Info
+ file; instead, Emacs allocates just enough memory for the small, split-off
+ file that is needed at the time.  This way, Emacs avoids wasting
+ memory when you run Info.  (Before splitting was implemented, Info
+ files were always kept short and @dfn{include files} were designed as
+ a way to create a single, large printed manual out of the smaller Info
+ files.  @xref{Include Files}, for more information.  Include files are
+ still used for very large documents, such as @cite{The Emacs Lisp
+ Reference Manual}, in which each chapter is a separate file.)@refill
+ 
+ When a file is split, Info itself makes use of a shortened version of
+ the original file that contains just the tag table and references to
+ the files that were split off.  The split-off files are called
+ @dfn{indirect} files.@refill
+ 
+ The split-off files have names that are created by appending @w{@samp{-1}},
+ @w{@samp{-2}}, @w{@samp{-3}} and so on to the file name specified by the
+ @code{@@setfilename} command.  The shortened version of the original file
+ continues to have the name specified by @code{@@setfilename}.@refill
+ 
+ At one stage in writing this document, for example, the Info file was saved
+ as the file @file{test-texinfo} and that file looked like this:@refill
+ 
+ @example
+ @group
+ Info file: test-texinfo,    -*-Text-*-
+ produced by texinfo-format-buffer
+ from file: new-texinfo-manual.texinfo
+ 
+ ^_
+ Indirect:
+ test-texinfo-1: 102
+ test-texinfo-2: 50422
+ @end group
+ @group
+ test-texinfo-3: 101300
+ ^_^L
+ Tag table:
+ (Indirect)
+ Node: overview^?104
+ Node: info file^?1271
+ @end group
+ @group
+ Node: printed manual^?4853
+ Node: conventions^?6855
+ @dots{}
+ @end group
+ @end example
+ 
+ @noindent
+ (But @file{test-texinfo} had far more nodes than are shown here.)  Each of
+ the split-off, indirect files, @file{test-texinfo-1},
+ @file{test-texinfo-2}, and @file{test-texinfo-3}, is listed in this file
+ after the line that says @samp{Indirect:}.  The tag table is listed after
+ the line that says @samp{Tag table:}. @refill
+ 
+ In the list of indirect files, the number following the file name
+ records the cumulative number of bytes in the preceding indirect files,
+ not counting the file list itself, the tag table, or the permissions
+ text in each file.  In the tag table, the number following the node name
+ records the location of the beginning of the node, in bytes from the
+ beginning of the (unsplit) output.
+ 
+ If you are using @code{texinfo-format-buffer} to create Info files,
+ you may want to run the @code{Info-validate} command.  (The
+ @code{makeinfo} command does such a good job on its own, you do not
+ need @code{Info-validate}.)  However, you cannot run the @kbd{M-x
+ Info-validate} node-checking command on indirect files.  For
+ information on how to prevent files from being split and how to
+ validate the structure of the nodes, see @ref{Using Info-validate}.
+ 
+ 
+ @node Installing an Info File
+ @section Installing an Info File
+ @cindex Installing an Info file
+ @cindex Info file installation
+ @cindex @file{dir} directory for Info installation
+ 
+ Info files are usually kept in the @file{info} directory.  You can read
+ Info files using the standalone Info program or the Info reader built
+ into Emacs.  (@inforef{Top, info, info}, for an introduction to Info.)
+ 
+ @menu
+ * Directory File::              The top level menu for all Info files.
+ * New Info File::               Listing a new Info file.
+ * Other Info Directories::      How to specify Info files that are
+                                  located in other directories.
+ * Installing Dir Entries::      How to specify what menu entry to add
+                                  to the Info directory.
+ * Invoking install-info::       @code{install-info} options.
+ @end menu
+ 
+ 
+ @node Directory File
+ @subsection The Directory File @file{dir}
+ 
+ For Info to work, the @file{info} directory must contain a file that
+ serves as a top level directory for the Info system.  By convention,
+ this file is called @file{dir}.  (You can find the location of this file
+ within Emacs by typing @kbd{C-h i} to enter Info and then typing
+ @kbd{C-x C-f} to see the pathname to the @file{info} directory.)
+ 
+ The @file{dir} file is itself an Info file.  It contains the top level
+ menu for all the Info files in the system.  The menu looks like
+ this:@refill
+ 
+ @example
+ @group
+ * Menu:
+ * Info:    (info).     Documentation browsing system.
+ * Emacs:   (emacs).    The extensible, self-documenting
+                       text editor.
+ * Texinfo: (texinfo).  With one source file, make
+                       either a printed manual using
+                       @@TeX@{@} or an Info file.
+ @dots{}
+ @end group
+ @end example
+ 
+ Each of these menu entries points to the `Top' node of the Info file
+ that is named in parentheses.  (The menu entry does not need to
+ specify the `Top' node, since Info goes to the `Top' node if no node
+ name is mentioned.  @xref{Other Info Files, , Nodes in Other Info
+ Files}.)@refill
+ 
+ Thus, the @samp{Info} entry points to the `Top' node of the
+ @file{info} file and the @samp{Emacs} entry points to the `Top' node
+ of the @file{emacs} file.@refill
+ 
+ In each of the Info files, the `Up' pointer of the `Top' node refers
+ back to the @code{dir} file.  For example, the line for the `Top'
+ node of the Emacs manual looks like this in Info:@refill
+ 
+ @example
+ File: emacs  Node: Top, Up: (DIR), Next: Distrib
+ @end example
+ 
+ @noindent
+ In this case, the @file{dir} file name is written in upper case
+ letters---it can be written in either upper or lower case.  This is not
+ true in general, it is a special case for @file{dir}.
+ 
+ 
+ @node New Info File
+ @subsection Listing a New Info File
+ @cindex Adding a new Info file
+ @cindex Listing a new Info file
+ @cindex New Info file, listing it in @file{dir} file
+ @cindex Info file, listing a new
+ @cindex @file{dir} file listing
+ 
+ To add a new Info file to your system, you must write a menu entry to
+ add to the menu in the @file{dir} file in the @file{info} directory.
+ For example, if you were adding documentation for GDB, you would write
+ the following new entry:@refill
+ 
+ @example
+ * GDB: (gdb).           The source-level C debugger.
+ @end example
+ 
+ @noindent
+ The first part of the menu entry is the menu entry name, followed by a
+ colon.  The second part is the name of the Info file, in parentheses,
+ followed by a period.  The third part is the description.
+ 
+ The name of an Info file often has a @file{.info} extension.  Thus, the
+ Info file for GDB might be called either @file{gdb} or @file{gdb.info}.
+ The Info reader programs automatically try the file name both with and
+ without @file{.info}@footnote{On MS-DOS/MS-Windows systems, Info will
+ try the @file{.inf} extension as well.}; so it is better to avoid
+ clutter and not to write @samp{.info} explicitly in the menu entry.  For
+ example, the GDB menu entry should use just @samp{gdb} for the file
+ name, not @samp{gdb.info}.
+ 
+ 
+ @node Other Info Directories
+ @subsection Info Files in Other Directories
+ @cindex Installing Info in another directory
+ @cindex Info installed in another directory
+ @cindex Another Info directory
+ @cindex @file{dir} files and Info directories
+ 
+ If an Info file is not in the @file{info} directory, there are three
+ ways to specify its location:@refill
+ 
+ @enumerate
+ @item
+ Write the pathname in the @file{dir} file as the second part of the menu.
+ 
+ @item
+ If you are using Emacs, list the name of the file in a second @file{dir}
+ file, in its directory; and then add the name of that directory to the
+ @code{Info-directory-list} variable in your personal or site
+ initialization file.
+ 
+ This variable tells Emacs where to look for @file{dir} files (the files
+ must be named @file{dir}).  Emacs merges the files named @file{dir} from
+ each of the listed directories.  (In Emacs version 18, you can set the
+ @code{Info-directory} variable to the name of only one
+ directory.)@refill
+ 
+ @item
+ Specify the Info directory name in the @code{INFOPATH} environment
+ variable in your @file{.profile} or @file{.cshrc} initialization file.
+ (Only you and others who set this environment variable will be able to
+ find Info files whose location is specified this way.)
+ @end enumerate
+ 
+ For example, to reach a test file in the @file{/home/bob/info}
+ directory, you could add an entry like this to the menu in the
+ standard @file{dir} file:@refill
+ 
+ @example
+ * Test: (/home/bob/info/info-test).  Bob's own test file.
+ @end example
+ 
+ @noindent
+ In this case, the absolute file name of the @file{info-test} file is
+ written as the second part of the menu entry.@refill
+ 
+ Alternatively, you could write the following in your @file{.emacs} file:
+ 
+ @vindex Info-directory-list
+ @example
+ @group
+ (require 'info)
+ (setq Info-directory-list
+  (cons (expand-file-name "/home/bob/info")
+        Info-directory-list))
+ @end group
+ @end example
+ 
+ This tells Emacs to merge the system @file{dir} file with the @file{dir}
+ file in @file{/home/bob/info}.  Thus, Info will list the
+ @file{/home/bob/info/info-test} file as a menu entry in the
+ @file{/home/bob/info/dir} file.  Emacs does the merging only when
+ @kbd{M-x info} is first run, so if you want to set
+ @code{Info-directory-list} in an Emacs session where you've already run
+ @code{info}, you must @code{(setq Info-dir-contents nil)} to force Emacs
+ to recompose the @file{dir} file.
+ 
+ @vindex INFOPATH
+ @cindex Environment variable @code{INFOPATH}
+ Finally, you can tell Info where to look by setting the @code{INFOPATH}
+ environment variable in your shell startup file, such as @file{.cshrc},
+ @file{.profile} or @file{autoexec.bat}.  If you use a Bourne-compatible
+ shell such as @code{sh} or @code{bash} for your shell command
+ interpreter, you set the @code{INFOPATH} environment variable in the
+ @file{.profile} initialization file; but if you use @code{csh} or
+ @code{tcsh}, you set the variable in the @file{.cshrc} initialization
+ file.  On MS-DOS/MS-Windows systems, you must set @code{INFOPATH} in
+ your @file{autoexec.bat} file or in the Registry.  Each type of shell
+ uses a different syntax.
+ 
+ @itemize @bullet
+ @item
+ In a @file{.cshrc} file, you could set the @code{INFOPATH}
+ variable as follows:@refill
+ 
+ @smallexample
+ setenv INFOPATH .:~/info:/usr/local/emacs/info
+ @end smallexample
+ 
+ @item
+ In a @file{.profile} file, you would achieve the same effect by
+ writing:@refill
+ 
+ @smallexample
+ INFOPATH=.:$HOME/info:/usr/local/emacs/info
+ export INFOPATH
+ @end smallexample
+ 
+ @item
+ @pindex autoexec.bat
+ In a @file{autoexec.bat} file, you write this command@footnote{Note the
+ use of @samp{;} as the directory separator, and a different syntax for
+ using values of other environment variables.}:
+ 
+ @smallexample
+ set INFOPATH=.;%HOME%/info;c:/usr/local/emacs/info
+ @end smallexample
+ @end itemize
+ 
+ @noindent
+ The @samp{.} indicates the current directory as usual.  Emacs uses the
+ @code{INFOPATH} environment variable to initialize the value of Emacs's
+ own @code{Info-directory-list} variable.  The stand-alone Info reader
+ merges any files named @file{dir} in any directory listed in the
+ @env{INFOPATH} variable into a single menu presented to you in the node
+ called @samp{(dir)Top}.
+ 
+ @cindex Colon, last in @env{INFOPATH}
+ However you set @env{INFOPATH}, if its last character is a
+ colon@footnote{On MS-DOS/MS-Windows systems, use semi-colon instead.}, this
+ is replaced by the default (compiled-in) path.  This gives you a way to
+ augment the default path with new directories without having to list all
+ the standard places.  For example (using @code{sh} syntax):
+ 
+ @example
+ INFOPATH=/local/info:
+ export INFOPATH
+ @end example
+ 
+ @noindent
+ will search @file{/local/info} first, then the standard directories.
+ Leading or doubled colons are not treated specially.
+ 
+ @cindex @file{dir} file, creating your own
+ When you create your own @file{dir} file for use with
+ @code{Info-directory-list} or @env{INFOPATH}, it's easiest to start by
+ copying an existing @file{dir} file and replace all the text after the
+ @samp{* Menu:} with your desired entries.  That way, the punctuation and
+ special CTRL-_ characters that Info needs will be present.
+ 
+ 
+ @node Installing Dir Entries
+ @subsection Installing Info Directory Files
+ 
+ When you install an Info file onto your system, you can use the program
+ @code{install-info} to update the Info directory file @file{dir}.
+ Normally the makefile for the package runs @code{install-info}, just
+ after copying the Info file into its proper installed location.
+ 
+ @findex dircategory
+ @findex direntry
+ In order for the Info file to work with @code{install-info}, you include
+ the commands @code{@@dircategory} and
+ @code{@@direntry}@dots{}@code{@@end direntry} in the Texinfo source
+ file.  Use @code{@@direntry} to specify the menu entries to add to the
+ Info directory file, and use @code{@@dircategory} to specify which part
+ of the Info directory to put it in.  Here is how these commands are used
+ in this manual:
+ 
+ @smallexample
+ @@dircategory Texinfo documentation system
+ @@direntry
+ * Texinfo: (texinfo).           The GNU documentation format.
+ * install-info: (texinfo)Invoking install-info. @dots{}
+ @dots{}
+ @@end direntry
+ @end smallexample
+ 
+ Here's what this produces in the Info file:
+ 
+ @smallexample
+ INFO-DIR-SECTION Texinfo documentation system
+ START-INFO-DIR-ENTRY
+ * Texinfo: (texinfo).           The GNU documentation format.
+ * install-info: (texinfo)Invoking install-info. @dots{}
+ @dots{}
+ END-INFO-DIR-ENTRY
+ @end smallexample
+ 
+ @noindent
+ The @code{install-info} program sees these lines in the Info file, and
+ that is how it knows what to do.
+ 
+ Always use the @code{@@direntry} and @code{@@dircategory} commands near
+ the beginning of the Texinfo input, before the first @code{@@node}
+ command.  If you use them later on in the input, @code{install-info}
+ will not notice them.
+ 
+ @code{install-info} will automatically reformat the description of the
+ menu entries it is adding.  As a matter of convention, the description
+ of the main entry (above, @samp{The GNU documentation format}) should
+ start at column 32, starting at zero (as in
+ @code{what-cursor-position} in Emacs).  This will make it align with
+ most others.  Description for individual utilities best start in
+ column 48, where possible.  For more information about formatting see
+ the @samp{--calign}, @samp{--align}, and @samp{--max-width} options in
+ @ref{Invoking install-info}.
+ 
+ If you use @code{@@dircategory} more than once in the Texinfo source,
+ each usage specifies the `current' category; any subsequent
+ @code{@@direntry} commands will add to that category.
+ 
+ @cindex Free Software Directory
+ @cindex Dir categories, choosing
+ @cindex Categories, choosing
+ When choosing a category name for the @code{@@dircategory} command, we
+ recommend consulting the @uref{http://www.gnu.org/directory,
+ Free Software Directory}.  If your program is not listed there,
+ or listed incorrectly or incompletely, please report the situation to
+ the directory maintainers (@email{bug-directory@@gnu.org}) so that the
+ category names can be kept in sync.
+ 
+ Here are a few examples (see the @file{util/dir-example} file in the
+ Texinfo distribution for large sample @code{dir} file):
+ 
+ @display
+ Emacs
+ Localization
+ Printing
+ Software development
+ Software libraries
+ Text creation and manipulation
+ @end display
+ 
+ @cindex Invoking nodes, including in dir file
+ Each `Invoking' node for every program installed should have a
+ corresponding @code{@@direntry}.  This lets users easily find the
+ documentation for the different programs they can run, as with the
+ traditional @command{man} system.
+ 
+ 
+ @node Invoking install-info
+ @subsection Invoking @command{install-info}
+ @pindex install-info
+ 
+ @code{install-info} inserts menu entries from an Info file into the
+ top-level @file{dir} file in the Info system (see the previous sections
+ for an explanation of how the @file{dir} file works).  @code{install-info} 
+ also removes menu entries from the @file{dir} file.  It's most often
+ run as part of software installation, or when constructing a @file{dir} file
+ for all manuals on a system.  Synopsis:
+ 
+ @example
+ install-info [@var{option}]@dots{} [@var{info-file} [@var{dir-file}]]
+ @end example
+ 
+ If @var{info-file} or @var{dir-file} are not specified, the options
+ (described below) that define them must be.  There are no compile-time
+ defaults, and standard input is never used.  @code{install-info} can
+ read only one Info file and write only one @file{dir} file per invocation.
+ 
+ @cindex @file{dir}, created by @code{install-info}
+ If @var{dir-file} (however specified) does not exist,
+ @code{install-info} creates it if possible (with no entries).
+ 
+ @cindex Compressed dir files, reading
+ @cindex Bzipped dir files, reading
+ @cindex LZMA-compressed dir files, reading
+ @cindex Dir files, compressed
+ If any input file is compressed with @code{gzip} (@pxref{Top,,,gzip,
+ Gzip}), @code{install-info} automatically uncompresses it
+ for reading.  And if @var{dir-file} is compressed, @code{install-info}
+ also automatically leaves it compressed after writing any changes.
+ If @var{dir-file} itself does not exist, @code{install-info} tries to
+ open @file{@var{dir-file}.gz}, @file{@var{dir-file}.bz2}, and 
+ @file{@var{dir-file}.lzma}, in that order.
+ 
+ Options:
+ 
+ @table @code
+ @item --add-once
+ Specifies that the entry or entries will only be put into a single section.
+ 
+ @item --align=@var{column}
+ @opindex --align=@var{column}
+ Specifies the column that the second and subsequent lines of menu entry's 
+ description will be formatted to begin at.  The default for this option is 
+ @samp{35}.  It is used in conjunction with the @samp{--max-width} option.
+ @var{column} starts counting at 1.
+ 
+ @item --append-new-sections
+ Instead of alphabetizing new sections, place them at the end of the DIR file.
+ 
+ @item --calign=@var{column}
+ @opindex --calign=@var{column}
+ Specifies the column that the first line of menu entry's description will 
+ be formatted to begin at.  The default for this option is @samp{33}.  It is 
+ used in conjunction with the @samp{--max-width} option.
+ When the name of the menu entry exceeds this column, entry's description 
+ will start on the following line.
+ @var{column} starts counting at 1.
+ 
+ @item --debug
+ @opindex --debug
+ Report what is being done.
+ 
+ @item --delete
+ @opindex --delete
+ Delete the entries in @var{info-file} from @var{dir-file}.  The file
+ name in the entry in @var{dir-file} must be @var{info-file} (except for
+ an optional @samp{.info} in either one).  Don't insert any new entries.
+ Any empty sections that result from the removal are also removed.
+ 
+ @item --description=@var{text}
+ @opindex --description=@var{text}
+ Specify the explanatory portion of the menu entry.  If you don't specify
+ a description (either via @samp{--entry}, @samp{--item} or this option),
+ the description is taken from the Info file itself.
+ 
+ @item --dir-file=@var{name}
+ @opindex --dir-file=@var{name}
+ Specify file name of the Info directory file.  This is equivalent to
+ using the @var{dir-file} argument.
+ 
+ @item --dry-run
+ @opindex --dry-run
+ Same as @samp{--test}.
+ 
+ @item --entry=@var{text}
+ @opindex --entry=@var{text}
+ Insert @var{text} as an Info directory entry; @var{text} should have the
+ form of an Info menu item line plus zero or more extra lines starting
+ with whitespace.  If you specify more than one entry, they are all
+ added.  If you don't specify any entries, they are determined from
+ information in the Info file itself.
+ 
+ @item --help
+ @opindex --help
+ Display a usage message with basic usage and all available options,
+ then exit successfully.
+ 
+ @item --info-file=@var{file}
+ @opindex --info-file=@var{file}
+ Specify Info file to install in the directory.  This is
+ equivalent to using the @var{info-file} argument.
+ 
+ @item --info-dir=@var{dir}
+ @opindex --info-dir=@var{dir}
+ Specify the directory where the directory file @file{dir} resides.
+ Equivalent to @samp{--dir-file=@var{dir}/dir}.
+ 
+ @item --infodir=@var{dir}
+ @opindex --infodir=@var{dir}
+ Same as @samp{--info-dir}.
+ 
+ @item --item=@var{text}
+ @opindex --item=@var{text}
+ Same as @samp{--entry=@var{text}}.  An Info directory entry is actually
+ a menu item.
+ 
+ @item --keep-old
+ @opindex --keep-old
+ Do not replace pre-existing menu entries.  When @samp{--remove} is specified, 
+ this option means that empty sections are not removed.
+ 
+ @item --max-width=@var{column}
+ @opindex --max-width=@var{column}
+ Specifies the column that the menu entry's description will be word-wrapped
+ at.  @var{column} starts counting at 1.
+ 
+ @item --maxwidth=@var{column}
+ @opindex --maxwidth=@var{column}
+ Same as @samp{--max-width}.
+ 
+ @item --menuentry=@var{text}
+ @opindex --menuentry=@var{text}
+ Same as @samp{--name}.
+ 
+ @item --name=@var{text}
+ @opindex --name=@var{text}
+ Specify the name portion of the menu entry.  If the @var{text} does
+ not start with an asterisk @samp{*}, it is presumed to be the text
+ after the @samp{*} and before the parentheses that specify the Info
+ file.  Otherwise @var{text} is taken verbatim, and is taken as
+ defining the text up to and including the first period (a space is
+ appended if necessary).  If you don't specify the name (either via
+ @samp{--entry}, @samp{--item} or this option), it is taken from the
+ Info file itself.  If the Info does not contain the name, the basename
+ of the Info file is used.
+ 
+ @item --no-indent
+ @opindex --no-indent
+ Suppress formatting of new entries into the @file{dir} file.
+ 
+ @item --quiet
+ @opindex --quiet
+ @itemx --silent
+ @opindex --silent
+ Suppress warnings, etc., for silent operation.
+ 
+ @item --remove
+ @opindex --remove
+ Same as @samp{--delete}.
+ 
+ @item --remove-exactly
+ @opindex --remove-exactly
+ Also like @samp{--delete}, but only entries if the Info file name
+ matches exactly; @code{.info} and/or @code{.gz} suffixes are
+ @emph{not} ignored.
+ 
+ @item --section=@var{sec}
+ @opindex --section=@var{sec}
+ Put this file's entries in section @var{sec} of the directory.  If you
+ specify more than one section, all the entries are added in each of the
+ sections.  If you don't specify any sections, they are determined from
+ information in the Info file itself.  If the Info file doesn't specify
+ a section, the menu entries are put into the Miscellaneous section.
+ 
+ @item --section @var{regex} @var{sec}
+ @opindex --section @var{regex} @var{sec}
+ Same as @samp{--regex=@var{regex} --section=@var{sec} --add-once}.
+ 
+ @code{install-info} tries to detect when this alternate syntax is used, 
+ but does not always guess correctly.  Here is the heuristic that 
+ @code{install-info} uses:
+ @enumerate
+ @item
+ If the second argument to @code{--section} starts with a hyphen, the
+ original syntax is presumed.
+ @item
+ If the second argument to @code{--section} is a file that can be
+ opened, the original syntax is presumed.
+ @item
+ Otherwise the alternate syntax is used.
+ @end enumerate
+ 
+ When heuristic fails because your section title starts with a hyphen, or it 
+ happens to be a filename that can be opened, the syntax should be changed 
+ to @samp{--regex=@var{regex} --section=@var{sec} --add-once}.
+ 
+ 
+ @item --regex=@var{regex}
+ @opindex  --regex=@var{regex}
+ Put this file's entries into any section that matches @var{regex}.  If
+ more than one section matches, all of the entries are added in each of the
+ sections.  Specify @var{regex} using basic regular expression syntax, more 
+ or less as used with @command{grep}, for example.
+ 
+ @item --test
+ @opindex --test
+ Suppress updating of the directory file.
+ 
+ @item --version
+ @opindex --version
+ @cindex Version number, for install-info
+ Display version information and exit successfully.
+ 
+ @end table
+ 
+ 
+ @node Generating HTML
+ @chapter Generating HTML
+ @cindex HTML output
+ 
+ @command{makeinfo} generates Info output by default, but given the
+ @option{--html} option, it will generate HTML, for web browsers and
+ other programs.  This chapter gives some details on such HTML output.
+ 
+ 
+ @command{makeinfo} can also write in XML and Docbook format, but we do
+ not as yet describe these further.  @xref{Output Formats}, for a brief
+ overview of all the output formats.
+ 
+ @menu
+ * HTML Translation::       Details of the HTML output.
+ * HTML Splitting::         How HTML output is split.
+ * HTML CSS::               Influencing HTML output with Cascading Style Sheets.
+ * HTML Xref::              Cross-references in HTML output.
+ @end menu
+ 
+ 
+ @node HTML Translation
+ @section HTML Translation
+ 
+ @command{makeinfo} will include segments of Texinfo source between
+ @code{@@ifhtml} and @code{@@end ifhtml} in the HTML output (but not
+ any of the other conditionals, by default).  Source between
+ @code{@@html} and @code{@@end html} is passed without change to the
+ output (i.e., suppressing the normal escaping of input @samp{<},
+ @samp{>} and @samp{&} characters which have special significance in
+ HTML).  @xref{Conditional Commands}.
+ 
+ @opindex --footnote-style@r{, ignored in HTML output}
+ The @option{--footnote-style} option is currently ignored for HTML output;
+ footnotes are always linked to the end of the output file.
+ 
+ @cindex Navigation bar, in HTML output
+ By default, a navigation bar is inserted at the start of each node,
+ analogous to Info output.  The @samp{--no-headers} option suppresses
+ this if used with @samp{--no-split}.  Header @code{<link>} elements in
+ split output can support info-like navigation with browsers like Lynx
+ and @w{Emacs W3} which implement this HTML@tie{}1.0 feature.
+ 
+ @cindex HTML output, browser compatibility of
+ The HTML generated is mostly standard (i.e., HTML@tie{}2.0, RFC-1866).
+ One exception is that HTML@tie{}3.2 tables are generated from the
+ @code{@@multitable} command, but tagged to degrade as well as possible
+ in browsers without table support.  The HTML@tie{}4 @samp{lang}
+ attribute on the @samp{<html>} attribute is also used.  (Please report
+ output from an error-free run of @code{makeinfo} which has browser
+ portability problems as a bug.)
+ 
+ 
+ @node HTML Splitting
+ @section HTML Splitting
+ @cindex Split HTML output
+ @cindex HTML output, split
+ 
+ When splitting output (which is the default), @command{makeinfo}
+ writes HTML output into (generally) one output file per Texinfo source
+ @code{@@node}.
+ 
+ The output file name is the node name with special characters replaced
+ by @samp{-}'s, so it can work as a filename.  In the unusual case of
+ two different nodes having the same name after this treatment, they
+ are written consecutively to the same file, with HTML anchors so each
+ can be referred to separately.  If @command{makeinfo} is run on a
+ system which does not distinguish case in filenames, nodes which are
+ the same except for case will also be folded into the same output
+ file.
+ 
+ When splitting, the HTML output files are written into a subdirectory,
+ with the name chosen as follows:
+ @enumerate
+ @item 
+ @command{makeinfo} first tries the subdirectory with the base name
+ from @code{@@setfilename} (that is, any extension is removed).  For
+ example, HTML output for @code{@@setfilename gcc.info} would be
+ written into a subdirectory named @samp{gcc}.
+ 
+ @item
+ If that directory cannot be created for any reason, then
+ @command{makeinfo} tries appending @samp{.html} to the directory name.
+ For example, output for @code{@@setfilename texinfo} would be written
+ to @samp{texinfo.html}.
+ 
+ @item
+ If the @samp{@var{name}.html} directory can't be
+ created either, @code{makeinfo} gives up.
+ 
+ @end enumerate
+ 
+ @noindent In any case, the top-level output file within the directory
+ is always named @samp{index.html}.
+ 
+ Monolithic output (@code{--no-split}) is named according to
+ @code{@@setfilename} (with any @samp{.info} extension is replaced with
+ @samp{.html}) or @code{--output} (the argument is used literally).
+ 
+ 
+ @node HTML CSS
+ @section HTML CSS
+ @cindex HTML, and CSS
+ @cindex CSS, and HTML output
+ @cindex Cascading Style Sheets, and HTML output
+ 
+ Cascading Style Sheets (CSS for short) is an Internet standard for
+ influencing the display of HTML documents: see
+ @uref{http://www.w3.org/Style/CSS/}.
+ 
+ By default, @command{makeinfo} includes a few simple CSS commands to
+ better implement the appearance of some of the environments.  Here 
+ are two of them, as an example:
+ 
+ @example
+ pre.display @{ font-family:inherit @}
+ pre.smalldisplay @{ font-family:inherit; font-size:smaller @}
+ @end example
+ 
+ A full explanation of CSS is (far) beyond this manual; please see the
+ reference above.  In brief, however, this specification tells the web
+ browser to use a `smaller' font size for @code{@@smalldisplay} text,
+ and to use the `inherited' font (generally a regular roman typeface)
+ for both @code{@@smalldisplay} and @code{@@display}.  By default, the
+ HTML @samp{<pre>} command uses a monospaced font.
+ 
+ You can influence the CSS in the HTML output with two
+ @command{makeinfo} options: @option{--css-include=@var{file}} and
+ @option{--css-ref=@var{url}}.
+ 
+ The option @option{--css-ref=@var{url}} adds to each output HTML file
+ a @samp{<link>} tag referencing a CSS at the given @var{url}. This
+ allows using external style sheets.
+ 
+ The option @option{--css-include=@var{file}} includes the contents
+ @var{file} in the HTML output, as you might expect.  However, the
+ details are somewhat tricky, as described in the following, to provide
+ maximum flexibility. 
+ 
+ @cindex @@import specifications, in CSS files
+ The CSS file may begin with so-called @samp{@@import} directives,
+ which link to external CSS specifications for browsers to use when
+ interpreting the document.  Again, a full description is beyond our
+ scope here, but we'll describe how they work syntactically, so we can
+ explain how @command{makeinfo} handles them.
+ 
+ @cindex Comments, in CSS files
+ There can be more than one @samp{@@import}, but they have to come
+ first in the file, with only whitespace and comments interspersed, no
+ normal definitions.  (Technical exception: an @samp{@@charset}
+ directive may precede the @samp{@@import}'s.  This does not alter
+ @command{makeinfo}'s behavior, it just copies the @samp{@@charset} if
+ present.)  Comments in CSS files are delimited by @samp{/* ... */}, as
+ in C.  An @samp{@@import} directive must be in one of these two forms:
+ 
+ @example
+ @@import url(http://example.org/foo.css);
+ @@import "http://example.net/bar.css";
+ @end example
+ 
+ As far as @command{makeinfo} is concerned, the crucial characters are
+ the @samp{@@} at the beginning and the semicolon terminating the
+ directive.  When reading the CSS file, it simply copies any such
+ @samp{@@}-directive into the output, as follows:
+ 
+ @itemize
+ @item If @var{file} contains only normal CSS declarations, it is
+ included after @command{makeinfo}'s default CSS, thus overriding it.
+ 
+ @item If @var{file} begins with @samp{@@import} specifications (see
+ below), then the @samp{import}'s are included first (they have to come
+ first, according to the standard), and then @command{makeinfo}'s
+ default CSS is included.  If you need to override @command{makeinfo}'s
+ defaults from an @samp{@@import}, you can do so with the @samp{!@:
+ important} CSS construct, as in:
+ @example
+ pre.smallexample @{ font-size: inherit ! important @}
+ @end example
+ 
+ @item If @var{file} contains both @samp{@@import} and inline CSS
+ specifications, the @samp{@@import}'s are included first, then
+ @command{makeinfo}'s defaults, and lastly the inline CSS from
+ @var{file}.
+ 
+ @item Any @@-directive other than @samp{@@import} and @samp{@@charset}
+ is treated as a CSS declaration, meaning @command{makeinfo} includes
+ its default CSS and then the rest of the file.
+ 
+ @end itemize
+ 
+ If the CSS file is malformed or erroneous, @command{makeinfo}'s output
+ is unspecified.  @command{makeinfo} does not try to interpret the
+ meaning of the CSS file in any way; it just looks for the special
+ @samp{@@} and @samp{;} characters and blindly copies the text into the
+ output.  Comments in the CSS file may or may not be included in the
+ output.
+ 
+ 
+ @node HTML Xref
+ @section HTML Cross-references
+ @cindex HTML cross-references
+ @cindex Cross-references, in HTML output
+ 
+ Cross-references between Texinfo manuals in HTML format amount, in the
+ end, to a standard HTML @code{<a>} link, but the details are
+ unfortunately complex.  This section describes the algorithm used in
+ detail, so that Texinfo can cooperate with other programs, such as
+ @command{texi2html}, by writing mutually compatible HTML files.
+ 
+ This algorithm may or may not be used for links @emph{within} HTML
+ output for a Texinfo file.  Since no issues of compatibility arise in
+ such cases, we do not need to specify this.
+ 
+ We try to support references to such ``external'' manuals in both
+ monolithic and split forms.  A @dfn{monolithic} (mono) manual is
+ entirely contained in one file, and a @dfn{split} manual has a file
+ for each node.  (@xref{HTML Splitting}.)
+ 
+ @cindex Dumas, Patrice
+ Acknowledgement: this algorithm was primarily devised by Patrice Dumas
+ in 2003--04.
+ 
+ @menu
+ * Link Basics:       HTML Xref Link Basics.
+ * Node Expansion:    HTML Xref Node Name Expansion.
+ * Command Expansion: HTML Xref Command Expansion.
+ * 8-bit Expansion:   HTML Xref 8-bit Character Expansion.
+ * Mismatch:          HTML Xref Mismatch.
+ @end menu
+ 
+ 
+ @node HTML Xref Link Basics
+ @subsection HTML Cross-reference Link Basics
+ @cindex HTML cross-reference link basics
+ 
+ For our purposes, an HTML link consists of four components: a host
+ name, a directory part, a file part, and a target part.  We
+ always assume the @code{http} protocol.  For example:
+ 
+ @example
+ http://@var{host}/@var{dir}/@var{file}.html#@var{target}
+ @end example
+ 
+ The information to construct a link comes from the node name and
+ manual name in the cross-reference command in the Texinfo source
+ (@pxref{Cross References}), and from @dfn{external information}, which
+ is currently simply hardwired.  In the future, it may come from an
+ external data file.
+ 
+ We now consider each part in turn.
+ 
+ The @var{host} is hardwired to be the local host.  This could either
+ be the literal string @samp{localhost}, or, according to the rules for
+ HTML links, the @samp{http://localhost/} could be omitted entirely.
+ 
+ The @var{dir} and @var{file} parts are more complicated, and depend on
+ the relative split/mono nature of both the manual being processed and
+ the manual that the cross-reference refers to.  The underlying idea is
+ that there is one directory for Texinfo manuals in HTML, and a given
+ @var{manual} is either available as a monolithic file
+ @file{@var{manual}.html}, or a split subdirectory
+ @file{@var{manual}/*.html}.  Here are the cases:
+ 
+ @itemize @bullet
+ @item
+ If the present manual is split, and the referent manual is also split,
+ the directory is @samp{../@var{referent/}} and the file is the
+ expanded node name (described later).
+ 
+ @item
+ If the present manual is split, and the referent manual is mono, the
+ directory is @samp{../} and the file is @file{@var{referent}.html}.
+ 
+ @item
+ If the present manual is mono, and the referent manual is split, the
+ directory is @file{@var{referent}/} and the file is the expanded node
+ name.
+ 
+ @item
+ If the present manual is mono, and the referent manual is also mono,
+ the directory is @file{./} (or just the empty string), and the file is
+ @file{@var{referent}.html}.
+ 
+ @end itemize
+ 
+ One exception: the algorithm for node name expansion prefixes the
+ string @samp{g_t} when the node name begins with a non-letter.  This
+ kludge (due to XHTML rules) is not necessary for filenames, and is
+ therefore omitted.
+ 
+ Any directory part in the filename argument of the source
+ cross-reference command is ignored.  Thus, @code{@@xref@{,,,../foo@}}
+ and @code{@@xref@{,,,foo@}} both use @samp{foo} as the manual name.
+ This is because any such attempted hardwiring of the directory is very
+ unlikely to be useful for both Info and HTML output.
+ 
+ Finally, the @var{target} part is always the expanded node name.
+ 
+ Whether the present manual is split or mono is determined by user
+ option; @command{makeinfo} defaults to split, with the
+ @option{--no-split} option overriding this.
+ 
+ Whether the referent manual is split or mono is another bit of the
+ external information.  For now, @command{makeinfo} simply assumes the
+ referent manual is the same as the present manual.
+ 
+ There can be a mismatch between the format of the referent manual that
+ the generating software assumes, and the format it's actually present
+ in.  @xref{HTML Xref Mismatch}.
+ 
+ 
+ @node HTML Xref Node Name Expansion
+ @subsection HTML Cross-reference Node Name Expansion
+ @cindex HTML cross-reference node name expansion
+ @cindex node name expansion, in HTML cross-references
+ @cindex expansion, of node names in HTML cross-references
+ 
+ As mentioned in the previous section, the key part of the HTML
+ cross-reference algorithm is the conversion of node names in the
+ Texinfo source into strings suitable for XHTML identifiers and
+ filenames.  The restrictions are similar for each: plain ASCII
+ letters, numbers, and the @samp{-} and @samp{_} characters are all
+ that can be used.  (Although HTML anchors can contain most characters,
+ XHTML is more restrictive.)
+ 
+ Cross-references in Texinfo can actually refer either to nodes or
+ anchors (@pxref{anchor}), but anchors are treated identically to nodes
+ in this context, so we'll continue to say ``node'' names for
+ simplicity.
+ 
+ (@@-commands and 8-bit characters are not presently handled by
+ @command{makeinfo} for HTML cross-references.  See the next section.)
+ 
+ A special exception: the Top node (@pxref{The Top Node}) is always
+ mapped to the file @file{index.html}, to match web server software.
+ However, the HTML @emph{target} is @samp{Top}.  Thus (in the split case):
+ 
+ @example
+ @@xref@{Top, Introduction,, emacs, The GNU Emacs Manual@}.
+ @result{} <a href="emacs/index.html#Top">
+ @end example
+ 
+ @enumerate
+ @item
+ The standard ASCII letters (a-z and A-Z) are not modified.  All other
+ characters are changed as specified below.
+ 
+ @item
+ The standard ASCII numbers (0-9) are not modified except when a number
+ is the first character of the node name.  In that case, see below.
+ 
+ @item
+ Multiple consecutive space, tab and newline characters are transformed
+ into just one space.  (It's not possible to have newlines in node
+ names with the current implementation, but we specify it anyway, just
+ in case.)
+ 
+ @item
+ Leading and trailing spaces are removed.
+ 
+ @item
+ After the above has been applied, each remaining space character is
+ converted into a @samp{-} character.
+ 
+ @item
+ Other ASCII 7-bit characters are transformed into @samp{_00@var{xx}},
+ where @var{xx} is the ASCII character code in (lowercase) hexadecimal.
+ This includes @samp{_}, which is mapped to @samp{_005f}.
+ 
+ @item
+ If the node name does not begin with a letter, the literal string
+ @samp{g_t} is prefixed to the result.  (Due to the rules above, that
+ string can never occur otherwise; it is an arbitrary choice, standing
+ for ``GNU Texinfo''.)  This is necessary because XHTML requires that
+ identifiers begin with a letter.
+ 
+ @end enumerate
+ 
+ For example:
+ 
+ @example
+ @@node A  node --- with _'%
+ @result{} A-node-_002d_002d_002d-with-_005f_0027_0025
+ @end example
+ 
+ Notice in particular:
+ 
+ @itemize @bullet
+ @item @samp{_} @result{} @samp{_005f}
+ @item @samp{-} @result{} @samp{_002d}
+ @item @samp{A  node} @result{} @samp{A-node}
+ @end itemize
+ 
+ On case-folding computer systems, nodes differing only by case will be
+ mapped to the same file.  
+ 
+ In particular, as mentioned above, Top always maps to the file
+ @file{index.html}.  Thus, on a case-folding system, Top and a node
+ named `Index' will both be written to @file{index.html}.
+ 
+ Fortunately, the targets serve to distinguish these cases, since HTML
+ target names are always case-sensitive, independent of operating
+ system.
+ 
+ 
+ @node HTML Xref Command Expansion
+ @subsection HTML Cross-reference Command Expansion
+ @cindex HTML cross-reference command expansion
+ 
+ In standard Texinfo, node names may not contain @@-commands.
+ @command{makeinfo} has an option @option{--commands-in-node-names}
+ which partially supports it (@pxref{Invoking makeinfo}), but it is not
+ robust and not recommended.
+ 
+ Thus, @command{makeinfo} does not fully implement this part of the
+ HTML cross-reference algorithm, but it is documented here for the sake
+ of completeness.
+ 
+ First, comments are removed.
+ 
+ Next, any @code{@@value} commands (@pxref{set value}) and macro invocations
+ (@pxref{Invoking Macros}) are fully expanded.
+ 
+ Then, for the following commands, the command name and braces are removed,
+ the text of the argument is recursively transformed:
+ @example
+ @@asis @@b @@cite @@code @@command @@dfn @@dmn @@dotless
+ @@emph @@env @@file @@indicateurl @@kbd @@key
+ @@samp @@sc @@slanted @@strong @@t @@var @@w
+ @end example
+ 
+ @noindent For @code{@@sc}, any letters are capitalized.
+ 
+ The following commands are replaced by constant text, as shown.  If
+ any of these commands have non-empty arguments, as in
+ @code{@@TeX@{bad@}}, it is an error, and the result is unspecified.
+ `(space)' means a space character, `(nothing)' means the empty string,
+ etc.  The notation `U+@var{xxxx}' means Unicode code point @var{xxxx}
+ (in hex, as usual).  There are further transformations of many of
+ these expansions for the final file or target name, such as space
+ characters to @samp{-}, etc., according to the other rules.
+ 
+ @multitable @columnfractions .3 .5
+ @item @code{@@(newline)}        @tab (space)
+ @item @code{@@(space)}          @tab (space)
+ @item @code{@@(tab)}            @tab (space)
+ @item @code{@@!}                @tab @samp{!}
+ @item @code{@@*}                @tab (space)
+ @item @code{@@-}                @tab (nothing)
+ @item @code{@@.}                @tab @samp{.}
+ @item @code{@@:}                @tab (nothing)
+ @item @code{@@?}                @tab @samp{?}
+ @item @code{@@@@}               @tab @samp{@@}
+ @item @code{@@@{}               @tab @samp{@{}
+ @item @code{@@@}}               @tab @samp{@}}
+ @item @code{@@LaTeX}            @tab @samp{LaTeX}
+ @item @code{@@TeX}              @tab @samp{TeX}
+ @item @code{@@arrow}            @tab U+2192
+ @item @code{@@bullet}           @tab U+2022
+ @item @code{@@comma}            @tab @samp{,}
+ @item @code{@@copyright}        @tab U+00A9
+ @item @code{@@dots}             @tab U+2026
+ @item @code{@@enddots}          @tab @samp{...}
+ @item @code{@@equiv}            @tab U+2261
+ @item @code{@@error}            @tab @samp{error-->}
+ @item @code{@@euro}             @tab U+20AC
+ @item @code{@@exclamdown}       @tab U+00A1
+ @item @code{@@expansion}        @tab U+2192
+ @item @code{@@geq}              @tab U+2265
+ @item @code{@@leq}              @tab U+2264
+ @item @code{@@minus}            @tab U+2212
+ @item @code{@@ordf}             @tab U+00AA
+ @item @code{@@ordm}             @tab U+00BA
+ @item @code{@@point}            @tab U+2605
+ @item @code{@@pounds}           @tab U+00A3
+ @item @code{@@print}            @tab U+22A3
+ @item @code{@@questiondown}     @tab U+00BF
+ @item @code{@@registeredsymbol} @tab U+00AE
+ @item @code{@@result}           @tab U+21D2
+ @item @code{@@textdegree}       @tab U+00B0
+ @item @code{@@tie}              @tab (space)
+ @end multitable
+ 
+ Quotation mark commands are likewise replaced by their Unicode values
+ (@pxref{Inserting Quotation Marks}).
+ 
+ An @code{@@acronym} or @code{@@abbr} command is replaced by the first
+ argument, followed by the second argument in parentheses, if present.
+ @xref{acronym}.
+ 
+ An @code{@@email} command is replaced by the @var{text} argument if
+ present, else the address.  @xref{email}.
+ 
+ An @code{@@image} command is replaced by the filename (first)
+ argument.  @xref{Images}.
+ 
+ A @code{@@verb} command is replaced by its transformed argument.
+ @xref{verb}.
+ 
+ Any other command is an error, and the result is unspecified.
+ 
+ 
+ @node HTML Xref 8-bit Character Expansion
+ @subsection HTML Cross-reference 8-bit Character Expansion
+ @cindex HTML cross-reference 8-bit character expansion
+ @cindex 8-bit characters, in HTML cross-references
+ @cindex Expansion of 8-bit characters in HTML cross-references
+ @cindex Transliteration of 8-bit characters in HTML cross-references
+ 
+ Usually, characters other than plain 7-bit ASCII are transformed into
+ the corresponding Unicode code point(s) in Normalization Form C, which
+ uses precomposed characters where available.  (This is the
+ normalization form recommended by the W3C and other bodies.)  This
+ holds when that code point is 0xffff or less, as it almost always is.
+ 
+ These will then be further transformed by the rules above into the
+ string @samp{_@var{xxxx}}, where @var{xxxx} is the code point in hex.
+ 
+ For example, combining this rule and the previous section:
+ 
+ @example
+ @@node @@b@{A@} @@TeX@{@} @@u@{B@} @@point@{@}@@enddots@{@}
+ @result{} A-TeX-B_0306-_2605_002e_002e_002e
+ @end example
+ 
+ Notice: 1)@tie{}@code{@@enddots} expands to three periods which in
+ turn expands to three @samp{_002e}'s; 2)@tie{}@code{@@u@{B@}} is a `B'
+ with a breve accent, which does not exist as a pre-accented Unicode
+ character, therefore expands to @samp{B_0306} (B with combining
+ breve).
+ 
+ When the Unicode code point is above 0xffff, the transformation is
+ @samp{__@var{xxxxxx}}, that is, two leading underscores followed by
+ six hex digits.  Since Unicode has declared that their highest code
+ point is 0x10ffff, this is sufficient.  (We felt it was better to
+ define this extra escape than to always use six hex digits, since the
+ first two would nearly always be zeros.)
+ 
+ This method works fine if the node name consists mostly of ASCII
+ characters and contains only few 8-bit ones. If the document is
+ written in a language whose script is not based on the Latin alphabet
+ (such as, e.g. Ukrainian), it will create file names consisting
+ entirely of @samp{_@var{xxxx}} notations, which is inconvenient.
+ 
+ To handle such cases, @command{makeinfo} offers
+ @option{--transliterate-file-names} command line option. This option
+ enables @dfn{transliteration} of node names into ASCII characters for
+ the purposes of file name creation and referencing. The
+ transliteration is based on phonetic principle, which makes the
+ produced file names easily readable.
+ 
+ For the definition of Unicode Normalization Form C, see Unicode report
+ UAX#15, @uref{http://www.unicode.org/reports/tr15/}.  Many related
+ documents and implementations are available elsewhere on the web.
+ 
+ 
+ @node HTML Xref Mismatch
+ @subsection HTML Cross-reference Mismatch
+ @cindex HTML cross-reference mismatch
+ @cindex Mismatched HTML cross-reference source and target
+ 
+ As mentioned earlier (@pxref{HTML Xref Link Basics}), the generating
+ software has to guess whether a given manual being cross-referenced is
+ available in split or monolithic form---and, inevitably, it might
+ guess wrong.  However, it is possible when the referent manual itself
+ is generated, it is possible to handle at least some mismatches.
+ 
+ In the case where we assume the referent is split, but it is actually
+ available in mono, the only recourse would be to generate a
+ @file{manual/} subdirectory full of HTML files which redirect back to
+ the monolithic @file{manual.html}.  Since this is essentially the same
+ as a split manual in the first place, it's not very appealing.
+ 
+ On the other hand, in the case where we assume the referent is mono,
+ but it is actually available in split, it is possible to use
+ JavaScript to redirect from the putatively monolithic
+ @file{manual.html} to the different @file{manual/node.html} files.
+ Here's an example:
+ 
+ @example
+ function redirect() @{
+   switch (location.hash) @{
+     case "#Node1":
+       location.replace("manual/Node1.html#Node1"); break;
+     case "#Node2" :
+       location.replace("manual/Node2.html#Node2"); break;
+     @dots{}
+     default:;
+   @}
+ @}
+ @end example
+ 
+ Then, in the @code{<body>} tag of @file{manual.html}:
+ 
+ @example
+ <body onLoad="redirect();">
+ @end example
+ 
+ Once again, this is something the software which generated the
+ @emph{referent} manual has to do in advance, it's not something the
+ software generating the actual cross-reference in the present manual
+ can control.
+ 
+ Ultimately, we hope to allow for an external configuration file to
+ control which manuals are available from where, and how.
+ 
+ 
+ @ignore
+ -- not yet --
+ 
+ external information
+ --------------------
+ 
+ The information for the reference is searched in the file
+ `htmlxref.cnf' present in the following directories:
+ <srcdir>/.texinfo/, ~/.texinfo/,  SYSCONFDIR/texinfo/,
+ DATADIR/texinfo/
+ The first match should be used.
+ 
+ The file is line-oriented, with the following format:
+   <manualname> <whitespace> <keyword> <whitespace> <urlprefix>
+ with <keyword> being "mono" or "split". Thus
+ texinfo split http://www.gnu.org/software/texinfo/manual/texinfo/html_node/
+ texinfo mono http://www.gnu.org/software/texinfo/manual/texinfo/texinfo.html
+ 
+ If the keyword is 'split', that is the target is split, the urlprefix gives 
+ the directory and host name.
+ If the keyword is 'mono', that is the target is mono, the urlprefix gives 
+ directory, host and file name.
+ 
+ '#' followed by a space begins comments. '#' followed by another character
+ cannot begin comments as there are # in urls.
+ 
+ @end ignore
+ 
+ 
+ @node Command List
+ @appendix @@-Command List
+ @cindex Alphabetical @@-command list
+ @cindex List of  @@-commands
+ @cindex @@-command list
+ @cindex Reference to @@-commands
+ 
+ Here is an alphabetical list of the @@-commands in Texinfo.  Square
+ brackets, @t{[}@w{ }@t{]}, indicate optional arguments; an ellipsis,
+ @samp{@dots{}}, indicates repeated text.
+ 
+ More specifics on the general syntax of different @@-commands are
+ given in the section below.
+ 
+ @menu
+ * Command Syntax::    General syntax for varieties of @@-commands.
+ @end menu
+ 
+ @sp 1
+ @table @code
+ @item @@@var{whitespace}
+ An @code{@@} followed by a space, tab, or newline produces a normal,
+ stretchable, interword space.  @xref{Multiple Spaces}.
+ 
+ @item @@!
+ Produce an exclamation point that ends a sentence (usually after an
+ end-of-sentence capital letter).  @xref{Ending a Sentence}.
+ 
+ @item @@"
+ @itemx @@'
+ Generate an umlaut or acute accent, respectively, over the next
+ character, as in @"o and @'o.  @xref{Inserting Accents}.
+ 
+ @item @@*
+ Force a line break.  @xref{Line Breaks}.
+ 
+ @item @@,@{@var{c}@}
+ Generate a cedilla accent under @var{c}, as in @,{c}.  @xref{Inserting
+ Accents}.
+ 
+ @item @@-
+ Insert a discretionary hyphenation point.  @xref{- and hyphenation}.
+ 
+ @item @@.
+ Produce a period that ends a sentence (usually after an
+ end-of-sentence capital letter).  @xref{Ending a Sentence}.
+ 
+ @item @@/
+ Produces no output, but allows a line break.  @xref{Line Breaks}.
+ 
+ @item @@:
+ Tell @TeX{} to refrain from inserting extra whitespace after an
+ immediately preceding period, question mark, exclamation mark, or
+ colon, as @TeX{} normally would.  @xref{Not Ending a Sentence}.
+ 
+ @item @@=
+ Generate a macron (bar) accent over the next character, as in @=o.
+ @xref{Inserting Accents}.
+ 
+ @item @@?
+ Produce a question mark that ends a sentence (usually after an
+ end-of-sentence capital letter).  @xref{Ending a Sentence}.
+ 
+ @item @@@@
+ Stands for an at sign, @samp{@@}.
+ @xref{Atsign Braces Comma, , Inserting @@ and @{@} and @comma{}}.
+ 
+ @item @@\
+ Stands for a backslash (@samp{\}) inside @code{@@math}.
+ @xref{math,,@code{math}}.
+ 
+ @item @@^
+ @itemx @@`
+ Generate a circumflex (hat) or grave accent, respectively, over the next
+ character, as in @^o and @`e.
+ @xref{Inserting Accents}.
+ 
+ @item @@@{
+ Stands for a left brace, @samp{@{}.
+ @xref{Atsign Braces Comma, , Inserting @@ and @{@} and @comma{}}.
+ 
+ @item @@@}
+ Stands for a right-hand brace, @samp{@}}.@*
+ @xref{Atsign Braces Comma, , Inserting @@ and @{@} and @comma{}}.
+ 
+ @item @@~
+ Generate a tilde accent over the next character, as in @~N.
+ @xref{Inserting Accents}.
+ 
+ @item @@AA@{@}
+ @itemx @@aa@{@}
+ Generate the uppercase and lowercase Scandinavian A-ring letters,
+ respectively: @AA{}, @aa{}.  @xref{Inserting Accents}.
+ 
+ @item @@abbr@{@var{abbreviation}@}
+ Indicate a general abbreviation, such as `Comput.'.  @xref{abbr,,
+ @code{abbr}}.
+ 
+ @item @@acronym@{@var{acronym}@}
+ Indicate an acronym in all capital letters, such as `NASA'.
+ @xref{acronym,, @code{acronym}}.
+ 
+ @item @@AE@{@}
+ @itemx @@ae@{@}
+ Generate the uppercase and lowercase AE ligatures, respectively:
+ @AE{}, @ae{}.  @xref{Inserting Accents}.
+ 
+ @itemx @@afivepaper
+ Change page dimensions for the A5 paper size.  @xref{A4 Paper}.
+ 
+ @item @@afourlatex
+ @itemx @@afourpaper
+ @itemx @@afourwide
+ Change page dimensions for the A4 paper size.  @xref{A4 Paper}.
+ 
+ @item @@alias @var{new}=@var{existing}
+ Make the command @samp{@@@var{new}} a synonym for the existing command
+ @samp{@@@var{existing}}.  @xref{alias}.
+ 
+ @item @@anchor@{@var{name}@}
+ Define @var{name} as the current location for use as a cross-reference
+ target.  @xref{anchor,, @code{@@anchor}}.
+ 
+ @item @@appendix @var{title}
+ Begin an appendix.  The title appears in the table of contents.  In
+ Info, the title is underlined with asterisks.  @xref{unnumbered &
+ appendix, , The @code{@@unnumbered} and @code{@@appendix} Commands}.
+ 
+ @item @@appendixsec @var{title}
+ @itemx @@appendixsection @var{title}
+ Begin an appendix section within an appendix.  The section title
+ appears in the table of contents.  In Info, the title is underlined
+ with equal signs.  @code{@@appendixsection} is a longer spelling of
+ the @code{@@appendixsec} command.  @xref{unnumberedsec appendixsec
+ heading, , Section Commands}.
+ 
+ @item @@appendixsubsec @var{title}
+ Begin an appendix subsection.  The title appears in the table of
+ contents.  In Info, the title is underlined with hyphens.
+ @xref{unnumberedsubsec appendixsubsec subheading, , Subsection
+ Commands}.
+ 
+ @item @@appendixsubsubsec @var{title}
+ Begin an appendix subsubsection.  The title appears in the table of
+ contents.  In Info, the title is underlined with periods.
+ @xref{subsubsection,, The `subsub' Commands}.
+ 
+ @item @@arrow@{@}
+ Generate a right arrow glyph: @samp{@arrow{}}.  Used by default
+ for @code{@@click}.  @xref{Click Sequences}.
+ 
+ @item @@asis
+ Used following @code{@@table}, @code{@@ftable}, and @code{@@vtable} to
+ print the table's first column without highlighting (``as is'').
+ @xref{Two-column Tables}.
+ 
+ @item @@author @var{author}
+ Typeset @var{author} flushleft and underline it.  @xref{title
+ subtitle author, , The @code{@@title} and @code{@@author}
+ Commands}.@refill
+ 
+ @item @@b@{@var{text}@}
+ Set @var{text} in a @b{bold} font.  No effect in Info.  @xref{Fonts}.
+ 
+ @ignore
+ @item @@br
+ Force a paragraph break.  If used within a line, follow @code{@@br}
+ with braces.  @xref{br, , @code{@@br}}.@refill
+ @end ignore
+ 
+ @item @@bullet@{@}
+ Generate a large round dot, @bullet{} (@samp{*} in Info).  Often used
+ with @code{@@table}.  @xref{bullet, , @code{@@bullet}}.
+ 
+ @item @@bye
+ Stop formatting a file.  The formatters do not see anything in the 
+ input file following @code{@@bye}.  @xref{Ending a File}.
+ 
+ @item @@c @var{comment}
+ Begin a comment in Texinfo.  The rest of the line does not appear in
+ any output.  A synonym for
+ @code{@@comment}.  @xref{Comments}.
+ 
+ @item @@caption
+ Define the full caption for a @code{@@float}.  @xref{caption shortcaption}.
+ 
+ @item @@cartouche
+ Highlight an example or quotation by drawing a box with rounded
+ corners around it.  Pair with @code{@@end cartouche}.  No effect in
+ Info.  @xref{cartouche, , Drawing Cartouches Around Examples}.)@refill
+ 
+ @item @@center @var{line-of-text}
+ Center the line of text following the command.
+ @xref{titlefont center sp, , @code{@@center}}.@refill
+ 
+ @item @@centerchap @var{line-of-text}
+ Like @code{@@chapter}, but centers the chapter title.  @xref{chapter,,
+ @code{@@chapter}}.
+ 
+ @item @@chapheading @var{title}
+ Print an unnumbered chapter-like heading, but omit from the table of
+ contents.  In Info, the title is underlined with asterisks.
+ @xref{majorheading & chapheading, , @code{@@majorheading} and
+ @code{@@chapheading}}.
+ 
+ @item @@chapter @var{title}
+ Begin a numbered chapter.  The chapter title appears in the table of
+ contents.  In Info, the title is underlined with asterisks.
+ @xref{chapter, , @code{@@chapter}}.
+ 
+ @item @@cindex @var{entry}
+ Add @var{entry} to the index of concepts.  @xref{Index Entries, ,
+ Defining the Entries of an Index}.@refill
+ 
+ @item @@cite@{@var{reference}@}
+ Highlight the name of a book or other reference that has no companion
+ Info file.  @xref{cite, , @code{@@cite}}.
+ 
+ @item @@click@{@}
+ Represent a single ``click'' in a GUI.  Used within
+ @code{@@clicksequence}.  @xref{Click Sequences}.
+ 
+ @item @@clicksequence@{@var{action} @@click@{@} @var{action}@}
+ Represent a sequence of clicks in a GUI.  @xref{Click Sequences}.
+ 
+ @item @@clickstyle @@@var{cmd}
+ Execute @@@var{cmd} for each @code{@@click}; the default is
+ @code{@@arrow}.  The usual following empty braces on @@@var{cmd} are
+ omitted.  @xref{Click Sequences}.
+ 
+ @item @@clear @var{flag}
+ Unset @var{flag}, preventing the Texinfo formatting commands from
+ formatting text between subsequent pairs of @code{@@ifset @var{flag}}
+ and @code{@@end ifset} commands, and preventing
+ @code{@@value@{@var{flag}@}} from expanding to the value to which
+ @var{flag} is set.
+ @xref{set clear value, , @code{@@set} @code{@@clear} @code{@@value}}.@refill
+ 
+ @item @@code@{@var{sample-code}@}
+ Indicate an expression, a syntactically complete token of a program,
+ or a program name.  Unquoted in Info output.  @xref{code, ,
+ @code{@@code}}.
+ 
+ @item @@comma@{@}
+ Insert a comma `,' character; only needed when a literal comma would
+ be taken as an argument separator.  @xref{Inserting a Comma}.
+ 
+ @item @@command@{@var{command-name}@}
+ Indicate a command name, such as @command{ls}.
+ @xref{command,, @code{@@command}}.
+ 
+ @item @@comment @var{comment}
+ Begin a comment in Texinfo.  The rest of the line does not appear in
+ any output.  A synonym for @code{@@c}.
+ @xref{Comments}.
+ 
+ @item @@contents
+ Print a complete table of contents.  Has no effect in Info, which uses
+ menus instead.  @xref{Contents, , Generating a Table of
+ Contents}.@refill
+ 
+ @item @@copyright@{@}
+ Generate the copyright symbol @copyright{}.  @xref{copyright symbol,,
+ @code{@@copyright@{@}}}.
+ 
+ @ignore
+ @item @@ctrl@{@var{ctrl-char}@}
+ Describe an ASCII control character.  Insert actual control character
+ into Info file.  @xref{ctrl, , @code{@@ctrl}}.
+ @end ignore
+ 
+ @item @@defcodeindex @var{index-name}
+ Define a new index and its indexing command.  Print entries in an
+ @code{@@code} font.  @xref{New Indices, , Defining New Indices}.
+ 
+ @item @@defcv @var{category} @var{class} @var{name}
+ @itemx @@defcvx @var{category} @var{class} @var{name}
+ Format a description for a variable associated with a class in
+ object-oriented programming.  Takes three arguments: the category of
+ thing being defined, the class to which it belongs, and its name.
+ @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@deffn @var{category} @var{name} @var{arguments}@dots{}
+ @itemx @@deffnx @var{category} @var{name} @var{arguments}@dots{}
+ Format a description for a function, interactive command, or similar
+ entity that may take arguments.  @code{@@deffn} takes as arguments the
+ category of entity being described, the name of this particular
+ entity, and its arguments, if any.  @xref{Definition Commands}.@refill
+ 
+ @item @@defindex @var{index-name}
+ Define a new index and its indexing command.  Print entries in a roman
+ font.  @xref{New Indices, , Defining New Indices}.@refill
+ 
+ @item @@definfoenclose @var{newcmd}, @var{before}, @var{after}
+ Must be used within @code{@@ifinfo}; create a new command
+ @code{@@@var{newcmd}} for Info that marks text by enclosing it in
+ strings that precede and follow the text.  @xref{definfoenclose}.
+ 
+ @item @@defivar @var{class} @var{instance-variable-name}
+ @itemx @@defivarx @var{class} @var{instance-variable-name}
+ Format a description for an instance variable in object-oriented
+ programming.  The command is equivalent to @samp{@@defcv @{Instance
+ Variable@} @dots{}}.  @xref{Definition Commands}, and @ref{deffnx,,
+ Def Cmds in Detail}.
+ 
+ @item @@defmac @var{macroname} @var{arguments}@dots{}
+ @itemx @@defmacx @var{macroname} @var{arguments}@dots{}
+ Format a description for a macro; equivalent to @samp{@@deffn Macro
+ @dots{}}.  @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in
+ Detail}.
+ 
+ @item @@defmethod @var{class} @var{method-name} @var{arguments}@dots{}
+ @itemx @@defmethodx @var{class} @var{method-name} @var{arguments}@dots{}
+ Format a description for a method in object-oriented programming;
+ equivalent to @samp{@@defop Method @dots{}}.  @xref{Definition
+ Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@defop @var{category} @var{class} @var{name} @var{arguments}@dots{}
+ @itemx @@defopx @var{category} @var{class} @var{name} @var{arguments}@dots{}
+ Format a description for an operation in object-oriented programming.
+ @code{@@defop} takes as arguments the name of the category of
+ operation, the name of the operation's class, the name of the
+ operation, and its arguments, if any.  @xref{Definition Commands}, and
+ @ref{Abstract Objects}.
+ 
+ @item @@defopt @var{option-name}
+ @itemx @@defoptx @var{option-name}
+ Format a description for a user option; equivalent to @samp{@@defvr
+ @{User Option@} @dots{}}.  @xref{Definition Commands}, and
+ @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@defspec @var{special-form-name} @var{arguments}@dots{}
+ @itemx @@defspecx @var{special-form-name} @var{arguments}@dots{}
+ Format a description for a special form; equivalent to @samp{@@deffn
+ @{Special Form@} @dots{}}.  @xref{Definition Commands}, and
+ @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@deftp @var{category} @var{name-of-type} @var{attributes}@dots{}
+ @itemx @@deftpx @var{category} @var{name-of-type} @var{attributes}@dots{}
+ Format a description for a data type; its arguments are the category,
+ the name of the type (e.g., @samp{int}) , and then the names of
+ attributes of objects of that type.  @xref{Definition Commands}, and
+ @ref{Data Types}.
+ 
+ @item @@deftypecv @var{category} @var{class} @var{data-type} @var{name}
+ @itemx @@deftypecvx @var{category} @var{class} @var{data-type} @var{name}
+ Format a description for a typed class variable in object-oriented programming.
+ @xref{Definition Commands}, and @ref{Abstract Objects}.
+ 
+ @item @@deftypefn @var{category} @var{data-type} @var{name} @var{arguments}@dots{}
+ @itemx @@deftypefnx @var{category} @var{data-type} @var{name} @var{arguments}@dots{}
+ Format a description for a function or similar entity that may take
+ arguments and that is typed.  @code{@@deftypefn} takes as arguments the
+ category of entity being described, the type, the name of the
+ entity, and its arguments, if any.  @xref{Definition Commands}, and
+ @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@deftypefun @var{data-type} @var{function-name} @var{arguments}@dots{}
+ @itemx @@deftypefunx @var{data-type} @var{function-name} @var{arguments}@dots{}
+ Format a description for a function in a typed language.
+ The command is equivalent to @samp{@@deftypefn Function @dots{}}.
+ @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@deftypeivar @var{class} @var{data-type} @var{variable-name}
+ @itemx @@deftypeivarx @var{class} @var{data-type} @var{variable-name}
+ Format a description for a typed instance variable in object-oriented
+ programming. @xref{Definition Commands}, and @ref{Abstract Objects}.
+ 
+ @item @@deftypemethod @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{}
+ @itemx @@deftypemethodx @var{class} @var{data-type} @var{method-name} @var{arguments}@dots{}
+ Format a description for a typed method in object-oriented programming.
+ @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@deftypeop @var{category} @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
+ @itemx @@deftypeopx @var{category} @var{class} @var{data-type} @var{name} @var{arguments}@dots{}
+ Format a description for a typed operation in object-oriented programming.
+ @xref{Definition Commands}, and @ref{Abstract Objects}.
+ 
+ @item @@deftypevar @var{data-type} @var{variable-name}
+ @itemx @@deftypevarx @var{data-type} @var{variable-name}
+ Format a description for a variable in a typed language.  The command is
+ equivalent to @samp{@@deftypevr Variable @dots{}}.  @xref{Definition
+ Commands}, and @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@deftypevr @var{category} @var{data-type} @var{name}
+ @itemx @@deftypevrx @var{category} @var{data-type} @var{name}
+ Format a description for something like a variable in a typed
+ language---an entity that records a value.  Takes as arguments the
+ category of entity being described, the type, and the name of the
+ entity.  @xref{Definition Commands}, and @ref{deffnx,, Def Cmds in
+ Detail}.
+ 
+ @item @@defun @var{function-name} @var{arguments}@dots{}
+ @itemx @@defunx @var{function-name} @var{arguments}@dots{}
+ Format a description for a function; equivalent to
+ @samp{@@deffn Function @dots{}}.  @xref{Definition Commands}, and
+ @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@defvar @var{variable-name}
+ @itemx @@defvarx @var{variable-name}
+ Format a description for a variable; equivalent to @samp{@@defvr
+ Variable @dots{}}.  @xref{Definition Commands}, and @ref{deffnx,, Def
+ Cmds in Detail}.
+ 
+ @item @@defvr @var{category} @var{name}
+ @itemx @@defvrx @var{category} @var{name}
+ Format a description for any kind of variable.  @code{@@defvr} takes
+ as arguments the category of the entity and the name of the entity.
+ @xref{Definition Commands},
+ and @ref{deffnx,, Def Cmds in Detail}.
+ 
+ @item @@detailmenu
+ Mark the (optional) detailed node listing in a master menu.
+ @xref{Master Menu Parts}.
+ 
+ @item @@dfn@{@var{term}@}
+ Indicate the introductory or defining use of a term.  @xref{dfn, ,
+ @code{@@dfn}}.
+ 
+ @item @@dircategory @var{dirpart}
+ Specify a part of the Info directory menu where this file's entry should
+ go.  @xref{Installing Dir Entries}.
+ 
+ @item @@direntry
+ Begin the Info directory menu entry for this file.  Pair with
+ @code{@@end direntry}.  @xref{Installing Dir Entries}.
+ 
+ @item @@display
+ Begin a kind of example.  Like @code{@@example} (indent text, do not
+ fill), but do not select a new font.  Pair with @code{@@end display}.
+ @xref{display, , @code{@@display}}.
+ 
+ @item @@dmn@{@var{dimension}@}
+ Format a unit of measure, as in 12@dmn{pt}.  Causes @TeX{} to insert a
+ thin space before @var{dimension}.  No effect in Info.
+ @xref{dmn, , @code{@@dmn}}.
+ 
+ @item @@docbook
+ Enter Docbook completely.  Pair with @code{@@end docbook}.  @xref{Raw
+ Formatter Commands}.
+ 
+ @item @@documentdescription
+ Set the document description text, included in the HTML output.  Pair
+ with @code{@@end documentdescription}.  @xref{documentdescription,,
+ @code{@@documentdescription}}.
+ 
+ @item @@documentencoding @var{enc}
+ Declare the input encoding to be @var{enc}.
+ @xref{documentencoding,, @code{@@documentencoding}}.
+ 
+ @item @@documentlanguage @var{CC}
+ Declare the document language as the two-character ISO-639 abbreviation
+ @var{CC}.  @xref{documentlanguage,, @code{@@documentlanguage}}.
+ 
+ @item @@dotaccent@{@var{c}@}
+ Generate a dot accent over the character @var{c}, as in @dotaccent{o}.
+ @xref{Inserting Accents}.
+ 
+ @item @@dots@{@}
+ Generate an ellipsis, @samp{@dots{}}.
+ @xref{dots, , @code{@@dots}}.@refill
+ 
+ @item @@email@{@var{address}[, @var{displayed-text}]@}
+ Indicate an electronic mail address.
+ @xref{email, , @code{@@email}}.
+ 
+ @item @@emph@{@var{text}@}
+ Emphasize @var{text}, by using @emph{italics} where possible, and
+ enclosing in asterisks in Info.  @xref{Emphasis, , Emphasizing Text}.
+ 
+ @item @@end @var{environment}
+ Ends @var{environment}, as in @samp{@@end example}.  @xref{Formatting
+ Commands,,@@-commands}.
+ 
+ @item @@env@{@var{environment-variable}@}
+ Indicate an environment variable name, such as @env{PATH}.
+ @xref{env,, @code{@@env}}.
+ 
+ @item @@enddots@{@}
+ Generate an end-of-sentence ellipsis, like this: @enddots{}
+ @xref{dots,,@code{@@dots@{@}}}.
+ 
+ @item @@enumerate [@var{number-or-letter}]
+ Begin a numbered list, using @code{@@item} for each entry.
+ Optionally, start list with @var{number-or-letter}.  Pair with
+ @code{@@end enumerate}.  @xref{enumerate, ,
+ @code{@@enumerate}}.@refill
+ 
+ @item @@equiv@{@}
+ Indicate to the reader the exact equivalence of two forms with a
+ glyph: @samp{@equiv{}}.  @xref{Equivalence}.@refill
+ 
+ @item @@euro@{@}
+ Generate the Euro currency sign.
+ @xref{euro,,@code{@@euro@{@}}}.
+ 
+ @item @@error@{@}
+ Indicate to the reader with a glyph that the following text is
+ an error message: @samp{@error{}}.  @xref{Error Glyph}.@refill
+ 
+ @item  @@evenfooting [@var{left}] @@| [@var{center}] @@| [@var{right}]
+ @itemx @@evenheading [@var{left}] @@| [@var{center}] @@| [@var{right}]
+ Specify page footings resp.@: headings for even-numbered (left-hand)
+ pages.  @xref{Custom Headings, ,
+ How to Make Your Own Headings}.@refill
+ 
+ @item @@everyfooting [@var{left}] @@| [@var{center}] @@| [@var{right}]
+ @itemx @@everyheading [@var{left}] @@| [@var{center}] @@| [@var{right}]
+ Specify page footings resp.@: headings for every page.  Not relevant to
+ Info.  @xref{Custom Headings, , How to Make Your Own Headings}.
+ 
+ @item @@example
+ Begin an example.  Indent text, do not fill, and select fixed-width
+ font.  Pair with @code{@@end example}.  @xref{example,, @code{@@example}}.
+ 
+ @item @@exampleindent @var{indent}
+ Indent example-like environments by @var{indent} number of spaces
+ (perhaps 0).  @xref{exampleindent,, Paragraph Indenting}.
+ 
+ @item @@exclamdown@{@}
+ Generate an upside-down exclamation point.  @xref{Inserting Accents}.
+ 
+ @item @@exdent @var{line-of-text}
+ Remove any indentation a line might have.  @xref{exdent, ,
+ Undoing the Indentation of a Line}.@refill
+ 
+ @item @@expansion@{@}
+ Indicate the result of a macro expansion to the reader with a special
+ glyph: @samp{@expansion{}}.
+ @xref{expansion, , @expansion{} Indicating an Expansion}.@refill
+ 
+ @item @@file@{@var{filename}@}
+ Highlight the name of a file, buffer, node, directory, etc.  @xref{file, ,
+ @code{@@file}}.
+ 
+ @item @@finalout
+ Prevent @TeX{} from printing large black warning rectangles beside
+ over-wide lines.  @xref{Overfull hboxes}.@refill
+ 
+ @item @@findex @var{entry}
+ Add @var{entry} to the index of functions.  @xref{Index Entries, ,
+ Defining the Entries of an Index}.@refill
+ 
+ @item @@float
+ Environment to define floating material.  Pair with @code{@@end float}.
+ @xref{Floats}.
+ 
+ @item @@flushleft
+ @itemx @@flushright
+ Do not fill text; left (right) justify every line while leaving the
+ right (left) end ragged.  Leave font as is.  Pair with @code{@@end
+ flushleft} (@code{@@end flushright}).  @code{@@flushright} analogous.
+ @xref{flushleft & flushright, , @code{@@flushleft} and
+ @code{@@flushright}}.
+ 
+ @item @@footnote@{@var{text-of-footnote}@}
+ Enter a footnote.  Footnote text is printed at the bottom of the page
+ by @TeX{}; Info may format in either `End' node or `Separate' node style.
+ @xref{Footnotes}.
+ 
+ @item @@footnotestyle @var{style}
+ Specify an Info file's footnote style, either @samp{end} for the end
+ node style or @samp{separate} for the separate node style.
+ @xref{Footnotes}.
+ 
+ @item @@format
+ Begin a kind of example.  Like @code{@@display}, but do not indent.
+ Pair with @code{@@end format}.  @xref{example,, @code{@@example}}.
+ 
+ @item @@ftable @var{formatting-command}
+ Begin a two-column table, using @code{@@item} for each entry.
+ Automatically enter each of the items in the first column into the
+ index of functions.  Pair with @code{@@end ftable}.  The same as
+ @code{@@table}, except for indexing.  @xref{ftable vtable, ,
+ @code{@@ftable} and @code{@@vtable}}.@refill
+ 
+ @item @@geq@{@}
+ Generate a greater-than-or-equal sign, `@geq{}'.  @xref{geq leq}.
+ 
+ @item @@group
+ Disallow page breaks within following text.  Pair with @code{@@end
+ group}.  Ignored in Info.  @xref{group, , @code{@@group}}.
+ 
+ @item @@H@{@var{c}@}
+ Generate the long Hungarian umlaut accent over @var{c}, as in @H{o}.
+ 
+ @item @@heading @var{title}
+ Print an unnumbered section-like heading, but omit from the table of
+ contents.  In Info, the title is underlined with equal signs.
+ @xref{unnumberedsec appendixsec heading, , Section Commands}.
+ 
+ @item @@headings @var{on-off-single-double}
+ Turn page headings on or off, and/or specify single-sided or double-sided
+ page headings for printing.  @xref{headings on off, , The
+ @code{@@headings} Command}.
+ 
+ @item @@headitem
+ Begin a heading row in a multitable.  @xref{Multitable Rows}.
+ 
+ @item @@html
+ Enter HTML completely.  Pair with @code{@@end html}.  @xref{Raw
+ Formatter Commands}.
+ 
+ @item @@hyphenation@{@var{hy-phen-a-ted words}@}
+ Explicitly define hyphenation points.  @xref{- and hyphenation,,
+ @code{@@-} and @code{@@hyphenation}}.
+ 
+ @item @@i@{@var{text}@}
+ Set @var{text} in an @i{italic} font.  No effect in Info.  @xref{Fonts}.
+ 
+ @item @@ifclear @var{txivar}
+ If the Texinfo variable @var{txivar} is not set, format the following
+ text.  Pair with @code{@@end ifclear}.  @xref{set clear value, ,
+ @code{@@set} @code{@@clear} @code{@@value}}.
+ 
+ @item @@ifdocbook
+ @itemx @@ifhtml
+ @itemx @@ifinfo
+ Begin text that will appear only in the given output format.
+ @code{@@ifinfo} output appears in both Info and (for historical
+ compatibility) plain text output.  Pair with @code{@@end ifdocbook}
+ resp.@: @code{@@end ifhtml} resp.@: @code{@@end ifinfo}.
+ @xref{Conditionals}.
+ 
+ @item @@ifnotdocbook
+ @itemx @@ifnothtml
+ @itemx @@ifnotplaintext
+ @itemx @@ifnottex
+ @itemx @@ifnotxml
+ Begin text to be ignored in one output format but not the others.
+ @code{@@ifnothtml} text is omitted from HTML output, etc.  Pair with
+ the corresponding @code{@@end ifnot@var{format}}.
+ @xref{Conditionals}.
+ 
+ @itemx @@ifnotinfo
+ Begin text to appear in output other than Info and (for historical
+ compatibility) plain text.  Pair with @code{@@end ifnotinfo}.
+ @xref{Conditionals}.
+ 
+ @item @@ifplaintext
+ Begin text that will appear only in the plain text output.
+ Pair with @code{@@end ifplaintext}.  @xref{Conditionals}.
+ 
+ @item @@ifset @var{txivar}
+ If the Texinfo variable @var{txivar} is set, format the following
+ text.  Pair with @code{@@end ifset}.  @xref{set clear value, ,
+ @code{@@set} @code{@@clear} @code{@@value}}.
+ 
+ @item @@iftex
+ Begin text to appear only in the @TeX{} output.  Pair with @code{@@end
+ iftex}.  @xref{Conditionals, , Conditionally Visible Text}.@refill
+ 
+ @item @@ifxml
+ Begin text that will appear only in the XML output.  Pair with
+ @code{@@end ifxml}.  @xref{Conditionals}.
+ 
+ @item @@ignore
+ Begin text that will not appear in any output.  Pair with @code{@@end
+ ignore}.  @xref{Comments, , Comments and Ignored Text}.
+ 
+ @item @@image@{@var{filename}, [@var{width}], [@var{height}], [@var{alt}], [@var{ext}]@}
+ Include graphics image in external @var{filename} scaled to the given
+ @var{width} and/or @var{height}, using @var{alt} text and looking for
+ @samp{@var{filename}.@var{ext}} in HTML.  @xref{Images}.
+ 
+ @item @@include @var{filename}
+ Read the contents of Texinfo source file @var{filename}.  @xref{Include Files}.
+ 
+ @item @@indicateurl@{@var{indicateurl}@}
+ Indicate text that is a uniform resource locator for the World Wide
+ Web.  @xref{indicateurl, , @code{@@indicateurl}}.
+ 
+ @item @@inforef@{@var{node-name}, [@var{entry-name}], @var{info-file-name}@}
+ Make a cross reference to an Info file for which there is no printed
+ manual.  @xref{inforef, , Cross references using
+ @code{@@inforef}}.@refill
+ 
+ @item \input @var{macro-definitions-file}
+ Use the specified macro definitions file.  This command is used only
+ in the first line of a Texinfo file to cause @TeX{} to make use of the
+ @file{texinfo} macro definitions file.  The backslash in @code{\input}
+ is used instead of an @code{@@} because @TeX{} does not
+ recognize @code{@@} until after it has read the definitions file.
+ @xref{Texinfo File Header}.
+ 
+ @item @@item
+ Indicate the beginning of a marked paragraph for @code{@@itemize} and
+ @code{@@enumerate}; indicate the beginning of the text of a first column
+ entry for @code{@@table}, @code{@@ftable}, and @code{@@vtable}.
+ @xref{Lists and Tables}.
+ 
+ @item @@itemize @var{mark-generating-character-or-command}
+ Begin an unordered list: indented paragraphs with a mark, such as
+ @code{@@bullet}, inside the left margin at the beginning of each
+ item.  Pair with @code{@@end itemize}.  @xref{itemize, ,
+ @code{@@itemize}}.
+ 
+ @item @@itemx
+ Like @code{@@item} but do not generate extra vertical space above the
+ item text.  Thus, when several items have the same description, use
+ @code{@@item} for the first and @code{@@itemx} for the others.
+ @xref{itemx, , @code{@@itemx}}.
+ 
+ @item @@kbd@{@var{keyboard-characters}@}
+ Indicate characters of input to be typed by users.  @xref{kbd, ,
+ @code{@@kbd}}.
+ 
+ @item @@kbdinputstyle @var{style}
+ Specify when @code{@@kbd} should use a font distinct from
+ @code{@@code}.  @xref{kbd, , @code{@@kbd}}.
+ 
+ @item @@key@{@var{key-name}@}
+ Indicate the name of a key on a keyboard.  @xref{key, , @code{@@key}}.
+ 
+ @item @@kindex @var{entry}
+ Add @var{entry} to the index of keys.
+ @xref{Index Entries, , Defining the Entries of an Index}.@refill
+ 
+ @item @@L@{@}
+ @itemx @@l@{@}
+ Generate the uppercase and lowercase Polish suppressed-L letters,
+ respectively: @L{}, @l{}.
+ 
+ @item @@LaTeX@{@}
+ Generate the @LaTeX{} logo.  @xref{tex, , @TeX{} and @LaTeX{}}.
+ 
+ @item @@leq@{@}
+ Generate a less-than-or-equal sign, `@leq{}'.  @xref{geq leq}.
+ 
+ @item @@lisp
+ Begin an example of Lisp code.  Indent text, do not fill, and select
+ fixed-width font.  Pair with @code{@@end lisp}.  @xref{lisp, , @code{@@lisp}}.
+ 
+ @item @@listoffloats
+ Produce a table-of-contents-like listing of @code{@@float}s.
+ @xref{listoffloats}.
+ 
+ @item @@lowersections
+ Change subsequent chapters to sections, sections to subsections, and so
+ on. @xref{Raise/lower sections, , @code{@@raisesections} and
+ @code{@@lowersections}}.@refill
+ 
+ @item @@macro @var{macroname} @{@var{params}@}
+ Define a new Texinfo command @code{@@@var{macroname}@{@var{params}@}}.
+ Pair with @code{@@end macro}.  @xref{Defining Macros}.
+ 
+ @item @@majorheading @var{title}
+ Print an unnumbered chapter-like heading, but omit from
+ the table of contents.  This generates more vertical whitespace before
+ the heading than the @code{@@chapheading} command.  @xref{majorheading
+ & chapheading, , @code{@@majorheading} and @code{@@chapheading}}.
+ 
+ @item @@math@{@var{mathematical-expression}@}
+ Format a mathematical expression.
+ @xref{math, , @code{@@math}: Inserting Mathematical Expressions}.
+ 
+ @item @@menu
+ Mark the beginning of a menu of nodes.  No effect in a printed manual.
+ Pair with @code{@@end menu}.  @xref{Menus}.
+ 
+ @item @@minus@{@}
+ Generate a minus sign, `@minus{}'.  @xref{minus, , @code{@@minus}}.
+ 
+ @item @@multitable @var{column-width-spec}
+ Begin a multi-column table.  Begin each row with @code{@@item} or
+ @code{@@headitem}, and separate columns with @code{@@tab}.  Pair with
+ @code{@@end multitable}.  @xref{Multitable Column Widths}.
+ 
+ @item @@need @var{n}
+ Start a new page in a printed manual if fewer than @var{n} mils
+ (thousandths of an inch) remain on the current page.  @xref{need, ,
+ @code{@@need}}.
+ 
+ @item @@node @var{name}, @var{next}, @var{previous}, @var{up}
+ Begin a new node.  @xref{node, , @code{@@node}}.
+ 
+ @item @@noindent
+ Prevent text from being indented as if it were a new paragraph.
+ @xref{noindent, , @code{@@noindent}}.
+ 
+ @item @@novalidate
+ Suppress validation of node references and omit creation of auxiliary
+ files with @TeX{}.  Use before @code{@@setfilename}.  @xref{Pointer
+ Validation}.
+ 
+ @item @@O@{@}
+ @itemx @@o@{@}
+ Generate the uppercase and lowercase O-with-slash letters, respectively:
+ @O{}, @o{}.
+ 
+ @item  @@oddfooting [@var{left}] @@| [@var{center}] @@| [@var{right}]
+ @itemx @@oddheading [@var{left}] @@| [@var{center}] @@| [@var{right}]
+ Specify page footings resp.@: headings for odd-numbered (right-hand)
+ pages.  @xref{Custom Headings, ,
+ How to Make Your Own Headings}.@refill
+ 
+ @item @@OE@{@}
+ @itemx @@oe@{@}
+ Generate the uppercase and lowercase OE ligatures, respectively:
+ @OE{}, @oe{}.  @xref{Inserting Accents}.
+ 
+ @item @@option@{@var{option-name}@}
+ Indicate a command-line option, such as @option{-l} or @option{--help}.
+ @xref{option,, @code{@@option}}.
+ 
+ @item @@page
+ Start a new page in a printed manual.  No effect in Info.
+ @xref{page, , @code{@@page}}.@refill
+ 
+ @item @@pagesizes [@var{width}][, @var{height}]
+ Change page dimensions.  @xref{pagesizes}.
+ 
+ @item @@paragraphindent @var{indent}
+ Indent paragraphs by @var{indent} number of spaces (perhaps 0); preserve
+ source file indentation if @var{indent} is @code{asis}.
+ @xref{paragraphindent,, Paragraph Indenting}.
+ 
+ @item @@pindex @var{entry}
+ Add @var{entry} to the index of programs.  @xref{Index Entries, , Defining
+ the Entries of an Index}.@refill
+ 
+ @item @@point@{@}
+ Indicate the position of point in a buffer to the reader with a
+ glyph: @samp{@point{}}.  @xref{Point Glyph, , Indicating
+ Point in a Buffer}.@refill
+ 
+ @item @@pounds@{@}
+ Generate the pounds sterling currency sign.
+ @xref{pounds,,@code{@@pounds@{@}}}.
+ 
+ @item @@print@{@}
+ Indicate printed output to the reader with a glyph:
+ @samp{@print{}}.  @xref{Print Glyph}.@refill
+ 
+ @item @@printindex @var{index-name}
+ Generate the alphabetized index for @var{index-name} (using two columns in a printed
+ manual).  @xref{Printing Indices & Menus}.
+ 
+ @item @@pxref@{@var{node}, [@var{entry}], [@var{node-title}], [@var{info-file}], [@var{manual}]@}
+ Make a reference that starts with a lower case `see' in a printed
+ manual.  Use within parentheses only.  Only the first argument is
+ mandatory.  @xref{pxref, , @code{@@pxref}}.
+ 
+ @item @@questiondown@{@}
+ Generate an upside-down question mark.  @xref{Inserting Accents}.
+ 
+ @item @@quotation
+ Narrow the margins to indicate text that is quoted from another work.
+ Takes optional argument of prefix text.  Pair with @code{@@end
+ quotation}.  @xref{quotation, , @code{@@quotation}}.
+ 
+ @item @@r@{@var{text}@}
+ Set @var{text} in the regular @r{roman} font.  No effect in Info.
+ @xref{Fonts}.
+ 
+ @item @@raisesections
+ Change subsequent sections to chapters, subsections to sections, and so
+ on.  @xref{Raise/lower sections, , @code{@@raisesections} and
+ @code{@@lowersections}}.@refill
+ 
+ @item @@ref@{@var{node}, [@var{entry}], [@var{node-title}], [@var{info-file}], [@var{manual}]@}
+ Make a plain reference that does not start with any special text.
+ Follow command with a punctuation mark.  Only the first argument is
+ mandatory.  @xref{ref, , @code{@@ref}}.
+ 
+ @item @@refill
+ This command used to refill and indent the paragraph after all the
+ other processing has been done.  It is no longer needed, since all
+ formatters now automatically refill as needed, but you may still see
+ it in the source to some manuals, as it does no harm.
+ 
+ @item @@registeredsymbol@{@}
+ Generate the legal symbol @registeredsymbol{}.  @xref{registered
+ symbol,, @code{@@registeredsymbol@{@}}}.
+ 
+ @item @@result@{@}
+ Indicate the result of an expression to the reader with a special
+ glyph: @samp{@result{}}.  @xref{result, , @code{@@result}}.@refill
+ 
+ @item @@ringaccent@{@var{c}@}
+ Generate a ring accent over the next character, as in @ringaccent{o}.
+ @xref{Inserting Accents}.
+ 
+ @item @@samp@{@var{text}@}
+ Indicate a literal example of a sequence of characters, in general.
+ Quoted in Info output.  @xref{samp, , @code{@@samp}}.
+ 
+ @item @@sansserif@{@var{text}@}
+ Set @var{text} in a @sansserif{sans serif} font if possible.  No
+ effect in Info.  @xref{Fonts}.
+ 
+ @item @@sc@{@var{text}@}
+ Set @var{text} in a small caps font in printed output, and uppercase
+ in Info.  @xref{Smallcaps}.
+ 
+ @item @@section @var{title}
+ Begin a section within a chapter.  The section title appears in the
+ table of contents.  In Info, the title is underlined with equal signs.
+ Within @code{@@chapter} and @code{@@appendix}, the section title is
+ numbered; within @code{@@unnumbered}, the section is unnumbered.
+ @xref{section, , @code{@@section}}.
+ 
+ @item @@set @var{txivar} [@var{string}]
+ Define the Texinfo variable @var{txivar}, optionally to the value
+ @var{string}.  @xref{set clear value, , @code{@@set} @code{@@clear}
+ @code{@@value}}.
+ 
+ @item @@setchapternewpage @var{on-off-odd}
+ Specify whether chapters start on new pages, and if so, whether on
+ odd-numbered (right-hand) new pages.  @xref{setchapternewpage, ,
+ @code{@@setchapternewpage}}.
+ 
+ @item @@setcontentsaftertitlepage
+ Put the table of contents after the @samp{@@end titlepage} even if the
+ @code{@@contents} command is at the end.  @xref{Contents}.
+ 
+ @item @@setfilename @var{info-file-name}
+ Provide a name to be used for the output files.  This command is essential
+ for @TeX{} formatting as well, even though it produces no output of
+ its own.  @xref{setfilename, , @code{@@setfilename}}.
+ 
+ @item @@setshortcontentsaftertitlepage
+ Place the short table of contents after the @samp{@@end titlepage}
+ command even if the @code{@@shortcontents} command is at the end.
+ @xref{Contents}.
+ 
+ @item @@settitle @var{title}
+ Specify the title for page headers in a printed manual, and the
+ default document description for HTML @samp{<head>}.  @xref{settitle,,
+ @code{@@settitle}}.
+ 
+ @item @@shortcaption
+ Define the short caption for a @code{@@float}.  @xref{caption shortcaption}.
+ 
+ @item @@shortcontents
+ Print a short table of contents, with chapter-level entries only.  Not
+ relevant to Info, which uses menus rather than tables of contents.
+ @xref{Contents, , Generating a Table of Contents}.
+ 
+ @item @@shorttitlepage @var{title}
+ Generate a minimal title page.  @xref{titlepage,,@code{@@titlepage}}.
+ 
+ @item @@slanted@{@var{text}@}
+ Set @var{text} in a @slanted{slanted} font if possible.  No effect
+ in Info.  @xref{Fonts}.
+ 
+ @item @@smallbook
+ Cause @TeX{} to produce a printed manual in a 7 by 9.25 inch format
+ rather than the regular 8.5 by 11 inch format.  @xref{smallbook, ,
+ Printing Small Books}.  Also, see @ref{small}.
+ 
+ @item @@smalldisplay
+ Begin a kind of example.  Like @code{@@smallexample} (narrow margins, no
+ filling), but do not select the fixed-width font.  Pair with @code{@@end
+ smalldisplay}.  @xref{small}.
+ 
+ @item @@smallexample
+ Begin an example.  Do not fill, select fixed-width font, narrow the
+ margins.  Where possible, print text in a smaller font than with
+ @code{@@example}.  Pair with @code{@@end smallexample}.  @xref{small}.
+ 
+ @item @@smallformat
+ Begin a kind of example.  Like @code{@@smalldisplay}, but do not narrow
+ the margins.  Pair with @code{@@end smallformat}.  @xref{small}.
+ 
+ @item @@smalllisp
+ Begin an example of Lisp code.  Same as @code{@@smallexample}.  Pair
+ with @code{@@end smalllisp}.  @xref{small}.
+ 
+ @item @@sp @var{n}
+ Skip @var{n} blank lines.  @xref{sp, , @code{@@sp}}.@refill
+ 
+ @item @@ss@{@}
+ Generate the German sharp-S es-zet letter, @ss{}.  @xref{Inserting Accents}.
+ 
+ @item @@strong @{@var{text}@}
+ Emphasize @var{text} more strongly than @code{@@emph}, by using
+ @strong{boldface} where possible; enclosed in asterisks in Info.
+ @xref{emph & strong, , Emphasizing Text}.
+ 
+ @item @@subheading @var{title}
+ Print an unnumbered subsection-like heading, but omit from the table
+ of contents of a printed manual.  In Info, the title is underlined
+ with hyphens.  @xref{unnumberedsubsec appendixsubsec subheading, ,
+ @code{@@unnumberedsubsec} @code{@@appendixsubsec}
+ @code{@@subheading}}.
+ 
+ @item @@subsection @var{title}
+ Begin a subsection within a section.  The subsection title appears in
+ the table of contents.  In Info, the title is underlined with hyphens.
+ Same context-dependent numbering as @code{@@section}.  @xref{subsection, ,
+ @code{@@subsection}}.
+ 
+ @item @@subsubheading @var{title}
+ Print an unnumbered subsubsection-like heading, but omit from the
+ table of contents of a printed manual.  In Info, the title is
+ underlined with periods.  @xref{subsubsection, , The `subsub'
+ Commands}.
+ 
+ @item @@subsubsection @var{title}
+ Begin a subsubsection within a subsection.  The subsubsection title
+ appears in the table of contents.  In Info, the title is underlined
+ with periods.  Same context-dependent numbering as @code{@@section}.
+ @xref{subsubsection, , The `subsub' Commands}.
+ 
+ @item @@subtitle @var{title}
+ In a printed manual, set a subtitle in a normal sized font flush to
+ the right-hand side of the page.  Not relevant to Info, which does not
+ have title pages.  @xref{title subtitle author, , @code{@@title}
+ @code{@@subtitle} and @code{@@author} Commands}.
+ 
+ @item @@summarycontents
+ Print a short table of contents.  Synonym for @code{@@shortcontents}.
+ @xref{Contents, , Generating a Table of Contents}.
+ 
+ @item @@syncodeindex @var{from-index} @var{to-index}
+ Merge the index named in the first argument into the index named in
+ the second argument, formatting the entries from the first index with
+ @code{@@code} .  @xref{Combining Indices}.@refill
+ 
+ @item @@synindex @var{from-index} @var{to-index}
+ Merge the index named in the first argument into the index named in
+ the second argument.  Do not change the font of @var{from-index}
+ entries.  @xref{Combining Indices}.
+ 
+ @item @@t@{@var{text}@}
+ Set @var{text} in a @t{fixed-width}, typewriter-like font.  No effect
+ in Info.  @xref{Fonts}.
+ 
+ @item @@tab
+ Separate columns in a row of a multitable.  @xref{Multitable Rows}.
+ 
+ @item @@table @var{formatting-command}
+ Begin a two-column table (description list), using @code{@@item} for
+ each entry.  Write each first column entry on the same line as
+ @code{@@item}.  First column entries are printed in the font resulting
+ from @var{formatting-command}.  Pair with @code{@@end table}.
+ @xref{Two-column Tables, , Making a Two-column Table}.  Also see
+ @ref{ftable vtable, , @code{@@ftable} and @code{@@vtable}}, and
+ @ref{itemx, , @code{@@itemx}}.
+ 
+ @item @@TeX@{@}
+ Generate the @TeX{} logo.  @xref{tex, , @TeX{} and @LaTeX{}}.
+ 
+ @item @@tex
+ Enter @TeX{} completely.  Pair with @code{@@end tex}.  @xref{Raw
+ Formatter Commands}.
+ 
+ @item @@thischapter
+ @itemx @@thischaptername
+ @itemx @@thischapternum
+ @itemx @@thisfile
+ @itemx @@thispage
+ @itemx @@thistitle
+ Only allowed in a heading or footing.  Stands for, respectively, the
+ number and name of the current chapter (in the format `Chapter 1:
+ Title'), the current chapter name only, the current chapter number
+ only, the filename, the current page number, and the title of the
+ document, respectively.  @xref{Custom Headings, , How to Make Your Own
+ Headings}.
+ 
+ @item @@tie@{@}
+ Generate a normal interword space at which a line break is not allowed.
+ @xref{tie,, @code{@@tie@{@}}}.
+ 
+ @item @@tieaccent@{@var{cc}@}
+ Generate a tie-after accent over the next two characters @var{cc}, as in
+ `@tieaccent{oo}'.  @xref{Inserting Accents}.
+ 
+ @item @@tindex @var{entry}
+ Add @var{entry} to the index of data types.  @xref{Index Entries, ,
+ Defining the Entries of an Index}.@refill
+ 
+ @item @@title @var{title}
+ In a printed manual, set a title flush to the left-hand side of the
+ page in a larger than normal font and underline it with a black rule.
+ Not relevant to Info, which does not have title pages.  @xref{title
+ subtitle author, , The @code{@@title} @code{@@subtitle} and
+ @code{@@author} Commands}.@refill
+ 
+ @item @@titlefont@{@var{text}@}
+ In a printed manual, print @var{text} in a larger than normal font.
+ @xref{titlefont center sp, , The @code{@@titlefont} @code{@@center}
+ and @code{@@sp} Commands}.
+ 
+ @item @@titlepage
+ Begin the title page.  Write the command on a line of its own, paired
+ with @code{@@end titlepage}.  Nothing between @code{@@titlepage} and
+ @code{@@end titlepage} appears in Info.  @xref{titlepage, ,
+ @code{@@titlepage}}.@refill
+ 
+ @item @@today@{@}
+ Insert the current date, in `1 Jan 1900' style.  @xref{Custom
+ Headings, , How to Make Your Own Headings}.@refill
+ 
+ @item @@top @var{title}
+ Mark the topmost @code{@@node} in the file, which must be defined on
+ the line immediately preceding the @code{@@top} command.  The title is
+ formatted as a chapter-level heading.  The entire top node, including
+ the @code{@@node} and @code{@@top} lines, are normally enclosed with
+ @code{@@ifnottex ... @@end ifnottex}.  In @TeX{} and
+ @code{texinfo-format-buffer}, the @code{@@top} command is merely a
+ synonym for @code{@@unnumbered}.  @xref{makeinfo Pointer Creation, ,
+ Creating Pointers with @code{makeinfo}}.
+ 
+ @item @@u@{@var{c}@}
+ @itemx @@ubaraccent@{@var{c}@}
+ @itemx @@udotaccent@{@var{c}@}
+ Generate a breve, underbar, or underdot accent, respectively, over or
+ under the character @var{c}, as in @u{o}, @ubaraccent{o},
+ @udotaccent{o}.  @xref{Inserting Accents}.
+ 
+ @item @@unnumbered @var{title}
+ Begin a chapter that appears without chapter numbers of any kind.  The
+ title appears in the table of contents.  In Info, the title is
+ underlined with asterisks.  @xref{unnumbered & appendix, ,
+ @code{@@unnumbered} and @code{@@appendix}}.
+ 
+ @item @@unnumberedsec @var{title}
+ Begin a section that appears without section numbers of any kind.  The
+ title appears in the table of contents of a printed manual.  In Info,
+ the title is underlined with equal signs.  @xref{unnumberedsec
+ appendixsec heading, , Section Commands}.
+ 
+ @item @@unnumberedsubsec @var{title}
+ Begin an unnumbered subsection.  The title appears in the table of
+ contents.  In Info, the title is underlined with hyphens.
+ @xref{unnumberedsubsec appendixsubsec subheading, ,
+ @code{@@unnumberedsubsec} @code{@@appendixsubsec}
+ @code{@@subheading}}.
+ 
+ @item @@unnumberedsubsubsec @var{title}
+ Begin an unnumbered subsubsection.  The title appears in the table of
+ contents.  In Info, the title is underlined with periods.
+ @xref{subsubsection, , The `subsub' Commands}.
+ 
+ @item @@uref@{@var{url}[, @var{displayed-text}][, @var{replacement}@}
+ @itemx @@url@{@var{url}[, @var{displayed-text}][, @var{replacement}@}
+ Define a cross reference to an external uniform resource locator,
+ e.g., for the World Wide Web.  @xref{uref, , @code{@@uref}}.
+ 
+ @item @@v@{@var{c}@}
+ Generate check accent over the character @var{c}, as in @v{o}.
+ @xref{Inserting Accents}.
+ 
+ @item @@value@{@var{txivar}@}
+ Insert the value, if any, of the Texinfo variable @var{txivar},
+ previously defined by @code{@@set}.  @xref{set clear value, ,
+ @code{@@set} @code{@@clear} @code{@@value}}.
+ 
+ @item @@var@{@var{metasyntactic-variable}@}
+ Highlight a metasyntactic variable, which is something that stands for
+ another piece of text.  @xref{var, , Indicating Metasyntactic
+ Variables}.
+ 
+ @item @@verb@{@var{delim} @var{literal} @var{delim}@}
+ Output @var{literal}, delimited by the single character @var{delim},
+ exactly as is (in the fixed-width font), including any whitespace or
+ Texinfo special characters.  @xref{verb,,@code{verb}}.
+ 
+ @item @@verbatim
+ Output the text of the environment exactly as is (in the fixed-width
+ font).  Pair with @code{@@end verbatim}.  @xref{verbatim,,@code{verbatim}}.
+ 
+ @item @@verbatiminclude @var{filename}
+ Output the contents of @var{filename} exactly as is (in the fixed-width font).
+ @xref{verbatiminclude,,@code{verbatiminclude}}.
+ 
+ @item @@vindex @var{entry}
+ Add @var{entry} to the index of variables.  @xref{Index Entries, ,
+ Defining the Entries of an Index}.@refill
+ 
+ @item @@vskip @var{amount}
+ In a printed manual, insert whitespace so as to push text on the
+ remainder of the page towards the bottom of the page.  Used in
+ formatting the copyright page with the argument @samp{0pt plus
+ 1filll}.  (Note spelling of @samp{filll}.)  @code{@@vskip} may be used
+ only in contexts ignored for Info.  @xref{Copyright}.
+ 
+ @item @@vtable @var{formatting-command}
+ Begin a two-column table, using @code{@@item} for each entry.
+ Automatically enter each of the items in the first column into the
+ index of variables.  Pair with @code{@@end vtable}.  The same as
+ @code{@@table}, except for indexing.  @xref{ftable vtable, ,
+ @code{@@ftable} and @code{@@vtable}}.@refill
+ 
+ @item @@w@{@var{text}@}
+ Disallow line breaks within @var{text}.  @xref{w, , @code{@@w}}.
+ 
+ @item @@xml
+ Enter XML completely.  Pair with @code{@@end xml}.  @xref{Raw
+ Formatter Commands}.
+ 
+ @item @@xref@{@var{node}, [@var{entry}], [@var{node-title}], [@var{info-file}], [@var{manual}]@}
+ Make a reference that starts with `See' in a printed manual.  Follow
+ command with a punctuation mark.  Only the first argument is
+ mandatory.  @xref{xref, , @code{@@xref}}.
+ 
+ @end table
+ 
+ 
+ @node Command Syntax
+ @section @@-Command Syntax
+ @cindex @@-command syntax
+ @cindex Syntax, of @@-commands
+ @cindex Command syntax
+ 
+ The character @samp{@@} is used to start special Texinfo commands.
+ (It has the same meaning that @samp{\} has in plain @TeX{}.)  Texinfo
+ has four types of @@-command:@refill
+ 
+ @table @asis
+ @item 1. Non-alphabetic commands.
+ These commands consist of an @@ followed by a punctuation mark or
+ other character that is not part of the alphabet.  Non-alphabetic
+ commands are almost always part of the text within a paragraph.  The
+ non-alphabetic commands include @code{@@@@}, @code{@@@{}, @code{@@@}},
+ @code{@@.}, @code{@@@kbd{SPACE}}, most of the accent commands, and
+ many more.
+ 
+ @item 2. Alphabetic commands that do not require arguments.
+ These commands start with @@ followed by a word followed by left- and
+ right-hand braces.  These commands insert special symbols in the
+ document; they do not require arguments.  For example,
+ @code{@@dots@{@}} @result{} @samp{@dots{}}, @code{@@equiv@{@}}
+ @result{} @samp{@equiv{}}, @code{@@TeX@{@}} @result{} `@TeX{}',
+ and @code{@@bullet@{@}} @result{} @samp{@bullet{}}.@refill
+ 
+ @item 3. Alphabetic commands that require arguments within braces.
+ These commands start with @@ followed by a letter or a word, followed by an
+ argument within braces.  For example, the command @code{@@dfn} indicates
+ the introductory or defining use of a term; it is used as follows: @samp{In
+ Texinfo, @@@@-commands are @@dfn@{mark-up@} commands.}@refill
+ 
+ @item 4. Alphabetic commands that occupy an entire line.
+ These commands occupy an entire line.  The line starts with @@,
+ followed by the name of the command (a word); for example, @code{@@center}
+ or @code{@@cindex}.  If no argument is needed, the word is followed by
+ the end of the line.  If there is an argument, it is separated from
+ the command name by a space.  Braces are not used.@refill
+ @end table
+ 
+ @cindex Braces and argument syntax
+ Thus, the alphabetic commands fall into classes that have
+ different argument syntaxes.  You cannot tell to which class a command
+ belongs by the appearance of its name, but you can tell by the
+ command's meaning: if the command stands for a glyph, it is in
+ class 2 and does not require an argument; if it makes sense to use the
+ command together with other text as part of a paragraph, the command
+ is in class 3 and must be followed by an argument in braces;
+ otherwise, it is in class 4 and uses the rest of the line as its
+ argument.@refill
+ 
+ The purpose of having a different syntax for commands of classes 3 and
+ 4 is to make Texinfo files easier to read, and also to help the GNU
+ Emacs paragraph and filling commands work properly.  There is only one
+ exception to this rule: the command @code{@@refill}, which is always
+ used at the end of a paragraph immediately following the final period
+ or other punctuation character.  @code{@@refill} takes no argument and
+ does @emph{not} require braces.  @code{@@refill} never confuses the
+ Emacs paragraph commands because it cannot appear at the beginning of
+ a line.  It is also no longer needed, since all formatters now refill
+ paragraphs automatically.
+ 
+ 
+ @node Tips
+ @appendix Tips and Hints
+ 
+ Here are some tips for writing Texinfo documentation:@refill
+ 
+ @cindex Tips
+ @cindex Usage tips
+ @cindex Hints
+ @itemize @bullet
+ @item
+ Write in the present tense, not in the past or the future.
+ 
+ @item
+ Write actively!  For example, write ``We recommend that @dots{}'' rather
+ than ``It is recommended that @dots{}''.
+ 
+ @item
+ Use 70 or 72 as your fill column.  Longer lines are hard to read.
+ 
+ @item
+ Include a copyright notice and copying permissions.
+ @end itemize
+ 
+ @subsubheading Index, Index, Index!
+ 
+ Write many index entries, in different ways.
+ Readers like indices; they are helpful and convenient.
+ 
+ Although it is easiest to write index entries as you write the body of
+ the text, some people prefer to write entries afterwards.  In either
+ case, write an entry before the paragraph to which it applies.  This
+ way, an index entry points to the first page of a paragraph that is
+ split across pages.
+ 
+ Here are more hints we have found valuable:
+ 
+ @itemize @bullet
+ @item
+ Write each index entry differently, so each entry refers to a different
+ place in the document.
+ 
+ @item
+ Write index entries only where a topic is discussed significantly.  For
+ example, it is not useful to index ``debugging information'' in a
+ chapter on reporting bugs.  Someone who wants to know about debugging
+ information will certainly not find it in that chapter.
+ 
+ @item
+ Consistently capitalize the first word of every concept index entry,
+ or else consistently use lower case.  Terse entries often call for
+ lower case; longer entries for capitalization.  Whichever case
+ convention you use, please use one or the other consistently!  Mixing
+ the two styles looks bad.
+ 
+ @item
+ Always capitalize or use upper case for those words in an index for
+ which this is proper, such as names of countries or acronyms.  Always
+ use the appropriate case for case-sensitive names, such as those in C or
+ Lisp.
+ 
+ @item
+ Write the indexing commands that refer to a whole section immediately
+ after the section command, and write the indexing commands that refer to
+ a paragraph before that paragraph.
+ 
+ In the example that follows, a blank line comes after the index
+ entry for ``Leaping'':
+ 
+ @example
+ @group
+ @@section The Dog and the Fox
+ @@cindex Jumping, in general
+ @@cindex Leaping
+ 
+ @@cindex Dog, lazy, jumped over
+ @@cindex Lazy dog jumped over
+ @@cindex Fox, jumps over dog
+ @@cindex Quick fox jumps over dog
+ The quick brown fox jumps over the lazy dog.
+ @end group
+ @end example
+ 
+ @noindent
+ (Note that the example shows entries for the same concept that are
+ written in different ways---@samp{Lazy dog}, and @samp{Dog, lazy}---so
+ readers can look up the concept in different ways.)
+ @end itemize
+ 
+ @subsubheading Blank Lines
+ 
+ @itemize @bullet
+ @item
+ Insert a blank line between a sectioning command and the first following
+ sentence or paragraph, or between the indexing commands associated with
+ the sectioning command and the first following sentence or paragraph, as
+ shown in the tip on indexing.  Otherwise, a formatter may fold title and
+ paragraph together.
+ 
+ @item
+ Always insert a blank line before an @code{@@table} command and after an
+ @code{@@end table} command; but never insert a blank line after an
+ @code{@@table} command or before an @code{@@end table} command.
+ 
+ @need 1000
+ For example,
+ 
+ @example
+ @group
+ Types of fox:
+ 
+ @@table @@samp
+ @@item Quick
+ Jump over lazy dogs.
+ @end group
+ 
+ @group
+ @@item Brown
+ Also jump over lazy dogs.
+ @@end table
+ 
+ @end group
+ @group
+ @@noindent
+ On the other hand, @dots{}
+ @end group
+ @end example
+ 
+ Insert blank lines before and after @code{@@itemize} @dots{} @code{@@end
+ itemize} and @code{@@enumerate} @dots{} @code{@@end enumerate} in the
+ same way.
+ @end itemize
+ 
+ @subsubheading Complete Phrases
+ 
+ Complete phrases are easier to read than @dots{}
+ 
+ @itemize @bullet
+ @item
+ Write entries in an itemized list as complete sentences; or at least, as
+ complete phrases.  Incomplete expressions @dots{} awkward @dots{} like
+ this.
+ 
+ @item
+ Write the prefatory sentence or phrase for a multi-item list or table as
+ a complete expression.  Do not write ``You can set:''; instead, write
+ ``You can set these variables:''.  The former expression sounds cut off.
+ @end itemize
+ 
+ @subsubheading Editions, Dates and Versions
+ 
+ Include edition numbers, version numbers, and dates in the
+ @code{@@copying} text (for people reading the Texinfo file, and for the
+ legal copyright in the output files).  Then use @code{@@insertcopying}
+ in the @code{@@titlepage} section (for people reading the printed
+ output) and the Top node (for people reading the online output).
+ 
+ It is easiest to do this using @code{@@set} and @code{@@value}.
+ @xref{value Example, , @code{@@value} Example}, and @ref{GNU Sample Texts}.
+ 
+ 
+ @subsubheading Definition Commands
+ 
+ Definition commands are @code{@@deffn}, @code{@@defun},
+ @code{@@defmac}, and the like, and enable you to write descriptions in
+ a uniform format.@refill
+ 
+ @itemize @bullet
+ @item
+ Write just one definition command for each entity you define with a
+ definition command.  The automatic indexing feature creates an index
+ entry that leads the reader to the definition.
+ 
+ @item
+ Use @code{@@table} @dots{} @code{@@end table} in an appendix that
+ contains a summary of functions, not @code{@@deffn} or other definition
+ commands.
+ @end itemize
+ 
+ @subsubheading Capitalization
+ 
+ @itemize @bullet
+ @item
+ Capitalize ``Texinfo''; it is a name.  Do not write the @samp{x} or
+ @samp{i} in upper case.
+ 
+ @item
+ Capitalize ``Info''; it is a name.
+ 
+ @item
+ Write @TeX{} using the @code{@@TeX@{@}} command.  Note the uppercase
+ @samp{T} and @samp{X}.  This command causes the formatters to
+ typeset the name according to the wishes of Donald Knuth, who wrote
+ @TeX{}.
+ @end itemize
+ 
+ @subsubheading Spaces
+ 
+ Do not use spaces to format a Texinfo file, except inside of
+ @code{@@example} @dots{} @code{@@end example} and other literal
+ environments and commands.
+ 
+ @need 700
+ For example, @TeX{} fills the following:
+ 
+ @example
+ @group
+    @@kbd@{C-x v@}
+    @@kbd@{M-x vc-next-action@}
+       Perform the next logical operation
+       on the version-controlled file
+       corresponding to the current buffer.
+ @end group
+ @end example
+ 
+ @need 950
+ @noindent
+ so it looks like this:
+ 
+ @iftex
+ @quotation
+    @kbd{C-x v}
+    @kbd{M-x vc-next-action}
+       Perform the next logical operation on the version-controlled file
+       corresponding to the current buffer.
+ @end quotation
+ @end iftex
+ @ifnottex
+ @quotation
+ `C-x v' `M-x vc-next-action' Perform the next logical operation on the
+ version-controlled file corresponding to the current buffer.
+ @end quotation
+ @end ifnottex
+ 
+ @noindent
+ In this case, the text should be formatted with
+ @code{@@table}, @code{@@item}, and @code{@@itemx}, to create a table.
+ 
+ 
+ @subsubheading @@code, @@samp, @@var, and @samp{---}
+ 
+ @itemize @bullet
+ @item
+ Use @code{@@code} around Lisp symbols, including command names.
+ For example,
+ 
+ @example
+ The main function is @@code@{vc-next-action@}, @dots{}
+ @end example
+ 
+ @item
+ Avoid putting letters such as @samp{s} immediately after an
+ @samp{@@code}.  Such letters look bad.
+ 
+ @item
+ Use @code{@@var} around meta-variables.  Do not write angle brackets
+ around them.
+ 
+ @item
+ Use three hyphens in a row, @samp{---}, to indicate a long dash.  @TeX{}
+ typesets these as a long dash and the Info formatters reduce three
+ hyphens to two.
+ @end itemize
+ 
+ @subsubheading Periods Outside of Quotes
+ 
+ Place periods and other punctuation marks @emph{outside} of quotations,
+ unless the punctuation is part of the quotation.  This practice goes
+ against publishing conventions in the United States, but enables the
+ reader to distinguish between the contents of the quotation and the
+ whole passage.
+ 
+ For example, you should write the following sentence with the period
+ outside the end quotation marks:
+ 
+ @example
+ Evidently, @samp{au} is an abbreviation for ``author''.
+ @end example
+ 
+ @noindent
+ since @samp{au} does @emph{not} serve as an  abbreviation for
+ @samp{author.} (with a period following the word).
+ 
+ @subsubheading Introducing New Terms
+ 
+ @itemize @bullet
+ @item
+ Introduce new terms so that a reader who does not know them can
+ understand them from context; or write a definition for the term.
+ 
+ For example, in the following, the terms ``check in'', ``register'' and
+ ``delta'' are all appearing for the first time; the example sentence should be
+ rewritten so they are understandable.
+ 
+ @quotation
+ The major function assists you in checking in a file to your
+ version control system and registering successive sets of changes to
+ it as deltas.
+ @end quotation
+ 
+ @item
+ Use the @code{@@dfn} command around a word being introduced, to indicate
+ that the reader should not expect to know the meaning already, and
+ should expect to learn the meaning from this passage.
+ @end itemize
+ 
+ @subsubheading @@pxref
+ 
+ @c !!! maybe include this in the tips on pxref
+ @ignore
+ By the way, it is okay to use pxref with something else in front of
+ it within the parens, as long as the pxref is followed by the close
+ paren, and the material inside the parens is not part of a larger
+ sentence.  Also, you can use xref inside parens as part of a complete
+ sentence so long as you terminate the cross reference with punctuation.
+ @end ignore
+ Absolutely never use @code{@@pxref} except in the special context for
+ which it is designed: inside parentheses, with the closing parenthesis
+ following immediately after the closing brace.  One formatter
+ automatically inserts closing punctuation and the other does not.  This
+ means that the output looks right both in printed output and in an Info
+ file, but only when the command is used inside parentheses.
+ 
+ @subsubheading Invoking from a Shell
+ 
+ You can invoke programs such as Emacs, GCC, and @code{gawk} from a
+ shell.  The documentation for each program should contain a section that
+ describes this.  Unfortunately, if the node names and titles for these
+ sections are all different, they are difficult for users to find.
+ 
+ So, there is a convention to name such sections with a phrase beginning
+ with the word `Invoking', as in `Invoking Emacs'; this way, users can
+ find the section easily.
+ 
+ 
+ @subsubheading ANSI C Syntax
+ 
+ When you use @code{@@example} to describe a C function's calling
+ conventions, use the ANSI C syntax, like this:@refill
+ 
+ @example
+ void dld_init (char *@@var@{path@});
+ @end example
+ 
+ @noindent
+ And in the subsequent discussion, refer to the argument values by
+ writing the same argument names, again highlighted with
+ @code{@@var}.@refill
+ 
+ @need 800
+ Avoid the obsolete style that looks like this:@refill
+ 
+ @example
+ #include <dld.h>
+ 
+ dld_init (path)
+ char *path;
+ @end example
+ 
+ Also, it is best to avoid writing @code{#include} above the
+ declaration just to indicate that the function is declared in a
+ header file.  The practice may give the misimpression that the
+ @code{#include} belongs near the declaration of the function.  Either
+ state explicitly which header file holds the declaration or, better
+ yet, name the header file used for a group of functions at the
+ beginning of the section that describes the functions.@refill
+ 
+ @subsubheading Bad Examples
+ 
+ Here are several examples of bad writing to avoid:
+ 
+ In this example, say, `` @dots{} you must @code{@@dfn}@{check
+ in@} the new version.''  That flows better.
+ 
+ @quotation
+ When you are done editing the file, you must perform a
+ @code{@@dfn}@{check in@}.
+ @end quotation
+ 
+ In the following example, say, ``@dots{} makes a unified interface such as VC
+ mode possible.''
+ 
+ @quotation
+ SCCS, RCS and other version-control systems all perform similar
+ functions in broadly similar ways (it is this resemblance which makes
+ a unified control mode like this possible).
+ @end quotation
+ 
+ And in this example, you should specify what `it' refers to:
+ 
+ @quotation
+ If you are working with other people, it assists in coordinating
+ everyone's changes so they do not step on each other.
+ @end quotation
+ 
+ @subsubheading And Finally @dots{}
+ 
+ @itemize @bullet
+ @item
+ Pronounce @TeX{} as if the @samp{X} were a Greek `chi', as the last
+ sound in the name `Bach'.  But pronounce Texinfo as in `speck':
+ ``teckinfo''.
+ 
+ @item
+ Write notes for yourself at the very end of a Texinfo file after the
+ @code{@@bye}.  None of the formatters process text after the
+ @code{@@bye}; it is as if the text were within @code{@@ignore} @dots{}
+ @code{@@end ignore}.
+ @end itemize
+ 
+ 
+ @node Sample Texinfo Files
+ @appendix Sample Texinfo Files
+ @cindex Sample Texinfo files
+ 
+ The first example is from the first chapter (@pxref{Short Sample}),
+ given here in its entirety, without commentary.  The second
+ includes the full texts to be used in GNU manuals.
+ 
+ @menu
+ * Short Sample Texinfo File::
+ * GNU Sample Texts::
+ * Verbatim Copying License::
+ * All-permissive Copying License::
+ @end menu
+ 
+ 
+ @node Short Sample Texinfo File
+ @section Short Sample
+ @cindex Sample Texinfo file, no comments
+ 
+ Here is a complete, short sample Texinfo file, without any commentary.
+ You can see this file, with comments, in the first chapter.  @xref{Short
+ Sample}.
+ 
+ In a nutshell: The @command{makeinfo} program transforms a Texinfo
+ source file such as this into an Info file or HTML; and @TeX{} typesets
+ it for a printed manual.
+ 
+ 
+ @sp 1
+ @example
+ \input texinfo   @@c -*-texinfo-*-
+ @@c %**start of header
+ @@setfilename sample.info
+ @@settitle Sample Manual 1.0
+ @@c %**end of header
+ 
+ @@copying
+ This is a short example of a complete Texinfo file.
+ 
+ Copyright @copyright{} 2005 Free Software Foundation, Inc.
+ @@end copying
+ 
+ @@titlepage
+ @@title Sample Title
+ @@page
+ @@vskip 0pt plus 1filll
+ @@insertcopying
+ @@end titlepage
+ 
+ @@c Output the table of the contents at the beginning.
+ @@contents
+ 
+ @@ifnottex
+ @@node Top
+ @@top GNU Sample
+ 
+ @@insertcopying
+ @@end ifnottex
+ 
+ @@menu
+ * First Chapter::    The first chapter is the
+                       only chapter in this sample.
+ * Index::            Complete index.
+ @@end menu
+ 
+ 
+ @@node First Chapter
+ @@chapter First Chapter
+ 
+ @@cindex chapter, first
+ 
+ This is the first chapter.
+ @@cindex index entry, another
+ 
+ Here is a numbered list.
+ 
+ @@enumerate
+ @@item
+ This is the first item.
+ 
+ @@item
+ This is the second item.
+ @@end enumerate
+ 
+ 
+ @@node Index
+ @@unnumbered Index
+ 
+ @@printindex cp
+ 
+ @@bye
+ @end example
+ 
+ 
+ @node GNU Sample Texts
+ @section GNU Sample Texts
+ 
+ @cindex GNU sample texts
+ @cindex Sample texts, GNU
+ @cindex Full texts, GNU
+ 
+ Following is a sample Texinfo document with the full texts that should
+ be used in GNU manuals.
+ 
+ As well as the legal texts, it also serves as a practical example of how
+ many elements in a GNU system can affect the manual.  If you're not
+ familiar with all these different elements, don't worry.  They're not
+ required and a perfectly good manual can be written without them.
+ They're included here nonetheless because many manuals do (or could)
+ benefit from them.
+ 
+ @xref{Short Sample}, for a minimal example of a Texinfo file.
+ @xref{Beginning a File}, for a full explanation of that minimal
+ example.
+ 
+ Here are some notes on the example:
+ 
+ @itemize @bullet
+ @item
+ @cindex $Id
+ @cindex CVS $Id
+ @cindex RCS $Id
+ @cindex Documentation identification
+ @cindex Identification of documentation
+ The @samp{$Id:} comment is for the CVS (@pxref{Top,, Overview, cvs,
+ Concurrent Versions System}) or RCS
+ (@url{http://www.gnu.org/software/rcs}) version control systems, which
+ expand it into a string such as:
+ @example
+ $Id: texinfo.txi,v 1.225 2008/09/07 22:47:46 karl Exp $
+ @end example
+ (This is useful in all sources that use version control, not just manuals.)
+ You may wish to include the @samp{$Id:} comment in the @code{@@copying}
+ text, if you want a completely unambiguous reference to the
+ documentation version.
+ 
+ If you want to literally write @t{@w{$}Id$}, use @code{@@w}:
+ @code{@@w@{$@}Id$}.  Unfortunately, this technique does not currently
+ work in plain text output, since it's not clear what should be done.
+ We hope to find a solution in a future release.
+ 
+ @item
+ @pindex automake@r{, and version info}
+ @vindex UPDATED @r{Automake variable}
+ @vindex VERSION @r{Automake variable}
+ @pindex time-stamp.el
+ The @file{version.texi} in the @code{@@include} command is maintained
+ automatically by Automake (@pxref{Top,, Introduction, automake, GNU
+ Automake}).  It sets the @samp{VERSION} and @samp{UPDATED} values used
+ elsewhere.  If your distribution doesn't use Automake, but you do use
+ Emacs, you may find the time-stamp.el package helpful (@pxref{Time
+ Stamps,,,emacs,The GNU Emacs Manual}).
+ 
+ @item
+ The @code{@@syncodeindex} command reflects the recommendation to use
+ only one index where possible, to make it easier for readers to look up
+ index entries.
+ 
+ @item
+ The @code{@@dircategory} is for constructing the Info directory.
+ @xref{Installing Dir Entries}, which includes a variety of recommended
+ category names.
+ 
+ @item
+ The `Invoking' node is a GNU standard to help users find the basic
+ information about command-line usage of a given program.  @xref{Manual
+ Structure Details,,,standards, GNU Coding Standards}.
+ 
+ @item
+ @cindex GNU Free Documentation License, including entire
+ @cindex Free Documentation License, including entire
+ It is best to include the entire GNU Free Documentation License in a GNU
+ manual, unless the manual is only a few pages long.  Of course this
+ sample is even shorter than that, but it includes the FDL anyway in
+ order to show one conventional way to do so.  The @file{fdl.texi} file
+ is available on the GNU machines and in the Texinfo and other GNU
+ source distributions.
+ 
+ The FDL provides for omitting itself under certain conditions, but in
+ that case the sample texts given here have to be modified.  @xref{GNU
+ Free Documentation License}.
+ 
+ @item
+ If the FSF is not the copyright holder, then use the appropriate name.
+ 
+ @item
+ If your manual is not published on paper by the FSF, then omit the
+ last sentence in the Back-Cover Text that talks about copies from GNU
+ Press.
+ 
+ @item
+ If your manual has Invariant Sections (again, see the license itself
+ for details), then change the text here accordingly.
+ 
+ @item
+ For documents that express your personal views, feelings or experiences,
+ it is more appropriate to use a license permitting only verbatim
+ copying, rather than the FDL.  @xref{Verbatim Copying License}.
+ 
+ @end itemize
+ 
+ Here is the sample document:
+ 
+ @verbatim
+ \input texinfo   @c -*-texinfo-*-
+ @comment $Id: texinfo.txi,v 1.225 2008/09/07 22:47:46 karl Exp $
+ @comment %**start of header
+ @setfilename sample.info
+ @include version.texi
+ @settitle GNU Sample @value{VERSION}
+ @syncodeindex pg cp
+ @comment %**end of header
+ @copying
+ This manual is for GNU Sample (version @value{VERSION}, @value{UPDATED}),
+ which is an example in the Texinfo documentation.
+ 
+ Copyright @copyright{} 2007 Free Software Foundation, Inc.
+ 
+ @quotation
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2 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 the freedom to
+ copy and modify this GNU manual.  Buying copies from the FSF
+ supports it in developing GNU and promoting software freedom.''
+ @end quotation
+ @end copying
+ 
+ @dircategory Texinfo documentation system
+ @direntry
+ * sample: (sample)Invoking sample.
+ @end direntry
+ 
+ @titlepage
+ @title GNU Sample
+ @subtitle for version @value{VERSION}, @value{UPDATED}
+ @author A.U. Thor (@email{bug-texinfo@@gnu.org})
+ @page
+ @vskip 0pt plus 1filll
+ @insertcopying
+ @end titlepage
+ 
+ @contents
+ 
+ @ifnottex
+ @node Top
+ @top GNU Sample
+ 
+ This manual is for GNU Sample (version @value{VERSION}, @value{UPDATED}).
+ @end ifnottex
+ 
+ @menu
+ * Invoking sample::
+ * Copying This Manual::
+ * Index::
+ @end menu
+ 
+ 
+ @node Invoking sample
+ @chapter Invoking sample
+ 
+ @pindex sample
+ @cindex invoking @command{sample}
+ 
+ This is a sample manual.  There is no sample program to
+ invoke, but if there was, you could see its basic usage
+ and command line options here.
+ 
+ 
+ @node GNU Free Documentation License
+ @appendix GNU Free Documentation License
+ 
+ @include fdl.texi
+ 
+ 
+ @node Index
+ @unnumbered Index
+ 
+ @printindex cp
+ 
+ @bye
+ @end verbatim
+ 
+ 
+ @node Verbatim Copying License
+ @section Verbatim Copying License
+ 
+ @cindex Verbatim copying license
+ @cindex License for verbatim copying
+ 
+ For software manuals and other documentation, it is important to use a
+ license permitting free redistribution and updating, so that when a free
+ program is changed, the documentation can be updated as well.
+ 
+ On the other hand, for documents that express your personal views,
+ feelings or experiences, it is more appropriate to use a license
+ permitting only verbatim copying.
+ 
+ Here is sample text for such a license permitting verbatim copying only.
+ This is just the license text itself.  For a complete sample document,
+ see the previous sections.
+ 
+ @verbatim
+ @copying
+ This document is a sample for allowing verbatim copying only.
+ 
+ Copyright @copyright{} 2005 Free Software Foundation, Inc.
+ 
+ @quotation
+ Permission is granted to make and distribute verbatim copies
+ of this entire document without royalty provided the
+ copyright notice and this permission notice are preserved.
+ @end quotation
+ @end copying
+ @end verbatim
+ 
+ 
+ @node All-permissive Copying License
+ @section All-permissive Copying License
+ 
+ @cindex All-permissive copying license
+ @cindex License for all-permissive copying
+ 
+ For software manuals and other documentation, it is important to use a
+ license permitting free redistribution and updating, so that when a free
+ program is changed, the documentation can be updated as well.
+ 
+ On the other hand, for small supporting files, short manuals (under 300
+ lines long) and rough documentation (README files, INSTALL files, etc.),
+ the full FDL would be overkill.  They can use a simple all-permissive
+ license.
+ 
+ Here is sample text for such an all-permissive license.  This is just
+ the license text itself.  For a complete sample document, see the
+ previous sections.
+ 
+ @example
+ Copyright @copyright{} 2005 Free Software Foundation, Inc.
+ 
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved.
+ @end example
+ 
+ 
+ @node Include Files
+ @appendix Include Files
+ @cindex Include files
+ 
+ When @TeX{} or an Info formatting command sees an @code{@@include}
+ command in a Texinfo file, it processes the contents of the file named
+ by the command and incorporates them into the DVI or Info file being
+ created.  Index entries from the included file are incorporated into
+ the indices of the output file.
+ 
+ Include files let you keep a single large document as a collection of
+ conveniently small parts.
+ 
+ @menu
+ * Using Include Files::         How to use the @code{@@include} command.
+ * texinfo-multiple-files-update::  How to create and update nodes and
+                                      menus when using included files.
+ * Include Files Requirements::  @code{texinfo-multiple-files-update} needs.
+ * Sample Include File::         A sample outer file with included files
+                                      within it; and a sample included file.
+ * Include Files Evolution::     How use of the @code{@@include} command
+                                      has changed over time.
+ @end menu
+ 
+ @node Using Include Files
+ @section How to Use Include Files
+ @findex include
+ 
+ To include another file within a Texinfo file, write the
+ @code{@@include} command at the beginning of a line and follow it on
+ the same line by the name of a file to be included.  For example:
+ 
+ @example
+ @@include buffers.texi
+ @end example
+ 
+ The name of the file is taken literally, with a single exception:
+ @code{@@value@{@var{var}@}} references are expanded.  This makes it
+ possible to reliably include files in other directories in a
+ distribution.  @xref{verbatiminclude,,@code{@@verbatiminclude}}, for
+ an example.
+ 
+ An included file should simply be a segment of text that you expect to
+ be included as is into the overall or @dfn{outer} Texinfo file; it
+ should not contain the standard beginning and end parts of a Texinfo
+ file.  In particular, you should not start an included file with a
+ line saying @samp{\input texinfo}; if you do, that phrase is inserted
+ into the output file as is.  Likewise, you should not end an included
+ file with an @code{@@bye} command; nothing after @code{@@bye} is
+ formatted.
+ 
+ In the past, you were required to write an @code{@@setfilename} line at the
+ beginning of an included file, but no longer.  Now, it does not matter
+ whether you write such a line.  If an @code{@@setfilename} line exists
+ in an included file, it is ignored.@refill
+ 
+ Conventionally, an included file begins with an @code{@@node} line that
+ is followed by an @code{@@chapter} line.  Each included file is one
+ chapter.  This makes it easy to use the regular node and menu creating
+ and updating commands to create the node pointers and menus within the
+ included file.  However, the simple Emacs node and menu creating and
+ updating commands do not work with multiple Texinfo files.  Thus you
+ cannot use these commands to fill in the `Next', `Previous', and `Up'
+ pointers of the @code{@@node} line that begins the included file.  Also,
+ you cannot use the regular commands to create a master menu for the
+ whole file.  Either you must insert the menus and the `Next',
+ `Previous', and `Up' pointers by hand, or you must use the GNU Emacs
+ Texinfo mode command, @code{texinfo-multiple-files-update}, that is
+ designed for @code{@@include} files.@refill
+ 
+ When an included file does not have any node lines in it, the
+ multiple files update command does not try to create a menu entry
+ for it.  Consequently, you can include any file, such as a
+ version or an update file without node lines, not just files that
+ are chapters.  Small includable files like this are created by
+ Automake (@pxref{GNU Sample Texts}).
+ 
+ 
+ @node texinfo-multiple-files-update
+ @section @code{texinfo-multiple-files-update}
+ @findex texinfo-multiple-files-update
+ 
+ GNU Emacs Texinfo mode provides the @code{texinfo-multiple-files-update}
+ command.  This command creates or updates `Next', `Previous', and `Up'
+ pointers of included files as well as those in the outer or overall
+ Texinfo file, and it creates or updates a main menu in the outer file.
+ Depending whether you call it with optional arguments, the command
+ updates only the pointers in the first @code{@@node} line of the
+ included files or all of them:@refill
+ 
+ @table @kbd
+ @item M-x texinfo-multiple-files-update
+ Called without any arguments:@refill
+ 
+ @itemize @minus
+ @item
+ Create or update the `Next', `Previous', and `Up' pointers of the
+ first @code{@@node} line in each file included in an outer or overall
+ Texinfo file.@refill
+ 
+ @item
+ Create or update the `Top' level node pointers of the outer or
+ overall file.@refill
+ 
+ @item
+ Create or update a main menu in the outer file.@refill
+ @end itemize
+ 
+ @item C-u M-x texinfo-multiple-files-update
+ Called with @kbd{C-u} as a prefix argument:
+ 
+ @itemize @minus{}
+ @item
+ Create or update pointers in the first @code{@@node} line in each
+ included file.
+ 
+ @item
+ Create or update the `Top' level node pointers of the outer file.
+ 
+ @item
+ Create and insert a master menu in the outer file.  The master menu
+ is made from all the menus in all the included files.@refill
+ @end itemize
+ 
+ @item C-u 8 M-x texinfo-multiple-files-update
+ Called with a numeric prefix argument, such as @kbd{C-u 8}:
+ 
+ @itemize @minus
+ @item
+ Create or update @strong{all} the `Next', `Previous', and `Up' pointers
+ of all the included files.@refill
+ 
+ @item
+ Create or update @strong{all} the menus of all the included
+ files.@refill
+ 
+ @item
+ Create or update the `Top' level node pointers of the outer or
+ overall file.@refill
+ 
+ @item
+ And then create a master menu in the outer file.  This is similar to
+ invoking @code{texinfo-master-menu} with an argument when you are
+ working with just one file.@refill
+ @end itemize
+ @end table
+ 
+ Note the use of the prefix argument in interactive use: with a regular
+ prefix argument, just @w{@kbd{C-u}}, the
+ @code{texinfo-multiple-files-update} command inserts a master menu;
+ with a numeric prefix argument, such as @kbd{C-u 8}, the command
+ updates @strong{every} pointer and menu in @strong{all} the files and then inserts a
+ master menu.@refill
+ 
+ 
+ @node Include Files Requirements
+ @section Include Files Requirements
+ @cindex Include files requirements
+ @cindex Requirements for include files
+ 
+ If you plan to use the @code{texinfo-multiple-files-update} command,
+ the outer Texinfo file that lists included files within it should
+ contain nothing but the beginning and end parts of a Texinfo file, and
+ a number of @code{@@include} commands listing the included files.  It
+ should not even include indices, which should be listed in an included
+ file of their own.@refill
+ 
+ Moreover, each of the included files must contain exactly one highest
+ level node (conventionally, @code{@@chapter} or equivalent),
+ and this node must be the first node in the included file.
+ Furthermore, each of these highest level nodes in each included file
+ must be at the same hierarchical level in the file structure.
+ Usually, each is an @code{@@chapter}, an @code{@@appendix}, or an
+ @code{@@unnumbered} node.  Thus, normally, each included file contains
+ one, and only one, chapter or equivalent-level node.@refill
+ 
+ The outer file should contain only @emph{one} node, the `Top' node.  It
+ should @emph{not} contain any nodes besides the single `Top' node.  The
+ @code{texinfo-multiple-files-update} command will not process
+ them.@refill
+ 
+ 
+ @node Sample Include File
+ @section Sample File with @code{@@include}
+ @cindex Sample @code{@@include} file
+ @cindex Include file sample
+ @cindex @code{@@include} file sample
+ 
+ Here is an example of an outer Texinfo file with @code{@@include} files
+ within it before running @code{texinfo-multiple-files-update}, which
+ would insert a main or master menu:
+ 
+ @example
+ @group
+ \input texinfo @@c -*-texinfo-*-
+ @c %**start of header
+ @@setfilename include-example.info
+ @@settitle Include Example
+ @c %**end of header
+ @end group
+ 
+ ... @xref{Sample Texinfo Files}, for
+ examples of the rest of the frontmatter ...
+ 
+ @group
+ @@ifnottex
+ @@node Top
+ @@top Include Example
+ @@end ifnottex
+ @end group
+ 
+ @group
+ @@include foo.texinfo
+ @@include bar.texinfo
+ @@include concept-index.texinfo
+ @@bye
+ @end group
+ @end example
+ 
+ An included file, such as @file{foo.texinfo}, might look like this:
+ 
+ @example
+ @group
+ @@node First
+ @@chapter First Chapter
+ 
+ Contents of first chapter @dots{}
+ @end group
+ @end example
+ 
+ The full contents of @file{concept-index.texinfo} might be as simple as this:
+ 
+ @example
+ @group
+ @@node Concept Index
+ @@unnumbered Concept Index
+ 
+ @@printindex cp
+ @end group
+ @end example
+ 
+ The outer Texinfo source file for @cite{The GNU Emacs Lisp Reference
+ Manual} is named @file{elisp.texi}.  This outer file contains a master
+ menu with 417 entries and a list of 41 @code{@@include}
+ files.
+ 
+ 
+ @node Include Files Evolution
+ @section Evolution of Include Files
+ 
+ When Info was first created, it was customary to create many small
+ Info files on one subject.  Each Info file was formatted from its own
+ Texinfo source file.  This custom meant that Emacs did not need to
+ make a large buffer to hold the whole of a large Info file when
+ someone wanted information; instead, Emacs allocated just enough
+ memory for the small Info file that contained the particular
+ information sought.  This way, Emacs could avoid wasting memory.@refill
+ 
+ References from one file to another were made by referring to the file
+ name as well as the node name. (@xref{Other Info Files, , Referring to
+ Other Info Files}.  Also, see @ref{Four and Five Arguments, ,
+ @code{@@xref} with Four and Five Arguments}.)@refill
+ 
+ Include files were designed primarily as a way to create a single,
+ large printed manual out of several smaller Info files.  In a printed
+ manual, all the references were within the same document, so @TeX{}
+ could automatically determine the references' page numbers.  The Info
+ formatting commands used include files only for creating joint
+ indices; each of the individual Texinfo files had to be formatted for
+ Info individually.  (Each, therefore, required its own
+ @code{@@setfilename} line.)@refill
+ 
+ However, because large Info files are now split automatically, it is
+ no longer necessary to keep them small.@refill
+ 
+ Nowadays, multiple Texinfo files are used mostly for large documents,
+ such as @cite{The GNU Emacs Lisp Reference Manual}, and for projects
+ in which several different people write different sections of a
+ document simultaneously.@refill
+ 
+ In addition, the Info formatting commands have been extended to work
+ with the @code{@@include} command so as to create a single large Info
+ file that is split into smaller files if necessary.  This means that
+ you can write menus and cross references without naming the different
+ Texinfo files.@refill
+ 
+ 
+ @node Headings
+ @appendix Page Headings
+ @cindex Headings
+ @cindex Footings
+ @cindex Page numbering
+ @cindex Page headings
+ @cindex Formatting headings and footings
+ 
+ Most printed manuals contain headings along the top of every page
+ except the title and copyright pages.  Some manuals also contain
+ footings.  (Headings and footings have no meaning to Info, which is
+ not paginated.)@refill
+ 
+ @menu
+ * Headings Introduced::         Conventions for using page headings.
+ * Heading Format::              Standard page heading formats.
+ * Heading Choice::              How to specify the type of page heading.
+ * Custom Headings::             How to create your own headings and footings.
+ @end menu
+ 
+ @node Headings Introduced
+ @section Headings Introduced
+ 
+ Texinfo provides standard page heading formats for manuals that are
+ printed on one side of each sheet of paper and for manuals that are
+ printed on both sides of the paper.  Typically, you will use these
+ formats, but you can specify your own format if you wish.@refill
+ 
+ In addition, you can specify whether chapters should begin on a new
+ page, or merely continue the same page as the previous chapter; and if
+ chapters begin on new pages, you can specify whether they must be
+ odd-numbered pages.@refill
+ 
+ By convention, a book is printed on both sides of each sheet of paper.
+ When you open a book, the right-hand page is odd-numbered, and
+ chapters begin on right-hand pages---a preceding left-hand page is
+ left blank if necessary.  Reports, however, are often printed on just
+ one side of paper, and chapters begin on a fresh page immediately
+ following the end of the preceding chapter.  In short or informal
+ reports, chapters often do not begin on a new page at all, but are
+ separated from the preceding text by a small amount of whitespace.@refill
+ 
+ The @code{@@setchapternewpage} command controls whether chapters begin
+ on new pages, and whether one of the standard heading formats is used.
+ In addition, Texinfo has several heading and footing commands that you
+ can use to generate your own heading and footing formats.@refill
+ 
+ In Texinfo, headings and footings are single lines at the tops and
+ bottoms of pages; you cannot create multiline headings or footings.
+ Each header or footer line is divided into three parts: a left part, a
+ middle part, and a right part.  Any part, or a whole line, may be left
+ blank.  Text for the left part of a header or footer line is set
+ flushleft; text for the middle part is centered; and, text for the
+ right part is set flushright.@refill
+ 
+ @node Heading Format
+ @comment  node-name,  next,  previous,  up
+ @section Standard Heading Formats
+ 
+ Texinfo provides two standard heading formats, one for manuals printed
+ on one side of each sheet of paper, and the other for manuals printed
+ on both sides of the paper.
+ 
+ By default, nothing is specified for the footing of a Texinfo file,
+ so the footing remains blank.@refill
+ 
+ The standard format for single-sided printing consists of a header
+ line in which the left-hand part contains the name of the chapter, the
+ central part is blank, and the right-hand part contains the page
+ number.@refill
+ 
+ @need 950
+ A single-sided page looks like this:
+ 
+ @example
+ @group
+   _______________________
+  |                       |
+  | chapter   page number |
+  |                       |
+  | Start of text ...     |
+  | ...                   |
+  |                       |
+ @end group
+ @end example
+ 
+ The standard format for two-sided printing depends on whether the page
+ number is even or odd.  By convention, even-numbered pages are on the
+ left- and odd-numbered pages are on the right.  (@TeX{} will adjust the
+ widths of the left- and right-hand margins.  Usually, widths are
+ correct, but during double-sided printing, it is wise to check that
+ pages will bind properly---sometimes a printer will produce output in
+ which the even-numbered pages have a larger right-hand margin than the
+ odd-numbered pages.)@refill
+ 
+ In the standard double-sided format, the left part of the left-hand
+ (even-numbered) page contains the page number, the central part is
+ blank, and the right part contains the title (specified by the
+ @code{@@settitle} command).  The left part of the right-hand
+ (odd-numbered) page contains the name of the chapter, the central part
+ is blank, and the right part contains the page number.@refill
+ 
+ @need 750
+ Two pages, side by side as in an open book, look like this:@refill
+ 
+ @example
+ @group
+   _______________________     _______________________
+  |                       |   |                       |
+  | page number     title |   | chapter   page number |
+  |                       |   |                       |
+  | Start of text ...     |   | More  text ...        |
+  | ...                   |   | ...                   |
+  |                       |   |                       |
+ @end group
+ @end example
+ 
+ @noindent
+ The chapter name is preceded by the word ``Chapter'', the chapter number
+ and a colon.  This makes it easier to keep track of where you are in the
+ manual.@refill
+ 
+ @node Heading Choice
+ @comment  node-name,  next,  previous,  up
+ @section Specifying the Type of Heading
+ 
+ @TeX{} does not begin to generate page headings for a standard Texinfo
+ file until it reaches the @code{@@end titlepage} command.  Thus, the
+ title and copyright pages are not numbered.  The @code{@@end
+ titlepage} command causes @TeX{} to begin to generate page headings
+ according to a standard format specified by the
+ @code{@@setchapternewpage} command that precedes the
+ @code{@@titlepage} section.@refill
+ 
+ @need 1000
+ There are four possibilities:@refill
+ 
+ @table @asis
+ @item No @code{@@setchapternewpage} command
+ Cause @TeX{} to specify the single-sided heading format, with chapters
+ on new pages. This is the same as @code{@@setchapternewpage on}.@refill
+ 
+ @item @code{@@setchapternewpage on}
+ Specify the single-sided heading format, with chapters on new pages.@refill
+ 
+ @item @code{@@setchapternewpage off}
+ Cause @TeX{} to start a new chapter on the same page as the last page of
+ the preceding chapter, after skipping some vertical whitespace.  Also
+ cause @TeX{} to typeset for single-sided printing.  (You can override
+ the headers format with the @code{@@headings double} command; see
+ @ref{headings on off, , The @code{@@headings} Command}.)@refill
+ 
+ @item @code{@@setchapternewpage odd}
+ Specify the double-sided heading format, with chapters on new pages.@refill
+ @end table
+ 
+ @noindent
+ Texinfo lacks an @code{@@setchapternewpage even} command.@refill
+ 
+ @node Custom Headings
+ @comment  node-name,  next,  previous,  up
+ @section How to Make Your Own Headings
+ 
+ You can use the standard headings provided with Texinfo or specify
+ your own.  By default, Texinfo has no footers, so if you specify them,
+ the available page size for the main text will be slightly reduced.
+ 
+ Texinfo provides six commands for specifying headings and
+ footings:
+ @itemize @bullet
+ @item
+ @code{@@everyheading} @code{@@everyfooting} generate page headers and
+ footers that are the same for both even- and odd-numbered pages.
+ @item
+ @code{@@evenheading} and @code{@@evenfooting} command generate headers
+ and footers for even-numbered (left-hand) pages.
+ @item
+ @code{@@oddheading} and @code{@@oddfooting} generate headers and footers
+ for odd-numbered (right-hand) pages.
+ @end itemize
+ 
+ Write custom heading specifications in the Texinfo file immediately
+ after the @code{@@end titlepage} command.
+ You must cancel the predefined heading commands with the
+ @code{@@headings off} command before defining your own
+ specifications.
+ 
+ @need 1000
+ Here is how to tell @TeX{} to place the chapter name at the left, the
+ page number in the center, and the date at the right of every header
+ for both even- and odd-numbered pages:
+ 
+ @example
+ @group
+ @@headings off
+ @@everyheading @@thischapter @@| @@thispage @@| @@today@{@}
+ @end group
+ @end example
+ 
+ @noindent
+ You need to divide the left part from the central part and the central
+ part from the right part by inserting @samp{@@|} between parts.
+ Otherwise, the specification command will not be able to tell where
+ the text for one part ends and the next part begins.
+ 
+ Each part can contain text or @@-commands.  The text
+ is printed as if the part were within an ordinary paragraph in the
+ body of the page.  The @@-commands replace
+ themselves with the page number, date, chapter name, or
+ whatever.
+ 
+ @need 950
+ Here are the six heading and footing commands:
+ 
+ @table @code
+ @item @@everyheading @var{left} @@| @var{center} @@| @var{right}
+ @itemx @@everyfooting @var{left} @@| @var{center} @@| @var{right}
+ @findex everyheading
+ @findex everyfooting
+ The `every' commands specify the format for both even- and odd-numbered
+ pages.  These commands are for documents that are printed on one side
+ of each sheet of paper, or for documents in which you want symmetrical
+ headers or footers.
+ 
+ @item @@evenheading @var{left} @@| @var{center} @@| @var{right}
+ @itemx @@oddheading  @var{left} @@| @var{center} @@| @var{right}
+ @itemx @@evenfooting @var{left} @@| @var{center} @@| @var{right}
+ @itemx @@oddfooting  @var{left} @@| @var{center} @@| @var{right}
+ @findex evenheading
+ @findex evenfooting
+ @findex oddheading
+ @findex oddfooting
+ The `even' and `odd' commands specify the format for even-numbered
+ pages and odd-numbered pages.  These commands are for books and
+ manuals that are printed on both sides of each sheet of paper.
+ @end table
+ 
+ Use the @samp{@@this@dots{}} series of @@-commands to
+ provide the names of chapters
+ and sections and the page number.  You can use the
+ @samp{@@this@dots{}} commands in the left, center, or right portions
+ of headers and footers, or anywhere else in a Texinfo file so long as
+ they are between @code{@@iftex} and @code{@@end iftex} commands.
+ 
+ @need 1000
+ Here are the @samp{@@this@dots{}} commands:
+ 
+ @table @code
+ @item @@thispage
+ @findex thispage
+ Expands to the current page number.
+ 
+ @item @@thissectionname
+ @findex thissectionname
+ Expands to the name of the current section.
+ 
+ @item @@thissectionnum
+ @findex thissectionnum
+ Expands to the number of the current section.
+ 
+ @item @@thissection
+ @findex thissection
+ Expands to the number and name of the current section, in the format
+ `Section 1: Title'.
+ 
+ @item @@thischaptername
+ @findex thischaptername
+ Expands to the name of the current chapter.
+ 
+ @item @@thischapternum
+ @findex thischapternum
+ Expands to the number of the current chapter, or letter of the current
+ appendix.
+ 
+ @item @@thischapter
+ @findex thischapter
+ Expands to the number and name of the current
+ chapter, in the format `Chapter 1: Title'.
+ 
+ @item @@thistitle
+ @findex thistitle
+ Expands to the name of the document, as specified by the
+ @code{@@settitle} command.
+ 
+ @item @@thisfile
+ @findex thisfile
+ For @code{@@include} files only: expands to the name of the current
+ @code{@@include} file.  If the current Texinfo source file is not an
+ @code{@@include} file, this command has no effect.  This command does
+ @emph{not} provide the name of the current Texinfo source file unless
+ it is an @code{@@include} file.  (@xref{Include Files}, for more
+ information about @code{@@include} files.)
+ @end table
+ 
+ @noindent
+ You can also use the @code{@@today@{@}} command, which expands to the
+ current date, in `1 Jan 1900' format.
+ @findex today
+ 
+ Other @@-commands and text are printed in a header or footer just as
+ if they were in the body of a page.  It is useful to incorporate text,
+ particularly when you are writing drafts:
+ 
+ @example
+ @group
+ @@headings off
+ @@everyheading @@emph@{Draft!@} @@| @@thispage @@| @@thischapter
+ @@everyfooting @@| @@| Version: 0.27: @@today@{@}
+ @end group
+ @end example
+ 
+ Beware of overlong titles: they may overlap another part of the
+ header or footer and blot it out.
+ 
+ If you have very short chapters and/or sections, several of them can
+ appear on a single page.  You can specify which chapters and sections
+ you want @code{@@thischapter}, @code{@@thissection} and other such
+ macros to refer to on such pages as follows:
+ 
+ @table @code
+ @item @@everyheadingmarks @var{ref}
+ @itemx @@everyfootingmarks @var{ref}
+ @findex everyheadingmarks
+ @findex everyfootingmarks
+ The @var{ref} argument can be either @code{top} (the @code{@@this...}
+ commands will refer to the chapter/section at the top of a page) or
+ @code{bottom} (the commands will reflect the situation at the bottom
+ of a page).  These @samp{@@every...} commands specify what to do on
+ both even- and odd-numbered pages.
+ 
+ @item @@evenheadingmarks @var{ref}
+ @itemx @@oddheadingmarks @var{ref}
+ @itemx @@evenfootingmarks @var{ref}
+ @itemx @@oddfootingmarks @var{ref}
+ @findex evenheadingmarks
+ @findex oddheadingmarks
+ @findex evenfootingmarks
+ @findex oddfootingmarks
+ These @samp{@@even...} and @samp{@@odd...} commands specify what to do
+ on only even- or odd-numbered pages, respectively.  The @var{ref}
+ argument is the same as with the @samp{@@every...} commands.
+ @end table
+ 
+ Write these commands immediately after the @code{@@...contents}
+ commands, or after the @code{@@end titlepage} command if you don't
+ have a table of contents or if it is printed at the end of your
+ manual.
+ 
+ By default the @code{@@this...} commands reflect the situation at the
+ bottom of a page both in headings and in footings.
+ 
+ 
+ @node Catching Mistakes
+ @appendix Formatting Mistakes
+ @cindex Structure, catching mistakes in
+ @cindex Nodes, catching mistakes
+ @cindex Catching mistakes
+ @cindex Correcting mistakes
+ @cindex Mistakes, catching
+ @cindex Problems, catching
+ @cindex Debugging the Texinfo structure
+ 
+ Besides mistakes in the content of your documentation, there are two
+ kinds of mistake you can make with Texinfo: you can make mistakes with
+ @@-commands, and you can make mistakes with the structure of the nodes
+ and chapters.
+ 
+ Emacs has two tools for catching the @@-command mistakes and two for
+ catching structuring mistakes.@refill
+ 
+ For finding problems with @@-commands, you can run @TeX{} or a region
+ formatting command on the region that has a problem; indeed, you can
+ run these commands on each region as you write it.@refill
+ 
+ For finding problems with the structure of nodes and chapters, you can use
+ @kbd{C-c C-s} (@code{texinfo-show-structure}) and the related @code{occur}
+ command and you can use the @kbd{M-x Info-validate} command.@refill
+ 
+ @menu
+ * makeinfo Preferred::          @code{makeinfo} finds errors.
+ * Debugging with Info::         How to catch errors with Info formatting.
+ * Debugging with TeX::          How to catch errors with @TeX{} formatting.
+ * Using texinfo-show-structure::  How to use @code{texinfo-show-structure}.
+ * Using occur::                 How to list all lines containing a pattern.
+ * Running Info-Validate::       How to find badly referenced nodes.
+ @end menu
+ 
+ 
+ @node makeinfo Preferred
+ @section @code{makeinfo} Find Errors
+ 
+ The @code{makeinfo} program does an excellent job of catching errors
+ and reporting them---far better than @code{texinfo-format-region} or
+ @code{texinfo-format-buffer}.  In addition, the various functions for
+ automatically creating and updating node pointers and menus remove
+ many opportunities for human error.@refill
+ 
+ If you can, use the updating commands to create and insert pointers
+ and menus.  These prevent many errors.  Then use @code{makeinfo} (or
+ its Texinfo mode manifestations, @code{makeinfo-region} and
+ @code{makeinfo-buffer}) to format your file and check for other
+ errors.  This is the best way to work with Texinfo.  But if you
+ cannot use @code{makeinfo}, or your problem is very puzzling, then you
+ may want to use the tools described in this appendix.@refill
+ 
+ @node Debugging with Info
+ @comment  node-name,  next,  previous,  up
+ @section Catching Errors with Info Formatting
+ @cindex Catching errors with Info formatting
+ @cindex Debugging with Info formatting
+ 
+ After you have written part of a Texinfo file, you can use the
+ @code{texinfo-format-region} or the @code{makeinfo-region} command to
+ see whether the region formats properly.@refill
+ 
+ Most likely, however, you are reading this section because for some
+ reason you cannot use the @code{makeinfo-region} command; therefore, the
+ rest of this section presumes that you are using
+ @code{texinfo-format-region}.@refill
+ 
+ If you have made a mistake with an @@-command,
+ @code{texinfo-format-region} will stop processing at or after the
+ error and display an error message.  To see where in the buffer the
+ error occurred, switch to the @samp{*Info Region*} buffer; the cursor
+ will be in a position that is after the location of the error.  Also,
+ the text will not be formatted after the place where the error
+ occurred (or more precisely, where it was detected).@refill
+ 
+ For example, if you accidentally end a menu with the command @code{@@end
+ menus} with an `s' on the end, instead of with @code{@@end menu}, you
+ will see an error message that says:@refill
+ 
+ @example
+ @@end menus is not handled by texinfo
+ @end example
+ 
+ @noindent
+ The cursor will stop at the point in the buffer where the error
+ occurs, or not long after it.  The buffer will look like this:@refill
+ 
+ @example
+ @group
+ ---------- Buffer: *Info Region* ----------
+ * Menu:
+ 
+ * Using texinfo-show-structure::  How to use
+                                  `texinfo-show-structure'
+                                  to catch mistakes.
+ * Running Info-Validate::         How to check for
+                                  unreferenced nodes.
+ @@end menus
+ @point{}
+ ---------- Buffer: *Info Region* ----------
+ @end group
+ @end example
+ 
+ The @code{texinfo-format-region} command sometimes provides slightly
+ odd error messages.  For example, the following cross reference fails to format:@refill
+ 
+ @example
+ (@@xref@{Catching Mistakes, for more info.)
+ @end example
+ 
+ @noindent
+ In this case, @code{texinfo-format-region} detects the missing closing
+ brace but displays a message that says @samp{Unbalanced parentheses}
+ rather than @samp{Unbalanced braces}.  This is because the formatting
+ command looks for mismatches between braces as if they were
+ parentheses.@refill
+ 
+ Sometimes @code{texinfo-format-region} fails to detect mistakes.  For
+ example, in the following, the closing brace is swapped with the
+ closing parenthesis:@refill
+ 
+ @example
+ (@@xref@{Catching Mistakes), for more info.@}
+ @end example
+ 
+ @noindent
+ Formatting produces:
+ @example
+ (*Note for more info.: Catching Mistakes)
+ @end example
+ 
+ The only way for you to detect this error is to realize that the
+ reference should have looked like this:@refill
+ 
+ @example
+ (*Note Catching Mistakes::, for more info.)
+ @end example
+ 
+ Incidentally, if you are reading this node in Info and type @kbd{f
+ @key{RET}} (@code{Info-follow-reference}), you will generate an error
+ message that says:
+ 
+ @example
+ No such node: "Catching Mistakes) The only way @dots{}
+ @end example
+ 
+ @noindent
+ This is because Info perceives the example of the error as the first
+ cross reference in this node and if you type a @key{RET} immediately
+ after typing the Info @kbd{f} command, Info will attempt to go to the
+ referenced node.  If you type @kbd{f catch @key{TAB} @key{RET}}, Info
+ will complete the node name of the correctly written example and take
+ you to the `Catching Mistakes' node.  (If you try this, you can return
+ from the `Catching Mistakes' node by typing @kbd{l}
+ (@code{Info-last}).)
+ 
+ @c !!! section on using Elisp debugger ignored.
+ @ignore
+ Sometimes @code{texinfo-format-region} will stop long after the
+ original error; this is because it does not discover the problem until
+ then.  In this case, you will need to backtrack.@refill
+ 
+ @c menu
+ @c * Using the Emacs Lisp Debugger::  How to use the Emacs Lisp debugger.
+ @c end menu
+ 
+ @c node Using the Emacs Lisp Debugger
+ @c appendixsubsec Using the Emacs Lisp Debugger
+ @c index Using the Emacs Lisp debugger
+ @c index Emacs Lisp debugger
+ @c index Debugger, using the Emacs Lisp
+ 
+ If an error is especially elusive, you can turn on the Emacs Lisp
+ debugger and look at the backtrace; this tells you where in the
+ @code{texinfo-format-region} function the problem occurred.  You can
+ turn on the debugger with the command:@refill
+ 
+ @example
+ M-x set-variable @key{RET} debug-on-error @key{RET} t @key{RET}
+ @end example
+ 
+ @noindent
+ and turn it off with
+ 
+ @example
+ M-x set-variable @key{RET} debug-on-error @key{RET} nil @key{RET}
+ @end example
+ 
+ Often, when you are using the debugger, it is easier to follow what is
+ going on if you use the Emacs Lisp files that are not byte-compiled.
+ The byte-compiled sources send octal numbers to the debugger that may
+ look mysterious.  To use the uncompiled source files, load
+ @file{texinfmt.el} and @file{texinfo.el} with the @kbd{M-x load-file}
+ command.@refill
+ 
+ The debugger will not catch an error if @code{texinfo-format-region}
+ does not detect one.  In the example shown above,
+ @code{texinfo-format-region} did not find the error when the whole
+ list was formatted, but only when part of the list was formatted.
+ When @code{texinfo-format-region} did not find an error, the debugger
+ did not find one either. @refill
+ 
+ However, when @code{texinfo-format-region} did report an error, it
+ invoked the debugger.  This is the backtrace it produced:@refill
+ 
+ @example
+ ---------- Buffer: *Backtrace* ----------
+ Signalling: (search-failed "[@},]")
+  re-search-forward("[@},]")
+  (while ...)
+  (let ...)
+  texinfo-format-parse-args()
+  (let ...)
+  texinfo-format-xref()
+  funcall(texinfo-format-xref)
+  (if ...)
+  (let ...)
+  (if ...)
+  (while ...)
+  texinfo-format-scan()
+  (save-excursion ...)
+  (let ...)
+  texinfo-format-region(103370 103631)
+ * call-interactively(texinfo-format-region)
+ ---------- Buffer: *Backtrace* ----------
+ @end example
+ 
+ The backtrace is read from the bottom up.
+ @code{texinfo-format-region} was called interactively; and it, in
+ turn, called various functions, including @code{texinfo-format-scan},
+ @code{texinfo-format-xref} and @code{texinfo-format-parse-args}.
+ Inside the function @code{texinfo-format-parse-args}, the function
+ @code{re-search-forward} was called; it was this function that could
+ not find the missing right-hand brace.@refill
+ 
+ @xref{Lisp Debug, , Debugging Emacs Lisp, emacs, The GNU Emacs
+ Manual}, for more information.@refill
+ @end ignore
+ 
+ @node Debugging with TeX
+ @comment  node-name,  next,  previous,  up
+ @section Catching Errors with @TeX{} Formatting
+ @cindex Catching errors with @TeX{} formatting
+ @cindex Debugging with @TeX{} formatting
+ 
+ You can also catch mistakes when you format a file with @TeX{}.@refill
+ 
+ Usually, you will want to do this after you have run
+ @code{texinfo-format-buffer} (or, better, @code{makeinfo-buffer}) on
+ the same file, because @code{texinfo-format-buffer} sometimes displays
+ error messages that make more sense than @TeX{}.  (@xref{Debugging
+ with Info}, for more information.)@refill
+ 
+ For example, @TeX{} was run on a Texinfo file, part of which is shown
+ here:@refill
+ 
+ @example
+ ---------- Buffer: texinfo.texi ----------
+ name of the Texinfo file as an extension.  The
+ @@samp@{??@} are `wildcards' that cause the shell to
+ substitute all the raw index files.  (@@xref@{sorting
+ indices, for more information about sorting
+ indices.)@@refill
+ ---------- Buffer: texinfo.texi ----------
+ @end example
+ 
+ @noindent
+ (The cross reference lacks a closing brace.)
+ @TeX{} produced the following output, after which it stopped:@refill
+ 
+ @example
+ ---------- Buffer: *tex-shell* ----------
+ Runaway argument?
+ @{sorting indices, for more information about sorting
+ indices.) @@refill @@ETC.
+ ! Paragraph ended before @@xref was complete.
+ <to be read again>
+                   @@par
+ l.27
+ 
+ ?
+ ---------- Buffer: *tex-shell* ----------
+ @end example
+ 
+ In this case, @TeX{} produced an accurate and
+ understandable error message:
+ 
+ @example
+ Paragraph ended before @@xref was complete.
+ @end example
+ 
+ @noindent
+ @samp{@@par} is an internal @TeX{} command of no relevance to Texinfo.
+ @samp{l.27} means that @TeX{} detected the problem on line 27 of the
+ Texinfo file.  The @samp{?} is the prompt @TeX{} uses in this
+ circumstance.@refill
+ 
+ Unfortunately, @TeX{} is not always so helpful, and sometimes you must
+ truly be a Sherlock Holmes to discover what went wrong.@refill
+ 
+ In any case, if you run into a problem like this, you can do one of three
+ things.@refill
+ 
+ @enumerate
+ @item
+ You can tell @TeX{} to continue running and ignore just this error by
+ typing @key{RET} at the @samp{?} prompt.@refill
+ 
+ @item
+ You can tell @TeX{} to continue running and to ignore all errors as best
+ it can by typing @kbd{r @key{RET}} at the @samp{?} prompt.@refill
+ 
+ This is often the best thing to do.  However, beware: the one error
+ may produce a cascade of additional error messages as its consequences
+ are felt through the rest of the file.  To stop @TeX{} when it is
+ producing such an avalanche of error messages, type @kbd{C-c} (or
+ @kbd{C-c C-c}, if you are running a shell inside Emacs).
+ 
+ @item
+ You can tell @TeX{} to stop this run by typing @kbd{x @key{RET}}
+ at the @samp{?} prompt.@refill
+ @end enumerate
+ 
+ If you are running @TeX{} inside Emacs, you need to switch to the shell
+ buffer and line at which @TeX{} offers the @samp{?} prompt.
+ 
+ Sometimes @TeX{} will format a file without producing error messages even
+ though there is a problem.  This usually occurs if a command is not ended
+ but @TeX{} is able to continue processing anyhow.  For example, if you fail
+ to end an itemized list with the @code{@@end itemize} command, @TeX{} will
+ write a DVI file that you can print out.  The only error message that
+ @TeX{} will give you is the somewhat mysterious comment that@refill
+ 
+ @example
+ (@@end occurred inside a group at level 1)
+ @end example
+ 
+ @noindent
+ However, if you print the DVI file, you will find that the text
+ of the file that follows the itemized list is entirely indented as if
+ it were part of the last item in the itemized list.  The error message
+ is the way @TeX{} says that it expected to find an @code{@@end}
+ command somewhere in the file; but that it could not determine where
+ it was needed.@refill
+ 
+ Another source of notoriously hard-to-find errors is a missing
+ @code{@@end group} command.  If you ever are stumped by
+ incomprehensible errors, look for a missing @code{@@end group} command
+ first.@refill
+ 
+ If the Texinfo file lacks header lines,
+ @TeX{} may stop in the
+ beginning of its run and display output that looks like the following.
+ The @samp{*} indicates that @TeX{} is waiting for input.@refill
+ 
+ @example
+ This is TeX, Version 3.14159 (Web2c 7.0)
+ (test.texinfo [1])
+ *
+ @end example
+ 
+ @noindent
+ In this case, simply type @kbd{\end @key{RET}} after the asterisk.  Then
+ write the header lines in the Texinfo file and run the @TeX{} command
+ again. (Note the use of the backslash, @samp{\}.  @TeX{} uses @samp{\}
+ instead of @samp{@@}; and in this circumstance, you are working
+ directly with @TeX{}, not with Texinfo.)@refill
+ 
+ @node Using texinfo-show-structure
+ @comment  node-name,  next,  previous,  up
+ @section Using @code{texinfo-show-structure}
+ @cindex Showing the structure of a file
+ @findex texinfo-show-structure
+ 
+ It is not always easy to keep track of the nodes, chapters, sections, and
+ subsections of a Texinfo file.  This is especially true if you are revising
+ or adding to a Texinfo file that someone else has written.@refill
+ 
+ In GNU Emacs, in Texinfo mode, the @code{texinfo-show-structure}
+ command lists all the lines that begin with the @@-commands that
+ specify the structure: @code{@@chapter}, @code{@@section},
+ @code{@@appendix}, and so on.  With an argument (@w{@kbd{C-u}}
+ as prefix argument, if interactive),
+ the command also shows the @code{@@node} lines.  The
+ @code{texinfo-show-structure} command is bound to @kbd{C-c C-s} in
+ Texinfo mode, by default.@refill
+ 
+ The lines are displayed in a buffer called the @samp{*Occur*} buffer,
+ indented by hierarchical level.  For example, here is a part of what was
+ produced by running @code{texinfo-show-structure} on this manual:@refill
+ 
+ @example
+ @group
+ Lines matching "^@@\\(chapter \\|sect\\|subs\\|subh\\|
+ unnum\\|major\\|chapheading \\|heading \\|appendix\\)"
+ in buffer texinfo.texi.
+ @dots{}
+ 4177:@@chapter Nodes
+ 4198:    @@heading Two Paths
+ 4231:    @@section Node and Menu Illustration
+ 4337:    @@section The @@code@{@@@@node@} Command
+ 4393:        @@subheading Choosing Node and Pointer Names
+ 4417:        @@subsection How to Write an @@code@{@@@@node@} Line
+ 4469:        @@subsection @@code@{@@@@node@} Line Tips
+ @dots{}
+ @end group
+ @end example
+ 
+ This says that lines 4337, 4393, and 4417 of @file{texinfo.texi} begin
+ with the @code{@@section}, @code{@@subheading}, and @code{@@subsection}
+ commands respectively.  If you move your cursor into the @samp{*Occur*}
+ window, you can position the cursor over one of the lines and use the
+ @kbd{C-c C-c} command (@code{occur-mode-goto-occurrence}), to jump to
+ the corresponding spot in the Texinfo file.  @xref{Other Repeating
+ Search, , Using Occur, emacs, The GNU Emacs Manual}, for more
+ information about @code{occur-mode-goto-occurrence}.@refill
+ 
+ The first line in the @samp{*Occur*} window describes the @dfn{regular
+ expression} specified by @var{texinfo-heading-pattern}.  This regular
+ expression is the pattern that @code{texinfo-show-structure} looks for.
+ @xref{Regexps, , Using Regular Expressions, emacs, The GNU Emacs Manual},
+ for more information.@refill
+ 
+ When you invoke the @code{texinfo-show-structure} command, Emacs will
+ display the structure of the whole buffer.  If you want to see the
+ structure of just a part of the buffer, of one chapter, for example,
+ use the @kbd{C-x n n} (@code{narrow-to-region}) command to mark the
+ region.  (@xref{Narrowing, , , emacs, The GNU Emacs Manual}.)  This is
+ how the example used above was generated.  (To see the whole buffer
+ again, use @kbd{C-x n w} (@code{widen}).)@refill
+ 
+ If you call @code{texinfo-show-structure} with a prefix argument by
+ typing @w{@kbd{C-u C-c C-s}}, it will list lines beginning with
+ @code{@@node} as well as the lines beginning with the @@-sign commands
+ for @code{@@chapter}, @code{@@section}, and the like.@refill
+ 
+ You can remind yourself of the structure of a Texinfo file by looking at
+ the list in the @samp{*Occur*} window; and if you have mis-named a node
+ or left out a section, you can correct the mistake.@refill
+ 
+ @node Using occur
+ @comment  node-name,  next,  previous,  up
+ @section Using @code{occur}
+ @cindex Occurrences, listing with @code{@@occur}
+ @findex occur
+ 
+ Sometimes the @code{texinfo-show-structure} command produces too much
+ information.  Perhaps you want to remind yourself of the overall structure
+ of a Texinfo file, and are overwhelmed by the detailed list produced by
+ @code{texinfo-show-structure}.  In this case, you can use the @code{occur}
+ command directly.  To do this, type@refill
+ 
+ @example
+ @kbd{M-x occur}
+ @end example
+ 
+ @noindent
+ and then, when prompted, type a @dfn{regexp}, a regular expression for
+ the pattern you want to match.  (@xref{Regexps, , Regular Expressions,
+ emacs, The GNU Emacs Manual}.)  The @code{occur} command works from
+ the current location of the cursor in the buffer to the end of the
+ buffer.  If you want to run @code{occur} on the whole buffer, place
+ the cursor at the beginning of the buffer.@refill
+ 
+ For example, to see all the lines that contain the word
+ @samp{@@chapter} in them, just type @samp{@@chapter}.  This will
+ produce a list of the chapters.  It will also list all the sentences
+ with @samp{@@chapter} in the middle of the line.@refill
+ 
+ If you want to see only those lines that start with the word
+ @samp{@@chapter}, type @samp{^@@chapter} when prompted by
+ @code{occur}.  If you want to see all the lines that end with a word
+ or phrase, end the last word with a @samp{$}; for example,
+ @samp{catching mistakes$}.  This can be helpful when you want to see
+ all the nodes that are part of the same chapter or section and
+ therefore have the same `Up' pointer.@refill
+ 
+ @xref{Other Repeating Search, , Using Occur, emacs , The GNU Emacs Manual},
+ for more information.@refill
+ 
+ @node Running Info-Validate
+ @comment  node-name,  next,  previous,  up
+ @section Finding Badly Referenced Nodes
+ @findex Info-validate
+ @cindex Nodes, checking for badly referenced
+ @cindex Checking for badly referenced nodes
+ @cindex Looking for badly referenced nodes
+ @cindex Finding badly referenced nodes
+ @cindex Badly referenced nodes
+ 
+ You can use the @code{Info-validate} command to check whether any of
+ the `Next', `Previous', `Up' or other node pointers fail to point to a
+ node.  This command checks that every node pointer points to an
+ existing node.  The @code{Info-validate} command works only on Info
+ files, not on Texinfo files.@refill
+ 
+ The @code{makeinfo} program validates pointers automatically, so you
+ do not need to use the @code{Info-validate} command if you are using
+ @code{makeinfo}.  You only may need to use @code{Info-validate} if you
+ are unable to run @code{makeinfo} and instead must create an Info file
+ using @code{texinfo-format-region} or @code{texinfo-format-buffer}, or
+ if you write an Info file from scratch.@refill
+ 
+ @menu
+ * Using Info-validate::         How to run @code{Info-validate}.
+ * Unsplit::                     How to create an unsplit file.
+ * Tagifying::                   How to tagify a file.
+ * Splitting::                   How to split a file manually.
+ @end menu
+ 
+ @node Using Info-validate
+ @subsection Running @code{Info-validate}
+ @cindex Running @code{Info-validate}
+ @cindex Info validating a large file
+ @cindex Validating a large file
+ 
+ To use @code{Info-validate}, visit the Info file you wish to check and
+ type:@refill
+ 
+ @example
+ M-x Info-validate
+ @end example
+ 
+ @noindent
+ Note that the @code{Info-validate} command requires an upper case
+ `I'.  You may also need to create a tag table before running
+ @code{Info-validate}.  @xref{Tagifying}.
+ 
+ If your file is valid, you will receive a message that says ``File appears
+ valid''.  However, if you have a pointer that does not point to a node,
+ error messages will be displayed in a buffer called @samp{*problems in
+ info file*}.@refill
+ 
+ For example, @code{Info-validate} was run on a test file that contained
+ only the first node of this manual.  One of the messages said:@refill
+ 
+ @example
+ In node "Overview", invalid Next: Texinfo Mode
+ @end example
+ 
+ @noindent
+ This meant that the node called @samp{Overview} had a `Next' pointer that
+ did not point to anything (which was true in this case, since the test file
+ had only one node in it).@refill
+ 
+ Now suppose we add a node named @samp{Texinfo Mode} to our test case
+ but we do not specify a `Previous' for this node.  Then we will get
+ the following error message:@refill
+ 
+ @example
+ In node "Texinfo Mode", should have Previous: Overview
+ @end example
+ 
+ @noindent
+ This is because every `Next' pointer should be matched by a
+ `Previous' (in the node where the `Next' points) which points back.@refill
+ 
+ @code{Info-validate} also checks that all menu entries and cross references
+ point to actual nodes.@refill
+ 
+ @code{Info-validate} requires a tag table and does not work with files
+ that have been split.  (The @code{texinfo-format-buffer} command
+ automatically splits large files.)  In order to use @code{Info-validate}
+ on a large file, you must run @code{texinfo-format-buffer} with an
+ argument so that it does not split the Info file; and you must create a
+ tag table for the unsplit file.
+ 
+ @node Unsplit
+ @comment  node-name,  next,  previous,  up
+ @subsection Creating an Unsplit File
+ @cindex Creating an unsplit file
+ @cindex Unsplit file creation
+ 
+ You can run @code{Info-validate} only on a single Info file that has a
+ tag table.  The command will not work on the indirect subfiles that
+ are generated when a master file is split.  If you have a large file
+ (longer than 300,000 bytes or so), you need to run the
+ @code{texinfo-format-buffer} or @code{makeinfo-buffer} command in such
+ a way that it does not create indirect subfiles.  You will also need
+ to create a tag table for the Info file.  After you have done this,
+ you can run @code{Info-validate} and look for badly referenced
+ nodes.@refill
+ 
+ The first step is to create an unsplit Info file.  To prevent
+ @code{texinfo-format-buffer} from splitting a Texinfo file into
+ smaller Info files, give a prefix to the @kbd{M-x
+ texinfo-format-buffer} command:@refill
+ 
+ @example
+ C-u M-x texinfo-format-buffer
+ @end example
+ 
+ @noindent
+ or else
+ 
+ @example
+ C-u C-c C-e C-b
+ @end example
+ 
+ @noindent
+ When you do this, Texinfo will not split the file and will not create
+ a tag table for it. @refill
+ @cindex Making a tag table manually
+ @cindex Tag table, making manually
+ 
+ @node Tagifying
+ @subsection Tagifying a File
+ 
+ After creating an unsplit Info file, you must create a tag table for
+ it.  Visit the Info file you wish to tagify and type:@refill
+ 
+ @example
+ M-x Info-tagify
+ @end example
+ 
+ @noindent
+ (Note the upper case @samp{I} in @code{Info-tagify}.)  This creates an
+ Info file with a tag table that you can validate.@refill
+ 
+ The third step is to validate the Info file:@refill
+ 
+ @example
+ M-x Info-validate
+ @end example
+ 
+ @noindent
+ (Note the upper case @samp{I} in @code{Info-validate}.)
+ In brief, the steps are:@refill
+ 
+ @example
+ @group
+ C-u M-x texinfo-format-buffer
+ M-x Info-tagify
+ M-x Info-validate
+ @end group
+ @end example
+ 
+ After you have validated the node structure, you can rerun
+ @code{texinfo-format-buffer} in the normal way so it will construct a
+ tag table and split the file automatically, or you can make the tag
+ table and split the file manually.@refill
+ 
+ @node Splitting
+ @comment  node-name,  next,  previous,  up
+ @subsection Splitting a File Manually
+ @cindex Splitting an Info file manually
+ @cindex Info file, splitting manually
+ 
+ You should split a large file or else let the
+ @code{texinfo-format-buffer} or @code{makeinfo-buffer} command do it
+ for you automatically.  (Generally you will let one of the formatting
+ commands do this job for you.  @xref{Creating an Info File}.)@refill
+ 
+ The split-off files are called the indirect subfiles.@refill
+ 
+ Info files are split to save memory.  With smaller files, Emacs does not
+ have make such a large buffer to hold the information.@refill
+ 
+ If an Info file has more than 30 nodes, you should also make a tag
+ table for it. @xref{Using Info-validate}, for information
+ about creating a tag table.  (Again, tag tables are usually created
+ automatically by the formatting command; you only need to create a tag
+ table yourself if you are doing the job manually.  Most likely, you
+ will do this for a large, unsplit file on which you have run
+ @code{Info-validate}.)@refill
+ 
+ @c Info-split is autoloaded in `loaddefs.el' in Emacs 18.51
+ @ignore
+ Before running @code{Info-split}, you need to load the @code{info} library
+ into Emacs by giving the command @kbd{M-x load-library @key{RET} info
+ @key{RET}}.
+ @end ignore
+ 
+ Visit the Info file you wish to tagify and split and type the two
+ commands:@refill
+ 
+ @example
+ M-x Info-tagify
+ M-x Info-split
+ @end example
+ 
+ @noindent
+ (Note that the @samp{I} in @samp{Info} is upper case.)@refill
+ 
+ When you use the @code{Info-split} command, the buffer is modified into a
+ (small) Info file which lists the indirect subfiles.  This file should be
+ saved in place of the original visited file.  The indirect subfiles are
+ written in the same directory the original file is in, with names generated
+ by appending @samp{-} and a number to the original file name.@refill
+ 
+ The primary file still functions as an Info file, but it contains just
+ the tag table and a directory of subfiles.@refill
+ 
+ 
+ @ignore
+ The simple description in the command summary seems sufficient to me
+ these days, so ignore this appendix.  --karl, 13mar04.
+ 
+ @node Refilling Paragraphs
+ @appendix Refilling Paragraphs
+ @cindex Refilling paragraphs
+ @cindex Filling paragraphs
+ @cindex Paragraphs, filling
+ @findex refill
+ 
+ The @code{@@refill} command refills and, optionally, indents the first
+ line of a paragraph.@footnote{Perhaps the command should have been
+ called the @code{@@refillandindent} command, but @code{@@refill} is
+ shorter and the name was chosen before indenting was possible.} The
+ @code{@@refill} command is no longer important, but we describe it here
+ because you once needed it.  You will see it in many old Texinfo
+ files.@refill
+ 
+ Without refilling, paragraphs containing long @@-constructs may look
+ bad after formatting because the formatter removes @@-commands and
+ shortens some lines more than others.  In the past, neither the
+ @code{texinfo-format-region} command nor the
+ @code{texinfo-format-buffer} command refilled paragraphs
+ automatically.  The @code{@@refill} command had to be written at the
+ end of every paragraph to cause these formatters to fill them.  (Both
+ @TeX{} and @code{makeinfo} have always refilled paragraphs
+ automatically.)  Now, all the Info formatters automatically fill and
+ indent those paragraphs that need to be filled and indented.@refill
+ 
+ The @code{@@refill} command causes @code{texinfo-format-region} and
+ @code{texinfo-format-buffer} to refill a paragraph in the Info file
+ @emph{after} all the other processing has been done.  For this reason,
+ you can not use @code{@@refill} with a paragraph containing either
+ @code{@@*} or @code{@@w@{ @dots{} @}} since the refilling action will
+ override those two commands.@refill
+ 
+ The @code{texinfo-format-region} and @code{texinfo-format-buffer}
+ commands now automatically append @code{@@refill} to the end of each
+ paragraph that should be filled.  They do not append @code{@@refill} to
+ the ends of paragraphs that contain @code{@@*} or @w{@code{@@w@{ @dots{}@}}}
+ and therefore do not refill or indent them.@refill
+ 
+ @end ignore
+ 
+ 
+ @c These are no longer ``new'', and the explanations
+ @c are all given elsewhere anyway, I think.  --karl, 25apr97.
+ @c So ignore the entire appendix.
+ @ignore
+ @c node New Features, Command and Variable Index, Obtaining TeX, Top
+ @c appendix Second Edition Features
+ 
+ @tex
+ % Widen the space for the first column so three control-character
+ % strings fit in the first column.  Switched back to default .8in
+ % value at end of chapter.
+ \global\tableindent=1.0in
+ @end tex
+ 
+ The second edition of the Texinfo manual describes more than 20 new
+ Texinfo mode commands and more than 50 previously undocumented Texinfo
+ @@-commands.  This edition is more than twice the length of the first
+ edition.@refill
+ 
+ Here is a brief description of the new commands.@refill
+ 
+ @c menu
+ * New Texinfo Mode Commands::   The updating commands are especially useful.
+ * New Commands::                Many newly described @@-commands.
+ @c end menu
+ 
+ @c node New Texinfo Mode Commands, New Commands, Obtaining TeX, Obtaining TeX
+ @c appendixsec New Texinfo Mode Commands
+ 
+ Texinfo mode provides commands and features especially designed for
+ working with Texinfo files.  More than 20 new commands have been
+ added, including commands for automatically creating and updating
+ both nodes and menus.  This is a tedious task when done by hand.@refill
+ 
+ The keybindings are intended to be somewhat mnemonic.@refill
+ 
+ @c subheading Update all nodes and menus
+ 
+ The @code{texinfo-master-menu} command is the primary command:
+ 
+ @table @kbd
+ @item C-c C-u m
+ @itemx M-x texinfo-master-menu
+ Create or update a master menu.
+ With @kbd{C-u} as a prefix argument,
+ first create or update all nodes
+ and regular menus.
+ @end table
+ 
+ @c subheading Update Pointers
+ 
+ @noindent
+ Create or update `Next', `Previous', and `Up' node pointers.@refill
+ 
+ @noindent
+ @xref{Updating Nodes and Menus}.
+ 
+ @table @kbd
+ @item C-c C-u C-n
+ @itemx M-x texinfo-update-node
+ Update a node.
+ 
+ @item C-c C-u C-e
+ @itemx M-x texinfo-every-node-update
+ Update every node in the buffer.
+ @end table
+ 
+ @c subheading Update Menus
+ 
+ @noindent
+ Create or update menus.@refill
+ 
+ @noindent
+ @xref{Updating Nodes and Menus}.
+ 
+ @table @kbd
+ @item C-c C-u C-m
+ @itemx M-x texinfo-make-menu
+ Make or update a menu.
+ 
+ @item C-c C-u C-a
+ @itemx M-x texinfo-all-menus-update
+ Make or update all the menus in a buffer.
+ With @kbd{C-u} as a prefix argument,
+ first update all the nodes.
+ @end table
+ 
+ @c subheading Insert Title as Description
+ 
+ @noindent
+ Insert a node's chapter or section title in the space for the
+ description in a menu entry line; position point so you can edit the
+ insert.  (This command works somewhat differently than the other
+ insertion commands, which insert only a predefined string.)@refill
+ 
+ @noindent
+ @xref{Inserting, Inserting Frequently Used Commands}.
+ 
+ @table @kbd
+ @item C-c C-c C-d
+ Insert title.
+ @end table
+ 
+ @c subheading Format for Info
+ 
+ @noindent
+ Provide keybindings both for the Info formatting commands that are
+ written in Emacs Lisp and for @code{makeinfo} that is written in
+ C.@refill
+ 
+ @noindent
+ @xref{Info Formatting}.
+ 
+ @noindent
+ Use the Emacs lisp @code{texinfo-format@dots{}} commands:
+ 
+ @table @kbd
+ @item C-c C-e C-r
+ Format the region.
+ 
+ @item C-c C-e C-b
+ Format the buffer.
+ @end table
+ 
+ @noindent
+ Use @code{makeinfo}:
+ 
+ @table @kbd
+ @item C-c C-m C-r
+ Format the region.
+ 
+ @item C-c C-m C-b
+ Format the buffer.
+ 
+ @item C-c C-m C-l
+ Recenter the @code{makeinfo} output buffer.
+ 
+ @item C-c C-m C-k
+ Kill the @code{makeinfo} formatting job.
+ @end table
+ 
+ @c subheading Typeset and Print
+ 
+ @noindent
+ Typeset and print Texinfo documents from within Emacs.
+ 
+ @noindent
+ @xref{Printing}.
+ 
+ @table @kbd
+ @item C-c C-t C-b
+ Run @code{texi2dvi} on the buffer.
+ 
+ @item C-c C-t C-r
+ Run @TeX{} on the region.
+ 
+ @item C-c C-t C-i
+ Run @code{texindex}.
+ 
+ @item C-c C-t C-p
+ Print the DVI file.
+ 
+ @item C-c C-t C-q
+ Show the print queue.
+ 
+ @item C-c C-t C-d
+ Delete a job from the print queue.
+ 
+ @item C-c C-t C-k
+ Kill the current @TeX{} formatting job.
+ 
+ @item C-c C-t C-x
+ Quit a currently stopped @TeX{} formatting job.
+ 
+ @item C-c C-t C-l
+ Recenter the output buffer.
+ @end table
+ 
+ @c subheading Other Updating Commands
+ 
+ @noindent
+ The ``other updating commands'' do not have standard keybindings because
+ they are used less frequently.@refill
+ 
+ @noindent
+ @xref{Other Updating Commands}.
+ 
+ @table @kbd
+ @item M-x texinfo-insert-node-lines
+ Insert missing @code{@@node} lines using
+ section titles as node names.
+ 
+ @item M-x texinfo-multiple-files-update
+ Update a multi-file document.
+ With a numeric prefix, such as @kbd{C-u 8},
+ update  @strong{every} pointer and
+ menu in @strong{all} the files and
+ then insert a master menu.
+ 
+ @item M-x texinfo-indent-menu-description
+ Indent descriptions in menus.
+ 
+ @item M-x texinfo-sequential-node-update
+ Insert node pointers in strict sequence.
+ @end table
+ 
+ @c no.de New Commands,  , New Texinfo Mode Commands, Obtaining TeX
+ @c appendix.sec New Texinfo @@-Commands
+ 
+ The second edition of the Texinfo manual describes more than 50
+ commands that were not described in the first edition.  A third or so
+ of these commands existed in Texinfo but were not documented in the
+ manual; the others are new.  Here is a listing, with brief
+ descriptions of them:@refill
+ 
+ @c subheading Indexing
+ 
+ @noindent
+ Create your own index, and merge indices.@refill
+ 
+ @noindent
+ @xref{Indices}.
+ 
+ @table @kbd
+ @item @@defindex @var{index-name}
+ Define a new index and its indexing command.
+ See also the @code{@@defcodeindex} command.
+ 
+ @c written verbosely to avoid overfull hbox
+ @item @@synindex @var{from-index} @var{into-index}
+ Merge the @var{from-index} index into the @var{into-index} index.
+ See also the @code{@@syncodeindex} command.
+ @end table
+ 
+ @c subheading Definitions
+ 
+ @noindent
+ Describe functions, variables, macros,
+ commands, user options, special forms, and other such artifacts in a
+ uniform format.@refill
+ 
+ @noindent
+ @xref{Definition Commands}.
+ 
+ @table @kbd
+ @item @@deffn @var{category} @var{name} @var{arguments}@dots{}
+ Format a description for functions, interactive
+ commands, and similar entities.
+ 
+ @item @@defvr, @@defop, @dots{}
+ 15 other related commands.
+ @end table
+ 
+ @c subheading Glyphs
+ 
+ @noindent
+ Indicate the results of evaluation, expansion,
+ printed output, an error message, equivalence of expressions, and the
+ location of point.@refill
+ 
+ @noindent
+ @xref{Glyphs}.
+ 
+ @table @kbd
+ @item @@equiv@{@}
+ @itemx @equiv{}
+ Equivalence:
+ 
+ @item @@error@{@}
+ @itemx @error{}
+ Error message
+ 
+ @item @@expansion@{@}
+ @itemx @expansion{}
+ Macro expansion
+ 
+ @item @@point@{@}
+ @itemx @point{}
+ Position of point
+ 
+ @item @@print@{@}
+ @itemx @print{}
+ Printed output
+ 
+ @item @@result@{@}
+ @itemx @result{}
+ Result of an expression
+ @end table
+ 
+ @c subheading Page Headings
+ 
+ @noindent
+ Customize page headings.
+ 
+ @noindent
+ @xref{Headings}.
+ 
+ @table @kbd
+ @item @@headings @var{on-off-single-double}
+ Headings on or off, single, or double-sided.
+ 
+ @item @@evenfooting [@var{left}] @@| [@var{center}] @@| [@var{right}]
+ Footings for even-numbered (left-hand) pages.
+ 
+ @item @@evenheading, @@everyheading, @@oddheading, @dots{}
+ Five other related commands.
+ 
+ @item @@thischapter
+ Insert name of chapter and chapter number.
+ 
+ @item @@thischaptername, @@thisfile, @@thistitle, @@thispage
+ Related commands.
+ @end table
+ 
+ @c subheading Formatting
+ 
+ @noindent
+ Format blocks of text.
+ 
+ @noindent
+ @xref{Quotations and Examples}, and@*
+ @ref{Lists and Tables, , Making Lists and Tables}.
+ 
+ @table @kbd
+ @item @@cartouche
+ Draw rounded box surrounding text (no effect in Info).
+ 
+ @item @@enumerate @var{optional-arg}
+ Enumerate a list with letters or numbers.
+ 
+ @item @@exdent @var{line-of-text}
+ Remove indentation.
+ 
+ @item @@flushleft
+ Left justify.
+ 
+ @item @@flushright
+ Right justify.
+ 
+ @item @@format
+ Do not narrow nor change font.
+ 
+ @item @@ftable @var{formatting-command}
+ @itemx @@vtable @var{formatting-command}
+ Two-column table with indexing.
+ 
+ @item @@lisp
+ For an example of Lisp code.
+ 
+ @item @@smallexample
+ @itemx @@smalllisp
+ Like @@table and @@lisp, but for (originally) @@smallbook.
+ @end table
+ 
+ @c subheading Conditionals
+ 
+ @noindent
+ Conditionally format text.
+ 
+ @noindent
+ @xref{set clear value, , @code{@@set} @code{@@clear} @code{@@value}}.@refill
+ 
+ @table @kbd
+ @item @@set @var{flag} [@var{string}]
+ Set a flag.  Optionally, set value
+ of @var{flag} to @var{string}.
+ 
+ @item @@clear @var{flag}
+ Clear a flag.
+ 
+ @item @@value@{@var{flag}@}
+ Replace with value to which @var{flag} is set.
+ 
+ @item @@ifset @var{flag}
+ Format, if @var{flag} is set.
+ 
+ @item @@ifclear @var{flag}
+ Ignore, if @var{flag} is set.
+ @end table
+ 
+ @c subheading @@heading series for Titles
+ 
+ @noindent
+ Produce unnumbered headings that do not appear in a table of contents.
+ 
+ @noindent
+ @xref{Structuring}.
+ 
+ @table @kbd
+ @item @@heading @var{title}
+ Unnumbered section-like heading not listed
+ in the table of contents of a printed manual.
+ 
+ @item @@chapheading, @@majorheading, @@c subheading, @@subsubheading
+ Related commands.
+ @end table
+ 
+ @need 1000
+ @c subheading Font commands
+ 
+ @need 1000
+ @noindent
+ @xref{Smallcaps}, and @*
+ @ref{Fonts}.
+ 
+ @table @kbd
+ @item @@r@{@var{text}@}
+ Print in roman font.
+ 
+ @item @@sc@{@var{text}@}
+ Print in @sc{small caps} font.
+ @end table
+ 
+ @c subheading Miscellaneous
+ 
+ @noindent
+ See @ref{title subtitle author, , @code{@@title} @code{@@subtitle} and @code{@@author} Commands},@*
+ see @ref{Customized Highlighting},@*
+ see @ref{Overfull hboxes},@*
+ see @ref{Footnotes},@*
+ see @ref{dmn, , Format a Dimension},@*
+ see @ref{Raise/lower sections, , @code{@@raisesections} and @code{@@lowersections}},@*
+ see @ref{math, , @code{@@math}: Inserting Mathematical Expressions}.@*
+ see @ref{minus, , Inserting a Minus Sign},@*
+ see @ref{paragraphindent, , Paragraph Indenting},@*
+ see @ref{Cross Reference Commands},@*
+ see @ref{title subtitle author, , @code{@@title} @code{@@subtitle} and @code{@@author}}, and@*
+ see @ref{Custom Headings, , How to Make Your Own Headings}.
+ 
+ @table @kbd
+ @item @@author @var{author}
+ Typeset author's name.
+ 
+ @c @item @@definfoenclose @var{new-command}, @var{before}, @var{after},
+ @c Define a highlighting command for Info.  (Info only.)
+ 
+ @item @@finalout
+ Produce cleaner printed output.
+ 
+ @item @@footnotestyle @var{end-or-separate}
+ Specify footnote style, either @samp{end} or @samp{separate}.
+ @xref{Footnote Styles}.
+ 
+ @item @@dmn@{@var{dimension}@}
+ Format a dimension.
+ 
+ @item @@global@@let@var{new-cmd}=@var{existing-cmd}
+ Define a highlighting command for @TeX{}. (@TeX{} only.)
+ 
+ @item @@lowersections
+ Reduce hierarchical level of sectioning commands.
+ 
+ @item @@math@{@var{mathematical-expression}@}
+ Format a mathematical expression.
+ 
+ @item @@minus@{@}
+ Generate a minus sign.
+ 
+ @item @@paragraphindent @var{asis-or-number}
+ Specify paragraph indentation.
+ 
+ @item @@raisesections
+ Raise hierarchical level of sectioning commands.
+ 
+ @item @@ref@{@var{node-name}, @r{[}@var{entry}@r{]}, @r{[}@var{topic-or-title}@r{]}, @r{[}@var{info-file}@r{]}, @r{[}@var{manual}@r{]}@}
+ Make a reference.  In the printed manual, the
+ reference does not start with the word `see'.
+ 
+ @item @@title @var{title}
+ Typeset @var{title} in the alternative
+ title page format.
+ 
+ @item @@subtitle @var{subtitle}
+ Typeset @var{subtitle} in the alternative
+ title page format.
+ 
+ @item @@today@{@}
+ Insert the current date.
+ @end table
+ @tex
+ % Switch width of first column of tables back to default value
+ \global\tableindent=.8in
+ @end tex
+ @end ignore
+ 
+ 
+ @node GNU Free Documentation License
+ @appendix GNU Free Documentation License
+ 
+ @include fdl.texi
+ 
+ 
+ @node Command and Variable Index
+ @unnumbered Command and Variable Index
+ 
+ This is an alphabetical list of all the @@-commands, assorted Emacs Lisp
+ functions, and several variables.  To make the list easier to use, the
+ commands are listed without their preceding @samp{@@}.@refill
+ 
+ @printindex fn
+ 
+ 
+ @node General Index
+ @unnumbered General Index
+ 
+ @printindex cp
+ 
+ 
+ @bye
diff -Nrc2 texinfo-4.12/doc/txi-cs.tex texinfo-4.13/doc/txi-cs.tex
*** texinfo-4.12/doc/txi-cs.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-cs.tex	Sun Jul  1 12:06:03 2007
***************
*** 0 ****
--- 1,73 ----
+ % $Id: txi-cs.tex,v 1.5 2007/07/01 19:06:03 karl Exp $
+ % Czech translation for texinfo.tex.
+ %
+ % Copyright (C) 1999, 2000, 2007 Free Software Foundation.
+ % 
+ % Authors:
+ % Vladimir Michl <Vladimir.Michl@mujweb.cz>
+ % Stepan Kasal <kasal@ucw.cz>
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ %
+ \gdef\putwordAppendix{Pøílohy}
+ \gdef\putwordChapter{Kapitola}
+ \gdef\putwordfile{soubor}
+ \gdef\putwordin{v~knize}
+ \gdef\putwordIndexIsEmpty{(Rejstøík je prázdný.)}
+ \gdef\putwordIndexNonexistent{(Rejstøík neexistuje.)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordInstanceVariableof{Promìnná pro instance tøídy}
+ \gdef\putwordMethodon{Metoda tøídy}
+ \gdef\putwordNoTitle{Bez nadpisu}
+ \gdef\putwordof{tøídy}
+ \global\let\putwordon\putwordof
+ \gdef\putwordpage{stránka}
+ \gdef\putwordsection{oddíl}
+ \gdef\putwordSection{Oddíl}
+ \gdef\putwordsee{viz}
+ \gdef\putwordSee{Viz}
+ \gdef\putwordShortTOC{Struèný obsah}
+ \gdef\putwordTOC{Obsah}
+ %
+ \gdef\putwordMJan{ledna}
+ \gdef\putwordMFeb{února}
+ \gdef\putwordMMar{bøezna}
+ \gdef\putwordMApr{dubna}
+ \gdef\putwordMMai{kvìtna}
+ \gdef\putwordMJun{èervna}
+ \gdef\putwordMJul{èervence}
+ \gdef\putwordMAug{srpna}
+ \gdef\putwordMSep{záøí}
+ \gdef\putwordMOct{øíjna}
+ \gdef\putwordMNov{listopadu}
+ \gdef\putwordMDec{prosince}
+ %
+ \gdef\putwordDefmac{Makro}
+ \gdef\putwordDefspec{Speciální forma}
+ \gdef\putwordDefvar{Promìnná}
+ \gdef\putwordDefopt{Volby}
+ \gdef\putwordDeffunc{Funkce}
+ %
+ % Redefine \today to produce Czech
+ % preferred dates such as 28. januar 1999.
+ %
+ \gdef\today{%
+   \number\day.\nobreak\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMai\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \penalty3000\relax\space\number\year}
+ %
diff -Nrc2 texinfo-4.12/doc/txi-de.tex texinfo-4.13/doc/txi-de.tex
*** texinfo-4.12/doc/txi-de.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-de.tex	Sun Jul  1 15:32:12 2007
***************
*** 0 ****
--- 1,78 ----
+ % txi-de.tex -- adaptation to German for texinfo.tex.
+ % $Id: txi-de.tex,v 1.7 2007/07/01 22:32:12 karl Exp $
+ %
+ % Copyright (C) 1999, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ %
+ % Written by Karl Heinz Marbaise, 18. January 1999, <kama@hippo.fido.de>
+ %%
+ %% german translation of the used words.
+ %% Don't use checking because if it is our turn they have
+ %% been defined.
+ \gdef\putwordAppendix{Anhang}
+ \gdef\putwordChapter{Kapitel}
+ \gdef\putwordfile{Datei}
+ \gdef\putwordin{in}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordMethodon{Methode von}
+ \gdef\putwordon{auf}
+ \gdef\putwordof{von}
+ \gdef\putwordpage{Seite}
+ \gdef\putwordsection{Abschnitt}
+ \gdef\putwordSection{Abschnitt}
+ \gdef\putwordsee{siehe}
+ \gdef\putwordSee{Siehe}
+ \gdef\putwordShortTOC{Kurzverzeichnis}
+ \gdef\putwordTOC{Inhaltsverzeichnis}
+ %%
+ \gdef\putwordNoTitle{Kein Titel}
+ %%
+ %% New defintion for the output of months.
+ \gdef\putwordMJan{Januar}
+ \gdef\putwordMFeb{Februar}
+ \gdef\putwordMMar{M\"arz}
+ \gdef\putwordMApr{April}
+ \gdef\putwordMMai{Mai}
+ \gdef\putwordMJun{Juni}
+ \gdef\putwordMJul{Juli}
+ \gdef\putwordMAug{August}
+ \gdef\putwordMSep{September}
+ \gdef\putwordMOct{Oktober}
+ \gdef\putwordMNov{November}
+ \gdef\putwordMDec{Dezember}
+ %%
+ %% some hyphenation for german language. Might be changed.
+ \hyphenation{An-hang}
+ %%\hyphenation{mini-buf-fer mini-buf-fers}
+ %%\hyphenation{eshell}
+ %%\hyphenation{white-space}
+ %%
+ %% Index handling should also work correct in german
+ \gdef\putwordIndexNonexistent{(Index ist nicht vorhanden)}
+ \gdef\putwordIndexIsEmpty{(Der Index ist leer)}
+ %%
+ %% \defmac
+ \gdef\putwordDefmac{Makro}
+ %% \defspec
+ \gdef\putwordDefspec{Spezial Form}
+ %% \defivar
+ \gdef\putwordDefivar{exemplar Variable}
+ %% \defvar leave unchanged because no difference in
+ %%         writing but in phonectics.
+ \gdef\putwordDefvar{Variable}
+ %% \defopt
+ \gdef\putwordDefopt{Benutzer Option}
+ %% \deffun
+ \gdef\putwordDeffunc{Funktion}
diff -Nrc2 texinfo-4.12/doc/txi-en.tex texinfo-4.13/doc/txi-en.tex
*** texinfo-4.12/doc/txi-en.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-en.tex	Sun Jul  1 12:06:03 2007
***************
*** 0 ****
--- 1,68 ----
+ % English non-translation for texinfo.tex.  This is read when a source
+ % document says @documentlanguage en (which might happen after another
+ % @documentlanguage).  The actual values are the same as defaults.
+ % $Id: txi-en.tex,v 1.5 2007/07/01 19:06:03 karl Exp $
+ %
+ % Copyright (C) 1999, 2007 Free Software Foundation.
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+ \gdef\putwordAppendix{Appendix}
+ \gdef\putwordChapter{Chapter}
+ \gdef\putwordfile{file}
+ \gdef\putwordin{in}
+ \gdef\putwordIndexIsEmpty{(Index is empty)}
+ \gdef\putwordIndexNonexistent{(Index is nonexistent)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordInstanceVariableof{Instance Variable of}
+ \gdef\putwordMethodon{Method on}
+ \gdef\putwordNoTitle{No Title}
+ \gdef\putwordof{of}
+ \gdef\putwordon{on}
+ \gdef\putwordpage{page}
+ \gdef\putwordsection{section}
+ \gdef\putwordSection{Section}
+ \gdef\putwordsee{see}
+ \gdef\putwordSee{See}
+ \gdef\putwordShortTOC{Short Contents}
+ \gdef\putwordTOC{Table of Contents}
+ %
+ \gdef\putwordMJan{January}
+ \gdef\putwordMFeb{February}
+ \gdef\putwordMMar{March}
+ \gdef\putwordMApr{April}
+ \gdef\putwordMMay{May}
+ \gdef\putwordMJun{June}
+ \gdef\putwordMJul{July}
+ \gdef\putwordMAug{August}
+ \gdef\putwordMSep{September}
+ \gdef\putwordMOct{October}
+ \gdef\putwordMNov{November}
+ \gdef\putwordMDec{December}
+ %
+ \gdef\putwordDefmac{Macro}
+ \gdef\putwordDefspec{Special Form}
+ \gdef\putwordDefvar{Variable}
+ \gdef\putwordDefopt{User Option}
+ \gdef\putwordDeffunc{Function}
+ 
+ % Produces Day Month Year style of output.
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/txi-es.tex texinfo-4.13/doc/txi-es.tex
*** texinfo-4.12/doc/txi-es.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-es.tex	Sun Jul  1 15:32:12 2007
***************
*** 0 ****
--- 1,59 ----
+ % txi-es.tex -- TeX macros to handle Spanish language documents.
+ %
+ % Copyright (C) 1999, 2007 by Adrian Perez Jorge
+ % 
+ % This txi-es.tex file 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 3 of the
+ % License, or (at your option) any later version.
+ %
+ % This txi-es.tex file 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, see <http://www.gnu.org/licenses/>.
+ %
+ % Set up fixed words for Spanish.
+ %
+ 
+ \gdef\putwordAppendix{Ap\'endice}
+ \gdef\putwordChapter{Cap\'{\char16{}}tulo}
+ \gdef\putwordfile{archivo}
+ \gdef\putwordIndexIsEmpty{(El \'Indice est\'a vac\'{\char16{}}o)}
+ \gdef\putwordIndexNonexistent{(No existe el \'Indice)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordMethodon{M\'etodo de}
+ \gdef\putwordNoTitle{Sin T\'{\char{16}}tulo}
+ \gdef\putwordof{de}
+ \gdef\putwordon{de}
+ \gdef\putwordpage{p\'agina}
+ \gdef\putwordsection{secci\'on}
+ \gdef\putwordSection{Secci\'on}
+ \gdef\putwordsee{v\'ease}
+ \gdef\putwordSee{V\'ease}
+ \gdef\putwordShortTOC{Resumen del Contenido}
+ \gdef\putwordTOC{\'Indice General}
+ %
+ \gdef\putwordMJan{enero}
+ \gdef\putwordMFeb{febrero}
+ \gdef\putwordMMar{marzo}
+ \gdef\putwordMApr{abril}
+ \gdef\putwordMMay{mayo}
+ \gdef\putwordMJun{junio}
+ \gdef\putwordMJul{julio}
+ \gdef\putwordMAug{agosto}
+ \gdef\putwordMSep{septiembre}
+ \gdef\putwordMOct{octubre}
+ \gdef\putwordMNov{noviembre}
+ \gdef\putwordMDec{diciembre}
+ %
+ \gdef\putwordDefmac{Macro}
+ \gdef\putwordDefspec{Forma Especial}
+ \gdef\putwordDefivar{Variable de Instancia}
+ \gdef\putwordDefvar{Variable}
+ \gdef\putwordDefopt{Opci\'on de Usuario}
+ \gdef\putwordDeffunc{Funci\'on}
+ 
+ \endinput
diff -Nrc2 texinfo-4.12/doc/txi-fr.tex texinfo-4.13/doc/txi-fr.tex
*** texinfo-4.12/doc/txi-fr.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-fr.tex	Sun Jul  1 12:06:03 2007
***************
*** 0 ****
--- 1,72 ----
+ % txi-fr.tex -- TeX macros to handle French language for texinfo.tex documents.
+ % $Id: txi-fr.tex,v 1.5 2007/07/01 19:06:03 karl Exp $
+ %
+ % Copyright (C) 1999, 2007 Free Software Foundation.
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+ % Set up fixed words for French.
+ % Translated by Laurent Bourbeau <bourbeau@progiciels-bpi.ca>
+ % Translation date: le 10 décembre 1999.
+ % Transmitted to: Karl Berry <karl@cs.umb.edu>
+ 
+ \gdef\putwordAppendix{Annexe}
+ \gdef\putwordChapter{Chapitre}
+ \gdef\putwordfile{fichier}
+ \gdef\putwordin{dans}
+ \gdef\putwordIndexIsEmpty{(Index est vide)}
+ \gdef\putwordIndexNonexistent{(Index n'existe pas)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordInstanceVariableof{Variable d'instance de}
+ \gdef\putwordMethodon{M\'ethode sur}
+ \gdef\putwordNoTitle{Sans Titre}
+ \gdef\putwordof{de}
+ \gdef\putwordon{sur}
+ \gdef\putwordpage{page}
+ \gdef\putwordsection{section}
+ \gdef\putwordSection{Section}
+ \gdef\putwordsee{voir}
+ \gdef\putwordSee{Voir}
+ \gdef\putwordShortTOC{Sommaire}
+ \gdef\putwordTOC{Table des mati\`eres}
+ %
+ \gdef\putwordMJan{janvier}
+ \gdef\putwordMFeb{f\'evrier}
+ \gdef\putwordMMar{mars}
+ \gdef\putwordMApr{avril}
+ \gdef\putwordMMay{mai}
+ \gdef\putwordMJun{juin}
+ \gdef\putwordMJul{juillet}
+ \gdef\putwordMAug{ao\^ut}
+ \gdef\putwordMSep{septembre}
+ \gdef\putwordMOct{octobre}
+ \gdef\putwordMNov{novembre}
+ \gdef\putwordMDec{d\'ecembre}
+ %
+ \gdef\putwordDefmac{Macro}
+ \gdef\putwordDefspec{Forme Sp\'eciale}
+ \gdef\putwordDefvar{Variable}
+ \gdef\putwordDefopt{Option de l'usager}
+ \gdef\putwordDeffunc{Fonction}
+ 
+ % Produces Day Month Year style of output.
+ % French datation - for instance: 10 janvier 2000.
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/txi-it.tex texinfo-4.13/doc/txi-it.tex
*** texinfo-4.12/doc/txi-it.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-it.tex	Sun Jul  1 12:06:04 2007
***************
*** 0 ****
--- 1,68 ----
+ % English non-translation for texinfo.tex.  This is read when a source
+ % document says @documentlanguage en (which might happen after another
+ % @documentlanguage).  The actual values are the same as defaults.
+ % $Id: txi-it.tex,v 1.5 2007/07/01 19:06:04 karl Exp $
+ %
+ % Copyright (C) 1999, 2007 Free Software Foundation.
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+ \gdef\putwordAppendix{Appendice}
+ \gdef\putwordChapter{Capitolo}
+ \gdef\putwordfile{file}
+ \gdef\putwordin{in}
+ \gdef\putwordIndexIsEmpty{(L'indice \'e vuoto)}
+ \gdef\putwordIndexNonexistent{(L'indice non esiste)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordInstanceVariableof{Variabile di istanza di}
+ \gdef\putwordMethodon{Metodo di}
+ \gdef\putwordNoTitle{Nessun titolo}
+ \gdef\putwordof{di}
+ \gdef\putwordon{su}
+ \gdef\putwordpage{pagina}
+ \gdef\putwordsection{sezione}
+ \gdef\putwordSection{Sezione}
+ \gdef\putwordsee{vedi}
+ \gdef\putwordSee{Vedi}
+ \gdef\putwordShortTOC{Sommario abbreviato}
+ \gdef\putwordTOC{Sommario}
+ %
+ \gdef\putwordMJan{Gennaio}
+ \gdef\putwordMFeb{Febbraio}
+ \gdef\putwordMMar{Marzo}
+ \gdef\putwordMApr{Aprile}
+ \gdef\putwordMMay{Maggio}
+ \gdef\putwordMJun{Giugno}
+ \gdef\putwordMJul{Luglio}
+ \gdef\putwordMAug{Agosto}
+ \gdef\putwordMSep{Settembre}
+ \gdef\putwordMOct{Ottobre}
+ \gdef\putwordMNov{Novembre}
+ \gdef\putwordMDec{Dicembre}
+ %
+ \gdef\putwordDefmac{Macro}
+ \gdef\putwordDefspec{Forma speciale}
+ \gdef\putwordDefvar{Variabile}
+ \gdef\putwordDefopt{Opzione}
+ \gdef\putwordDeffunc{Funzione}
+ 
+ % Produces Day Month Year style of output.
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/txi-nb.tex texinfo-4.13/doc/txi-nb.tex
*** texinfo-4.12/doc/txi-nb.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-nb.tex	Wed Oct 31 10:10:48 2007
***************
*** 0 ****
--- 1,67 ----
+ % Norwegian translation for texinfo.tex (1999-10-29, GNU Texinfo 4.0).
+ % Enables the use of words like Kapittel instead of Chapter, etc.
+ %
+ % Copyright (C) 1999, 2007 Trond Endrest=F8l <endrestol@hotmail.com>
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ %
+ \gdef\putwordAppendix{Vedlegg}
+ \gdef\putwordChapter{Kapittel}
+ \gdef\putwordfile{fil}
+ \gdef\putwordIndexIsEmpty{(Indeks er tom)}
+ \gdef\putwordIndexNonexistent{(Indeks eksisterer ikke)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordMethodon{Metode p\aa}
+ \gdef\putwordNoTitle{Ingen tittel}
+ \gdef\putwordof{av}
+ \gdef\putwordon{p\aa}
+ \gdef\putwordpage{side}
+ \gdef\putwordsection{avsnitt}
+ \gdef\putwordSection{Avsnitt}
+ \gdef\putwordsee{se}
+ \gdef\putwordSee{Se}
+ \gdef\putwordShortTOC{Kort innholdsfortegnelse}
+ \gdef\putwordTOC{Innholdsfortegnelse}
+ %
+ \gdef\putwordMJan{januar}
+ \gdef\putwordMFeb{februar}
+ \gdef\putwordMMar{mars}
+ \gdef\putwordMApr{april}
+ \gdef\putwordMMay{mai}
+ \gdef\putwordMJun{juni}
+ \gdef\putwordMJul{juli}
+ \gdef\putwordMAug{august}
+ \gdef\putwordMSep{september}
+ \gdef\putwordMOct{oktober}
+ \gdef\putwordMNov{november}
+ \gdef\putwordMDec{desember}
+ %
+ \gdef\putwordDefmac{Makro}
+ \gdef\putwordDefspec{Spesiell form}
+ \gdef\putwordDefivar{Forekomstvariabel}
+ \gdef\putwordDefvar{Variabel}
+ \gdef\putwordDefopt{Brukervalg}
+ \gdef\putwordDeffunc{Funksjon}
+ %
+ % Redefine \today to produce Norwegian
+ % preferred dates such as 28. januar 1999.
+ %
+ \gdef\today{%
+   \number\day.\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/txi-nl.tex texinfo-4.13/doc/txi-nl.tex
*** texinfo-4.12/doc/txi-nl.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-nl.tex	Sun Jul  1 12:06:04 2007
***************
*** 0 ****
--- 1,67 ----
+ % Dutch translation for texinfo.tex.  
+ % $Id: txi-nl.tex,v 1.5 2007/07/01 19:06:04 karl Exp $
+ %
+ % Copyright (C) 1999, 2007 Free Software Foundation.
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+ % Set up fixed words if not already set.
+ \gdef\putwordAppendix{Appendix}
+ \gdef\putwordChapter{Hoofdstuk}
+ \gdef\putwordfile{bestand}
+ \gdef\putwordin{in}
+ \gdef\putwordIndexIsEmpty{(Index is leeg)}
+ \gdef\putwordIndexNonexistent{(Index bestaat niet)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordInstanceVariableof{Instantie Variabele van}
+ \gdef\putwordMethodon{Methode van}
+ \gdef\putwordNoTitle{Geen titel}
+ \gdef\putwordof{van}
+ \gdef\putwordon{op}
+ \gdef\putwordpage{pagina}
+ \gdef\putwordsection{sectie}
+ \gdef\putwordSection{Sectie}
+ \gdef\putwordsee{zie}
+ \gdef\putwordSee{Zie}
+ \gdef\putwordShortTOC{Korte inhoudsopgave}
+ \gdef\putwordTOC{Inhoudsopgave}
+ %
+ \gdef\putwordMJan{Januari}
+ \gdef\putwordMFeb{Februari}
+ \gdef\putwordMMar{Maart}
+ \gdef\putwordMApr{April}
+ \gdef\putwordMMay{Mei}
+ \gdef\putwordMJun{Juni}
+ \gdef\putwordMJul{Juli}
+ \gdef\putwordMAug{Augustus}
+ \gdef\putwordMSep{September}
+ \gdef\putwordMOct{Oktober}
+ \gdef\putwordMNov{November}
+ \gdef\putwordMDec{December}
+ %
+ \gdef\putwordDefmac{Macro}
+ \gdef\putwordDefspec{Speciale Vorm}
+ \gdef\putwordDefvar{Variabele}
+ \gdef\putwordDefopt{Gebruikers optie}
+ \gdef\putwordDeffunc{Functie}
+ 
+ % Produces Day Month Year style of output.
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/txi-pl.tex texinfo-4.13/doc/txi-pl.tex
*** texinfo-4.12/doc/txi-pl.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-pl.tex	Sun Jul  1 12:06:04 2007
***************
*** 0 ****
--- 1,70 ----
+ % txi-pl.tex -- adaptation to Polish for texinfo.tex.
+ % $Id: txi-pl.tex,v 1.6 2007/07/01 19:06:04 karl Exp $
+ %
+ % Copyright (C) 2003, 2006, 2007 Free Software Foundation.
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ % 
+ % Written by Wojciech Polak <polak@gnu.org> on 29-03-2003.
+ % Modified by Staszek Wawrykiewicz <staw@gust.org.pl> on 01-04-2003.
+ %
+ \gdef\putwordAppendix{Suplement}
+ \gdef\putwordChapter{Rozdzia³}
+ \gdef\putwordfile{plik}
+ \gdef\putwordin{w}
+ \gdef\putwordIndexIsEmpty{(Skorowidz jest pusty)}
+ \gdef\putwordIndexNonexistent{(Brak skorowidza)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordInstanceVariableof{Przyk³adowa zmienna}
+ \gdef\putwordMethodon{Metoda}
+ \gdef\putwordNoTitle{Brak tytu³u}
+ \gdef\putwordof{z}
+ \gdef\putwordon{na}
+ \gdef\putwordpage{strona}
+ \gdef\putwordsection{czê¶æ}
+ \gdef\putwordSection{Czê¶æ}
+ \gdef\putwordsee{zobacz}
+ \gdef\putwordSee{Zobacz}
+ \gdef\putwordShortTOC{Krótka zawarto¶æ}
+ \gdef\putwordTOC{Spis tre¶ci}
+ %
+ \gdef\putwordMJan{stycznia}
+ \gdef\putwordMFeb{lutego}
+ \gdef\putwordMMar{marca}
+ \gdef\putwordMApr{kwietnia}
+ \gdef\putwordMMay{maja}
+ \gdef\putwordMJun{czerwca}
+ \gdef\putwordMJul{lipca}
+ \gdef\putwordMAug{sierpnia}
+ \gdef\putwordMSep{wrze¶nia}
+ \gdef\putwordMOct{pa¼dziernika}
+ \gdef\putwordMNov{listopada}
+ \gdef\putwordMDec{grudnia}
+ %
+ \gdef\putwordDefmac{Makro}
+ \gdef\putwordDefspec{Specjalna forma}
+ \gdef\putwordDefvar{Zmienna}
+ \gdef\putwordDefopt{Opcja u¿ytkownika}
+ \gdef\putwordDeffunc{Funkcja}
+ %
+ % Produces Day Month Year style of output.
+ %
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/txi-pt.tex texinfo-4.13/doc/txi-pt.tex
*** texinfo-4.12/doc/txi-pt.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-pt.tex	Sun Jul  1 15:32:12 2007
***************
*** 0 ****
--- 1,68 ----
+ % txi-pt.tex -- adaptation to Portuguese for texinfo.tex.
+ %
+ % Copyright (C) 1999, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ %
+ % Written by Lalo Martins <lalo@webcom.com> at 05 August 1999
+ %%
+ %% Portuguese translation of the used words.
+ \gdef\putwordAppendix{Ap\^endice}
+ \gdef\putwordChapter{Cap\'\ptexi tulo}
+ \gdef\putwordfile{Data}
+ \gdef\putwordin{em}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordMethodon{M\'etodo de}
+ \gdef\putwordon{em}
+ \gdef\putwordof{de}
+ \gdef\putwordpage{P\'agina}
+ \gdef\putwordsection{se\,c\~ao}
+ \gdef\putwordSection{Se\,c\~ao}
+ \gdef\putwordsee{veja}
+ \gdef\putwordSee{Veja}
+ \gdef\putwordShortTOC{Breve Sum\'ario}
+ \gdef\putwordTOC{Sum\'ario}
+ %%
+ \gdef\putwordNoTitle{Sem T\'\ptexi tulo}
+ %%
+ %% New defintion for the output of months.
+ \gdef\putwordMJan{Janeiro}
+ \gdef\putwordMFeb{Fevereiro}
+ \gdef\putwordMMar{Mar\,co}
+ \gdef\putwordMApr{Abril}
+ \gdef\putwordMMai{Maio}
+ \gdef\putwordMJun{Junho}
+ \gdef\putwordMJul{Julho}
+ \gdef\putwordMAug{Agosto}
+ \gdef\putwordMSep{Setembro}
+ \gdef\putwordMOct{Outubro}
+ \gdef\putwordMNov{Novembro}
+ \gdef\putwordMDec{Dezembro}
+ %%
+ %% Index handling should also work correct in german
+ \gdef\putwordIndexNonexistent{(\'Indice inexistente)}
+ \gdef\putwordIndexIsEmpty{(\'Indice vazio)}
+ %%
+ %% \defmac
+ \gdef\putwordDefmac{Macro}
+ %% \defspec
+ \gdef\putwordDefspec{Forma Especial}
+ %% \defivar
+ \gdef\putwordDefivar{Vari\'avel de Inst\^ancia}
+ %% \defvar
+ \gdef\putwordDefvar{Vari\'avel}
+ %% \defopt
+ \gdef\putwordDefopt{Op\,c\~ao de Usu\'ario}
+ %% \deffun
+ \gdef\putwordDeffunc{Fun\,c\~ao}
diff -Nrc2 texinfo-4.12/doc/txi-ru.tex texinfo-4.13/doc/txi-ru.tex
*** texinfo-4.12/doc/txi-ru.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-ru.tex	Sun Jul  1 14:20:29 2007
***************
*** 0 ****
--- 1,71 ----
+ % Russian translation for texinfo.tex. 
+ %
+ % Copyright (C) 2005, 2007 Free Software Foundation.
+ %
+ % Author:
+ %  Sergey Poznyakoff
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+ %\include plainenc
+ %
+ \gdef\putwordAppendix{ðÒÉÌÏÖÅÎÉÅ}
+ \gdef\putwordChapter{çÌÁ×Á}
+ \gdef\putwordfile{ÆÁÊÌ}
+ \gdef\putwordin{×}
+ \gdef\putwordIndexIsEmpty{(éÎÄÅËÓ ÐÕÓÔ)}
+ \gdef\putwordIndexNonexistent{(éÎÄÅËÓ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordInstanceVariableof{ðÅÒÅÍÅÎÎÁÑ ËÌÁÓÓÁ} % hmm ??
+ \gdef\putwordMethodon{íÅÔÏÄ}
+ \gdef\putwordNoTitle{âÅÚ ÚÁÇÌÁ×ÉÑ}
+ \gdef\putwordof{ÄÌÑ}  % (??) ëÁÔÅÇÏÒÉÑ X ÄÌÑ ËÌÁÓÓÁ Y 
+ \gdef\putwordon{ÎÁÄ}  % ïÐÅÒÁÃÉÑ ÎÁÄ ...
+ \gdef\putwordpage{ÓÔÒÁÎÉÃÁ}
+ \gdef\putwordsection{ÒÁÚÄÅÌ}
+ \gdef\putwordSection{òÁÚÄÅÌ}
+ \gdef\putwordsee{ÓÍ.}
+ \gdef\putwordSee{óÍ.}
+ \gdef\putwordShortTOC{ëÒÁÔËÏÅ ÏÇÌÁ×ÌÅÎÉÅ}
+ \gdef\putwordTOC{ïÇÌÁ×ÌÅÎÉÅ}
+ %
+ %% íÅÓÑÃÙ ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ × ÒÏÄÉÔÅÌØÎÏÍ ÐÁÄÅÖÅ (ÓÍ. ÎÉÖÅ today) 
+ \gdef\putwordMJan{ÑÎ×ÁÒÑ}
+ \gdef\putwordMFeb{ÆÅ×ÒÁÌÑ}
+ \gdef\putwordMMar{ÍÁÒÔÁ}
+ \gdef\putwordMApr{ÁÐÒÅÌÑ}
+ \gdef\putwordMMay{ÍÁÑ}
+ \gdef\putwordMJun{ÉÀÎØ}
+ \gdef\putwordMJul{ÉÀÌÑ}
+ \gdef\putwordMAug{Á×ÇÕÓÔÁ}
+ \gdef\putwordMSep{ÓÅÎÔÑÂÒÑ}
+ \gdef\putwordMOct{ÏËÔÑÂÒÑ}
+ \gdef\putwordMNov{ÎÏÑÂÒÑ}
+ \gdef\putwordMDec{ÄÅËÁÂÒÑ}
+ %
+ \gdef\putwordDefmac{íÁËÒÏÏÐÒÅÄÅÌÅÎÉÅ}
+ \gdef\putwordDefspec{ïÓÏÂÁÑ ÆÏÒÍÁ}
+ \gdef\putwordDefvar{ðÅÒÅÍÅÎÎÁÑ}
+ \gdef\putwordDefopt{ïÐÃÉÑ ÐÏÌØÚÏ×ÁÔÅÌÑ}
+ \gdef\putwordDeffunc{æÕÎËÃÉÑ}
+ 
+ % Produces Day Month Year style of output.
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/txi-sr.tex texinfo-4.13/doc/txi-sr.tex
*** texinfo-4.12/doc/txi-sr.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-sr.tex	Sun Jul  1 12:06:04 2007
***************
*** 0 ****
--- 1,67 ----
+ % Serbian-latin translation for texinfo.tex.
+ %
+ % Copyright (C) 2005, 2007 Free Software Foundation.
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ % 
+ % Created by Predrag Rakic.
+ 
+ \gdef\putwordAppendix{Prilog}
+ \gdef\putwordChapter{Glava}
+ \gdef\putwordfile{datoteka}
+ \gdef\putwordin{u}
+ \gdef\putwordIndexIsEmpty{(Indeks je prazan)}
+ \gdef\putwordIndexNonexistent{(Indeks ne postoji)}
+ \gdef\putwordInfo{Info}
+ \gdef\putwordInstanceVariableof{Atribut klase}
+ \gdef\putwordMethodon{Metod klase}
+ \gdef\putwordNoTitle{Bez naslova}
+ \gdef\putwordof{}
+ \gdef\putwordon{}
+ \gdef\putwordpage{strana}
+ \gdef\putwordsection{poglavlje}
+ \gdef\putwordSection{Poglavlje}
+ \gdef\putwordsee{vidi}
+ \gdef\putwordSee{Vidi}
+ \gdef\putwordShortTOC{Kratak sadr\v{z}aj}
+ \gdef\putwordTOC{Sadr\v{z}aj}
+ %
+ \gdef\putwordMJan{Januar}
+ \gdef\putwordMFeb{Februar}
+ \gdef\putwordMMar{Mart}
+ \gdef\putwordMApr{April}
+ \gdef\putwordMMay{Maj}
+ \gdef\putwordMJun{Jun}
+ \gdef\putwordMJul{Jul}
+ \gdef\putwordMAug{Avgust}
+ \gdef\putwordMSep{Septembar}
+ \gdef\putwordMOct{Oktobar}
+ \gdef\putwordMNov{Novembar}
+ \gdef\putwordMDec{Decembar}
+ %
+ \gdef\putwordDefmac{Makro}
+ \gdef\putwordDefspec{Posebna forma}
+ \gdef\putwordDefvar{Promenljiva}
+ \gdef\putwordDefopt{Korisni\v{c}ka opcija}
+ \gdef\putwordDeffunc{Funkcija}
+ 
+ % Produces Day Month Year style of output.
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/txi-tr.tex texinfo-4.13/doc/txi-tr.tex
*** texinfo-4.12/doc/txi-tr.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-tr.tex	Sun Jul  1 15:32:12 2007
***************
*** 0 ****
--- 1,81 ----
+ % txi-tr.tex -- adaptation to Turkish for texinfo.tex.
+ % $Id: txi-tr.tex,v 1.7 2007/07/01 22:32:12 karl Exp $
+ %
+ % Copyright (C) 2003, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ %
+ % Written by Alper Ersoy, 5 January 2003, <aersoy@tfz.net>
+ %
+ %%
+ %% Turkish translations of the used words.
+ %%
+ %%
+ \gdef\putwordAppendix{Ek}
+ \gdef\putwordChapter{Kesim}
+ \gdef\putwordfile{dosya}
+ \gdef\putwordInfo{Bilgi}
+ \gdef\putwordpage{Sayfa}
+ \gdef\putwordsection{b\"ol\"um}
+ \gdef\putwordSection{B\"ol\"um}
+ \gdef\putwordsee{bkz.}
+ \gdef\putwordSee{Bkz.}
+ \gdef\putwordShortTOC{\dotaccent{I}\,cindekiler (K\dotless{i}saca)}
+ \gdef\putwordTOC{\dotaccent{I}\,cindekiler}
+ %%
+ %% This one really sucks :\
+ \gdef\putwordMethodon{S\dotless{i}n\dotless{i}f:}
+ %%
+ %% I could not translate these ones, need examples :\
+ %% If anybody out there is using these in turkish, please
+ %% don't hesitate to send me patches ;)
+ \gdef\putwordin{in}
+ \gdef\putwordon{on}
+ \gdef\putwordof{of}
+ %%
+ %%
+ \gdef\putwordNoTitle{Ba\,sl\dotless{i}s\dotless{i}z}
+ \gdef\putwordIndexNonexistent{(Dizin bulunmamakta)}
+ \gdef\putwordIndexIsEmpty{(Dizin bo\,s)}
+ %%
+ %% Months
+ \gdef\putwordMJan{Ocak}
+ \gdef\putwordMFeb{\,Subat}
+ \gdef\putwordMMar{Mart}
+ \gdef\putwordMApr{Nisan}
+ \gdef\putwordMMai{May\dotless{i}s}
+ \gdef\putwordMJun{Haziran}
+ \gdef\putwordMJul{Temmuz}
+ \gdef\putwordMAug{A\u{g}ustos}
+ \gdef\putwordMSep{Eyl\"ul}
+ \gdef\putwordMOct{Ekim}
+ \gdef\putwordMNov{Kas\dotless{i}m}
+ \gdef\putwordMDec{Aral\dotless{i}k}
+ %%
+ %% Definitions
+ \gdef\putwordDefmac{Makro}
+ \gdef\putwordDefspec{\"Ozel Yap\dotless{i}}
+ \gdef\putwordDefopt{Se\,cenek}
+ \gdef\putwordDefvar{De\u{g}i\,sken}
+ \gdef\putwordDeffunc{Fonksiyon}
+ %%
+ % Produces Day Month Year style of output.
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/txi-uk.tex texinfo-4.13/doc/txi-uk.tex
*** texinfo-4.12/doc/txi-uk.tex	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/txi-uk.tex	Sun Jul  1 14:20:29 2007
***************
*** 0 ****
--- 1,68 ----
+ % Ukrainian translation for texinfo.tex.
+ %
+ % Copyright (C) 2005, 2007 Free Software Foundation.
+ %
+ % Author:
+ %  Sergey Poznyakoff
+ %
+ % 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+ \gdef\putwordAppendix{äÏÄÁÔÏË}
+ \gdef\putwordChapter{òÏÚÄ¦Ì}
+ \gdef\putwordfile{ÆÁÊÌ}
+ \gdef\putwordin{×}
+ \gdef\putwordIndexIsEmpty{(¶ÎÄÅËÓ ÐÕÓÔÉÊ)}
+ \gdef\putwordIndexNonexistent{(¶ÎÄÅËÓ ÎÅ ¦ÓÎÕ¤)}
+ \gdef\putwordInfo{ÆÁÊÌ Info}
+ \gdef\putwordInstanceVariableof{úÍ¦ÎÎÁ ËÌÁÓÕ}
+ \gdef\putwordMethodon{íÅÔÏÄ }
+ \gdef\putwordNoTitle{îÅÍÁ¤ ÎÁÚ×É}
+ \gdef\putwordof{ÄÌÑ} % ?? 
+ \gdef\putwordon{Ú}  % ïÐÅÒÁÃ¦Ñ Ú ËÌÁÓÏÍ ...
+ \gdef\putwordpage{ÓÔÏÒ¦ÎËÁ}
+ \gdef\putwordsection{ÞÁÓÔÉÎÁ}
+ \gdef\putwordSection{þÁÓÔÉÎÁ}
+ \gdef\putwordsee{ÄÉ×.}
+ \gdef\putwordSee{äÉ×.}
+ \gdef\putwordShortTOC{ëÏÒÏÔËÉÊ ÚÍ¦ÓÔ}
+ \gdef\putwordTOC{úÍ¦ÓÔ}
+ %
+ \gdef\putwordMJan{Ó¦ÞÎÑ}
+ \gdef\putwordMFeb{ÌÀÔÏÇÏ}
+ \gdef\putwordMMar{ÂÅÒÅÚÎÑ}
+ \gdef\putwordMApr{Ë×¦ÔÎÑ}
+ \gdef\putwordMMay{ÔÒÁ×ÎÑ}
+ \gdef\putwordMJun{ÞÅÒ×ÎÑ}
+ \gdef\putwordMJul{ÌÉÐÎÑ}
+ \gdef\putwordMAug{ÓÅÒÐÎÑ}
+ \gdef\putwordMSep{×ÅÒÅÓÎÑ}
+ \gdef\putwordMOct{ÖÏ×ÔÎÑ}
+ \gdef\putwordMNov{ÌÉÓÔÏÐÁÄÁ}
+ \gdef\putwordMDec{ÇÒÕÄÎÑ}
+ %
+ \gdef\putwordDefmac{íÁËÒÏÓ}
+ \gdef\putwordDefspec{óÐÅÃ¦ÁÌØÎÁ ÆÏÒÍÁ}
+ \gdef\putwordDefvar{úÍ¦ÎÎÁ}
+ \gdef\putwordDefopt{ïÐÃ¦Ñ ËÏÒÉÓÔÕ×ÁÞÁ}
+ \gdef\putwordDeffunc{æÕÎËÃ¦Ñ}
+ 
+ % Produces Day Month Year style of output.
+ \def\today{%
+   \number\day\space
+   \ifcase\month
+   \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+   \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+   \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+   \fi
+   \space\number\year}
diff -Nrc2 texinfo-4.12/doc/version-stnd.texi texinfo-4.13/doc/version-stnd.texi
*** texinfo-4.12/doc/version-stnd.texi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/version-stnd.texi	Thu Sep 18 11:37:40 2008
***************
*** 0 ****
--- 1,4 ----
+ @set UPDATED 18 September 2008
+ @set UPDATED-MONTH September 2008
+ @set EDITION 4.13
+ @set VERSION 4.13
diff -Nrc2 texinfo-4.12/doc/version.texi texinfo-4.13/doc/version.texi
*** texinfo-4.12/doc/version.texi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/doc/version.texi	Thu Sep 18 11:37:40 2008
***************
*** 0 ****
--- 1,4 ----
+ @set UPDATED 18 September 2008
+ @set UPDATED-MONTH September 2008
+ @set EDITION 4.13
+ @set VERSION 4.13
diff -Nrc2 texinfo-4.12/gnulib/lib/Makefile.am texinfo-4.13/gnulib/lib/Makefile.am
*** texinfo-4.12/gnulib/lib/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/Makefile.am	Sat Jul 26 15:54:54 2008
***************
*** 0 ****
--- 1,881 ----
+ ## DO NOT EDIT! GENERATED AUTOMATICALLY!
+ ## Process this file with automake to produce Makefile.in.
+ # Copyright (C) 2002-2008 Free Software Foundation, Inc.
+ #
+ # This file is free software, distributed under the terms of the GNU
+ # General Public License.  As a special exception to the GNU General
+ # Public License, this file may be distributed as part of a program
+ # that contains a configuration script generated by Autoconf, under
+ # the same distribution terms as the rest of that program.
+ #
+ # Generated by gnulib-tool.
+ # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --aux-dir=build-aux --no-libtool --macro-prefix=gl --no-vc-files argz getopt gettext mbchar mbiter mbscasecmp mbschr mbslen mbsncasecmp mbsstr mbswidth memcpy memmem memmove mkstemp strdup strerror xalloc xsetenv
+ 
+ AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
+ 
+ noinst_HEADERS =
+ noinst_LIBRARIES =
+ noinst_LTLIBRARIES =
+ EXTRA_DIST =
+ BUILT_SOURCES =
+ SUFFIXES =
+ MOSTLYCLEANFILES = core *.stackdump
+ MOSTLYCLEANDIRS =
+ CLEANFILES =
+ DISTCLEANFILES =
+ MAINTAINERCLEANFILES =
+ 
+ AM_CPPFLAGS =
+ 
+ noinst_LIBRARIES += libgnu.a
+ 
+ libgnu_a_SOURCES =
+ libgnu_a_LIBADD = $(gl_LIBOBJS)
+ libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
+ EXTRA_libgnu_a_SOURCES =
+ 
+ ## begin gnulib module alloca-opt
+ 
+ BUILT_SOURCES += $(ALLOCA_H)
+ 
+ # We need the following in order to create <alloca.h> when the system
+ # doesn't have one that works with the given compiler.
+ alloca.h: alloca.in.h
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  cat $(srcdir)/alloca.in.h; \
+ 	} > $@-t
+ 	mv -f $@-t $@
+ MOSTLYCLEANFILES += alloca.h alloca.h-t
+ 
+ EXTRA_DIST += alloca.in.h
+ 
+ ## end   gnulib module alloca-opt
+ 
+ ## begin gnulib module argz
+ 
+ BUILT_SOURCES += $(ARGZ_H)
+ 
+ # We need the following in order to create <argz.h> when the system
+ # doesn't have one that works with the given compiler.
+ argz.h: argz.in.h
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  cat $(srcdir)/argz.in.h; \
+ 	} > $@-t
+ 	mv -f $@-t $@
+ MOSTLYCLEANFILES += argz.h argz.h-t
+ 
+ EXTRA_DIST += argz.c argz.in.h
+ 
+ EXTRA_libgnu_a_SOURCES += argz.c
+ 
+ ## end   gnulib module argz
+ 
+ ## begin gnulib module configmake
+ 
+ # Retrieve values of the variables through 'configure' followed by
+ # 'make', not directly through 'configure', so that a user who
+ # sets some of these variables consistently on the 'make' command
+ # line gets correct results.
+ #
+ # One advantage of this approach, compared to the classical
+ # approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
+ # is that it protects against the use of undefined variables.
+ # If, say, $(libdir) is not set in the Makefile, LIBDIR is not
+ # defined by this module, and code using LIBDIR gives a
+ # compilation error.
+ #
+ # Another advantage is that 'make' output is shorter.
+ #
+ # Listed in the same order as the GNU makefile conventions.
+ # The Automake-defined pkg* macros are appended, in the order
+ # listed in the Automake 1.10a+ documentation.
+ configmake.h: Makefile
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  echo '#define PREFIX "$(prefix)"'; \
+ 	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+ 	  echo '#define BINDIR "$(bindir)"'; \
+ 	  echo '#define SBINDIR "$(sbindir)"'; \
+ 	  echo '#define LIBEXECDIR "$(libexecdir)"'; \
+ 	  echo '#define DATAROOTDIR "$(datarootdir)"'; \
+ 	  echo '#define DATADIR "$(datadir)"'; \
+ 	  echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+ 	  echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+ 	  echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+ 	  echo '#define INCLUDEDIR "$(includedir)"'; \
+ 	  echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+ 	  echo '#define DOCDIR "$(docdir)"'; \
+ 	  echo '#define INFODIR "$(infodir)"'; \
+ 	  echo '#define HTMLDIR "$(htmldir)"'; \
+ 	  echo '#define DVIDIR "$(dvidir)"'; \
+ 	  echo '#define PDFDIR "$(pdfdir)"'; \
+ 	  echo '#define PSDIR "$(psdir)"'; \
+ 	  echo '#define LIBDIR "$(libdir)"'; \
+ 	  echo '#define LISPDIR "$(lispdir)"'; \
+ 	  echo '#define LOCALEDIR "$(localedir)"'; \
+ 	  echo '#define MANDIR "$(mandir)"'; \
+ 	  echo '#define MANEXT "$(manext)"'; \
+ 	  echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+ 	  echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+ 	  echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+ 	  echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+ 	} | sed '/""/d' > $@-t
+ 	mv $@-t $@
+ BUILT_SOURCES += configmake.h
+ CLEANFILES += configmake.h configmake.h-t
+ 
+ ## end   gnulib module configmake
+ 
+ ## begin gnulib module error
+ 
+ 
+ EXTRA_DIST += error.c error.h
+ 
+ EXTRA_libgnu_a_SOURCES += error.c
+ 
+ ## end   gnulib module error
+ 
+ ## begin gnulib module exitfail
+ 
+ 
+ EXTRA_DIST += exitfail.c exitfail.h
+ 
+ EXTRA_libgnu_a_SOURCES += exitfail.c
+ 
+ ## end   gnulib module exitfail
+ 
+ ## begin gnulib module getopt
+ 
+ BUILT_SOURCES += $(GETOPT_H)
+ 
+ # We need the following in order to create <getopt.h> when the system
+ # doesn't have one that works with the given compiler.
+ getopt.h: getopt.in.h
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  cat $(srcdir)/getopt.in.h; \
+ 	} > $@-t
+ 	mv -f $@-t $@
+ MOSTLYCLEANFILES += getopt.h getopt.h-t
+ 
+ EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h
+ 
+ EXTRA_libgnu_a_SOURCES += getopt.c getopt1.c
+ 
+ ## end   gnulib module getopt
+ 
+ ## begin gnulib module gettext
+ 
+ # This is for those projects which use "gettextize --intl" to put a source-code
+ # copy of libintl into their package. In such projects, every Makefile.am needs
+ # -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
+ # For the Makefile.ams in other directories it is the maintainer's
+ # responsibility; for the one from gnulib we do it here.
+ # This option has no effect when the user disables NLS (because then the intl
+ # directory contains no libintl.h file) or when the project does not use
+ # "gettextize --intl".
+ AM_CPPFLAGS += -I$(top_builddir)/intl
+ 
+ EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
+ 
+ ## end   gnulib module gettext
+ 
+ ## begin gnulib module gettext-h
+ 
+ libgnu_a_SOURCES += gettext.h
+ 
+ ## end   gnulib module gettext-h
+ 
+ ## begin gnulib module gettimeofday
+ 
+ 
+ EXTRA_DIST += gettimeofday.c
+ 
+ EXTRA_libgnu_a_SOURCES += gettimeofday.c
+ 
+ ## end   gnulib module gettimeofday
+ 
+ ## begin gnulib module havelib
+ 
+ 
+ EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
+ 
+ ## end   gnulib module havelib
+ 
+ ## begin gnulib module intprops
+ 
+ 
+ EXTRA_DIST += intprops.h
+ 
+ ## end   gnulib module intprops
+ 
+ ## begin gnulib module link-warning
+ 
+ LINK_WARNING_H=$(top_srcdir)/build-aux/link-warning.h
+ 
+ EXTRA_DIST += $(top_srcdir)/build-aux/link-warning.h
+ 
+ ## end   gnulib module link-warning
+ 
+ ## begin gnulib module localcharset
+ 
+ libgnu_a_SOURCES += localcharset.h localcharset.c
+ 
+ # We need the following in order to install a simple file in $(libdir)
+ # which is shared with other installed packages. We use a list of referencing
+ # packages so that "make uninstall" will remove the file if and only if it
+ # is not used by another installed package.
+ # On systems with glibc-2.1 or newer, the file is redundant, therefore we
+ # avoid installing it.
+ 
+ all-local: charset.alias ref-add.sed ref-del.sed
+ 
+ charset_alias = $(DESTDIR)$(libdir)/charset.alias
+ charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+ install-exec-local: all-local
+ 	test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir)
+ 	if test -f $(charset_alias); then \
+ 	  sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+ 	  $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+ 	  rm -f $(charset_tmp) ; \
+ 	else \
+ 	  if test $(GLIBC21) = no; then \
+ 	    sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+ 	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+ 	    rm -f $(charset_tmp) ; \
+ 	  fi ; \
+ 	fi
+ 
+ uninstall-local: all-local
+ 	if test -f $(charset_alias); then \
+ 	  sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+ 	  if grep '^# Packages using this file: $$' $(charset_tmp) \
+ 	      > /dev/null; then \
+ 	    rm -f $(charset_alias); \
+ 	  else \
+ 	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+ 	  fi; \
+ 	  rm -f $(charset_tmp); \
+ 	fi
+ 
+ charset.alias: config.charset
+ 	rm -f t-$@ $@
+ 	$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@
+ 	mv t-$@ $@
+ 
+ SUFFIXES += .sed .sin
+ .sin.sed:
+ 	rm -f t-$@ $@
+ 	sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@
+ 	mv t-$@ $@
+ 
+ CLEANFILES += charset.alias ref-add.sed ref-del.sed
+ 
+ EXTRA_DIST += config.charset ref-add.sin ref-del.sin
+ 
+ ## end   gnulib module localcharset
+ 
+ ## begin gnulib module malloc-posix
+ 
+ 
+ EXTRA_DIST += malloc.c
+ 
+ EXTRA_libgnu_a_SOURCES += malloc.c
+ 
+ ## end   gnulib module malloc-posix
+ 
+ ## begin gnulib module malloca
+ 
+ libgnu_a_SOURCES += malloca.c
+ 
+ EXTRA_DIST += malloca.h malloca.valgrind
+ 
+ ## end   gnulib module malloca
+ 
+ ## begin gnulib module mbchar
+ 
+ libgnu_a_SOURCES += mbchar.c
+ 
+ EXTRA_DIST += mbchar.h
+ 
+ ## end   gnulib module mbchar
+ 
+ ## begin gnulib module mbiter
+ 
+ libgnu_a_SOURCES += mbiter.h
+ 
+ ## end   gnulib module mbiter
+ 
+ ## begin gnulib module mbscasecmp
+ 
+ libgnu_a_SOURCES += mbscasecmp.c
+ 
+ ## end   gnulib module mbscasecmp
+ 
+ ## begin gnulib module mbschr
+ 
+ libgnu_a_SOURCES += mbschr.c
+ 
+ ## end   gnulib module mbschr
+ 
+ ## begin gnulib module mbslen
+ 
+ libgnu_a_SOURCES += mbslen.c
+ 
+ ## end   gnulib module mbslen
+ 
+ ## begin gnulib module mbsncasecmp
+ 
+ libgnu_a_SOURCES += mbsncasecmp.c
+ 
+ ## end   gnulib module mbsncasecmp
+ 
+ ## begin gnulib module mbsstr
+ 
+ libgnu_a_SOURCES += mbsstr.c
+ 
+ EXTRA_DIST += str-kmp.h
+ 
+ ## end   gnulib module mbsstr
+ 
+ ## begin gnulib module mbswidth
+ 
+ libgnu_a_SOURCES += mbswidth.h mbswidth.c
+ 
+ ## end   gnulib module mbswidth
+ 
+ ## begin gnulib module mbuiter
+ 
+ libgnu_a_SOURCES += mbuiter.h
+ 
+ ## end   gnulib module mbuiter
+ 
+ ## begin gnulib module memchr
+ 
+ 
+ EXTRA_DIST += memchr.c
+ 
+ EXTRA_libgnu_a_SOURCES += memchr.c
+ 
+ ## end   gnulib module memchr
+ 
+ ## begin gnulib module memcmp
+ 
+ 
+ EXTRA_DIST += memcmp.c
+ 
+ EXTRA_libgnu_a_SOURCES += memcmp.c
+ 
+ ## end   gnulib module memcmp
+ 
+ ## begin gnulib module memcpy
+ 
+ 
+ EXTRA_DIST += memcpy.c
+ 
+ EXTRA_libgnu_a_SOURCES += memcpy.c
+ 
+ ## end   gnulib module memcpy
+ 
+ ## begin gnulib module memmem-simple
+ 
+ 
+ EXTRA_DIST += memmem.c str-two-way.h
+ 
+ EXTRA_libgnu_a_SOURCES += memmem.c
+ 
+ ## end   gnulib module memmem-simple
+ 
+ ## begin gnulib module memmove
+ 
+ 
+ EXTRA_DIST += memmove.c
+ 
+ EXTRA_libgnu_a_SOURCES += memmove.c
+ 
+ ## end   gnulib module memmove
+ 
+ ## begin gnulib module mempcpy
+ 
+ 
+ EXTRA_DIST += mempcpy.c
+ 
+ EXTRA_libgnu_a_SOURCES += mempcpy.c
+ 
+ ## end   gnulib module mempcpy
+ 
+ ## begin gnulib module mkstemp
+ 
+ 
+ EXTRA_DIST += mkstemp.c
+ 
+ EXTRA_libgnu_a_SOURCES += mkstemp.c
+ 
+ ## end   gnulib module mkstemp
+ 
+ ## begin gnulib module setenv
+ 
+ 
+ EXTRA_DIST += setenv.c
+ 
+ EXTRA_libgnu_a_SOURCES += setenv.c
+ 
+ ## end   gnulib module setenv
+ 
+ ## begin gnulib module stdbool
+ 
+ BUILT_SOURCES += $(STDBOOL_H)
+ 
+ # We need the following in order to create <stdbool.h> when the system
+ # doesn't have one that works.
+ stdbool.h: stdbool.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ MOSTLYCLEANFILES += stdbool.h stdbool.h-t
+ 
+ EXTRA_DIST += stdbool.in.h
+ 
+ ## end   gnulib module stdbool
+ 
+ ## begin gnulib module stdint
+ 
+ BUILT_SOURCES += $(STDINT_H)
+ 
+ # We need the following in order to create <stdint.h> when the system
+ # doesn't have one that works with the given compiler.
+ stdint.h: stdint.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+ 	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+ 	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+ 	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+ 	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+ 	      -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+ 	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+ 	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+ 	      -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+ 	      -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+ 	      -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+ 	      -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+ 	      -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+ 	      -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+ 	      -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+ 	      -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+ 	      -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+ 	      -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+ 	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+ 	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+ 	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+ 	      < $(srcdir)/stdint.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ MOSTLYCLEANFILES += stdint.h stdint.h-t
+ 
+ EXTRA_DIST += stdint.in.h
+ 
+ ## end   gnulib module stdint
+ 
+ ## begin gnulib module stdlib
+ 
+ BUILT_SOURCES += stdlib.h
+ 
+ # We need the following in order to create <stdlib.h> when the system
+ # doesn't have one that works with the given compiler.
+ stdlib.h: stdlib.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ 	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+ 	      -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
+ 	      -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
+ 	      -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
+ 	      -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
+ 	      -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
+ 	      -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
+ 	      -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
+ 	      -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
+ 	      -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
+ 	      -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
+ 	      -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
+ 	      -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
+ 	      -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+ 	      -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
+ 	      -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+ 	      -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
+ 	      -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+ 	      -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
+ 	      -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
+ 	      -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
+ 	      -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+ 	      -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+ 	      -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
+ 	      -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \
+ 	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ 	      < $(srcdir)/stdlib.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ MOSTLYCLEANFILES += stdlib.h stdlib.h-t
+ 
+ EXTRA_DIST += stdlib.in.h
+ 
+ ## end   gnulib module stdlib
+ 
+ ## begin gnulib module stpcpy
+ 
+ 
+ EXTRA_DIST += stpcpy.c
+ 
+ EXTRA_libgnu_a_SOURCES += stpcpy.c
+ 
+ ## end   gnulib module stpcpy
+ 
+ ## begin gnulib module strdup
+ 
+ 
+ EXTRA_DIST += strdup.c
+ 
+ EXTRA_libgnu_a_SOURCES += strdup.c
+ 
+ ## end   gnulib module strdup
+ 
+ ## begin gnulib module streq
+ 
+ 
+ EXTRA_DIST += streq.h
+ 
+ ## end   gnulib module streq
+ 
+ ## begin gnulib module strerror
+ 
+ 
+ EXTRA_DIST += strerror.c
+ 
+ EXTRA_libgnu_a_SOURCES += strerror.c
+ 
+ ## end   gnulib module strerror
+ 
+ ## begin gnulib module string
+ 
+ BUILT_SOURCES += string.h
+ 
+ # We need the following in order to create <string.h> when the system
+ # doesn't have one that works with the given compiler.
+ string.h: string.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ 	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
+ 	      -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
+ 	      -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
+ 	      -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
+ 	      -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
+ 	      -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
+ 	      -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
+ 	      -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
+ 	      -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
+ 	      -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
+ 	      -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
+ 	      -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
+ 	      -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
+ 	      -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
+ 	      -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
+ 	      -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
+ 	      -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
+ 	      -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
+ 	      -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \
+ 	      -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
+ 	      -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
+ 	      -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
+ 	      -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
+ 	      -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
+ 	      -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
+ 	      -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
+ 	      -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
+ 	      -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
+ 	      -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
+ 	      -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
+ 	      -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
+ 	      -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
+ 	      -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
+ 	      -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
+ 	      -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+ 	      -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
+ 	      -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
+ 	      -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
+ 	      -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
+ 	      -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
+ 	      -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
+ 	      -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
+ 	      -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
+ 	      -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
+ 	      -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
+ 	      -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
+ 	      -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+ 	      -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
+ 	      -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
+ 	      -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
+ 	      -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+ 	      -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+ 	      -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+ 	      -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
+ 	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ 	      < $(srcdir)/string.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ MOSTLYCLEANFILES += string.h string.h-t
+ 
+ EXTRA_DIST += string.in.h
+ 
+ ## end   gnulib module string
+ 
+ ## begin gnulib module strndup
+ 
+ 
+ EXTRA_DIST += strndup.c
+ 
+ EXTRA_libgnu_a_SOURCES += strndup.c
+ 
+ ## end   gnulib module strndup
+ 
+ ## begin gnulib module strnlen
+ 
+ 
+ EXTRA_DIST += strnlen.c
+ 
+ EXTRA_libgnu_a_SOURCES += strnlen.c
+ 
+ ## end   gnulib module strnlen
+ 
+ ## begin gnulib module strnlen1
+ 
+ libgnu_a_SOURCES += strnlen1.h strnlen1.c
+ 
+ ## end   gnulib module strnlen1
+ 
+ ## begin gnulib module sys_stat
+ 
+ BUILT_SOURCES += $(SYS_STAT_H)
+ 
+ # We need the following in order to create <sys/stat.h> when the system
+ # has one that is incomplete.
+ sys/stat.h: sys_stat.in.h
+ 	@MKDIR_P@ sys
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
+ 	      -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \
+ 	      -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \
+ 	      < $(srcdir)/sys_stat.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t
+ MOSTLYCLEANDIRS += sys
+ 
+ EXTRA_DIST += sys_stat.in.h
+ 
+ ## end   gnulib module sys_stat
+ 
+ ## begin gnulib module sys_time
+ 
+ BUILT_SOURCES += $(SYS_TIME_H)
+ 
+ # We need the following in order to create <sys/time.h> when the system
+ # doesn't have one that works with the given compiler.
+ sys/time.h: sys_time.in.h
+ 	@MKDIR_P@ sys
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
+ 	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
+ 	      -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
+ 	      -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
+ 	      < $(srcdir)/sys_time.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ MOSTLYCLEANFILES += sys/time.h sys/time.h-t
+ 
+ EXTRA_DIST += sys_time.in.h
+ 
+ ## end   gnulib module sys_time
+ 
+ ## begin gnulib module tempname
+ 
+ 
+ EXTRA_DIST += tempname.c tempname.h
+ 
+ EXTRA_libgnu_a_SOURCES += tempname.c
+ 
+ ## end   gnulib module tempname
+ 
+ ## begin gnulib module unistd
+ 
+ BUILT_SOURCES += unistd.h
+ 
+ # We need the following in order to create an empty placeholder for
+ # <unistd.h> when the system doesn't have one.
+ unistd.h: unistd.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+ 	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+ 	      -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
+ 	      -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
+ 	      -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
+ 	      -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
+ 	      -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
+ 	      -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
+ 	      -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
+ 	      -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
+ 	      -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
+ 	      -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
+ 	      -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
+ 	      -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
+ 	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+ 	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+ 	      -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+ 	      -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+ 	      -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+ 	      -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
+ 	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+ 	      -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
+ 	      -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
+ 	      -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+ 	      -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
+ 	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+ 	      -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+ 	      -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
+ 	      -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+ 	      < $(srcdir)/unistd.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ MOSTLYCLEANFILES += unistd.h unistd.h-t
+ 
+ EXTRA_DIST += unistd.in.h
+ 
+ ## end   gnulib module unistd
+ 
+ ## begin gnulib module unitypes
+ 
+ 
+ EXTRA_DIST += unitypes.h
+ 
+ ## end   gnulib module unitypes
+ 
+ ## begin gnulib module uniwidth/base
+ 
+ 
+ EXTRA_DIST += localcharset.h uniwidth.h
+ 
+ ## end   gnulib module uniwidth/base
+ 
+ ## begin gnulib module uniwidth/width
+ 
+ libgnu_a_SOURCES += uniwidth/width.c
+ 
+ EXTRA_DIST += uniwidth/cjk.h
+ 
+ ## end   gnulib module uniwidth/width
+ 
+ ## begin gnulib module unsetenv
+ 
+ 
+ EXTRA_DIST += unsetenv.c
+ 
+ EXTRA_libgnu_a_SOURCES += unsetenv.c
+ 
+ ## end   gnulib module unsetenv
+ 
+ ## begin gnulib module wchar
+ 
+ BUILT_SOURCES += $(WCHAR_H)
+ 
+ # We need the following in order to create <wchar.h> when the system
+ # version does not work standalone.
+ wchar.h: wchar.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+ 	      -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+ 	      -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
+ 	      -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+ 	      -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+ 	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ 	    < $(srcdir)/wchar.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ MOSTLYCLEANFILES += wchar.h wchar.h-t
+ 
+ EXTRA_DIST += wchar.in.h
+ 
+ ## end   gnulib module wchar
+ 
+ ## begin gnulib module wctype
+ 
+ BUILT_SOURCES += $(WCTYPE_H)
+ 
+ # We need the following in order to create <wctype.h> when the system
+ # doesn't have one that works with the given compiler.
+ wctype.h: wctype.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+ 	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+ 	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+ 	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+ 	      -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+ 	      < $(srcdir)/wctype.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ MOSTLYCLEANFILES += wctype.h wctype.h-t
+ 
+ EXTRA_DIST += wctype.in.h
+ 
+ ## end   gnulib module wctype
+ 
+ ## begin gnulib module wcwidth
+ 
+ 
+ EXTRA_DIST += wcwidth.c
+ 
+ EXTRA_libgnu_a_SOURCES += wcwidth.c
+ 
+ ## end   gnulib module wcwidth
+ 
+ ## begin gnulib module xalloc
+ 
+ 
+ EXTRA_DIST += xalloc.h xmalloc.c
+ 
+ EXTRA_libgnu_a_SOURCES += xmalloc.c
+ 
+ ## end   gnulib module xalloc
+ 
+ ## begin gnulib module xalloc-die
+ 
+ libgnu_a_SOURCES += xalloc-die.c
+ 
+ ## end   gnulib module xalloc-die
+ 
+ ## begin gnulib module xsetenv
+ 
+ libgnu_a_SOURCES += xsetenv.h xsetenv.c
+ 
+ ## end   gnulib module xsetenv
+ 
+ 
+ mostlyclean-local: mostlyclean-generic
+ 	@for dir in '' $(MOSTLYCLEANDIRS); do \
+ 	  if test -n "$$dir" && test -d $$dir; then \
+ 	    echo "rmdir $$dir"; rmdir $$dir; \
+ 	  fi; \
+ 	done; \
+ 	:
diff -Nrc2 texinfo-4.12/gnulib/lib/Makefile.in texinfo-4.13/gnulib/lib/Makefile.in
*** texinfo-4.12/gnulib/lib/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/Makefile.in	Thu Sep 18 11:46:24 2008
***************
*** 0 ****
--- 1,1159 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # Copyright (C) 2002-2008 Free Software Foundation, Inc.
+ #
+ # This file is free software, distributed under the terms of the GNU
+ # General Public License.  As a special exception to the GNU General
+ # Public License, this file may be distributed as part of a program
+ # that contains a configuration script generated by Autoconf, under
+ # the same distribution terms as the rest of that program.
+ #
+ # Generated by gnulib-tool.
+ # Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --aux-dir=build-aux --no-libtool --macro-prefix=gl --no-vc-files argz getopt gettext mbchar mbiter mbscasecmp mbschr mbslen mbsncasecmp mbsstr mbswidth memcpy memmem memmove mkstemp strdup strerror xalloc xsetenv
+ 
+ 
+ 
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ subdir = gnulib/lib
+ DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+ 	$(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ LIBRARIES = $(noinst_LIBRARIES)
+ AR = ar
+ ARFLAGS = cru
+ libgnu_a_AR = $(AR) $(ARFLAGS)
+ am__DEPENDENCIES_1 =
+ am__dirstamp = $(am__leading_dot)dirstamp
+ am_libgnu_a_OBJECTS = localcharset.$(OBJEXT) malloca.$(OBJEXT) \
+ 	mbchar.$(OBJEXT) mbscasecmp.$(OBJEXT) mbschr.$(OBJEXT) \
+ 	mbslen.$(OBJEXT) mbsncasecmp.$(OBJEXT) mbsstr.$(OBJEXT) \
+ 	mbswidth.$(OBJEXT) strnlen1.$(OBJEXT) uniwidth/width.$(OBJEXT) \
+ 	xalloc-die.$(OBJEXT) xsetenv.$(OBJEXT)
+ libgnu_a_OBJECTS = $(am_libgnu_a_OBJECTS)
+ LTLIBRARIES = $(noinst_LTLIBRARIES)
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES)
+ DIST_SOURCES = $(libgnu_a_SOURCES) $(EXTRA_libgnu_a_SOURCES)
+ HEADERS = $(noinst_HEADERS)
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
+ noinst_HEADERS = 
+ noinst_LIBRARIES = libgnu.a
+ noinst_LTLIBRARIES = 
+ EXTRA_DIST = alloca.in.h argz.c argz.in.h error.c error.h exitfail.c \
+ 	exitfail.h getopt.c getopt.in.h getopt1.c getopt_int.h \
+ 	$(top_srcdir)/build-aux/config.rpath gettimeofday.c \
+ 	$(top_srcdir)/build-aux/config.rpath intprops.h \
+ 	$(top_srcdir)/build-aux/link-warning.h config.charset \
+ 	ref-add.sin ref-del.sin malloc.c malloca.h malloca.valgrind \
+ 	mbchar.h str-kmp.h memchr.c memcmp.c memcpy.c memmem.c \
+ 	str-two-way.h memmove.c mempcpy.c mkstemp.c setenv.c \
+ 	stdbool.in.h stdint.in.h stdlib.in.h stpcpy.c strdup.c streq.h \
+ 	strerror.c string.in.h strndup.c strnlen.c sys_stat.in.h \
+ 	sys_time.in.h tempname.c tempname.h unistd.in.h unitypes.h \
+ 	localcharset.h uniwidth.h uniwidth/cjk.h unsetenv.c wchar.in.h \
+ 	wctype.in.h wcwidth.c xalloc.h xmalloc.c
+ BUILT_SOURCES = $(ALLOCA_H) $(ARGZ_H) configmake.h $(GETOPT_H) \
+ 	$(STDBOOL_H) $(STDINT_H) stdlib.h string.h $(SYS_STAT_H) \
+ 	$(SYS_TIME_H) unistd.h $(WCHAR_H) $(WCTYPE_H)
+ SUFFIXES = .sed .sin
+ MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t argz.h \
+ 	argz.h-t getopt.h getopt.h-t stdbool.h stdbool.h-t stdint.h \
+ 	stdint.h-t stdlib.h stdlib.h-t string.h string.h-t sys/stat.h \
+ 	sys/stat.h-t sys/time.h sys/time.h-t unistd.h unistd.h-t \
+ 	wchar.h wchar.h-t wctype.h wctype.h-t
+ MOSTLYCLEANDIRS = sys
+ CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
+ 	ref-del.sed
+ DISTCLEANFILES = 
+ MAINTAINERCLEANFILES = 
+ 
+ # This is for those projects which use "gettextize --intl" to put a source-code
+ # copy of libintl into their package. In such projects, every Makefile.am needs
+ # -I$(top_builddir)/intl, so that <libintl.h> can be found in this directory.
+ # For the Makefile.ams in other directories it is the maintainer's
+ # responsibility; for the one from gnulib we do it here.
+ # This option has no effect when the user disables NLS (because then the intl
+ # directory contains no libintl.h file) or when the project does not use
+ # "gettextize --intl".
+ AM_CPPFLAGS = -I$(top_builddir)/intl
+ libgnu_a_SOURCES = gettext.h localcharset.h localcharset.c malloca.c \
+ 	mbchar.c mbiter.h mbscasecmp.c mbschr.c mbslen.c mbsncasecmp.c \
+ 	mbsstr.c mbswidth.h mbswidth.c mbuiter.h strnlen1.h strnlen1.c \
+ 	uniwidth/width.c xalloc-die.c xsetenv.h xsetenv.c
+ libgnu_a_LIBADD = $(gl_LIBOBJS)
+ libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
+ EXTRA_libgnu_a_SOURCES = argz.c error.c exitfail.c getopt.c getopt1.c \
+ 	gettimeofday.c malloc.c memchr.c memcmp.c memcpy.c memmem.c \
+ 	memmove.c mempcpy.c mkstemp.c setenv.c stpcpy.c strdup.c \
+ 	strerror.c strndup.c strnlen.c tempname.c unsetenv.c wcwidth.c \
+ 	xmalloc.c
+ LINK_WARNING_H = $(top_srcdir)/build-aux/link-warning.h
+ charset_alias = $(DESTDIR)$(libdir)/charset.alias
+ charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+ all: $(BUILT_SOURCES)
+ 	$(MAKE) $(AM_MAKEFLAGS) all-am
+ 
+ .SUFFIXES:
+ .SUFFIXES: .sed .sin .c .o .obj
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits  gnulib/lib/Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnits  gnulib/lib/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ clean-noinstLIBRARIES:
+ 	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+ uniwidth/$(am__dirstamp):
+ 	@$(MKDIR_P) uniwidth
+ 	@: > uniwidth/$(am__dirstamp)
+ uniwidth/$(DEPDIR)/$(am__dirstamp):
+ 	@$(MKDIR_P) uniwidth/$(DEPDIR)
+ 	@: > uniwidth/$(DEPDIR)/$(am__dirstamp)
+ uniwidth/width.$(OBJEXT): uniwidth/$(am__dirstamp) \
+ 	uniwidth/$(DEPDIR)/$(am__dirstamp)
+ libgnu.a: $(libgnu_a_OBJECTS) $(libgnu_a_DEPENDENCIES) 
+ 	-rm -f libgnu.a
+ 	$(libgnu_a_AR) libgnu.a $(libgnu_a_OBJECTS) $(libgnu_a_LIBADD)
+ 	$(RANLIB) libgnu.a
+ 
+ clean-noinstLTLIBRARIES:
+ 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ 	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+ 	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ 	  test "$$dir" != "$$p" || dir=.; \
+ 	  echo "rm -f \"$${dir}/so_locations\""; \
+ 	  rm -f "$${dir}/so_locations"; \
+ 	done
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+ 	-rm -f uniwidth/width.$(OBJEXT)
+ 
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argz.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbscasecmp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbschr.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbslen.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsncasecmp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsstr.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbswidth.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcmp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memcpy.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memmem.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memmove.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mempcpy.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkstemp.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stpcpy.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strdup.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tempname.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcwidth.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsetenv.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/width.Po@am__quote@
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ @am__fastdepCC_TRUE@	mv -f $$depbase.Tpo $$depbase.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c -o $@ $<
+ 
+ .c.obj:
+ @am__fastdepCC_TRUE@	depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ @am__fastdepCC_TRUE@	mv -f $$depbase.Tpo $$depbase.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	mkid -fID $$unique
+ tags: TAGS
+ 
+ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	here=`pwd`; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ 	  test -n "$$unique" || unique=$$empty_fix; \
+ 	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ 	    $$tags $$unique; \
+ 	fi
+ ctags: CTAGS
+ CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ 	     $$tags $$unique
+ 
+ GTAGS:
+ 	here=`$(am__cd) $(top_builddir) && pwd` \
+ 	  && cd $(top_srcdir) \
+ 	  && gtags -i $(GTAGS_ARGS) $$here
+ 
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ check-am: all-am
+ check: $(BUILT_SOURCES)
+ 	$(MAKE) $(AM_MAKEFLAGS) check-am
+ all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local
+ installdirs:
+ install: $(BUILT_SOURCES)
+ 	$(MAKE) $(AM_MAKEFLAGS) install-am
+ install-exec: install-exec-am
+ install-data: install-data-am
+ uninstall: uninstall-am
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-am
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 	-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+ 
+ clean-generic:
+ 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 	-rm -f uniwidth/$(DEPDIR)/$(am__dirstamp)
+ 	-rm -f uniwidth/$(am__dirstamp)
+ 	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ 	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+ 	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+ clean: clean-am
+ 
+ clean-am: clean-generic clean-noinstLIBRARIES clean-noinstLTLIBRARIES \
+ 	mostlyclean-am
+ 
+ distclean: distclean-am
+ 	-rm -rf ./$(DEPDIR) uniwidth/$(DEPDIR)
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-compile distclean-generic \
+ 	distclean-tags
+ 
+ dvi: dvi-am
+ 
+ dvi-am:
+ 
+ html: html-am
+ 
+ info: info-am
+ 
+ info-am:
+ 
+ install-data-am:
+ 
+ install-dvi: install-dvi-am
+ 
+ install-exec-am: install-exec-local
+ 
+ install-html: install-html-am
+ 
+ install-info: install-info-am
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-am
+ 
+ install-ps: install-ps-am
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+ 	-rm -rf ./$(DEPDIR) uniwidth/$(DEPDIR)
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+ 
+ mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ 	mostlyclean-local
+ 
+ pdf: pdf-am
+ 
+ pdf-am:
+ 
+ ps: ps-am
+ 
+ ps-am:
+ 
+ uninstall-am: uninstall-local
+ 
+ .MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am all-local check check-am clean \
+ 	clean-generic clean-noinstLIBRARIES clean-noinstLTLIBRARIES \
+ 	ctags distclean distclean-compile distclean-generic \
+ 	distclean-tags distdir dvi dvi-am html html-am info info-am \
+ 	install install-am install-data install-data-am install-dvi \
+ 	install-dvi-am install-exec install-exec-am install-exec-local \
+ 	install-html install-html-am install-info install-info-am \
+ 	install-man install-pdf install-pdf-am install-ps \
+ 	install-ps-am install-strip installcheck installcheck-am \
+ 	installdirs maintainer-clean maintainer-clean-generic \
+ 	mostlyclean mostlyclean-compile mostlyclean-generic \
+ 	mostlyclean-local pdf pdf-am ps ps-am tags uninstall \
+ 	uninstall-am uninstall-local
+ 
+ 
+ # We need the following in order to create <alloca.h> when the system
+ # doesn't have one that works with the given compiler.
+ alloca.h: alloca.in.h
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  cat $(srcdir)/alloca.in.h; \
+ 	} > $@-t
+ 	mv -f $@-t $@
+ 
+ # We need the following in order to create <argz.h> when the system
+ # doesn't have one that works with the given compiler.
+ argz.h: argz.in.h
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  cat $(srcdir)/argz.in.h; \
+ 	} > $@-t
+ 	mv -f $@-t $@
+ 
+ # Retrieve values of the variables through 'configure' followed by
+ # 'make', not directly through 'configure', so that a user who
+ # sets some of these variables consistently on the 'make' command
+ # line gets correct results.
+ #
+ # One advantage of this approach, compared to the classical
+ # approach of adding -DLIBDIR=\"$(libdir)\" etc. to AM_CPPFLAGS,
+ # is that it protects against the use of undefined variables.
+ # If, say, $(libdir) is not set in the Makefile, LIBDIR is not
+ # defined by this module, and code using LIBDIR gives a
+ # compilation error.
+ #
+ # Another advantage is that 'make' output is shorter.
+ #
+ # Listed in the same order as the GNU makefile conventions.
+ # The Automake-defined pkg* macros are appended, in the order
+ # listed in the Automake 1.10a+ documentation.
+ configmake.h: Makefile
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  echo '#define PREFIX "$(prefix)"'; \
+ 	  echo '#define EXEC_PREFIX "$(exec_prefix)"'; \
+ 	  echo '#define BINDIR "$(bindir)"'; \
+ 	  echo '#define SBINDIR "$(sbindir)"'; \
+ 	  echo '#define LIBEXECDIR "$(libexecdir)"'; \
+ 	  echo '#define DATAROOTDIR "$(datarootdir)"'; \
+ 	  echo '#define DATADIR "$(datadir)"'; \
+ 	  echo '#define SYSCONFDIR "$(sysconfdir)"'; \
+ 	  echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
+ 	  echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+ 	  echo '#define INCLUDEDIR "$(includedir)"'; \
+ 	  echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
+ 	  echo '#define DOCDIR "$(docdir)"'; \
+ 	  echo '#define INFODIR "$(infodir)"'; \
+ 	  echo '#define HTMLDIR "$(htmldir)"'; \
+ 	  echo '#define DVIDIR "$(dvidir)"'; \
+ 	  echo '#define PDFDIR "$(pdfdir)"'; \
+ 	  echo '#define PSDIR "$(psdir)"'; \
+ 	  echo '#define LIBDIR "$(libdir)"'; \
+ 	  echo '#define LISPDIR "$(lispdir)"'; \
+ 	  echo '#define LOCALEDIR "$(localedir)"'; \
+ 	  echo '#define MANDIR "$(mandir)"'; \
+ 	  echo '#define MANEXT "$(manext)"'; \
+ 	  echo '#define PKGDATADIR "$(pkgdatadir)"'; \
+ 	  echo '#define PKGINCLUDEDIR "$(pkgincludedir)"'; \
+ 	  echo '#define PKGLIBDIR "$(pkglibdir)"'; \
+ 	  echo '#define PKGLIBEXECDIR "$(pkglibexecdir)"'; \
+ 	} | sed '/""/d' > $@-t
+ 	mv $@-t $@
+ 
+ # We need the following in order to create <getopt.h> when the system
+ # doesn't have one that works with the given compiler.
+ getopt.h: getopt.in.h
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  cat $(srcdir)/getopt.in.h; \
+ 	} > $@-t
+ 	mv -f $@-t $@
+ 
+ # We need the following in order to install a simple file in $(libdir)
+ # which is shared with other installed packages. We use a list of referencing
+ # packages so that "make uninstall" will remove the file if and only if it
+ # is not used by another installed package.
+ # On systems with glibc-2.1 or newer, the file is redundant, therefore we
+ # avoid installing it.
+ 
+ all-local: charset.alias ref-add.sed ref-del.sed
+ install-exec-local: all-local
+ 	test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir)
+ 	if test -f $(charset_alias); then \
+ 	  sed -f ref-add.sed $(charset_alias) > $(charset_tmp) ; \
+ 	  $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+ 	  rm -f $(charset_tmp) ; \
+ 	else \
+ 	  if test $(GLIBC21) = no; then \
+ 	    sed -f ref-add.sed charset.alias > $(charset_tmp) ; \
+ 	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias) ; \
+ 	    rm -f $(charset_tmp) ; \
+ 	  fi ; \
+ 	fi
+ 
+ uninstall-local: all-local
+ 	if test -f $(charset_alias); then \
+ 	  sed -f ref-del.sed $(charset_alias) > $(charset_tmp); \
+ 	  if grep '^# Packages using this file: $$' $(charset_tmp) \
+ 	      > /dev/null; then \
+ 	    rm -f $(charset_alias); \
+ 	  else \
+ 	    $(INSTALL_DATA) $(charset_tmp) $(charset_alias); \
+ 	  fi; \
+ 	  rm -f $(charset_tmp); \
+ 	fi
+ 
+ charset.alias: config.charset
+ 	rm -f t-$@ $@
+ 	$(SHELL) $(srcdir)/config.charset '$(host)' > t-$@
+ 	mv t-$@ $@
+ .sin.sed:
+ 	rm -f t-$@ $@
+ 	sed -e '/^#/d' -e 's/@''PACKAGE''@/$(PACKAGE)/g' $< > t-$@
+ 	mv t-$@ $@
+ 
+ # We need the following in order to create <stdbool.h> when the system
+ # doesn't have one that works.
+ stdbool.h: stdbool.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ 
+ # We need the following in order to create <stdint.h> when the system
+ # doesn't have one that works with the given compiler.
+ stdint.h: stdint.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+ 	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+ 	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+ 	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+ 	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+ 	      -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+ 	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+ 	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+ 	      -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+ 	      -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+ 	      -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+ 	      -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+ 	      -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+ 	      -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+ 	      -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+ 	      -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+ 	      -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+ 	      -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+ 	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+ 	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+ 	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+ 	      < $(srcdir)/stdint.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ 
+ # We need the following in order to create <stdlib.h> when the system
+ # doesn't have one that works with the given compiler.
+ stdlib.h: stdlib.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ 	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+ 	      -e 's|@''GNULIB_MALLOC_POSIX''@|$(GNULIB_MALLOC_POSIX)|g' \
+ 	      -e 's|@''GNULIB_REALLOC_POSIX''@|$(GNULIB_REALLOC_POSIX)|g' \
+ 	      -e 's|@''GNULIB_CALLOC_POSIX''@|$(GNULIB_CALLOC_POSIX)|g' \
+ 	      -e 's|@''GNULIB_GETSUBOPT''@|$(GNULIB_GETSUBOPT)|g' \
+ 	      -e 's|@''GNULIB_MKDTEMP''@|$(GNULIB_MKDTEMP)|g' \
+ 	      -e 's|@''GNULIB_MKSTEMP''@|$(GNULIB_MKSTEMP)|g' \
+ 	      -e 's|@''GNULIB_PUTENV''@|$(GNULIB_PUTENV)|g' \
+ 	      -e 's|@''GNULIB_RPMATCH''@|$(GNULIB_RPMATCH)|g' \
+ 	      -e 's|@''GNULIB_SETENV''@|$(GNULIB_SETENV)|g' \
+ 	      -e 's|@''GNULIB_STRTOD''@|$(GNULIB_STRTOD)|g' \
+ 	      -e 's|@''GNULIB_UNSETENV''@|$(GNULIB_UNSETENV)|g' \
+ 	      -e 's|@''HAVE_CALLOC_POSIX''@|$(HAVE_CALLOC_POSIX)|g' \
+ 	      -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \
+ 	      -e 's|@''HAVE_MALLOC_POSIX''@|$(HAVE_MALLOC_POSIX)|g' \
+ 	      -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \
+ 	      -e 's|@''HAVE_REALLOC_POSIX''@|$(HAVE_REALLOC_POSIX)|g' \
+ 	      -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+ 	      -e 's|@''HAVE_SETENV''@|$(HAVE_SETENV)|g' \
+ 	      -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
+ 	      -e 's|@''HAVE_UNSETENV''@|$(HAVE_UNSETENV)|g' \
+ 	      -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+ 	      -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+ 	      -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
+ 	      -e 's|@''VOID_UNSETENV''@|$(VOID_UNSETENV)|g' \
+ 	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ 	      < $(srcdir)/stdlib.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ 
+ # We need the following in order to create <string.h> when the system
+ # doesn't have one that works with the given compiler.
+ string.h: string.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ 	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
+ 	      -e 's|@''GNULIB_MBSLEN''@|$(GNULIB_MBSLEN)|g' \
+ 	      -e 's|@''GNULIB_MBSNLEN''@|$(GNULIB_MBSNLEN)|g' \
+ 	      -e 's|@''GNULIB_MBSCHR''@|$(GNULIB_MBSCHR)|g' \
+ 	      -e 's|@''GNULIB_MBSRCHR''@|$(GNULIB_MBSRCHR)|g' \
+ 	      -e 's|@''GNULIB_MBSSTR''@|$(GNULIB_MBSSTR)|g' \
+ 	      -e 's|@''GNULIB_MBSCASECMP''@|$(GNULIB_MBSCASECMP)|g' \
+ 	      -e 's|@''GNULIB_MBSNCASECMP''@|$(GNULIB_MBSNCASECMP)|g' \
+ 	      -e 's|@''GNULIB_MBSPCASECMP''@|$(GNULIB_MBSPCASECMP)|g' \
+ 	      -e 's|@''GNULIB_MBSCASESTR''@|$(GNULIB_MBSCASESTR)|g' \
+ 	      -e 's|@''GNULIB_MBSCSPN''@|$(GNULIB_MBSCSPN)|g' \
+ 	      -e 's|@''GNULIB_MBSPBRK''@|$(GNULIB_MBSPBRK)|g' \
+ 	      -e 's|@''GNULIB_MBSSPN''@|$(GNULIB_MBSSPN)|g' \
+ 	      -e 's|@''GNULIB_MBSSEP''@|$(GNULIB_MBSSEP)|g' \
+ 	      -e 's|@''GNULIB_MBSTOK_R''@|$(GNULIB_MBSTOK_R)|g' \
+ 	      -e 's|@''GNULIB_MEMMEM''@|$(GNULIB_MEMMEM)|g' \
+ 	      -e 's|@''GNULIB_MEMPCPY''@|$(GNULIB_MEMPCPY)|g' \
+ 	      -e 's|@''GNULIB_MEMRCHR''@|$(GNULIB_MEMRCHR)|g' \
+ 	      -e 's|@''GNULIB_RAWMEMCHR''@|$(GNULIB_RAWMEMCHR)|g' \
+ 	      -e 's|@''GNULIB_STPCPY''@|$(GNULIB_STPCPY)|g' \
+ 	      -e 's|@''GNULIB_STPNCPY''@|$(GNULIB_STPNCPY)|g' \
+ 	      -e 's|@''GNULIB_STRCHRNUL''@|$(GNULIB_STRCHRNUL)|g' \
+ 	      -e 's|@''GNULIB_STRDUP''@|$(GNULIB_STRDUP)|g' \
+ 	      -e 's|@''GNULIB_STRNDUP''@|$(GNULIB_STRNDUP)|g' \
+ 	      -e 's|@''GNULIB_STRNLEN''@|$(GNULIB_STRNLEN)|g' \
+ 	      -e 's|@''GNULIB_STRPBRK''@|$(GNULIB_STRPBRK)|g' \
+ 	      -e 's|@''GNULIB_STRSEP''@|$(GNULIB_STRSEP)|g' \
+ 	      -e 's|@''GNULIB_STRSTR''@|$(GNULIB_STRSTR)|g' \
+ 	      -e 's|@''GNULIB_STRCASESTR''@|$(GNULIB_STRCASESTR)|g' \
+ 	      -e 's|@''GNULIB_STRTOK_R''@|$(GNULIB_STRTOK_R)|g' \
+ 	      -e 's|@''GNULIB_STRERROR''@|$(GNULIB_STRERROR)|g' \
+ 	      -e 's|@''GNULIB_STRSIGNAL''@|$(GNULIB_STRSIGNAL)|g' \
+ 	      -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \
+ 	      -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \
+ 	      -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \
+ 	      -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \
+ 	      -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \
+ 	      -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \
+ 	      -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \
+ 	      -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \
+ 	      -e 's|@''HAVE_STRNDUP''@|$(HAVE_STRNDUP)|g' \
+ 	      -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \
+ 	      -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \
+ 	      -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \
+ 	      -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \
+ 	      -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \
+ 	      -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \
+ 	      -e 's|@''HAVE_DECL_STRERROR''@|$(HAVE_DECL_STRERROR)|g' \
+ 	      -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
+ 	      -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \
+ 	      -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \
+ 	      -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \
+ 	      -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \
+ 	      -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \
+ 	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ 	      < $(srcdir)/string.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ 
+ # We need the following in order to create <sys/stat.h> when the system
+ # has one that is incomplete.
+ sys/stat.h: sys_stat.in.h
+ 	@MKDIR_P@ sys
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
+ 	      -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \
+ 	      -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \
+ 	      < $(srcdir)/sys_stat.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ 
+ # We need the following in order to create <sys/time.h> when the system
+ # doesn't have one that works with the given compiler.
+ sys/time.h: sys_time.in.h
+ 	@MKDIR_P@ sys
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \
+ 	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
+ 	      -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \
+ 	      -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \
+ 	      < $(srcdir)/sys_time.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ 
+ # We need the following in order to create an empty placeholder for
+ # <unistd.h> when the system doesn't have one.
+ unistd.h: unistd.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \
+ 	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+ 	      -e 's|@''GNULIB_CHOWN''@|$(GNULIB_CHOWN)|g' \
+ 	      -e 's|@''GNULIB_DUP2''@|$(GNULIB_DUP2)|g' \
+ 	      -e 's|@''GNULIB_ENVIRON''@|$(GNULIB_ENVIRON)|g' \
+ 	      -e 's|@''GNULIB_FCHDIR''@|$(GNULIB_FCHDIR)|g' \
+ 	      -e 's|@''GNULIB_FTRUNCATE''@|$(GNULIB_FTRUNCATE)|g' \
+ 	      -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
+ 	      -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
+ 	      -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
+ 	      -e 's|@''GNULIB_LCHOWN''@|$(GNULIB_LCHOWN)|g' \
+ 	      -e 's|@''GNULIB_LSEEK''@|$(GNULIB_LSEEK)|g' \
+ 	      -e 's|@''GNULIB_READLINK''@|$(GNULIB_READLINK)|g' \
+ 	      -e 's|@''GNULIB_SLEEP''@|$(GNULIB_SLEEP)|g' \
+ 	      -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \
+ 	      -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
+ 	      -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
+ 	      -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+ 	      -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \
+ 	      -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \
+ 	      -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+ 	      -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
+ 	      -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
+ 	      -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \
+ 	      -e 's|@''REPLACE_FCHDIR''@|$(REPLACE_FCHDIR)|g' \
+ 	      -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+ 	      -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+ 	      -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \
+ 	      -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \
+ 	      < $(srcdir)/unistd.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ 
+ # We need the following in order to create <wchar.h> when the system
+ # version does not work standalone.
+ wchar.h: wchar.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+ 	      -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+ 	      -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
+ 	      -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+ 	      -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+ 	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+ 	    < $(srcdir)/wchar.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ 
+ # We need the following in order to create <wctype.h> when the system
+ # doesn't have one that works with the given compiler.
+ wctype.h: wctype.in.h
+ 	rm -f $@-t $@
+ 	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ 	  sed -e 's/@''HAVE_WCTYPE_H''@/$(HAVE_WCTYPE_H)/g' \
+ 	      -e 's/@''INCLUDE_NEXT''@/$(INCLUDE_NEXT)/g' \
+ 	      -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+ 	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+ 	      -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+ 	      -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+ 	      < $(srcdir)/wctype.in.h; \
+ 	} > $@-t
+ 	mv $@-t $@
+ 
+ mostlyclean-local: mostlyclean-generic
+ 	@for dir in '' $(MOSTLYCLEANDIRS); do \
+ 	  if test -n "$$dir" && test -d $$dir; then \
+ 	    echo "rmdir $$dir"; rmdir $$dir; \
+ 	  fi; \
+ 	done; \
+ 	:
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/gnulib/lib/alloca.in.h texinfo-4.13/gnulib/lib/alloca.in.h
*** texinfo-4.12/gnulib/lib/alloca.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/alloca.in.h	Sat Mar  8 06:31:56 2008
***************
*** 0 ****
--- 1,56 ----
+ /* Memory allocation on the stack.
+ 
+    Copyright (C) 1995, 1999, 2001-2004, 2006-2008 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+    USA.  */
+ 
+ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
+    means there is a real alloca function.  */
+ #ifndef _GL_ALLOCA_H
+ #define _GL_ALLOCA_H
+ 
+ /* alloca (N) returns a pointer to N bytes of memory
+    allocated on the stack, which will last until the function returns.
+    Use of alloca should be avoided:
+      - inside arguments of function calls - undefined behaviour,
+      - in inline functions - the allocation may actually last until the
+        calling function returns,
+      - for huge N (say, N >= 65536) - you never know how large (or small)
+        the stack is, and when the stack cannot fulfill the memory allocation
+        request, the program just crashes.
+  */
+ 
+ #ifndef alloca
+ # ifdef __GNUC__
+ #  define alloca __builtin_alloca
+ # elif defined _AIX
+ #  define alloca __alloca
+ # elif defined _MSC_VER
+ #  include <malloc.h>
+ #  define alloca _alloca
+ # elif defined __DECC && defined __VMS
+ #  define alloca __ALLOCA
+ # else
+ #  include <stddef.h>
+ #  ifdef  __cplusplus
+ extern "C"
+ #  endif
+ void *alloca (size_t);
+ # endif
+ #endif
+ 
+ #endif /* _GL_ALLOCA_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/argz.c texinfo-4.13/gnulib/lib/argz.c
*** texinfo-4.12/gnulib/lib/argz.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/argz.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,406 ----
+ /* Functions for dealing with '\0' separated arg vectors.
+    Copyright (C) 1995-1998, 2000-2002, 2006, 2008 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+ 
+ #include <config.h>
+ 
+ #include <argz.h>
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ 
+ 
+ /* Add BUF, of length BUF_LEN to the argz vector in ARGZ & ARGZ_LEN.  */
+ error_t
+ argz_append (char **argz, size_t *argz_len, const char *buf, size_t buf_len)
+ {
+   size_t new_argz_len = *argz_len + buf_len;
+   char *new_argz = realloc (*argz, new_argz_len);
+   if (new_argz)
+     {
+       memcpy (new_argz + *argz_len, buf, buf_len);
+       *argz = new_argz;
+       *argz_len = new_argz_len;
+       return 0;
+     }
+   else
+     return ENOMEM;
+ }
+ 
+ /* Add STR to the argz vector in ARGZ & ARGZ_LEN.  This should be moved into
+    argz.c in libshouldbelibc.  */
+ error_t
+ argz_add (char **argz, size_t *argz_len, const char *str)
+ {
+   return argz_append (argz, argz_len, str, strlen (str) + 1);
+ }
+ 
+ 
+ 
+ error_t
+ argz_add_sep (char **argz, size_t *argz_len, const char *string, int delim)
+ {
+   size_t nlen = strlen (string) + 1;
+ 
+   if (nlen > 1)
+     {
+       const char *rp;
+       char *wp;
+ 
+       *argz = (char *) realloc (*argz, *argz_len + nlen);
+       if (*argz == NULL)
+ 	return ENOMEM;
+ 
+       wp = *argz + *argz_len;
+       rp = string;
+       do
+ 	if (*rp == delim)
+ 	  {
+ 	    if (wp > *argz && wp[-1] != '\0')
+ 	      *wp++ = '\0';
+ 	    else
+ 	      --nlen;
+ 	  }
+ 	else
+ 	  *wp++ = *rp;
+       while (*rp++ != '\0');
+ 
+       *argz_len += nlen;
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ 
+ error_t
+ argz_create_sep (const char *string, int delim, char **argz, size_t *len)
+ {
+   size_t nlen = strlen (string) + 1;
+ 
+   if (nlen > 1)
+     {
+       const char *rp;
+       char *wp;
+ 
+       *argz = (char *) malloc (nlen);
+       if (*argz == NULL)
+ 	return ENOMEM;
+ 
+       rp = string;
+       wp = *argz;
+       do
+ 	if (*rp == delim)
+ 	  {
+ 	    if (wp > *argz && wp[-1] != '\0')
+ 	      *wp++ = '\0';
+ 	    else
+ 	      --nlen;
+ 	  }
+ 	else
+ 	  *wp++ = *rp;
+       while (*rp++ != '\0');
+ 
+       if (nlen == 0)
+ 	{
+ 	  free (*argz);
+ 	  *argz = NULL;
+ 	  *len = 0;
+ 	}
+ 
+       *len = nlen;
+     }
+   else
+     {
+       *argz = NULL;
+       *len = 0;
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ /* Insert ENTRY into ARGZ & ARGZ_LEN before BEFORE, which should be an
+    existing entry in ARGZ; if BEFORE is NULL, ENTRY is appended to the end.
+    Since ARGZ's first entry is the same as ARGZ, argz_insert (ARGZ, ARGZ_LEN,
+    ARGZ, ENTRY) will insert ENTRY at the beginning of ARGZ.  If BEFORE is not
+    in ARGZ, EINVAL is returned, else if memory can't be allocated for the new
+    ARGZ, ENOMEM is returned, else 0.  */
+ error_t
+ argz_insert (char **argz, size_t *argz_len, char *before, const char *entry)
+ {
+   if (! before)
+     return argz_add (argz, argz_len, entry);
+ 
+   if (before < *argz || before >= *argz + *argz_len)
+     return EINVAL;
+ 
+   if (before > *argz)
+     /* Make sure before is actually the beginning of an entry.  */
+     while (before[-1])
+       before--;
+ 
+   {
+     size_t after_before = *argz_len - (before - *argz);
+     size_t entry_len = strlen  (entry) + 1;
+     size_t new_argz_len = *argz_len + entry_len;
+     char *new_argz = realloc (*argz, new_argz_len);
+ 
+     if (new_argz)
+       {
+ 	before = new_argz + (before - *argz);
+ 	memmove (before + entry_len, before, after_before);
+ 	memmove (before, entry, entry_len);
+ 	*argz = new_argz;
+ 	*argz_len = new_argz_len;
+ 	return 0;
+       }
+     else
+       return ENOMEM;
+   }
+ }
+ 
+ 
+ char *
+ argz_next (const char *argz, size_t argz_len, const char *entry)
+ {
+   if (entry)
+     {
+       if (entry < argz + argz_len)
+ 	entry = strchr (entry, '\0') + 1;
+ 
+       return entry >= argz + argz_len ? NULL : (char *) entry;
+     }
+   else
+     if (argz_len > 0)
+       return (char *) argz;
+     else
+       return NULL;
+ }
+ 
+ 
+ /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
+    except the last into the character SEP.  */
+ void
+ argz_stringify (char *argz, size_t len, int sep)
+ {
+   if (len > 0)
+     while (1)
+       {
+ 	size_t part_len = strnlen (argz, len);
+ 	argz += part_len;
+ 	len -= part_len;
+ 	if (len-- <= 1)		/* includes final '\0' we want to stop at */
+ 	  break;
+ 	*argz++ = sep;
+       }
+ }
+ 
+ 
+ /* Returns the number of strings in ARGZ.  */
+ size_t
+ argz_count (const char *argz, size_t len)
+ {
+   size_t count = 0;
+   while (len > 0)
+     {
+       size_t part_len = strlen(argz);
+       argz += part_len + 1;
+       len -= part_len + 1;
+       count++;
+     }
+   return count;
+ }
+ 
+ 
+ /* Puts pointers to each string in ARGZ, plus a terminating 0 element, into
+    ARGV, which must be large enough to hold them all.  */
+ void
+ argz_extract (const char *argz, size_t len, char **argv)
+ {
+   while (len > 0)
+     {
+       size_t part_len = strlen (argz);
+       *argv++ = (char *) argz;
+       argz += part_len + 1;
+       len -= part_len + 1;
+     }
+   *argv = 0;
+ }
+ 
+ 
+ /* Make a '\0' separated arg vector from a unix argv vector, returning it in
+    ARGZ, and the total length in LEN.  If a memory allocation error occurs,
+    ENOMEM is returned, otherwise 0.  */
+ error_t
+ argz_create (char *const argv[], char **argz, size_t *len)
+ {
+   int argc;
+   size_t tlen = 0;
+   char *const *ap;
+   char *p;
+ 
+   for (argc = 0; argv[argc] != NULL; ++argc)
+     tlen += strlen (argv[argc]) + 1;
+ 
+   if (tlen == 0)
+     *argz = NULL;
+   else
+     {
+       *argz = malloc (tlen);
+       if (*argz == NULL)
+ 	return ENOMEM;
+ 
+       for (p = *argz, ap = argv; *ap; ++ap, ++p)
+ 	p = stpcpy (p, *ap);
+     }
+   *len = tlen;
+ 
+   return 0;
+ }
+ 
+ 
+ /* Delete ENTRY from ARGZ & ARGZ_LEN, if any.  */
+ void
+ argz_delete (char **argz, size_t *argz_len, char *entry)
+ {
+   if (entry)
+     /* Get rid of the old value for NAME.  */
+     {
+       size_t entry_len = strlen (entry) + 1;
+       *argz_len -= entry_len;
+       memmove (entry, entry + entry_len, *argz_len - (entry - *argz));
+       if (*argz_len == 0)
+ 	{
+ 	  free (*argz);
+ 	  *argz = 0;
+ 	}
+     }
+ }
+ 
+ 
+ /* Append BUF, of length BUF_LEN to *TO, of length *TO_LEN, reallocating and
+    updating *TO & *TO_LEN appropriately.  If an allocation error occurs,
+    *TO's old value is freed, and *TO is set to 0.  */
+ static void
+ str_append (char **to, size_t *to_len, const char *buf, const size_t buf_len)
+ {
+   size_t new_len = *to_len + buf_len;
+   char *new_to = realloc (*to, new_len + 1);
+ 
+   if (new_to)
+     {
+       *((char *) mempcpy (new_to + *to_len, buf, buf_len)) = '\0';
+       *to = new_to;
+       *to_len = new_len;
+     }
+   else
+     {
+       free (*to);
+       *to = 0;
+     }
+ }
+ 
+ /* Replace any occurrences of the string STR in ARGZ with WITH, reallocating
+    ARGZ as necessary.  If REPLACE_COUNT is non-zero, *REPLACE_COUNT will be
+    incremented by number of replacements performed.  */
+ error_t
+ argz_replace (char **argz, size_t *argz_len, const char *str, const char *with,
+ 		unsigned *replace_count)
+ {
+   error_t err = 0;
+ 
+   if (str && *str)
+     {
+       char *arg = 0;
+       char *src = *argz;
+       size_t src_len = *argz_len;
+       char *dst = 0;
+       size_t dst_len = 0;
+       int delayed_copy = 1;	/* True while we've avoided copying anything.  */
+       size_t str_len = strlen (str), with_len = strlen (with);
+ 
+       while (!err && (arg = argz_next (src, src_len, arg)))
+ 	{
+ 	  char *match = strstr (arg, str);
+ 	  if (match)
+ 	    {
+ 	      char *from = match + str_len;
+ 	      size_t to_len = match - arg;
+ 	      char *to = strndup (arg, to_len);
+ 
+ 	      while (to && from)
+ 		{
+ 		  str_append (&to, &to_len, with, with_len);
+ 		  if (to)
+ 		    {
+ 		      match = strstr (from, str);
+ 		      if (match)
+ 			{
+ 			  str_append (&to, &to_len, from, match - from);
+ 			  from = match + str_len;
+ 			}
+ 		      else
+ 			{
+ 			  str_append (&to, &to_len, from, strlen (from));
+ 			  from = 0;
+ 			}
+ 		    }
+ 		}
+ 
+ 	      if (to)
+ 		{
+ 		  if (delayed_copy)
+ 		    /* We avoided copying SRC to DST until we found a match;
+                        now that we've done so, copy everything from the start
+                        of SRC.  */
+ 		    {
+ 		      if (arg > src)
+ 			err = argz_append (&dst, &dst_len, src, (arg - src));
+ 		      delayed_copy = 0;
+ 		    }
+ 		  if (! err)
+ 		    err = argz_add (&dst, &dst_len, to);
+ 		  free (to);
+ 		}
+ 	      else
+ 		err = ENOMEM;
+ 
+ 	      if (replace_count)
+ 		(*replace_count)++;
+ 	    }
+ 	  else if (! delayed_copy)
+ 	    err = argz_add (&dst, &dst_len, arg);
+ 	}
+ 
+       if (! err)
+ 	{
+ 	  if (! delayed_copy)
+ 	    /* We never found any instances of str.  */
+ 	    {
+ 	      free (src);
+ 	      *argz = dst;
+ 	      *argz_len = dst_len;
+ 	    }
+ 	}
+       else if (dst_len > 0)
+ 	free (dst);
+     }
+ 
+   return err;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/argz.in.h texinfo-4.13/gnulib/lib/argz.in.h
*** texinfo-4.12/gnulib/lib/argz.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/argz.in.h	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,161 ----
+ /* Routines for dealing with '\0' separated arg vectors.
+    Copyright (C) 1995,96,97,98,99,2000,2004,2007 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library 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 3 of the License, or (at your option) any later version.
+ 
+    The GNU C Library 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public
+    License along with the GNU C Library; if not, write to the Free
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
+ 
+ #ifndef _ARGZ_H
+ #define _ARGZ_H	1
+ 
+ 
+ #define __need_error_t
+ #include <errno.h>
+ #include <string.h>		/* Need size_t, and strchr is called below.  */
+ 
+ #ifndef const
+ # define const const
+ #endif
+ 
+ #ifndef __error_t_defined
+ typedef int error_t;
+ #endif
+ 
+ 
+ 
+ /* Make a '\0' separated arg vector from a unix argv vector, returning it in
+    ARGZ, and the total length in LEN.  If a memory allocation error occurs,
+    ENOMEM is returned, otherwise 0.  The result can be destroyed using free. */
+ 
+ extern error_t argz_create (char *const __argv[], char **restrict __argz,
+ 			    size_t *restrict __len);
+ 
+ /* Make a '\0' separated arg vector from a SEP separated list in
+    STRING, returning it in ARGZ, and the total length in LEN.  If a
+    memory allocation error occurs, ENOMEM is returned, otherwise 0.
+    The result can be destroyed using free.  */
+ 
+ extern error_t argz_create_sep (const char *restrict string,
+ 				int __sep, char **restrict __argz,
+ 				size_t *restrict __len);
+ 
+ /* Returns the number of strings in ARGZ.  */
+ 
+ extern size_t argz_count (const char *__argz, size_t __len)
+ ;
+ 
+ /* Puts pointers to each string in ARGZ into ARGV, which must be large enough
+    to hold them all.  */
+ 
+ extern void argz_extract (const char *restrict __argz, size_t __len,
+ 			  char **restrict __argv);
+ 
+ /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
+    except the last into the character SEP.  */
+ 
+ extern void argz_stringify (char *__argz, size_t __len, int __sep);
+ 
+ /* Append BUF, of length BUF_LEN to the argz vector in ARGZ & ARGZ_LEN.  */
+ 
+ extern error_t argz_append (char **restrict __argz,
+ 			    size_t *restrict __argz_len,
+ 			    const char *restrict __buf, size_t __buf_len)
+ ;
+ 
+ /* Append STR to the argz vector in ARGZ & ARGZ_LEN.  */
+ 
+ extern error_t argz_add (char **restrict __argz,
+ 			 size_t *restrict __argz_len,
+ 			 const char *restrict str);
+ 
+ /* Append SEP separated list in STRING to the argz vector in ARGZ &
+    ARGZ_LEN.  */
+ 
+ extern error_t argz_add_sep (char **restrict __argz,
+ 			     size_t *restrict __argz_len,
+ 			     const char *restrict string, int __delim)
+ ;
+ 
+ /* Delete ENTRY from ARGZ & ARGZ_LEN, if it appears there.  */
+ 
+ extern void argz_delete (char **restrict __argz,
+ 			 size_t *restrict __argz_len,
+ 			 char *restrict __entry);
+ 
+ /* Insert ENTRY into ARGZ & ARGZ_LEN before BEFORE, which should be an
+    existing entry in ARGZ; if BEFORE is NULL, ENTRY is appended to the end.
+    Since ARGZ's first entry is the same as ARGZ, argz_insert (ARGZ, ARGZ_LEN,
+    ARGZ, ENTRY) will insert ENTRY at the beginning of ARGZ.  If BEFORE is not
+    in ARGZ, EINVAL is returned, else if memory can't be allocated for the new
+    ARGZ, ENOMEM is returned, else 0.  */
+ 
+ extern error_t argz_insert (char **restrict __argz,
+ 			    size_t *restrict __argz_len,
+ 			    char *restrict __before,
+ 			    const char *restrict __entry);
+ 
+ /* Replace any occurrences of the string STR in ARGZ with WITH, reallocating
+    ARGZ as necessary.  If REPLACE_COUNT is non-zero, *REPLACE_COUNT will be
+    incremented by number of replacements performed.  */
+ 
+ extern error_t argz_replace (char **restrict __argz,
+ 			     size_t *restrict __argz_len,
+ 			     const char *restrict str,
+ 			     const char *restrict __with,
+ 			     unsigned int *restrict __replace_count);
+ 
+ /* Returns the next entry in ARGZ & ARGZ_LEN after ENTRY, or NULL if there
+    are no more.  If entry is NULL, then the first entry is returned.  This
+    behavior allows two convenient iteration styles:
+ 
+     char *entry = 0;
+     while ((entry = argz_next (argz, argz_len, entry)))
+       ...;
+ 
+    or
+ 
+     char *entry;
+     for (entry = argz; entry; entry = argz_next (argz, argz_len, entry))
+       ...;
+ */
+ 
+ extern char *argz_next (const char *restrict __argz, size_t __argz_len,
+ 			const char *restrict __entry);
+ 
+ #ifdef __USE_EXTERN_INLINES
+ __extern_inline char *
+ __NTH (argz_next (const char *__argz, size_t __argz_len,
+ 		    const char *__entry))
+ {
+   if (__entry)
+     {
+       if (__entry < __argz + __argz_len)
+ 	__entry = strchr (__entry, '\0') + 1;
+ 
+       return __entry >= __argz + __argz_len ? (char *) NULL : (char *) __entry;
+     }
+   else
+     return __argz_len > 0 ? (char *) __argz : 0;
+ }
+ __extern_inline char *
+ __NTH (argz_next (const char *__argz, size_t __argz_len,
+ 		  const char *__entry))
+ {
+   return argz_next (__argz, __argz_len, __entry);
+ }
+ #endif /* Use extern inlines.  */
+ 
+ 
+ #endif /* argz.h */
diff -Nrc2 texinfo-4.12/gnulib/lib/config.charset texinfo-4.13/gnulib/lib/config.charset
*** texinfo-4.12/gnulib/lib/config.charset	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/config.charset	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,649 ----
+ #! /bin/sh
+ # Output a system dependent table of character encoding aliases.
+ #
+ #   Copyright (C) 2000-2004, 2006-2007 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #
+ # The table consists of lines of the form
+ #    ALIAS  CANONICAL
+ #
+ # ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
+ # ALIAS is compared in a case sensitive way.
+ #
+ # CANONICAL is the GNU canonical name for this character encoding.
+ # It must be an encoding supported by libiconv. Support by GNU libc is
+ # also desirable. CANONICAL is case insensitive. Usually an upper case
+ # MIME charset name is preferred.
+ # The current list of GNU canonical charset names is as follows.
+ #
+ #       name              MIME?             used by which systems
+ #   ASCII, ANSI_X3.4-1968       glibc solaris freebsd netbsd darwin
+ #   ISO-8859-1              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
+ #   ISO-8859-2              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
+ #   ISO-8859-3              Y   glibc solaris
+ #   ISO-8859-4              Y   osf solaris freebsd netbsd openbsd darwin
+ #   ISO-8859-5              Y   glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin
+ #   ISO-8859-6              Y   glibc aix hpux solaris
+ #   ISO-8859-7              Y   glibc aix hpux irix osf solaris netbsd openbsd darwin
+ #   ISO-8859-8              Y   glibc aix hpux osf solaris
+ #   ISO-8859-9              Y   glibc aix hpux irix osf solaris darwin
+ #   ISO-8859-13                 glibc netbsd openbsd darwin
+ #   ISO-8859-14                 glibc
+ #   ISO-8859-15                 glibc aix osf solaris freebsd netbsd openbsd darwin
+ #   KOI8-R                  Y   glibc solaris freebsd netbsd openbsd darwin
+ #   KOI8-U                  Y   glibc freebsd netbsd openbsd darwin
+ #   KOI8-T                      glibc
+ #   CP437                       dos
+ #   CP775                       dos
+ #   CP850                       aix osf dos
+ #   CP852                       dos
+ #   CP855                       dos
+ #   CP856                       aix
+ #   CP857                       dos
+ #   CP861                       dos
+ #   CP862                       dos
+ #   CP864                       dos
+ #   CP865                       dos
+ #   CP866                       freebsd netbsd openbsd darwin dos
+ #   CP869                       dos
+ #   CP874                       woe32 dos
+ #   CP922                       aix
+ #   CP932                       aix woe32 dos
+ #   CP943                       aix
+ #   CP949                       osf woe32 dos
+ #   CP950                       woe32 dos
+ #   CP1046                      aix
+ #   CP1124                      aix
+ #   CP1125                      dos
+ #   CP1129                      aix
+ #   CP1250                      woe32
+ #   CP1251                      glibc solaris netbsd openbsd darwin woe32
+ #   CP1252                      aix woe32
+ #   CP1253                      woe32
+ #   CP1254                      woe32
+ #   CP1255                      glibc woe32
+ #   CP1256                      woe32
+ #   CP1257                      woe32
+ #   GB2312                  Y   glibc aix hpux irix solaris freebsd netbsd darwin
+ #   EUC-JP                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+ #   EUC-KR                  Y   glibc aix hpux irix osf solaris freebsd netbsd darwin
+ #   EUC-TW                      glibc aix hpux irix osf solaris netbsd
+ #   BIG5                    Y   glibc aix hpux osf solaris freebsd netbsd darwin
+ #   BIG5-HKSCS                  glibc solaris
+ #   GBK                         glibc aix osf solaris woe32 dos
+ #   GB18030                     glibc solaris netbsd
+ #   SHIFT_JIS               Y   hpux osf solaris freebsd netbsd darwin
+ #   JOHAB                       glibc solaris woe32
+ #   TIS-620                     glibc aix hpux osf solaris
+ #   VISCII                  Y   glibc
+ #   TCVN5712-1                  glibc
+ #   GEORGIAN-PS                 glibc
+ #   HP-ROMAN8                   hpux
+ #   HP-ARABIC8                  hpux
+ #   HP-GREEK8                   hpux
+ #   HP-HEBREW8                  hpux
+ #   HP-TURKISH8                 hpux
+ #   HP-KANA8                    hpux
+ #   DEC-KANJI                   osf
+ #   DEC-HANYU                   osf
+ #   UTF-8                   Y   glibc aix hpux osf solaris netbsd darwin
+ #
+ # Note: Names which are not marked as being a MIME name should not be used in
+ # Internet protocols for information interchange (mail, news, etc.).
+ #
+ # Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
+ # must understand both names and treat them as equivalent.
+ #
+ # The first argument passed to this file is the canonical host specification,
+ #    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+ # or
+ #    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ 
+ host="$1"
+ os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
+ echo "# This file contains a table of character encoding aliases,"
+ echo "# suitable for operating system '${os}'."
+ echo "# It was automatically generated from config.charset."
+ # List of references, updated during installation:
+ echo "# Packages using this file: "
+ case "$os" in
+     linux-gnulibc1*)
+ 	# Linux libc5 doesn't have nl_langinfo(CODESET); therefore
+ 	# localcharset.c falls back to using the full locale name
+ 	# from the environment variables.
+ 	echo "C ASCII"
+ 	echo "POSIX ASCII"
+ 	for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \
+ 	         en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \
+ 	         en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \
+ 	         es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \
+ 	         et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \
+ 	         fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \
+ 	         it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \
+ 	         sv_FI sv_SE; do
+ 	  echo "$l ISO-8859-1"
+ 	  echo "$l.iso-8859-1 ISO-8859-1"
+ 	  echo "$l.iso-8859-15 ISO-8859-15"
+ 	  echo "$l.iso-8859-15@euro ISO-8859-15"
+ 	  echo "$l@euro ISO-8859-15"
+ 	  echo "$l.cp-437 CP437"
+ 	  echo "$l.cp-850 CP850"
+ 	  echo "$l.cp-1252 CP1252"
+ 	  echo "$l.cp-1252@euro CP1252"
+ 	  #echo "$l.atari-st ATARI-ST" # not a commonly used encoding
+ 	  echo "$l.utf-8 UTF-8"
+ 	  echo "$l.utf-8@euro UTF-8"
+ 	done
+ 	for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \
+ 	         sl_SI sr sr_CS sr_YU; do
+ 	  echo "$l ISO-8859-2"
+ 	  echo "$l.iso-8859-2 ISO-8859-2"
+ 	  echo "$l.cp-852 CP852"
+ 	  echo "$l.cp-1250 CP1250"
+ 	  echo "$l.utf-8 UTF-8"
+ 	done
+ 	for l in mk mk_MK ru ru_RU; do
+ 	  echo "$l ISO-8859-5"
+ 	  echo "$l.iso-8859-5 ISO-8859-5"
+ 	  echo "$l.koi8-r KOI8-R"
+ 	  echo "$l.cp-866 CP866"
+ 	  echo "$l.cp-1251 CP1251"
+ 	  echo "$l.utf-8 UTF-8"
+ 	done
+ 	for l in ar ar_SA; do
+ 	  echo "$l ISO-8859-6"
+ 	  echo "$l.iso-8859-6 ISO-8859-6"
+ 	  echo "$l.cp-864 CP864"
+ 	  #echo "$l.cp-868 CP868" # not a commonly used encoding
+ 	  echo "$l.cp-1256 CP1256"
+ 	  echo "$l.utf-8 UTF-8"
+ 	done
+ 	for l in el el_GR gr gr_GR; do
+ 	  echo "$l ISO-8859-7"
+ 	  echo "$l.iso-8859-7 ISO-8859-7"
+ 	  echo "$l.cp-869 CP869"
+ 	  echo "$l.cp-1253 CP1253"
+ 	  echo "$l.cp-1253@euro CP1253"
+ 	  echo "$l.utf-8 UTF-8"
+ 	  echo "$l.utf-8@euro UTF-8"
+ 	done
+ 	for l in he he_IL iw iw_IL; do
+ 	  echo "$l ISO-8859-8"
+ 	  echo "$l.iso-8859-8 ISO-8859-8"
+ 	  echo "$l.cp-862 CP862"
+ 	  echo "$l.cp-1255 CP1255"
+ 	  echo "$l.utf-8 UTF-8"
+ 	done
+ 	for l in tr tr_TR; do
+ 	  echo "$l ISO-8859-9"
+ 	  echo "$l.iso-8859-9 ISO-8859-9"
+ 	  echo "$l.cp-857 CP857"
+ 	  echo "$l.cp-1254 CP1254"
+ 	  echo "$l.utf-8 UTF-8"
+ 	done
+ 	for l in lt lt_LT lv lv_LV; do
+ 	  #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name
+ 	  echo "$l ISO-8859-13"
+ 	done
+ 	for l in ru_UA uk uk_UA; do
+ 	  echo "$l KOI8-U"
+ 	done
+ 	for l in zh zh_CN; do
+ 	  #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name
+ 	  echo "$l GB2312"
+ 	done
+ 	for l in ja ja_JP ja_JP.EUC; do
+ 	  echo "$l EUC-JP"
+ 	done
+ 	for l in ko ko_KR; do
+ 	  echo "$l EUC-KR"
+ 	done
+ 	for l in th th_TH; do
+ 	  echo "$l TIS-620"
+ 	done
+ 	for l in fa fa_IR; do
+ 	  #echo "$l ISIRI-3342" # a broken encoding
+ 	  echo "$l.utf-8 UTF-8"
+ 	done
+ 	;;
+     linux* | *-gnu*)
+ 	# With glibc-2.1 or newer, we don't need any canonicalization,
+ 	# because glibc has iconv and both glibc and libiconv support all
+ 	# GNU canonical names directly. Therefore, the Makefile does not
+ 	# need to install the alias file at all.
+ 	# The following applies only to glibc-2.0.x and older libcs.
+ 	echo "ISO_646.IRV:1983 ASCII"
+ 	;;
+     aix*)
+ 	echo "ISO8859-1 ISO-8859-1"
+ 	echo "ISO8859-2 ISO-8859-2"
+ 	echo "ISO8859-5 ISO-8859-5"
+ 	echo "ISO8859-6 ISO-8859-6"
+ 	echo "ISO8859-7 ISO-8859-7"
+ 	echo "ISO8859-8 ISO-8859-8"
+ 	echo "ISO8859-9 ISO-8859-9"
+ 	echo "ISO8859-15 ISO-8859-15"
+ 	echo "IBM-850 CP850"
+ 	echo "IBM-856 CP856"
+ 	echo "IBM-921 ISO-8859-13"
+ 	echo "IBM-922 CP922"
+ 	echo "IBM-932 CP932"
+ 	echo "IBM-943 CP943"
+ 	echo "IBM-1046 CP1046"
+ 	echo "IBM-1124 CP1124"
+ 	echo "IBM-1129 CP1129"
+ 	echo "IBM-1252 CP1252"
+ 	echo "IBM-eucCN GB2312"
+ 	echo "IBM-eucJP EUC-JP"
+ 	echo "IBM-eucKR EUC-KR"
+ 	echo "IBM-eucTW EUC-TW"
+ 	echo "big5 BIG5"
+ 	echo "GBK GBK"
+ 	echo "TIS-620 TIS-620"
+ 	echo "UTF-8 UTF-8"
+ 	;;
+     hpux*)
+ 	echo "iso88591 ISO-8859-1"
+ 	echo "iso88592 ISO-8859-2"
+ 	echo "iso88595 ISO-8859-5"
+ 	echo "iso88596 ISO-8859-6"
+ 	echo "iso88597 ISO-8859-7"
+ 	echo "iso88598 ISO-8859-8"
+ 	echo "iso88599 ISO-8859-9"
+ 	echo "iso885915 ISO-8859-15"
+ 	echo "roman8 HP-ROMAN8"
+ 	echo "arabic8 HP-ARABIC8"
+ 	echo "greek8 HP-GREEK8"
+ 	echo "hebrew8 HP-HEBREW8"
+ 	echo "turkish8 HP-TURKISH8"
+ 	echo "kana8 HP-KANA8"
+ 	echo "tis620 TIS-620"
+ 	echo "big5 BIG5"
+ 	echo "eucJP EUC-JP"
+ 	echo "eucKR EUC-KR"
+ 	echo "eucTW EUC-TW"
+ 	echo "hp15CN GB2312"
+ 	#echo "ccdc ?" # what is this?
+ 	echo "SJIS SHIFT_JIS"
+ 	echo "utf8 UTF-8"
+ 	;;
+     irix*)
+ 	echo "ISO8859-1 ISO-8859-1"
+ 	echo "ISO8859-2 ISO-8859-2"
+ 	echo "ISO8859-5 ISO-8859-5"
+ 	echo "ISO8859-7 ISO-8859-7"
+ 	echo "ISO8859-9 ISO-8859-9"
+ 	echo "eucCN GB2312"
+ 	echo "eucJP EUC-JP"
+ 	echo "eucKR EUC-KR"
+ 	echo "eucTW EUC-TW"
+ 	;;
+     osf*)
+ 	echo "ISO8859-1 ISO-8859-1"
+ 	echo "ISO8859-2 ISO-8859-2"
+ 	echo "ISO8859-4 ISO-8859-4"
+ 	echo "ISO8859-5 ISO-8859-5"
+ 	echo "ISO8859-7 ISO-8859-7"
+ 	echo "ISO8859-8 ISO-8859-8"
+ 	echo "ISO8859-9 ISO-8859-9"
+ 	echo "ISO8859-15 ISO-8859-15"
+ 	echo "cp850 CP850"
+ 	echo "big5 BIG5"
+ 	echo "dechanyu DEC-HANYU"
+ 	echo "dechanzi GB2312"
+ 	echo "deckanji DEC-KANJI"
+ 	echo "deckorean EUC-KR"
+ 	echo "eucJP EUC-JP"
+ 	echo "eucKR EUC-KR"
+ 	echo "eucTW EUC-TW"
+ 	echo "GBK GBK"
+ 	echo "KSC5601 CP949"
+ 	echo "sdeckanji EUC-JP"
+ 	echo "SJIS SHIFT_JIS"
+ 	echo "TACTIS TIS-620"
+ 	echo "UTF-8 UTF-8"
+ 	;;
+     solaris*)
+ 	echo "646 ASCII"
+ 	echo "ISO8859-1 ISO-8859-1"
+ 	echo "ISO8859-2 ISO-8859-2"
+ 	echo "ISO8859-3 ISO-8859-3"
+ 	echo "ISO8859-4 ISO-8859-4"
+ 	echo "ISO8859-5 ISO-8859-5"
+ 	echo "ISO8859-6 ISO-8859-6"
+ 	echo "ISO8859-7 ISO-8859-7"
+ 	echo "ISO8859-8 ISO-8859-8"
+ 	echo "ISO8859-9 ISO-8859-9"
+ 	echo "ISO8859-15 ISO-8859-15"
+ 	echo "koi8-r KOI8-R"
+ 	echo "ansi-1251 CP1251"
+ 	echo "BIG5 BIG5"
+ 	echo "Big5-HKSCS BIG5-HKSCS"
+ 	echo "gb2312 GB2312"
+ 	echo "GBK GBK"
+ 	echo "GB18030 GB18030"
+ 	echo "cns11643 EUC-TW"
+ 	echo "5601 EUC-KR"
+ 	echo "ko_KR.johap92 JOHAB"
+ 	echo "eucJP EUC-JP"
+ 	echo "PCK SHIFT_JIS"
+ 	echo "TIS620.2533 TIS-620"
+ 	#echo "sun_eu_greek ?" # what is this?
+ 	echo "UTF-8 UTF-8"
+ 	;;
+     freebsd* | os2*)
+ 	# FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
+ 	# localcharset.c falls back to using the full locale name
+ 	# from the environment variables.
+ 	# Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
+ 	# reuse FreeBSD's locale data for OS/2.
+ 	echo "C ASCII"
+ 	echo "US-ASCII ASCII"
+ 	for l in la_LN lt_LN; do
+ 	  echo "$l.ASCII ASCII"
+ 	done
+ 	for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+ 	         fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
+ 	         lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
+ 	  echo "$l.ISO_8859-1 ISO-8859-1"
+ 	  echo "$l.DIS_8859-15 ISO-8859-15"
+ 	done
+ 	for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
+ 	  echo "$l.ISO_8859-2 ISO-8859-2"
+ 	done
+ 	for l in la_LN lt_LT; do
+ 	  echo "$l.ISO_8859-4 ISO-8859-4"
+ 	done
+ 	for l in ru_RU ru_SU; do
+ 	  echo "$l.KOI8-R KOI8-R"
+ 	  echo "$l.ISO_8859-5 ISO-8859-5"
+ 	  echo "$l.CP866 CP866"
+ 	done
+ 	echo "uk_UA.KOI8-U KOI8-U"
+ 	echo "zh_TW.BIG5 BIG5"
+ 	echo "zh_TW.Big5 BIG5"
+ 	echo "zh_CN.EUC GB2312"
+ 	echo "ja_JP.EUC EUC-JP"
+ 	echo "ja_JP.SJIS SHIFT_JIS"
+ 	echo "ja_JP.Shift_JIS SHIFT_JIS"
+ 	echo "ko_KR.EUC EUC-KR"
+ 	;;
+     netbsd*)
+ 	echo "646 ASCII"
+ 	echo "ISO8859-1 ISO-8859-1"
+ 	echo "ISO8859-2 ISO-8859-2"
+ 	echo "ISO8859-4 ISO-8859-4"
+ 	echo "ISO8859-5 ISO-8859-5"
+ 	echo "ISO8859-7 ISO-8859-7"
+ 	echo "ISO8859-13 ISO-8859-13"
+ 	echo "ISO8859-15 ISO-8859-15"
+ 	echo "eucCN GB2312"
+ 	echo "eucJP EUC-JP"
+ 	echo "eucKR EUC-KR"
+ 	echo "eucTW EUC-TW"
+ 	echo "BIG5 BIG5"
+ 	echo "SJIS SHIFT_JIS"
+ 	;;
+     openbsd*)
+ 	echo "646 ASCII"
+ 	echo "ISO8859-1 ISO-8859-1"
+ 	echo "ISO8859-2 ISO-8859-2"
+ 	echo "ISO8859-4 ISO-8859-4"
+ 	echo "ISO8859-5 ISO-8859-5"
+ 	echo "ISO8859-7 ISO-8859-7"
+ 	echo "ISO8859-13 ISO-8859-13"
+ 	echo "ISO8859-15 ISO-8859-15"
+ 	;;
+     darwin[56]*)
+ 	# Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore
+ 	# localcharset.c falls back to using the full locale name
+ 	# from the environment variables.
+ 	echo "C ASCII"
+ 	for l in en_AU en_CA en_GB en_US la_LN; do
+ 	  echo "$l.US-ASCII ASCII"
+ 	done
+ 	for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+ 	         fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \
+ 	         nl_NL no_NO pt_PT sv_SE; do
+ 	  echo "$l ISO-8859-1"
+ 	  echo "$l.ISO8859-1 ISO-8859-1"
+ 	  echo "$l.ISO8859-15 ISO-8859-15"
+ 	done
+ 	for l in la_LN; do
+ 	  echo "$l.ISO8859-1 ISO-8859-1"
+ 	  echo "$l.ISO8859-15 ISO-8859-15"
+ 	done
+ 	for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do
+ 	  echo "$l.ISO8859-2 ISO-8859-2"
+ 	done
+ 	for l in la_LN lt_LT; do
+ 	  echo "$l.ISO8859-4 ISO-8859-4"
+ 	done
+ 	for l in ru_RU; do
+ 	  echo "$l.KOI8-R KOI8-R"
+ 	  echo "$l.ISO8859-5 ISO-8859-5"
+ 	  echo "$l.CP866 CP866"
+ 	done
+ 	for l in bg_BG; do
+ 	  echo "$l.CP1251 CP1251"
+ 	done
+ 	echo "uk_UA.KOI8-U KOI8-U"
+ 	echo "zh_TW.BIG5 BIG5"
+ 	echo "zh_TW.Big5 BIG5"
+ 	echo "zh_CN.EUC GB2312"
+ 	echo "ja_JP.EUC EUC-JP"
+ 	echo "ja_JP.SJIS SHIFT_JIS"
+ 	echo "ko_KR.EUC EUC-KR"
+ 	;;
+     darwin*)
+ 	# Darwin 7.5 has nl_langinfo(CODESET), but it is useless:
+ 	# - It returns the empty string when LANG is set to a locale of the
+ 	#   form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8
+ 	#   LC_CTYPE file.
+ 	# - The environment variables LANG, LC_CTYPE, LC_ALL are not set by
+ 	#   the system; nl_langinfo(CODESET) returns "US-ASCII" in this case.
+ 	# - The documentation says:
+ 	#     "... all code that calls BSD system routines should ensure
+ 	#      that the const *char parameters of these routines are in UTF-8
+ 	#      encoding. All BSD system functions expect their string
+ 	#      parameters to be in UTF-8 encoding and nothing else."
+ 	#   It also says
+ 	#     "An additional caveat is that string parameters for files,
+ 	#      paths, and other file-system entities must be in canonical
+ 	#      UTF-8. In a canonical UTF-8 Unicode string, all decomposable
+ 	#      characters are decomposed ..."
+ 	#   but this is not true: You can pass non-decomposed UTF-8 strings
+ 	#   to file system functions, and it is the OS which will convert
+ 	#   them to decomposed UTF-8 before accessing the file system.
+ 	# - The Apple Terminal application displays UTF-8 by default.
+ 	# - However, other applications are free to use different encodings:
+ 	#   - xterm uses ISO-8859-1 by default.
+ 	#   - TextEdit uses MacRoman by default.
+ 	# We prefer UTF-8 over decomposed UTF-8-MAC because one should
+ 	# minimize the use of decomposed Unicode. Unfortunately, through the
+ 	# Darwin file system, decomposed UTF-8 strings are leaked into user
+ 	# space nevertheless.
+ 	echo "* UTF-8"
+ 	;;
+     beos*)
+ 	# BeOS has a single locale, and it has UTF-8 encoding.
+ 	echo "* UTF-8"
+ 	;;
+     msdosdjgpp*)
+ 	# DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
+ 	# localcharset.c falls back to using the full locale name
+ 	# from the environment variables.
+ 	echo "#"
+ 	echo "# The encodings given here may not all be correct."
+ 	echo "# If you find that the encoding given for your language and"
+ 	echo "# country is not the one your DOS machine actually uses, just"
+ 	echo "# correct it in this file, and send a mail to"
+ 	echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>"
+ 	echo "# and Bruno Haible <bruno@clisp.org>."
+ 	echo "#"
+ 	echo "C ASCII"
+ 	# ISO-8859-1 languages
+ 	echo "ca CP850"
+ 	echo "ca_ES CP850"
+ 	echo "da CP865"    # not CP850 ??
+ 	echo "da_DK CP865" # not CP850 ??
+ 	echo "de CP850"
+ 	echo "de_AT CP850"
+ 	echo "de_CH CP850"
+ 	echo "de_DE CP850"
+ 	echo "en CP850"
+ 	echo "en_AU CP850" # not CP437 ??
+ 	echo "en_CA CP850"
+ 	echo "en_GB CP850"
+ 	echo "en_NZ CP437"
+ 	echo "en_US CP437"
+ 	echo "en_ZA CP850" # not CP437 ??
+ 	echo "es CP850"
+ 	echo "es_AR CP850"
+ 	echo "es_BO CP850"
+ 	echo "es_CL CP850"
+ 	echo "es_CO CP850"
+ 	echo "es_CR CP850"
+ 	echo "es_CU CP850"
+ 	echo "es_DO CP850"
+ 	echo "es_EC CP850"
+ 	echo "es_ES CP850"
+ 	echo "es_GT CP850"
+ 	echo "es_HN CP850"
+ 	echo "es_MX CP850"
+ 	echo "es_NI CP850"
+ 	echo "es_PA CP850"
+ 	echo "es_PY CP850"
+ 	echo "es_PE CP850"
+ 	echo "es_SV CP850"
+ 	echo "es_UY CP850"
+ 	echo "es_VE CP850"
+ 	echo "et CP850"
+ 	echo "et_EE CP850"
+ 	echo "eu CP850"
+ 	echo "eu_ES CP850"
+ 	echo "fi CP850"
+ 	echo "fi_FI CP850"
+ 	echo "fr CP850"
+ 	echo "fr_BE CP850"
+ 	echo "fr_CA CP850"
+ 	echo "fr_CH CP850"
+ 	echo "fr_FR CP850"
+ 	echo "ga CP850"
+ 	echo "ga_IE CP850"
+ 	echo "gd CP850"
+ 	echo "gd_GB CP850"
+ 	echo "gl CP850"
+ 	echo "gl_ES CP850"
+ 	echo "id CP850"    # not CP437 ??
+ 	echo "id_ID CP850" # not CP437 ??
+ 	echo "is CP861"    # not CP850 ??
+ 	echo "is_IS CP861" # not CP850 ??
+ 	echo "it CP850"
+ 	echo "it_CH CP850"
+ 	echo "it_IT CP850"
+ 	echo "lt CP775"
+ 	echo "lt_LT CP775"
+ 	echo "lv CP775"
+ 	echo "lv_LV CP775"
+ 	echo "nb CP865"    # not CP850 ??
+ 	echo "nb_NO CP865" # not CP850 ??
+ 	echo "nl CP850"
+ 	echo "nl_BE CP850"
+ 	echo "nl_NL CP850"
+ 	echo "nn CP865"    # not CP850 ??
+ 	echo "nn_NO CP865" # not CP850 ??
+ 	echo "no CP865"    # not CP850 ??
+ 	echo "no_NO CP865" # not CP850 ??
+ 	echo "pt CP850"
+ 	echo "pt_BR CP850"
+ 	echo "pt_PT CP850"
+ 	echo "sv CP850"
+ 	echo "sv_SE CP850"
+ 	# ISO-8859-2 languages
+ 	echo "cs CP852"
+ 	echo "cs_CZ CP852"
+ 	echo "hr CP852"
+ 	echo "hr_HR CP852"
+ 	echo "hu CP852"
+ 	echo "hu_HU CP852"
+ 	echo "pl CP852"
+ 	echo "pl_PL CP852"
+ 	echo "ro CP852"
+ 	echo "ro_RO CP852"
+ 	echo "sk CP852"
+ 	echo "sk_SK CP852"
+ 	echo "sl CP852"
+ 	echo "sl_SI CP852"
+ 	echo "sq CP852"
+ 	echo "sq_AL CP852"
+ 	echo "sr CP852"    # CP852 or CP866 or CP855 ??
+ 	echo "sr_CS CP852" # CP852 or CP866 or CP855 ??
+ 	echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
+ 	# ISO-8859-3 languages
+ 	echo "mt CP850"
+ 	echo "mt_MT CP850"
+ 	# ISO-8859-5 languages
+ 	echo "be CP866"
+ 	echo "be_BE CP866"
+ 	echo "bg CP866"    # not CP855 ??
+ 	echo "bg_BG CP866" # not CP855 ??
+ 	echo "mk CP866"    # not CP855 ??
+ 	echo "mk_MK CP866" # not CP855 ??
+ 	echo "ru CP866"
+ 	echo "ru_RU CP866"
+ 	echo "uk CP1125"
+ 	echo "uk_UA CP1125"
+ 	# ISO-8859-6 languages
+ 	echo "ar CP864"
+ 	echo "ar_AE CP864"
+ 	echo "ar_DZ CP864"
+ 	echo "ar_EG CP864"
+ 	echo "ar_IQ CP864"
+ 	echo "ar_IR CP864"
+ 	echo "ar_JO CP864"
+ 	echo "ar_KW CP864"
+ 	echo "ar_MA CP864"
+ 	echo "ar_OM CP864"
+ 	echo "ar_QA CP864"
+ 	echo "ar_SA CP864"
+ 	echo "ar_SY CP864"
+ 	# ISO-8859-7 languages
+ 	echo "el CP869"
+ 	echo "el_GR CP869"
+ 	# ISO-8859-8 languages
+ 	echo "he CP862"
+ 	echo "he_IL CP862"
+ 	# ISO-8859-9 languages
+ 	echo "tr CP857"
+ 	echo "tr_TR CP857"
+ 	# Japanese
+ 	echo "ja CP932"
+ 	echo "ja_JP CP932"
+ 	# Chinese
+ 	echo "zh_CN GBK"
+ 	echo "zh_TW CP950" # not CP938 ??
+ 	# Korean
+ 	echo "kr CP949"    # not CP934 ??
+ 	echo "kr_KR CP949" # not CP934 ??
+ 	# Thai
+ 	echo "th CP874"
+ 	echo "th_TH CP874"
+ 	# Other
+ 	echo "eo CP850"
+ 	echo "eo_EO CP850"
+ 	;;
+ esac
diff -Nrc2 texinfo-4.12/gnulib/lib/error.c texinfo-4.13/gnulib/lib/error.c
*** texinfo-4.12/gnulib/lib/error.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/error.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,338 ----
+ /* Error handler for noninteractive utilities
+    Copyright (C) 1990-1998, 2000-2007 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Written by David MacKenzie <djm@gnu.ai.mit.edu>.  */
+ 
+ #if !_LIBC
+ # include <config.h>
+ #endif
+ 
+ #include "error.h"
+ 
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ #if !_LIBC && ENABLE_NLS
+ # include "gettext.h"
+ # define _(msgid) gettext (msgid)
+ #endif
+ 
+ #ifdef _LIBC
+ # include <libintl.h>
+ # include <stdbool.h>
+ # include <stdint.h>
+ # include <wchar.h>
+ # define mbsrtowcs __mbsrtowcs
+ #endif
+ 
+ #if USE_UNLOCKED_IO
+ # include "unlocked-io.h"
+ #endif
+ 
+ #ifndef _
+ # define _(String) String
+ #endif
+ 
+ /* If NULL, error will flush stdout, then print on stderr the program
+    name, a colon and a space.  Otherwise, error will call this
+    function without parameters instead.  */
+ void (*error_print_progname) (void);
+ 
+ /* This variable is incremented each time `error' is called.  */
+ unsigned int error_message_count;
+ 
+ #ifdef _LIBC
+ /* In the GNU C library, there is a predefined variable for this.  */
+ 
+ # define program_name program_invocation_name
+ # include <errno.h>
+ # include <limits.h>
+ # include <libio/libioP.h>
+ 
+ /* In GNU libc we want do not want to use the common name `error' directly.
+    Instead make it a weak alias.  */
+ extern void __error (int status, int errnum, const char *message, ...)
+      __attribute__ ((__format__ (__printf__, 3, 4)));
+ extern void __error_at_line (int status, int errnum, const char *file_name,
+ 			     unsigned int line_number, const char *message,
+ 			     ...)
+      __attribute__ ((__format__ (__printf__, 5, 6)));;
+ # define error __error
+ # define error_at_line __error_at_line
+ 
+ # include <libio/iolibio.h>
+ # define fflush(s) INTUSE(_IO_fflush) (s)
+ # undef putc
+ # define putc(c, fp) INTUSE(_IO_putc) (c, fp)
+ 
+ # include <bits/libc-lock.h>
+ 
+ #else /* not _LIBC */
+ 
+ # if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P
+ #  ifndef HAVE_DECL_STRERROR_R
+ "this configure-time declaration test was not run"
+ #  endif
+ char *strerror_r ();
+ # endif
+ 
+ /* The calling program should define program_name and set it to the
+    name of the executing program.  */
+ extern char *program_name;
+ 
+ # if HAVE_STRERROR_R || defined strerror_r
+ #  define __strerror_r strerror_r
+ # endif	/* HAVE_STRERROR_R || defined strerror_r */
+ #endif	/* not _LIBC */
+ 
+ static void
+ print_errno_message (int errnum)
+ {
+   char const *s;
+ 
+ #if defined HAVE_STRERROR_R || _LIBC
+   char errbuf[1024];
+ # if STRERROR_R_CHAR_P || _LIBC
+   s = __strerror_r (errnum, errbuf, sizeof errbuf);
+ # else
+   if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
+     s = errbuf;
+   else
+     s = 0;
+ # endif
+ #else
+   s = strerror (errnum);
+ #endif
+ 
+ #if !_LIBC
+   if (! s)
+     s = _("Unknown system error");
+ #endif
+ 
+ #if _LIBC
+   __fxprintf (NULL, ": %s", s);
+ #else
+   fprintf (stderr, ": %s", s);
+ #endif
+ }
+ 
+ static void
+ error_tail (int status, int errnum, const char *message, va_list args)
+ {
+ #if _LIBC
+   if (_IO_fwide (stderr, 0) > 0)
+     {
+ # define ALLOCA_LIMIT 2000
+       size_t len = strlen (message) + 1;
+       wchar_t *wmessage = NULL;
+       mbstate_t st;
+       size_t res;
+       const char *tmp;
+       bool use_malloc = false;
+ 
+       while (1)
+ 	{
+ 	  if (__libc_use_alloca (len * sizeof (wchar_t)))
+ 	    wmessage = (wchar_t *) alloca (len * sizeof (wchar_t));
+ 	  else
+ 	    {
+ 	      if (!use_malloc)
+ 		wmessage = NULL;
+ 
+ 	      wchar_t *p = (wchar_t *) realloc (wmessage,
+ 						len * sizeof (wchar_t));
+ 	      if (p == NULL)
+ 		{
+ 		  free (wmessage);
+ 		  fputws_unlocked (L"out of memory\n", stderr);
+ 		  return;
+ 		}
+ 	      wmessage = p;
+ 	      use_malloc = true;
+ 	    }
+ 
+ 	  memset (&st, '\0', sizeof (st));
+ 	  tmp = message;
+ 
+ 	  res = mbsrtowcs (wmessage, &tmp, len, &st);
+ 	  if (res != len)
+ 	    break;
+ 
+ 	  if (__builtin_expect (len >= SIZE_MAX / 2, 0))
+ 	    {
+ 	      /* This really should not happen if everything is fine.  */
+ 	      res = (size_t) -1;
+ 	      break;
+ 	    }
+ 
+ 	  len *= 2;
+ 	}
+ 
+       if (res == (size_t) -1)
+ 	{
+ 	  /* The string cannot be converted.  */
+ 	  if (use_malloc)
+ 	    {
+ 	      free (wmessage);
+ 	      use_malloc = false;
+ 	    }
+ 	  wmessage = (wchar_t *) L"???";
+ 	}
+ 
+       __vfwprintf (stderr, wmessage, args);
+ 
+       if (use_malloc)
+ 	free (wmessage);
+     }
+   else
+ #endif
+     vfprintf (stderr, message, args);
+   va_end (args);
+ 
+   ++error_message_count;
+   if (errnum)
+     print_errno_message (errnum);
+ #if _LIBC
+   __fxprintf (NULL, "\n");
+ #else
+   putc ('\n', stderr);
+ #endif
+   fflush (stderr);
+   if (status)
+     exit (status);
+ }
+ 
+ 
+ /* Print the program name and error message MESSAGE, which is a printf-style
+    format string with optional args.
+    If ERRNUM is nonzero, print its corresponding system error message.
+    Exit with status STATUS if it is nonzero.  */
+ void
+ error (int status, int errnum, const char *message, ...)
+ {
+   va_list args;
+ 
+ #if defined _LIBC && defined __libc_ptf_call
+   /* We do not want this call to be cut short by a thread
+      cancellation.  Therefore disable cancellation for now.  */
+   int state = PTHREAD_CANCEL_ENABLE;
+   __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+ 		   0);
+ #endif
+ 
+   fflush (stdout);
+ #ifdef _LIBC
+   _IO_flockfile (stderr);
+ #endif
+   if (error_print_progname)
+     (*error_print_progname) ();
+   else
+     {
+ #if _LIBC
+       __fxprintf (NULL, "%s: ", program_name);
+ #else
+       fprintf (stderr, "%s: ", program_name);
+ #endif
+     }
+ 
+   va_start (args, message);
+   error_tail (status, errnum, message, args);
+ 
+ #ifdef _LIBC
+   _IO_funlockfile (stderr);
+ # ifdef __libc_ptf_call
+   __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+ # endif
+ #endif
+ }
+ 
+ /* Sometimes we want to have at most one error per line.  This
+    variable controls whether this mode is selected or not.  */
+ int error_one_per_line;
+ 
+ void
+ error_at_line (int status, int errnum, const char *file_name,
+ 	       unsigned int line_number, const char *message, ...)
+ {
+   va_list args;
+ 
+   if (error_one_per_line)
+     {
+       static const char *old_file_name;
+       static unsigned int old_line_number;
+ 
+       if (old_line_number == line_number
+ 	  && (file_name == old_file_name
+ 	      || strcmp (old_file_name, file_name) == 0))
+ 	/* Simply return and print nothing.  */
+ 	return;
+ 
+       old_file_name = file_name;
+       old_line_number = line_number;
+     }
+ 
+ #if defined _LIBC && defined __libc_ptf_call
+   /* We do not want this call to be cut short by a thread
+      cancellation.  Therefore disable cancellation for now.  */
+   int state = PTHREAD_CANCEL_ENABLE;
+   __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+ 		   0);
+ #endif
+ 
+   fflush (stdout);
+ #ifdef _LIBC
+   _IO_flockfile (stderr);
+ #endif
+   if (error_print_progname)
+     (*error_print_progname) ();
+   else
+     {
+ #if _LIBC
+       __fxprintf (NULL, "%s:", program_name);
+ #else
+       fprintf (stderr, "%s:", program_name);
+ #endif
+     }
+ 
+ #if _LIBC
+   __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ",
+ 	      file_name, line_number);
+ #else
+   fprintf (stderr, file_name != NULL ? "%s:%d: " : " ",
+ 	   file_name, line_number);
+ #endif
+ 
+   va_start (args, message);
+   error_tail (status, errnum, message, args);
+ 
+ #ifdef _LIBC
+   _IO_funlockfile (stderr);
+ # ifdef __libc_ptf_call
+   __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+ # endif
+ #endif
+ }
+ 
+ #ifdef _LIBC
+ /* Make the weak alias.  */
+ # undef error
+ # undef error_at_line
+ weak_alias (__error, error)
+ weak_alias (__error_at_line, error_at_line)
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/error.h texinfo-4.13/gnulib/lib/error.h
*** texinfo-4.12/gnulib/lib/error.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/error.h	Tue Feb 12 17:00:52 2008
***************
*** 0 ****
--- 1,65 ----
+ /* Declaration for error-reporting function
+    Copyright (C) 1995, 1996, 1997, 2003, 2006, 2008 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _ERROR_H
+ #define _ERROR_H 1
+ 
+ #ifndef __attribute__
+ /* This feature is available in gcc versions 2.5 and later.  */
+ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+ #  define __attribute__(Spec) /* empty */
+ # endif
+ /* The __-protected variants of `format' and `printf' attributes
+    are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
+ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+ #  define __format__ format
+ #  define __printf__ printf
+ # endif
+ #endif
+ 
+ #ifdef	__cplusplus
+ extern "C" {
+ #endif
+ 
+ /* Print a message with `fprintf (stderr, FORMAT, ...)';
+    if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
+    If STATUS is nonzero, terminate the program with `exit (STATUS)'.  */
+ 
+ extern void error (int __status, int __errnum, const char *__format, ...)
+      __attribute__ ((__format__ (__printf__, 3, 4)));
+ 
+ extern void error_at_line (int __status, int __errnum, const char *__fname,
+ 			   unsigned int __lineno, const char *__format, ...)
+      __attribute__ ((__format__ (__printf__, 5, 6)));
+ 
+ /* If NULL, error will flush stdout, then print on stderr the program
+    name, a colon and a space.  Otherwise, error will call this
+    function without parameters instead.  */
+ extern void (*error_print_progname) (void);
+ 
+ /* This variable is incremented each time `error' is called.  */
+ extern unsigned int error_message_count;
+ 
+ /* Sometimes we want to have at most one error per line.  This
+    variable controls whether this mode is selected or not.  */
+ extern int error_one_per_line;
+ 
+ #ifdef	__cplusplus
+ }
+ #endif
+ 
+ #endif /* error.h */
diff -Nrc2 texinfo-4.12/gnulib/lib/exitfail.c texinfo-4.13/gnulib/lib/exitfail.c
*** texinfo-4.12/gnulib/lib/exitfail.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/exitfail.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,24 ----
+ /* Failure exit status
+ 
+    Copyright (C) 2002, 2003, 2005, 2006, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ #include "exitfail.h"
+ 
+ #include <stdlib.h>
+ 
+ int volatile exit_failure = EXIT_FAILURE;
diff -Nrc2 texinfo-4.12/gnulib/lib/exitfail.h texinfo-4.13/gnulib/lib/exitfail.h
*** texinfo-4.12/gnulib/lib/exitfail.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/exitfail.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,18 ----
+ /* Failure exit status
+ 
+    Copyright (C) 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ extern int volatile exit_failure;
diff -Nrc2 texinfo-4.12/gnulib/lib/getopt.c texinfo-4.13/gnulib/lib/getopt.c
*** texinfo-4.12/gnulib/lib/getopt.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/getopt.c	Sat Mar  8 06:31:56 2008
***************
*** 0 ****
--- 1,1186 ----
+ /* Getopt for GNU.
+    NOTE: getopt is now part of the C library, so if you don't know what
+    "Keep this file name-space clean" means, talk to drepper@gnu.org
+    before changing it!
+    Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001,2002,2003,2004,2006,2008
+ 	Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LIBC
+ # include <config.h>
+ #endif
+ 
+ #include "getopt.h"
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+ 
+ #ifdef _LIBC
+ # include <libintl.h>
+ #else
+ # include "gettext.h"
+ # define _(msgid) gettext (msgid)
+ #endif
+ 
+ #if defined _LIBC && defined USE_IN_LIBIO
+ # include <wchar.h>
+ #endif
+ 
+ #ifndef attribute_hidden
+ # define attribute_hidden
+ #endif
+ 
+ /* Unlike standard Unix `getopt', functions like `getopt_long'
+    let the user intersperse the options with the other arguments.
+ 
+    As `getopt_long' works, it permutes the elements of ARGV so that,
+    when it is done, all the options precede everything else.  Thus
+    all application programs are extended to handle flexible argument order.
+ 
+    Using `getopt' or setting the environment variable POSIXLY_CORRECT
+    disables permutation.
+    Then the application's behavior is completely standard.
+ 
+    GNU application programs can use a third alternative mode in which
+    they can distinguish the relative order of options and other arguments.  */
+ 
+ #include "getopt_int.h"
+ 
+ /* For communication from `getopt' to the caller.
+    When `getopt' finds an option that takes an argument,
+    the argument value is returned here.
+    Also, when `ordering' is RETURN_IN_ORDER,
+    each non-option ARGV-element is returned here.  */
+ 
+ char *optarg;
+ 
+ /* Index in ARGV of the next element to be scanned.
+    This is used for communication to and from the caller
+    and for communication between successive calls to `getopt'.
+ 
+    On entry to `getopt', zero means this is the first call; initialize.
+ 
+    When `getopt' returns -1, this is the index of the first of the
+    non-option elements that the caller should itself scan.
+ 
+    Otherwise, `optind' communicates from one call to the next
+    how much of ARGV has been scanned so far.  */
+ 
+ /* 1003.2 says this must be 1 before any call.  */
+ int optind = 1;
+ 
+ /* Callers store zero here to inhibit the error message
+    for unrecognized options.  */
+ 
+ int opterr = 1;
+ 
+ /* Set to an option character which was unrecognized.
+    This must be initialized on some systems to avoid linking in the
+    system's own getopt implementation.  */
+ 
+ int optopt = '?';
+ 
+ /* Keep a global copy of all internal members of getopt_data.  */
+ 
+ static struct _getopt_data getopt_data;
+ 
+ 
+ #if defined HAVE_DECL_GETENV && !HAVE_DECL_GETENV
+ extern char *getenv ();
+ #endif
+ 
+ #ifdef _LIBC
+ /* Stored original parameters.
+    XXX This is no good solution.  We should rather copy the args so
+    that we can compare them later.  But we must not use malloc(3).  */
+ extern int __libc_argc;
+ extern char **__libc_argv;
+ 
+ /* Bash 2.0 gives us an environment variable containing flags
+    indicating ARGV elements that should not be considered arguments.  */
+ 
+ # ifdef USE_NONOPTION_FLAGS
+ /* Defined in getopt_init.c  */
+ extern char *__getopt_nonoption_flags;
+ # endif
+ 
+ # ifdef USE_NONOPTION_FLAGS
+ #  define SWAP_FLAGS(ch1, ch2) \
+   if (d->__nonoption_flags_len > 0)					      \
+     {									      \
+       char __tmp = __getopt_nonoption_flags[ch1];			      \
+       __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2];	      \
+       __getopt_nonoption_flags[ch2] = __tmp;				      \
+     }
+ # else
+ #  define SWAP_FLAGS(ch1, ch2)
+ # endif
+ #else	/* !_LIBC */
+ # define SWAP_FLAGS(ch1, ch2)
+ #endif	/* _LIBC */
+ 
+ /* Exchange two adjacent subsequences of ARGV.
+    One subsequence is elements [first_nonopt,last_nonopt)
+    which contains all the non-options that have been skipped so far.
+    The other is elements [last_nonopt,optind), which contains all
+    the options processed since those non-options were skipped.
+ 
+    `first_nonopt' and `last_nonopt' are relocated so that they describe
+    the new indices of the non-options in ARGV after they are moved.  */
+ 
+ static void
+ exchange (char **argv, struct _getopt_data *d)
+ {
+   int bottom = d->__first_nonopt;
+   int middle = d->__last_nonopt;
+   int top = d->optind;
+   char *tem;
+ 
+   /* Exchange the shorter segment with the far end of the longer segment.
+      That puts the shorter segment into the right place.
+      It leaves the longer segment in the right place overall,
+      but it consists of two parts that need to be swapped next.  */
+ 
+ #if defined _LIBC && defined USE_NONOPTION_FLAGS
+   /* First make sure the handling of the `__getopt_nonoption_flags'
+      string can work normally.  Our top argument must be in the range
+      of the string.  */
+   if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len)
+     {
+       /* We must extend the array.  The user plays games with us and
+ 	 presents new arguments.  */
+       char *new_str = malloc (top + 1);
+       if (new_str == NULL)
+ 	d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0;
+       else
+ 	{
+ 	  memset (__mempcpy (new_str, __getopt_nonoption_flags,
+ 			     d->__nonoption_flags_max_len),
+ 		  '\0', top + 1 - d->__nonoption_flags_max_len);
+ 	  d->__nonoption_flags_max_len = top + 1;
+ 	  __getopt_nonoption_flags = new_str;
+ 	}
+     }
+ #endif
+ 
+   while (top > middle && middle > bottom)
+     {
+       if (top - middle > middle - bottom)
+ 	{
+ 	  /* Bottom segment is the short one.  */
+ 	  int len = middle - bottom;
+ 	  register int i;
+ 
+ 	  /* Swap it with the top part of the top segment.  */
+ 	  for (i = 0; i < len; i++)
+ 	    {
+ 	      tem = argv[bottom + i];
+ 	      argv[bottom + i] = argv[top - (middle - bottom) + i];
+ 	      argv[top - (middle - bottom) + i] = tem;
+ 	      SWAP_FLAGS (bottom + i, top - (middle - bottom) + i);
+ 	    }
+ 	  /* Exclude the moved bottom segment from further swapping.  */
+ 	  top -= len;
+ 	}
+       else
+ 	{
+ 	  /* Top segment is the short one.  */
+ 	  int len = top - middle;
+ 	  register int i;
+ 
+ 	  /* Swap it with the bottom part of the bottom segment.  */
+ 	  for (i = 0; i < len; i++)
+ 	    {
+ 	      tem = argv[bottom + i];
+ 	      argv[bottom + i] = argv[middle + i];
+ 	      argv[middle + i] = tem;
+ 	      SWAP_FLAGS (bottom + i, middle + i);
+ 	    }
+ 	  /* Exclude the moved top segment from further swapping.  */
+ 	  bottom += len;
+ 	}
+     }
+ 
+   /* Update records for the slots the non-options now occupy.  */
+ 
+   d->__first_nonopt += (d->optind - d->__last_nonopt);
+   d->__last_nonopt = d->optind;
+ }
+ 
+ /* Initialize the internal data when the first call is made.  */
+ 
+ static const char *
+ _getopt_initialize (int argc, char **argv, const char *optstring,
+ 		    int posixly_correct, struct _getopt_data *d)
+ {
+   /* Start processing options with ARGV-element 1 (since ARGV-element 0
+      is the program name); the sequence of previously skipped
+      non-option ARGV-elements is empty.  */
+ 
+   d->__first_nonopt = d->__last_nonopt = d->optind;
+ 
+   d->__nextchar = NULL;
+ 
+   d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT");
+ 
+   /* Determine how to handle the ordering of options and nonoptions.  */
+ 
+   if (optstring[0] == '-')
+     {
+       d->__ordering = RETURN_IN_ORDER;
+       ++optstring;
+     }
+   else if (optstring[0] == '+')
+     {
+       d->__ordering = REQUIRE_ORDER;
+       ++optstring;
+     }
+   else if (d->__posixly_correct)
+     d->__ordering = REQUIRE_ORDER;
+   else
+     d->__ordering = PERMUTE;
+ 
+ #if defined _LIBC && defined USE_NONOPTION_FLAGS
+   if (!d->__posixly_correct
+       && argc == __libc_argc && argv == __libc_argv)
+     {
+       if (d->__nonoption_flags_max_len == 0)
+ 	{
+ 	  if (__getopt_nonoption_flags == NULL
+ 	      || __getopt_nonoption_flags[0] == '\0')
+ 	    d->__nonoption_flags_max_len = -1;
+ 	  else
+ 	    {
+ 	      const char *orig_str = __getopt_nonoption_flags;
+ 	      int len = d->__nonoption_flags_max_len = strlen (orig_str);
+ 	      if (d->__nonoption_flags_max_len < argc)
+ 		d->__nonoption_flags_max_len = argc;
+ 	      __getopt_nonoption_flags =
+ 		(char *) malloc (d->__nonoption_flags_max_len);
+ 	      if (__getopt_nonoption_flags == NULL)
+ 		d->__nonoption_flags_max_len = -1;
+ 	      else
+ 		memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
+ 			'\0', d->__nonoption_flags_max_len - len);
+ 	    }
+ 	}
+       d->__nonoption_flags_len = d->__nonoption_flags_max_len;
+     }
+   else
+     d->__nonoption_flags_len = 0;
+ #endif
+ 
+   return optstring;
+ }
+ 
+ /* Scan elements of ARGV (whose length is ARGC) for option characters
+    given in OPTSTRING.
+ 
+    If an element of ARGV starts with '-', and is not exactly "-" or "--",
+    then it is an option element.  The characters of this element
+    (aside from the initial '-') are option characters.  If `getopt'
+    is called repeatedly, it returns successively each of the option characters
+    from each of the option elements.
+ 
+    If `getopt' finds another option character, it returns that character,
+    updating `optind' and `nextchar' so that the next call to `getopt' can
+    resume the scan with the following option character or ARGV-element.
+ 
+    If there are no more option characters, `getopt' returns -1.
+    Then `optind' is the index in ARGV of the first ARGV-element
+    that is not an option.  (The ARGV-elements have been permuted
+    so that those that are not options now come last.)
+ 
+    OPTSTRING is a string containing the legitimate option characters.
+    If an option character is seen that is not listed in OPTSTRING,
+    return '?' after printing an error message.  If you set `opterr' to
+    zero, the error message is suppressed but we still return '?'.
+ 
+    If a char in OPTSTRING is followed by a colon, that means it wants an arg,
+    so the following text in the same ARGV-element, or the text of the following
+    ARGV-element, is returned in `optarg'.  Two colons mean an option that
+    wants an optional arg; if there is text in the current ARGV-element,
+    it is returned in `optarg', otherwise `optarg' is set to zero.
+ 
+    If OPTSTRING starts with `-' or `+', it requests different methods of
+    handling the non-option ARGV-elements.
+    See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
+ 
+    Long-named options begin with `--' instead of `-'.
+    Their names may be abbreviated as long as the abbreviation is unique
+    or is an exact match for some defined option.  If they have an
+    argument, it follows the option name in the same ARGV-element, separated
+    from the option name by a `=', or else the in next ARGV-element.
+    When `getopt' finds a long-named option, it returns 0 if that option's
+    `flag' field is nonzero, the value of the option's `val' field
+    if the `flag' field is zero.
+ 
+    LONGOPTS is a vector of `struct option' terminated by an
+    element containing a name which is zero.
+ 
+    LONGIND returns the index in LONGOPT of the long-named option found.
+    It is only valid when a long-named option has been found by the most
+    recent call.
+ 
+    If LONG_ONLY is nonzero, '-' as well as '--' can introduce
+    long-named options.
+ 
+    If POSIXLY_CORRECT is nonzero, behave as if the POSIXLY_CORRECT
+    environment variable were set.  */
+ 
+ int
+ _getopt_internal_r (int argc, char **argv, const char *optstring,
+ 		    const struct option *longopts, int *longind,
+ 		    int long_only, int posixly_correct, struct _getopt_data *d)
+ {
+   int print_errors = d->opterr;
+   if (optstring[0] == ':')
+     print_errors = 0;
+ 
+   if (argc < 1)
+     return -1;
+ 
+   d->optarg = NULL;
+ 
+   if (d->optind == 0 || !d->__initialized)
+     {
+       if (d->optind == 0)
+ 	d->optind = 1;	/* Don't scan ARGV[0], the program name.  */
+       optstring = _getopt_initialize (argc, argv, optstring,
+ 				      posixly_correct, d);
+       d->__initialized = 1;
+     }
+ 
+   /* Test whether ARGV[optind] points to a non-option argument.
+      Either it does not have option syntax, or there is an environment flag
+      from the shell indicating it is not an option.  The later information
+      is only used when the used in the GNU libc.  */
+ #if defined _LIBC && defined USE_NONOPTION_FLAGS
+ # define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \
+ 		      || (d->optind < d->__nonoption_flags_len		      \
+ 			  && __getopt_nonoption_flags[d->optind] == '1'))
+ #else
+ # define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0')
+ #endif
+ 
+   if (d->__nextchar == NULL || *d->__nextchar == '\0')
+     {
+       /* Advance to the next ARGV-element.  */
+ 
+       /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been
+ 	 moved back by the user (who may also have changed the arguments).  */
+       if (d->__last_nonopt > d->optind)
+ 	d->__last_nonopt = d->optind;
+       if (d->__first_nonopt > d->optind)
+ 	d->__first_nonopt = d->optind;
+ 
+       if (d->__ordering == PERMUTE)
+ 	{
+ 	  /* If we have just processed some options following some non-options,
+ 	     exchange them so that the options come first.  */
+ 
+ 	  if (d->__first_nonopt != d->__last_nonopt
+ 	      && d->__last_nonopt != d->optind)
+ 	    exchange ((char **) argv, d);
+ 	  else if (d->__last_nonopt != d->optind)
+ 	    d->__first_nonopt = d->optind;
+ 
+ 	  /* Skip any additional non-options
+ 	     and extend the range of non-options previously skipped.  */
+ 
+ 	  while (d->optind < argc && NONOPTION_P)
+ 	    d->optind++;
+ 	  d->__last_nonopt = d->optind;
+ 	}
+ 
+       /* The special ARGV-element `--' means premature end of options.
+ 	 Skip it like a null option,
+ 	 then exchange with previous non-options as if it were an option,
+ 	 then skip everything else like a non-option.  */
+ 
+       if (d->optind != argc && !strcmp (argv[d->optind], "--"))
+ 	{
+ 	  d->optind++;
+ 
+ 	  if (d->__first_nonopt != d->__last_nonopt
+ 	      && d->__last_nonopt != d->optind)
+ 	    exchange ((char **) argv, d);
+ 	  else if (d->__first_nonopt == d->__last_nonopt)
+ 	    d->__first_nonopt = d->optind;
+ 	  d->__last_nonopt = argc;
+ 
+ 	  d->optind = argc;
+ 	}
+ 
+       /* If we have done all the ARGV-elements, stop the scan
+ 	 and back over any non-options that we skipped and permuted.  */
+ 
+       if (d->optind == argc)
+ 	{
+ 	  /* Set the next-arg-index to point at the non-options
+ 	     that we previously skipped, so the caller will digest them.  */
+ 	  if (d->__first_nonopt != d->__last_nonopt)
+ 	    d->optind = d->__first_nonopt;
+ 	  return -1;
+ 	}
+ 
+       /* If we have come to a non-option and did not permute it,
+ 	 either stop the scan or describe it to the caller and pass it by.  */
+ 
+       if (NONOPTION_P)
+ 	{
+ 	  if (d->__ordering == REQUIRE_ORDER)
+ 	    return -1;
+ 	  d->optarg = argv[d->optind++];
+ 	  return 1;
+ 	}
+ 
+       /* We have found another option-ARGV-element.
+ 	 Skip the initial punctuation.  */
+ 
+       d->__nextchar = (argv[d->optind] + 1
+ 		  + (longopts != NULL && argv[d->optind][1] == '-'));
+     }
+ 
+   /* Decode the current option-ARGV-element.  */
+ 
+   /* Check whether the ARGV-element is a long option.
+ 
+      If long_only and the ARGV-element has the form "-f", where f is
+      a valid short option, don't consider it an abbreviated form of
+      a long option that starts with f.  Otherwise there would be no
+      way to give the -f short option.
+ 
+      On the other hand, if there's a long option "fubar" and
+      the ARGV-element is "-fu", do consider that an abbreviation of
+      the long option, just like "--fu", and not "-f" with arg "u".
+ 
+      This distinction seems to be the most useful approach.  */
+ 
+   if (longopts != NULL
+       && (argv[d->optind][1] == '-'
+ 	  || (long_only && (argv[d->optind][2]
+ 			    || !strchr (optstring, argv[d->optind][1])))))
+     {
+       char *nameend;
+       const struct option *p;
+       const struct option *pfound = NULL;
+       int exact = 0;
+       int ambig = 0;
+       int indfound = -1;
+       int option_index;
+ 
+       for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++)
+ 	/* Do nothing.  */ ;
+ 
+       /* Test all long options for either exact match
+ 	 or abbreviated matches.  */
+       for (p = longopts, option_index = 0; p->name; p++, option_index++)
+ 	if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar))
+ 	  {
+ 	    if ((unsigned int) (nameend - d->__nextchar)
+ 		== (unsigned int) strlen (p->name))
+ 	      {
+ 		/* Exact match found.  */
+ 		pfound = p;
+ 		indfound = option_index;
+ 		exact = 1;
+ 		break;
+ 	      }
+ 	    else if (pfound == NULL)
+ 	      {
+ 		/* First nonexact match found.  */
+ 		pfound = p;
+ 		indfound = option_index;
+ 	      }
+ 	    else if (long_only
+ 		     || pfound->has_arg != p->has_arg
+ 		     || pfound->flag != p->flag
+ 		     || pfound->val != p->val)
+ 	      /* Second or later nonexact match found.  */
+ 	      ambig = 1;
+ 	  }
+ 
+       if (ambig && !exact)
+ 	{
+ 	  if (print_errors)
+ 	    {
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 	      char *buf;
+ 
+ 	      if (__asprintf (&buf, _("%s: option `%s' is ambiguous\n"),
+ 			      argv[0], argv[d->optind]) >= 0)
+ 		{
+ 		  _IO_flockfile (stderr);
+ 
+ 		  int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 		  ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 		  __fxprintf (NULL, "%s", buf);
+ 
+ 		  ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 		  _IO_funlockfile (stderr);
+ 
+ 		  free (buf);
+ 		}
+ #else
+ 	      fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
+ 		       argv[0], argv[d->optind]);
+ #endif
+ 	    }
+ 	  d->__nextchar += strlen (d->__nextchar);
+ 	  d->optind++;
+ 	  d->optopt = 0;
+ 	  return '?';
+ 	}
+ 
+       if (pfound != NULL)
+ 	{
+ 	  option_index = indfound;
+ 	  d->optind++;
+ 	  if (*nameend)
+ 	    {
+ 	      /* Don't test has_arg with >, because some C compilers don't
+ 		 allow it to be used on enums.  */
+ 	      if (pfound->has_arg)
+ 		d->optarg = nameend + 1;
+ 	      else
+ 		{
+ 		  if (print_errors)
+ 		    {
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		      char *buf;
+ 		      int n;
+ #endif
+ 
+ 		      if (argv[d->optind - 1][1] == '-')
+ 			{
+ 			  /* --option */
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 			  n = __asprintf (&buf, _("\
+ %s: option `--%s' doesn't allow an argument\n"),
+ 					  argv[0], pfound->name);
+ #else
+ 			  fprintf (stderr, _("\
+ %s: option `--%s' doesn't allow an argument\n"),
+ 				   argv[0], pfound->name);
+ #endif
+ 			}
+ 		      else
+ 			{
+ 			  /* +option or -option */
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 			  n = __asprintf (&buf, _("\
+ %s: option `%c%s' doesn't allow an argument\n"),
+ 					  argv[0], argv[d->optind - 1][0],
+ 					  pfound->name);
+ #else
+ 			  fprintf (stderr, _("\
+ %s: option `%c%s' doesn't allow an argument\n"),
+ 				   argv[0], argv[d->optind - 1][0],
+ 				   pfound->name);
+ #endif
+ 			}
+ 
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		      if (n >= 0)
+ 			{
+ 			  _IO_flockfile (stderr);
+ 
+ 			  int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 			  ((_IO_FILE *) stderr)->_flags2
+ 			    |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 			  __fxprintf (NULL, "%s", buf);
+ 
+ 			  ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 			  _IO_funlockfile (stderr);
+ 
+ 			  free (buf);
+ 			}
+ #endif
+ 		    }
+ 
+ 		  d->__nextchar += strlen (d->__nextchar);
+ 
+ 		  d->optopt = pfound->val;
+ 		  return '?';
+ 		}
+ 	    }
+ 	  else if (pfound->has_arg == 1)
+ 	    {
+ 	      if (d->optind < argc)
+ 		d->optarg = argv[d->optind++];
+ 	      else
+ 		{
+ 		  if (print_errors)
+ 		    {
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		      char *buf;
+ 
+ 		      if (__asprintf (&buf, _("\
+ %s: option `%s' requires an argument\n"),
+ 				      argv[0], argv[d->optind - 1]) >= 0)
+ 			{
+ 			  _IO_flockfile (stderr);
+ 
+ 			  int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 			  ((_IO_FILE *) stderr)->_flags2
+ 			    |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 			  __fxprintf (NULL, "%s", buf);
+ 
+ 			  ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 			  _IO_funlockfile (stderr);
+ 
+ 			  free (buf);
+ 			}
+ #else
+ 		      fprintf (stderr,
+ 			       _("%s: option `%s' requires an argument\n"),
+ 			       argv[0], argv[d->optind - 1]);
+ #endif
+ 		    }
+ 		  d->__nextchar += strlen (d->__nextchar);
+ 		  d->optopt = pfound->val;
+ 		  return optstring[0] == ':' ? ':' : '?';
+ 		}
+ 	    }
+ 	  d->__nextchar += strlen (d->__nextchar);
+ 	  if (longind != NULL)
+ 	    *longind = option_index;
+ 	  if (pfound->flag)
+ 	    {
+ 	      *(pfound->flag) = pfound->val;
+ 	      return 0;
+ 	    }
+ 	  return pfound->val;
+ 	}
+ 
+       /* Can't find it as a long option.  If this is not getopt_long_only,
+ 	 or the option starts with '--' or is not a valid short
+ 	 option, then it's an error.
+ 	 Otherwise interpret it as a short option.  */
+       if (!long_only || argv[d->optind][1] == '-'
+ 	  || strchr (optstring, *d->__nextchar) == NULL)
+ 	{
+ 	  if (print_errors)
+ 	    {
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 	      char *buf;
+ 	      int n;
+ #endif
+ 
+ 	      if (argv[d->optind][1] == '-')
+ 		{
+ 		  /* --option */
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		  n = __asprintf (&buf, _("%s: unrecognized option `--%s'\n"),
+ 				  argv[0], d->__nextchar);
+ #else
+ 		  fprintf (stderr, _("%s: unrecognized option `--%s'\n"),
+ 			   argv[0], d->__nextchar);
+ #endif
+ 		}
+ 	      else
+ 		{
+ 		  /* +option or -option */
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		  n = __asprintf (&buf, _("%s: unrecognized option `%c%s'\n"),
+ 				  argv[0], argv[d->optind][0], d->__nextchar);
+ #else
+ 		  fprintf (stderr, _("%s: unrecognized option `%c%s'\n"),
+ 			   argv[0], argv[d->optind][0], d->__nextchar);
+ #endif
+ 		}
+ 
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 	      if (n >= 0)
+ 		{
+ 		  _IO_flockfile (stderr);
+ 
+ 		  int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 		  ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 		  __fxprintf (NULL, "%s", buf);
+ 
+ 		  ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 		  _IO_funlockfile (stderr);
+ 
+ 		  free (buf);
+ 		}
+ #endif
+ 	    }
+ 	  d->__nextchar = (char *) "";
+ 	  d->optind++;
+ 	  d->optopt = 0;
+ 	  return '?';
+ 	}
+     }
+ 
+   /* Look at and handle the next short option-character.  */
+ 
+   {
+     char c = *d->__nextchar++;
+     char *temp = strchr (optstring, c);
+ 
+     /* Increment `optind' when we start to process its last character.  */
+     if (*d->__nextchar == '\0')
+       ++d->optind;
+ 
+     if (temp == NULL || c == ':')
+       {
+ 	if (print_errors)
+ 	  {
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 	      char *buf;
+ 	      int n;
+ #endif
+ 
+ 	    if (d->__posixly_correct)
+ 	      {
+ 		/* 1003.2 specifies the format of this message.  */
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		n = __asprintf (&buf, _("%s: illegal option -- %c\n"),
+ 				argv[0], c);
+ #else
+ 		fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c);
+ #endif
+ 	      }
+ 	    else
+ 	      {
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		n = __asprintf (&buf, _("%s: invalid option -- %c\n"),
+ 				argv[0], c);
+ #else
+ 		fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c);
+ #endif
+ 	      }
+ 
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 	    if (n >= 0)
+ 	      {
+ 		_IO_flockfile (stderr);
+ 
+ 		int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 		((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 		__fxprintf (NULL, "%s", buf);
+ 
+ 		((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 		_IO_funlockfile (stderr);
+ 
+ 		free (buf);
+ 	      }
+ #endif
+ 	  }
+ 	d->optopt = c;
+ 	return '?';
+       }
+     /* Convenience. Treat POSIX -W foo same as long option --foo */
+     if (temp[0] == 'W' && temp[1] == ';')
+       {
+ 	char *nameend;
+ 	const struct option *p;
+ 	const struct option *pfound = NULL;
+ 	int exact = 0;
+ 	int ambig = 0;
+ 	int indfound = 0;
+ 	int option_index;
+ 
+ 	/* This is an option that requires an argument.  */
+ 	if (*d->__nextchar != '\0')
+ 	  {
+ 	    d->optarg = d->__nextchar;
+ 	    /* If we end this ARGV-element by taking the rest as an arg,
+ 	       we must advance to the next element now.  */
+ 	    d->optind++;
+ 	  }
+ 	else if (d->optind == argc)
+ 	  {
+ 	    if (print_errors)
+ 	      {
+ 		/* 1003.2 specifies the format of this message.  */
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		char *buf;
+ 
+ 		if (__asprintf (&buf,
+ 				_("%s: option requires an argument -- %c\n"),
+ 				argv[0], c) >= 0)
+ 		  {
+ 		    _IO_flockfile (stderr);
+ 
+ 		    int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 		    ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 		    __fxprintf (NULL, "%s", buf);
+ 
+ 		    ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 		    _IO_funlockfile (stderr);
+ 
+ 		    free (buf);
+ 		  }
+ #else
+ 		fprintf (stderr, _("%s: option requires an argument -- %c\n"),
+ 			 argv[0], c);
+ #endif
+ 	      }
+ 	    d->optopt = c;
+ 	    if (optstring[0] == ':')
+ 	      c = ':';
+ 	    else
+ 	      c = '?';
+ 	    return c;
+ 	  }
+ 	else
+ 	  /* We already incremented `d->optind' once;
+ 	     increment it again when taking next ARGV-elt as argument.  */
+ 	  d->optarg = argv[d->optind++];
+ 
+ 	/* optarg is now the argument, see if it's in the
+ 	   table of longopts.  */
+ 
+ 	for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != '=';
+ 	     nameend++)
+ 	  /* Do nothing.  */ ;
+ 
+ 	/* Test all long options for either exact match
+ 	   or abbreviated matches.  */
+ 	for (p = longopts, option_index = 0; p->name; p++, option_index++)
+ 	  if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar))
+ 	    {
+ 	      if ((unsigned int) (nameend - d->__nextchar) == strlen (p->name))
+ 		{
+ 		  /* Exact match found.  */
+ 		  pfound = p;
+ 		  indfound = option_index;
+ 		  exact = 1;
+ 		  break;
+ 		}
+ 	      else if (pfound == NULL)
+ 		{
+ 		  /* First nonexact match found.  */
+ 		  pfound = p;
+ 		  indfound = option_index;
+ 		}
+ 	      else
+ 		/* Second or later nonexact match found.  */
+ 		ambig = 1;
+ 	    }
+ 	if (ambig && !exact)
+ 	  {
+ 	    if (print_errors)
+ 	      {
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		char *buf;
+ 
+ 		if (__asprintf (&buf, _("%s: option `-W %s' is ambiguous\n"),
+ 				argv[0], argv[d->optind]) >= 0)
+ 		  {
+ 		    _IO_flockfile (stderr);
+ 
+ 		    int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 		    ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 		    __fxprintf (NULL, "%s", buf);
+ 
+ 		    ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 		    _IO_funlockfile (stderr);
+ 
+ 		    free (buf);
+ 		  }
+ #else
+ 		fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
+ 			 argv[0], argv[d->optind]);
+ #endif
+ 	      }
+ 	    d->__nextchar += strlen (d->__nextchar);
+ 	    d->optind++;
+ 	    return '?';
+ 	  }
+ 	if (pfound != NULL)
+ 	  {
+ 	    option_index = indfound;
+ 	    if (*nameend)
+ 	      {
+ 		/* Don't test has_arg with >, because some C compilers don't
+ 		   allow it to be used on enums.  */
+ 		if (pfound->has_arg)
+ 		  d->optarg = nameend + 1;
+ 		else
+ 		  {
+ 		    if (print_errors)
+ 		      {
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 			char *buf;
+ 
+ 			if (__asprintf (&buf, _("\
+ %s: option `-W %s' doesn't allow an argument\n"),
+ 					argv[0], pfound->name) >= 0)
+ 			  {
+ 			    _IO_flockfile (stderr);
+ 
+ 			    int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 			    ((_IO_FILE *) stderr)->_flags2
+ 			      |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 			    __fxprintf (NULL, "%s", buf);
+ 
+ 			    ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 			    _IO_funlockfile (stderr);
+ 
+ 			    free (buf);
+ 			  }
+ #else
+ 			fprintf (stderr, _("\
+ %s: option `-W %s' doesn't allow an argument\n"),
+ 				 argv[0], pfound->name);
+ #endif
+ 		      }
+ 
+ 		    d->__nextchar += strlen (d->__nextchar);
+ 		    return '?';
+ 		  }
+ 	      }
+ 	    else if (pfound->has_arg == 1)
+ 	      {
+ 		if (d->optind < argc)
+ 		  d->optarg = argv[d->optind++];
+ 		else
+ 		  {
+ 		    if (print_errors)
+ 		      {
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 			char *buf;
+ 
+ 			if (__asprintf (&buf, _("\
+ %s: option `%s' requires an argument\n"),
+ 					argv[0], argv[d->optind - 1]) >= 0)
+ 			  {
+ 			    _IO_flockfile (stderr);
+ 
+ 			    int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 			    ((_IO_FILE *) stderr)->_flags2
+ 			      |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 			    __fxprintf (NULL, "%s", buf);
+ 
+ 			    ((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 			    _IO_funlockfile (stderr);
+ 
+ 			    free (buf);
+ 			  }
+ #else
+ 			fprintf (stderr,
+ 				 _("%s: option `%s' requires an argument\n"),
+ 				 argv[0], argv[d->optind - 1]);
+ #endif
+ 		      }
+ 		    d->__nextchar += strlen (d->__nextchar);
+ 		    return optstring[0] == ':' ? ':' : '?';
+ 		  }
+ 	      }
+ 	    d->__nextchar += strlen (d->__nextchar);
+ 	    if (longind != NULL)
+ 	      *longind = option_index;
+ 	    if (pfound->flag)
+ 	      {
+ 		*(pfound->flag) = pfound->val;
+ 		return 0;
+ 	      }
+ 	    return pfound->val;
+ 	  }
+ 	  d->__nextchar = NULL;
+ 	  return 'W';	/* Let the application handle it.   */
+       }
+     if (temp[1] == ':')
+       {
+ 	if (temp[2] == ':')
+ 	  {
+ 	    /* This is an option that accepts an argument optionally.  */
+ 	    if (*d->__nextchar != '\0')
+ 	      {
+ 		d->optarg = d->__nextchar;
+ 		d->optind++;
+ 	      }
+ 	    else
+ 	      d->optarg = NULL;
+ 	    d->__nextchar = NULL;
+ 	  }
+ 	else
+ 	  {
+ 	    /* This is an option that requires an argument.  */
+ 	    if (*d->__nextchar != '\0')
+ 	      {
+ 		d->optarg = d->__nextchar;
+ 		/* If we end this ARGV-element by taking the rest as an arg,
+ 		   we must advance to the next element now.  */
+ 		d->optind++;
+ 	      }
+ 	    else if (d->optind == argc)
+ 	      {
+ 		if (print_errors)
+ 		  {
+ 		    /* 1003.2 specifies the format of this message.  */
+ #if defined _LIBC && defined USE_IN_LIBIO
+ 		    char *buf;
+ 
+ 		    if (__asprintf (&buf, _("\
+ %s: option requires an argument -- %c\n"),
+ 				    argv[0], c) >= 0)
+ 		      {
+ 			_IO_flockfile (stderr);
+ 
+ 			int old_flags2 = ((_IO_FILE *) stderr)->_flags2;
+ 			((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL;
+ 
+ 			__fxprintf (NULL, "%s", buf);
+ 
+ 			((_IO_FILE *) stderr)->_flags2 = old_flags2;
+ 			_IO_funlockfile (stderr);
+ 
+ 			free (buf);
+ 		      }
+ #else
+ 		    fprintf (stderr,
+ 			     _("%s: option requires an argument -- %c\n"),
+ 			     argv[0], c);
+ #endif
+ 		  }
+ 		d->optopt = c;
+ 		if (optstring[0] == ':')
+ 		  c = ':';
+ 		else
+ 		  c = '?';
+ 	      }
+ 	    else
+ 	      /* We already incremented `optind' once;
+ 		 increment it again when taking next ARGV-elt as argument.  */
+ 	      d->optarg = argv[d->optind++];
+ 	    d->__nextchar = NULL;
+ 	  }
+       }
+     return c;
+   }
+ }
+ 
+ int
+ _getopt_internal (int argc, char **argv, const char *optstring,
+ 		  const struct option *longopts, int *longind,
+ 		  int long_only, int posixly_correct)
+ {
+   int result;
+ 
+   getopt_data.optind = optind;
+   getopt_data.opterr = opterr;
+ 
+   result = _getopt_internal_r (argc, argv, optstring, longopts, longind,
+ 			       long_only, posixly_correct, &getopt_data);
+ 
+   optind = getopt_data.optind;
+   optarg = getopt_data.optarg;
+   optopt = getopt_data.optopt;
+ 
+   return result;
+ }
+ 
+ /* glibc gets a LSB-compliant getopt.
+    Standalone applications get a POSIX-compliant getopt.  */
+ #if _LIBC
+ enum { POSIXLY_CORRECT = 0 };
+ #else
+ enum { POSIXLY_CORRECT = 1 };
+ #endif
+ 
+ int
+ getopt (int argc, char *const *argv, const char *optstring)
+ {
+   return _getopt_internal (argc, (char **) argv, optstring, NULL, NULL, 0,
+ 			   POSIXLY_CORRECT);
+ }
+ 
+ 
+ #ifdef TEST
+ 
+ /* Compile with -DTEST to make an executable for use in testing
+    the above definition of `getopt'.  */
+ 
+ int
+ main (int argc, char **argv)
+ {
+   int c;
+   int digit_optind = 0;
+ 
+   while (1)
+     {
+       int this_option_optind = optind ? optind : 1;
+ 
+       c = getopt (argc, argv, "abc:d:0123456789");
+       if (c == -1)
+ 	break;
+ 
+       switch (c)
+ 	{
+ 	case '0':
+ 	case '1':
+ 	case '2':
+ 	case '3':
+ 	case '4':
+ 	case '5':
+ 	case '6':
+ 	case '7':
+ 	case '8':
+ 	case '9':
+ 	  if (digit_optind != 0 && digit_optind != this_option_optind)
+ 	    printf ("digits occur in two different argv-elements.\n");
+ 	  digit_optind = this_option_optind;
+ 	  printf ("option %c\n", c);
+ 	  break;
+ 
+ 	case 'a':
+ 	  printf ("option a\n");
+ 	  break;
+ 
+ 	case 'b':
+ 	  printf ("option b\n");
+ 	  break;
+ 
+ 	case 'c':
+ 	  printf ("option c with value `%s'\n", optarg);
+ 	  break;
+ 
+ 	case '?':
+ 	  break;
+ 
+ 	default:
+ 	  printf ("?? getopt returned character code 0%o ??\n", c);
+ 	}
+     }
+ 
+   if (optind < argc)
+     {
+       printf ("non-option ARGV-elements: ");
+       while (optind < argc)
+ 	printf ("%s ", argv[optind++]);
+       printf ("\n");
+     }
+ 
+   exit (0);
+ }
+ 
+ #endif /* TEST */
diff -Nrc2 texinfo-4.12/gnulib/lib/getopt.in.h texinfo-4.13/gnulib/lib/getopt.in.h
*** texinfo-4.12/gnulib/lib/getopt.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/getopt.in.h	Tue Dec 25 16:53:46 2007
***************
*** 0 ****
--- 1,225 ----
+ /* Declarations for getopt.
+    Copyright (C) 1989-1994,1996-1999,2001,2003,2004,2005,2006,2007
+    Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _GETOPT_H
+ 
+ #ifndef __need_getopt
+ # define _GETOPT_H 1
+ #endif
+ 
+ /* Standalone applications should #define __GETOPT_PREFIX to an
+    identifier that prefixes the external functions and variables
+    defined in this header.  When this happens, include the
+    headers that might declare getopt so that they will not cause
+    confusion if included after this file.  Then systematically rename
+    identifiers so that they do not collide with the system functions
+    and variables.  Renaming avoids problems with some compilers and
+    linkers.  */
+ #if defined __GETOPT_PREFIX && !defined __need_getopt
+ # include <stdlib.h>
+ # include <stdio.h>
+ # include <unistd.h>
+ # undef __need_getopt
+ # undef getopt
+ # undef getopt_long
+ # undef getopt_long_only
+ # undef optarg
+ # undef opterr
+ # undef optind
+ # undef optopt
+ # define __GETOPT_CONCAT(x, y) x ## y
+ # define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
+ # define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
+ # define getopt __GETOPT_ID (getopt)
+ # define getopt_long __GETOPT_ID (getopt_long)
+ # define getopt_long_only __GETOPT_ID (getopt_long_only)
+ # define optarg __GETOPT_ID (optarg)
+ # define opterr __GETOPT_ID (opterr)
+ # define optind __GETOPT_ID (optind)
+ # define optopt __GETOPT_ID (optopt)
+ #endif
+ 
+ /* Standalone applications get correct prototypes for getopt_long and
+    getopt_long_only; they declare "char **argv".  libc uses prototypes
+    with "char *const *argv" that are incorrect because getopt_long and
+    getopt_long_only can permute argv; this is required for backward
+    compatibility (e.g., for LSB 2.0.1).
+ 
+    This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt',
+    but it caused redefinition warnings if both unistd.h and getopt.h were
+    included, since unistd.h includes getopt.h having previously defined
+    __need_getopt.
+ 
+    The only place where __getopt_argv_const is used is in definitions
+    of getopt_long and getopt_long_only below, but these are visible
+    only if __need_getopt is not defined, so it is quite safe to rewrite
+    the conditional as follows:
+ */
+ #if !defined __need_getopt
+ # if defined __GETOPT_PREFIX
+ #  define __getopt_argv_const /* empty */
+ # else
+ #  define __getopt_argv_const const
+ # endif
+ #endif
+ 
+ /* If __GNU_LIBRARY__ is not already defined, either we are being used
+    standalone, or this is the first header included in the source file.
+    If we are being used with glibc, we need to include <features.h>, but
+    that does not exist if we are standalone.  So: if __GNU_LIBRARY__ is
+    not defined, include <ctype.h>, which will pull in <features.h> for us
+    if it's from glibc.  (Why ctype.h?  It's guaranteed to exist and it
+    doesn't flood the namespace with stuff the way some other headers do.)  */
+ #if !defined __GNU_LIBRARY__
+ # include <ctype.h>
+ #endif
+ 
+ #ifndef __THROW
+ # ifndef __GNUC_PREREQ
+ #  define __GNUC_PREREQ(maj, min) (0)
+ # endif
+ # if defined __cplusplus && __GNUC_PREREQ (2,8)
+ #  define __THROW	throw ()
+ # else
+ #  define __THROW
+ # endif
+ #endif
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ /* For communication from `getopt' to the caller.
+    When `getopt' finds an option that takes an argument,
+    the argument value is returned here.
+    Also, when `ordering' is RETURN_IN_ORDER,
+    each non-option ARGV-element is returned here.  */
+ 
+ extern char *optarg;
+ 
+ /* Index in ARGV of the next element to be scanned.
+    This is used for communication to and from the caller
+    and for communication between successive calls to `getopt'.
+ 
+    On entry to `getopt', zero means this is the first call; initialize.
+ 
+    When `getopt' returns -1, this is the index of the first of the
+    non-option elements that the caller should itself scan.
+ 
+    Otherwise, `optind' communicates from one call to the next
+    how much of ARGV has been scanned so far.  */
+ 
+ extern int optind;
+ 
+ /* Callers store zero here to inhibit the error message `getopt' prints
+    for unrecognized options.  */
+ 
+ extern int opterr;
+ 
+ /* Set to an option character which was unrecognized.  */
+ 
+ extern int optopt;
+ 
+ #ifndef __need_getopt
+ /* Describe the long-named options requested by the application.
+    The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+    of `struct option' terminated by an element containing a name which is
+    zero.
+ 
+    The field `has_arg' is:
+    no_argument		(or 0) if the option does not take an argument,
+    required_argument	(or 1) if the option requires an argument,
+    optional_argument	(or 2) if the option takes an optional argument.
+ 
+    If the field `flag' is not NULL, it points to a variable that is set
+    to the value given in the field `val' when the option is found, but
+    left unchanged if the option is not found.
+ 
+    To have a long-named option do something other than set an `int' to
+    a compiled-in constant, such as set a value from `optarg', set the
+    option's `flag' field to zero and its `val' field to a nonzero
+    value (the equivalent single-letter option character, if there is
+    one).  For long options that have a zero `flag' field, `getopt'
+    returns the contents of the `val' field.  */
+ 
+ struct option
+ {
+   const char *name;
+   /* has_arg can't be an enum because some compilers complain about
+      type mismatches in all the code that assumes it is an int.  */
+   int has_arg;
+   int *flag;
+   int val;
+ };
+ 
+ /* Names for the values of the `has_arg' field of `struct option'.  */
+ 
+ # define no_argument		0
+ # define required_argument	1
+ # define optional_argument	2
+ #endif	/* need getopt */
+ 
+ 
+ /* Get definitions and prototypes for functions to process the
+    arguments in ARGV (ARGC of them, minus the program name) for
+    options given in OPTS.
+ 
+    Return the option character from OPTS just read.  Return -1 when
+    there are no more options.  For unrecognized options, or options
+    missing arguments, `optopt' is set to the option letter, and '?' is
+    returned.
+ 
+    The OPTS string is a list of characters which are recognized option
+    letters, optionally followed by colons, specifying that that letter
+    takes an argument, to be placed in `optarg'.
+ 
+    If a letter in OPTS is followed by two colons, its argument is
+    optional.  This behavior is specific to the GNU `getopt'.
+ 
+    The argument `--' causes premature termination of argument
+    scanning, explicitly telling `getopt' that there are no more
+    options.
+ 
+    If OPTS begins with `-', then non-option arguments are treated as
+    arguments to the option '\1'.  This behavior is specific to the GNU
+    `getopt'.  If OPTS begins with `+', or POSIXLY_CORRECT is set in
+    the environment, then do not permute arguments.  */
+ 
+ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+        __THROW;
+ 
+ #ifndef __need_getopt
+ extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,
+ 			const char *__shortopts,
+ 		        const struct option *__longopts, int *__longind)
+        __THROW;
+ extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
+ 			     const char *__shortopts,
+ 		             const struct option *__longopts, int *__longind)
+        __THROW;
+ 
+ #endif
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ /* Make sure we later can get all the definitions and declarations.  */
+ #undef __need_getopt
+ 
+ #endif /* getopt.h */
diff -Nrc2 texinfo-4.12/gnulib/lib/getopt1.c texinfo-4.13/gnulib/lib/getopt1.c
*** texinfo-4.12/gnulib/lib/getopt1.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/getopt1.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,170 ----
+ /* getopt_long and getopt_long_only entry points for GNU getopt.
+    Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98,2004,2006
+      Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifdef _LIBC
+ # include <getopt.h>
+ #else
+ # include <config.h>
+ # include "getopt.h"
+ #endif
+ #include "getopt_int.h"
+ 
+ #include <stdio.h>
+ 
+ /* This needs to come after some library #include
+    to get __GNU_LIBRARY__ defined.  */
+ #ifdef __GNU_LIBRARY__
+ #include <stdlib.h>
+ #endif
+ 
+ #ifndef	NULL
+ #define NULL 0
+ #endif
+ 
+ int
+ getopt_long (int argc, char *__getopt_argv_const *argv, const char *options,
+ 	     const struct option *long_options, int *opt_index)
+ {
+   return _getopt_internal (argc, (char **) argv, options, long_options,
+ 			   opt_index, 0, 0);
+ }
+ 
+ int
+ _getopt_long_r (int argc, char **argv, const char *options,
+ 		const struct option *long_options, int *opt_index,
+ 		struct _getopt_data *d)
+ {
+   return _getopt_internal_r (argc, argv, options, long_options, opt_index,
+ 			     0, 0, d);
+ }
+ 
+ /* Like getopt_long, but '-' as well as '--' can indicate a long option.
+    If an option that starts with '-' (not '--') doesn't match a long option,
+    but does match a short option, it is parsed as a short option
+    instead.  */
+ 
+ int
+ getopt_long_only (int argc, char *__getopt_argv_const *argv,
+ 		  const char *options,
+ 		  const struct option *long_options, int *opt_index)
+ {
+   return _getopt_internal (argc, (char **) argv, options, long_options,
+ 			   opt_index, 1, 0);
+ }
+ 
+ int
+ _getopt_long_only_r (int argc, char **argv, const char *options,
+ 		     const struct option *long_options, int *opt_index,
+ 		     struct _getopt_data *d)
+ {
+   return _getopt_internal_r (argc, argv, options, long_options, opt_index,
+ 			     1, 0, d);
+ }
+ 
+ 
+ #ifdef TEST
+ 
+ #include <stdio.h>
+ 
+ int
+ main (int argc, char **argv)
+ {
+   int c;
+   int digit_optind = 0;
+ 
+   while (1)
+     {
+       int this_option_optind = optind ? optind : 1;
+       int option_index = 0;
+       static struct option long_options[] =
+       {
+ 	{"add", 1, 0, 0},
+ 	{"append", 0, 0, 0},
+ 	{"delete", 1, 0, 0},
+ 	{"verbose", 0, 0, 0},
+ 	{"create", 0, 0, 0},
+ 	{"file", 1, 0, 0},
+ 	{0, 0, 0, 0}
+       };
+ 
+       c = getopt_long (argc, argv, "abc:d:0123456789",
+ 		       long_options, &option_index);
+       if (c == -1)
+ 	break;
+ 
+       switch (c)
+ 	{
+ 	case 0:
+ 	  printf ("option %s", long_options[option_index].name);
+ 	  if (optarg)
+ 	    printf (" with arg %s", optarg);
+ 	  printf ("\n");
+ 	  break;
+ 
+ 	case '0':
+ 	case '1':
+ 	case '2':
+ 	case '3':
+ 	case '4':
+ 	case '5':
+ 	case '6':
+ 	case '7':
+ 	case '8':
+ 	case '9':
+ 	  if (digit_optind != 0 && digit_optind != this_option_optind)
+ 	    printf ("digits occur in two different argv-elements.\n");
+ 	  digit_optind = this_option_optind;
+ 	  printf ("option %c\n", c);
+ 	  break;
+ 
+ 	case 'a':
+ 	  printf ("option a\n");
+ 	  break;
+ 
+ 	case 'b':
+ 	  printf ("option b\n");
+ 	  break;
+ 
+ 	case 'c':
+ 	  printf ("option c with value `%s'\n", optarg);
+ 	  break;
+ 
+ 	case 'd':
+ 	  printf ("option d with value `%s'\n", optarg);
+ 	  break;
+ 
+ 	case '?':
+ 	  break;
+ 
+ 	default:
+ 	  printf ("?? getopt returned character code 0%o ??\n", c);
+ 	}
+     }
+ 
+   if (optind < argc)
+     {
+       printf ("non-option ARGV-elements: ");
+       while (optind < argc)
+ 	printf ("%s ", argv[optind++]);
+       printf ("\n");
+     }
+ 
+   exit (0);
+ }
+ 
+ #endif /* TEST */
diff -Nrc2 texinfo-4.12/gnulib/lib/getopt_int.h texinfo-4.13/gnulib/lib/getopt_int.h
*** texinfo-4.12/gnulib/lib/getopt_int.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/getopt_int.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,130 ----
+ /* Internal declarations for getopt.
+    Copyright (C) 1989-1994,1996-1999,2001,2003,2004
+    Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _GETOPT_INT_H
+ #define _GETOPT_INT_H	1
+ 
+ extern int _getopt_internal (int ___argc, char **___argv,
+ 			     const char *__shortopts,
+ 		             const struct option *__longopts, int *__longind,
+ 			     int __long_only, int __posixly_correct);
+ 
+ 
+ /* Reentrant versions which can handle parsing multiple argument
+    vectors at the same time.  */
+ 
+ /* Data type for reentrant functions.  */
+ struct _getopt_data
+ {
+   /* These have exactly the same meaning as the corresponding global
+      variables, except that they are used for the reentrant
+      versions of getopt.  */
+   int optind;
+   int opterr;
+   int optopt;
+   char *optarg;
+ 
+   /* Internal members.  */
+ 
+   /* True if the internal members have been initialized.  */
+   int __initialized;
+ 
+   /* The next char to be scanned in the option-element
+      in which the last option character we returned was found.
+      This allows us to pick up the scan where we left off.
+ 
+      If this is zero, or a null string, it means resume the scan
+      by advancing to the next ARGV-element.  */
+   char *__nextchar;
+ 
+   /* Describe how to deal with options that follow non-option ARGV-elements.
+ 
+      If the caller did not specify anything,
+      the default is REQUIRE_ORDER if the environment variable
+      POSIXLY_CORRECT is defined, PERMUTE otherwise.
+ 
+      REQUIRE_ORDER means don't recognize them as options;
+      stop option processing when the first non-option is seen.
+      This is what Unix does.
+      This mode of operation is selected by either setting the environment
+      variable POSIXLY_CORRECT, or using `+' as the first character
+      of the list of option characters, or by calling getopt.
+ 
+      PERMUTE is the default.  We permute the contents of ARGV as we
+      scan, so that eventually all the non-options are at the end.
+      This allows options to be given in any order, even with programs
+      that were not written to expect this.
+ 
+      RETURN_IN_ORDER is an option available to programs that were
+      written to expect options and other ARGV-elements in any order
+      and that care about the ordering of the two.  We describe each
+      non-option ARGV-element as if it were the argument of an option
+      with character code 1.  Using `-' as the first character of the
+      list of option characters selects this mode of operation.
+ 
+      The special argument `--' forces an end of option-scanning regardless
+      of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
+      `--' can cause `getopt' to return -1 with `optind' != ARGC.  */
+ 
+   enum
+     {
+       REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
+     } __ordering;
+ 
+   /* If the POSIXLY_CORRECT environment variable is set
+      or getopt was called.  */
+   int __posixly_correct;
+ 
+ 
+   /* Handle permutation of arguments.  */
+ 
+   /* Describe the part of ARGV that contains non-options that have
+      been skipped.  `first_nonopt' is the index in ARGV of the first
+      of them; `last_nonopt' is the index after the last of them.  */
+ 
+   int __first_nonopt;
+   int __last_nonopt;
+ 
+ #if defined _LIBC && defined USE_NONOPTION_FLAGS
+   int __nonoption_flags_max_len;
+   int __nonoption_flags_len;
+ # endif
+ };
+ 
+ /* The initializer is necessary to set OPTIND and OPTERR to their
+    default values and to clear the initialization flag.  */
+ #define _GETOPT_DATA_INITIALIZER	{ 1, 1 }
+ 
+ extern int _getopt_internal_r (int ___argc, char **___argv,
+ 			       const char *__shortopts,
+ 			       const struct option *__longopts, int *__longind,
+ 			       int __long_only, int __posixly_correct,
+ 			       struct _getopt_data *__data);
+ 
+ extern int _getopt_long_r (int ___argc, char **___argv,
+ 			   const char *__shortopts,
+ 			   const struct option *__longopts, int *__longind,
+ 			   struct _getopt_data *__data);
+ 
+ extern int _getopt_long_only_r (int ___argc, char **___argv,
+ 				const char *__shortopts,
+ 				const struct option *__longopts,
+ 				int *__longind,
+ 				struct _getopt_data *__data);
+ 
+ #endif /* getopt_int.h */
diff -Nrc2 texinfo-4.12/gnulib/lib/gettext.h texinfo-4.13/gnulib/lib/gettext.h
*** texinfo-4.12/gnulib/lib/gettext.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/gettext.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,270 ----
+ /* Convenience header for conditional use of GNU <libintl.h>.
+    Copyright (C) 1995-1998, 2000-2002, 2004-2006 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #ifndef _LIBGETTEXT_H
+ #define _LIBGETTEXT_H 1
+ 
+ /* NLS can be disabled through the configure --disable-nls option.  */
+ #if ENABLE_NLS
+ 
+ /* Get declarations of GNU message catalog functions.  */
+ # include <libintl.h>
+ 
+ /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
+    the gettext() and ngettext() macros.  This is an alternative to calling
+    textdomain(), and is useful for libraries.  */
+ # ifdef DEFAULT_TEXT_DOMAIN
+ #  undef gettext
+ #  define gettext(Msgid) \
+      dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
+ #  undef ngettext
+ #  define ngettext(Msgid1, Msgid2, N) \
+      dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
+ # endif
+ 
+ #else
+ 
+ /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
+    chokes if dcgettext is defined as a macro.  So include it now, to make
+    later inclusions of <locale.h> a NOP.  We don't include <libintl.h>
+    as well because people using "gettext.h" will not include <libintl.h>,
+    and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
+    is OK.  */
+ #if defined(__sun)
+ # include <locale.h>
+ #endif
+ 
+ /* Many header files from the libstdc++ coming with g++ 3.3 or newer include
+    <libintl.h>, which chokes if dcgettext is defined as a macro.  So include
+    it now, to make later inclusions of <libintl.h> a NOP.  */
+ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
+ # include <cstdlib>
+ # if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H
+ #  include <libintl.h>
+ # endif
+ #endif
+ 
+ /* Disabled NLS.
+    The casts to 'const char *' serve the purpose of producing warnings
+    for invalid uses of the value returned from these functions.
+    On pre-ANSI systems without 'const', the config.h file is supposed to
+    contain "#define const".  */
+ # define gettext(Msgid) ((const char *) (Msgid))
+ # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid))
+ # define dcgettext(Domainname, Msgid, Category) \
+     ((void) (Category), dgettext (Domainname, Msgid))
+ # define ngettext(Msgid1, Msgid2, N) \
+     ((N) == 1 \
+      ? ((void) (Msgid2), (const char *) (Msgid1)) \
+      : ((void) (Msgid1), (const char *) (Msgid2)))
+ # define dngettext(Domainname, Msgid1, Msgid2, N) \
+     ((void) (Domainname), ngettext (Msgid1, Msgid2, N))
+ # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+     ((void) (Category), dngettext(Domainname, Msgid1, Msgid2, N))
+ # define textdomain(Domainname) ((const char *) (Domainname))
+ # define bindtextdomain(Domainname, Dirname) \
+     ((void) (Domainname), (const char *) (Dirname))
+ # define bind_textdomain_codeset(Domainname, Codeset) \
+     ((void) (Domainname), (const char *) (Codeset))
+ 
+ #endif
+ 
+ /* A pseudo function call that serves as a marker for the automated
+    extraction of messages, but does not call gettext().  The run-time
+    translation is done at a different place in the code.
+    The argument, String, should be a literal string.  Concatenated strings
+    and other string expressions won't work.
+    The macro's expansion is not parenthesized, so that it is suitable as
+    initializer for static 'char[]' or 'const char[]' variables.  */
+ #define gettext_noop(String) String
+ 
+ /* The separator between msgctxt and msgid in a .mo file.  */
+ #define GETTEXT_CONTEXT_GLUE "\004"
+ 
+ /* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
+    MSGID.  MSGCTXT and MSGID must be string literals.  MSGCTXT should be
+    short and rarely need to change.
+    The letter 'p' stands for 'particular' or 'special'.  */
+ #ifdef DEFAULT_TEXT_DOMAIN
+ # define pgettext(Msgctxt, Msgid) \
+    pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+ #else
+ # define pgettext(Msgctxt, Msgid) \
+    pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+ #endif
+ #define dpgettext(Domainname, Msgctxt, Msgid) \
+   pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+ #define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
+   pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
+ #ifdef DEFAULT_TEXT_DOMAIN
+ # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+    npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+ #else
+ # define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+    npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+ #endif
+ #define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+   npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+ #define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
+   npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
+ 
+ #ifdef __GNUC__
+ __inline
+ #else
+ #ifdef __cplusplus
+ inline
+ #endif
+ #endif
+ static const char *
+ pgettext_aux (const char *domain,
+ 	      const char *msg_ctxt_id, const char *msgid,
+ 	      int category)
+ {
+   const char *translation = dcgettext (domain, msg_ctxt_id, category);
+   if (translation == msg_ctxt_id)
+     return msgid;
+   else
+     return translation;
+ }
+ 
+ #ifdef __GNUC__
+ __inline
+ #else
+ #ifdef __cplusplus
+ inline
+ #endif
+ #endif
+ static const char *
+ npgettext_aux (const char *domain,
+ 	       const char *msg_ctxt_id, const char *msgid,
+ 	       const char *msgid_plural, unsigned long int n,
+ 	       int category)
+ {
+   const char *translation =
+     dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+   if (translation == msg_ctxt_id || translation == msgid_plural)
+     return (n == 1 ? msgid : msgid_plural);
+   else
+     return translation;
+ }
+ 
+ /* The same thing extended for non-constant arguments.  Here MSGCTXT and MSGID
+    can be arbitrary expressions.  But for string literals these macros are
+    less efficient than those above.  */
+ 
+ #include <string.h>
+ 
+ #define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
+   (((__GNUC__ >= 3 || __GNUG__ >= 2) && !__STRICT_ANSI__) \
+    /* || __STDC_VERSION__ >= 199901L */ )
+ 
+ #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ #include <stdlib.h>
+ #endif
+ 
+ #define pgettext_expr(Msgctxt, Msgid) \
+   dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
+ #define dpgettext_expr(Domainname, Msgctxt, Msgid) \
+   dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
+ 
+ #ifdef __GNUC__
+ __inline
+ #else
+ #ifdef __cplusplus
+ inline
+ #endif
+ #endif
+ static const char *
+ dcpgettext_expr (const char *domain,
+ 		 const char *msgctxt, const char *msgid,
+ 		 int category)
+ {
+   size_t msgctxt_len = strlen (msgctxt) + 1;
+   size_t msgid_len = strlen (msgid) + 1;
+   const char *translation;
+ #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+   char msg_ctxt_id[msgctxt_len + msgid_len];
+ #else
+   char buf[1024];
+   char *msg_ctxt_id =
+     (msgctxt_len + msgid_len <= sizeof (buf)
+      ? buf
+      : (char *) malloc (msgctxt_len + msgid_len));
+   if (msg_ctxt_id != NULL)
+ #endif
+     {
+       memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+       msg_ctxt_id[msgctxt_len - 1] = '\004';
+       memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+       translation = dcgettext (domain, msg_ctxt_id, category);
+ #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+       if (msg_ctxt_id != buf)
+ 	free (msg_ctxt_id);
+ #endif
+       if (translation != msg_ctxt_id)
+ 	return translation;
+     }
+   return msgid;
+ }
+ 
+ #define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
+   dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+ #define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+   dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+ 
+ #ifdef __GNUC__
+ __inline
+ #else
+ #ifdef __cplusplus
+ inline
+ #endif
+ #endif
+ static const char *
+ dcnpgettext_expr (const char *domain,
+ 		  const char *msgctxt, const char *msgid,
+ 		  const char *msgid_plural, unsigned long int n,
+ 		  int category)
+ {
+   size_t msgctxt_len = strlen (msgctxt) + 1;
+   size_t msgid_len = strlen (msgid) + 1;
+   const char *translation;
+ #if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+   char msg_ctxt_id[msgctxt_len + msgid_len];
+ #else
+   char buf[1024];
+   char *msg_ctxt_id =
+     (msgctxt_len + msgid_len <= sizeof (buf)
+      ? buf
+      : (char *) malloc (msgctxt_len + msgid_len));
+   if (msg_ctxt_id != NULL)
+ #endif
+     {
+       memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+       msg_ctxt_id[msgctxt_len - 1] = '\004';
+       memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+       translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+ #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+       if (msg_ctxt_id != buf)
+ 	free (msg_ctxt_id);
+ #endif
+       if (!(translation == msg_ctxt_id || translation == msgid_plural))
+ 	return translation;
+     }
+   return (n == 1 ? msgid : msgid_plural);
+ }
+ 
+ #endif /* _LIBGETTEXT_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/gettimeofday.c texinfo-4.13/gnulib/lib/gettimeofday.c
*** texinfo-4.12/gnulib/lib/gettimeofday.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/gettimeofday.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,142 ----
+ /* Provide gettimeofday for systems that don't have it or for which it's broken.
+ 
+    Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* written by Jim Meyering */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include <sys/time.h>
+ 
+ #include <time.h>
+ 
+ #if HAVE_SYS_TIMEB_H
+ # include <sys/timeb.h>
+ #endif
+ 
+ #if GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME
+ 
+ /* Work around the bug in some systems whereby gettimeofday clobbers
+    the static buffer that localtime uses for its return value.  The
+    gettimeofday function from Mac OS X 10.0.4 (i.e., Darwin 1.3.7) has
+    this problem.  The tzset replacement is necessary for at least
+    Solaris 2.5, 2.5.1, and 2.6.  */
+ 
+ static struct tm tm_zero_buffer;
+ static struct tm *localtime_buffer_addr = &tm_zero_buffer;
+ 
+ /* This is a wrapper for localtime.  It is used only on systems for which
+    gettimeofday clobbers the static buffer used for localtime's result.
+ 
+    On the first call, record the address of the static buffer that
+    localtime uses for its result.  */
+ 
+ struct tm *
+ rpl_localtime (time_t const *timep)
+ {
+ #undef localtime
+   extern struct tm *localtime (time_t const *);
+   struct tm *tm = localtime (timep);
+ 
+   if (localtime_buffer_addr == &tm_zero_buffer)
+     localtime_buffer_addr = tm;
+ 
+   return tm;
+ }
+ 
+ /* Same as above, since gmtime and localtime use the same buffer.  */
+ struct tm *
+ rpl_gmtime (time_t const *timep)
+ {
+ #undef gmtime
+   extern struct tm *gmtime (time_t const *);
+   struct tm *tm = gmtime (timep);
+ 
+   if (localtime_buffer_addr == &tm_zero_buffer)
+     localtime_buffer_addr = tm;
+ 
+   return tm;
+ }
+ 
+ #endif /* GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME */
+ 
+ #if TZSET_CLOBBERS_LOCALTIME
+ /* This is a wrapper for tzset, for systems on which tzset may clobber
+    the static buffer used for localtime's result.  */
+ void
+ rpl_tzset (void)
+ {
+ #undef tzset
+   extern void tzset (void);
+ 
+   /* Save and restore the contents of the buffer used for localtime's
+      result around the call to tzset.  */
+   struct tm save = *localtime_buffer_addr;
+   tzset ();
+   *localtime_buffer_addr = save;
+ }
+ #endif
+ 
+ /* This is a wrapper for gettimeofday.  It is used only on systems
+    that lack this function, or whose implementation of this function
+    causes problems.  */
+ 
+ int
+ rpl_gettimeofday (struct timeval *restrict tv, void *restrict tz)
+ {
+ #undef gettimeofday
+ #if HAVE_GETTIMEOFDAY
+ # if GETTIMEOFDAY_CLOBBERS_LOCALTIME
+   /* Save and restore the contents of the buffer used for localtime's
+      result around the call to gettimeofday.  */
+   struct tm save = *localtime_buffer_addr;
+ # endif
+ 
+   int result = gettimeofday (tv, tz);
+ 
+ # if GETTIMEOFDAY_CLOBBERS_LOCALTIME
+   *localtime_buffer_addr = save;
+ # endif
+ 
+   return result;
+ 
+ #else
+ 
+ # if HAVE__FTIME
+ 
+   struct _timeb timebuf;
+   _ftime (&timebuf);
+   tv->tv_sec = timebuf.time;
+   tv->tv_usec = timebuf.millitm * 1000;
+ 
+ # else
+ 
+ #  if !defined OK_TO_USE_1S_CLOCK
+ #   error "Only 1-second nominal clock resolution found.  Is that intended?" \
+           "If so, compile with the -DOK_TO_USE_1S_CLOCK option."
+ #  endif
+   tv->tv_sec = time (NULL);
+   tv->tv_usec = 0;
+ 
+ # endif
+ 
+   return 0;
+ 
+ #endif
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/intprops.h texinfo-4.13/gnulib/lib/intprops.h
*** texinfo-4.12/gnulib/lib/intprops.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/intprops.h	Tue Dec 25 17:09:25 2007
***************
*** 0 ****
--- 1,77 ----
+ /* intprops.h -- properties of integer types
+ 
+    Copyright (C) 2001, 2002, 2003, 2004, 2005 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Paul Eggert.  */
+ 
+ #include <limits.h>
+ 
+ /* The extra casts in the following macros work around compiler bugs,
+    e.g., in Cray C 5.0.3.0.  */
+ 
+ /* True if the arithmetic type T is an integer type.  bool counts as
+    an integer.  */
+ #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
+ 
+ /* True if negative values of the signed integer type T use two's
+    complement, ones' complement, or signed magnitude representation,
+    respectively.  Much GNU code assumes two's complement, but some
+    people like to be portable to all possible C hosts.  */
+ #define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
+ #define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
+ #define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
+ 
+ /* True if the arithmetic type T is signed.  */
+ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+ 
+ /* The maximum and minimum values for the integer type T.  These
+    macros have undefined behavior if T is signed and has padding bits.
+    If this is a problem for you, please let us know how to fix it for
+    your host.  */
+ #define TYPE_MINIMUM(t) \
+   ((t) (! TYPE_SIGNED (t) \
+ 	? (t) 0 \
+ 	: TYPE_SIGNED_MAGNITUDE (t) \
+ 	? ~ (t) 0 \
+ 	: ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+ #define TYPE_MAXIMUM(t) \
+   ((t) (! TYPE_SIGNED (t) \
+ 	? (t) -1 \
+ 	: ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
+ 
+ /* Return zero if T can be determined to be an unsigned type.
+    Otherwise, return 1.
+    When compiling with GCC, INT_STRLEN_BOUND uses this macro to obtain a
+    tighter bound.  Otherwise, it overestimates the true bound by one byte
+    when applied to unsigned types of size 2, 4, 16, ... bytes.
+    The symbol signed_type_or_expr__ is private to this header file.  */
+ #if __GNUC__ >= 2
+ # define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t))
+ #else
+ # define signed_type_or_expr__(t) 1
+ #endif
+ 
+ /* Bound on length of the string representing an integer type or expression T.
+    Subtract 1 for the sign bit if T is signed; log10 (2.0) < 146/485;
+    add 1 for integer division truncation; add 1 more for a minus sign
+    if needed.  */
+ #define INT_STRLEN_BOUND(t) \
+   ((sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) * 146 / 485 \
+    + signed_type_or_expr__ (t) + 1)
+ 
+ /* Bound on buffer size needed to represent an integer type or expression T,
+    including the terminating null.  */
+ #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1)
diff -Nrc2 texinfo-4.12/gnulib/lib/localcharset.c texinfo-4.13/gnulib/lib/localcharset.c
*** texinfo-4.12/gnulib/lib/localcharset.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/localcharset.c	Thu May 22 05:11:32 2008
***************
*** 0 ****
--- 1,462 ----
+ /* Determine a canonical name for the current locale's character encoding.
+ 
+    Copyright (C) 2000-2006, 2008 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include "localcharset.h"
+ 
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdlib.h>
+ 
+ #if defined _WIN32 || defined __WIN32__
+ # define WIN32_NATIVE
+ #endif
+ 
+ #if defined __EMX__
+ /* Assume EMX program runs on OS/2, even if compiled under DOS.  */
+ # ifndef OS2
+ #  define OS2
+ # endif
+ #endif
+ 
+ #if !defined WIN32_NATIVE
+ # if HAVE_LANGINFO_CODESET
+ #  include <langinfo.h>
+ # else
+ #  if 0 /* see comment below */
+ #   include <locale.h>
+ #  endif
+ # endif
+ # ifdef __CYGWIN__
+ #  define WIN32_LEAN_AND_MEAN
+ #  include <windows.h>
+ # endif
+ #elif defined WIN32_NATIVE
+ # define WIN32_LEAN_AND_MEAN
+ # include <windows.h>
+ #endif
+ #if defined OS2
+ # define INCL_DOS
+ # include <os2.h>
+ #endif
+ 
+ #if ENABLE_RELOCATABLE
+ # include "relocatable.h"
+ #else
+ # define relocate(pathname) (pathname)
+ #endif
+ 
+ /* Get LIBDIR.  */
+ #ifndef LIBDIR
+ # include "configmake.h"
+ #endif
+ 
+ #if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+   /* Win32, Cygwin, OS/2, DOS */
+ # define ISSLASH(C) ((C) == '/' || (C) == '\\')
+ #endif
+ 
+ #ifndef DIRECTORY_SEPARATOR
+ # define DIRECTORY_SEPARATOR '/'
+ #endif
+ 
+ #ifndef ISSLASH
+ # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+ #endif
+ 
+ #if HAVE_DECL_GETC_UNLOCKED
+ # undef getc
+ # define getc getc_unlocked
+ #endif
+ 
+ /* The following static variable is declared 'volatile' to avoid a
+    possible multithread problem in the function get_charset_aliases. If we
+    are running in a threaded environment, and if two threads initialize
+    'charset_aliases' simultaneously, both will produce the same value,
+    and everything will be ok if the two assignments to 'charset_aliases'
+    are atomic. But I don't know what will happen if the two assignments mix.  */
+ #if __STDC__ != 1
+ # define volatile /* empty */
+ #endif
+ /* Pointer to the contents of the charset.alias file, if it has already been
+    read, else NULL.  Its format is:
+    ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0'  */
+ static const char * volatile charset_aliases;
+ 
+ /* Return a pointer to the contents of the charset.alias file.  */
+ static const char *
+ get_charset_aliases (void)
+ {
+   const char *cp;
+ 
+   cp = charset_aliases;
+   if (cp == NULL)
+     {
+ #if !(defined VMS || defined WIN32_NATIVE || defined __CYGWIN__)
+       FILE *fp;
+       const char *dir;
+       const char *base = "charset.alias";
+       char *file_name;
+ 
+       /* Make it possible to override the charset.alias location.  This is
+ 	 necessary for running the testsuite before "make install".  */
+       dir = getenv ("CHARSETALIASDIR");
+       if (dir == NULL || dir[0] == '\0')
+ 	dir = relocate (LIBDIR);
+ 
+       /* Concatenate dir and base into freshly allocated file_name.  */
+       {
+ 	size_t dir_len = strlen (dir);
+ 	size_t base_len = strlen (base);
+ 	int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
+ 	file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
+ 	if (file_name != NULL)
+ 	  {
+ 	    memcpy (file_name, dir, dir_len);
+ 	    if (add_slash)
+ 	      file_name[dir_len] = DIRECTORY_SEPARATOR;
+ 	    memcpy (file_name + dir_len + add_slash, base, base_len + 1);
+ 	  }
+       }
+ 
+       if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
+ 	/* Out of memory or file not found, treat it as empty.  */
+ 	cp = "";
+       else
+ 	{
+ 	  /* Parse the file's contents.  */
+ 	  char *res_ptr = NULL;
+ 	  size_t res_size = 0;
+ 
+ 	  for (;;)
+ 	    {
+ 	      int c;
+ 	      char buf1[50+1];
+ 	      char buf2[50+1];
+ 	      size_t l1, l2;
+ 	      char *old_res_ptr;
+ 
+ 	      c = getc (fp);
+ 	      if (c == EOF)
+ 		break;
+ 	      if (c == '\n' || c == ' ' || c == '\t')
+ 		continue;
+ 	      if (c == '#')
+ 		{
+ 		  /* Skip comment, to end of line.  */
+ 		  do
+ 		    c = getc (fp);
+ 		  while (!(c == EOF || c == '\n'));
+ 		  if (c == EOF)
+ 		    break;
+ 		  continue;
+ 		}
+ 	      ungetc (c, fp);
+ 	      if (fscanf (fp, "%50s %50s", buf1, buf2) < 2)
+ 		break;
+ 	      l1 = strlen (buf1);
+ 	      l2 = strlen (buf2);
+ 	      old_res_ptr = res_ptr;
+ 	      if (res_size == 0)
+ 		{
+ 		  res_size = l1 + 1 + l2 + 1;
+ 		  res_ptr = (char *) malloc (res_size + 1);
+ 		}
+ 	      else
+ 		{
+ 		  res_size += l1 + 1 + l2 + 1;
+ 		  res_ptr = (char *) realloc (res_ptr, res_size + 1);
+ 		}
+ 	      if (res_ptr == NULL)
+ 		{
+ 		  /* Out of memory. */
+ 		  res_size = 0;
+ 		  if (old_res_ptr != NULL)
+ 		    free (old_res_ptr);
+ 		  break;
+ 		}
+ 	      strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
+ 	      strcpy (res_ptr + res_size - (l2 + 1), buf2);
+ 	    }
+ 	  fclose (fp);
+ 	  if (res_size == 0)
+ 	    cp = "";
+ 	  else
+ 	    {
+ 	      *(res_ptr + res_size) = '\0';
+ 	      cp = res_ptr;
+ 	    }
+ 	}
+ 
+       if (file_name != NULL)
+ 	free (file_name);
+ 
+ #else
+ 
+ # if defined VMS
+       /* To avoid the troubles of an extra file charset.alias_vms in the
+ 	 sources of many GNU packages, simply inline the aliases here.  */
+       /* The list of encodings is taken from the OpenVMS 7.3-1 documentation
+ 	 "Compaq C Run-Time Library Reference Manual for OpenVMS systems"
+ 	 section 10.7 "Handling Different Character Sets".  */
+       cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
+ 	   "ISO8859-2" "\0" "ISO-8859-2" "\0"
+ 	   "ISO8859-5" "\0" "ISO-8859-5" "\0"
+ 	   "ISO8859-7" "\0" "ISO-8859-7" "\0"
+ 	   "ISO8859-8" "\0" "ISO-8859-8" "\0"
+ 	   "ISO8859-9" "\0" "ISO-8859-9" "\0"
+ 	   /* Japanese */
+ 	   "eucJP" "\0" "EUC-JP" "\0"
+ 	   "SJIS" "\0" "SHIFT_JIS" "\0"
+ 	   "DECKANJI" "\0" "DEC-KANJI" "\0"
+ 	   "SDECKANJI" "\0" "EUC-JP" "\0"
+ 	   /* Chinese */
+ 	   "eucTW" "\0" "EUC-TW" "\0"
+ 	   "DECHANYU" "\0" "DEC-HANYU" "\0"
+ 	   "DECHANZI" "\0" "GB2312" "\0"
+ 	   /* Korean */
+ 	   "DECKOREAN" "\0" "EUC-KR" "\0";
+ # endif
+ 
+ # if defined WIN32_NATIVE || defined __CYGWIN__
+       /* To avoid the troubles of installing a separate file in the same
+ 	 directory as the DLL and of retrieving the DLL's directory at
+ 	 runtime, simply inline the aliases here.  */
+ 
+       cp = "CP936" "\0" "GBK" "\0"
+ 	   "CP1361" "\0" "JOHAB" "\0"
+ 	   "CP20127" "\0" "ASCII" "\0"
+ 	   "CP20866" "\0" "KOI8-R" "\0"
+ 	   "CP20936" "\0" "GB2312" "\0"
+ 	   "CP21866" "\0" "KOI8-RU" "\0"
+ 	   "CP28591" "\0" "ISO-8859-1" "\0"
+ 	   "CP28592" "\0" "ISO-8859-2" "\0"
+ 	   "CP28593" "\0" "ISO-8859-3" "\0"
+ 	   "CP28594" "\0" "ISO-8859-4" "\0"
+ 	   "CP28595" "\0" "ISO-8859-5" "\0"
+ 	   "CP28596" "\0" "ISO-8859-6" "\0"
+ 	   "CP28597" "\0" "ISO-8859-7" "\0"
+ 	   "CP28598" "\0" "ISO-8859-8" "\0"
+ 	   "CP28599" "\0" "ISO-8859-9" "\0"
+ 	   "CP28605" "\0" "ISO-8859-15" "\0"
+ 	   "CP38598" "\0" "ISO-8859-8" "\0"
+ 	   "CP51932" "\0" "EUC-JP" "\0"
+ 	   "CP51936" "\0" "GB2312" "\0"
+ 	   "CP51949" "\0" "EUC-KR" "\0"
+ 	   "CP51950" "\0" "EUC-TW" "\0"
+ 	   "CP54936" "\0" "GB18030" "\0"
+ 	   "CP65001" "\0" "UTF-8" "\0";
+ # endif
+ #endif
+ 
+       charset_aliases = cp;
+     }
+ 
+   return cp;
+ }
+ 
+ /* Determine the current locale's character encoding, and canonicalize it
+    into one of the canonical names listed in config.charset.
+    The result must not be freed; it is statically allocated.
+    If the canonical name cannot be determined, the result is a non-canonical
+    name.  */
+ 
+ #ifdef STATIC
+ STATIC
+ #endif
+ const char *
+ locale_charset (void)
+ {
+   const char *codeset;
+   const char *aliases;
+ 
+ #if !(defined WIN32_NATIVE || defined OS2)
+ 
+ # if HAVE_LANGINFO_CODESET
+ 
+   /* Most systems support nl_langinfo (CODESET) nowadays.  */
+   codeset = nl_langinfo (CODESET);
+ 
+ #  ifdef __CYGWIN__
+   /* Cygwin 2006 does not have locales.  nl_langinfo (CODESET) always
+      returns "US-ASCII".  As long as this is not fixed, return the suffix
+      of the locale name from the environment variables (if present) or
+      the codepage as a number.  */
+   if (codeset != NULL && strcmp (codeset, "US-ASCII") == 0)
+     {
+       const char *locale;
+       static char buf[2 + 10 + 1];
+ 
+       locale = getenv ("LC_ALL");
+       if (locale == NULL || locale[0] == '\0')
+ 	{
+ 	  locale = getenv ("LC_CTYPE");
+ 	  if (locale == NULL || locale[0] == '\0')
+ 	    locale = getenv ("LANG");
+ 	}
+       if (locale != NULL && locale[0] != '\0')
+ 	{
+ 	  /* If the locale name contains an encoding after the dot, return
+ 	     it.  */
+ 	  const char *dot = strchr (locale, '.');
+ 
+ 	  if (dot != NULL)
+ 	    {
+ 	      const char *modifier;
+ 
+ 	      dot++;
+ 	      /* Look for the possible @... trailer and remove it, if any.  */
+ 	      modifier = strchr (dot, '@');
+ 	      if (modifier == NULL)
+ 		return dot;
+ 	      if (modifier - dot < sizeof (buf))
+ 		{
+ 		  memcpy (buf, dot, modifier - dot);
+ 		  buf [modifier - dot] = '\0';
+ 		  return buf;
+ 		}
+ 	    }
+ 	}
+ 
+       /* Woe32 has a function returning the locale's codepage as a number.  */
+       sprintf (buf, "CP%u", GetACP ());
+       codeset = buf;
+     }
+ #  endif
+ 
+ # else
+ 
+   /* On old systems which lack it, use setlocale or getenv.  */
+   const char *locale = NULL;
+ 
+   /* But most old systems don't have a complete set of locales.  Some
+      (like SunOS 4 or DJGPP) have only the C locale.  Therefore we don't
+      use setlocale here; it would return "C" when it doesn't support the
+      locale name the user has set.  */
+ #  if 0
+   locale = setlocale (LC_CTYPE, NULL);
+ #  endif
+   if (locale == NULL || locale[0] == '\0')
+     {
+       locale = getenv ("LC_ALL");
+       if (locale == NULL || locale[0] == '\0')
+ 	{
+ 	  locale = getenv ("LC_CTYPE");
+ 	  if (locale == NULL || locale[0] == '\0')
+ 	    locale = getenv ("LANG");
+ 	}
+     }
+ 
+   /* On some old systems, one used to set locale = "iso8859_1". On others,
+      you set it to "language_COUNTRY.charset". In any case, we resolve it
+      through the charset.alias file.  */
+   codeset = locale;
+ 
+ # endif
+ 
+ #elif defined WIN32_NATIVE
+ 
+   static char buf[2 + 10 + 1];
+ 
+   /* Woe32 has a function returning the locale's codepage as a number.  */
+   sprintf (buf, "CP%u", GetACP ());
+   codeset = buf;
+ 
+ #elif defined OS2
+ 
+   const char *locale;
+   static char buf[2 + 10 + 1];
+   ULONG cp[3];
+   ULONG cplen;
+ 
+   /* Allow user to override the codeset, as set in the operating system,
+      with standard language environment variables.  */
+   locale = getenv ("LC_ALL");
+   if (locale == NULL || locale[0] == '\0')
+     {
+       locale = getenv ("LC_CTYPE");
+       if (locale == NULL || locale[0] == '\0')
+ 	locale = getenv ("LANG");
+     }
+   if (locale != NULL && locale[0] != '\0')
+     {
+       /* If the locale name contains an encoding after the dot, return it.  */
+       const char *dot = strchr (locale, '.');
+ 
+       if (dot != NULL)
+ 	{
+ 	  const char *modifier;
+ 
+ 	  dot++;
+ 	  /* Look for the possible @... trailer and remove it, if any.  */
+ 	  modifier = strchr (dot, '@');
+ 	  if (modifier == NULL)
+ 	    return dot;
+ 	  if (modifier - dot < sizeof (buf))
+ 	    {
+ 	      memcpy (buf, dot, modifier - dot);
+ 	      buf [modifier - dot] = '\0';
+ 	      return buf;
+ 	    }
+ 	}
+ 
+       /* Resolve through the charset.alias file.  */
+       codeset = locale;
+     }
+   else
+     {
+       /* OS/2 has a function returning the locale's codepage as a number.  */
+       if (DosQueryCp (sizeof (cp), cp, &cplen))
+ 	codeset = "";
+       else
+ 	{
+ 	  sprintf (buf, "CP%u", cp[0]);
+ 	  codeset = buf;
+ 	}
+     }
+ 
+ #endif
+ 
+   if (codeset == NULL)
+     /* The canonical name cannot be determined.  */
+     codeset = "";
+ 
+   /* Resolve alias. */
+   for (aliases = get_charset_aliases ();
+        *aliases != '\0';
+        aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
+     if (strcmp (codeset, aliases) == 0
+ 	|| (aliases[0] == '*' && aliases[1] == '\0'))
+       {
+ 	codeset = aliases + strlen (aliases) + 1;
+ 	break;
+       }
+ 
+   /* Don't return an empty string.  GNU libc and GNU libiconv interpret
+      the empty string as denoting "the locale's character encoding",
+      thus GNU libiconv would call this function a second time.  */
+   if (codeset[0] == '\0')
+     codeset = "ASCII";
+ 
+   return codeset;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/localcharset.h texinfo-4.13/gnulib/lib/localcharset.h
*** texinfo-4.12/gnulib/lib/localcharset.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/localcharset.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,41 ----
+ /* Determine a canonical name for the current locale's character encoding.
+    Copyright (C) 2000-2003 Free Software Foundation, Inc.
+    This file is part of the GNU CHARSET Library.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #ifndef _LOCALCHARSET_H
+ #define _LOCALCHARSET_H
+ 
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ 
+ /* Determine the current locale's character encoding, and canonicalize it
+    into one of the canonical names listed in config.charset.
+    The result must not be freed; it is statically allocated.
+    If the canonical name cannot be determined, the result is a non-canonical
+    name.  */
+ extern const char * locale_charset (void);
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ 
+ #endif /* _LOCALCHARSET_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/malloc.c texinfo-4.13/gnulib/lib/malloc.c
*** texinfo-4.12/gnulib/lib/malloc.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/malloc.c	Tue Dec 25 16:53:46 2007
***************
*** 0 ****
--- 1,57 ----
+ /* malloc() function that is glibc compatible.
+ 
+    Copyright (C) 1997, 1998, 2006, 2007 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* written by Jim Meyering and Bruno Haible */
+ 
+ #include <config.h>
+ /* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h.  */
+ #ifdef malloc
+ # define NEED_MALLOC_GNU
+ # undef malloc
+ #endif
+ 
+ /* Specification.  */
+ #include <stdlib.h>
+ 
+ #include <errno.h>
+ 
+ /* Call the system's malloc below.  */
+ #undef malloc
+ 
+ /* Allocate an N-byte block of memory from the heap.
+    If N is zero, allocate a 1-byte block.  */
+ 
+ void *
+ rpl_malloc (size_t n)
+ {
+   void *result;
+ 
+ #ifdef NEED_MALLOC_GNU
+   if (n == 0)
+     n = 1;
+ #endif
+ 
+   result = malloc (n);
+ 
+ #if !HAVE_MALLOC_POSIX
+   if (result == NULL)
+     errno = ENOMEM;
+ #endif
+ 
+   return result;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/malloca.c texinfo-4.13/gnulib/lib/malloca.c
*** texinfo-4.12/gnulib/lib/malloca.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/malloca.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,137 ----
+ /* Safe automatic memory allocation.
+    Copyright (C) 2003, 2006-2007 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2003.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include "malloca.h"
+ 
+ /* The speed critical point in this file is freea() applied to an alloca()
+    result: it must be fast, to match the speed of alloca().  The speed of
+    mmalloca() and freea() in the other case are not critical, because they
+    are only invoked for big memory sizes.  */
+ 
+ #if HAVE_ALLOCA
+ 
+ /* Store the mmalloca() results in a hash table.  This is needed to reliably
+    distinguish a mmalloca() result and an alloca() result.
+ 
+    Although it is possible that the same pointer is returned by alloca() and
+    by mmalloca() at different times in the same application, it does not lead
+    to a bug in freea(), because:
+      - Before a pointer returned by alloca() can point into malloc()ed memory,
+        the function must return, and once this has happened the programmer must
+        not call freea() on it anyway.
+      - Before a pointer returned by mmalloca() can point into the stack, it
+        must be freed.  The only function that can free it is freea(), and
+        when freea() frees it, it also removes it from the hash table.  */
+ 
+ #define MAGIC_NUMBER 0x1415fb4a
+ #define MAGIC_SIZE sizeof (int)
+ /* This is how the header info would look like without any alignment
+    considerations.  */
+ struct preliminary_header { void *next; char room[MAGIC_SIZE]; };
+ /* But the header's size must be a multiple of sa_alignment_max.  */
+ #define HEADER_SIZE \
+   (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max)
+ struct header { void *next; char room[HEADER_SIZE - sizeof (struct preliminary_header) + MAGIC_SIZE]; };
+ /* Verify that HEADER_SIZE == sizeof (struct header).  */
+ typedef int verify1[2 * (HEADER_SIZE == sizeof (struct header)) - 1];
+ /* We make the hash table quite big, so that during lookups the probability
+    of empty hash buckets is quite high.  There is no need to make the hash
+    table resizable, because when the hash table gets filled so much that the
+    lookup becomes slow, it means that the application has memory leaks.  */
+ #define HASH_TABLE_SIZE 257
+ static void * mmalloca_results[HASH_TABLE_SIZE];
+ 
+ #endif
+ 
+ void *
+ mmalloca (size_t n)
+ {
+ #if HAVE_ALLOCA
+   /* Allocate one more word, that serves as an indicator for malloc()ed
+      memory, so that freea() of an alloca() result is fast.  */
+   size_t nplus = n + HEADER_SIZE;
+ 
+   if (nplus >= n)
+     {
+       char *p = (char *) malloc (nplus);
+ 
+       if (p != NULL)
+ 	{
+ 	  size_t slot;
+ 
+ 	  p += HEADER_SIZE;
+ 
+ 	  /* Put a magic number into the indicator word.  */
+ 	  ((int *) p)[-1] = MAGIC_NUMBER;
+ 
+ 	  /* Enter p into the hash table.  */
+ 	  slot = (unsigned long) p % HASH_TABLE_SIZE;
+ 	  ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot];
+ 	  mmalloca_results[slot] = p;
+ 
+ 	  return p;
+ 	}
+     }
+   /* Out of memory.  */
+   return NULL;
+ #else
+ # if !MALLOC_0_IS_NONNULL
+   if (n == 0)
+     n = 1;
+ # endif
+   return malloc (n);
+ #endif
+ }
+ 
+ #if HAVE_ALLOCA
+ void
+ freea (void *p)
+ {
+   /* mmalloca() may have returned NULL.  */
+   if (p != NULL)
+     {
+       /* Attempt to quickly distinguish the mmalloca() result - which has
+ 	 a magic indicator word - and the alloca() result - which has an
+ 	 uninitialized indicator word.  It is for this test that sa_increment
+ 	 additional bytes are allocated in the alloca() case.  */
+       if (((int *) p)[-1] == MAGIC_NUMBER)
+ 	{
+ 	  /* Looks like a mmalloca() result.  To see whether it really is one,
+ 	     perform a lookup in the hash table.  */
+ 	  size_t slot = (unsigned long) p % HASH_TABLE_SIZE;
+ 	  void **chain = &mmalloca_results[slot];
+ 	  for (; *chain != NULL;)
+ 	    {
+ 	      if (*chain == p)
+ 		{
+ 		  /* Found it.  Remove it from the hash table and free it.  */
+ 		  char *p_begin = (char *) p - HEADER_SIZE;
+ 		  *chain = ((struct header *) p_begin)->next;
+ 		  free (p_begin);
+ 		  return;
+ 		}
+ 	      chain = &((struct header *) ((char *) *chain - HEADER_SIZE))->next;
+ 	    }
+ 	}
+       /* At this point, we know it was not a mmalloca() result.  */
+     }
+ }
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/malloca.h texinfo-4.13/gnulib/lib/malloca.h
*** texinfo-4.12/gnulib/lib/malloca.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/malloca.h	Wed Jan  2 06:31:15 2008
***************
*** 0 ****
--- 1,134 ----
+ /* Safe automatic memory allocation.
+    Copyright (C) 2003-2007 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2003.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #ifndef _MALLOCA_H
+ #define _MALLOCA_H
+ 
+ #include <alloca.h>
+ #include <stddef.h>
+ #include <stdlib.h>
+ 
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ 
+ /* safe_alloca(N) is equivalent to alloca(N) when it is safe to call
+    alloca(N); otherwise it returns NULL.  It either returns N bytes of
+    memory allocated on the stack, that lasts until the function returns,
+    or NULL.
+    Use of safe_alloca should be avoided:
+      - inside arguments of function calls - undefined behaviour,
+      - in inline functions - the allocation may actually last until the
+        calling function returns.
+ */
+ #if HAVE_ALLOCA
+ /* The OS usually guarantees only one guard page at the bottom of the stack,
+    and a page size can be as small as 4096 bytes.  So we cannot safely
+    allocate anything larger than 4096 bytes.  Also care for the possibility
+    of a few compiler-allocated temporary stack slots.
+    This must be a macro, not an inline function.  */
+ # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL)
+ #else
+ # define safe_alloca(N) ((void) (N), NULL)
+ #endif
+ 
+ /* malloca(N) is a safe variant of alloca(N).  It allocates N bytes of
+    memory allocated on the stack, that must be freed using freea() before
+    the function returns.  Upon failure, it returns NULL.  */
+ #if HAVE_ALLOCA
+ # define malloca(N) \
+   ((N) < 4032 - sa_increment					    \
+    ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \
+    : mmalloca (N))
+ #else
+ # define malloca(N) \
+   mmalloca (N)
+ #endif
+ extern void * mmalloca (size_t n);
+ 
+ /* Free a block of memory allocated through malloca().  */
+ #if HAVE_ALLOCA
+ extern void freea (void *p);
+ #else
+ # define freea free
+ #endif
+ 
+ /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S).
+    It allocates an array of N objects, each with S bytes of memory,
+    on the stack.  S must be positive and N must be nonnegative.
+    The array must be freed using freea() before the function returns.  */
+ #if 1
+ /* Cf. the definition of xalloc_oversized.  */
+ # define nmalloca(n, s) \
+     ((n) > (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) \
+      ? NULL \
+      : malloca ((n) * (s)))
+ #else
+ extern void * nmalloca (size_t n, size_t s);
+ #endif
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ 
+ /* ------------------- Auxiliary, non-public definitions ------------------- */
+ 
+ /* Determine the alignment of a type at compile time.  */
+ #if defined __GNUC__
+ # define sa_alignof __alignof__
+ #elif defined __cplusplus
+   template <class type> struct sa_alignof_helper { char __slot1; type __slot2; };
+ # define sa_alignof(type) offsetof (sa_alignof_helper<type>, __slot2)
+ #elif defined __hpux
+   /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof
+      values.  */
+ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8)
+ #elif defined _AIX
+   /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof
+      values.  */
+ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8)
+ #else
+ # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2)
+ #endif
+ 
+ enum
+ {
+ /* The desired alignment of memory allocations is the maximum alignment
+    among all elementary types.  */
+   sa_alignment_long = sa_alignof (long),
+   sa_alignment_double = sa_alignof (double),
+ #if HAVE_LONG_LONG_INT
+   sa_alignment_longlong = sa_alignof (long long),
+ #endif
+   sa_alignment_longdouble = sa_alignof (long double),
+   sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1)
+ #if HAVE_LONG_LONG_INT
+ 		      | (sa_alignment_longlong - 1)
+ #endif
+ 		      | (sa_alignment_longdouble - 1)
+ 		     ) + 1,
+ /* The increment that guarantees room for a magic word must be >= sizeof (int)
+    and a multiple of sa_alignment_max.  */
+   sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max
+ };
+ 
+ #endif /* _MALLOCA_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/malloca.valgrind texinfo-4.13/gnulib/lib/malloca.valgrind
*** texinfo-4.12/gnulib/lib/malloca.valgrind	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/malloca.valgrind	Thu Jul 26 14:51:26 2007
***************
*** 0 ****
--- 1,7 ----
+ # Suppress a valgrind message about use of uninitialized memory in freea().
+ # This use is OK because it provides only a speedup.
+ {
+     freea
+     Memcheck:Cond
+     fun:freea
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/mbchar.c texinfo-4.13/gnulib/lib/mbchar.c
*** texinfo-4.12/gnulib/lib/mbchar.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbchar.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,35 ----
+ /* Copyright (C) 2001, 2006 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ 
+ #include <config.h>
+ 
+ #include <limits.h>
+ 
+ #include "mbchar.h"
+ 
+ #if IS_BASIC_ASCII
+ 
+ /* Bit table of characters in the ISO C "basic character set".  */
+ const unsigned int is_basic_table [UCHAR_MAX / 32 + 1] =
+ {
+   0x00001a00,		/* '\t' '\v' '\f' */
+   0xffffffef,		/* ' '...'#' '%'...'?' */
+   0xfffffffe,		/* 'A'...'Z' '[' '\\' ']' '^' '_' */
+   0x7ffffffe		/* 'a'...'z' '{' '|' '}' '~' */
+   /* The remaining bits are 0.  */
+ };
+ 
+ #endif /* IS_BASIC_ASCII */
diff -Nrc2 texinfo-4.12/gnulib/lib/mbchar.h texinfo-4.13/gnulib/lib/mbchar.h
*** texinfo-4.12/gnulib/lib/mbchar.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbchar.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,350 ----
+ /* Multibyte character data type.
+    Copyright (C) 2001, 2005-2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+ 
+ /* A multibyte character is a short subsequence of a char* string,
+    representing a single wide character.
+ 
+    We use multibyte characters instead of wide characters because of
+    the following goals:
+    1) correct multibyte handling, i.e. operate according to the LC_CTYPE
+       locale,
+    2) ease of maintenance, i.e. the maintainer needs not know all details
+       of the ISO C 99 standard,
+    3) don't fail grossly if the input is not in the encoding set by the
+       locale, because often different encodings are in use in the same
+       countries (ISO-8859-1/UTF-8, EUC-JP/Shift_JIS, ...),
+    4) fast in the case of ASCII characters,
+    5) portability, i.e. don't make unportable assumptions about wchar_t.
+ 
+    Multibyte characters are only accessed through the mb* macros.
+ 
+    mb_ptr (mbc)
+      return a pointer to the beginning of the multibyte sequence.
+ 
+    mb_len (mbc)
+      returns the number of bytes occupied by the multibyte sequence.
+      Always > 0.
+ 
+    mb_iseq (mbc, sc)
+      returns true if mbc is the standard ASCII character sc.
+ 
+    mb_isnul (mbc)
+      returns true if mbc is the nul character.
+ 
+    mb_cmp (mbc1, mbc2)
+      returns a positive, zero, or negative value depending on whether mbc1
+      sorts after, same or before mbc2.
+ 
+    mb_casecmp (mbc1, mbc2)
+      returns a positive, zero, or negative value depending on whether mbc1
+      sorts after, same or before mbc2, modulo upper/lowercase conversion.
+ 
+    mb_equal (mbc1, mbc2)
+      returns true if mbc1 and mbc2 are equal.
+ 
+    mb_caseequal (mbc1, mbc2)
+      returns true if mbc1 and mbc2 are equal modulo upper/lowercase conversion.
+ 
+    mb_isalnum (mbc)
+      returns true if mbc is alphanumeric.
+ 
+    mb_isalpha (mbc)
+      returns true if mbc is alphabetic.
+ 
+    mb_isascii(mbc)
+      returns true if mbc is plain ASCII.
+ 
+    mb_isblank (mbc)
+      returns true if mbc is a blank.
+ 
+    mb_iscntrl (mbc)
+      returns true if mbc is a control character.
+ 
+    mb_isdigit (mbc)
+      returns true if mbc is a decimal digit.
+ 
+    mb_isgraph (mbc)
+      returns true if mbc is a graphic character.
+ 
+    mb_islower (mbc)
+      returns true if mbc is lowercase.
+ 
+    mb_isprint (mbc)
+      returns true if mbc is a printable character.
+ 
+    mb_ispunct (mbc)
+      returns true if mbc is a punctuation character.
+ 
+    mb_isspace (mbc)
+      returns true if mbc is a space character.
+ 
+    mb_isupper (mbc)
+      returns true if mbc is uppercase.
+ 
+    mb_isxdigit (mbc)
+      returns true if mbc is a hexadecimal digit.
+ 
+    mb_width (mbc)
+      returns the number of columns on the output device occupied by mbc.
+      Always >= 0.
+ 
+    mb_putc (mbc, stream)
+      outputs mbc on stream, a byte oriented FILE stream opened for output.
+ 
+    mb_setascii (&mbc, sc)
+      assigns the standard ASCII character sc to mbc.
+ 
+    mb_copy (&destmbc, &srcmbc)
+      copies srcmbc to destmbc.
+ 
+    Here are the function prototypes of the macros.
+ 
+    extern const char *	mb_ptr (const mbchar_t mbc);
+    extern size_t	mb_len (const mbchar_t mbc);
+    extern bool		mb_iseq (const mbchar_t mbc, char sc);
+    extern bool		mb_isnul (const mbchar_t mbc);
+    extern int		mb_cmp (const mbchar_t mbc1, const mbchar_t mbc2);
+    extern int		mb_casecmp (const mbchar_t mbc1, const mbchar_t mbc2);
+    extern bool		mb_equal (const mbchar_t mbc1, const mbchar_t mbc2);
+    extern bool		mb_caseequal (const mbchar_t mbc1, const mbchar_t mbc2);
+    extern bool		mb_isalnum (const mbchar_t mbc);
+    extern bool		mb_isalpha (const mbchar_t mbc);
+    extern bool		mb_isascii (const mbchar_t mbc);
+    extern bool		mb_isblank (const mbchar_t mbc);
+    extern bool		mb_iscntrl (const mbchar_t mbc);
+    extern bool		mb_isdigit (const mbchar_t mbc);
+    extern bool		mb_isgraph (const mbchar_t mbc);
+    extern bool		mb_islower (const mbchar_t mbc);
+    extern bool		mb_isprint (const mbchar_t mbc);
+    extern bool		mb_ispunct (const mbchar_t mbc);
+    extern bool		mb_isspace (const mbchar_t mbc);
+    extern bool		mb_isupper (const mbchar_t mbc);
+    extern bool		mb_isxdigit (const mbchar_t mbc);
+    extern int		mb_width (const mbchar_t mbc);
+    extern void		mb_putc (const mbchar_t mbc, FILE *stream);
+    extern void          mb_setascii (mbchar_t *new, char sc);
+    extern void		mb_copy (mbchar_t *new, const mbchar_t *old);
+  */
+ 
+ #ifndef _MBCHAR_H
+ #define _MBCHAR_H 1
+ 
+ #include <stdbool.h>
+ #include <string.h>
+ 
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+    <wchar.h>.  */
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ #include <wctype.h>
+ 
+ #define MBCHAR_BUF_SIZE 24
+ 
+ struct mbchar
+ {
+   const char *ptr;	/* pointer to current character */
+   size_t bytes;		/* number of bytes of current character, > 0 */
+   bool wc_valid;	/* true if wc is a valid wide character */
+   wchar_t wc;		/* if wc_valid: the current character */
+   char buf[MBCHAR_BUF_SIZE]; /* room for the bytes, used for file input only */
+ };
+ 
+ /* EOF (not a real character) is represented with bytes = 0 and
+    wc_valid = false.  */
+ 
+ typedef struct mbchar mbchar_t;
+ 
+ /* Access the current character.  */
+ #define mb_ptr(mbc) ((mbc).ptr)
+ #define mb_len(mbc) ((mbc).bytes)
+ 
+ /* Comparison of characters.  */
+ #define mb_iseq(mbc, sc) ((mbc).wc_valid && (mbc).wc == (sc))
+ #define mb_isnul(mbc) ((mbc).wc_valid && (mbc).wc == 0)
+ #define mb_cmp(mbc1, mbc2) \
+   ((mbc1).wc_valid							\
+    ? ((mbc2).wc_valid							\
+       ? (int) (mbc1).wc - (int) (mbc2).wc				\
+       : -1)								\
+    : ((mbc2).wc_valid							\
+       ? 1								\
+       : (mbc1).bytes == (mbc2).bytes					\
+         ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes)			\
+         : (mbc1).bytes < (mbc2).bytes					\
+           ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
+           : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
+ #define mb_casecmp(mbc1, mbc2) \
+   ((mbc1).wc_valid							\
+    ? ((mbc2).wc_valid							\
+       ? (int) towlower ((mbc1).wc) - (int) towlower ((mbc2).wc)		\
+       : -1)								\
+    : ((mbc2).wc_valid							\
+       ? 1								\
+       : (mbc1).bytes == (mbc2).bytes					\
+         ? memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes)			\
+         : (mbc1).bytes < (mbc2).bytes					\
+           ? (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) > 0 ? 1 : -1) \
+           : (memcmp ((mbc1).ptr, (mbc2).ptr, (mbc2).bytes) >= 0 ? 1 : -1)))
+ #define mb_equal(mbc1, mbc2) \
+   ((mbc1).wc_valid && (mbc2).wc_valid					\
+    ? (mbc1).wc == (mbc2).wc						\
+    : (mbc1).bytes == (mbc2).bytes					\
+      && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
+ #define mb_caseequal(mbc1, mbc2) \
+   ((mbc1).wc_valid && (mbc2).wc_valid					\
+    ? towlower ((mbc1).wc) == towlower ((mbc2).wc)			\
+    : (mbc1).bytes == (mbc2).bytes					\
+      && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
+ 
+ /* <ctype.h>, <wctype.h> classification.  */
+ #define mb_isascii(mbc) \
+   ((mbc).wc_valid && (mbc).wc >= 0 && (mbc).wc <= 127)
+ #define mb_isalnum(mbc) ((mbc).wc_valid && iswalnum ((mbc).wc))
+ #define mb_isalpha(mbc) ((mbc).wc_valid && iswalpha ((mbc).wc))
+ #define mb_isblank(mbc) ((mbc).wc_valid && iswblank ((mbc).wc))
+ #define mb_iscntrl(mbc) ((mbc).wc_valid && iswcntrl ((mbc).wc))
+ #define mb_isdigit(mbc) ((mbc).wc_valid && iswdigit ((mbc).wc))
+ #define mb_isgraph(mbc) ((mbc).wc_valid && iswgraph ((mbc).wc))
+ #define mb_islower(mbc) ((mbc).wc_valid && iswlower ((mbc).wc))
+ #define mb_isprint(mbc) ((mbc).wc_valid && iswprint ((mbc).wc))
+ #define mb_ispunct(mbc) ((mbc).wc_valid && iswpunct ((mbc).wc))
+ #define mb_isspace(mbc) ((mbc).wc_valid && iswspace ((mbc).wc))
+ #define mb_isupper(mbc) ((mbc).wc_valid && iswupper ((mbc).wc))
+ #define mb_isxdigit(mbc) ((mbc).wc_valid && iswxdigit ((mbc).wc))
+ 
+ /* Extra <wchar.h> function.  */
+ 
+ /* Unprintable characters appear as a small box of width 1.  */
+ #define MB_UNPRINTABLE_WIDTH 1
+ 
+ static inline int
+ mb_width_aux (wint_t wc)
+ {
+   int w = wcwidth (wc);
+   /* For unprintable characters, arbitrarily return 0 for control characters
+      and MB_UNPRINTABLE_WIDTH otherwise.  */
+   return (w >= 0 ? w : iswcntrl (wc) ? 0 : MB_UNPRINTABLE_WIDTH);
+ }
+ 
+ #define mb_width(mbc) \
+   ((mbc).wc_valid ? mb_width_aux ((mbc).wc) : MB_UNPRINTABLE_WIDTH)
+ 
+ /* Output.  */
+ #define mb_putc(mbc, stream)  fwrite ((mbc).ptr, 1, (mbc).bytes, (stream))
+ 
+ /* Assignment.  */
+ #define mb_setascii(mbc, sc) \
+   ((mbc)->ptr = (mbc)->buf, (mbc)->bytes = 1, (mbc)->wc_valid = 1, \
+    (mbc)->wc = (mbc)->buf[0] = (sc))
+ 
+ /* Copying a character.  */
+ static inline void
+ mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc)
+ {
+   if (old_mbc->ptr == &old_mbc->buf[0])
+     {
+       memcpy (&new_mbc->buf[0], &old_mbc->buf[0], old_mbc->bytes);
+       new_mbc->ptr = &new_mbc->buf[0];
+     }
+   else
+     new_mbc->ptr = old_mbc->ptr;
+   new_mbc->bytes = old_mbc->bytes;
+   if ((new_mbc->wc_valid = old_mbc->wc_valid))
+     new_mbc->wc = old_mbc->wc;
+ }
+ 
+ 
+ /* is_basic(c) tests whether the single-byte character c is in the
+    ISO C "basic character set".
+    This is a convenience function, and is in this file only to share code
+    between mbiter_multi.h and mbfile_multi.h.  */
+ #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+     && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+     && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+     && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+     && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+     && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+     && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+     && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+     && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+     && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+     && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+     && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+     && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+     && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+     && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+     && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+     && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+     && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+     && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+     && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+     && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+     && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+     && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
+ /* The character set is ISO-646, not EBCDIC. */
+ # define IS_BASIC_ASCII 1
+ 
+ extern const unsigned int is_basic_table[];
+ 
+ static inline bool
+ is_basic (char c)
+ {
+   return (is_basic_table [(unsigned char) c >> 5] >> ((unsigned char) c & 31))
+ 	 & 1;
+ }
+ 
+ #else
+ 
+ static inline bool
+ is_basic (char c)
+ {
+   switch (c)
+     {
+     case '\t': case '\v': case '\f':
+     case ' ': case '!': case '"': case '#': case '%':
+     case '&': case '\'': case '(': case ')': case '*':
+     case '+': case ',': case '-': case '.': case '/':
+     case '0': case '1': case '2': case '3': case '4':
+     case '5': case '6': case '7': case '8': case '9':
+     case ':': case ';': case '<': case '=': case '>':
+     case '?':
+     case 'A': case 'B': case 'C': case 'D': case 'E':
+     case 'F': case 'G': case 'H': case 'I': case 'J':
+     case 'K': case 'L': case 'M': case 'N': case 'O':
+     case 'P': case 'Q': case 'R': case 'S': case 'T':
+     case 'U': case 'V': case 'W': case 'X': case 'Y':
+     case 'Z':
+     case '[': case '\\': case ']': case '^': case '_':
+     case 'a': case 'b': case 'c': case 'd': case 'e':
+     case 'f': case 'g': case 'h': case 'i': case 'j':
+     case 'k': case 'l': case 'm': case 'n': case 'o':
+     case 'p': case 'q': case 'r': case 's': case 't':
+     case 'u': case 'v': case 'w': case 'x': case 'y':
+     case 'z': case '{': case '|': case '}': case '~':
+       return 1;
+     default:
+       return 0;
+     }
+ }
+ 
+ #endif
+ 
+ #endif /* _MBCHAR_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/mbiter.h texinfo-4.13/gnulib/lib/mbiter.h
*** texinfo-4.12/gnulib/lib/mbiter.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbiter.h	Mon May 12 05:38:21 2008
***************
*** 0 ****
--- 1,215 ----
+ /* Iterating through multibyte strings: macros for multi-byte encodings.
+    Copyright (C) 2001, 2005, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+ 
+ /* The macros in this file implement forward iteration through a
+    multi-byte string.
+ 
+    With these macros, an iteration loop that looks like
+ 
+       char *iter;
+       for (iter = buf; iter < buf + buflen; iter++)
+         {
+           do_something (*iter);
+         }
+ 
+    becomes
+ 
+       mbi_iterator_t iter;
+       for (mbi_init (iter, buf, buflen); mbi_avail (iter); mbi_advance (iter))
+         {
+           do_something (mbi_cur_ptr (iter), mb_len (mbi_cur (iter)));
+         }
+ 
+    The benefit of these macros over plain use of mbrtowc is:
+    - Handling of invalid multibyte sequences is possible without
+      making the code more complicated, while still preserving the
+      invalid multibyte sequences.
+ 
+    mbi_iterator_t
+      is a type usable for variable declarations.
+ 
+    mbi_init (iter, startptr, length)
+      initializes the iterator, starting at startptr and crossing length bytes.
+ 
+    mbi_avail (iter)
+      returns true if there are more multibyte chracters available before
+      the end of string is reached. In this case, mbi_cur (iter) is
+      initialized to the next multibyte chracter.
+ 
+    mbi_advance (iter)
+      advances the iterator by one multibyte character.
+ 
+    mbi_cur (iter)
+      returns the current multibyte character, of type mbchar_t.  All the
+      macros defined in mbchar.h can be used on it.
+ 
+    mbi_cur_ptr (iter)
+      return a pointer to the beginning of the current multibyte character.
+ 
+    mbi_reloc (iter, ptrdiff)
+      relocates iterator when the string is moved by ptrdiff bytes.
+ 
+    mbi_copy (&destiter, &srciter)
+      copies srciter to destiter.
+ 
+    Here are the function prototypes of the macros.
+ 
+    extern void		mbi_init (mbi_iterator_t iter,
+ 				  const char *startptr, size_t length);
+    extern bool		mbi_avail (mbi_iterator_t iter);
+    extern void		mbi_advance (mbi_iterator_t iter);
+    extern mbchar_t	mbi_cur (mbi_iterator_t iter);
+    extern const char *	mbi_cur_ptr (mbi_iterator_t iter);
+    extern void		mbi_reloc (mbi_iterator_t iter, ptrdiff_t ptrdiff);
+    extern void		mbi_copy (mbi_iterator_t *new, const mbi_iterator_t *old);
+  */
+ 
+ #ifndef _MBITER_H
+ #define _MBITER_H 1
+ 
+ #include <assert.h>
+ #include <stdbool.h>
+ #include <stddef.h>
+ #include <string.h>
+ 
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+    <wchar.h>.  */
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ 
+ #include "mbchar.h"
+ 
+ struct mbiter_multi
+ {
+   const char *limit;	/* pointer to end of string */
+   bool in_shift;	/* true if next byte may not be interpreted as ASCII */
+   mbstate_t state;	/* if in_shift: current shift state */
+   bool next_done;	/* true if mbi_avail has already filled the following */
+   struct mbchar cur;	/* the current character:
+ 	const char *cur.ptr		pointer to current character
+ 	The following are only valid after mbi_avail.
+ 	size_t cur.bytes		number of bytes of current character
+ 	bool cur.wc_valid		true if wc is a valid wide character
+ 	wchar_t cur.wc			if wc_valid: the current character
+ 	*/
+ };
+ 
+ static inline void
+ mbiter_multi_next (struct mbiter_multi *iter)
+ {
+   if (iter->next_done)
+     return;
+   if (iter->in_shift)
+     goto with_shift;
+   /* Handle most ASCII characters quickly, without calling mbrtowc().  */
+   if (is_basic (*iter->cur.ptr))
+     {
+       /* These characters are part of the basic character set.  ISO C 99
+ 	 guarantees that their wide character code is identical to their
+ 	 char code.  */
+       iter->cur.bytes = 1;
+       iter->cur.wc = *iter->cur.ptr;
+       iter->cur.wc_valid = true;
+     }
+   else
+     {
+       assert (mbsinit (&iter->state));
+       iter->in_shift = true;
+     with_shift:
+       iter->cur.bytes = mbrtowc (&iter->cur.wc, iter->cur.ptr,
+ 				 iter->limit - iter->cur.ptr, &iter->state);
+       if (iter->cur.bytes == (size_t) -1)
+ 	{
+ 	  /* An invalid multibyte sequence was encountered.  */
+ 	  iter->cur.bytes = 1;
+ 	  iter->cur.wc_valid = false;
+ 	  /* Whether to set iter->in_shift = false and reset iter->state
+ 	     or not is not very important; the string is bogus anyway.  */
+ 	}
+       else if (iter->cur.bytes == (size_t) -2)
+ 	{
+ 	  /* An incomplete multibyte character at the end.  */
+ 	  iter->cur.bytes = iter->limit - iter->cur.ptr;
+ 	  iter->cur.wc_valid = false;
+ 	  /* Whether to set iter->in_shift = false and reset iter->state
+ 	     or not is not important; the string end is reached anyway.  */
+ 	}
+       else
+ 	{
+ 	  if (iter->cur.bytes == 0)
+ 	    {
+ 	      /* A null wide character was encountered.  */
+ 	      iter->cur.bytes = 1;
+ 	      assert (*iter->cur.ptr == '\0');
+ 	      assert (iter->cur.wc == 0);
+ 	    }
+ 	  iter->cur.wc_valid = true;
+ 
+ 	  /* When in the initial state, we can go back treating ASCII
+ 	     characters more quickly.  */
+ 	  if (mbsinit (&iter->state))
+ 	    iter->in_shift = false;
+ 	}
+     }
+   iter->next_done = true;
+ }
+ 
+ static inline void
+ mbiter_multi_reloc (struct mbiter_multi *iter, ptrdiff_t ptrdiff)
+ {
+   iter->cur.ptr += ptrdiff;
+   iter->limit += ptrdiff;
+ }
+ 
+ static inline void
+ mbiter_multi_copy (struct mbiter_multi *new_iter, const struct mbiter_multi *old_iter)
+ {
+   new_iter->limit = old_iter->limit;
+   if ((new_iter->in_shift = old_iter->in_shift))
+     memcpy (&new_iter->state, &old_iter->state, sizeof (mbstate_t));
+   else
+     memset (&new_iter->state, 0, sizeof (mbstate_t));
+   new_iter->next_done = old_iter->next_done;
+   mb_copy (&new_iter->cur, &old_iter->cur);
+ }
+ 
+ /* Iteration macros.  */
+ typedef struct mbiter_multi mbi_iterator_t;
+ #define mbi_init(iter, startptr, length) \
+   ((iter).cur.ptr = (startptr), (iter).limit = (iter).cur.ptr + (length), \
+    (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \
+    (iter).next_done = false)
+ #define mbi_avail(iter) \
+   ((iter).cur.ptr < (iter).limit && (mbiter_multi_next (&(iter)), true))
+ #define mbi_advance(iter) \
+   ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false)
+ 
+ /* Access to the current character.  */
+ #define mbi_cur(iter) (iter).cur
+ #define mbi_cur_ptr(iter) (iter).cur.ptr
+ 
+ /* Relocation.  */
+ #define mbi_reloc(iter, ptrdiff) mbiter_multi_reloc (&iter, ptrdiff)
+ 
+ /* Copying an iterator.  */
+ #define mbi_copy mbiter_multi_copy
+ 
+ #endif /* _MBITER_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/mbscasecmp.c texinfo-4.13/gnulib/lib/mbscasecmp.c
*** texinfo-4.12/gnulib/lib/mbscasecmp.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbscasecmp.c	Tue Dec 25 16:53:46 2007
***************
*** 0 ****
--- 1,102 ----
+ /* Case-insensitive string comparison function.
+    Copyright (C) 1998-1999, 2005-2007 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2005,
+    based on earlier glibc code.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include <string.h>
+ 
+ #include <ctype.h>
+ #include <limits.h>
+ 
+ #if HAVE_MBRTOWC
+ # include "mbuiter.h"
+ #endif
+ 
+ #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+ 
+ /* Compare the character strings S1 and S2, ignoring case, returning less than,
+    equal to or greater than zero if S1 is lexicographically less than, equal to
+    or greater than S2.
+    Note: This function may, in multibyte locales, return 0 for strings of
+    different lengths!  */
+ int
+ mbscasecmp (const char *s1, const char *s2)
+ {
+   if (s1 == s2)
+     return 0;
+ 
+   /* Be careful not to look at the entire extent of s1 or s2 until needed.
+      This is useful because when two strings differ, the difference is
+      most often already in the very few first characters.  */
+ #if HAVE_MBRTOWC
+   if (MB_CUR_MAX > 1)
+     {
+       mbui_iterator_t iter1;
+       mbui_iterator_t iter2;
+ 
+       mbui_init (iter1, s1);
+       mbui_init (iter2, s2);
+ 
+       while (mbui_avail (iter1) && mbui_avail (iter2))
+ 	{
+ 	  int cmp = mb_casecmp (mbui_cur (iter1), mbui_cur (iter2));
+ 
+ 	  if (cmp != 0)
+ 	    return cmp;
+ 
+ 	  mbui_advance (iter1);
+ 	  mbui_advance (iter2);
+ 	}
+       if (mbui_avail (iter1))
+ 	/* s2 terminated before s1.  */
+ 	return 1;
+       if (mbui_avail (iter2))
+ 	/* s1 terminated before s2.  */
+ 	return -1;
+       return 0;
+     }
+   else
+ #endif
+     {
+       const unsigned char *p1 = (const unsigned char *) s1;
+       const unsigned char *p2 = (const unsigned char *) s2;
+       unsigned char c1, c2;
+ 
+       do
+ 	{
+ 	  c1 = TOLOWER (*p1);
+ 	  c2 = TOLOWER (*p2);
+ 
+ 	  if (c1 == '\0')
+ 	    break;
+ 
+ 	  ++p1;
+ 	  ++p2;
+ 	}
+       while (c1 == c2);
+ 
+       if (UCHAR_MAX <= INT_MAX)
+ 	return c1 - c2;
+       else
+ 	/* On machines where 'char' and 'int' are types of the same size, the
+ 	   difference of two 'unsigned char' values - including the sign bit -
+ 	   doesn't fit in an 'int'.  */
+ 	return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+     }
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/mbschr.c texinfo-4.13/gnulib/lib/mbschr.c
*** texinfo-4.12/gnulib/lib/mbschr.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbschr.c	Mon May 12 05:38:21 2008
***************
*** 0 ****
--- 1,56 ----
+ /* Searching a string for a character.
+    Copyright (C) 2007 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2007.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include <string.h>
+ 
+ #if HAVE_MBRTOWC
+ # include "mbuiter.h"
+ #endif
+ 
+ /* Locate the first single-byte character C in the character string STRING,
+    and return a pointer to it.  Return NULL if C is not found in STRING.  */
+ char *
+ mbschr (const char *string, int c)
+ {
+ #if HAVE_MBRTOWC
+   if (MB_CUR_MAX > 1
+       /* Optimization: We know that ASCII characters < 0x30 don't occur as
+ 	 part of multibyte characters longer than 1 byte.  Hence, if c < 0x30,
+ 	 the faster unibyte loop can be used.  */
+       && (unsigned char) c >= 0x30)
+     {
+       mbui_iterator_t iter;
+ 
+       for (mbui_init (iter, string);; mbui_advance (iter))
+ 	{
+ 	  if (!mbui_avail (iter))
+ 	    goto notfound;
+ 	  if (mb_len (mbui_cur (iter)) == 1
+ 	      && (unsigned char) * mbui_cur_ptr (iter) == (unsigned char) c)
+ 	    break;
+ 	}
+       return (char *) mbui_cur_ptr (iter);
+      notfound:
+       return NULL;
+     }
+   else
+ #endif
+     return strchr (string, c);
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/mbslen.c texinfo-4.13/gnulib/lib/mbslen.c
*** texinfo-4.12/gnulib/lib/mbslen.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbslen.c	Mon May 12 05:38:21 2008
***************
*** 0 ****
--- 1,48 ----
+ /* Counting the multibyte characters in a string.
+    Copyright (C) 2007 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2007.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include <string.h>
+ 
+ #include <stdlib.h>
+ 
+ #if HAVE_MBRTOWC
+ # include "mbuiter.h"
+ #endif
+ 
+ /* Return the number of multibyte characters in the character string STRING.  */
+ size_t
+ mbslen (const char *string)
+ {
+ #if HAVE_MBRTOWC
+   if (MB_CUR_MAX > 1)
+     {
+       size_t count;
+       mbui_iterator_t iter;
+ 
+       count = 0;
+       for (mbui_init (iter, string); mbui_avail (iter); mbui_advance (iter))
+ 	count++;
+ 
+       return count;
+     }
+   else
+ #endif
+     return strlen (string);
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/mbsncasecmp.c texinfo-4.13/gnulib/lib/mbsncasecmp.c
*** texinfo-4.12/gnulib/lib/mbsncasecmp.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbsncasecmp.c	Tue Dec 25 16:53:46 2007
***************
*** 0 ****
--- 1,103 ----
+ /* Case-insensitive string comparison function.
+    Copyright (C) 1998-1999, 2005-2007 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2005,
+    based on earlier glibc code.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include <string.h>
+ 
+ #include <ctype.h>
+ #include <limits.h>
+ 
+ #if HAVE_MBRTOWC
+ # include "mbuiter.h"
+ #endif
+ 
+ #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+ 
+ /* Compare the initial segment of the character string S1 consisting of at most
+    N characters with the initial segment of the character string S2 consisting
+    of at most N characters, ignoring case, returning less than, equal to or
+    greater than zero if the initial segment of S1 is lexicographically less
+    than, equal to or greater than the initial segment of S2.
+    Note: This function may, in multibyte locales, return 0 for initial segments
+    of different lengths!  */
+ int
+ mbsncasecmp (const char *s1, const char *s2, size_t n)
+ {
+   if (s1 == s2 || n == 0)
+     return 0;
+ 
+   /* Be careful not to look at the entire extent of s1 or s2 until needed.
+      This is useful because when two strings differ, the difference is
+      most often already in the very few first characters.  */
+ #if HAVE_MBRTOWC
+   if (MB_CUR_MAX > 1)
+     {
+       mbui_iterator_t iter1;
+       mbui_iterator_t iter2;
+ 
+       mbui_init (iter1, s1);
+       mbui_init (iter2, s2);
+ 
+       while (mbui_avail (iter1) && mbui_avail (iter2))
+ 	{
+ 	  int cmp = mb_casecmp (mbui_cur (iter1), mbui_cur (iter2));
+ 
+ 	  if (cmp != 0)
+ 	    return cmp;
+ 
+ 	  if (--n == 0)
+ 	    return 0;
+ 
+ 	  mbui_advance (iter1);
+ 	  mbui_advance (iter2);
+ 	}
+       if (mbui_avail (iter1))
+ 	/* s2 terminated before s1 and n.  */
+ 	return 1;
+       if (mbui_avail (iter2))
+ 	/* s1 terminated before s2 and n.  */
+ 	return -1;
+       return 0;
+     }
+   else
+ #endif
+     {
+       const unsigned char *p1 = (const unsigned char *) s1;
+       const unsigned char *p2 = (const unsigned char *) s2;
+       unsigned char c1, c2;
+ 
+       for (; ; p1++, p2++)
+ 	{
+ 	  c1 = TOLOWER (*p1);
+ 	  c2 = TOLOWER (*p2);
+ 
+ 	  if (--n == 0 || c1 == '\0' || c1 != c2)
+ 	    break;
+ 	}
+ 
+       if (UCHAR_MAX <= INT_MAX)
+ 	return c1 - c2;
+       else
+ 	/* On machines where 'char' and 'int' are types of the same size, the
+ 	   difference of two 'unsigned char' values - including the sign bit -
+ 	   doesn't fit in an 'int'.  */
+ 	return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0);
+     }
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/mbsstr.c texinfo-4.13/gnulib/lib/mbsstr.c
*** texinfo-4.12/gnulib/lib/mbsstr.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbsstr.c	Mon May 12 05:38:21 2008
***************
*** 0 ****
--- 1,385 ----
+ /* Searching in a string.
+    Copyright (C) 2005-2008 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2005.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include <string.h>
+ 
+ #include <stdbool.h>
+ #include <stddef.h>  /* for NULL, in case a nonstandard string.h lacks it */
+ 
+ #include "malloca.h"
+ #if HAVE_MBRTOWC
+ # include "mbuiter.h"
+ #endif
+ 
+ /* Knuth-Morris-Pratt algorithm.  */
+ #define CANON_ELEMENT(c) c
+ #include "str-kmp.h"
+ 
+ #if HAVE_MBRTOWC
+ /* Knuth-Morris-Pratt algorithm.
+    See http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm
+    Return a boolean indicating success:
+    Return true and set *RESULTP if the search was completed.
+    Return false if it was aborted because not enough memory was available.  */
+ static bool
+ knuth_morris_pratt_multibyte (const char *haystack, const char *needle,
+ 			      const char **resultp)
+ {
+   size_t m = mbslen (needle);
+   mbchar_t *needle_mbchars;
+   size_t *table;
+ 
+   /* Allocate room for needle_mbchars and the table.  */
+   char *memory = (char *) nmalloca (m, sizeof (mbchar_t) + sizeof (size_t));
+   if (memory == NULL)
+     return false;
+   needle_mbchars = (mbchar_t *) memory;
+   table = (size_t *) (memory + m * sizeof (mbchar_t));
+ 
+   /* Fill needle_mbchars.  */
+   {
+     mbui_iterator_t iter;
+     size_t j;
+ 
+     j = 0;
+     for (mbui_init (iter, needle); mbui_avail (iter); mbui_advance (iter), j++)
+       mb_copy (&needle_mbchars[j], &mbui_cur (iter));
+   }
+ 
+   /* Fill the table.
+      For 0 < i < m:
+        0 < table[i] <= i is defined such that
+        forall 0 < x < table[i]: needle[x..i-1] != needle[0..i-1-x],
+        and table[i] is as large as possible with this property.
+      This implies:
+      1) For 0 < i < m:
+           If table[i] < i,
+           needle[table[i]..i-1] = needle[0..i-1-table[i]].
+      2) For 0 < i < m:
+           rhaystack[0..i-1] == needle[0..i-1]
+           and exists h, i <= h < m: rhaystack[h] != needle[h]
+           implies
+           forall 0 <= x < table[i]: rhaystack[x..x+m-1] != needle[0..m-1].
+      table[0] remains uninitialized.  */
+   {
+     size_t i, j;
+ 
+     /* i = 1: Nothing to verify for x = 0.  */
+     table[1] = 1;
+     j = 0;
+ 
+     for (i = 2; i < m; i++)
+       {
+ 	/* Here: j = i-1 - table[i-1].
+ 	   The inequality needle[x..i-1] != needle[0..i-1-x] is known to hold
+ 	   for x < table[i-1], by induction.
+ 	   Furthermore, if j>0: needle[i-1-j..i-2] = needle[0..j-1].  */
+ 	mbchar_t *b = &needle_mbchars[i - 1];
+ 
+ 	for (;;)
+ 	  {
+ 	    /* Invariants: The inequality needle[x..i-1] != needle[0..i-1-x]
+ 	       is known to hold for x < i-1-j.
+ 	       Furthermore, if j>0: needle[i-1-j..i-2] = needle[0..j-1].  */
+ 	    if (mb_equal (*b, needle_mbchars[j]))
+ 	      {
+ 		/* Set table[i] := i-1-j.  */
+ 		table[i] = i - ++j;
+ 		break;
+ 	      }
+ 	    /* The inequality needle[x..i-1] != needle[0..i-1-x] also holds
+ 	       for x = i-1-j, because
+ 	         needle[i-1] != needle[j] = needle[i-1-x].  */
+ 	    if (j == 0)
+ 	      {
+ 		/* The inequality holds for all possible x.  */
+ 		table[i] = i;
+ 		break;
+ 	      }
+ 	    /* The inequality needle[x..i-1] != needle[0..i-1-x] also holds
+ 	       for i-1-j < x < i-1-j+table[j], because for these x:
+ 		 needle[x..i-2]
+ 		 = needle[x-(i-1-j)..j-1]
+ 		 != needle[0..j-1-(x-(i-1-j))]  (by definition of table[j])
+ 		    = needle[0..i-2-x],
+ 	       hence needle[x..i-1] != needle[0..i-1-x].
+ 	       Furthermore
+ 		 needle[i-1-j+table[j]..i-2]
+ 		 = needle[table[j]..j-1]
+ 		 = needle[0..j-1-table[j]]  (by definition of table[j]).  */
+ 	    j = j - table[j];
+ 	  }
+ 	/* Here: j = i - table[i].  */
+       }
+   }
+ 
+   /* Search, using the table to accelerate the processing.  */
+   {
+     size_t j;
+     mbui_iterator_t rhaystack;
+     mbui_iterator_t phaystack;
+ 
+     *resultp = NULL;
+     j = 0;
+     mbui_init (rhaystack, haystack);
+     mbui_init (phaystack, haystack);
+     /* Invariant: phaystack = rhaystack + j.  */
+     while (mbui_avail (phaystack))
+       if (mb_equal (needle_mbchars[j], mbui_cur (phaystack)))
+ 	{
+ 	  j++;
+ 	  mbui_advance (phaystack);
+ 	  if (j == m)
+ 	    {
+ 	      /* The entire needle has been found.  */
+ 	      *resultp = mbui_cur_ptr (rhaystack);
+ 	      break;
+ 	    }
+ 	}
+       else if (j > 0)
+ 	{
+ 	  /* Found a match of needle[0..j-1], mismatch at needle[j].  */
+ 	  size_t count = table[j];
+ 	  j -= count;
+ 	  for (; count > 0; count--)
+ 	    {
+ 	      if (!mbui_avail (rhaystack))
+ 		abort ();
+ 	      mbui_advance (rhaystack);
+ 	    }
+ 	}
+       else
+ 	{
+ 	  /* Found a mismatch at needle[0] already.  */
+ 	  if (!mbui_avail (rhaystack))
+ 	    abort ();
+ 	  mbui_advance (rhaystack);
+ 	  mbui_advance (phaystack);
+ 	}
+   }
+ 
+   freea (memory);
+   return true;
+ }
+ #endif
+ 
+ /* Find the first occurrence of the character string NEEDLE in the character
+    string HAYSTACK.  Return NULL if NEEDLE is not found in HAYSTACK.  */
+ char *
+ mbsstr (const char *haystack, const char *needle)
+ {
+   /* Be careful not to look at the entire extent of haystack or needle
+      until needed.  This is useful because of these two cases:
+        - haystack may be very long, and a match of needle found early,
+        - needle may be very long, and not even a short initial segment of
+          needle may be found in haystack.  */
+ #if HAVE_MBRTOWC
+   if (MB_CUR_MAX > 1)
+     {
+       mbui_iterator_t iter_needle;
+ 
+       mbui_init (iter_needle, needle);
+       if (mbui_avail (iter_needle))
+ 	{
+ 	  /* Minimizing the worst-case complexity:
+ 	     Let n = mbslen(haystack), m = mbslen(needle).
+ 	     The naÃ¯ve algorithm is O(n*m) worst-case.
+ 	     The Knuth-Morris-Pratt algorithm is O(n) worst-case but it needs a
+ 	     memory allocation.
+ 	     To achieve linear complexity and yet amortize the cost of the
+ 	     memory allocation, we activate the Knuth-Morris-Pratt algorithm
+ 	     only once the naÃ¯ve algorithm has already run for some time; more
+ 	     precisely, when
+ 	       - the outer loop count is >= 10,
+ 	       - the average number of comparisons per outer loop is >= 5,
+ 	       - the total number of comparisons is >= m.
+ 	     But we try it only once.  If the memory allocation attempt failed,
+ 	     we don't retry it.  */
+ 	  bool try_kmp = true;
+ 	  size_t outer_loop_count = 0;
+ 	  size_t comparison_count = 0;
+ 	  size_t last_ccount = 0;		   /* last comparison count */
+ 	  mbui_iterator_t iter_needle_last_ccount; /* = needle + last_ccount */
+ 
+ 	  mbui_iterator_t iter_haystack;
+ 
+ 	  mbui_init (iter_needle_last_ccount, needle);
+ 	  mbui_init (iter_haystack, haystack);
+ 	  for (;; mbui_advance (iter_haystack))
+ 	    {
+ 	      if (!mbui_avail (iter_haystack))
+ 		/* No match.  */
+ 		return NULL;
+ 
+ 	      /* See whether it's advisable to use an asymptotically faster
+ 		 algorithm.  */
+ 	      if (try_kmp
+ 		  && outer_loop_count >= 10
+ 		  && comparison_count >= 5 * outer_loop_count)
+ 		{
+ 		  /* See if needle + comparison_count now reaches the end of
+ 		     needle.  */
+ 		  size_t count = comparison_count - last_ccount;
+ 		  for (;
+ 		       count > 0 && mbui_avail (iter_needle_last_ccount);
+ 		       count--)
+ 		    mbui_advance (iter_needle_last_ccount);
+ 		  last_ccount = comparison_count;
+ 		  if (!mbui_avail (iter_needle_last_ccount))
+ 		    {
+ 		      /* Try the Knuth-Morris-Pratt algorithm.  */
+ 		      const char *result;
+ 		      bool success =
+ 			knuth_morris_pratt_multibyte (haystack, needle,
+ 						      &result);
+ 		      if (success)
+ 			return (char *) result;
+ 		      try_kmp = false;
+ 		    }
+ 		}
+ 
+ 	      outer_loop_count++;
+ 	      comparison_count++;
+ 	      if (mb_equal (mbui_cur (iter_haystack), mbui_cur (iter_needle)))
+ 		/* The first character matches.  */
+ 		{
+ 		  mbui_iterator_t rhaystack;
+ 		  mbui_iterator_t rneedle;
+ 
+ 		  memcpy (&rhaystack, &iter_haystack, sizeof (mbui_iterator_t));
+ 		  mbui_advance (rhaystack);
+ 
+ 		  mbui_init (rneedle, needle);
+ 		  if (!mbui_avail (rneedle))
+ 		    abort ();
+ 		  mbui_advance (rneedle);
+ 
+ 		  for (;; mbui_advance (rhaystack), mbui_advance (rneedle))
+ 		    {
+ 		      if (!mbui_avail (rneedle))
+ 			/* Found a match.  */
+ 			return (char *) mbui_cur_ptr (iter_haystack);
+ 		      if (!mbui_avail (rhaystack))
+ 			/* No match.  */
+ 			return NULL;
+ 		      comparison_count++;
+ 		      if (!mb_equal (mbui_cur (rhaystack), mbui_cur (rneedle)))
+ 			/* Nothing in this round.  */
+ 			break;
+ 		    }
+ 		}
+ 	    }
+ 	}
+       else
+ 	return (char *) haystack;
+     }
+   else
+ #endif
+     {
+       if (*needle != '\0')
+ 	{
+ 	  /* Minimizing the worst-case complexity:
+ 	     Let n = strlen(haystack), m = strlen(needle).
+ 	     The naÃ¯ve algorithm is O(n*m) worst-case.
+ 	     The Knuth-Morris-Pratt algorithm is O(n) worst-case but it needs a
+ 	     memory allocation.
+ 	     To achieve linear complexity and yet amortize the cost of the
+ 	     memory allocation, we activate the Knuth-Morris-Pratt algorithm
+ 	     only once the naÃ¯ve algorithm has already run for some time; more
+ 	     precisely, when
+ 	       - the outer loop count is >= 10,
+ 	       - the average number of comparisons per outer loop is >= 5,
+ 	       - the total number of comparisons is >= m.
+ 	     But we try it only once.  If the memory allocation attempt failed,
+ 	     we don't retry it.  */
+ 	  bool try_kmp = true;
+ 	  size_t outer_loop_count = 0;
+ 	  size_t comparison_count = 0;
+ 	  size_t last_ccount = 0;		   /* last comparison count */
+ 	  const char *needle_last_ccount = needle; /* = needle + last_ccount */
+ 
+ 	  /* Speed up the following searches of needle by caching its first
+ 	     character.  */
+ 	  char b = *needle++;
+ 
+ 	  for (;; haystack++)
+ 	    {
+ 	      if (*haystack == '\0')
+ 		/* No match.  */
+ 		return NULL;
+ 
+ 	      /* See whether it's advisable to use an asymptotically faster
+ 		 algorithm.  */
+ 	      if (try_kmp
+ 		  && outer_loop_count >= 10
+ 		  && comparison_count >= 5 * outer_loop_count)
+ 		{
+ 		  /* See if needle + comparison_count now reaches the end of
+ 		     needle.  */
+ 		  if (needle_last_ccount != NULL)
+ 		    {
+ 		      needle_last_ccount +=
+ 			strnlen (needle_last_ccount,
+ 				 comparison_count - last_ccount);
+ 		      if (*needle_last_ccount == '\0')
+ 			needle_last_ccount = NULL;
+ 		      last_ccount = comparison_count;
+ 		    }
+ 		  if (needle_last_ccount == NULL)
+ 		    {
+ 		      /* Try the Knuth-Morris-Pratt algorithm.  */
+ 		      const char *result;
+ 		      bool success =
+ 			knuth_morris_pratt_unibyte (haystack, needle - 1,
+ 						    &result);
+ 		      if (success)
+ 			return (char *) result;
+ 		      try_kmp = false;
+ 		    }
+ 		}
+ 
+ 	      outer_loop_count++;
+ 	      comparison_count++;
+ 	      if (*haystack == b)
+ 		/* The first character matches.  */
+ 		{
+ 		  const char *rhaystack = haystack + 1;
+ 		  const char *rneedle = needle;
+ 
+ 		  for (;; rhaystack++, rneedle++)
+ 		    {
+ 		      if (*rneedle == '\0')
+ 			/* Found a match.  */
+ 			return (char *) haystack;
+ 		      if (*rhaystack == '\0')
+ 			/* No match.  */
+ 			return NULL;
+ 		      comparison_count++;
+ 		      if (*rhaystack != *rneedle)
+ 			/* Nothing in this round.  */
+ 			break;
+ 		    }
+ 		}
+ 	    }
+ 	}
+       else
+ 	return (char *) haystack;
+     }
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/mbswidth.c texinfo-4.13/gnulib/lib/mbswidth.c
*** texinfo-4.12/gnulib/lib/mbswidth.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbswidth.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,175 ----
+ /* Determine the number of screen columns needed for a string.
+    Copyright (C) 2000-2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <haible@clisp.cons.org>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include "mbswidth.h"
+ 
+ /* Get MB_CUR_MAX.  */
+ #include <stdlib.h>
+ 
+ #include <string.h>
+ 
+ /* Get isprint().  */
+ #include <ctype.h>
+ 
+ /* Get mbstate_t, mbrtowc(), mbsinit(), wcwidth().  */
+ #include <wchar.h>
+ 
+ /* Get iswcntrl().  */
+ #include <wctype.h>
+ 
+ #ifndef mbsinit
+ # if !HAVE_MBSINIT
+ #  define mbsinit(ps) 1
+ # endif
+ #endif
+ 
+ /* Returns the number of columns needed to represent the multibyte
+    character string pointed to by STRING.  If a non-printable character
+    occurs, and MBSW_REJECT_UNPRINTABLE is specified, -1 is returned.
+    With flags = MBSW_REJECT_INVALID | MBSW_REJECT_UNPRINTABLE, this is
+    the multibyte analogue of the wcswidth function.
+    If STRING is not of length < INT_MAX / 2, integer overflow can occur.  */
+ int
+ mbswidth (const char *string, int flags)
+ {
+   return mbsnwidth (string, strlen (string), flags);
+ }
+ 
+ /* Returns the number of columns needed to represent the multibyte
+    character string pointed to by STRING of length NBYTES.  If a
+    non-printable character occurs, and MBSW_REJECT_UNPRINTABLE is
+    specified, -1 is returned.
+    If NBYTES is not < INT_MAX / 2, integer overflow can occur.  */
+ int
+ mbsnwidth (const char *string, size_t nbytes, int flags)
+ {
+   const char *p = string;
+   const char *plimit = p + nbytes;
+   int width;
+ 
+   width = 0;
+ #if HAVE_MBRTOWC
+   if (MB_CUR_MAX > 1)
+     {
+       while (p < plimit)
+ 	switch (*p)
+ 	  {
+ 	    case ' ': case '!': case '"': case '#': case '%':
+ 	    case '&': case '\'': case '(': case ')': case '*':
+ 	    case '+': case ',': case '-': case '.': case '/':
+ 	    case '0': case '1': case '2': case '3': case '4':
+ 	    case '5': case '6': case '7': case '8': case '9':
+ 	    case ':': case ';': case '<': case '=': case '>':
+ 	    case '?':
+ 	    case 'A': case 'B': case 'C': case 'D': case 'E':
+ 	    case 'F': case 'G': case 'H': case 'I': case 'J':
+ 	    case 'K': case 'L': case 'M': case 'N': case 'O':
+ 	    case 'P': case 'Q': case 'R': case 'S': case 'T':
+ 	    case 'U': case 'V': case 'W': case 'X': case 'Y':
+ 	    case 'Z':
+ 	    case '[': case '\\': case ']': case '^': case '_':
+ 	    case 'a': case 'b': case 'c': case 'd': case 'e':
+ 	    case 'f': case 'g': case 'h': case 'i': case 'j':
+ 	    case 'k': case 'l': case 'm': case 'n': case 'o':
+ 	    case 'p': case 'q': case 'r': case 's': case 't':
+ 	    case 'u': case 'v': case 'w': case 'x': case 'y':
+ 	    case 'z': case '{': case '|': case '}': case '~':
+ 	      /* These characters are printable ASCII characters.  */
+ 	      p++;
+ 	      width++;
+ 	      break;
+ 	    default:
+ 	      /* If we have a multibyte sequence, scan it up to its end.  */
+ 	      {
+ 		mbstate_t mbstate;
+ 		memset (&mbstate, 0, sizeof mbstate);
+ 		do
+ 		  {
+ 		    wchar_t wc;
+ 		    size_t bytes;
+ 		    int w;
+ 
+ 		    bytes = mbrtowc (&wc, p, plimit - p, &mbstate);
+ 
+ 		    if (bytes == (size_t) -1)
+ 		      /* An invalid multibyte sequence was encountered.  */
+ 		      {
+ 			if (!(flags & MBSW_REJECT_INVALID))
+ 			  {
+ 			    p++;
+ 			    width++;
+ 			    break;
+ 			  }
+ 			else
+ 			  return -1;
+ 		      }
+ 
+ 		    if (bytes == (size_t) -2)
+ 		      /* An incomplete multibyte character at the end.  */
+ 		      {
+ 			if (!(flags & MBSW_REJECT_INVALID))
+ 			  {
+ 			    p = plimit;
+ 			    width++;
+ 			    break;
+ 			  }
+ 			else
+ 			  return -1;
+ 		      }
+ 
+ 		    if (bytes == 0)
+ 		      /* A null wide character was encountered.  */
+ 		      bytes = 1;
+ 
+ 		    w = wcwidth (wc);
+ 		    if (w >= 0)
+ 		      /* A printable multibyte character.  */
+ 		      width += w;
+ 		    else
+ 		      /* An unprintable multibyte character.  */
+ 		      if (!(flags & MBSW_REJECT_UNPRINTABLE))
+ 			width += (iswcntrl (wc) ? 0 : 1);
+ 		      else
+ 			return -1;
+ 
+ 		    p += bytes;
+ 		  }
+ 		while (! mbsinit (&mbstate));
+ 	      }
+ 	      break;
+ 	  }
+       return width;
+     }
+ #endif
+ 
+   while (p < plimit)
+     {
+       unsigned char c = (unsigned char) *p++;
+ 
+       if (isprint (c))
+ 	width++;
+       else if (!(flags & MBSW_REJECT_UNPRINTABLE))
+ 	width += (iscntrl (c) ? 0 : 1);
+       else
+ 	return -1;
+     }
+   return width;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/mbswidth.h texinfo-4.13/gnulib/lib/mbswidth.h
*** texinfo-4.12/gnulib/lib/mbswidth.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbswidth.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,60 ----
+ /* Determine the number of screen columns needed for a string.
+    Copyright (C) 2000-2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <stddef.h>
+ 
+ /* Avoid a clash of our mbswidth() with a function of the same name defined
+    in UnixWare 7.1.1 <wchar.h>.  We need this #include before the #define
+    below.
+    However, we don't want to #include <wchar.h> on all platforms because
+    - Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+      <wchar.h>.
+    - BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+      <wchar.h>.  */
+ #if HAVE_DECL_MBSWIDTH_IN_WCHAR_H
+ # include <wchar.h>
+ #endif
+ 
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ 
+ /* Optional flags to influence mbswidth/mbsnwidth behavior.  */
+ 
+ /* If this bit is set, return -1 upon finding an invalid or incomplete
+    character.  Otherwise, assume invalid characters have width 1.  */
+ #define MBSW_REJECT_INVALID 1
+ 
+ /* If this bit is set, return -1 upon finding a non-printable character.
+    Otherwise, assume unprintable characters have width 0 if they are
+    control characters and 1 otherwise.  */
+ #define MBSW_REJECT_UNPRINTABLE	2
+ 
+ 
+ /* Returns the number of screen columns needed for STRING.  */
+ #define mbswidth gnu_mbswidth  /* avoid clash with UnixWare 7.1.1 function */
+ extern int mbswidth (const char *string, int flags);
+ 
+ /* Returns the number of screen columns needed for the NBYTES bytes
+    starting at BUF.  */
+ extern int mbsnwidth (const char *buf, size_t nbytes, int flags);
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/mbuiter.h texinfo-4.13/gnulib/lib/mbuiter.h
*** texinfo-4.12/gnulib/lib/mbuiter.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mbuiter.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,222 ----
+ /* Iterating through multibyte strings: macros for multi-byte encodings.
+    Copyright (C) 2001, 2005, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+ 
+ /* The macros in this file implement forward iteration through a
+    multi-byte string, without knowing its length a-priori.
+ 
+    With these macros, an iteration loop that looks like
+ 
+       char *iter;
+       for (iter = buf; *iter != '\0'; iter++)
+         {
+           do_something (*iter);
+         }
+ 
+    becomes
+ 
+       mbui_iterator_t iter;
+       for (mbui_init (iter, buf); mbui_avail (iter); mbui_advance (iter))
+         {
+           do_something (mbui_cur_ptr (iter), mb_len (mbui_cur (iter)));
+         }
+ 
+    The benefit of these macros over plain use of mbrtowc is:
+    - Handling of invalid multibyte sequences is possible without
+      making the code more complicated, while still preserving the
+      invalid multibyte sequences.
+ 
+    Compared to mbiter.h, the macros here don't need to know the string's
+    length a-priori.  The downside is that at each step, the look-ahead
+    that guards against overrunning the terminating '\0' is more expensive.
+    The mbui_* macros are therefore suitable when there is a high probability
+    that only the first few multibyte characters need to be inspected.
+    Whereas the mbi_* macros are better if usually the iteration runs
+    through the entire string.
+ 
+    mbui_iterator_t
+      is a type usable for variable declarations.
+ 
+    mbui_init (iter, startptr)
+      initializes the iterator, starting at startptr.
+ 
+    mbui_avail (iter)
+      returns true if there are more multibyte chracters available before
+      the end of string is reached. In this case, mbui_cur (iter) is
+      initialized to the next multibyte chracter.
+ 
+    mbui_advance (iter)
+      advances the iterator by one multibyte character.
+ 
+    mbui_cur (iter)
+      returns the current multibyte character, of type mbchar_t.  All the
+      macros defined in mbchar.h can be used on it.
+ 
+    mbui_cur_ptr (iter)
+      return a pointer to the beginning of the current multibyte character.
+ 
+    mbui_reloc (iter, ptrdiff)
+      relocates iterator when the string is moved by ptrdiff bytes.
+ 
+    mbui_copy (&destiter, &srciter)
+      copies srciter to destiter.
+ 
+    Here are the function prototypes of the macros.
+ 
+    extern void		mbui_init (mbui_iterator_t iter, const char *startptr);
+    extern bool		mbui_avail (mbui_iterator_t iter);
+    extern void		mbui_advance (mbui_iterator_t iter);
+    extern mbchar_t	mbui_cur (mbui_iterator_t iter);
+    extern const char *	mbui_cur_ptr (mbui_iterator_t iter);
+    extern void		mbui_reloc (mbui_iterator_t iter, ptrdiff_t ptrdiff);
+    extern void		mbui_copy (mbui_iterator_t *new, const mbui_iterator_t *old);
+  */
+ 
+ #ifndef _MBUITER_H
+ #define _MBUITER_H 1
+ 
+ #include <assert.h>
+ #include <stdbool.h>
+ #include <stddef.h>
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+    <wchar.h>.  */
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ 
+ #include "mbchar.h"
+ #include "strnlen1.h"
+ 
+ struct mbuiter_multi
+ {
+   bool in_shift;	/* true if next byte may not be interpreted as ASCII */
+   mbstate_t state;	/* if in_shift: current shift state */
+   bool next_done;	/* true if mbui_avail has already filled the following */
+   struct mbchar cur;	/* the current character:
+ 	const char *cur.ptr		pointer to current character
+ 	The following are only valid after mbui_avail.
+ 	size_t cur.bytes		number of bytes of current character
+ 	bool cur.wc_valid		true if wc is a valid wide character
+ 	wchar_t cur.wc			if wc_valid: the current character
+ 	*/
+ };
+ 
+ static inline void
+ mbuiter_multi_next (struct mbuiter_multi *iter)
+ {
+   if (iter->next_done)
+     return;
+   if (iter->in_shift)
+     goto with_shift;
+   /* Handle most ASCII characters quickly, without calling mbrtowc().  */
+   if (is_basic (*iter->cur.ptr))
+     {
+       /* These characters are part of the basic character set.  ISO C 99
+ 	 guarantees that their wide character code is identical to their
+ 	 char code.  */
+       iter->cur.bytes = 1;
+       iter->cur.wc = *iter->cur.ptr;
+       iter->cur.wc_valid = true;
+     }
+   else
+     {
+       assert (mbsinit (&iter->state));
+       iter->in_shift = true;
+     with_shift:
+       iter->cur.bytes = mbrtowc (&iter->cur.wc, iter->cur.ptr,
+ 				 strnlen1 (iter->cur.ptr, MB_CUR_MAX),
+ 				 &iter->state);
+       if (iter->cur.bytes == (size_t) -1)
+ 	{
+ 	  /* An invalid multibyte sequence was encountered.  */
+ 	  iter->cur.bytes = 1;
+ 	  iter->cur.wc_valid = false;
+ 	  /* Whether to set iter->in_shift = false and reset iter->state
+ 	     or not is not very important; the string is bogus anyway.  */
+ 	}
+       else if (iter->cur.bytes == (size_t) -2)
+ 	{
+ 	  /* An incomplete multibyte character at the end.  */
+ 	  iter->cur.bytes = strlen (iter->cur.ptr);
+ 	  iter->cur.wc_valid = false;
+ 	  /* Whether to set iter->in_shift = false and reset iter->state
+ 	     or not is not important; the string end is reached anyway.  */
+ 	}
+       else
+ 	{
+ 	  if (iter->cur.bytes == 0)
+ 	    {
+ 	      /* A null wide character was encountered.  */
+ 	      iter->cur.bytes = 1;
+ 	      assert (*iter->cur.ptr == '\0');
+ 	      assert (iter->cur.wc == 0);
+ 	    }
+ 	  iter->cur.wc_valid = true;
+ 
+ 	  /* When in the initial state, we can go back treating ASCII
+ 	     characters more quickly.  */
+ 	  if (mbsinit (&iter->state))
+ 	    iter->in_shift = false;
+ 	}
+     }
+   iter->next_done = true;
+ }
+ 
+ static inline void
+ mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff)
+ {
+   iter->cur.ptr += ptrdiff;
+ }
+ 
+ static inline void
+ mbuiter_multi_copy (struct mbuiter_multi *new_iter, const struct mbuiter_multi *old_iter)
+ {
+   if ((new_iter->in_shift = old_iter->in_shift))
+     memcpy (&new_iter->state, &old_iter->state, sizeof (mbstate_t));
+   else
+     memset (&new_iter->state, 0, sizeof (mbstate_t));
+   new_iter->next_done = old_iter->next_done;
+   mb_copy (&new_iter->cur, &old_iter->cur);
+ }
+ 
+ /* Iteration macros.  */
+ typedef struct mbuiter_multi mbui_iterator_t;
+ #define mbui_init(iter, startptr) \
+   ((iter).cur.ptr = (startptr), \
+    (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \
+    (iter).next_done = false)
+ #define mbui_avail(iter) \
+   (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur))
+ #define mbui_advance(iter) \
+   ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false)
+ 
+ /* Access to the current character.  */
+ #define mbui_cur(iter) (iter).cur
+ #define mbui_cur_ptr(iter) (iter).cur.ptr
+ 
+ /* Relocation.  */
+ #define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff)
+ 
+ /* Copying an iterator.  */
+ #define mbui_copy mbuiter_multi_copy
+ 
+ #endif /* _MBUITER_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/memchr.c texinfo-4.13/gnulib/lib/memchr.c
*** texinfo-4.12/gnulib/lib/memchr.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/memchr.c	Thu May 22 05:11:32 2008
***************
*** 0 ****
--- 1,172 ----
+ /* Copyright (C) 1991, 1993, 1996, 1997, 1999, 2000, 2003, 2004, 2006, 2008
+    Free Software Foundation, Inc.
+ 
+    Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
+    with help from Dan Sahlin (dan@sics.se) and
+    commentary by Jim Blandy (jimb@ai.mit.edu);
+    adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
+    and implemented by Roland McGrath (roland@ai.mit.edu).
+ 
+ NOTE: The canonical source of this file is maintained with the GNU C Library.
+ Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+ 
+ 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 3 of the License, or 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LIBC
+ # include <config.h>
+ #endif
+ 
+ #include <string.h>
+ 
+ #include <stddef.h>
+ 
+ #if defined _LIBC
+ # include <memcopy.h>
+ #else
+ # define reg_char char
+ #endif
+ 
+ #include <limits.h>
+ 
+ #if HAVE_BP_SYM_H || defined _LIBC
+ # include <bp-sym.h>
+ #else
+ # define BP_SYM(sym) sym
+ #endif
+ 
+ #undef __memchr
+ #ifdef _LIBC
+ # undef memchr
+ #endif
+ 
+ #ifndef weak_alias
+ # define __memchr memchr
+ #endif
+ 
+ /* Search no more than N bytes of S for C.  */
+ void *
+ __memchr (void const *s, int c_in, size_t n)
+ {
+   /* On 32-bit hardware, choosing longword to be a 32-bit unsigned
+      long instead of a 64-bit uintmax_t tends to give better
+      performance.  On 64-bit hardware, unsigned long is generally 64
+      bits already.  Change this typedef to experiment with
+      performance.  */
+   typedef unsigned long int longword;
+ 
+   const unsigned char *char_ptr;
+   const longword *longword_ptr;
+   longword repeated_one;
+   longword repeated_c;
+   unsigned reg_char c;
+ 
+   c = (unsigned char) c_in;
+ 
+   /* Handle the first few bytes by reading one byte at a time.
+      Do this until CHAR_PTR is aligned on a longword boundary.  */
+   for (char_ptr = (const unsigned char *) s;
+        n > 0 && (size_t) char_ptr % sizeof (longword) != 0;
+        --n, ++char_ptr)
+     if (*char_ptr == c)
+       return (void *) char_ptr;
+ 
+   longword_ptr = (const longword *) char_ptr;
+ 
+   /* All these elucidatory comments refer to 4-byte longwords,
+      but the theory applies equally well to any size longwords.  */
+ 
+   /* Compute auxiliary longword values:
+      repeated_one is a value which has a 1 in every byte.
+      repeated_c has c in every byte.  */
+   repeated_one = 0x01010101;
+   repeated_c = c | (c << 8);
+   repeated_c |= repeated_c << 16;
+   if (0xffffffffU < (longword) -1)
+     {
+       repeated_one |= repeated_one << 31 << 1;
+       repeated_c |= repeated_c << 31 << 1;
+       if (8 < sizeof (longword))
+ 	{
+ 	  size_t i;
+ 
+ 	  for (i = 64; i < sizeof (longword) * 8; i *= 2)
+ 	    {
+ 	      repeated_one |= repeated_one << i;
+ 	      repeated_c |= repeated_c << i;
+ 	    }
+ 	}
+     }
+ 
+   /* Instead of the traditional loop which tests each byte, we will test a
+      longword at a time.  The tricky part is testing if *any of the four*
+      bytes in the longword in question are equal to c.  We first use an xor
+      with repeated_c.  This reduces the task to testing whether *any of the
+      four* bytes in longword1 is zero.
+ 
+      We compute tmp =
+        ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
+      That is, we perform the following operations:
+        1. Subtract repeated_one.
+        2. & ~longword1.
+        3. & a mask consisting of 0x80 in every byte.
+      Consider what happens in each byte:
+        - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
+          and step 3 transforms it into 0x80.  A carry can also be propagated
+          to more significant bytes.
+        - If a byte of longword1 is nonzero, let its lowest 1 bit be at
+          position k (0 <= k <= 7); so the lowest k bits are 0.  After step 1,
+          the byte ends in a single bit of value 0 and k bits of value 1.
+          After step 2, the result is just k bits of value 1: 2^k - 1.  After
+          step 3, the result is 0.  And no carry is produced.
+      So, if longword1 has only non-zero bytes, tmp is zero.
+      Whereas if longword1 has a zero byte, call j the position of the least
+      significant zero byte.  Then the result has a zero at positions 0, ...,
+      j-1 and a 0x80 at position j.  We cannot predict the result at the more
+      significant bytes (positions j+1..3), but it does not matter since we
+      already have a non-zero bit at position 8*j+7.
+ 
+      So, the test whether any byte in longword1 is zero is equivalent to
+      testing whether tmp is nonzero.  */
+ 
+   while (n >= sizeof (longword))
+     {
+       longword longword1 = *longword_ptr ^ repeated_c;
+ 
+       if ((((longword1 - repeated_one) & ~longword1)
+ 	   & (repeated_one << 7)) != 0)
+ 	break;
+       longword_ptr++;
+       n -= sizeof (longword);
+     }
+ 
+   char_ptr = (const unsigned char *) longword_ptr;
+ 
+   /* At this point, we know that either n < sizeof (longword), or one of the
+      sizeof (longword) bytes starting at char_ptr is == c.  On little-endian
+      machines, we could determine the first such byte without any further
+      memory accesses, just by looking at the tmp result from the last loop
+      iteration.  But this does not work on big-endian machines.  Choose code
+      that works in both cases.  */
+ 
+   for (; n > 0; --n, ++char_ptr)
+     {
+       if (*char_ptr == c)
+ 	return (void *) char_ptr;
+     }
+ 
+   return NULL;
+ }
+ #ifdef weak_alias
+ weak_alias (__memchr, BP_SYM (memchr))
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/memcmp.c texinfo-4.13/gnulib/lib/memcmp.c
*** texinfo-4.12/gnulib/lib/memcmp.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/memcmp.c	Sat Jul 26 10:13:26 2008
***************
*** 0 ****
--- 1,361 ----
+ /* Copyright (C) 1991, 1993, 1995, 1997, 1998, 2003, 2006 Free Software
+    Foundation, Inc.
+ 
+    Contributed by Torbjorn Granlund (tege@sics.se).
+ 
+    NOTE: The canonical source of this file is maintained with the GNU C Library.
+    Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+ 
+    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 3 of the License, or 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LIBC
+ # include <config.h>
+ #endif
+ 
+ #include <string.h>
+ 
+ #undef memcmp
+ 
+ #ifdef _LIBC
+ 
+ # include <memcopy.h>
+ # include <endian.h>
+ 
+ # if __BYTE_ORDER == __BIG_ENDIAN
+ #  define WORDS_BIGENDIAN
+ # endif
+ 
+ #else	/* Not in the GNU C library.  */
+ 
+ # include <sys/types.h>
+ 
+ /* Type to use for aligned memory operations.
+    This should normally be the biggest type supported by a single load
+    and store.  Must be an unsigned type.  */
+ # define op_t	unsigned long int
+ # define OPSIZ	(sizeof(op_t))
+ 
+ /* Threshold value for when to enter the unrolled loops.  */
+ # define OP_T_THRES	16
+ 
+ /* Type to use for unaligned operations.  */
+ typedef unsigned char byte;
+ 
+ # ifndef WORDS_BIGENDIAN
+ #  define MERGE(w0, sh_1, w1, sh_2) (((w0) >> (sh_1)) | ((w1) << (sh_2)))
+ # else
+ #  define MERGE(w0, sh_1, w1, sh_2) (((w0) << (sh_1)) | ((w1) >> (sh_2)))
+ # endif
+ 
+ #endif	/* In the GNU C library.  */
+ 
+ #ifdef WORDS_BIGENDIAN
+ # define CMP_LT_OR_GT(a, b) ((a) > (b) ? 1 : -1)
+ #else
+ # define CMP_LT_OR_GT(a, b) memcmp_bytes ((a), (b))
+ #endif
+ 
+ /* BE VERY CAREFUL IF YOU CHANGE THIS CODE!  */
+ 
+ /* The strategy of this memcmp is:
+ 
+    1. Compare bytes until one of the block pointers is aligned.
+ 
+    2. Compare using memcmp_common_alignment or
+       memcmp_not_common_alignment, regarding the alignment of the other
+       block after the initial byte operations.  The maximum number of
+       full words (of type op_t) are compared in this way.
+ 
+    3. Compare the few remaining bytes.  */
+ 
+ #ifndef WORDS_BIGENDIAN
+ /* memcmp_bytes -- Compare A and B bytewise in the byte order of the machine.
+    A and B are known to be different.
+    This is needed only on little-endian machines.  */
+ 
+ # ifdef  __GNUC__
+ __inline
+ # endif
+ static int
+ memcmp_bytes (long unsigned int a, long unsigned int b)
+ {
+   long int srcp1 = (long int) &a;
+   long int srcp2 = (long int) &b;
+   op_t a0, b0;
+ 
+   do
+     {
+       a0 = ((byte *) srcp1)[0];
+       b0 = ((byte *) srcp2)[0];
+       srcp1 += 1;
+       srcp2 += 1;
+     }
+   while (a0 == b0);
+   return a0 - b0;
+ }
+ #endif
+ 
+ /* memcmp_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN `op_t'
+    objects (not LEN bytes!).  Both SRCP1 and SRCP2 should be aligned for
+    memory operations on `op_t's.  */
+ #ifdef	__GNUC__
+ __inline
+ #endif
+ static int
+ memcmp_common_alignment (long int srcp1, long int srcp2, size_t len)
+ {
+   op_t a0, a1;
+   op_t b0, b1;
+ 
+   switch (len % 4)
+     {
+     default: /* Avoid warning about uninitialized local variables.  */
+     case 2:
+       a0 = ((op_t *) srcp1)[0];
+       b0 = ((op_t *) srcp2)[0];
+       srcp1 -= 2 * OPSIZ;
+       srcp2 -= 2 * OPSIZ;
+       len += 2;
+       goto do1;
+     case 3:
+       a1 = ((op_t *) srcp1)[0];
+       b1 = ((op_t *) srcp2)[0];
+       srcp1 -= OPSIZ;
+       srcp2 -= OPSIZ;
+       len += 1;
+       goto do2;
+     case 0:
+       if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+ 	return 0;
+       a0 = ((op_t *) srcp1)[0];
+       b0 = ((op_t *) srcp2)[0];
+       goto do3;
+     case 1:
+       a1 = ((op_t *) srcp1)[0];
+       b1 = ((op_t *) srcp2)[0];
+       srcp1 += OPSIZ;
+       srcp2 += OPSIZ;
+       len -= 1;
+       if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+ 	goto do0;
+       /* Fall through.  */
+     }
+ 
+   do
+     {
+       a0 = ((op_t *) srcp1)[0];
+       b0 = ((op_t *) srcp2)[0];
+       if (a1 != b1)
+ 	return CMP_LT_OR_GT (a1, b1);
+ 
+     do3:
+       a1 = ((op_t *) srcp1)[1];
+       b1 = ((op_t *) srcp2)[1];
+       if (a0 != b0)
+ 	return CMP_LT_OR_GT (a0, b0);
+ 
+     do2:
+       a0 = ((op_t *) srcp1)[2];
+       b0 = ((op_t *) srcp2)[2];
+       if (a1 != b1)
+ 	return CMP_LT_OR_GT (a1, b1);
+ 
+     do1:
+       a1 = ((op_t *) srcp1)[3];
+       b1 = ((op_t *) srcp2)[3];
+       if (a0 != b0)
+ 	return CMP_LT_OR_GT (a0, b0);
+ 
+       srcp1 += 4 * OPSIZ;
+       srcp2 += 4 * OPSIZ;
+       len -= 4;
+     }
+   while (len != 0);
+ 
+   /* This is the right position for do0.  Please don't move
+      it into the loop.  */
+  do0:
+   if (a1 != b1)
+     return CMP_LT_OR_GT (a1, b1);
+   return 0;
+ }
+ 
+ /* memcmp_not_common_alignment -- Compare blocks at SRCP1 and SRCP2 with LEN
+    `op_t' objects (not LEN bytes!).  SRCP2 should be aligned for memory
+    operations on `op_t', but SRCP1 *should be unaligned*.  */
+ #ifdef	__GNUC__
+ __inline
+ #endif
+ static int
+ memcmp_not_common_alignment (long int srcp1, long int srcp2, size_t len)
+ {
+   op_t a0, a1, a2, a3;
+   op_t b0, b1, b2, b3;
+   op_t x;
+   int shl, shr;
+ 
+   /* Calculate how to shift a word read at the memory operation
+      aligned srcp1 to make it aligned for comparison.  */
+ 
+   shl = 8 * (srcp1 % OPSIZ);
+   shr = 8 * OPSIZ - shl;
+ 
+   /* Make SRCP1 aligned by rounding it down to the beginning of the `op_t'
+      it points in the middle of.  */
+   srcp1 &= -OPSIZ;
+ 
+   switch (len % 4)
+     {
+     default: /* Avoid warning about uninitialized local variables.  */
+     case 2:
+       a1 = ((op_t *) srcp1)[0];
+       a2 = ((op_t *) srcp1)[1];
+       b2 = ((op_t *) srcp2)[0];
+       srcp1 -= 1 * OPSIZ;
+       srcp2 -= 2 * OPSIZ;
+       len += 2;
+       goto do1;
+     case 3:
+       a0 = ((op_t *) srcp1)[0];
+       a1 = ((op_t *) srcp1)[1];
+       b1 = ((op_t *) srcp2)[0];
+       srcp2 -= 1 * OPSIZ;
+       len += 1;
+       goto do2;
+     case 0:
+       if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+ 	return 0;
+       a3 = ((op_t *) srcp1)[0];
+       a0 = ((op_t *) srcp1)[1];
+       b0 = ((op_t *) srcp2)[0];
+       srcp1 += 1 * OPSIZ;
+       goto do3;
+     case 1:
+       a2 = ((op_t *) srcp1)[0];
+       a3 = ((op_t *) srcp1)[1];
+       b3 = ((op_t *) srcp2)[0];
+       srcp1 += 2 * OPSIZ;
+       srcp2 += 1 * OPSIZ;
+       len -= 1;
+       if (OP_T_THRES <= 3 * OPSIZ && len == 0)
+ 	goto do0;
+       /* Fall through.  */
+     }
+ 
+   do
+     {
+       a0 = ((op_t *) srcp1)[0];
+       b0 = ((op_t *) srcp2)[0];
+       x = MERGE(a2, shl, a3, shr);
+       if (x != b3)
+ 	return CMP_LT_OR_GT (x, b3);
+ 
+     do3:
+       a1 = ((op_t *) srcp1)[1];
+       b1 = ((op_t *) srcp2)[1];
+       x = MERGE(a3, shl, a0, shr);
+       if (x != b0)
+ 	return CMP_LT_OR_GT (x, b0);
+ 
+     do2:
+       a2 = ((op_t *) srcp1)[2];
+       b2 = ((op_t *) srcp2)[2];
+       x = MERGE(a0, shl, a1, shr);
+       if (x != b1)
+ 	return CMP_LT_OR_GT (x, b1);
+ 
+     do1:
+       a3 = ((op_t *) srcp1)[3];
+       b3 = ((op_t *) srcp2)[3];
+       x = MERGE(a1, shl, a2, shr);
+       if (x != b2)
+ 	return CMP_LT_OR_GT (x, b2);
+ 
+       srcp1 += 4 * OPSIZ;
+       srcp2 += 4 * OPSIZ;
+       len -= 4;
+     }
+   while (len != 0);
+ 
+   /* This is the right position for do0.  Please don't move
+      it into the loop.  */
+  do0:
+   x = MERGE(a2, shl, a3, shr);
+   if (x != b3)
+     return CMP_LT_OR_GT (x, b3);
+   return 0;
+ }
+ 
+ int
+ rpl_memcmp (const void *s1, const void *s2, size_t len)
+ {
+   op_t a0;
+   op_t b0;
+   long int srcp1 = (long int) s1;
+   long int srcp2 = (long int) s2;
+   op_t res;
+ 
+   if (len >= OP_T_THRES)
+     {
+       /* There are at least some bytes to compare.  No need to test
+ 	 for LEN == 0 in this alignment loop.  */
+       while (srcp2 % OPSIZ != 0)
+ 	{
+ 	  a0 = ((byte *) srcp1)[0];
+ 	  b0 = ((byte *) srcp2)[0];
+ 	  srcp1 += 1;
+ 	  srcp2 += 1;
+ 	  res = a0 - b0;
+ 	  if (res != 0)
+ 	    return res;
+ 	  len -= 1;
+ 	}
+ 
+       /* SRCP2 is now aligned for memory operations on `op_t'.
+ 	 SRCP1 alignment determines if we can do a simple,
+ 	 aligned compare or need to shuffle bits.  */
+ 
+       if (srcp1 % OPSIZ == 0)
+ 	res = memcmp_common_alignment (srcp1, srcp2, len / OPSIZ);
+       else
+ 	res = memcmp_not_common_alignment (srcp1, srcp2, len / OPSIZ);
+       if (res != 0)
+ 	return res;
+ 
+       /* Number of bytes remaining in the interval [0..OPSIZ-1].  */
+       srcp1 += len & -OPSIZ;
+       srcp2 += len & -OPSIZ;
+       len %= OPSIZ;
+     }
+ 
+   /* There are just a few bytes to compare.  Use byte memory operations.  */
+   while (len != 0)
+     {
+       a0 = ((byte *) srcp1)[0];
+       b0 = ((byte *) srcp2)[0];
+       srcp1 += 1;
+       srcp2 += 1;
+       res = a0 - b0;
+       if (res != 0)
+ 	return res;
+       len -= 1;
+     }
+ 
+   return 0;
+ }
+ 
+ #ifdef weak_alias
+ # undef bcmp
+ weak_alias (memcmp, bcmp)
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/memcpy.c texinfo-4.13/gnulib/lib/memcpy.c
*** texinfo-4.12/gnulib/lib/memcpy.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/memcpy.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,35 ----
+ /* Copyright (C) 1995, 1997, 2000, 2003, 2006 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Jim Meyering <meyering@na-net.ornl.gov>.  */
+ 
+ #include <config.h>
+ 
+ #include <stddef.h>
+ 
+ /* Copy LEN bytes starting at SRCADDR to DESTADDR.  Result undefined
+    if the source overlaps with the destination.
+    Return DESTADDR. */
+ 
+ void *
+ memcpy (void *destaddr, void const *srcaddr, size_t len)
+ {
+   char *dest = destaddr;
+   char const *src = srcaddr;
+ 
+   while (len-- > 0)
+     *dest++ = *src++;
+   return destaddr;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/memmem.c texinfo-4.13/gnulib/lib/memmem.c
*** texinfo-4.12/gnulib/lib/memmem.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/memmem.c	Sat Jul 26 10:13:26 2008
***************
*** 0 ****
--- 1,76 ----
+ /* Copyright (C) 1991,92,93,94,96,97,98,2000,2004,2007,2008 Free Software
+    Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* This particular implementation was written by Eric Blake, 2008.  */
+ 
+ #ifndef _LIBC
+ # include <config.h>
+ #endif
+ 
+ /* Specification of memmem.  */
+ #include <string.h>
+ 
+ #ifndef _LIBC
+ # define __builtin_expect(expr, val)   (expr)
+ #endif
+ 
+ #define RETURN_TYPE void *
+ #define AVAILABLE(h, h_l, j, n_l) ((j) <= (h_l) - (n_l))
+ #include "str-two-way.h"
+ 
+ /* Return the first occurrence of NEEDLE in HAYSTACK.  Return HAYSTACK
+    if NEEDLE_LEN is 0, otherwise NULL if NEEDLE is not found in
+    HAYSTACK.  */
+ void *
+ memmem (const void *haystack_start, size_t haystack_len,
+ 	const void *needle_start, size_t needle_len)
+ {
+   /* Abstract memory is considered to be an array of 'unsigned char' values,
+      not an array of 'char' values.  See ISO C 99 section 6.2.6.1.  */
+   const unsigned char *haystack = (const unsigned char *) haystack_start;
+   const unsigned char *needle = (const unsigned char *) needle_start;
+ 
+   if (needle_len == 0)
+     /* The first occurrence of the empty string is deemed to occur at
+        the beginning of the string.  */
+     return (void *) haystack;
+ 
+   /* Sanity check, otherwise the loop might search through the whole
+      memory.  */
+   if (__builtin_expect (haystack_len < needle_len, 0))
+     return NULL;
+ 
+   /* Use optimizations in memchr when possible, to reduce the search
+      size of haystack using a linear algorithm with a smaller
+      coefficient.  However, avoid memchr for long needles, since we
+      can often achieve sublinear performance.  */
+   if (needle_len < LONG_NEEDLE_THRESHOLD)
+     {
+       haystack = memchr (haystack, *needle, haystack_len);
+       if (!haystack || __builtin_expect (needle_len == 1, 0))
+ 	return (void *) haystack;
+       haystack_len -= haystack - (const unsigned char *) haystack_start;
+       if (haystack_len < needle_len)
+ 	return NULL;
+       return two_way_short_needle (haystack, haystack_len, needle, needle_len);
+     }
+   else
+     return two_way_long_needle (haystack, haystack_len, needle, needle_len);
+ }
+ 
+ #undef LONG_NEEDLE_THRESHOLD
diff -Nrc2 texinfo-4.12/gnulib/lib/memmove.c texinfo-4.13/gnulib/lib/memmove.c
*** texinfo-4.12/gnulib/lib/memmove.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/memmove.c	Sun Oct 15 14:09:15 2006
***************
*** 0 ****
--- 1,26 ----
+ /* memmove.c -- copy memory.
+    Copy LENGTH bytes from SOURCE to DEST.  Does not null-terminate.
+    In the public domain.
+    By David MacKenzie <djm@gnu.ai.mit.edu>.  */
+ 
+ #include <config.h>
+ 
+ #include <stddef.h>
+ 
+ void *
+ memmove (void *dest0, void const *source0, size_t length)
+ {
+   char *dest = dest0;
+   char const *source = source0;
+   if (source < dest)
+     /* Moving from low mem to hi mem; start at end.  */
+     for (source += length, dest += length; length; --length)
+       *--dest = *--source;
+   else if (source != dest)
+     {
+       /* Moving from hi mem to low mem; start at beginning.  */
+       for (; length; --length)
+ 	*dest++ = *source++;
+     }
+   return dest0;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/mempcpy.c texinfo-4.13/gnulib/lib/mempcpy.c
*** texinfo-4.12/gnulib/lib/mempcpy.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mempcpy.c	Sun Jun  8 06:04:14 2008
***************
*** 0 ****
--- 1,29 ----
+ /* Copy memory area and return pointer after last written byte.
+    Copyright (C) 2003, 2007 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include <string.h>
+ 
+ /* Copy N bytes of SRC to DEST, return pointer to bytes after the
+    last written byte.  */
+ void *
+ mempcpy (void *dest, const void *src, size_t n)
+ {
+   return (char *) memcpy (dest, src, n) + n;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/mkstemp.c texinfo-4.13/gnulib/lib/mkstemp.c
*** texinfo-4.12/gnulib/lib/mkstemp.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/mkstemp.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,44 ----
+ /* Copyright (C) 1998, 1999, 2001, 2005, 2006, 2007 Free Software Foundation, Inc.
+    This file is derived from the one in the GNU C Library.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #if !_LIBC
+ # include <config.h>
+ #endif
+ 
+ #include <stdlib.h>
+ 
+ #if !_LIBC
+ # include "tempname.h"
+ # define __gen_tempname gen_tempname
+ # define __GT_FILE GT_FILE
+ #endif
+ 
+ #include <stdio.h>
+ 
+ #ifndef __GT_FILE
+ # define __GT_FILE 0
+ #endif
+ 
+ /* Generate a unique temporary file name from TEMPLATE.
+    The last six characters of TEMPLATE must be "XXXXXX";
+    they are replaced with a string that makes the file name unique.
+    Then open the file and return a fd. */
+ int
+ mkstemp (template)
+      char *template;
+ {
+   return __gen_tempname (template, __GT_FILE);
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/ref-add.sin texinfo-4.13/gnulib/lib/ref-add.sin
*** texinfo-4.12/gnulib/lib/ref-add.sin	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/ref-add.sin	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,30 ----
+ # Add this package to a list of references stored in a text file.
+ #
+ #   Copyright (C) 2000 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #
+ # Written by Bruno Haible <haible@clisp.cons.org>.
+ #
+ /^# Packages using this file: / {
+   s/# Packages using this file://
+   ta
+   :a
+   s/ @PACKAGE@ / @PACKAGE@ /
+   tb
+   s/ $/ @PACKAGE@ /
+   :b
+   s/^/# Packages using this file:/
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/ref-del.sin texinfo-4.13/gnulib/lib/ref-del.sin
*** texinfo-4.12/gnulib/lib/ref-del.sin	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/ref-del.sin	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,25 ----
+ # Remove this package from a list of references stored in a text file.
+ #
+ #   Copyright (C) 2000 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #
+ # Written by Bruno Haible <haible@clisp.cons.org>.
+ #
+ /^# Packages using this file: / {
+   s/# Packages using this file://
+   s/ @PACKAGE@ / /
+   s/^/# Packages using this file:/
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/setenv.c texinfo-4.13/gnulib/lib/setenv.c
*** texinfo-4.12/gnulib/lib/setenv.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/setenv.c	Wed Feb 27 10:32:21 2008
***************
*** 0 ****
--- 1,330 ----
+ /* Copyright (C) 1992,1995-1999,2000-2003,2005-2008 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #if !_LIBC
+ # include <config.h>
+ #endif
+ #include <alloca.h>
+ 
+ /* Specification.  */
+ #include <stdlib.h>
+ 
+ #include <errno.h>
+ #ifndef __set_errno
+ # define __set_errno(ev) ((errno) = (ev))
+ #endif
+ 
+ #include <string.h>
+ #if _LIBC || HAVE_UNISTD_H
+ # include <unistd.h>
+ #endif
+ 
+ #if _LIBC || !HAVE_SETENV
+ 
+ #if !_LIBC
+ # include "malloca.h"
+ #endif
+ 
+ #if !_LIBC
+ # define __environ	environ
+ #endif
+ 
+ #if _LIBC
+ /* This lock protects against simultaneous modifications of `environ'.  */
+ # include <bits/libc-lock.h>
+ __libc_lock_define_initialized (static, envlock)
+ # define LOCK	__libc_lock_lock (envlock)
+ # define UNLOCK	__libc_lock_unlock (envlock)
+ #else
+ # define LOCK
+ # define UNLOCK
+ #endif
+ 
+ /* In the GNU C library we must keep the namespace clean.  */
+ #ifdef _LIBC
+ # define setenv __setenv
+ # define clearenv __clearenv
+ # define tfind __tfind
+ # define tsearch __tsearch
+ #endif
+ 
+ /* In the GNU C library implementation we try to be more clever and
+    allow arbitrarily many changes of the environment given that the used
+    values are from a small set.  Outside glibc this will eat up all
+    memory after a while.  */
+ #if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \
+ 		      && defined __GNUC__)
+ # define USE_TSEARCH	1
+ # include <search.h>
+ typedef int (*compar_fn_t) (const void *, const void *);
+ 
+ /* This is a pointer to the root of the search tree with the known
+    values.  */
+ static void *known_values;
+ 
+ # define KNOWN_VALUE(Str) \
+   ({									      \
+     void *value = tfind (Str, &known_values, (compar_fn_t) strcmp);	      \
+     value != NULL ? *(char **) value : NULL;				      \
+   })
+ # define STORE_VALUE(Str) \
+   tsearch (Str, &known_values, (compar_fn_t) strcmp)
+ 
+ #else
+ # undef USE_TSEARCH
+ 
+ # define KNOWN_VALUE(Str) NULL
+ # define STORE_VALUE(Str) do { } while (0)
+ 
+ #endif
+ 
+ 
+ /* If this variable is not a null pointer we allocated the current
+    environment.  */
+ static char **last_environ;
+ 
+ 
+ /* This function is used by `setenv' and `putenv'.  The difference between
+    the two functions is that for the former must create a new string which
+    is then placed in the environment, while the argument of `putenv'
+    must be used directly.  This is all complicated by the fact that we try
+    to reuse values once generated for a `setenv' call since we can never
+    free the strings.  */
+ int
+ __add_to_environ (const char *name, const char *value, const char *combined,
+ 		  int replace)
+ {
+   register char **ep;
+   register size_t size;
+   const size_t namelen = strlen (name);
+   const size_t vallen = value != NULL ? strlen (value) + 1 : 0;
+ 
+   LOCK;
+ 
+   /* We have to get the pointer now that we have the lock and not earlier
+      since another thread might have created a new environment.  */
+   ep = __environ;
+ 
+   size = 0;
+   if (ep != NULL)
+     {
+       for (; *ep != NULL; ++ep)
+ 	if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=')
+ 	  break;
+ 	else
+ 	  ++size;
+     }
+ 
+   if (ep == NULL || *ep == NULL)
+     {
+       char **new_environ;
+ #ifdef USE_TSEARCH
+       char *new_value;
+ #endif
+ 
+       /* We allocated this space; we can extend it.  */
+       new_environ =
+ 	(char **) (last_environ == NULL
+ 		   ? malloc ((size + 2) * sizeof (char *))
+ 		   : realloc (last_environ, (size + 2) * sizeof (char *)));
+       if (new_environ == NULL)
+ 	{
+ 	  UNLOCK;
+ 	  return -1;
+ 	}
+ 
+       /* If the whole entry is given add it.  */
+       if (combined != NULL)
+ 	/* We must not add the string to the search tree since it belongs
+ 	   to the user.  */
+ 	new_environ[size] = (char *) combined;
+       else
+ 	{
+ 	  /* See whether the value is already known.  */
+ #ifdef USE_TSEARCH
+ # ifdef _LIBC
+ 	  new_value = (char *) alloca (namelen + 1 + vallen);
+ 	  __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
+ 		     value, vallen);
+ # else
+ 	  new_value = (char *) malloca (namelen + 1 + vallen);
+ 	  if (new_value == NULL)
+ 	    {
+ 	      __set_errno (ENOMEM);
+ 	      UNLOCK;
+ 	      return -1;
+ 	    }
+ 	  memcpy (new_value, name, namelen);
+ 	  new_value[namelen] = '=';
+ 	  memcpy (&new_value[namelen + 1], value, vallen);
+ # endif
+ 
+ 	  new_environ[size] = KNOWN_VALUE (new_value);
+ 	  if (new_environ[size] == NULL)
+ #endif
+ 	    {
+ 	      new_environ[size] = (char *) malloc (namelen + 1 + vallen);
+ 	      if (new_environ[size] == NULL)
+ 		{
+ #if defined USE_TSEARCH && !defined _LIBC
+ 		  freea (new_value);
+ #endif
+ 		  __set_errno (ENOMEM);
+ 		  UNLOCK;
+ 		  return -1;
+ 		}
+ 
+ #ifdef USE_TSEARCH
+ 	      memcpy (new_environ[size], new_value, namelen + 1 + vallen);
+ #else
+ 	      memcpy (new_environ[size], name, namelen);
+ 	      new_environ[size][namelen] = '=';
+ 	      memcpy (&new_environ[size][namelen + 1], value, vallen);
+ #endif
+ 	      /* And save the value now.  We cannot do this when we remove
+ 		 the string since then we cannot decide whether it is a
+ 		 user string or not.  */
+ 	      STORE_VALUE (new_environ[size]);
+ 	    }
+ #if defined USE_TSEARCH && !defined _LIBC
+ 	  freea (new_value);
+ #endif
+ 	}
+ 
+       if (__environ != last_environ)
+ 	memcpy ((char *) new_environ, (char *) __environ,
+ 		size * sizeof (char *));
+ 
+       new_environ[size + 1] = NULL;
+ 
+       last_environ = __environ = new_environ;
+     }
+   else if (replace)
+     {
+       char *np;
+ 
+       /* Use the user string if given.  */
+       if (combined != NULL)
+ 	np = (char *) combined;
+       else
+ 	{
+ #ifdef USE_TSEARCH
+ 	  char *new_value;
+ # ifdef _LIBC
+ 	  new_value = alloca (namelen + 1 + vallen);
+ 	  __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1),
+ 		     value, vallen);
+ # else
+ 	  new_value = malloca (namelen + 1 + vallen);
+ 	  if (new_value == NULL)
+ 	    {
+ 	      __set_errno (ENOMEM);
+ 	      UNLOCK;
+ 	      return -1;
+ 	    }
+ 	  memcpy (new_value, name, namelen);
+ 	  new_value[namelen] = '=';
+ 	  memcpy (&new_value[namelen + 1], value, vallen);
+ # endif
+ 
+ 	  np = KNOWN_VALUE (new_value);
+ 	  if (np == NULL)
+ #endif
+ 	    {
+ 	      np = malloc (namelen + 1 + vallen);
+ 	      if (np == NULL)
+ 		{
+ #if defined USE_TSEARCH && !defined _LIBC
+ 		  freea (new_value);
+ #endif
+ 		  __set_errno (ENOMEM);
+ 		  UNLOCK;
+ 		  return -1;
+ 		}
+ 
+ #ifdef USE_TSEARCH
+ 	      memcpy (np, new_value, namelen + 1 + vallen);
+ #else
+ 	      memcpy (np, name, namelen);
+ 	      np[namelen] = '=';
+ 	      memcpy (&np[namelen + 1], value, vallen);
+ #endif
+ 	      /* And remember the value.  */
+ 	      STORE_VALUE (np);
+ 	    }
+ #if defined USE_TSEARCH && !defined _LIBC
+ 	  freea (new_value);
+ #endif
+ 	}
+ 
+       *ep = np;
+     }
+ 
+   UNLOCK;
+ 
+   return 0;
+ }
+ 
+ int
+ setenv (const char *name, const char *value, int replace)
+ {
+   return __add_to_environ (name, value, NULL, replace);
+ }
+ 
+ /* The `clearenv' was planned to be added to POSIX.1 but probably
+    never made it.  Nevertheless the POSIX.9 standard (POSIX bindings
+    for Fortran 77) requires this function.  */
+ int
+ clearenv (void)
+ {
+   LOCK;
+ 
+   if (__environ == last_environ && __environ != NULL)
+     {
+       /* We allocated this environment so we can free it.  */
+       free (__environ);
+       last_environ = NULL;
+     }
+ 
+   /* Clear the environment pointer removes the whole environment.  */
+   __environ = NULL;
+ 
+   UNLOCK;
+ 
+   return 0;
+ }
+ 
+ #ifdef _LIBC
+ static void
+ free_mem (void)
+ {
+   /* Remove all traces.  */
+   clearenv ();
+ 
+   /* Now remove the search tree.  */
+   __tdestroy (known_values, free);
+   known_values = NULL;
+ }
+ text_set_element (__libc_subfreeres, free_mem);
+ 
+ 
+ # undef setenv
+ # undef clearenv
+ weak_alias (__setenv, setenv)
+ weak_alias (__clearenv, clearenv)
+ #endif
+ 
+ #endif /* _LIBC || !HAVE_SETENV */
diff -Nrc2 texinfo-4.12/gnulib/lib/stdbool.in.h texinfo-4.13/gnulib/lib/stdbool.in.h
*** texinfo-4.12/gnulib/lib/stdbool.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/stdbool.in.h	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,119 ----
+ /* Copyright (C) 2001-2003, 2006-2008 Free Software Foundation, Inc.
+    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #ifndef _GL_STDBOOL_H
+ #define _GL_STDBOOL_H
+ 
+ /* ISO C 99 <stdbool.h> for platforms that lack it.  */
+ 
+ /* Usage suggestions:
+ 
+    Programs that use <stdbool.h> should be aware of some limitations
+    and standards compliance issues.
+ 
+    Standards compliance:
+ 
+        - <stdbool.h> must be #included before 'bool', 'false', 'true'
+          can be used.
+ 
+        - You cannot assume that sizeof (bool) == 1.
+ 
+        - Programs should not undefine the macros bool, true, and false,
+          as C99 lists that as an "obsolescent feature".
+ 
+    Limitations of this substitute, when used in a C89 environment:
+ 
+        - <stdbool.h> must be #included before the '_Bool' type can be used.
+ 
+        - You cannot assume that _Bool is a typedef; it might be a macro.
+ 
+        - Bit-fields of type 'bool' are not supported.  Portable code
+          should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'.
+ 
+        - In C99, casts and automatic conversions to '_Bool' or 'bool' are
+          performed in such a way that every nonzero value gets converted
+          to 'true', and zero gets converted to 'false'.  This doesn't work
+          with this substitute.  With this substitute, only the values 0 and 1
+          give the expected result when converted to _Bool' or 'bool'.
+ 
+    Also, it is suggested that programs use 'bool' rather than '_Bool';
+    this isn't required, but 'bool' is more common.  */
+ 
+ 
+ /* 7.16. Boolean type and values */
+ 
+ /* BeOS <sys/socket.h> already #defines false 0, true 1.  We use the same
+    definitions below, but temporarily we have to #undef them.  */
+ #if defined __BEOS__ && !defined __HAIKU__
+ # include <OS.h> /* defines bool but not _Bool */
+ # undef false
+ # undef true
+ #endif
+ 
+ /* For the sake of symbolic names in gdb, we define true and false as
+    enum constants, not only as macros.
+    It is tempting to write
+       typedef enum { false = 0, true = 1 } _Bool;
+    so that gdb prints values of type 'bool' symbolically. But if we do
+    this, values of type '_Bool' may promote to 'int' or 'unsigned int'
+    (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+    (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
+    enum; this ensures that '_Bool' promotes to 'int'.  */
+ #if defined __cplusplus || (defined __BEOS__ && !defined __HAIKU__)
+   /* A compiler known to have 'bool'.  */
+   /* If the compiler already has both 'bool' and '_Bool', we can assume they
+      are the same types.  */
+ # if !@HAVE__BOOL@
+ typedef bool _Bool;
+ # endif
+ #else
+ # if !defined __GNUC__
+    /* If @HAVE__BOOL@:
+         Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
+         the built-in _Bool type is used.  See
+           http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+           http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+           http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+         Similar bugs are likely with other compilers as well; this file
+         wouldn't be used if <stdbool.h> was working.
+         So we override the _Bool type.
+       If !@HAVE__BOOL@:
+         Need to define _Bool ourselves. As 'signed char' or as an enum type?
+         Use of a typedef, with SunPRO C, leads to a stupid
+           "warning: _Bool is a keyword in ISO C99".
+         Use of an enum type, with IRIX cc, leads to a stupid
+           "warning(1185): enumerated type mixed with another type".
+         Even the existence of an enum type, without a typedef,
+           "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
+         The only benefit of the enum, debuggability, is not important
+         with these compilers.  So use 'signed char' and no enum.  */
+ #  define _Bool signed char
+ # else
+    /* With this compiler, trust the _Bool type if the compiler has it.  */
+ #  if !@HAVE__BOOL@
+ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+ #  endif
+ # endif
+ #endif
+ #define bool _Bool
+ 
+ /* The other macros must be usable in preprocessor directives.  */
+ #define false 0
+ #define true 1
+ #define __bool_true_false_are_defined 1
+ 
+ #endif /* _GL_STDBOOL_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/stdint.in.h texinfo-4.13/gnulib/lib/stdint.in.h
*** texinfo-4.12/gnulib/lib/stdint.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/stdint.in.h	Tue Dec 25 16:53:46 2007
***************
*** 0 ****
--- 1,522 ----
+ /* Copyright (C) 2001-2002, 2004-2007 Free Software Foundation, Inc.
+    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
+    This file is part of gnulib.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /*
+  * ISO C 99 <stdint.h> for platforms that lack it.
+  * <http://www.opengroup.org/susv3xbd/stdint.h.html>
+  */
+ 
+ #ifndef _GL_STDINT_H
+ 
+ /* When including a system file that in turn includes <inttypes.h>,
+    use the system <inttypes.h>, not our substitute.  This avoids
+    problems with (for example) VMS, whose <sys/bitypes.h> includes
+    <inttypes.h>.  */
+ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+ 
+ /* Get those types that are already defined in other system include
+    files, so that we can "#define int8_t signed char" below without
+    worrying about a later system include file containing a "typedef
+    signed char int8_t;" that will get messed up by our macro.  Our
+    macros should all be consistent with the system versions, except
+    for the "fast" types and macros, which we recommend against using
+    in public interfaces due to compiler differences.  */
+ 
+ #if @HAVE_STDINT_H@
+ # if defined __sgi && ! defined __c99
+    /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
+       with "This header file is to be used only for c99 mode compilations"
+       diagnostics.  */
+ #  define __STDINT_H__
+ # endif
+   /* Other systems may have an incomplete or buggy <stdint.h>.
+      Include it before <inttypes.h>, since any "#include <stdint.h>"
+      in <inttypes.h> would reinclude us, skipping our contents because
+      _GL_STDINT_H is defined.
+      The include_next requires a split double-inclusion guard.  */
+ # @INCLUDE_NEXT@ @NEXT_STDINT_H@
+ #endif
+ 
+ #if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+ #define _GL_STDINT_H
+ 
+ /* <sys/types.h> defines some of the stdint.h types as well, on glibc,
+    IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
+    AIX 5.2 <sys/types.h> isn't needed and causes troubles.
+    MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+    relies on the system <stdint.h> definitions, so include
+    <sys/types.h> after @NEXT_STDINT_H@.  */
+ #if @HAVE_SYS_TYPES_H@ && ! defined _AIX
+ # include <sys/types.h>
+ #endif
+ 
+ /* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
+ #include <limits.h>
+ 
+ #if @HAVE_INTTYPES_H@
+   /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
+      int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
+      <inttypes.h> also defines intptr_t and uintptr_t.  */
+ # include <inttypes.h>
+ #elif @HAVE_SYS_INTTYPES_H@
+   /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
+      the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX.  */
+ # include <sys/inttypes.h>
+ #endif
+ 
+ #if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
+   /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
+      int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >= 5.2.2 it is
+      included by <sys/types.h>.  */
+ # include <sys/bitypes.h>
+ #endif
+ 
+ #if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
+ 
+ /* Get WCHAR_MIN, WCHAR_MAX.  */
+ # if ! (defined WCHAR_MIN && defined WCHAR_MAX)
+ #  include <wchar.h>
+ # endif
+ 
+ #endif
+ 
+ #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+ 
+ /* Minimum and maximum values for a integer type under the usual assumption.
+    Return an unspecified value if BITS == 0, adding a check to pacify
+    picky compilers.  */
+ 
+ #define _STDINT_MIN(signed, bits, zero) \
+   ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
+ 
+ #define _STDINT_MAX(signed, bits, zero) \
+   ((signed) \
+    ? ~ _STDINT_MIN (signed, bits, zero) \
+    : /* The expression for the unsigned case.  The subtraction of (signed) \
+ 	is a nop in the unsigned case and avoids "signed integer overflow" \
+ 	warnings in the signed case.  */ \
+      ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
+ 
+ /* 7.18.1.1. Exact-width integer types */
+ 
+ /* Here we assume a standard architecture where the hardware integer
+    types have 8, 16, 32, optionally 64 bits.  */
+ 
+ #undef int8_t
+ #undef uint8_t
+ #define int8_t signed char
+ #define uint8_t unsigned char
+ 
+ #undef int16_t
+ #undef uint16_t
+ #define int16_t short int
+ #define uint16_t unsigned short int
+ 
+ #undef int32_t
+ #undef uint32_t
+ #define int32_t int
+ #define uint32_t unsigned int
+ 
+ /* Do not undefine int64_t if gnulib is not being used with 64-bit
+    types, since otherwise it breaks platforms like Tandem/NSK.  */
+ #if LONG_MAX >> 31 >> 31 == 1
+ # undef int64_t
+ # define int64_t long int
+ # define GL_INT64_T
+ #elif defined _MSC_VER
+ # undef int64_t
+ # define int64_t __int64
+ # define GL_INT64_T
+ #elif @HAVE_LONG_LONG_INT@
+ # undef int64_t
+ # define int64_t long long int
+ # define GL_INT64_T
+ #endif
+ 
+ #if ULONG_MAX >> 31 >> 31 >> 1 == 1
+ # undef uint64_t
+ # define uint64_t unsigned long int
+ # define GL_UINT64_T
+ #elif defined _MSC_VER
+ # undef uint64_t
+ # define uint64_t unsigned __int64
+ # define GL_UINT64_T
+ #elif @HAVE_UNSIGNED_LONG_LONG_INT@
+ # undef uint64_t
+ # define uint64_t unsigned long long int
+ # define GL_UINT64_T
+ #endif
+ 
+ /* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
+ #define _UINT8_T
+ #define _UINT32_T
+ #define _UINT64_T
+ 
+ 
+ /* 7.18.1.2. Minimum-width integer types */
+ 
+ /* Here we assume a standard architecture where the hardware integer
+    types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+    are the same as the corresponding N_t types.  */
+ 
+ #undef int_least8_t
+ #undef uint_least8_t
+ #undef int_least16_t
+ #undef uint_least16_t
+ #undef int_least32_t
+ #undef uint_least32_t
+ #undef int_least64_t
+ #undef uint_least64_t
+ #define int_least8_t int8_t
+ #define uint_least8_t uint8_t
+ #define int_least16_t int16_t
+ #define uint_least16_t uint16_t
+ #define int_least32_t int32_t
+ #define uint_least32_t uint32_t
+ #ifdef GL_INT64_T
+ # define int_least64_t int64_t
+ #endif
+ #ifdef GL_UINT64_T
+ # define uint_least64_t uint64_t
+ #endif
+ 
+ /* 7.18.1.3. Fastest minimum-width integer types */
+ 
+ /* Note: Other <stdint.h> substitutes may define these types differently.
+    It is not recommended to use these types in public header files. */
+ 
+ /* Here we assume a standard architecture where the hardware integer
+    types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+    are taken from the same list of types.  Assume that 'long int'
+    is fast enough for all narrower integers.  */
+ 
+ #undef int_fast8_t
+ #undef uint_fast8_t
+ #undef int_fast16_t
+ #undef uint_fast16_t
+ #undef int_fast32_t
+ #undef uint_fast32_t
+ #undef int_fast64_t
+ #undef uint_fast64_t
+ #define int_fast8_t long int
+ #define uint_fast8_t unsigned int_fast8_t
+ #define int_fast16_t long int
+ #define uint_fast16_t unsigned int_fast16_t
+ #define int_fast32_t long int
+ #define uint_fast32_t unsigned int_fast32_t
+ #ifdef GL_INT64_T
+ # define int_fast64_t int64_t
+ #endif
+ #ifdef GL_UINT64_T
+ # define uint_fast64_t uint64_t
+ #endif
+ 
+ /* 7.18.1.4. Integer types capable of holding object pointers */
+ 
+ #undef intptr_t
+ #undef uintptr_t
+ #define intptr_t long int
+ #define uintptr_t unsigned long int
+ 
+ /* 7.18.1.5. Greatest-width integer types */
+ 
+ /* Note: These types are compiler dependent. It may be unwise to use them in
+    public header files. */
+ 
+ #undef intmax_t
+ #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+ # define intmax_t long long int
+ #elif defined GL_INT64_T
+ # define intmax_t int64_t
+ #else
+ # define intmax_t long int
+ #endif
+ 
+ #undef uintmax_t
+ #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+ # define uintmax_t unsigned long long int
+ #elif defined GL_UINT64_T
+ # define uintmax_t uint64_t
+ #else
+ # define uintmax_t unsigned long int
+ #endif
+ 
+ /* Verify that intmax_t and uintmax_t have the same size.  Too much code
+    breaks if this is not the case.  If this check fails, the reason is likely
+    to be found in the autoconf macros.  */
+ typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
+ 
+ /* 7.18.2. Limits of specified-width integer types */
+ 
+ #if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
+ 
+ /* 7.18.2.1. Limits of exact-width integer types */
+ 
+ /* Here we assume a standard architecture where the hardware integer
+    types have 8, 16, 32, optionally 64 bits.  */
+ 
+ #undef INT8_MIN
+ #undef INT8_MAX
+ #undef UINT8_MAX
+ #define INT8_MIN  (~ INT8_MAX)
+ #define INT8_MAX  127
+ #define UINT8_MAX  255
+ 
+ #undef INT16_MIN
+ #undef INT16_MAX
+ #undef UINT16_MAX
+ #define INT16_MIN  (~ INT16_MAX)
+ #define INT16_MAX  32767
+ #define UINT16_MAX  65535
+ 
+ #undef INT32_MIN
+ #undef INT32_MAX
+ #undef UINT32_MAX
+ #define INT32_MIN  (~ INT32_MAX)
+ #define INT32_MAX  2147483647
+ #define UINT32_MAX  4294967295U
+ 
+ #undef INT64_MIN
+ #undef INT64_MAX
+ #ifdef GL_INT64_T
+ /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
+    evaluates the latter incorrectly in preprocessor expressions.  */
+ # define INT64_MIN  (- INTMAX_C (1) << 63)
+ # define INT64_MAX  INTMAX_C (9223372036854775807)
+ #endif
+ 
+ #undef UINT64_MAX
+ #ifdef GL_UINT64_T
+ # define UINT64_MAX  UINTMAX_C (18446744073709551615)
+ #endif
+ 
+ /* 7.18.2.2. Limits of minimum-width integer types */
+ 
+ /* Here we assume a standard architecture where the hardware integer
+    types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+    are the same as the corresponding N_t types.  */
+ 
+ #undef INT_LEAST8_MIN
+ #undef INT_LEAST8_MAX
+ #undef UINT_LEAST8_MAX
+ #define INT_LEAST8_MIN  INT8_MIN
+ #define INT_LEAST8_MAX  INT8_MAX
+ #define UINT_LEAST8_MAX  UINT8_MAX
+ 
+ #undef INT_LEAST16_MIN
+ #undef INT_LEAST16_MAX
+ #undef UINT_LEAST16_MAX
+ #define INT_LEAST16_MIN  INT16_MIN
+ #define INT_LEAST16_MAX  INT16_MAX
+ #define UINT_LEAST16_MAX  UINT16_MAX
+ 
+ #undef INT_LEAST32_MIN
+ #undef INT_LEAST32_MAX
+ #undef UINT_LEAST32_MAX
+ #define INT_LEAST32_MIN  INT32_MIN
+ #define INT_LEAST32_MAX  INT32_MAX
+ #define UINT_LEAST32_MAX  UINT32_MAX
+ 
+ #undef INT_LEAST64_MIN
+ #undef INT_LEAST64_MAX
+ #ifdef GL_INT64_T
+ # define INT_LEAST64_MIN  INT64_MIN
+ # define INT_LEAST64_MAX  INT64_MAX
+ #endif
+ 
+ #undef UINT_LEAST64_MAX
+ #ifdef GL_UINT64_T
+ # define UINT_LEAST64_MAX  UINT64_MAX
+ #endif
+ 
+ /* 7.18.2.3. Limits of fastest minimum-width integer types */
+ 
+ /* Here we assume a standard architecture where the hardware integer
+    types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+    are taken from the same list of types.  */
+ 
+ #undef INT_FAST8_MIN
+ #undef INT_FAST8_MAX
+ #undef UINT_FAST8_MAX
+ #define INT_FAST8_MIN  LONG_MIN
+ #define INT_FAST8_MAX  LONG_MAX
+ #define UINT_FAST8_MAX  ULONG_MAX
+ 
+ #undef INT_FAST16_MIN
+ #undef INT_FAST16_MAX
+ #undef UINT_FAST16_MAX
+ #define INT_FAST16_MIN  LONG_MIN
+ #define INT_FAST16_MAX  LONG_MAX
+ #define UINT_FAST16_MAX  ULONG_MAX
+ 
+ #undef INT_FAST32_MIN
+ #undef INT_FAST32_MAX
+ #undef UINT_FAST32_MAX
+ #define INT_FAST32_MIN  LONG_MIN
+ #define INT_FAST32_MAX  LONG_MAX
+ #define UINT_FAST32_MAX  ULONG_MAX
+ 
+ #undef INT_FAST64_MIN
+ #undef INT_FAST64_MAX
+ #ifdef GL_INT64_T
+ # define INT_FAST64_MIN  INT64_MIN
+ # define INT_FAST64_MAX  INT64_MAX
+ #endif
+ 
+ #undef UINT_FAST64_MAX
+ #ifdef GL_UINT64_T
+ # define UINT_FAST64_MAX  UINT64_MAX
+ #endif
+ 
+ /* 7.18.2.4. Limits of integer types capable of holding object pointers */
+ 
+ #undef INTPTR_MIN
+ #undef INTPTR_MAX
+ #undef UINTPTR_MAX
+ #define INTPTR_MIN  LONG_MIN
+ #define INTPTR_MAX  LONG_MAX
+ #define UINTPTR_MAX  ULONG_MAX
+ 
+ /* 7.18.2.5. Limits of greatest-width integer types */
+ 
+ #undef INTMAX_MIN
+ #undef INTMAX_MAX
+ #ifdef INT64_MAX
+ # define INTMAX_MIN  INT64_MIN
+ # define INTMAX_MAX  INT64_MAX
+ #else
+ # define INTMAX_MIN  INT32_MIN
+ # define INTMAX_MAX  INT32_MAX
+ #endif
+ 
+ #undef UINTMAX_MAX
+ #ifdef UINT64_MAX
+ # define UINTMAX_MAX  UINT64_MAX
+ #else
+ # define UINTMAX_MAX  UINT32_MAX
+ #endif
+ 
+ /* 7.18.3. Limits of other integer types */
+ 
+ /* ptrdiff_t limits */
+ #undef PTRDIFF_MIN
+ #undef PTRDIFF_MAX
+ #define PTRDIFF_MIN  \
+    _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+ #define PTRDIFF_MAX  \
+    _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+ 
+ /* sig_atomic_t limits */
+ #undef SIG_ATOMIC_MIN
+ #undef SIG_ATOMIC_MAX
+ #define SIG_ATOMIC_MIN  \
+    _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+ 		0@SIG_ATOMIC_T_SUFFIX@)
+ #define SIG_ATOMIC_MAX  \
+    _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+ 		0@SIG_ATOMIC_T_SUFFIX@)
+ 
+ 
+ /* size_t limit */
+ #undef SIZE_MAX
+ #define SIZE_MAX  _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
+ 
+ /* wchar_t limits */
+ #undef WCHAR_MIN
+ #undef WCHAR_MAX
+ #define WCHAR_MIN  \
+    _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+ #define WCHAR_MAX  \
+    _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+ 
+ /* wint_t limits */
+ #undef WINT_MIN
+ #undef WINT_MAX
+ #define WINT_MIN  \
+    _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+ #define WINT_MAX  \
+    _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+ 
+ #endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
+ 
+ /* 7.18.4. Macros for integer constants */
+ 
+ #if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
+ 
+ /* 7.18.4.1. Macros for minimum-width integer constants */
+ /* According to ISO C 99 Technical Corrigendum 1 */
+ 
+ /* Here we assume a standard architecture where the hardware integer
+    types have 8, 16, 32, optionally 64 bits, and int is 32 bits.  */
+ 
+ #undef INT8_C
+ #undef UINT8_C
+ #define INT8_C(x) x
+ #define UINT8_C(x) x
+ 
+ #undef INT16_C
+ #undef UINT16_C
+ #define INT16_C(x) x
+ #define UINT16_C(x) x
+ 
+ #undef INT32_C
+ #undef UINT32_C
+ #define INT32_C(x) x
+ #define UINT32_C(x) x ## U
+ 
+ #undef INT64_C
+ #undef UINT64_C
+ #if LONG_MAX >> 31 >> 31 == 1
+ # define INT64_C(x) x##L
+ #elif defined _MSC_VER
+ # define INT64_C(x) x##i64
+ #elif @HAVE_LONG_LONG_INT@
+ # define INT64_C(x) x##LL
+ #endif
+ #if ULONG_MAX >> 31 >> 31 >> 1 == 1
+ # define UINT64_C(x) x##UL
+ #elif defined _MSC_VER
+ # define UINT64_C(x) x##ui64
+ #elif @HAVE_UNSIGNED_LONG_LONG_INT@
+ # define UINT64_C(x) x##ULL
+ #endif
+ 
+ /* 7.18.4.2. Macros for greatest-width integer constants */
+ 
+ #undef INTMAX_C
+ #if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+ # define INTMAX_C(x)   x##LL
+ #elif defined GL_INT64_T
+ # define INTMAX_C(x)   INT64_C(x)
+ #else
+ # define INTMAX_C(x)   x##L
+ #endif
+ 
+ #undef UINTMAX_C
+ #if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+ # define UINTMAX_C(x)  x##ULL
+ #elif defined GL_UINT64_T
+ # define UINTMAX_C(x)  UINT64_C(x)
+ #else
+ # define UINTMAX_C(x)  x##UL
+ #endif
+ 
+ #endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
+ 
+ #endif /* _GL_STDINT_H */
+ #endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/stdlib.in.h texinfo-4.13/gnulib/lib/stdlib.in.h
*** texinfo-4.12/gnulib/lib/stdlib.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/stdlib.in.h	Thu May 22 05:11:32 2008
***************
*** 0 ****
--- 1,240 ----
+ /* A GNU-like <stdlib.h>.
+ 
+    Copyright (C) 1995, 2001-2004, 2006-2008 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #if defined __need_malloc_and_calloc
+ /* Special invocation convention inside glibc header files.  */
+ 
+ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
+ 
+ #else
+ /* Normal invocation convention.  */
+ 
+ #ifndef _GL_STDLIB_H
+ 
+ /* The include_next requires a split double-inclusion guard.  */
+ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
+ 
+ #ifndef _GL_STDLIB_H
+ #define _GL_STDLIB_H
+ 
+ 
+ /* The definition of GL_LINK_WARNING is copied here.  */
+ 
+ 
+ /* Some systems do not define EXIT_*, despite otherwise supporting C89.  */
+ #ifndef EXIT_SUCCESS
+ # define EXIT_SUCCESS 0
+ #endif
+ /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
+    with proper operation of xargs.  */
+ #ifndef EXIT_FAILURE
+ # define EXIT_FAILURE 1
+ #elif EXIT_FAILURE != 1
+ # undef EXIT_FAILURE
+ # define EXIT_FAILURE 1
+ #endif
+ 
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ 
+ #if @GNULIB_MALLOC_POSIX@
+ # if !@HAVE_MALLOC_POSIX@
+ #  undef malloc
+ #  define malloc rpl_malloc
+ extern void * malloc (size_t size);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef malloc
+ # define malloc(s) \
+     (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \
+                       "use gnulib module malloc-posix for portability"), \
+      malloc (s))
+ #endif
+ 
+ 
+ #if @GNULIB_REALLOC_POSIX@
+ # if !@HAVE_REALLOC_POSIX@
+ #  undef realloc
+ #  define realloc rpl_realloc
+ extern void * realloc (void *ptr, size_t size);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef realloc
+ # define realloc(p,s) \
+     (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \
+                       "use gnulib module realloc-posix for portability"), \
+      realloc (p, s))
+ #endif
+ 
+ 
+ #if @GNULIB_CALLOC_POSIX@
+ # if !@HAVE_CALLOC_POSIX@
+ #  undef calloc
+ #  define calloc rpl_calloc
+ extern void * calloc (size_t nmemb, size_t size);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef calloc
+ # define calloc(n,s) \
+     (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \
+                       "use gnulib module calloc-posix for portability"), \
+      calloc (n, s))
+ #endif
+ 
+ 
+ #if @GNULIB_GETSUBOPT@
+ /* Assuming *OPTIONP is a comma separated list of elements of the form
+    "token" or "token=value", getsubopt parses the first of these elements.
+    If the first element refers to a "token" that is member of the given
+    NULL-terminated array of tokens:
+      - It replaces the comma with a NUL byte, updates *OPTIONP to point past
+        the first option and the comma, sets *VALUEP to the value of the
+        element (or NULL if it doesn't contain an "=" sign),
+      - It returns the index of the "token" in the given array of tokens.
+    Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
+    For more details see the POSIX:2001 specification.
+    http://www.opengroup.org/susv3xsh/getsubopt.html */
+ # if !@HAVE_GETSUBOPT@
+ extern int getsubopt (char **optionp, char *const *tokens, char **valuep);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef getsubopt
+ # define getsubopt(o,t,v) \
+     (GL_LINK_WARNING ("getsubopt is unportable - " \
+                       "use gnulib module getsubopt for portability"), \
+      getsubopt (o, t, v))
+ #endif
+ 
+ 
+ #if @GNULIB_MKDTEMP@
+ # if !@HAVE_MKDTEMP@
+ /* Create a unique temporary directory from TEMPLATE.
+    The last six characters of TEMPLATE must be "XXXXXX";
+    they are replaced with a string that makes the directory name unique.
+    Returns TEMPLATE, or a null pointer if it cannot get a unique name.
+    The directory is created mode 700.  */
+ extern char * mkdtemp (char * /*template*/);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef mkdtemp
+ # define mkdtemp(t) \
+     (GL_LINK_WARNING ("mkdtemp is unportable - " \
+                       "use gnulib module mkdtemp for portability"), \
+      mkdtemp (t))
+ #endif
+ 
+ 
+ #if @GNULIB_MKSTEMP@
+ # if @REPLACE_MKSTEMP@
+ /* Create a unique temporary file from TEMPLATE.
+    The last six characters of TEMPLATE must be "XXXXXX";
+    they are replaced with a string that makes the file name unique.
+    The file is then created, ensuring it didn't exist before.
+    The file is created read-write (mask at least 0600 & ~umask), but it may be
+    world-readable and world-writable (mask 0666 & ~umask), depending on the
+    implementation.
+    Returns the open file descriptor if successful, otherwise -1 and errno
+    set.  */
+ #  define mkstemp rpl_mkstemp
+ extern int mkstemp (char * /*template*/);
+ # else
+ /* On MacOS X 10.3, only <unistd.h> declares mkstemp.  */
+ #  include <unistd.h>
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef mkstemp
+ # define mkstemp(t) \
+     (GL_LINK_WARNING ("mkstemp is unportable - " \
+                       "use gnulib module mkstemp for portability"), \
+      mkstemp (t))
+ #endif
+ 
+ 
+ #if @GNULIB_PUTENV@
+ # if @REPLACE_PUTENV@
+ #  undef putenv
+ #  define putenv rpl_putenv
+ extern int putenv (char *string);
+ # endif
+ #endif
+ 
+ 
+ #if @GNULIB_RPMATCH@
+ # if !@HAVE_RPMATCH@
+ /* Test a user response to a question.
+    Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear.  */
+ extern int rpmatch (const char *response);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef rpmatch
+ # define rpmatch(r) \
+     (GL_LINK_WARNING ("rpmatch is unportable - " \
+                       "use gnulib module rpmatch for portability"), \
+      rpmatch (r))
+ #endif
+ 
+ 
+ #if @GNULIB_SETENV@
+ # if !@HAVE_SETENV@
+ /* Set NAME to VALUE in the environment.
+    If REPLACE is nonzero, overwrite an existing value.  */
+ extern int setenv (const char *name, const char *value, int replace);
+ # endif
+ #endif
+ 
+ 
+ #if @GNULIB_UNSETENV@
+ # if @HAVE_UNSETENV@
+ #  if @VOID_UNSETENV@
+ /* On some systems, unsetenv() returns void.
+    This is the case for MacOS X 10.3, FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4.  */
+ #   define unsetenv(name) ((unsetenv)(name), 0)
+ #  endif
+ # else
+ /* Remove the variable NAME from the environment.  */
+ extern int unsetenv (const char *name);
+ # endif
+ #endif
+ 
+ 
+ #if @GNULIB_STRTOD@
+ # if @REPLACE_STRTOD@
+ #  define strtod rpl_strtod
+ # endif
+ # if !@HAVE_STRTOD@ || @REPLACE_STRTOD@
+  /* Parse a double from STRING, updating ENDP if appropriate.  */
+ extern double strtod (const char *str, char **endp);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strtod
+ # define strtod(s, e)                           \
+     (GL_LINK_WARNING ("strtod is unportable - " \
+                       "use gnulib module strtod for portability"), \
+      strtod (s, e))
+ #endif
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #endif /* _GL_STDLIB_H */
+ #endif /* _GL_STDLIB_H */
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/stpcpy.c texinfo-4.13/gnulib/lib/stpcpy.c
*** texinfo-4.12/gnulib/lib/stpcpy.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/stpcpy.c	Sun Jun  8 06:04:14 2008
***************
*** 0 ****
--- 1,48 ----
+ /* stpcpy.c -- copy a string and return pointer to end of new string
+    Copyright (C) 1992, 1995, 1997-1998, 2006 Free Software Foundation, Inc.
+ 
+    NOTE: The canonical source of this file is maintained with the GNU C Library.
+    Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+ 
+    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 3 of the License, or 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ #include <string.h>
+ 
+ #undef __stpcpy
+ #ifdef _LIBC
+ # undef stpcpy
+ #endif
+ 
+ #ifndef weak_alias
+ # define __stpcpy stpcpy
+ #endif
+ 
+ /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
+ char *
+ __stpcpy (char *dest, const char *src)
+ {
+   register char *d = dest;
+   register const char *s = src;
+ 
+   do
+     *d++ = *s;
+   while (*s++ != '\0');
+ 
+   return d - 1;
+ }
+ #ifdef weak_alias
+ weak_alias (__stpcpy, stpcpy)
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/str-kmp.h texinfo-4.13/gnulib/lib/str-kmp.h
*** texinfo-4.12/gnulib/lib/str-kmp.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/str-kmp.h	Mon May 12 05:38:21 2008
***************
*** 0 ****
--- 1,150 ----
+ /* Substring search in a NUL terminated string of 'char' elements,
+    using the Knuth-Morris-Pratt algorithm.
+    Copyright (C) 2005-2008 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2005.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* Before including this file, you need to define:
+      CANON_ELEMENT(c)        A macro that canonicalizes an element right after
+                              it has been fetched from one of the two strings.
+                              The argument is an 'unsigned char'; the result
+                              must be an 'unsigned char' as well.  */
+ 
+ /* Knuth-Morris-Pratt algorithm.
+    See http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm
+    Return a boolean indicating success:
+    Return true and set *RESULTP if the search was completed.
+    Return false if it was aborted because not enough memory was available.  */
+ static bool
+ knuth_morris_pratt_unibyte (const char *haystack, const char *needle,
+ 			    const char **resultp)
+ {
+   size_t m = strlen (needle);
+ 
+   /* Allocate the table.  */
+   size_t *table = (size_t *) nmalloca (m, sizeof (size_t));
+   if (table == NULL)
+     return false;
+   /* Fill the table.
+      For 0 < i < m:
+        0 < table[i] <= i is defined such that
+        forall 0 < x < table[i]: needle[x..i-1] != needle[0..i-1-x],
+        and table[i] is as large as possible with this property.
+      This implies:
+      1) For 0 < i < m:
+           If table[i] < i,
+           needle[table[i]..i-1] = needle[0..i-1-table[i]].
+      2) For 0 < i < m:
+           rhaystack[0..i-1] == needle[0..i-1]
+           and exists h, i <= h < m: rhaystack[h] != needle[h]
+           implies
+           forall 0 <= x < table[i]: rhaystack[x..x+m-1] != needle[0..m-1].
+      table[0] remains uninitialized.  */
+   {
+     size_t i, j;
+ 
+     /* i = 1: Nothing to verify for x = 0.  */
+     table[1] = 1;
+     j = 0;
+ 
+     for (i = 2; i < m; i++)
+       {
+ 	/* Here: j = i-1 - table[i-1].
+ 	   The inequality needle[x..i-1] != needle[0..i-1-x] is known to hold
+ 	   for x < table[i-1], by induction.
+ 	   Furthermore, if j>0: needle[i-1-j..i-2] = needle[0..j-1].  */
+ 	unsigned char b = CANON_ELEMENT ((unsigned char) needle[i - 1]);
+ 
+ 	for (;;)
+ 	  {
+ 	    /* Invariants: The inequality needle[x..i-1] != needle[0..i-1-x]
+ 	       is known to hold for x < i-1-j.
+ 	       Furthermore, if j>0: needle[i-1-j..i-2] = needle[0..j-1].  */
+ 	    if (b == CANON_ELEMENT ((unsigned char) needle[j]))
+ 	      {
+ 		/* Set table[i] := i-1-j.  */
+ 		table[i] = i - ++j;
+ 		break;
+ 	      }
+ 	    /* The inequality needle[x..i-1] != needle[0..i-1-x] also holds
+ 	       for x = i-1-j, because
+ 	         needle[i-1] != needle[j] = needle[i-1-x].  */
+ 	    if (j == 0)
+ 	      {
+ 		/* The inequality holds for all possible x.  */
+ 		table[i] = i;
+ 		break;
+ 	      }
+ 	    /* The inequality needle[x..i-1] != needle[0..i-1-x] also holds
+ 	       for i-1-j < x < i-1-j+table[j], because for these x:
+ 		 needle[x..i-2]
+ 		 = needle[x-(i-1-j)..j-1]
+ 		 != needle[0..j-1-(x-(i-1-j))]  (by definition of table[j])
+ 		    = needle[0..i-2-x],
+ 	       hence needle[x..i-1] != needle[0..i-1-x].
+ 	       Furthermore
+ 		 needle[i-1-j+table[j]..i-2]
+ 		 = needle[table[j]..j-1]
+ 		 = needle[0..j-1-table[j]]  (by definition of table[j]).  */
+ 	    j = j - table[j];
+ 	  }
+ 	/* Here: j = i - table[i].  */
+       }
+   }
+ 
+   /* Search, using the table to accelerate the processing.  */
+   {
+     size_t j;
+     const char *rhaystack;
+     const char *phaystack;
+ 
+     *resultp = NULL;
+     j = 0;
+     rhaystack = haystack;
+     phaystack = haystack;
+     /* Invariant: phaystack = rhaystack + j.  */
+     while (*phaystack != '\0')
+       if (CANON_ELEMENT ((unsigned char) needle[j])
+ 	  == CANON_ELEMENT ((unsigned char) *phaystack))
+ 	{
+ 	  j++;
+ 	  phaystack++;
+ 	  if (j == m)
+ 	    {
+ 	      /* The entire needle has been found.  */
+ 	      *resultp = rhaystack;
+ 	      break;
+ 	    }
+ 	}
+       else if (j > 0)
+ 	{
+ 	  /* Found a match of needle[0..j-1], mismatch at needle[j].  */
+ 	  rhaystack += table[j];
+ 	  j -= table[j];
+ 	}
+       else
+ 	{
+ 	  /* Found a mismatch at needle[0] already.  */
+ 	  rhaystack++;
+ 	  phaystack++;
+ 	}
+   }
+ 
+   freea (table);
+   return true;
+ }
+ 
+ #undef CANON_ELEMENT
diff -Nrc2 texinfo-4.12/gnulib/lib/str-two-way.h texinfo-4.13/gnulib/lib/str-two-way.h
*** texinfo-4.12/gnulib/lib/str-two-way.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/str-two-way.h	Sat Jul 26 10:13:26 2008
***************
*** 0 ****
--- 1,429 ----
+ /* Byte-wise substring search, using the Two-Way algorithm.
+    Copyright (C) 2008 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Written by Eric Blake <ebb9@byu.net>, 2008.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* Before including this file, you need to include <config.h> and
+    <string.h>, and define:
+      RESULT_TYPE             A macro that expands to the return type.
+      AVAILABLE(h, h_l, j, n_l)
+ 			     A macro that returns nonzero if there are
+ 			     at least N_L bytes left starting at H[J].
+ 			     H is 'unsigned char *', H_L, J, and N_L
+ 			     are 'size_t'; H_L is an lvalue.  For
+ 			     NUL-terminated searches, H_L can be
+ 			     modified each iteration to avoid having
+ 			     to compute the end of H up front.
+ 
+   For case-insensitivity, you may optionally define:
+      CMP_FUNC(p1, p2, l)     A macro that returns 0 iff the first L
+ 			     characters of P1 and P2 are equal.
+      CANON_ELEMENT(c)        A macro that canonicalizes an element right after
+ 			     it has been fetched from one of the two strings.
+ 			     The argument is an 'unsigned char'; the result
+ 			     must be an 'unsigned char' as well.
+ 
+   This file undefines the macros documented above, and defines
+   LONG_NEEDLE_THRESHOLD.
+ */
+ 
+ #include <limits.h>
+ #include <stdint.h>
+ 
+ /* We use the Two-Way string matching algorithm, which guarantees
+    linear complexity with constant space.  Additionally, for long
+    needles, we also use a bad character shift table similar to the
+    Boyer-Moore algorithm to achieve improved (potentially sub-linear)
+    performance.
+ 
+    See http://www-igm.univ-mlv.fr/~lecroq/string/node26.html#SECTION00260
+    and http://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm
+ */
+ 
+ /* Point at which computing a bad-byte shift table is likely to be
+    worthwhile.  Small needles should not compute a table, since it
+    adds (1 << CHAR_BIT) + NEEDLE_LEN computations of preparation for a
+    speedup no greater than a factor of NEEDLE_LEN.  The larger the
+    needle, the better the potential performance gain.  On the other
+    hand, on non-POSIX systems with CHAR_BIT larger than eight, the
+    memory required for the table is prohibitive.  */
+ #if CHAR_BIT < 10
+ # define LONG_NEEDLE_THRESHOLD 32U
+ #else
+ # define LONG_NEEDLE_THRESHOLD SIZE_MAX
+ #endif
+ 
+ #ifndef MAX
+ # define MAX(a, b) ((a < b) ? (b) : (a))
+ #endif
+ 
+ #ifndef CANON_ELEMENT
+ # define CANON_ELEMENT(c) c
+ #endif
+ #ifndef CMP_FUNC
+ # define CMP_FUNC memcmp
+ #endif
+ 
+ /* Perform a critical factorization of NEEDLE, of length NEEDLE_LEN.
+    Return the index of the first byte in the right half, and set
+    *PERIOD to the global period of the right half.
+ 
+    The global period of a string is the smallest index (possibly its
+    length) at which all remaining bytes in the string are repetitions
+    of the prefix (the last repetition may be a subset of the prefix).
+ 
+    When NEEDLE is factored into two halves, a local period is the
+    length of the smallest word that shares a suffix with the left half
+    and shares a prefix with the right half.  All factorizations of a
+    non-empty NEEDLE have a local period of at least 1 and no greater
+    than NEEDLE_LEN.
+ 
+    A critical factorization has the property that the local period
+    equals the global period.  All strings have at least one critical
+    factorization with the left half smaller than the global period.
+ 
+    Given an ordered alphabet, a critical factorization can be computed
+    in linear time, with 2 * NEEDLE_LEN comparisons, by computing the
+    larger of two ordered maximal suffixes.  The ordered maximal
+    suffixes are determined by lexicographic comparison of
+    periodicity.  */
+ static size_t
+ critical_factorization (const unsigned char *needle, size_t needle_len,
+ 			size_t *period)
+ {
+   /* Index of last byte of left half, or SIZE_MAX.  */
+   size_t max_suffix, max_suffix_rev;
+   size_t j; /* Index into NEEDLE for current candidate suffix.  */
+   size_t k; /* Offset into current period.  */
+   size_t p; /* Intermediate period.  */
+   unsigned char a, b; /* Current comparison bytes.  */
+ 
+   /* Invariants:
+      0 <= j < NEEDLE_LEN - 1
+      -1 <= max_suffix{,_rev} < j (treating SIZE_MAX as if it were signed)
+      min(max_suffix, max_suffix_rev) < global period of NEEDLE
+      1 <= p <= global period of NEEDLE
+      p == global period of the substring NEEDLE[max_suffix{,_rev}+1...j]
+      1 <= k <= p
+   */
+ 
+   /* Perform lexicographic search.  */
+   max_suffix = SIZE_MAX;
+   j = 0;
+   k = p = 1;
+   while (j + k < needle_len)
+     {
+       a = CANON_ELEMENT (needle[j + k]);
+       b = CANON_ELEMENT (needle[max_suffix + k]);
+       if (a < b)
+ 	{
+ 	  /* Suffix is smaller, period is entire prefix so far.  */
+ 	  j += k;
+ 	  k = 1;
+ 	  p = j - max_suffix;
+ 	}
+       else if (a == b)
+ 	{
+ 	  /* Advance through repetition of the current period.  */
+ 	  if (k != p)
+ 	    ++k;
+ 	  else
+ 	    {
+ 	      j += p;
+ 	      k = 1;
+ 	    }
+ 	}
+       else /* b < a */
+ 	{
+ 	  /* Suffix is larger, start over from current location.  */
+ 	  max_suffix = j++;
+ 	  k = p = 1;
+ 	}
+     }
+   *period = p;
+ 
+   /* Perform reverse lexicographic search.  */
+   max_suffix_rev = SIZE_MAX;
+   j = 0;
+   k = p = 1;
+   while (j + k < needle_len)
+     {
+       a = CANON_ELEMENT (needle[j + k]);
+       b = CANON_ELEMENT (needle[max_suffix_rev + k]);
+       if (b < a)
+ 	{
+ 	  /* Suffix is smaller, period is entire prefix so far.  */
+ 	  j += k;
+ 	  k = 1;
+ 	  p = j - max_suffix_rev;
+ 	}
+       else if (a == b)
+ 	{
+ 	  /* Advance through repetition of the current period.  */
+ 	  if (k != p)
+ 	    ++k;
+ 	  else
+ 	    {
+ 	      j += p;
+ 	      k = 1;
+ 	    }
+ 	}
+       else /* a < b */
+ 	{
+ 	  /* Suffix is larger, start over from current location.  */
+ 	  max_suffix_rev = j++;
+ 	  k = p = 1;
+ 	}
+     }
+ 
+   /* Choose the longer suffix.  Return the first byte of the right
+      half, rather than the last byte of the left half.  */
+   if (max_suffix_rev + 1 < max_suffix + 1)
+     return max_suffix + 1;
+   *period = p;
+   return max_suffix_rev + 1;
+ }
+ 
+ /* Return the first location of non-empty NEEDLE within HAYSTACK, or
+    NULL.  HAYSTACK_LEN is the minimum known length of HAYSTACK.  This
+    method is optimized for NEEDLE_LEN < LONG_NEEDLE_THRESHOLD.
+    Performance is guaranteed to be linear, with an initialization cost
+    of 2 * NEEDLE_LEN comparisons.
+ 
+    If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at
+    most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching.
+    If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
+    HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching.  */
+ static RETURN_TYPE
+ two_way_short_needle (const unsigned char *haystack, size_t haystack_len,
+ 		      const unsigned char *needle, size_t needle_len)
+ {
+   size_t i; /* Index into current byte of NEEDLE.  */
+   size_t j; /* Index into current window of HAYSTACK.  */
+   size_t period; /* The period of the right half of needle.  */
+   size_t suffix; /* The index of the right half of needle.  */
+ 
+   /* Factor the needle into two halves, such that the left half is
+      smaller than the global period, and the right half is
+      periodic (with a period as large as NEEDLE_LEN - suffix).  */
+   suffix = critical_factorization (needle, needle_len, &period);
+ 
+   /* Perform the search.  Each iteration compares the right half
+      first.  */
+   if (CMP_FUNC (needle, needle + period, suffix) == 0)
+     {
+       /* Entire needle is periodic; a mismatch can only advance by the
+ 	 period, so use memory to avoid rescanning known occurrences
+ 	 of the period.  */
+       size_t memory = 0;
+       j = 0;
+       while (AVAILABLE (haystack, haystack_len, j, needle_len))
+ 	{
+ 	  /* Scan for matches in right half.  */
+ 	  i = MAX (suffix, memory);
+ 	  while (i < needle_len && (CANON_ELEMENT (needle[i])
+ 				    == CANON_ELEMENT (haystack[i + j])))
+ 	    ++i;
+ 	  if (needle_len <= i)
+ 	    {
+ 	      /* Scan for matches in left half.  */
+ 	      i = suffix - 1;
+ 	      while (memory < i + 1 && (CANON_ELEMENT (needle[i])
+ 					== CANON_ELEMENT (haystack[i + j])))
+ 		--i;
+ 	      if (i + 1 < memory + 1)
+ 		return (RETURN_TYPE) (haystack + j);
+ 	      /* No match, so remember how many repetitions of period
+ 		 on the right half were scanned.  */
+ 	      j += period;
+ 	      memory = needle_len - period;
+ 	    }
+ 	  else
+ 	    {
+ 	      j += i - suffix + 1;
+ 	      memory = 0;
+ 	    }
+ 	}
+     }
+   else
+     {
+       /* The two halves of needle are distinct; no extra memory is
+ 	 required, and any mismatch results in a maximal shift.  */
+       period = MAX (suffix, needle_len - suffix) + 1;
+       j = 0;
+       while (AVAILABLE (haystack, haystack_len, j, needle_len))
+ 	{
+ 	  /* Scan for matches in right half.  */
+ 	  i = suffix;
+ 	  while (i < needle_len && (CANON_ELEMENT (needle[i])
+ 				    == CANON_ELEMENT (haystack[i + j])))
+ 	    ++i;
+ 	  if (needle_len <= i)
+ 	    {
+ 	      /* Scan for matches in left half.  */
+ 	      i = suffix - 1;
+ 	      while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
+ 				       == CANON_ELEMENT (haystack[i + j])))
+ 		--i;
+ 	      if (i == SIZE_MAX)
+ 		return (RETURN_TYPE) (haystack + j);
+ 	      j += period;
+ 	    }
+ 	  else
+ 	    j += i - suffix + 1;
+ 	}
+     }
+   return NULL;
+ }
+ 
+ /* Return the first location of non-empty NEEDLE within HAYSTACK, or
+    NULL.  HAYSTACK_LEN is the minimum known length of HAYSTACK.  This
+    method is optimized for LONG_NEEDLE_THRESHOLD <= NEEDLE_LEN.
+    Performance is guaranteed to be linear, with an initialization cost
+    of 3 * NEEDLE_LEN + (1 << CHAR_BIT) operations.
+ 
+    If AVAILABLE does not modify HAYSTACK_LEN (as in memmem), then at
+    most 2 * HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching,
+    and sublinear performance O(HAYSTACK_LEN / NEEDLE_LEN) is possible.
+    If AVAILABLE modifies HAYSTACK_LEN (as in strstr), then at most 3 *
+    HAYSTACK_LEN - NEEDLE_LEN comparisons occur in searching, and
+    sublinear performance is not possible.  */
+ static RETURN_TYPE
+ two_way_long_needle (const unsigned char *haystack, size_t haystack_len,
+ 		     const unsigned char *needle, size_t needle_len)
+ {
+   size_t i; /* Index into current byte of NEEDLE.  */
+   size_t j; /* Index into current window of HAYSTACK.  */
+   size_t period; /* The period of the right half of needle.  */
+   size_t suffix; /* The index of the right half of needle.  */
+   size_t shift_table[1U << CHAR_BIT]; /* See below.  */
+ 
+   /* Factor the needle into two halves, such that the left half is
+      smaller than the global period, and the right half is
+      periodic (with a period as large as NEEDLE_LEN - suffix).  */
+   suffix = critical_factorization (needle, needle_len, &period);
+ 
+   /* Populate shift_table.  For each possible byte value c,
+      shift_table[c] is the distance from the last occurrence of c to
+      the end of NEEDLE, or NEEDLE_LEN if c is absent from the NEEDLE.
+      shift_table[NEEDLE[NEEDLE_LEN - 1]] contains the only 0.  */
+   for (i = 0; i < 1U << CHAR_BIT; i++)
+     shift_table[i] = needle_len;
+   for (i = 0; i < needle_len; i++)
+     shift_table[CANON_ELEMENT (needle[i])] = needle_len - i - 1;
+ 
+   /* Perform the search.  Each iteration compares the right half
+      first.  */
+   if (CMP_FUNC (needle, needle + period, suffix) == 0)
+     {
+       /* Entire needle is periodic; a mismatch can only advance by the
+ 	 period, so use memory to avoid rescanning known occurrences
+ 	 of the period.  */
+       size_t memory = 0;
+       size_t shift;
+       j = 0;
+       while (AVAILABLE (haystack, haystack_len, j, needle_len))
+ 	{
+ 	  /* Check the last byte first; if it does not match, then
+ 	     shift to the next possible match location.  */
+ 	  shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
+ 	  if (0 < shift)
+ 	    {
+ 	      if (memory && shift < period)
+ 		{
+ 		  /* Since needle is periodic, but the last period has
+ 		     a byte out of place, there can be no match until
+ 		     after the mismatch.  */
+ 		  shift = needle_len - period;
+ 		  memory = 0;
+ 		}
+ 	      j += shift;
+ 	      continue;
+ 	    }
+ 	  /* Scan for matches in right half.  The last byte has
+ 	     already been matched, by virtue of the shift table.  */
+ 	  i = MAX (suffix, memory);
+ 	  while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
+ 					== CANON_ELEMENT (haystack[i + j])))
+ 	    ++i;
+ 	  if (needle_len - 1 <= i)
+ 	    {
+ 	      /* Scan for matches in left half.  */
+ 	      i = suffix - 1;
+ 	      while (memory < i + 1 && (CANON_ELEMENT (needle[i])
+ 					== CANON_ELEMENT (haystack[i + j])))
+ 		--i;
+ 	      if (i + 1 < memory + 1)
+ 		return (RETURN_TYPE) (haystack + j);
+ 	      /* No match, so remember how many repetitions of period
+ 		 on the right half were scanned.  */
+ 	      j += period;
+ 	      memory = needle_len - period;
+ 	    }
+ 	  else
+ 	    {
+ 	      j += i - suffix + 1;
+ 	      memory = 0;
+ 	    }
+ 	}
+     }
+   else
+     {
+       /* The two halves of needle are distinct; no extra memory is
+ 	 required, and any mismatch results in a maximal shift.  */
+       size_t shift;
+       period = MAX (suffix, needle_len - suffix) + 1;
+       j = 0;
+       while (AVAILABLE (haystack, haystack_len, j, needle_len))
+ 	{
+ 	  /* Check the last byte first; if it does not match, then
+ 	     shift to the next possible match location.  */
+ 	  shift = shift_table[CANON_ELEMENT (haystack[j + needle_len - 1])];
+ 	  if (0 < shift)
+ 	    {
+ 	      j += shift;
+ 	      continue;
+ 	    }
+ 	  /* Scan for matches in right half.  The last byte has
+ 	     already been matched, by virtue of the shift table.  */
+ 	  i = suffix;
+ 	  while (i < needle_len - 1 && (CANON_ELEMENT (needle[i])
+ 					== CANON_ELEMENT (haystack[i + j])))
+ 	    ++i;
+ 	  if (needle_len - 1 <= i)
+ 	    {
+ 	      /* Scan for matches in left half.  */
+ 	      i = suffix - 1;
+ 	      while (i != SIZE_MAX && (CANON_ELEMENT (needle[i])
+ 				       == CANON_ELEMENT (haystack[i + j])))
+ 		--i;
+ 	      if (i == SIZE_MAX)
+ 		return (RETURN_TYPE) (haystack + j);
+ 	      j += period;
+ 	    }
+ 	  else
+ 	    j += i - suffix + 1;
+ 	}
+     }
+   return NULL;
+ }
+ 
+ #undef AVAILABLE
+ #undef CANON_ELEMENT
+ #undef CMP_FUNC
+ #undef MAX
+ #undef RETURN_TYPE
diff -Nrc2 texinfo-4.12/gnulib/lib/strdup.c texinfo-4.13/gnulib/lib/strdup.c
*** texinfo-4.12/gnulib/lib/strdup.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/strdup.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,55 ----
+ /* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004, 2006, 2007 Free
+    Software Foundation, Inc.
+ 
+    This file is part of the GNU C Library.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #ifndef _LIBC
+ # include <config.h>
+ #endif
+ 
+ /* Get specification.  */
+ #include <string.h>
+ 
+ #include <stdlib.h>
+ 
+ #undef __strdup
+ #ifdef _LIBC
+ # undef strdup
+ #endif
+ 
+ #ifndef weak_alias
+ # define __strdup strdup
+ #endif
+ 
+ /* Duplicate S, returning an identical malloc'd string.  */
+ char *
+ __strdup (const char *s)
+ {
+   size_t len = strlen (s) + 1;
+   void *new = malloc (len);
+ 
+   if (new == NULL)
+     return NULL;
+ 
+   return (char *) memcpy (new, s, len);
+ }
+ #ifdef libc_hidden_def
+ libc_hidden_def (__strdup)
+ #endif
+ #ifdef weak_alias
+ weak_alias (__strdup, strdup)
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/streq.h texinfo-4.13/gnulib/lib/streq.h
*** texinfo-4.12/gnulib/lib/streq.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/streq.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,176 ----
+ /* Optimized string comparison.
+    Copyright (C) 2001-2002, 2007 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 3 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+ 
+ #ifndef _GL_STREQ_H
+ #define _GL_STREQ_H
+ 
+ #include <string.h>
+ 
+ /* STREQ allows to optimize string comparison with a small literal string.
+      STREQ (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+    is semantically equivalent to
+      strcmp (s, "EUC-KR") == 0
+    just faster.  */
+ 
+ /* Help GCC to generate good code for string comparisons with
+    immediate strings. */
+ #if defined (__GNUC__) && defined (__OPTIMIZE__)
+ 
+ static inline int
+ streq9 (const char *s1, const char *s2)
+ {
+   return strcmp (s1 + 9, s2 + 9) == 0;
+ }
+ 
+ static inline int
+ streq8 (const char *s1, const char *s2, char s28)
+ {
+   if (s1[8] == s28)
+     {
+       if (s28 == 0)
+         return 1;
+       else
+         return streq9 (s1, s2);
+     }
+   else
+     return 0;
+ }
+ 
+ static inline int
+ streq7 (const char *s1, const char *s2, char s27, char s28)
+ {
+   if (s1[7] == s27)
+     {
+       if (s27 == 0)
+         return 1;
+       else
+         return streq8 (s1, s2, s28);
+     }
+   else
+     return 0;
+ }
+ 
+ static inline int
+ streq6 (const char *s1, const char *s2, char s26, char s27, char s28)
+ {
+   if (s1[6] == s26)
+     {
+       if (s26 == 0)
+         return 1;
+       else
+         return streq7 (s1, s2, s27, s28);
+     }
+   else
+     return 0;
+ }
+ 
+ static inline int
+ streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28)
+ {
+   if (s1[5] == s25)
+     {
+       if (s25 == 0)
+         return 1;
+       else
+         return streq6 (s1, s2, s26, s27, s28);
+     }
+   else
+     return 0;
+ }
+ 
+ static inline int
+ streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28)
+ {
+   if (s1[4] == s24)
+     {
+       if (s24 == 0)
+         return 1;
+       else
+         return streq5 (s1, s2, s25, s26, s27, s28);
+     }
+   else
+     return 0;
+ }
+ 
+ static inline int
+ streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28)
+ {
+   if (s1[3] == s23)
+     {
+       if (s23 == 0)
+         return 1;
+       else
+         return streq4 (s1, s2, s24, s25, s26, s27, s28);
+     }
+   else
+     return 0;
+ }
+ 
+ static inline int
+ streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+ {
+   if (s1[2] == s22)
+     {
+       if (s22 == 0)
+         return 1;
+       else
+         return streq3 (s1, s2, s23, s24, s25, s26, s27, s28);
+     }
+   else
+     return 0;
+ }
+ 
+ static inline int
+ streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+ {
+   if (s1[1] == s21)
+     {
+       if (s21 == 0)
+         return 1;
+       else
+         return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28);
+     }
+   else
+     return 0;
+ }
+ 
+ static inline int
+ streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+ {
+   if (s1[0] == s20)
+     {
+       if (s20 == 0)
+         return 1;
+       else
+         return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28);
+     }
+   else
+     return 0;
+ }
+ 
+ #define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+   streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
+ 
+ #else
+ 
+ #define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+   (strcmp (s1, s2) == 0)
+ 
+ #endif
+ 
+ #endif /* _GL_STREQ_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/strerror.c texinfo-4.13/gnulib/lib/strerror.c
*** texinfo-4.12/gnulib/lib/strerror.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/strerror.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,49 ----
+ /* strerror.c --- POSIX compatible system error routine
+ 
+    Copyright (C) 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ #include <string.h>
+ 
+ #if REPLACE_STRERROR
+ 
+ # include <stdio.h>
+ 
+ # include "intprops.h"
+ 
+ # undef strerror
+ # if ! HAVE_DECL_STRERROR
+ #  define strerror(n) NULL
+ # endif
+ 
+ char *
+ rpl_strerror (int n)
+ {
+   char *result = strerror (n);
+ 
+   if (result == NULL || result[0] == '\0')
+     {
+       static char const fmt[] = "Unknown error (%d)";
+       static char mesg[sizeof fmt + INT_STRLEN_BOUND (n)];
+       sprintf (mesg, fmt, n);
+       return mesg;
+     }
+ 
+   return result;
+ }
+ 
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/string.in.h texinfo-4.13/gnulib/lib/string.in.h
*** texinfo-4.12/gnulib/lib/string.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/string.in.h	Thu May 22 05:11:32 2008
***************
*** 0 ****
--- 1,585 ----
+ /* A GNU-like <string.h>.
+ 
+    Copyright (C) 1995-1996, 2001-2008 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #ifndef _GL_STRING_H
+ 
+ /* The include_next requires a split double-inclusion guard.  */
+ #@INCLUDE_NEXT@ @NEXT_STRING_H@
+ 
+ #ifndef _GL_STRING_H
+ #define _GL_STRING_H
+ 
+ 
+ #ifndef __attribute__
+ /* This feature is available in gcc versions 2.5 and later.  */
+ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+ #  define __attribute__(Spec) /* empty */
+ # endif
+ /* The attribute __pure__ was added in gcc 2.96.  */
+ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
+ #  define __pure__ /* empty */
+ # endif
+ #endif
+ 
+ 
+ /* The definition of GL_LINK_WARNING is copied here.  */
+ 
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ 
+ /* Return the first occurrence of NEEDLE in HAYSTACK.  */
+ #if @GNULIB_MEMMEM@
+ # if @REPLACE_MEMMEM@
+ #  define memmem rpl_memmem
+ # endif
+ # if ! @HAVE_DECL_MEMMEM@ || @REPLACE_MEMMEM@
+ extern void *memmem (void const *__haystack, size_t __haystack_len,
+ 		     void const *__needle, size_t __needle_len)
+   __attribute__ ((__pure__));
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef memmem
+ # define memmem(a,al,b,bl) \
+     (GL_LINK_WARNING ("memmem is unportable and often quadratic - " \
+                       "use gnulib module memmem-simple for portability, " \
+                       "and module memmem for speed" ), \
+      memmem (a, al, b, bl))
+ #endif
+ 
+ /* Copy N bytes of SRC to DEST, return pointer to bytes after the
+    last written byte.  */
+ #if @GNULIB_MEMPCPY@
+ # if ! @HAVE_MEMPCPY@
+ extern void *mempcpy (void *restrict __dest, void const *restrict __src,
+ 		      size_t __n);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef mempcpy
+ # define mempcpy(a,b,n) \
+     (GL_LINK_WARNING ("mempcpy is unportable - " \
+                       "use gnulib module mempcpy for portability"), \
+      mempcpy (a, b, n))
+ #endif
+ 
+ /* Search backwards through a block for a byte (specified as an int).  */
+ #if @GNULIB_MEMRCHR@
+ # if ! @HAVE_DECL_MEMRCHR@
+ extern void *memrchr (void const *, int, size_t)
+   __attribute__ ((__pure__));
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef memrchr
+ # define memrchr(a,b,c) \
+     (GL_LINK_WARNING ("memrchr is unportable - " \
+                       "use gnulib module memrchr for portability"), \
+      memrchr (a, b, c))
+ #endif
+ 
+ /* Find the first occurrence of C in S.  More efficient than
+    memchr(S,C,N), at the expense of undefined behavior if C does not
+    occur within N bytes.  */
+ #if @GNULIB_RAWMEMCHR@
+ # if ! @HAVE_RAWMEMCHR@
+ extern void *rawmemchr (void const *__s, int __c_in)
+   __attribute__ ((__pure__));
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef rawmemchr
+ # define rawmemchr(a,b) \
+     (GL_LINK_WARNING ("rawmemchr is unportable - " \
+                       "use gnulib module rawmemchr for portability"), \
+      rawmemchr (a, b))
+ #endif
+ 
+ /* Copy SRC to DST, returning the address of the terminating '\0' in DST.  */
+ #if @GNULIB_STPCPY@
+ # if ! @HAVE_STPCPY@
+ extern char *stpcpy (char *restrict __dst, char const *restrict __src);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef stpcpy
+ # define stpcpy(a,b) \
+     (GL_LINK_WARNING ("stpcpy is unportable - " \
+                       "use gnulib module stpcpy for portability"), \
+      stpcpy (a, b))
+ #endif
+ 
+ /* Copy no more than N bytes of SRC to DST, returning a pointer past the
+    last non-NUL byte written into DST.  */
+ #if @GNULIB_STPNCPY@
+ # if ! @HAVE_STPNCPY@
+ #  define stpncpy gnu_stpncpy
+ extern char *stpncpy (char *restrict __dst, char const *restrict __src,
+ 		      size_t __n);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef stpncpy
+ # define stpncpy(a,b,n) \
+     (GL_LINK_WARNING ("stpncpy is unportable - " \
+                       "use gnulib module stpncpy for portability"), \
+      stpncpy (a, b, n))
+ #endif
+ 
+ #if defined GNULIB_POSIXCHECK
+ /* strchr() does not work with multibyte strings if the locale encoding is
+    GB18030 and the character to be searched is a digit.  */
+ # undef strchr
+ # define strchr(s,c) \
+     (GL_LINK_WARNING ("strchr cannot work correctly on character strings " \
+                       "in some multibyte locales - " \
+                       "use mbschr if you care about internationalization"), \
+      strchr (s, c))
+ #endif
+ 
+ /* Find the first occurrence of C in S or the final NUL byte.  */
+ #if @GNULIB_STRCHRNUL@
+ # if ! @HAVE_STRCHRNUL@
+ extern char *strchrnul (char const *__s, int __c_in)
+   __attribute__ ((__pure__));
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strchrnul
+ # define strchrnul(a,b) \
+     (GL_LINK_WARNING ("strchrnul is unportable - " \
+                       "use gnulib module strchrnul for portability"), \
+      strchrnul (a, b))
+ #endif
+ 
+ /* Duplicate S, returning an identical malloc'd string.  */
+ #if @GNULIB_STRDUP@
+ # if ! @HAVE_DECL_STRDUP@ && ! defined strdup
+ extern char *strdup (char const *__s);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strdup
+ # define strdup(a) \
+     (GL_LINK_WARNING ("strdup is unportable - " \
+                       "use gnulib module strdup for portability"), \
+      strdup (a))
+ #endif
+ 
+ /* Return a newly allocated copy of at most N bytes of STRING.  */
+ #if @GNULIB_STRNDUP@
+ # if ! @HAVE_STRNDUP@
+ #  undef strndup
+ #  define strndup rpl_strndup
+ # endif
+ # if ! @HAVE_STRNDUP@ || ! @HAVE_DECL_STRNDUP@
+ extern char *strndup (char const *__string, size_t __n);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strndup
+ # define strndup(a,n) \
+     (GL_LINK_WARNING ("strndup is unportable - " \
+                       "use gnulib module strndup for portability"), \
+      strndup (a, n))
+ #endif
+ 
+ /* Find the length (number of bytes) of STRING, but scan at most
+    MAXLEN bytes.  If no '\0' terminator is found in that many bytes,
+    return MAXLEN.  */
+ #if @GNULIB_STRNLEN@
+ # if ! @HAVE_DECL_STRNLEN@
+ extern size_t strnlen (char const *__string, size_t __maxlen)
+   __attribute__ ((__pure__));
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strnlen
+ # define strnlen(a,n) \
+     (GL_LINK_WARNING ("strnlen is unportable - " \
+                       "use gnulib module strnlen for portability"), \
+      strnlen (a, n))
+ #endif
+ 
+ #if defined GNULIB_POSIXCHECK
+ /* strcspn() assumes the second argument is a list of single-byte characters.
+    Even in this simple case, it does not work with multibyte strings if the
+    locale encoding is GB18030 and one of the characters to be searched is a
+    digit.  */
+ # undef strcspn
+ # define strcspn(s,a) \
+     (GL_LINK_WARNING ("strcspn cannot work correctly on character strings " \
+                       "in multibyte locales - " \
+                       "use mbscspn if you care about internationalization"), \
+      strcspn (s, a))
+ #endif
+ 
+ /* Find the first occurrence in S of any character in ACCEPT.  */
+ #if @GNULIB_STRPBRK@
+ # if ! @HAVE_STRPBRK@
+ extern char *strpbrk (char const *__s, char const *__accept)
+   __attribute__ ((__pure__));
+ # endif
+ # if defined GNULIB_POSIXCHECK
+ /* strpbrk() assumes the second argument is a list of single-byte characters.
+    Even in this simple case, it does not work with multibyte strings if the
+    locale encoding is GB18030 and one of the characters to be searched is a
+    digit.  */
+ #  undef strpbrk
+ #  define strpbrk(s,a) \
+      (GL_LINK_WARNING ("strpbrk cannot work correctly on character strings " \
+                        "in multibyte locales - " \
+                        "use mbspbrk if you care about internationalization"), \
+       strpbrk (s, a))
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strpbrk
+ # define strpbrk(s,a) \
+     (GL_LINK_WARNING ("strpbrk is unportable - " \
+                       "use gnulib module strpbrk for portability"), \
+      strpbrk (s, a))
+ #endif
+ 
+ #if defined GNULIB_POSIXCHECK
+ /* strspn() assumes the second argument is a list of single-byte characters.
+    Even in this simple case, it cannot work with multibyte strings.  */
+ # undef strspn
+ # define strspn(s,a) \
+     (GL_LINK_WARNING ("strspn cannot work correctly on character strings " \
+                       "in multibyte locales - " \
+                       "use mbsspn if you care about internationalization"), \
+      strspn (s, a))
+ #endif
+ 
+ #if defined GNULIB_POSIXCHECK
+ /* strrchr() does not work with multibyte strings if the locale encoding is
+    GB18030 and the character to be searched is a digit.  */
+ # undef strrchr
+ # define strrchr(s,c) \
+     (GL_LINK_WARNING ("strrchr cannot work correctly on character strings " \
+                       "in some multibyte locales - " \
+                       "use mbsrchr if you care about internationalization"), \
+      strrchr (s, c))
+ #endif
+ 
+ /* Search the next delimiter (char listed in DELIM) starting at *STRINGP.
+    If one is found, overwrite it with a NUL, and advance *STRINGP
+    to point to the next char after it.  Otherwise, set *STRINGP to NULL.
+    If *STRINGP was already NULL, nothing happens.
+    Return the old value of *STRINGP.
+ 
+    This is a variant of strtok() that is multithread-safe and supports
+    empty fields.
+ 
+    Caveat: It modifies the original string.
+    Caveat: These functions cannot be used on constant strings.
+    Caveat: The identity of the delimiting character is lost.
+    Caveat: It doesn't work with multibyte strings unless all of the delimiter
+            characters are ASCII characters < 0x30.
+ 
+    See also strtok_r().  */
+ #if @GNULIB_STRSEP@
+ # if ! @HAVE_STRSEP@
+ extern char *strsep (char **restrict __stringp, char const *restrict __delim);
+ # endif
+ # if defined GNULIB_POSIXCHECK
+ #  undef strsep
+ #  define strsep(s,d) \
+      (GL_LINK_WARNING ("strsep cannot work correctly on character strings " \
+                        "in multibyte locales - " \
+                        "use mbssep if you care about internationalization"), \
+       strsep (s, d))
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strsep
+ # define strsep(s,d) \
+     (GL_LINK_WARNING ("strsep is unportable - " \
+                       "use gnulib module strsep for portability"), \
+      strsep (s, d))
+ #endif
+ 
+ #if @GNULIB_STRSTR@
+ # if @REPLACE_STRSTR@
+ #  define strstr rpl_strstr
+ char *strstr (const char *haystack, const char *needle)
+   __attribute__ ((__pure__));
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ /* strstr() does not work with multibyte strings if the locale encoding is
+    different from UTF-8:
+    POSIX says that it operates on "strings", and "string" in POSIX is defined
+    as a sequence of bytes, not of characters.  */
+ # undef strstr
+ # define strstr(a,b) \
+     (GL_LINK_WARNING ("strstr is quadratic on many systems, and cannot " \
+                       "work correctly on character strings in most "    \
+                       "multibyte locales - " \
+                       "use mbsstr if you care about internationalization, " \
+                       "or use strstr if you care about speed"), \
+      strstr (a, b))
+ #endif
+ 
+ /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive
+    comparison.  */
+ #if @GNULIB_STRCASESTR@
+ # if @REPLACE_STRCASESTR@
+ #  define strcasestr rpl_strcasestr
+ # endif
+ # if ! @HAVE_STRCASESTR@ || @REPLACE_STRCASESTR@
+ extern char *strcasestr (const char *haystack, const char *needle)
+   __attribute__ ((__pure__));
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ /* strcasestr() does not work with multibyte strings:
+    It is a glibc extension, and glibc implements it only for unibyte
+    locales.  */
+ # undef strcasestr
+ # define strcasestr(a,b) \
+     (GL_LINK_WARNING ("strcasestr does work correctly on character strings " \
+                       "in multibyte locales - " \
+                       "use mbscasestr if you care about " \
+                       "internationalization, or use c-strcasestr if you want " \
+                       "a locale independent function"), \
+      strcasestr (a, b))
+ #endif
+ 
+ /* Parse S into tokens separated by characters in DELIM.
+    If S is NULL, the saved pointer in SAVE_PTR is used as
+    the next starting point.  For example:
+ 	char s[] = "-abc-=-def";
+ 	char *sp;
+ 	x = strtok_r(s, "-", &sp);	// x = "abc", sp = "=-def"
+ 	x = strtok_r(NULL, "-=", &sp);	// x = "def", sp = NULL
+ 	x = strtok_r(NULL, "=", &sp);	// x = NULL
+ 		// s = "abc\0-def\0"
+ 
+    This is a variant of strtok() that is multithread-safe.
+ 
+    For the POSIX documentation for this function, see:
+    http://www.opengroup.org/susv3xsh/strtok.html
+ 
+    Caveat: It modifies the original string.
+    Caveat: These functions cannot be used on constant strings.
+    Caveat: The identity of the delimiting character is lost.
+    Caveat: It doesn't work with multibyte strings unless all of the delimiter
+            characters are ASCII characters < 0x30.
+ 
+    See also strsep().  */
+ #if @GNULIB_STRTOK_R@
+ # if ! @HAVE_DECL_STRTOK_R@
+ extern char *strtok_r (char *restrict s, char const *restrict delim,
+ 		       char **restrict save_ptr);
+ # endif
+ # if defined GNULIB_POSIXCHECK
+ #  undef strtok_r
+ #  define strtok_r(s,d,p) \
+      (GL_LINK_WARNING ("strtok_r cannot work correctly on character strings " \
+                        "in multibyte locales - " \
+                        "use mbstok_r if you care about internationalization"), \
+       strtok_r (s, d, p))
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strtok_r
+ # define strtok_r(s,d,p) \
+     (GL_LINK_WARNING ("strtok_r is unportable - " \
+                       "use gnulib module strtok_r for portability"), \
+      strtok_r (s, d, p))
+ #endif
+ 
+ 
+ /* The following functions are not specified by POSIX.  They are gnulib
+    extensions.  */
+ 
+ #if @GNULIB_MBSLEN@
+ /* Return the number of multibyte characters in the character string STRING.
+    This considers multibyte characters, unlike strlen, which counts bytes.  */
+ extern size_t mbslen (const char *string);
+ #endif
+ 
+ #if @GNULIB_MBSNLEN@
+ /* Return the number of multibyte characters in the character string starting
+    at STRING and ending at STRING + LEN.  */
+ extern size_t mbsnlen (const char *string, size_t len);
+ #endif
+ 
+ #if @GNULIB_MBSCHR@
+ /* Locate the first single-byte character C in the character string STRING,
+    and return a pointer to it.  Return NULL if C is not found in STRING.
+    Unlike strchr(), this function works correctly in multibyte locales with
+    encodings such as GB18030.  */
+ # define mbschr rpl_mbschr /* avoid collision with HP-UX function */
+ extern char * mbschr (const char *string, int c);
+ #endif
+ 
+ #if @GNULIB_MBSRCHR@
+ /* Locate the last single-byte character C in the character string STRING,
+    and return a pointer to it.  Return NULL if C is not found in STRING.
+    Unlike strrchr(), this function works correctly in multibyte locales with
+    encodings such as GB18030.  */
+ # define mbsrchr rpl_mbsrchr /* avoid collision with HP-UX function */
+ extern char * mbsrchr (const char *string, int c);
+ #endif
+ 
+ #if @GNULIB_MBSSTR@
+ /* Find the first occurrence of the character string NEEDLE in the character
+    string HAYSTACK.  Return NULL if NEEDLE is not found in HAYSTACK.
+    Unlike strstr(), this function works correctly in multibyte locales with
+    encodings different from UTF-8.  */
+ extern char * mbsstr (const char *haystack, const char *needle);
+ #endif
+ 
+ #if @GNULIB_MBSCASECMP@
+ /* Compare the character strings S1 and S2, ignoring case, returning less than,
+    equal to or greater than zero if S1 is lexicographically less than, equal to
+    or greater than S2.
+    Note: This function may, in multibyte locales, return 0 for strings of
+    different lengths!
+    Unlike strcasecmp(), this function works correctly in multibyte locales.  */
+ extern int mbscasecmp (const char *s1, const char *s2);
+ #endif
+ 
+ #if @GNULIB_MBSNCASECMP@
+ /* Compare the initial segment of the character string S1 consisting of at most
+    N characters with the initial segment of the character string S2 consisting
+    of at most N characters, ignoring case, returning less than, equal to or
+    greater than zero if the initial segment of S1 is lexicographically less
+    than, equal to or greater than the initial segment of S2.
+    Note: This function may, in multibyte locales, return 0 for initial segments
+    of different lengths!
+    Unlike strncasecmp(), this function works correctly in multibyte locales.
+    But beware that N is not a byte count but a character count!  */
+ extern int mbsncasecmp (const char *s1, const char *s2, size_t n);
+ #endif
+ 
+ #if @GNULIB_MBSPCASECMP@
+ /* Compare the initial segment of the character string STRING consisting of
+    at most mbslen (PREFIX) characters with the character string PREFIX,
+    ignoring case, returning less than, equal to or greater than zero if this
+    initial segment is lexicographically less than, equal to or greater than
+    PREFIX.
+    Note: This function may, in multibyte locales, return 0 if STRING is of
+    smaller length than PREFIX!
+    Unlike strncasecmp(), this function works correctly in multibyte
+    locales.  */
+ extern char * mbspcasecmp (const char *string, const char *prefix);
+ #endif
+ 
+ #if @GNULIB_MBSCASESTR@
+ /* Find the first occurrence of the character string NEEDLE in the character
+    string HAYSTACK, using case-insensitive comparison.
+    Note: This function may, in multibyte locales, return success even if
+    strlen (haystack) < strlen (needle) !
+    Unlike strcasestr(), this function works correctly in multibyte locales.  */
+ extern char * mbscasestr (const char *haystack, const char *needle);
+ #endif
+ 
+ #if @GNULIB_MBSCSPN@
+ /* Find the first occurrence in the character string STRING of any character
+    in the character string ACCEPT.  Return the number of bytes from the
+    beginning of the string to this occurrence, or to the end of the string
+    if none exists.
+    Unlike strcspn(), this function works correctly in multibyte locales.  */
+ extern size_t mbscspn (const char *string, const char *accept);
+ #endif
+ 
+ #if @GNULIB_MBSPBRK@
+ /* Find the first occurrence in the character string STRING of any character
+    in the character string ACCEPT.  Return the pointer to it, or NULL if none
+    exists.
+    Unlike strpbrk(), this function works correctly in multibyte locales.  */
+ # define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */
+ extern char * mbspbrk (const char *string, const char *accept);
+ #endif
+ 
+ #if @GNULIB_MBSSPN@
+ /* Find the first occurrence in the character string STRING of any character
+    not in the character string REJECT.  Return the number of bytes from the
+    beginning of the string to this occurrence, or to the end of the string
+    if none exists.
+    Unlike strspn(), this function works correctly in multibyte locales.  */
+ extern size_t mbsspn (const char *string, const char *reject);
+ #endif
+ 
+ #if @GNULIB_MBSSEP@
+ /* Search the next delimiter (multibyte character listed in the character
+    string DELIM) starting at the character string *STRINGP.
+    If one is found, overwrite it with a NUL, and advance *STRINGP to point
+    to the next multibyte character after it.  Otherwise, set *STRINGP to NULL.
+    If *STRINGP was already NULL, nothing happens.
+    Return the old value of *STRINGP.
+ 
+    This is a variant of mbstok_r() that supports empty fields.
+ 
+    Caveat: It modifies the original string.
+    Caveat: These functions cannot be used on constant strings.
+    Caveat: The identity of the delimiting character is lost.
+ 
+    See also mbstok_r().  */
+ extern char * mbssep (char **stringp, const char *delim);
+ #endif
+ 
+ #if @GNULIB_MBSTOK_R@
+ /* Parse the character string STRING into tokens separated by characters in
+    the character string DELIM.
+    If STRING is NULL, the saved pointer in SAVE_PTR is used as
+    the next starting point.  For example:
+ 	char s[] = "-abc-=-def";
+ 	char *sp;
+ 	x = mbstok_r(s, "-", &sp);	// x = "abc", sp = "=-def"
+ 	x = mbstok_r(NULL, "-=", &sp);	// x = "def", sp = NULL
+ 	x = mbstok_r(NULL, "=", &sp);	// x = NULL
+ 		// s = "abc\0-def\0"
+ 
+    Caveat: It modifies the original string.
+    Caveat: These functions cannot be used on constant strings.
+    Caveat: The identity of the delimiting character is lost.
+ 
+    See also mbssep().  */
+ extern char * mbstok_r (char *string, const char *delim, char **save_ptr);
+ #endif
+ 
+ /* Map any int, typically from errno, into an error message.  */
+ #if @GNULIB_STRERROR@
+ # if @REPLACE_STRERROR@
+ #  undef strerror
+ #  define strerror rpl_strerror
+ extern char *strerror (int);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strerror
+ # define strerror(e) \
+     (GL_LINK_WARNING ("strerror is unportable - " \
+                       "use gnulib module strerror to guarantee non-NULL result"), \
+      strerror (e))
+ #endif
+ 
+ #if @GNULIB_STRSIGNAL@
+ # if @REPLACE_STRSIGNAL@
+ #  define strsignal rpl_strsignal
+ # endif
+ # if ! @HAVE_DECL_STRSIGNAL@ || @REPLACE_STRSIGNAL@
+ extern char *strsignal (int __sig);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef strsignal
+ # define strsignal(a) \
+     (GL_LINK_WARNING ("strsignal is unportable - " \
+                       "use gnulib module strsignal for portability"), \
+      strsignal (a))
+ #endif
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #endif /* _GL_STRING_H */
+ #endif /* _GL_STRING_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/strndup.c texinfo-4.13/gnulib/lib/strndup.c
*** texinfo-4.12/gnulib/lib/strndup.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/strndup.c	Sun Jun  8 06:04:15 2008
***************
*** 0 ****
--- 1,37 ----
+ /* A replacement function, for systems that lack strndup.
+ 
+    Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2005, 2006, 2007
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #include <config.h>
+ 
+ #include <string.h>
+ 
+ #include <stdlib.h>
+ 
+ char *
+ strndup (char const *s, size_t n)
+ {
+   size_t len = strnlen (s, n);
+   char *new = malloc (len + 1);
+ 
+   if (new == NULL)
+     return NULL;
+ 
+   new[len] = '\0';
+   return memcpy (new, s, len);
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/strnlen.c texinfo-4.13/gnulib/lib/strnlen.c
*** texinfo-4.12/gnulib/lib/strnlen.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/strnlen.c	Mon May 12 05:38:22 2008
***************
*** 0 ****
--- 1,31 ----
+ /* Find the length of STRING, but scan at most MAXLEN characters.
+    Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+    Written by Simon Josefsson.
+ 
+    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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #include <config.h>
+ 
+ #include <string.h>
+ 
+ /* Find the length of STRING, but scan at most MAXLEN characters.
+    If no '\0' terminator is found in that many characters, return MAXLEN.  */
+ 
+ size_t
+ strnlen (const char *string, size_t maxlen)
+ {
+   const char *end = memchr (string, '\0', maxlen);
+   return end ? (size_t) (end - string) : maxlen;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/strnlen1.c texinfo-4.13/gnulib/lib/strnlen1.c
*** texinfo-4.12/gnulib/lib/strnlen1.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/strnlen1.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,35 ----
+ /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+    Copyright (C) 2005-2006 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include "strnlen1.h"
+ 
+ #include <string.h>
+ 
+ /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+    If no '\0' terminator is found in that many characters, return MAXLEN.  */
+ /* This is the same as strnlen (string, maxlen - 1) + 1.  */
+ size_t
+ strnlen1 (const char *string, size_t maxlen)
+ {
+   const char *end = (const char *) memchr (string, '\0', maxlen);
+   if (end != NULL)
+     return end - string + 1;
+   else
+     return maxlen;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/strnlen1.h texinfo-4.13/gnulib/lib/strnlen1.h
*** texinfo-4.12/gnulib/lib/strnlen1.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/strnlen1.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,39 ----
+ /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+    Copyright (C) 2005 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _STRNLEN1_H
+ #define _STRNLEN1_H
+ 
+ #include <stddef.h>
+ 
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ 
+ /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+    If no '\0' terminator is found in that many characters, return MAXLEN.  */
+ /* This is the same as strnlen (string, maxlen - 1) + 1.  */
+ extern size_t strnlen1 (const char *string, size_t maxlen);
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ 
+ #endif /* _STRNLEN1_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/sys_stat.in.h texinfo-4.13/gnulib/lib/sys_stat.in.h
*** texinfo-4.12/gnulib/lib/sys_stat.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/sys_stat.in.h	Thu May 22 05:11:32 2008
***************
*** 0 ****
--- 1,291 ----
+ /* Provide a more complete sys/stat header file.
+    Copyright (C) 2006-2008 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* Written by Eric Blake, Paul Eggert, and Jim Meyering.  */
+ 
+ /* This file is supposed to be used on platforms where <sys/stat.h> is
+    incomplete.  It is intended to provide definitions and prototypes
+    needed by an application.  Start with what the system provides.  */
+ 
+ #ifndef _GL_SYS_STAT_H
+ 
+ /* The include_next requires a split double-inclusion guard.  */
+ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@
+ 
+ #ifndef _GL_SYS_STAT_H
+ #define _GL_SYS_STAT_H
+ 
+ /* Before doing "#define mkdir rpl_mkdir" below, we need to include all
+    headers that may declare mkdir().  */
+ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ # include <io.h>
+ #endif
+ 
+ #ifndef S_IFMT
+ # define S_IFMT 0170000
+ #endif
+ 
+ #if STAT_MACROS_BROKEN
+ # undef S_ISBLK
+ # undef S_ISCHR
+ # undef S_ISDIR
+ # undef S_ISFIFO
+ # undef S_ISLNK
+ # undef S_ISNAM
+ # undef S_ISMPB
+ # undef S_ISMPC
+ # undef S_ISNWK
+ # undef S_ISREG
+ # undef S_ISSOCK
+ #endif
+ 
+ #ifndef S_ISBLK
+ # ifdef S_IFBLK
+ #  define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
+ # else
+ #  define S_ISBLK(m) 0
+ # endif
+ #endif
+ 
+ #ifndef S_ISCHR
+ # ifdef S_IFCHR
+ #  define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
+ # else
+ #  define S_ISCHR(m) 0
+ # endif
+ #endif
+ 
+ #ifndef S_ISDIR
+ # ifdef S_IFDIR
+ #  define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+ # else
+ #  define S_ISDIR(m) 0
+ # endif
+ #endif
+ 
+ #ifndef S_ISDOOR /* Solaris 2.5 and up */
+ # define S_ISDOOR(m) 0
+ #endif
+ 
+ #ifndef S_ISFIFO
+ # ifdef S_IFIFO
+ #  define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
+ # else
+ #  define S_ISFIFO(m) 0
+ # endif
+ #endif
+ 
+ #ifndef S_ISLNK
+ # ifdef S_IFLNK
+ #  define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
+ # else
+ #  define S_ISLNK(m) 0
+ # endif
+ #endif
+ 
+ #ifndef S_ISMPB /* V7 */
+ # ifdef S_IFMPB
+ #  define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
+ #  define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
+ # else
+ #  define S_ISMPB(m) 0
+ #  define S_ISMPC(m) 0
+ # endif
+ #endif
+ 
+ #ifndef S_ISNAM /* Xenix */
+ # ifdef S_IFNAM
+ #  define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM)
+ # else
+ #  define S_ISNAM(m) 0
+ # endif
+ #endif
+ 
+ #ifndef S_ISNWK /* HP/UX */
+ # ifdef S_IFNWK
+ #  define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
+ # else
+ #  define S_ISNWK(m) 0
+ # endif
+ #endif
+ 
+ #ifndef S_ISPORT /* Solaris 10 and up */
+ # define S_ISPORT(m) 0
+ #endif
+ 
+ #ifndef S_ISREG
+ # ifdef S_IFREG
+ #  define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+ # else
+ #  define S_ISREG(m) 0
+ # endif
+ #endif
+ 
+ #ifndef S_ISSOCK
+ # ifdef S_IFSOCK
+ #  define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
+ # else
+ #  define S_ISSOCK(m) 0
+ # endif
+ #endif
+ 
+ 
+ #ifndef S_TYPEISMQ
+ # define S_TYPEISMQ(p) 0
+ #endif
+ 
+ #ifndef S_TYPEISTMO
+ # define S_TYPEISTMO(p) 0
+ #endif
+ 
+ 
+ #ifndef S_TYPEISSEM
+ # ifdef S_INSEM
+ #  define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM)
+ # else
+ #  define S_TYPEISSEM(p) 0
+ # endif
+ #endif
+ 
+ #ifndef S_TYPEISSHM
+ # ifdef S_INSHD
+ #  define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD)
+ # else
+ #  define S_TYPEISSHM(p) 0
+ # endif
+ #endif
+ 
+ /* high performance ("contiguous data") */
+ #ifndef S_ISCTG
+ # define S_ISCTG(p) 0
+ #endif
+ 
+ /* Cray DMF (data migration facility): off line, with data  */
+ #ifndef S_ISOFD
+ # define S_ISOFD(p) 0
+ #endif
+ 
+ /* Cray DMF (data migration facility): off line, with no data  */
+ #ifndef S_ISOFL
+ # define S_ISOFL(p) 0
+ #endif
+ 
+ /* 4.4BSD whiteout */
+ #ifndef S_ISWHT
+ # define S_ISWHT(m) 0
+ #endif
+ 
+ /* If any of the following are undefined,
+    define them to their de facto standard values.  */
+ #if !S_ISUID
+ # define S_ISUID 04000
+ #endif
+ #if !S_ISGID
+ # define S_ISGID 02000
+ #endif
+ 
+ /* S_ISVTX is a common extension to POSIX.  */
+ #ifndef S_ISVTX
+ # define S_ISVTX 01000
+ #endif
+ 
+ #if !S_IRUSR && S_IREAD
+ # define S_IRUSR S_IREAD
+ #endif
+ #if !S_IRUSR
+ # define S_IRUSR 00400
+ #endif
+ #if !S_IRGRP
+ # define S_IRGRP (S_IRUSR >> 3)
+ #endif
+ #if !S_IROTH
+ # define S_IROTH (S_IRUSR >> 6)
+ #endif
+ 
+ #if !S_IWUSR && S_IWRITE
+ # define S_IWUSR S_IWRITE
+ #endif
+ #if !S_IWUSR
+ # define S_IWUSR 00200
+ #endif
+ #if !S_IWGRP
+ # define S_IWGRP (S_IWUSR >> 3)
+ #endif
+ #if !S_IWOTH
+ # define S_IWOTH (S_IWUSR >> 6)
+ #endif
+ 
+ #if !S_IXUSR && S_IEXEC
+ # define S_IXUSR S_IEXEC
+ #endif
+ #if !S_IXUSR
+ # define S_IXUSR 00100
+ #endif
+ #if !S_IXGRP
+ # define S_IXGRP (S_IXUSR >> 3)
+ #endif
+ #if !S_IXOTH
+ # define S_IXOTH (S_IXUSR >> 6)
+ #endif
+ 
+ #if !S_IRWXU
+ # define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR)
+ #endif
+ #if !S_IRWXG
+ # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP)
+ #endif
+ #if !S_IRWXO
+ # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH)
+ #endif
+ 
+ /* S_IXUGO is a common extension to POSIX.  */
+ #if !S_IXUGO
+ # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH)
+ #endif
+ 
+ #ifndef S_IRWXUGO
+ # define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO)
+ #endif
+ 
+ /* mingw does not support symlinks, therefore it does not have lstat.  But
+    without links, stat does just fine.  */
+ #if ! @HAVE_LSTAT@
+ # define lstat stat
+ #endif
+ 
+ #if @REPLACE_MKDIR@
+ # undef mkdir
+ # define mkdir rpl_mkdir
+ extern int mkdir (char const *name, mode_t mode);
+ #else
+ /* mingw's _mkdir() function has 1 argument, but we pass 2 arguments.
+    Additionally, it declares _mkdir (and depending on compile flags, an
+    alias mkdir), only in the nonstandard <io.h>, which is included above.  */
+ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ 
+ static inline int
+ rpl_mkdir (char const *name, mode_t mode)
+ {
+   return _mkdir (name);
+ }
+ 
+ #  define mkdir rpl_mkdir
+ # endif
+ #endif
+ 
+ #endif /* _GL_SYS_STAT_H */
+ #endif /* _GL_SYS_STAT_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/sys_time.in.h texinfo-4.13/gnulib/lib/sys_time.in.h
*** texinfo-4.12/gnulib/lib/sys_time.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/sys_time.in.h	Tue Dec 25 16:53:46 2007
***************
*** 0 ****
--- 1,52 ----
+ /* Provide a more complete sys/time.h.
+ 
+    Copyright (C) 2007 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* Written by Paul Eggert.  */
+ 
+ #if defined _GL_SYS_TIME_H
+ 
+ /* Simply delegate to the system's header, without adding anything.  */
+ # if @HAVE_SYS_TIME_H@
+ #  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
+ # endif
+ 
+ #else
+ 
+ # define _GL_SYS_TIME_H
+ 
+ # if @HAVE_SYS_TIME_H@
+ #  @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
+ # else
+ #  include <time.h>
+ # endif
+ 
+ # if ! @HAVE_STRUCT_TIMEVAL@
+ struct timeval
+ {
+   time_t tv_sec;
+   long int tv_usec;
+ };
+ # endif
+ 
+ # if @REPLACE_GETTIMEOFDAY@
+ #  undef gettimeofday
+ #  define gettimeofday rpl_gettimeofday
+ int gettimeofday (struct timeval *restrict, void *restrict);
+ # endif
+ 
+ #endif /* _GL_SYS_TIME_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/tempname.c texinfo-4.13/gnulib/lib/tempname.c
*** texinfo-4.12/gnulib/lib/tempname.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/tempname.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,314 ----
+ /* tempname.c - generate the name of a temporary file.
+ 
+    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+    2000, 2001, 2002, 2003, 2005, 2006, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Extracted from glibc sysdeps/posix/tempname.c.  See also tmpdir.c.  */
+ 
+ #if !_LIBC
+ # include <config.h>
+ # include "tempname.h"
+ #endif
+ 
+ #include <sys/types.h>
+ #include <assert.h>
+ 
+ #include <errno.h>
+ #ifndef __set_errno
+ # define __set_errno(Val) errno = (Val)
+ #endif
+ 
+ #include <stdio.h>
+ #ifndef P_tmpdir
+ # define P_tmpdir "/tmp"
+ #endif
+ #ifndef TMP_MAX
+ # define TMP_MAX 238328
+ #endif
+ #ifndef __GT_FILE
+ # define __GT_FILE	0
+ # define __GT_BIGFILE	1
+ # define __GT_DIR	2
+ # define __GT_NOCREATE	3
+ #endif
+ 
+ #include <stddef.h>
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ #include <fcntl.h>
+ #include <sys/time.h>
+ #include <stdint.h>
+ #include <unistd.h>
+ 
+ #include <sys/stat.h>
+ 
+ #if _LIBC
+ # define struct_stat64 struct stat64
+ # define small_open __open
+ # define large_open __open64
+ #else
+ # define struct_stat64 struct stat
+ # define small_open open
+ # define large_open open
+ # define __gen_tempname gen_tempname
+ # define __getpid getpid
+ # define __gettimeofday gettimeofday
+ # define __mkdir mkdir
+ # define __lxstat64(version, file, buf) lstat (file, buf)
+ # define __xstat64(version, file, buf) stat (file, buf)
+ #endif
+ 
+ #if ! (HAVE___SECURE_GETENV || _LIBC)
+ # define __secure_getenv getenv
+ #endif
+ 
+ #ifdef _LIBC
+ # include <hp-timing.h>
+ # if HP_TIMING_AVAIL
+ #  define RANDOM_BITS(Var) \
+   if (__builtin_expect (value == UINT64_C (0), 0))			      \
+     {									      \
+       /* If this is the first time this function is used initialize	      \
+ 	 the variable we accumulate the value in to some somewhat	      \
+ 	 random value.  If we'd not do this programs at startup time	      \
+ 	 might have a reduced set of possible names, at least on slow	      \
+ 	 machines.  */							      \
+       struct timeval tv;						      \
+       __gettimeofday (&tv, NULL);					      \
+       value = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec;		      \
+     }									      \
+   HP_TIMING_NOW (Var)
+ # endif
+ #endif
+ 
+ /* Use the widest available unsigned type if uint64_t is not
+    available.  The algorithm below extracts a number less than 62**6
+    (approximately 2**35.725) from uint64_t, so ancient hosts where
+    uintmax_t is only 32 bits lose about 3.725 bits of randomness,
+    which is better than not having mkstemp at all.  */
+ #if !defined UINT64_MAX && !defined uint64_t
+ # define uint64_t uintmax_t
+ #endif
+ 
+ #if _LIBC
+ /* Return nonzero if DIR is an existent directory.  */
+ static int
+ direxists (const char *dir)
+ {
+   struct_stat64 buf;
+   return __xstat64 (_STAT_VER, dir, &buf) == 0 && S_ISDIR (buf.st_mode);
+ }
+ 
+ /* Path search algorithm, for tmpnam, tmpfile, etc.  If DIR is
+    non-null and exists, uses it; otherwise uses the first of $TMPDIR,
+    P_tmpdir, /tmp that exists.  Copies into TMPL a template suitable
+    for use with mk[s]temp.  Will fail (-1) if DIR is non-null and
+    doesn't exist, none of the searched dirs exists, or there's not
+    enough space in TMPL. */
+ int
+ __path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx,
+ 	       int try_tmpdir)
+ {
+   const char *d;
+   size_t dlen, plen;
+ 
+   if (!pfx || !pfx[0])
+     {
+       pfx = "file";
+       plen = 4;
+     }
+   else
+     {
+       plen = strlen (pfx);
+       if (plen > 5)
+ 	plen = 5;
+     }
+ 
+   if (try_tmpdir)
+     {
+       d = __secure_getenv ("TMPDIR");
+       if (d != NULL && direxists (d))
+ 	dir = d;
+       else if (dir != NULL && direxists (dir))
+ 	/* nothing */ ;
+       else
+ 	dir = NULL;
+     }
+   if (dir == NULL)
+     {
+       if (direxists (P_tmpdir))
+ 	dir = P_tmpdir;
+       else if (strcmp (P_tmpdir, "/tmp") != 0 && direxists ("/tmp"))
+ 	dir = "/tmp";
+       else
+ 	{
+ 	  __set_errno (ENOENT);
+ 	  return -1;
+ 	}
+     }
+ 
+   dlen = strlen (dir);
+   while (dlen > 1 && dir[dlen - 1] == '/')
+     dlen--;			/* remove trailing slashes */
+ 
+   /* check we have room for "${dir}/${pfx}XXXXXX\0" */
+   if (tmpl_len < dlen + 1 + plen + 6 + 1)
+     {
+       __set_errno (EINVAL);
+       return -1;
+     }
+ 
+   sprintf (tmpl, "%.*s/%.*sXXXXXX", (int) dlen, dir, (int) plen, pfx);
+   return 0;
+ }
+ #endif /* _LIBC */
+ 
+ /* These are the characters used in temporary file names.  */
+ static const char letters[] =
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+ 
+ /* Generate a temporary file name based on TMPL.  TMPL must match the
+    rules for mk[s]temp (i.e. end in "XXXXXX").  The name constructed
+    does not exist at the time of the call to __gen_tempname.  TMPL is
+    overwritten with the result.
+ 
+    KIND may be one of:
+    __GT_NOCREATE:	simply verify that the name does not exist
+ 			at the time of the call.
+    __GT_FILE:		create the file using open(O_CREAT|O_EXCL)
+ 			and return a read-write fd.  The file is mode 0600.
+    __GT_BIGFILE:	same as __GT_FILE but use open64().
+    __GT_DIR:		create a directory, which will be mode 0700.
+ 
+    We use a clever algorithm to get hard-to-predict names. */
+ int
+ __gen_tempname (char *tmpl, int kind)
+ {
+   int len;
+   char *XXXXXX;
+   static uint64_t value;
+   uint64_t random_time_bits;
+   unsigned int count;
+   int fd = -1;
+   int save_errno = errno;
+   struct_stat64 st;
+ 
+   /* A lower bound on the number of temporary files to attempt to
+      generate.  The maximum total number of temporary file names that
+      can exist for a given template is 62**6.  It should never be
+      necessary to try all these combinations.  Instead if a reasonable
+      number of names is tried (we define reasonable as 62**3) fail to
+      give the system administrator the chance to remove the problems.  */
+ #define ATTEMPTS_MIN (62 * 62 * 62)
+ 
+   /* The number of times to attempt to generate a temporary file.  To
+      conform to POSIX, this must be no smaller than TMP_MAX.  */
+ #if ATTEMPTS_MIN < TMP_MAX
+   unsigned int attempts = TMP_MAX;
+ #else
+   unsigned int attempts = ATTEMPTS_MIN;
+ #endif
+ 
+   len = strlen (tmpl);
+   if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
+     {
+       __set_errno (EINVAL);
+       return -1;
+     }
+ 
+   /* This is where the Xs start.  */
+   XXXXXX = &tmpl[len - 6];
+ 
+   /* Get some more or less random data.  */
+ #ifdef RANDOM_BITS
+   RANDOM_BITS (random_time_bits);
+ #else
+   {
+     struct timeval tv;
+     __gettimeofday (&tv, NULL);
+     random_time_bits = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec;
+   }
+ #endif
+   value += random_time_bits ^ __getpid ();
+ 
+   for (count = 0; count < attempts; value += 7777, ++count)
+     {
+       uint64_t v = value;
+ 
+       /* Fill in the random bits.  */
+       XXXXXX[0] = letters[v % 62];
+       v /= 62;
+       XXXXXX[1] = letters[v % 62];
+       v /= 62;
+       XXXXXX[2] = letters[v % 62];
+       v /= 62;
+       XXXXXX[3] = letters[v % 62];
+       v /= 62;
+       XXXXXX[4] = letters[v % 62];
+       v /= 62;
+       XXXXXX[5] = letters[v % 62];
+ 
+       switch (kind)
+ 	{
+ 	case __GT_FILE:
+ 	  fd = small_open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
+ 	  break;
+ 
+ 	case __GT_BIGFILE:
+ 	  fd = large_open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
+ 	  break;
+ 
+ 	case __GT_DIR:
+ 	  fd = __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR);
+ 	  break;
+ 
+ 	case __GT_NOCREATE:
+ 	  /* This case is backward from the other three.  __gen_tempname
+ 	     succeeds if __xstat fails because the name does not exist.
+ 	     Note the continue to bypass the common logic at the bottom
+ 	     of the loop.  */
+ 	  if (__lxstat64 (_STAT_VER, tmpl, &st) < 0)
+ 	    {
+ 	      if (errno == ENOENT)
+ 		{
+ 		  __set_errno (save_errno);
+ 		  return 0;
+ 		}
+ 	      else
+ 		/* Give up now. */
+ 		return -1;
+ 	    }
+ 	  continue;
+ 
+ 	default:
+ 	  assert (! "invalid KIND in __gen_tempname");
+ 	}
+ 
+       if (fd >= 0)
+ 	{
+ 	  __set_errno (save_errno);
+ 	  return fd;
+ 	}
+       else if (errno != EEXIST)
+ 	return -1;
+     }
+ 
+   /* We got out of the loop because we ran out of combinations to try.  */
+   __set_errno (EEXIST);
+   return -1;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/tempname.h texinfo-4.13/gnulib/lib/tempname.h
*** texinfo-4.12/gnulib/lib/tempname.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/tempname.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,39 ----
+ /* Create a temporary file or directory.
+ 
+    Copyright (C) 2006 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* header written by Eric Blake */
+ 
+ /* In gnulib, always prefer large files.  GT_FILE maps to
+    __GT_BIGFILE, not __GT_FILE, for a reason.  */
+ #define GT_FILE		1
+ #define GT_DIR		2
+ #define GT_NOCREATE	3
+ 
+ /* Generate a temporary file name based on TMPL.  TMPL must match the
+    rules for mk[s]temp (i.e. end in "XXXXXX").  The name constructed
+    does not exist at the time of the call to gen_tempname.  TMPL is
+    overwritten with the result.
+ 
+    KIND may be one of:
+    GT_NOCREATE:		simply verify that the name does not exist
+ 			at the time of the call.
+    GT_FILE:		create a large file using open(O_CREAT|O_EXCL)
+ 			and return a read-write fd.  The file is mode 0600.
+    GT_DIR:		create a directory, which will be mode 0700.
+ 
+    We use a clever algorithm to get hard-to-predict names. */
+ extern int gen_tempname (char *tmpl, int kind);
diff -Nrc2 texinfo-4.12/gnulib/lib/unistd.in.h texinfo-4.13/gnulib/lib/unistd.in.h
*** texinfo-4.12/gnulib/lib/unistd.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/unistd.in.h	Wed Feb 27 10:32:21 2008
***************
*** 0 ****
--- 1,340 ----
+ /* Substitute for and wrapper around <unistd.h>.
+    Copyright (C) 2004-2008 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ #ifndef _GL_UNISTD_H
+ 
+ /* The include_next requires a split double-inclusion guard.  */
+ #if @HAVE_UNISTD_H@
+ # @INCLUDE_NEXT@ @NEXT_UNISTD_H@
+ #endif
+ 
+ #ifndef _GL_UNISTD_H
+ #define _GL_UNISTD_H
+ 
+ /* mingw doesn't define the SEEK_* macros in <unistd.h>.  */
+ #if !(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET)
+ # include <stdio.h>
+ #endif
+ 
+ /* mingw fails to declare _exit in <unistd.h>.  */
+ #include <stdlib.h>
+ 
+ /* The definition of GL_LINK_WARNING is copied here.  */
+ 
+ 
+ /* Declare overridden functions.  */
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ 
+ #if @GNULIB_CHOWN@
+ # if @REPLACE_CHOWN@
+ #  ifndef REPLACE_CHOWN
+ #   define REPLACE_CHOWN 1
+ #  endif
+ #  if REPLACE_CHOWN
+ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
+    to GID (if GID is not -1).  Follow symbolic links.
+    Return 0 if successful, otherwise -1 and errno set.
+    See the POSIX:2001 specification
+    <http://www.opengroup.org/susv3xsh/chown.html>.  */
+ #   define chown rpl_chown
+ extern int chown (const char *file, uid_t uid, gid_t gid);
+ #  endif
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef chown
+ # define chown(f,u,g) \
+     (GL_LINK_WARNING ("chown fails to follow symlinks on some systems and " \
+                       "doesn't treat a uid or gid of -1 on some systems - " \
+                       "use gnulib module chown for portability"), \
+      chown (f, u, g))
+ #endif
+ 
+ 
+ #if @GNULIB_DUP2@
+ # if !@HAVE_DUP2@
+ /* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if
+    NEWFD = OLDFD, otherwise close NEWFD first if it is open.
+    Return 0 if successful, otherwise -1 and errno set.
+    See the POSIX:2001 specification
+    <http://www.opengroup.org/susv3xsh/dup2.html>.  */
+ extern int dup2 (int oldfd, int newfd);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef dup2
+ # define dup2(o,n) \
+     (GL_LINK_WARNING ("dup2 is unportable - " \
+                       "use gnulib module dup2 for portability"), \
+      dup2 (o, n))
+ #endif
+ 
+ 
+ #if @GNULIB_ENVIRON@
+ # if !@HAVE_DECL_ENVIRON@
+ /* Set of environment variables and values.  An array of strings of the form
+    "VARIABLE=VALUE", terminated with a NULL.  */
+ #  if defined __APPLE__ && defined __MACH__
+ #   include <crt_externs.h>
+ #   define environ (*_NSGetEnviron ())
+ #  else
+ extern char **environ;
+ #  endif
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef environ
+ # define environ \
+     (GL_LINK_WARNING ("environ is unportable - " \
+                       "use gnulib module environ for portability"), \
+      environ)
+ #endif
+ 
+ 
+ #if @GNULIB_FCHDIR@
+ # if @REPLACE_FCHDIR@
+ 
+ /* Change the process' current working directory to the directory on which
+    the given file descriptor is open.
+    Return 0 if successful, otherwise -1 and errno set.
+    See the POSIX:2001 specification
+    <http://www.opengroup.org/susv3xsh/fchdir.html>.  */
+ extern int fchdir (int /*fd*/);
+ 
+ #  define close rpl_close
+ extern int close (int);
+ #  define dup rpl_dup
+ extern int dup (int);
+ #  define dup2 rpl_dup2
+ extern int dup2 (int, int);
+ 
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef fchdir
+ # define fchdir(f) \
+     (GL_LINK_WARNING ("fchdir is unportable - " \
+                       "use gnulib module fchdir for portability"), \
+      fchdir (f))
+ #endif
+ 
+ 
+ #if @GNULIB_FTRUNCATE@
+ # if !@HAVE_FTRUNCATE@
+ /* Change the size of the file to which FD is opened to become equal to LENGTH.
+    Return 0 if successful, otherwise -1 and errno set.
+    See the POSIX:2001 specification
+    <http://www.opengroup.org/susv3xsh/ftruncate.html>.  */
+ extern int ftruncate (int fd, off_t length);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef ftruncate
+ # define ftruncate(f,l) \
+     (GL_LINK_WARNING ("ftruncate is unportable - " \
+                       "use gnulib module ftruncate for portability"), \
+      ftruncate (f, l))
+ #endif
+ 
+ 
+ #if @GNULIB_GETCWD@
+ /* Include the headers that might declare getcwd so that they will not
+    cause confusion if included after this file.  */
+ # include <stdlib.h>
+ # if @REPLACE_GETCWD@
+ /* Get the name of the current working directory, and put it in SIZE bytes
+    of BUF.
+    Return BUF if successful, or NULL if the directory couldn't be determined
+    or SIZE was too small.
+    See the POSIX:2001 specification
+    <http://www.opengroup.org/susv3xsh/getcwd.html>.
+    Additionally, the gnulib module 'getcwd' guarantees the following GNU
+    extension: If BUF is NULL, an array is allocated with 'malloc'; the array
+    is SIZE bytes long, unless SIZE == 0, in which case it is as big as
+    necessary.  */
+ #  define getcwd rpl_getcwd
+ extern char * getcwd (char *buf, size_t size);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef getcwd
+ # define getcwd(b,s) \
+     (GL_LINK_WARNING ("getcwd is unportable - " \
+                       "use gnulib module getcwd for portability"), \
+      getcwd (b, s))
+ #endif
+ 
+ 
+ #if @GNULIB_GETLOGIN_R@
+ /* Copies the user's login name to NAME.
+    The array pointed to by NAME has room for SIZE bytes.
+ 
+    Returns 0 if successful.  Upon error, an error number is returned, or -1 in
+    the case that the login name cannot be found but no specific error is
+    provided (this case is hopefully rare but is left open by the POSIX spec).
+ 
+    See <http://www.opengroup.org/susv3xsh/getlogin.html>.
+  */
+ # if !@HAVE_DECL_GETLOGIN_R@
+ #  include <stddef.h>
+ extern int getlogin_r (char *name, size_t size);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef getlogin_r
+ # define getlogin_r(n,s) \
+     (GL_LINK_WARNING ("getlogin_r is unportable - " \
+                       "use gnulib module getlogin_r for portability"), \
+      getlogin_r (n, s))
+ #endif
+ 
+ 
+ #if @GNULIB_GETPAGESIZE@
+ # if @REPLACE_GETPAGESIZE@
+ #  define getpagesize rpl_getpagesize
+ extern int getpagesize (void);
+ # elif !@HAVE_GETPAGESIZE@
+ /* This is for POSIX systems.  */
+ #  if !defined getpagesize && defined _SC_PAGESIZE
+ #   if ! (defined __VMS && __VMS_VER < 70000000)
+ #    define getpagesize() sysconf (_SC_PAGESIZE)
+ #   endif
+ #  endif
+ /* This is for older VMS.  */
+ #  if !defined getpagesize && defined __VMS
+ #   ifdef __ALPHA
+ #    define getpagesize() 8192
+ #   else
+ #    define getpagesize() 512
+ #   endif
+ #  endif
+ /* This is for BeOS.  */
+ #  if !defined getpagesize && @HAVE_OS_H@
+ #   include <OS.h>
+ #   if defined B_PAGE_SIZE
+ #    define getpagesize() B_PAGE_SIZE
+ #   endif
+ #  endif
+ /* This is for AmigaOS4.0.  */
+ #  if !defined getpagesize && defined __amigaos4__
+ #   define getpagesize() 2048
+ #  endif
+ /* This is for older Unix systems.  */
+ #  if !defined getpagesize && @HAVE_SYS_PARAM_H@
+ #   include <sys/param.h>
+ #   ifdef EXEC_PAGESIZE
+ #    define getpagesize() EXEC_PAGESIZE
+ #   else
+ #    ifdef NBPG
+ #     ifndef CLSIZE
+ #      define CLSIZE 1
+ #     endif
+ #     define getpagesize() (NBPG * CLSIZE)
+ #    else
+ #     ifdef NBPC
+ #      define getpagesize() NBPC
+ #     endif
+ #    endif
+ #   endif
+ #  endif
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef getpagesize
+ # define getpagesize() \
+     (GL_LINK_WARNING ("getpagesize is unportable - " \
+                       "use gnulib module getpagesize for portability"), \
+      getpagesize ())
+ #endif
+ 
+ 
+ #if @GNULIB_LCHOWN@
+ # if @REPLACE_LCHOWN@
+ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
+    to GID (if GID is not -1).  Do not follow symbolic links.
+    Return 0 if successful, otherwise -1 and errno set.
+    See the POSIX:2001 specification
+    <http://www.opengroup.org/susv3xsh/lchown.html>.  */
+ #  define lchown rpl_lchown
+ extern int lchown (char const *file, uid_t owner, gid_t group);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef lchown
+ # define lchown(f,u,g) \
+     (GL_LINK_WARNING ("lchown is unportable to pre-POSIX.1-2001 " \
+                       "systems - use gnulib module lchown for portability"), \
+      lchown (f, u, g))
+ #endif
+ 
+ 
+ #if @GNULIB_LSEEK@
+ # if @REPLACE_LSEEK@
+ /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
+    Return the new offset if successful, otherwise -1 and errno set.
+    See the POSIX:2001 specification
+    <http://www.opengroup.org/susv3xsh/lseek.html>.  */
+ #  define lseek rpl_lseek
+    extern off_t lseek (int fd, off_t offset, int whence);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef lseek
+ # define lseek(f,o,w) \
+     (GL_LINK_WARNING ("lseek does not fail with ESPIPE on pipes on some " \
+                       "systems - use gnulib module lseek for portability"), \
+      lseek (f, o, w))
+ #endif
+ 
+ 
+ #if @GNULIB_READLINK@
+ /* Read the contents of the symbolic link FILE and place the first BUFSIZE
+    bytes of it into BUF.  Return the number of bytes placed into BUF if
+    successful, otherwise -1 and errno set.
+    See the POSIX:2001 specification
+    <http://www.opengroup.org/susv3xsh/readlink.html>.  */
+ # if !@HAVE_READLINK@
+ #  include <stddef.h>
+ extern int readlink (const char *file, char *buf, size_t bufsize);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef readlink
+ # define readlink(f,b,s) \
+     (GL_LINK_WARNING ("readlink is unportable - " \
+                       "use gnulib module readlink for portability"), \
+      readlink (f, b, s))
+ #endif
+ 
+ 
+ #if @GNULIB_SLEEP@
+ /* Pause the execution of the current thread for N seconds.
+    Returns the number of seconds left to sleep.
+    See the POSIX:2001 specification
+    <http://www.opengroup.org/susv3xsh/sleep.html>.  */
+ # if !@HAVE_SLEEP@
+ extern unsigned int sleep (unsigned int n);
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef sleep
+ # define sleep(n) \
+     (GL_LINK_WARNING ("sleep is unportable - " \
+                       "use gnulib module sleep for portability"), \
+      sleep (n))
+ #endif
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ 
+ #endif /* _GL_UNISTD_H */
+ #endif /* _GL_UNISTD_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/unitypes.h texinfo-4.13/gnulib/lib/unitypes.h
*** texinfo-4.12/gnulib/lib/unitypes.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/unitypes.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,26 ----
+ /* Elementary types for the GNU UniString library.
+    Copyright (C) 2002, 2005-2006 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 3 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _UNITYPES_H
+ #define _UNITYPES_H
+ 
+ /* Get uint8_t, uint16_t, uint32_t.  */
+ #include <stdint.h>
+ 
+ /* Type representing a Unicode character.  */
+ typedef uint32_t ucs4_t;
+ 
+ #endif /* _UNITYPES_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/uniwidth/cjk.h texinfo-4.13/gnulib/lib/uniwidth/cjk.h
*** texinfo-4.12/gnulib/lib/uniwidth/cjk.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/uniwidth/cjk.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,37 ----
+ /* Test for CJK encoding.
+    Copyright (C) 2001-2002, 2005-2007 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2002.
+ 
+    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 3 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "streq.h"
+ 
+ static int
+ is_cjk_encoding (const char *encoding)
+ {
+   if (0
+       /* Legacy Japanese encodings */
+       || STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)
+       /* Legacy Chinese encodings */
+       || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+       || STREQ (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
+       || STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
+       || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
+       /* Legacy Korean encodings */
+       || STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+       || STREQ (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0)
+       || STREQ (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0))
+     return 1;
+   return 0;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/uniwidth/width.c texinfo-4.13/gnulib/lib/uniwidth/width.c
*** texinfo-4.12/gnulib/lib/uniwidth/width.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/uniwidth/width.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,323 ----
+ /* Determine display width of Unicode character.
+    Copyright (C) 2001-2002, 2006-2007 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2002.
+ 
+    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 3 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include "uniwidth.h"
+ 
+ #include "cjk.h"
+ 
+ /*
+  * Non-spacing attribute table.
+  * Consists of:
+  * - Non-spacing characters; generated from PropList.txt or
+  *   "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt"
+  * - Format control characters; generated from
+  *   "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt"
+  * - Zero width characters; generated from
+  *   "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
+  */
+ static const unsigned char nonspacing_table_data[22*64] = {
+   /* 0x0000-0x01ff */
+   0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
+   0xff, 0xff, 0xff, 0xff, 0x00, 0x08, 0x00, 0x00, /* 0x0080-0x00bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */
+   /* 0x0200-0x03ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */
+   0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */
+   /* 0x0400-0x05ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */
+   0x78, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */
+   0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */
+   0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */
+   /* 0x0600-0x07ff */
+   0x0f, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */
+   0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */
+   0x00, 0x00, 0xc0, 0xff, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */
+   0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */
+   0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */
+   0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x07c0-0x07ff */
+   /* 0x0800-0x09ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0800-0x083f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08c0-0x08ff */
+   0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0900-0x093f */
+   0xfe, 0x21, 0x1e, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
+   0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */
+   0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x09c0-0x09ff */
+   /* 0x0a00-0x0bff */
+   0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */
+   0x86, 0x39, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0x0a40-0x0a7f */
+   0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */
+   0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0ac0-0x0aff */
+   0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */
+   0x0e, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */
+   0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */
+   0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */
+   /* 0x0c00-0x0dff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */
+   0xc1, 0x3d, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */
+   0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d00-0x0d3f */
+   0x0e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */
+   0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */
+   /* 0x0e00-0x0fff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */
+   0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1b, /* 0x0e80-0x0ebf */
+   0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */
+   0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */
+   0xdf, 0x00, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */
+   0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */
+   /* 0x1000-0x11ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc5, 0x02, /* 0x1000-0x103f */
+   0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, /* 0x1040-0x107f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1140-0x117f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1180-0x11bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c0-0x11ff */
+   /* 0x1200-0x13ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */
+   0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */
+   /* 0x1600-0x17ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */
+   0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, /* 0x1700-0x173f */
+   0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */
+   0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */
+   /* 0x1800-0x19ff */
+   0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */
+   0x00, 0x00, 0x00, 0x00, 0x87, 0x0f, 0x04, 0x0e, /* 0x1900-0x193f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */
+   /* 0x1a00-0x1bff */
+   0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a40-0x1a7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a80-0x1abf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */
+   0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */
+   0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1b80-0x1bbf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1bc0-0x1bff */
+   /* 0x1c00-0x1dff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c00-0x1c3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1cc0-0x1cff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */
+   0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x1dc0-0x1dff */
+   /* 0x2000-0x21ff */
+   0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
+   0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0x00, 0x00, /* 0x2040-0x207f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */
+   0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x20c0-0x20ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */
+   /* 0x3000-0x31ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, /* 0x3000-0x303f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */
+   0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */
+   /* 0xa800-0xa9ff */
+   0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa8c0-0xa8ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa900-0xa93f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa980-0xa9bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */
+   /* 0xfa00-0xfbff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */
+   0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */
+   /* 0xfe00-0xffff */
+   0xff, 0xff, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, /* 0xfe00-0xfe3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */
+   /* 0x10a00-0x10bff */
+   0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */
+   /* 0x1d000-0x1d1ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */
+   0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xf8, /* 0x1d140-0x1d17f */
+   0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */
+   /* 0x1d200-0x1d3ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */
+   0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */
+   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00  /* 0x1d3c0-0x1d3ff */
+ };
+ static const signed char nonspacing_table_ind[240] = {
+    0,  1,  2,  3,  4,  5,  6,  7, /* 0x0000-0x0fff */
+    8,  9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */
+   14, -1, -1, -1, -1, -1, -1, -1, /* 0x2000-0x2fff */
+   15, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */
+   -1, -1, -1, -1, 16, -1, -1, -1, /* 0xa000-0xafff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd000-0xdfff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */
+   -1, -1, -1, -1, -1, 17, -1, 18, /* 0xf000-0xffff */
+   -1, -1, -1, -1, -1, 19, -1, -1, /* 0x10000-0x10fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x11000-0x11fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x16000-0x16fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1b000-0x1bfff */
+   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */
+   20, 21, -1, -1, -1, -1, -1, -1  /* 0x1d000-0x1dfff */
+ };
+ 
+ /* Determine number of column positions required for UC.  */
+ int
+ uc_width (ucs4_t uc, const char *encoding)
+ {
+   /* Test for non-spacing or control character.  */
+   if ((uc >> 9) < 240)
+     {
+       int ind = nonspacing_table_ind[uc >> 9];
+       if (ind >= 0)
+ 	if ((nonspacing_table_data[64*ind + ((uc >> 3) & 63)] >> (uc & 7)) & 1)
+ 	  {
+ 	    if (uc > 0 && uc < 0xa0)
+ 	      return -1;
+ 	    else
+ 	      return 0;
+ 	  }
+     }
+   else if ((uc >> 9) == (0xe0000 >> 9))
+     {
+       if (uc >= 0xe0100)
+ 	{
+ 	  if (uc <= 0xe01ef)
+ 	    return 0;
+ 	}
+       else
+ 	{
+ 	  if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001)
+ 	    return 0;
+ 	}
+     }
+   /* Test for double-width character.
+    * Generated from "grep '^....;[WF]' EastAsianWidth.txt"
+    * and            "grep '^....;[^WF]' EastAsianWidth.txt"
+    */
+   if (uc >= 0x1100
+       && ((uc < 0x1160) /* Hangul Jamo */
+ 	  || (uc >= 0x2329 && uc < 0x232b) /* Angle Brackets */
+ 	  || (uc >= 0x2e80 && uc < 0xa4d0  /* CJK ... Yi */
+ 	      && !(uc == 0x303f) && !(uc >= 0x4dc0 && uc < 0x4e00))
+ 	  || (uc >= 0xac00 && uc < 0xd7a4) /* Hangul Syllables */
+ 	  || (uc >= 0xf900 && uc < 0xfb00) /* CJK Compatibility Ideographs */
+ 	  || (uc >= 0xfe10 && uc < 0xfe20) /* Presentation Forms for Vertical */
+ 	  || (uc >= 0xfe30 && uc < 0xfe70) /* CJK Compatibility Forms */
+ 	  || (uc >= 0xff00 && uc < 0xff61) /* Fullwidth Forms */
+ 	  || (uc >= 0xffe0 && uc < 0xffe7) /* Fullwidth Signs */
+ 	  || (uc >= 0x20000 && uc <= 0x2a6d6) /* CJK */
+ 	  || (uc >= 0x2f800 && uc <= 0x2fa1d) /* CJK Compatibility Ideographs */
+      )   )
+     return 2;
+   /* In ancient CJK encodings, Cyrillic and most other characters are
+      double-width as well.  */
+   if (uc >= 0x00A1 && uc < 0xFF61 && uc != 0x20A9
+       && is_cjk_encoding (encoding))
+     return 2;
+   return 1;
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/uniwidth.h texinfo-4.13/gnulib/lib/uniwidth.h
*** texinfo-4.12/gnulib/lib/uniwidth.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/uniwidth.h	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,64 ----
+ /* Display width functions.
+    Copyright (C) 2001-2002, 2005, 2007 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 3 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _UNIWIDTH_H
+ #define _UNIWIDTH_H
+ 
+ #include "unitypes.h"
+ 
+ /* Get size_t.  */
+ #include <stddef.h>
+ 
+ /* Get locale_charset() declaration.  */
+ #include "localcharset.h"
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ 
+ /* Display width.  */
+ 
+ /* These functions are locale dependent.  The encoding argument identifies
+    the encoding (e.g. "ISO-8859-2" for Polish).  */
+ 
+ /* Determine number of column positions required for UC.  */
+ extern int
+        uc_width (ucs4_t uc, const char *encoding);
+ 
+ /* Determine number of column positions required for first N units
+    (or fewer if S ends before this) in S.  */
+ extern int
+        u8_width (const uint8_t *s, size_t n, const char *encoding);
+ extern int
+        u16_width (const uint16_t *s, size_t n, const char *encoding);
+ extern int
+        u32_width (const uint32_t *s, size_t n, const char *encoding);
+ 
+ /* Determine number of column positions required for S.  */
+ extern int
+        u8_strwidth (const uint8_t *s, const char *encoding);
+ extern int
+        u16_strwidth (const uint16_t *s, const char *encoding);
+ extern int
+        u32_strwidth (const uint32_t *s, const char *encoding);
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #endif /* _UNIWIDTH_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/unsetenv.c texinfo-4.13/gnulib/lib/unsetenv.c
*** texinfo-4.12/gnulib/lib/unsetenv.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/unsetenv.c	Wed Feb 27 10:32:21 2008
***************
*** 0 ****
--- 1,90 ----
+ /* Copyright (C) 1992,1995-1999,2000-2002,2005-2008 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include <stdlib.h>
+ 
+ #include <errno.h>
+ #if !_LIBC
+ # define __set_errno(ev) ((errno) = (ev))
+ #endif
+ 
+ #include <string.h>
+ #include <unistd.h>
+ 
+ #if !_LIBC
+ # define __environ	environ
+ #endif
+ 
+ #if _LIBC
+ /* This lock protects against simultaneous modifications of `environ'.  */
+ # include <bits/libc-lock.h>
+ __libc_lock_define_initialized (static, envlock)
+ # define LOCK	__libc_lock_lock (envlock)
+ # define UNLOCK	__libc_lock_unlock (envlock)
+ #else
+ # define LOCK
+ # define UNLOCK
+ #endif
+ 
+ /* In the GNU C library we must keep the namespace clean.  */
+ #ifdef _LIBC
+ # define unsetenv __unsetenv
+ #endif
+ 
+ 
+ int
+ unsetenv (const char *name)
+ {
+   size_t len;
+   char **ep;
+ 
+   if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
+     {
+       __set_errno (EINVAL);
+       return -1;
+     }
+ 
+   len = strlen (name);
+ 
+   LOCK;
+ 
+   ep = __environ;
+   while (*ep != NULL)
+     if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
+       {
+ 	/* Found it.  Remove this pointer by moving later ones back.  */
+ 	char **dp = ep;
+ 
+ 	do
+ 	  dp[0] = dp[1];
+ 	while (*dp++);
+ 	/* Continue the loop in case NAME appears again.  */
+       }
+     else
+       ++ep;
+ 
+   UNLOCK;
+ 
+   return 0;
+ }
+ 
+ #ifdef _LIBC
+ # undef unsetenv
+ weak_alias (__unsetenv, unsetenv)
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/wchar.in.h texinfo-4.13/gnulib/lib/wchar.in.h
*** texinfo-4.12/gnulib/lib/wchar.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/wchar.in.h	Thu May 22 05:11:32 2008
***************
*** 0 ****
--- 1,91 ----
+ /* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
+ 
+    Copyright (C) 2007-2008 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* Written by Eric Blake.  */
+ 
+ /*
+  * ISO C 99 <wchar.h> for platforms that have issues.
+  * <http://www.opengroup.org/susv3xbd/wchar.h.html>
+  *
+  * For now, this just ensures proper prerequisite inclusion order and
+  * the declaration of wcwidth().
+  */
+ 
+ #ifdef __need_mbstate_t
+ /* Special invocation convention inside uClibc header files.  */
+ 
+ #@INCLUDE_NEXT@ @NEXT_WCHAR_H@
+ 
+ #else
+ /* Normal invocation convention.  */
+ 
+ #ifndef _GL_WCHAR_H
+ 
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+    included before <wchar.h>.  */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ 
+ /* Include the original <wchar.h> if it exists.
+    Some builds of uClibc lack it.  */
+ /* The include_next requires a split double-inclusion guard.  */
+ #if @HAVE_WCHAR_H@
+ # @INCLUDE_NEXT@ @NEXT_WCHAR_H@
+ #endif
+ 
+ #ifndef _GL_WCHAR_H
+ #define _GL_WCHAR_H
+ 
+ /* The definition of GL_LINK_WARNING is copied here.  */
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ 
+ /* Return the number of screen columns needed for WC.  */
+ #if @GNULIB_WCWIDTH@
+ # if @REPLACE_WCWIDTH@
+ #  undef wcwidth
+ #  define wcwidth rpl_wcwidth
+ extern int wcwidth (wchar_t);
+ # else
+ #  if !defined wcwidth && !@HAVE_DECL_WCWIDTH@
+ /* wcwidth exists but is not declared.  */
+ extern int wcwidth (int /* actually wchar_t */);
+ #  endif
+ # endif
+ #elif defined GNULIB_POSIXCHECK
+ # undef wcwidth
+ # define wcwidth(w) \
+     (GL_LINK_WARNING ("wcwidth is unportable - " \
+                       "use gnulib module wcwidth for portability"), \
+      wcwidth (w))
+ #endif
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #endif /* _GL_WCHAR_H */
+ #endif /* _GL_WCHAR_H */
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/lib/wctype.in.h texinfo-4.13/gnulib/lib/wctype.in.h
*** texinfo-4.12/gnulib/lib/wctype.in.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/wctype.in.h	Thu May 22 05:11:32 2008
***************
*** 0 ****
--- 1,178 ----
+ /* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
+ 
+    Copyright (C) 2006-2008 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 3, 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+ 
+ /* Written by Bruno Haible and Paul Eggert.  */
+ 
+ /*
+  * ISO C 99 <wctype.h> for platforms that lack it.
+  * <http://www.opengroup.org/susv3xbd/wctype.h.html>
+  *
+  * iswctype, towctrans, towlower, towupper, wctrans, wctype,
+  * wctrans_t, and wctype_t are not yet implemented.
+  */
+ 
+ #ifndef _GL_WCTYPE_H
+ 
+ #if @HAVE_WINT_T@
+ /* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.
+    Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+    included before <wchar.h>.  */
+ # include <stddef.h>
+ # include <stdio.h>
+ # include <time.h>
+ # include <wchar.h>
+ #endif
+ 
+ /* Include the original <wctype.h> if it exists.
+    BeOS 5 has the functions but no <wctype.h>.  */
+ /* The include_next requires a split double-inclusion guard.  */
+ #if @HAVE_WCTYPE_H@
+ # @INCLUDE_NEXT@ @NEXT_WCTYPE_H@
+ #endif
+ 
+ #ifndef _GL_WCTYPE_H
+ #define _GL_WCTYPE_H
+ 
+ #if @HAVE_WINT_T@
+ typedef wint_t __wctype_wint_t;
+ #else
+ typedef int __wctype_wint_t;
+ #endif
+ 
+ /* FreeBSD 4.4 to 4.11 has <wctype.h> but lacks the functions.
+    Linux libc5 has <wctype.h> and the functions but they are broken.
+    Assume all 12 functions are implemented the same way, or not at all.  */
+ #if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
+ 
+ /* IRIX 5.3 has macros but no functions, its isw* macros refer to an
+    undefined variable _ctmp_ and to <ctype.h> macros like _P, and they
+    refer to system functions like _iswctype that are not in the
+    standard C library.  Rather than try to get ancient buggy
+    implementations like this to work, just disable them.  */
+ #  undef iswalnum
+ #  undef iswalpha
+ #  undef iswblank
+ #  undef iswcntrl
+ #  undef iswdigit
+ #  undef iswgraph
+ #  undef iswlower
+ #  undef iswprint
+ #  undef iswpunct
+ #  undef iswspace
+ #  undef iswupper
+ #  undef iswxdigit
+ 
+ /* Linux libc5 has <wctype.h> and the functions but they are broken.  */
+ #  if @REPLACE_ISWCNTRL@
+ #   define iswalnum rpl_iswalnum
+ #   define iswalpha rpl_iswalpha
+ #   define iswblank rpl_iswblank
+ #   define iswcntrl rpl_iswcntrl
+ #   define iswdigit rpl_iswdigit
+ #   define iswgraph rpl_iswgraph
+ #   define iswlower rpl_iswlower
+ #   define iswprint rpl_iswprint
+ #   define iswpunct rpl_iswpunct
+ #   define iswspace rpl_iswspace
+ #   define iswupper rpl_iswupper
+ #   define iswxdigit rpl_iswxdigit
+ #  endif
+ 
+ static inline int
+ iswalnum (__wctype_wint_t wc)
+ {
+   return ((wc >= '0' && wc <= '9')
+ 	  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z'));
+ }
+ 
+ static inline int
+ iswalpha (__wctype_wint_t wc)
+ {
+   return (wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z';
+ }
+ 
+ static inline int
+ iswblank (__wctype_wint_t wc)
+ {
+   return wc == ' ' || wc == '\t';
+ }
+ 
+ static inline int
+ iswcntrl (__wctype_wint_t wc)
+ {
+   return (wc & ~0x1f) == 0 || wc == 0x7f;
+ }
+ 
+ static inline int
+ iswdigit (__wctype_wint_t wc)
+ {
+   return wc >= '0' && wc <= '9';
+ }
+ 
+ static inline int
+ iswgraph (__wctype_wint_t wc)
+ {
+   return wc >= '!' && wc <= '~';
+ }
+ 
+ static inline int
+ iswlower (__wctype_wint_t wc)
+ {
+   return wc >= 'a' && wc <= 'z';
+ }
+ 
+ static inline int
+ iswprint (__wctype_wint_t wc)
+ {
+   return wc >= ' ' && wc <= '~';
+ }
+ 
+ static inline int
+ iswpunct (__wctype_wint_t wc)
+ {
+   return (wc >= '!' && wc <= '~'
+ 	  && !((wc >= '0' && wc <= '9')
+ 	       || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'Z')));
+ }
+ 
+ static inline int
+ iswspace (__wctype_wint_t wc)
+ {
+   return (wc == ' ' || wc == '\t'
+ 	  || wc == '\n' || wc == '\v' || wc == '\f' || wc == '\r');
+ }
+ 
+ static inline int
+ iswupper (__wctype_wint_t wc)
+ {
+   return wc >= 'A' && wc <= 'Z';
+ }
+ 
+ static inline int
+ iswxdigit (__wctype_wint_t wc)
+ {
+   return ((wc >= '0' && wc <= '9')
+ 	  || ((wc & ~0x20) >= 'A' && (wc & ~0x20) <= 'F'));
+ }
+ 
+ # endif /* ! HAVE_ISWCNTRL */
+ 
+ #endif /* _GL_WCTYPE_H */
+ #endif /* _GL_WCTYPE_H */
diff -Nrc2 texinfo-4.12/gnulib/lib/wcwidth.c texinfo-4.13/gnulib/lib/wcwidth.c
*** texinfo-4.12/gnulib/lib/wcwidth.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/wcwidth.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,51 ----
+ /* Determine the number of screen columns needed for a character.
+    Copyright (C) 2006, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include <wchar.h>
+ 
+ /* Get iswprint.  */
+ #include <wctype.h>
+ 
+ #include "localcharset.h"
+ #include "streq.h"
+ #include "uniwidth.h"
+ 
+ #undef wcwidth
+ 
+ int
+ rpl_wcwidth (wchar_t wc)
+ {
+   /* In UTF-8 locales, use a Unicode aware width function.  */
+   const char *encoding = locale_charset ();
+   if (STREQ (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0))
+     {
+       /* We assume that in a UTF-8 locale, a wide character is the same as a
+ 	 Unicode character.  */
+       return uc_width (wc, encoding);
+     }
+   else
+     {
+       /* Otherwise, fall back to the system's wcwidth function.  */
+ #if HAVE_WCWIDTH
+       return wcwidth (wc);
+ #else
+       return wc == 0 ? 0 : iswprint (wc) ? 1 : -1;
+ #endif
+     }
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/xalloc-die.c texinfo-4.13/gnulib/lib/xalloc-die.c
*** texinfo-4.12/gnulib/lib/xalloc-die.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/xalloc-die.c	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,41 ----
+ /* Report a memory allocation failure and exit.
+ 
+    Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2006 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ #include "xalloc.h"
+ 
+ #include <stdlib.h>
+ 
+ #include "error.h"
+ #include "exitfail.h"
+ 
+ #include "gettext.h"
+ #define _(msgid) gettext (msgid)
+ 
+ void
+ xalloc_die (void)
+ {
+   error (exit_failure, 0, "%s", _("memory exhausted"));
+ 
+   /* The `noreturn' cannot be given to error, since it may return if
+      its first argument is 0.  To help compilers understand the
+      xalloc_die does not return, call abort.  Also, the abort is a
+      safety feature if exit_failure is 0 (which shouldn't happen).  */
+   abort ();
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/xalloc.h texinfo-4.13/gnulib/lib/xalloc.h
*** texinfo-4.12/gnulib/lib/xalloc.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/xalloc.h	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,280 ----
+ /* xalloc.h -- malloc with out-of-memory checking
+ 
+    Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+    1999, 2000, 2003, 2004, 2006, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef XALLOC_H_
+ # define XALLOC_H_
+ 
+ # include <stddef.h>
+ 
+ 
+ # ifdef __cplusplus
+ extern "C" {
+ # endif
+ 
+ 
+ # ifndef __attribute__
+ #  if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
+ #   define __attribute__(x)
+ #  endif
+ # endif
+ 
+ # ifndef ATTRIBUTE_NORETURN
+ #  define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
+ # endif
+ 
+ # ifndef ATTRIBUTE_MALLOC
+ #  if __GNUC__ >= 3
+ #   define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+ #  else
+ #   define ATTRIBUTE_MALLOC
+ #  endif
+ # endif
+ 
+ /* This function is always triggered when memory is exhausted.
+    It must be defined by the application, either explicitly
+    or by using gnulib's xalloc-die module.  This is the
+    function to call when one wants the program to die because of a
+    memory allocation failure.  */
+ extern void xalloc_die (void) ATTRIBUTE_NORETURN;
+ 
+ void *xmalloc (size_t s) ATTRIBUTE_MALLOC;
+ void *xzalloc (size_t s) ATTRIBUTE_MALLOC;
+ void *xcalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
+ void *xrealloc (void *p, size_t s);
+ void *x2realloc (void *p, size_t *pn);
+ void *xmemdup (void const *p, size_t s) ATTRIBUTE_MALLOC;
+ char *xstrdup (char const *str) ATTRIBUTE_MALLOC;
+ 
+ /* Return 1 if an array of N objects, each of size S, cannot exist due
+    to size arithmetic overflow.  S must be positive and N must be
+    nonnegative.  This is a macro, not an inline function, so that it
+    works correctly even when SIZE_MAX < N.
+ 
+    By gnulib convention, SIZE_MAX represents overflow in size
+    calculations, so the conservative dividend to use here is
+    SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
+    However, malloc (SIZE_MAX) fails on all known hosts where
+    sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
+    exactly-SIZE_MAX allocations on such hosts; this avoids a test and
+    branch when S is known to be 1.  */
+ # define xalloc_oversized(n, s) \
+     ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
+ 
+ 
+ /* In the following macros, T must be an elementary or structure/union or
+    typedef'ed type, or a pointer to such a type.  To apply one of the
+    following macros to a function pointer or array type, you need to typedef
+    it first and use the typedef name.  */
+ 
+ /* Allocate an object of type T dynamically, with error checking.  */
+ /* extern t *XMALLOC (typename t); */
+ # define XMALLOC(t) ((t *) xmalloc (sizeof (t)))
+ 
+ /* Allocate memory for N elements of type T, with error checking.  */
+ /* extern t *XNMALLOC (size_t n, typename t); */
+ # define XNMALLOC(n, t) \
+     ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t))))
+ 
+ /* Allocate an object of type T dynamically, with error checking,
+    and zero it.  */
+ /* extern t *XZALLOC (typename t); */
+ # define XZALLOC(t) ((t *) xzalloc (sizeof (t)))
+ 
+ /* Allocate memory for N elements of type T, with error checking,
+    and zero it.  */
+ /* extern t *XCALLOC (size_t n, typename t); */
+ # define XCALLOC(n, t) \
+     ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
+ 
+ 
+ # if HAVE_INLINE
+ #  define static_inline static inline
+ # else
+    void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
+    void *xnrealloc (void *p, size_t n, size_t s);
+    void *x2nrealloc (void *p, size_t *pn, size_t s);
+    char *xcharalloc (size_t n) ATTRIBUTE_MALLOC;
+ # endif
+ 
+ # ifdef static_inline
+ 
+ /* Allocate an array of N objects, each with S bytes of memory,
+    dynamically, with error checking.  S must be nonzero.  */
+ 
+ static_inline void *xnmalloc (size_t n, size_t s) ATTRIBUTE_MALLOC;
+ static_inline void *
+ xnmalloc (size_t n, size_t s)
+ {
+   if (xalloc_oversized (n, s))
+     xalloc_die ();
+   return xmalloc (n * s);
+ }
+ 
+ /* Change the size of an allocated block of memory P to an array of N
+    objects each of S bytes, with error checking.  S must be nonzero.  */
+ 
+ static_inline void *
+ xnrealloc (void *p, size_t n, size_t s)
+ {
+   if (xalloc_oversized (n, s))
+     xalloc_die ();
+   return xrealloc (p, n * s);
+ }
+ 
+ /* If P is null, allocate a block of at least *PN such objects;
+    otherwise, reallocate P so that it contains more than *PN objects
+    each of S bytes.  *PN must be nonzero unless P is null, and S must
+    be nonzero.  Set *PN to the new number of objects, and return the
+    pointer to the new block.  *PN is never set to zero, and the
+    returned pointer is never null.
+ 
+    Repeated reallocations are guaranteed to make progress, either by
+    allocating an initial block with a nonzero size, or by allocating a
+    larger block.
+ 
+    In the following implementation, nonzero sizes are increased by a
+    factor of approximately 1.5 so that repeated reallocations have
+    O(N) overall cost rather than O(N**2) cost, but the
+    specification for this function does not guarantee that rate.
+ 
+    Here is an example of use:
+ 
+      int *p = NULL;
+      size_t used = 0;
+      size_t allocated = 0;
+ 
+      void
+      append_int (int value)
+        {
+ 	 if (used == allocated)
+ 	   p = x2nrealloc (p, &allocated, sizeof *p);
+ 	 p[used++] = value;
+        }
+ 
+    This causes x2nrealloc to allocate a block of some nonzero size the
+    first time it is called.
+ 
+    To have finer-grained control over the initial size, set *PN to a
+    nonzero value before calling this function with P == NULL.  For
+    example:
+ 
+      int *p = NULL;
+      size_t used = 0;
+      size_t allocated = 0;
+      size_t allocated1 = 1000;
+ 
+      void
+      append_int (int value)
+        {
+ 	 if (used == allocated)
+ 	   {
+ 	     p = x2nrealloc (p, &allocated1, sizeof *p);
+ 	     allocated = allocated1;
+ 	   }
+ 	 p[used++] = value;
+        }
+ 
+    */
+ 
+ static_inline void *
+ x2nrealloc (void *p, size_t *pn, size_t s)
+ {
+   size_t n = *pn;
+ 
+   if (! p)
+     {
+       if (! n)
+ 	{
+ 	  /* The approximate size to use for initial small allocation
+ 	     requests, when the invoking code specifies an old size of
+ 	     zero.  64 bytes is the largest "small" request for the
+ 	     GNU C library malloc.  */
+ 	  enum { DEFAULT_MXFAST = 64 };
+ 
+ 	  n = DEFAULT_MXFAST / s;
+ 	  n += !n;
+ 	}
+     }
+   else
+     {
+       /* Set N = ceil (1.5 * N) so that progress is made if N == 1.
+ 	 Check for overflow, so that N * S stays in size_t range.
+ 	 The check is slightly conservative, but an exact check isn't
+ 	 worth the trouble.  */
+       if ((size_t) -1 / 3 * 2 / s <= n)
+ 	xalloc_die ();
+       n += (n + 1) / 2;
+     }
+ 
+   *pn = n;
+   return xrealloc (p, n * s);
+ }
+ 
+ /* Return a pointer to a new buffer of N bytes.  This is like xmalloc,
+    except it returns char *.  */
+ 
+ static_inline char *xcharalloc (size_t n) ATTRIBUTE_MALLOC;
+ static_inline char *
+ xcharalloc (size_t n)
+ {
+   return XNMALLOC (n, char);
+ }
+ 
+ # endif
+ 
+ # ifdef __cplusplus
+ }
+ 
+ /* C++ does not allow conversions from void * to other pointer types
+    without a cast.  Use templates to work around the problem when
+    possible.  */
+ 
+ template <typename T> inline T *
+ xrealloc (T *p, size_t s)
+ {
+   return (T *) xrealloc ((void *) p, s);
+ }
+ 
+ template <typename T> inline T *
+ xnrealloc (T *p, size_t n, size_t s)
+ {
+   return (T *) xnrealloc ((void *) p, n, s);
+ }
+ 
+ template <typename T> inline T *
+ x2realloc (T *p, size_t *pn)
+ {
+   return (T *) x2realloc ((void *) p, pn);
+ }
+ 
+ template <typename T> inline T *
+ x2nrealloc (T *p, size_t *pn, size_t s)
+ {
+   return (T *) x2nrealloc ((void *) p, pn, s);
+ }
+ 
+ template <typename T> inline T *
+ xmemdup (T const *p, size_t s)
+ {
+   return (T *) xmemdup ((void const *) p, s);
+ }
+ 
+ # endif
+ 
+ 
+ #endif /* !XALLOC_H_ */
diff -Nrc2 texinfo-4.12/gnulib/lib/xmalloc.c texinfo-4.13/gnulib/lib/xmalloc.c
*** texinfo-4.12/gnulib/lib/xmalloc.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/xmalloc.c	Thu May 22 05:11:32 2008
***************
*** 0 ****
--- 1,122 ----
+ /* xmalloc.c -- malloc with out of memory checking
+ 
+    Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+    1999, 2000, 2002, 2003, 2004, 2005, 2006, 2008 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ #if ! HAVE_INLINE
+ # define static_inline
+ #endif
+ #include "xalloc.h"
+ #undef static_inline
+ 
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ #ifndef SIZE_MAX
+ # define SIZE_MAX ((size_t) -1)
+ #endif
+ 
+ /* 1 if calloc is known to be compatible with GNU calloc.  This
+    matters if we are not also using the calloc module, which defines
+    HAVE_CALLOC and supports the GNU API even on non-GNU platforms.  */
+ #if defined HAVE_CALLOC || defined __GLIBC__
+ enum { HAVE_GNU_CALLOC = 1 };
+ #else
+ enum { HAVE_GNU_CALLOC = 0 };
+ #endif
+ 
+ /* Allocate N bytes of memory dynamically, with error checking.  */
+ 
+ void *
+ xmalloc (size_t n)
+ {
+   void *p = malloc (n);
+   if (!p && n != 0)
+     xalloc_die ();
+   return p;
+ }
+ 
+ /* Change the size of an allocated block of memory P to N bytes,
+    with error checking.  */
+ 
+ void *
+ xrealloc (void *p, size_t n)
+ {
+   p = realloc (p, n);
+   if (!p && n != 0)
+     xalloc_die ();
+   return p;
+ }
+ 
+ /* If P is null, allocate a block of at least *PN bytes; otherwise,
+    reallocate P so that it contains more than *PN bytes.  *PN must be
+    nonzero unless P is null.  Set *PN to the new block's size, and
+    return the pointer to the new block.  *PN is never set to zero, and
+    the returned pointer is never null.  */
+ 
+ void *
+ x2realloc (void *p, size_t *pn)
+ {
+   return x2nrealloc (p, pn, 1);
+ }
+ 
+ /* Allocate S bytes of zeroed memory dynamically, with error checking.
+    There's no need for xnzalloc (N, S), since it would be equivalent
+    to xcalloc (N, S).  */
+ 
+ void *
+ xzalloc (size_t s)
+ {
+   return memset (xmalloc (s), 0, s);
+ }
+ 
+ /* Allocate zeroed memory for N elements of S bytes, with error
+    checking.  S must be nonzero.  */
+ 
+ void *
+ xcalloc (size_t n, size_t s)
+ {
+   void *p;
+   /* Test for overflow, since some calloc implementations don't have
+      proper overflow checks.  But omit overflow and size-zero tests if
+      HAVE_GNU_CALLOC, since GNU calloc catches overflow and never
+      returns NULL if successful.  */
+   if ((! HAVE_GNU_CALLOC && xalloc_oversized (n, s))
+       || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0)))
+     xalloc_die ();
+   return p;
+ }
+ 
+ /* Clone an object P of size S, with error checking.  There's no need
+    for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any
+    need for an arithmetic overflow check.  */
+ 
+ void *
+ xmemdup (void const *p, size_t s)
+ {
+   return memcpy (xmalloc (s), p, s);
+ }
+ 
+ /* Clone STRING.  */
+ 
+ char *
+ xstrdup (char const *string)
+ {
+   return xmemdup (string, strlen (string) + 1);
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/xsetenv.c texinfo-4.13/gnulib/lib/xsetenv.c
*** texinfo-4.12/gnulib/lib/xsetenv.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/xsetenv.c	Mon Dec 31 11:45:46 2007
***************
*** 0 ****
--- 1,38 ----
+ /* Setting environment variables, with out-of-memory checking.
+    Copyright (C) 2001-2002, 2005-2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+ /* Specification.  */
+ #include "xsetenv.h"
+ 
+ #include <stdlib.h>
+ 
+ #include "error.h"
+ #include "gettext.h"
+ 
+ #define _(str) gettext (str)
+ 
+ 
+ /* Set NAME to VALUE in the environment.
+    If REPLACE is nonzero, overwrite an existing value.
+    With error checking.  */
+ void
+ xsetenv (const char *name, const char *value, int replace)
+ {
+   if (setenv (name, value, replace) < 0)
+     error (EXIT_FAILURE, 0, _("memory exhausted"));
+ }
diff -Nrc2 texinfo-4.12/gnulib/lib/xsetenv.h texinfo-4.13/gnulib/lib/xsetenv.h
*** texinfo-4.12/gnulib/lib/xsetenv.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/lib/xsetenv.h	Mon Dec 31 11:45:46 2007
***************
*** 0 ****
--- 1,31 ----
+ /* Setting environment variables, with out-of-memory checking.
+    Copyright (C) 2001-2002, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ /* Get unsetenv().  It can be used without error checking.  */
+ #include <stdlib.h>
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ /* Set NAME to VALUE in the environment.
+    If REPLACE is nonzero, overwrite an existing value.
+    With error checking.  */
+ extern void xsetenv (const char *name, const char *value, int replace);
+ 
+ #ifdef __cplusplus
+ }
+ #endif
diff -Nrc2 texinfo-4.12/gnulib/m4/alloca.m4 texinfo-4.13/gnulib/m4/alloca.m4
*** texinfo-4.12/gnulib/m4/alloca.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/alloca.m4	Tue Feb 12 17:00:53 2008
***************
*** 0 ****
--- 1,46 ----
+ # alloca.m4 serial 8
+ dnl Copyright (C) 2002-2004, 2006, 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_ALLOCA],
+ [
+   dnl Work around a bug of AC_EGREP_CPP in autoconf-2.57.
+   AC_REQUIRE([AC_PROG_CPP])
+   AC_REQUIRE([AC_PROG_EGREP])
+ 
+   AC_REQUIRE([AC_FUNC_ALLOCA])
+   if test $ac_cv_func_alloca_works = no; then
+     gl_PREREQ_ALLOCA
+   fi
+ 
+   # Define an additional variable used in the Makefile substitution.
+   if test $ac_cv_working_alloca_h = yes; then
+     AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [
+       AC_EGREP_CPP([Need own alloca], [
+ #if defined __GNUC__ || defined _AIX || defined _MSC_VER
+         Need own alloca
+ #endif
+         ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no])
+     ])
+     if test $gl_cv_rpl_alloca = yes; then
+       dnl OK, alloca can be implemented through a compiler built-in.
+       AC_DEFINE([HAVE_ALLOCA], 1,
+         [Define to 1 if you have 'alloca' after including <alloca.h>,
+          a header that may be supplied by this distribution.])
+       ALLOCA_H=alloca.h
+     else
+       dnl alloca exists as a library function, i.e. it is slow and probably
+       dnl a memory leak. Don't define HAVE_ALLOCA in this case.
+       ALLOCA_H=
+     fi
+   else
+     ALLOCA_H=alloca.h
+   fi
+   AC_SUBST([ALLOCA_H])
+ ])
+ 
+ # Prerequisites of lib/alloca.c.
+ # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
+ AC_DEFUN([gl_PREREQ_ALLOCA], [:])
diff -Nrc2 texinfo-4.12/gnulib/m4/argz.m4 texinfo-4.13/gnulib/m4/argz.m4
*** texinfo-4.12/gnulib/m4/argz.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/argz.m4	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,80 ----
+ # Portability macros for glibc argz.                    -*- Autoconf -*-
+ #
+ #   Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ #   Written by Gary V. Vaughan <gary@gnu.org>
+ #
+ # This file is free software; the Free Software Foundation gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ 
+ # serial 6 argz.m4
+ 
+ AC_DEFUN([gl_FUNC_ARGZ],
+ [gl_PREREQ_ARGZ
+ 
+ AC_REQUIRE([AC_C_RESTRICT])
+ 
+ AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT])
+ 
+ AC_CHECK_TYPES([error_t],
+   [],
+   [AC_DEFINE([error_t], [int],
+    [Define to a type to use for `error_t' if it is not otherwise available.])
+    AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h
+     does not typedef error_t.])],
+   [#if defined(HAVE_ARGZ_H)
+ #  include <argz.h>
+ #endif])
+ 
+ ARGZ_H=
+ AC_CHECK_FUNC([argz_replace], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])])
+ 
+ dnl if have system argz functions, allow forced use of
+ dnl libltdl-supplied implementation (and default to do so
+ dnl on "known bad" systems). Could use a runtime check, but
+ dnl (a) detecting malloc issues is notoriously unreliable
+ dnl (b) only known system that declares argz functions,
+ dnl     provides them, yet they are broken, is cygwin
+ dnl     releases prior to 5-May-2007 (1.5.24 and earlier)
+ dnl So, it's more straightforward simply to special case
+ dnl this for known bad systems.
+ AS_IF([test -z "$ARGZ_H"],
+     [AC_CACHE_CHECK(
+         [if argz actually works],
+         [lt_cv_sys_argz_works],
+         [[case $host_os in #(
+ 	 *cygwin*)
+ 	   lt_cv_sys_argz_works=no
+ 	   if test "$cross_compiling" != no; then
+ 	     lt_cv_sys_argz_works="guessing no"
+ 	   else
+ 	     lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/'
+ 	     save_IFS=$IFS
+ 	     IFS=-.
+ 	     set x `uname -r | sed -e "$lt_sed_extract_leading_digits"`
+ 	     IFS=$save_IFS
+ 	     lt_os_major=${2-0}
+ 	     lt_os_minor=${3-0}
+ 	     lt_os_micro=${4-0}
+ 	     if test "$lt_os_major" -gt 1 \
+ 		|| { test "$lt_os_major" -eq 1 \
+ 		  && { test "$lt_os_minor" -gt 5 \
+ 		    || { test "$lt_os_minor" -eq 5 \
+ 		      && test "$lt_os_micro" -gt 24; }; }; }; then
+ 	       lt_cv_sys_argz_works=yes
+ 	     fi
+ 	   fi
+ 	   ;; #(
+ 	 *) lt_cv_sys_argz_works=yes ;;
+ 	 esac]])
+      AS_IF([test $lt_cv_sys_argz_works = yes],
+         [AC_DEFINE([HAVE_WORKING_ARGZ], 1,
+                    [This value is set to 1 to indicate that the system argz facility works])],
+         [ARGZ_H=argz.h
+         AC_LIBOBJ([argz])])])
+ 
+ AC_SUBST([ARGZ_H])
+ ])
+ 
+ # Prerequisites of lib/argz.c.
+ AC_DEFUN([gl_PREREQ_ARGZ], [:])
diff -Nrc2 texinfo-4.12/gnulib/m4/codeset.m4 texinfo-4.13/gnulib/m4/codeset.m4
*** texinfo-4.12/gnulib/m4/codeset.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/codeset.m4	Tue Oct 31 11:34:00 2006
***************
*** 0 ****
--- 1,21 ----
+ # codeset.m4 serial 2 (gettext-0.16)
+ dnl Copyright (C) 2000-2002, 2006 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Bruno Haible.
+ 
+ AC_DEFUN([AM_LANGINFO_CODESET],
+ [
+   AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+     [AC_TRY_LINK([#include <langinfo.h>],
+       [char* cs = nl_langinfo(CODESET); return !cs;],
+       am_cv_langinfo_codeset=yes,
+       am_cv_langinfo_codeset=no)
+     ])
+   if test $am_cv_langinfo_codeset = yes; then
+     AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+       [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+   fi
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/eealloc.m4 texinfo-4.13/gnulib/m4/eealloc.m4
*** texinfo-4.12/gnulib/m4/eealloc.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/eealloc.m4	Mon Jun 19 16:08:57 2006
***************
*** 0 ****
--- 1,32 ----
+ # eealloc.m4 serial 1
+ dnl Copyright (C) 2003 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_EEALLOC],
+ [
+   AC_REQUIRE([gl_EEMALLOC])
+   AC_REQUIRE([gl_EEREALLOC])
+   AC_REQUIRE([AC_C_INLINE])
+ ])
+ 
+ AC_DEFUN([gl_EEMALLOC],
+ [
+   _AC_FUNC_MALLOC_IF(
+     [gl_cv_func_malloc_0_nonnull=1],
+     [gl_cv_func_malloc_0_nonnull=0])
+   AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], $gl_cv_func_malloc_0_nonnull,
+     [If malloc(0) is != NULL, define this to 1.  Otherwise define this
+      to 0.])
+ ])
+ 
+ AC_DEFUN([gl_EEREALLOC],
+ [
+   _AC_FUNC_REALLOC_IF(
+     [gl_cv_func_realloc_0_nonnull=1],
+     [gl_cv_func_realloc_0_nonnull=0])
+   AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], $gl_cv_func_realloc_0_nonnull,
+     [If realloc(NULL,0) is != NULL, define this to 1.  Otherwise define this
+      to 0.])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/environ.m4 texinfo-4.13/gnulib/m4/environ.m4
*** texinfo-4.12/gnulib/m4/environ.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/environ.m4	Mon Feb 25 10:06:02 2008
***************
*** 0 ****
--- 1,36 ----
+ # environ.m4 serial 1
+ dnl Copyright (C) 2001-2004, 2006-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_ENVIRON],
+ [
+   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+   dnl Persuade glibc <unistd.h> to declare environ.
+   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+   gt_CHECK_VAR_DECL([#include <unistd.h>], environ)
+   if test $gt_cv_var_environ_declaration != yes; then
+     HAVE_DECL_ENVIRON=0
+   fi
+ ])
+ 
+ # Check if a variable is properly declared.
+ # gt_CHECK_VAR_DECL(includes,variable)
+ AC_DEFUN([gt_CHECK_VAR_DECL],
+ [
+   define([gt_cv_var], [gt_cv_var_]$2[_declaration])
+   AC_MSG_CHECKING([if $2 is properly declared])
+   AC_CACHE_VAL(gt_cv_var, [
+     AC_TRY_COMPILE([$1
+       extern struct { int foo; } $2;],
+       [$2.foo = 1;],
+       gt_cv_var=no,
+       gt_cv_var=yes)])
+   AC_MSG_RESULT($gt_cv_var)
+   if test $gt_cv_var = yes; then
+     AC_DEFINE([HAVE_]translit($2, [a-z], [A-Z])[_DECL], 1,
+               [Define if you have the declaration of $2.])
+   fi
+   undefine([gt_cv_var])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/error.m4 texinfo-4.13/gnulib/m4/error.m4
*** texinfo-4.12/gnulib/m4/error.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/error.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,22 ----
+ #serial 11
+ 
+ # Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2004 Free Software
+ # Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_ERROR],
+ [
+   AC_FUNC_ERROR_AT_LINE
+   dnl Note: AC_FUNC_ERROR_AT_LINE does AC_LIBSOURCES([error.h, error.c]).
+   gl_PREREQ_ERROR
+ ])
+ 
+ # Prerequisites of lib/error.c.
+ AC_DEFUN([gl_PREREQ_ERROR],
+ [
+   AC_REQUIRE([AC_FUNC_STRERROR_R])
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/exitfail.m4 texinfo-4.13/gnulib/m4/exitfail.m4
*** texinfo-4.12/gnulib/m4/exitfail.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/exitfail.m4	Tue Aug 22 05:08:40 2006
***************
*** 0 ****
--- 1,13 ----
+ # exitfail.m4 serial 6
+ dnl Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_EXITFAIL],
+ [
+   AC_LIBOBJ([exitfail])
+ 
+   dnl No prerequisites of lib/exitfail.c.
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/extensions.m4 texinfo-4.13/gnulib/m4/extensions.m4
*** texinfo-4.12/gnulib/m4/extensions.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/extensions.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,82 ----
+ # serial 5  -*- Autoconf -*-
+ # Enable extensions on systems that normally disable them.
+ 
+ # Copyright (C) 2003, 2006-2008 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
+ # Autoconf.  Perhaps we can remove this once we can assume Autoconf
+ # 2.62 or later everywhere, but since CVS Autoconf mutates rapidly
+ # enough in this area it's likely we'll need to redefine
+ # AC_USE_SYSTEM_EXTENSIONS for quite some time.
+ 
+ # AC_USE_SYSTEM_EXTENSIONS
+ # ------------------------
+ # Enable extensions on systems that normally disable them,
+ # typically due to standards-conformance issues.
+ # Remember that #undef in AH_VERBATIM gets replaced with #define by
+ # AC_DEFINE.  The goal here is to define all known feature-enabling
+ # macros, then, if reports of conflicts are made, disable macros that
+ # cause problems on some platforms (such as __EXTENSIONS__).
+ AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
+ [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
+ AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
+ 
+   AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
+   if test "$MINIX" = yes; then
+     AC_DEFINE([_POSIX_SOURCE], [1],
+       [Define to 1 if you need to in order for `stat' and other
+        things to work.])
+     AC_DEFINE([_POSIX_1_SOURCE], [2],
+       [Define to 2 if the system does not provide POSIX.1 features
+        except with this defined.])
+     AC_DEFINE([_MINIX], [1],
+       [Define to 1 if on MINIX.])
+   fi
+ 
+   AH_VERBATIM([__EXTENSIONS__],
+ [/* Enable extensions on AIX 3, Interix.  */
+ #ifndef _ALL_SOURCE
+ # undef _ALL_SOURCE
+ #endif
+ /* Enable GNU extensions on systems that have them.  */
+ #ifndef _GNU_SOURCE
+ # undef _GNU_SOURCE
+ #endif
+ /* Enable threading extensions on Solaris.  */
+ #ifndef _POSIX_PTHREAD_SEMANTICS
+ # undef _POSIX_PTHREAD_SEMANTICS
+ #endif
+ /* Enable extensions on HP NonStop.  */
+ #ifndef _TANDEM_SOURCE
+ # undef _TANDEM_SOURCE
+ #endif
+ /* Enable general extensions on Solaris.  */
+ #ifndef __EXTENSIONS__
+ # undef __EXTENSIONS__
+ #endif
+ ])
+   AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
+     [ac_cv_safe_to_define___extensions__],
+     [AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[
+ #	  define __EXTENSIONS__ 1
+ 	  ]AC_INCLUDES_DEFAULT])],
+        [ac_cv_safe_to_define___extensions__=yes],
+        [ac_cv_safe_to_define___extensions__=no])])
+   test $ac_cv_safe_to_define___extensions__ = yes &&
+     AC_DEFINE([__EXTENSIONS__])
+   AC_DEFINE([_ALL_SOURCE])
+   AC_DEFINE([_GNU_SOURCE])
+   AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+   AC_DEFINE([_TANDEM_SOURCE])
+ ])# AC_USE_SYSTEM_EXTENSIONS
+ 
+ # gl_USE_SYSTEM_EXTENSIONS
+ # ------------------------
+ # Enable extensions on systems that normally disable them,
+ # typically due to standards-conformance issues.
+ AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS],
+   [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])])
diff -Nrc2 texinfo-4.12/gnulib/m4/getopt.m4 texinfo-4.13/gnulib/m4/getopt.m4
*** texinfo-4.12/gnulib/m4/getopt.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/getopt.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,83 ----
+ # getopt.m4 serial 14
+ dnl Copyright (C) 2002-2006, 2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ # The getopt module assume you want GNU getopt, with getopt_long etc,
+ # rather than vanilla POSIX getopt.  This means your code should
+ # always include <getopt.h> for the getopt prototypes.
+ 
+ AC_DEFUN([gl_GETOPT_SUBSTITUTE],
+ [
+   AC_LIBOBJ([getopt])
+   AC_LIBOBJ([getopt1])
+   gl_GETOPT_SUBSTITUTE_HEADER
+   gl_PREREQ_GETOPT
+ ])
+ 
+ AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
+ [
+   GETOPT_H=getopt.h
+   AC_DEFINE([__GETOPT_PREFIX], [[rpl_]],
+     [Define to rpl_ if the getopt replacement functions and variables
+      should be used.])
+   AC_SUBST([GETOPT_H])
+ ])
+ 
+ AC_DEFUN([gl_GETOPT_CHECK_HEADERS],
+ [
+   if test -z "$GETOPT_H"; then
+     AC_CHECK_HEADERS([getopt.h], [], [GETOPT_H=getopt.h])
+   fi
+ 
+   if test -z "$GETOPT_H"; then
+     AC_CHECK_FUNCS([getopt_long_only], [], [GETOPT_H=getopt.h])
+   fi
+ 
+   dnl BSD getopt_long uses an incompatible method to reset option processing,
+   dnl and (as of 2004-10-15) mishandles optional option-arguments.
+   if test -z "$GETOPT_H"; then
+     AC_CHECK_DECL([optreset], [GETOPT_H=getopt.h], [], [#include <getopt.h>])
+   fi
+ 
+   dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
+   dnl option string (as of 2005-05-05).
+   if test -z "$GETOPT_H"; then
+     AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_gnu_getopt],
+       [AC_RUN_IFELSE(
+ 	[AC_LANG_PROGRAM([[#include <getopt.h>]],
+ 	   [[
+ 	     char *myargv[3];
+ 	     myargv[0] = "conftest";
+ 	     myargv[1] = "-+";
+ 	     myargv[2] = 0;
+ 	     return getopt (2, myargv, "+a") != '?';
+ 	   ]])],
+ 	[gl_cv_func_gnu_getopt=yes],
+ 	[gl_cv_func_gnu_getopt=no],
+ 	[dnl cross compiling - pessimistically guess based on decls
+ 	 dnl Solaris 10 getopt doesn't handle `+' as a leading character in an
+ 	 dnl option string (as of 2005-05-05).
+ 	 AC_CHECK_DECL([getopt_clip],
+ 	   [gl_cv_func_gnu_getopt=no], [gl_cv_func_gnu_getopt=yes],
+ 	   [#include <getopt.h>])])])
+     if test "$gl_cv_func_gnu_getopt" = "no"; then
+       GETOPT_H=getopt.h
+     fi
+   fi
+ ])
+ 
+ AC_DEFUN([gl_GETOPT_IFELSE],
+ [
+   AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
+   AS_IF([test -n "$GETOPT_H"], [$1], [$2])
+ ])
+ 
+ AC_DEFUN([gl_GETOPT], [gl_GETOPT_IFELSE([gl_GETOPT_SUBSTITUTE])])
+ 
+ # Prerequisites of lib/getopt*.
+ AC_DEFUN([gl_PREREQ_GETOPT],
+ [
+   AC_CHECK_DECLS_ONCE([getenv])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/gettext.m4 texinfo-4.13/gnulib/m4/gettext.m4
*** texinfo-4.12/gnulib/m4/gettext.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/gettext.m4	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,381 ----
+ # gettext.m4 serial 60 (gettext-0.17)
+ dnl Copyright (C) 1995-2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ dnl
+ dnl This file can can be used in projects which are not available under
+ dnl the GNU General Public License or the GNU Library General Public
+ dnl License but which still want to provide support for the GNU gettext
+ dnl functionality.
+ dnl Please note that the actual code of the GNU gettext library is covered
+ dnl by the GNU Library General Public License, and the rest of the GNU
+ dnl gettext package package is covered by the GNU General Public License.
+ dnl They are *not* in the public domain.
+ 
+ dnl Authors:
+ dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+ dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006.
+ 
+ dnl Macro to add for using GNU gettext.
+ 
+ dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+ dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+ dnl    default (if it is not specified or empty) is 'no-libtool'.
+ dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
+ dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+ dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
+ dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+ dnl    depending on --{enable,disable}-{shared,static} and on the presence of
+ dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+ dnl    $(top_builddir)/intl/libintl.a will be created.
+ dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+ dnl    implementations (in libc or libintl) without the ngettext() function
+ dnl    will be ignored.  If NEEDSYMBOL is specified and is
+ dnl    'need-formatstring-macros', then GNU gettext implementations that don't
+ dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+ dnl INTLDIR is used to find the intl libraries.  If empty,
+ dnl    the value `$(top_builddir)/intl/' is used.
+ dnl
+ dnl The result of the configuration is one of three cases:
+ dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+ dnl    and used.
+ dnl    Catalog format: GNU --> install in $(datadir)
+ dnl    Catalog extension: .mo after installation, .gmo in source tree
+ dnl 2) GNU gettext has been found in the system's C library.
+ dnl    Catalog format: GNU --> install in $(datadir)
+ dnl    Catalog extension: .mo after installation, .gmo in source tree
+ dnl 3) No internationalization, always use English msgid.
+ dnl    Catalog format: none
+ dnl    Catalog extension: none
+ dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+ dnl The use of .gmo is historical (it was needed to avoid overwriting the
+ dnl GNU format catalogs when building on a platform with an X/Open gettext),
+ dnl but we keep it in order not to force irrelevant filename changes on the
+ dnl maintainers.
+ dnl
+ AC_DEFUN([AM_GNU_GETTEXT],
+ [
+   dnl Argument checking.
+   ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+     [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+ ])])])])])
+   ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+     [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+ ])])])])
+   define([gt_included_intl],
+     ifelse([$1], [external],
+       ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
+       [yes]))
+   define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
+   gt_NEEDS_INIT
+   AM_GNU_GETTEXT_NEED([$2])
+ 
+   AC_REQUIRE([AM_PO_SUBDIRS])dnl
+   ifelse(gt_included_intl, yes, [
+     AC_REQUIRE([AM_INTL_SUBDIR])dnl
+   ])
+ 
+   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+   AC_REQUIRE([AC_LIB_RPATH])
+ 
+   dnl Sometimes libintl requires libiconv, so first search for libiconv.
+   dnl Ideally we would do this search only after the
+   dnl      if test "$USE_NLS" = "yes"; then
+   dnl        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+   dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+   dnl the configure script would need to contain the same shell code
+   dnl again, outside any 'if'. There are two solutions:
+   dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+   dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+   dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+   dnl documented, we avoid it.
+   ifelse(gt_included_intl, yes, , [
+     AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+   ])
+ 
+   dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+   gt_INTL_MACOSX
+ 
+   dnl Set USE_NLS.
+   AC_REQUIRE([AM_NLS])
+ 
+   ifelse(gt_included_intl, yes, [
+     BUILD_INCLUDED_LIBINTL=no
+     USE_INCLUDED_LIBINTL=no
+   ])
+   LIBINTL=
+   LTLIBINTL=
+   POSUB=
+ 
+   dnl Add a version number to the cache macros.
+   case " $gt_needs " in
+     *" need-formatstring-macros "*) gt_api_version=3 ;;
+     *" need-ngettext "*) gt_api_version=2 ;;
+     *) gt_api_version=1 ;;
+   esac
+   gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+   gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+ 
+   dnl If we use NLS figure out what method
+   if test "$USE_NLS" = "yes"; then
+     gt_use_preinstalled_gnugettext=no
+     ifelse(gt_included_intl, yes, [
+       AC_MSG_CHECKING([whether included gettext is requested])
+       AC_ARG_WITH(included-gettext,
+         [  --with-included-gettext use the GNU gettext library included here],
+         nls_cv_force_use_gnu_gettext=$withval,
+         nls_cv_force_use_gnu_gettext=no)
+       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+ 
+       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+     ])
+         dnl User does not insist on using GNU NLS library.  Figure out what
+         dnl to use.  If GNU gettext is available we use this.  Else we have
+         dnl to fall back to GNU NLS library.
+ 
+         if test $gt_api_version -ge 3; then
+           gt_revision_test_code='
+ #ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+ #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+ #endif
+ changequote(,)dnl
+ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+ changequote([,])dnl
+ '
+         else
+           gt_revision_test_code=
+         fi
+         if test $gt_api_version -ge 2; then
+           gt_expression_test_code=' + * ngettext ("", "", 0)'
+         else
+           gt_expression_test_code=
+         fi
+ 
+         AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
+          [AC_TRY_LINK([#include <libintl.h>
+ $gt_revision_test_code
+ extern int _nl_msg_cat_cntr;
+ extern int *_nl_domain_bindings;],
+             [bindtextdomain ("", "");
+ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings],
+             [eval "$gt_func_gnugettext_libc=yes"],
+             [eval "$gt_func_gnugettext_libc=no"])])
+ 
+         if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+           dnl Sometimes libintl requires libiconv, so first search for libiconv.
+           ifelse(gt_included_intl, yes, , [
+             AM_ICONV_LINK
+           ])
+           dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+           dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+           dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+           dnl even if libiconv doesn't exist.
+           AC_LIB_LINKFLAGS_BODY([intl])
+           AC_CACHE_CHECK([for GNU gettext in libintl],
+             [$gt_func_gnugettext_libintl],
+            [gt_save_CPPFLAGS="$CPPFLAGS"
+             CPPFLAGS="$CPPFLAGS $INCINTL"
+             gt_save_LIBS="$LIBS"
+             LIBS="$LIBS $LIBINTL"
+             dnl Now see whether libintl exists and does not depend on libiconv.
+             AC_TRY_LINK([#include <libintl.h>
+ $gt_revision_test_code
+ extern int _nl_msg_cat_cntr;
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ const char *_nl_expand_alias (const char *);],
+               [bindtextdomain ("", "");
+ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+               [eval "$gt_func_gnugettext_libintl=yes"],
+               [eval "$gt_func_gnugettext_libintl=no"])
+             dnl Now see whether libintl exists and depends on libiconv.
+             if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+               LIBS="$LIBS $LIBICONV"
+               AC_TRY_LINK([#include <libintl.h>
+ $gt_revision_test_code
+ extern int _nl_msg_cat_cntr;
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ const char *_nl_expand_alias (const char *);],
+                 [bindtextdomain ("", "");
+ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")],
+                [LIBINTL="$LIBINTL $LIBICONV"
+                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                 eval "$gt_func_gnugettext_libintl=yes"
+                ])
+             fi
+             CPPFLAGS="$gt_save_CPPFLAGS"
+             LIBS="$gt_save_LIBS"])
+         fi
+ 
+         dnl If an already present or preinstalled GNU gettext() is found,
+         dnl use it.  But if this macro is used in GNU gettext, and GNU
+         dnl gettext is already preinstalled in libintl, we update this
+         dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
+         if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+            || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+                 && test "$PACKAGE" != gettext-runtime \
+                 && test "$PACKAGE" != gettext-tools; }; then
+           gt_use_preinstalled_gnugettext=yes
+         else
+           dnl Reset the values set by searching for libintl.
+           LIBINTL=
+           LTLIBINTL=
+           INCINTL=
+         fi
+ 
+     ifelse(gt_included_intl, yes, [
+         if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+           dnl GNU gettext is not found in the C library.
+           dnl Fall back on included GNU gettext library.
+           nls_cv_use_gnu_gettext=yes
+         fi
+       fi
+ 
+       if test "$nls_cv_use_gnu_gettext" = "yes"; then
+         dnl Mark actions used to generate GNU NLS library.
+         BUILD_INCLUDED_LIBINTL=yes
+         USE_INCLUDED_LIBINTL=yes
+         LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
+         LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
+         LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+       fi
+ 
+       CATOBJEXT=
+       if test "$gt_use_preinstalled_gnugettext" = "yes" \
+          || test "$nls_cv_use_gnu_gettext" = "yes"; then
+         dnl Mark actions to use GNU gettext tools.
+         CATOBJEXT=.gmo
+       fi
+     ])
+ 
+     if test -n "$INTL_MACOSX_LIBS"; then
+       if test "$gt_use_preinstalled_gnugettext" = "yes" \
+          || test "$nls_cv_use_gnu_gettext" = "yes"; then
+         dnl Some extra flags are needed during linking.
+         LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+         LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+       fi
+     fi
+ 
+     if test "$gt_use_preinstalled_gnugettext" = "yes" \
+        || test "$nls_cv_use_gnu_gettext" = "yes"; then
+       AC_DEFINE(ENABLE_NLS, 1,
+         [Define to 1 if translation of program messages to the user's native language
+    is requested.])
+     else
+       USE_NLS=no
+     fi
+   fi
+ 
+   AC_MSG_CHECKING([whether to use NLS])
+   AC_MSG_RESULT([$USE_NLS])
+   if test "$USE_NLS" = "yes"; then
+     AC_MSG_CHECKING([where the gettext function comes from])
+     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+       if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+         gt_source="external libintl"
+       else
+         gt_source="libc"
+       fi
+     else
+       gt_source="included intl directory"
+     fi
+     AC_MSG_RESULT([$gt_source])
+   fi
+ 
+   if test "$USE_NLS" = "yes"; then
+ 
+     if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+       if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+         AC_MSG_CHECKING([how to link with libintl])
+         AC_MSG_RESULT([$LIBINTL])
+         AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+       fi
+ 
+       dnl For backward compatibility. Some packages may be using this.
+       AC_DEFINE(HAVE_GETTEXT, 1,
+        [Define if the GNU gettext() function is already present or preinstalled.])
+       AC_DEFINE(HAVE_DCGETTEXT, 1,
+        [Define if the GNU dcgettext() function is already present or preinstalled.])
+     fi
+ 
+     dnl We need to process the po/ directory.
+     POSUB=po
+   fi
+ 
+   ifelse(gt_included_intl, yes, [
+     dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+     dnl to 'yes' because some of the testsuite requires it.
+     if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+       BUILD_INCLUDED_LIBINTL=yes
+     fi
+ 
+     dnl Make all variables we use known to autoconf.
+     AC_SUBST(BUILD_INCLUDED_LIBINTL)
+     AC_SUBST(USE_INCLUDED_LIBINTL)
+     AC_SUBST(CATOBJEXT)
+ 
+     dnl For backward compatibility. Some configure.ins may be using this.
+     nls_cv_header_intl=
+     nls_cv_header_libgt=
+ 
+     dnl For backward compatibility. Some Makefiles may be using this.
+     DATADIRNAME=share
+     AC_SUBST(DATADIRNAME)
+ 
+     dnl For backward compatibility. Some Makefiles may be using this.
+     INSTOBJEXT=.mo
+     AC_SUBST(INSTOBJEXT)
+ 
+     dnl For backward compatibility. Some Makefiles may be using this.
+     GENCAT=gencat
+     AC_SUBST(GENCAT)
+ 
+     dnl For backward compatibility. Some Makefiles may be using this.
+     INTLOBJS=
+     if test "$USE_INCLUDED_LIBINTL" = yes; then
+       INTLOBJS="\$(GETTOBJS)"
+     fi
+     AC_SUBST(INTLOBJS)
+ 
+     dnl Enable libtool support if the surrounding package wishes it.
+     INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+     AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+   ])
+ 
+   dnl For backward compatibility. Some Makefiles may be using this.
+   INTLLIBS="$LIBINTL"
+   AC_SUBST(INTLLIBS)
+ 
+   dnl Make all documented variables known to autoconf.
+   AC_SUBST(LIBINTL)
+   AC_SUBST(LTLIBINTL)
+   AC_SUBST(POSUB)
+ ])
+ 
+ 
+ dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
+ m4_define([gt_NEEDS_INIT],
+ [
+   m4_divert_text([DEFAULTS], [gt_needs=])
+   m4_define([gt_NEEDS_INIT], [])
+ ])
+ 
+ 
+ dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
+ AC_DEFUN([AM_GNU_GETTEXT_NEED],
+ [
+   m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
+ ])
+ 
+ 
+ dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+ AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
diff -Nrc2 texinfo-4.12/gnulib/m4/gettimeofday.m4 texinfo-4.13/gnulib/m4/gettimeofday.m4
*** texinfo-4.12/gnulib/m4/gettimeofday.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/gettimeofday.m4	Mon Jun 25 14:16:32 2007
***************
*** 0 ****
--- 1,101 ----
+ #serial 11
+ 
+ # Copyright (C) 2001, 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Jim Meyering.
+ 
+ AC_DEFUN([gl_FUNC_GETTIMEOFDAY],
+ [
+   AC_REQUIRE([AC_C_RESTRICT])
+   AC_REQUIRE([gl_HEADER_SYS_TIME_H])
+   AC_CHECK_FUNCS_ONCE([gettimeofday])
+ 
+   AC_CACHE_CHECK([for gettimeofday with POSIX signature],
+     [gl_cv_func_gettimeofday_posix_signature],
+     [AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM(
+ 	  [[#include <sys/time.h>
+ 	    struct timeval c;
+ 	  ]],
+ 	  [[
+ 	    int (*f) (struct timeval *restrict, void *restrict) = gettimeofday;
+ 	    int x = f (&c, 0);
+ 	    return !(x | c.tv_sec | c.tv_usec);
+ 	  ]])],
+ 	[gl_cv_func_gettimeofday_posix_signature=yes],
+ 	[gl_cv_func_gettimeofday_posix_signature=no])])
+ 
+   gl_FUNC_GETTIMEOFDAY_CLOBBER
+ 
+   if test $gl_cv_func_gettimeofday_posix_signature != yes; then
+     REPLACE_GETTIMEOFDAY=1
+     SYS_TIME_H=sys/time.h
+     if test $gl_cv_func_gettimeofday_clobber != yes; then
+       AC_LIBOBJ(gettimeofday)
+       gl_PREREQ_GETTIMEOFDAY
+     fi
+   fi
+ ])
+ 
+ 
+ dnl See if gettimeofday clobbers the static buffer that localtime uses
+ dnl for its return value.  The gettimeofday function from Mac OS X 10.0.4
+ dnl (i.e., Darwin 1.3.7) has this problem.
+ dnl
+ dnl If it does, then arrange to use gettimeofday and localtime only via
+ dnl the wrapper functions that work around the problem.
+ 
+ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER],
+ [
+  AC_REQUIRE([gl_HEADER_SYS_TIME_H])
+ 
+  AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer],
+   [gl_cv_func_gettimeofday_clobber],
+   [AC_RUN_IFELSE(
+      [AC_LANG_PROGRAM(
+ 	[[#include <string.h>
+ 	  #include <sys/time.h>
+ 	  #include <time.h>
+ 	  #include <stdlib.h>
+ 	]],
+ 	[[
+ 	  time_t t = 0;
+ 	  struct tm *lt;
+ 	  struct tm saved_lt;
+ 	  struct timeval tv;
+ 	  lt = localtime (&t);
+ 	  saved_lt = *lt;
+ 	  gettimeofday (&tv, NULL);
+ 	  return memcmp (lt, &saved_lt, sizeof (struct tm)) != 0;
+ 	]])],
+      [gl_cv_func_gettimeofday_clobber=no],
+      [gl_cv_func_gettimeofday_clobber=yes],
+      dnl When crosscompiling, assume it is broken.
+      [gl_cv_func_gettimeofday_clobber=yes])])
+ 
+  if test $gl_cv_func_gettimeofday_clobber = yes; then
+    REPLACE_GETTIMEOFDAY=1
+    SYS_TIME_H=sys/time.h
+    gl_GETTIMEOFDAY_REPLACE_LOCALTIME
+    AC_DEFINE([GETTIMEOFDAY_CLOBBERS_LOCALTIME], 1,
+      [Define if gettimeofday clobbers the localtime buffer.])
+  fi
+ ])
+ 
+ AC_DEFUN([gl_GETTIMEOFDAY_REPLACE_LOCALTIME], [
+   AC_LIBOBJ(gettimeofday)
+   gl_PREREQ_GETTIMEOFDAY
+   AC_DEFINE([gmtime], [rpl_gmtime],
+     [Define to rpl_gmtime if the replacement function should be used.])
+   AC_DEFINE([localtime], [rpl_localtime],
+     [Define to rpl_localtime if the replacement function should be used.])
+ ])
+ 
+ # Prerequisites of lib/gettimeofday.c.
+ AC_DEFUN([gl_PREREQ_GETTIMEOFDAY], [
+   AC_CHECK_HEADERS([sys/timeb.h])
+   AC_CHECK_FUNCS([_ftime])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/glibc21.m4 texinfo-4.13/gnulib/m4/glibc21.m4
*** texinfo-4.12/gnulib/m4/glibc21.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/glibc21.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,30 ----
+ # glibc21.m4 serial 3
+ dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ # Test for the GNU C Library, version 2.1 or newer.
+ # From Bruno Haible.
+ 
+ AC_DEFUN([gl_GLIBC21],
+   [
+     AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+       ac_cv_gnu_library_2_1,
+       [AC_EGREP_CPP([Lucky GNU user],
+ 	[
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+   Lucky GNU user
+  #endif
+ #endif
+ 	],
+ 	ac_cv_gnu_library_2_1=yes,
+ 	ac_cv_gnu_library_2_1=no)
+       ]
+     )
+     AC_SUBST(GLIBC21)
+     GLIBC21="$ac_cv_gnu_library_2_1"
+   ]
+ )
diff -Nrc2 texinfo-4.12/gnulib/m4/gnulib-cache.m4 texinfo-4.13/gnulib/m4/gnulib-cache.m4
*** texinfo-4.12/gnulib/m4/gnulib-cache.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/gnulib-cache.m4	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,53 ----
+ # Copyright (C) 2002-2008 Free Software Foundation, Inc.
+ #
+ # This file is free software, distributed under the terms of the GNU
+ # General Public License.  As a special exception to the GNU General
+ # Public License, this file may be distributed as part of a program
+ # that contains a configuration script generated by Autoconf, under
+ # the same distribution terms as the rest of that program.
+ #
+ # Generated by gnulib-tool.
+ #
+ # This file represents the specification of how gnulib-tool is used.
+ # It acts as a cache: It is written and read by gnulib-tool.
+ # In projects using CVS, this file is meant to be stored in CVS,
+ # like the configure.ac and various Makefile.am files.
+ 
+ 
+ # Specification in the form of a command-line invocation:
+ #   gnulib-tool --import --dir=. --lib=libgnu --source-base=gnulib/lib --m4-base=gnulib/m4 --doc-base=doc --aux-dir=build-aux --no-libtool --macro-prefix=gl --no-vc-files argz getopt gettext mbchar mbiter mbscasecmp mbschr mbslen mbsncasecmp mbsstr mbswidth memcpy memmem memmove mkstemp strdup strerror xalloc xsetenv
+ 
+ # Specification in the form of a few gnulib-tool.m4 macro invocations:
+ gl_LOCAL_DIR([])
+ gl_MODULES([
+   argz
+   getopt
+   gettext
+   mbchar
+   mbiter
+   mbscasecmp
+   mbschr
+   mbslen
+   mbsncasecmp
+   mbsstr
+   mbswidth
+   memcpy
+   memmem
+   memmove
+   mkstemp
+   strdup
+   strerror
+   xalloc
+   xsetenv
+ ])
+ gl_AVOID([])
+ gl_SOURCE_BASE([gnulib/lib])
+ gl_M4_BASE([gnulib/m4])
+ gl_PO_BASE([])
+ gl_DOC_BASE([doc])
+ gl_TESTS_BASE([tests])
+ gl_LIB([libgnu])
+ gl_MAKEFILE_NAME([])
+ gl_MACRO_PREFIX([gl])
+ gl_PO_DOMAIN([])
+ gl_VC_FILES([false])
diff -Nrc2 texinfo-4.12/gnulib/m4/gnulib-common.m4 texinfo-4.13/gnulib/m4/gnulib-common.m4
*** texinfo-4.12/gnulib/m4/gnulib-common.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/gnulib-common.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,91 ----
+ # gnulib-common.m4 serial 5
+ dnl Copyright (C) 2007-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ # gl_COMMON
+ # is expanded unconditionally through gnulib-tool magic.
+ AC_DEFUN([gl_COMMON], [
+   dnl Use AC_REQUIRE here, so that the code is expanded once only.
+   AC_REQUIRE([gl_COMMON_BODY])
+ ])
+ AC_DEFUN([gl_COMMON_BODY], [
+   AH_VERBATIM([isoc99_inline],
+ [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+    the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+    earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+    __APPLE__ && __MACH__ test for MacOS X.
+    __APPLE_CC__ tests for the Apple compiler and its version.
+    __STDC_VERSION__ tests for the C99 mode.  */
+ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+ # define __GNUC_STDC_INLINE__ 1
+ #endif])
+ ])
+ 
+ # gl_MODULE_INDICATOR([modulename])
+ # defines a C macro indicating the presence of the given module.
+ AC_DEFUN([gl_MODULE_INDICATOR],
+ [
+   AC_DEFINE([GNULIB_]translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1],
+     [Define to 1 when using the gnulib module ]$1[.])
+ ])
+ 
+ # m4_foreach_w
+ # is a backport of autoconf-2.59c's m4_foreach_w.
+ # Remove this macro when we can assume autoconf >= 2.60.
+ m4_ifndef([m4_foreach_w],
+   [m4_define([m4_foreach_w],
+     [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
+ 
+ # AC_PROG_MKDIR_P
+ # is a backport of autoconf-2.60's AC_PROG_MKDIR_P.
+ # Remove this macro when we can assume autoconf >= 2.60.
+ m4_ifdef([AC_PROG_MKDIR_P], [], [
+   AC_DEFUN([AC_PROG_MKDIR_P],
+     [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+      MKDIR_P='$(mkdir_p)'
+      AC_SUBST([MKDIR_P])])])
+ 
+ # AC_C_RESTRICT
+ # This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61,
+ # so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++
+ # works.
+ # This definition can be removed once autoconf >= 2.62 can be assumed.
+ AC_DEFUN([AC_C_RESTRICT],
+ [AC_CACHE_CHECK([for C/C++ restrict keyword], ac_cv_c_restrict,
+   [ac_cv_c_restrict=no
+    # The order here caters to the fact that C++ does not require restrict.
+    for ac_kw in __restrict __restrict__ _Restrict restrict; do
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+       [[typedef int * int_ptr;
+ 	int foo (int_ptr $ac_kw ip) {
+ 	return ip[0];
+        }]],
+       [[int s[1];
+ 	int * $ac_kw t = s;
+ 	t[0] = 0;
+ 	return foo(t)]])],
+       [ac_cv_c_restrict=$ac_kw])
+      test "$ac_cv_c_restrict" != no && break
+    done
+   ])
+  AH_VERBATIM([restrict],
+ [/* Define to the equivalent of the C99 'restrict' keyword, or to
+    nothing if this is not supported.  Do not define if restrict is
+    supported directly.  */
+ #undef restrict
+ /* Work around a bug in Sun C++: it does not support _Restrict, even
+    though the corresponding Sun C compiler does, which causes
+    "#define restrict _Restrict" in the previous line.  Perhaps some future
+    version of Sun C++ will work with _Restrict; if so, it'll probably
+    define __RESTRICT, just as Sun C does.  */
+ #if defined __SUNPRO_CC && !defined __RESTRICT
+ # define _Restrict
+ #endif])
+  case $ac_cv_c_restrict in
+    restrict) ;;
+    no) AC_DEFINE([restrict], []) ;;
+    *)  AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;;
+  esac
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/gnulib-comp.m4 texinfo-4.13/gnulib/m4/gnulib-comp.m4
*** texinfo-4.12/gnulib/m4/gnulib-comp.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/gnulib-comp.m4	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,412 ----
+ # DO NOT EDIT! GENERATED AUTOMATICALLY!
+ # Copyright (C) 2002-2008 Free Software Foundation, Inc.
+ #
+ # This file is free software, distributed under the terms of the GNU
+ # General Public License.  As a special exception to the GNU General
+ # Public License, this file may be distributed as part of a program
+ # that contains a configuration script generated by Autoconf, under
+ # the same distribution terms as the rest of that program.
+ #
+ # Generated by gnulib-tool.
+ #
+ # This file represents the compiled summary of the specification in
+ # gnulib-cache.m4. It lists the computed macro invocations that need
+ # to be invoked from configure.ac.
+ # In projects using CVS, this file can be treated like other built files.
+ 
+ 
+ # This macro should be invoked from ./configure.ac, in the section
+ # "Checks for programs", right after AC_PROG_CC, and certainly before
+ # any checks for libraries, header files, types and library functions.
+ AC_DEFUN([gl_EARLY],
+ [
+   m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace
+   m4_pattern_allow([^gl_ES$])dnl a valid locale name
+   m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
+   m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
+   AC_REQUIRE([AC_PROG_RANLIB])
+   AC_REQUIRE([AM_PROG_CC_C_O])
+   AC_REQUIRE([AC_GNU_SOURCE])
+   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ ])
+ 
+ # This macro should be invoked from ./configure.ac, in the section
+ # "Check for header files, types and library functions".
+ AC_DEFUN([gl_INIT],
+ [
+   AM_CONDITIONAL([GL_COND_LIBTOOL], [false])
+   gl_cond_libtool=false
+   gl_libdeps=
+   gl_ltlibdeps=
+   m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ]))
+   m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS]))
+   m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES]))
+   m4_pushdef([gl_LIBSOURCES_LIST], [])
+   m4_pushdef([gl_LIBSOURCES_DIR], [])
+   gl_COMMON
+   gl_source_base='gnulib/lib'
+   gl_FUNC_ALLOCA
+   gl_FUNC_ARGZ
+   gl_ENVIRON
+   gl_UNISTD_MODULE_INDICATOR([environ])
+   gl_ERROR
+   m4_ifdef([AM_XGETTEXT_OPTION],
+     [AM_XGETTEXT_OPTION([--flag=error:3:c-format])
+      AM_XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
+   gl_EXITFAIL
+   gl_GETOPT
+   dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac.
+   AM_GNU_GETTEXT_VERSION([0.17])
+   AC_SUBST([LIBINTL])
+   AC_SUBST([LTLIBINTL])
+   gl_FUNC_GETTIMEOFDAY
+   gl_INLINE
+   gl_LOCALCHARSET
+   LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(top_builddir)/$gl_source_base\""
+   AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
+   gl_FUNC_MALLOC_POSIX
+   gl_STDLIB_MODULE_INDICATOR([malloc-posix])
+   gl_MALLOCA
+   gl_MBCHAR
+   gl_MBITER
+   gl_FUNC_MBSCASECMP
+   gl_STRING_MODULE_INDICATOR([mbscasecmp])
+   gl_FUNC_MBSCHR
+   gl_STRING_MODULE_INDICATOR([mbschr])
+   gl_FUNC_MBSLEN
+   gl_STRING_MODULE_INDICATOR([mbslen])
+   gl_FUNC_MBSNCASECMP
+   gl_STRING_MODULE_INDICATOR([mbsncasecmp])
+   gl_FUNC_MBSSTR
+   gl_STRING_MODULE_INDICATOR([mbsstr])
+   gl_MBSWIDTH
+   gl_MBITER
+   gl_FUNC_MEMCHR
+   gl_FUNC_MEMCMP
+   gl_FUNC_MEMCPY
+   gl_FUNC_MEMMEM
+   gl_FUNC_MEMMEM_SIMPLE
+   gl_STRING_MODULE_INDICATOR([memmem])
+   gl_FUNC_MEMMOVE
+   gl_FUNC_MEMPCPY
+   gl_STRING_MODULE_INDICATOR([mempcpy])
+   gl_FUNC_MKSTEMP
+   gl_STDLIB_MODULE_INDICATOR([mkstemp])
+   gl_FUNC_SETENV
+   gl_STDLIB_MODULE_INDICATOR([setenv])
+   AM_STDBOOL_H
+   gl_STDINT_H
+   gl_STDLIB_H
+   gl_FUNC_STPCPY
+   gl_STRING_MODULE_INDICATOR([stpcpy])
+   gl_FUNC_STRDUP
+   gl_STRING_MODULE_INDICATOR([strdup])
+   gl_FUNC_STRERROR
+   gl_STRING_MODULE_INDICATOR([strerror])
+   gl_HEADER_STRING_H
+   gl_FUNC_STRNDUP
+   gl_STRING_MODULE_INDICATOR([strndup])
+   gl_FUNC_STRNLEN
+   gl_STRING_MODULE_INDICATOR([strnlen])
+   gl_HEADER_SYS_STAT_H
+   AC_PROG_MKDIR_P
+   gl_HEADER_SYS_TIME_H
+   AC_PROG_MKDIR_P
+   gl_FUNC_GEN_TEMPNAME
+   gl_UNISTD_H
+   gl_FUNC_UNSETENV
+   gl_STDLIB_MODULE_INDICATOR([unsetenv])
+   gl_WCHAR_H
+   gl_WCTYPE_H
+   gl_FUNC_WCWIDTH
+   gl_WCHAR_MODULE_INDICATOR([wcwidth])
+   gl_XALLOC
+   m4_ifval(gl_LIBSOURCES_LIST, [
+     m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ ||
+       for gl_file in ]gl_LIBSOURCES_LIST[ ; do
+         if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then
+           echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2
+           exit 1
+         fi
+       done])dnl
+       m4_if(m4_sysval, [0], [],
+         [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
+   ])
+   m4_popdef([gl_LIBSOURCES_DIR])
+   m4_popdef([gl_LIBSOURCES_LIST])
+   m4_popdef([AC_LIBSOURCES])
+   m4_popdef([AC_REPLACE_FUNCS])
+   m4_popdef([AC_LIBOBJ])
+   AC_CONFIG_COMMANDS_PRE([
+     gl_libobjs=
+     gl_ltlibobjs=
+     if test -n "$gl_LIBOBJS"; then
+       # Remove the extension.
+       sed_drop_objext='s/\.o$//;s/\.obj$//'
+       for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
+         gl_libobjs="$gl_libobjs $i.$ac_objext"
+         gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+       done
+     fi
+     AC_SUBST([gl_LIBOBJS], [$gl_libobjs])
+     AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs])
+   ])
+   gltests_libdeps=
+   gltests_ltlibdeps=
+   m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ]))
+   m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS]))
+   m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES]))
+   m4_pushdef([gltests_LIBSOURCES_LIST], [])
+   m4_pushdef([gltests_LIBSOURCES_DIR], [])
+   gl_COMMON
+   gl_source_base='tests'
+   m4_ifval(gltests_LIBSOURCES_LIST, [
+     m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ ||
+       for gl_file in ]gltests_LIBSOURCES_LIST[ ; do
+         if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then
+           echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2
+           exit 1
+         fi
+       done])dnl
+       m4_if(m4_sysval, [0], [],
+         [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
+   ])
+   m4_popdef([gltests_LIBSOURCES_DIR])
+   m4_popdef([gltests_LIBSOURCES_LIST])
+   m4_popdef([AC_LIBSOURCES])
+   m4_popdef([AC_REPLACE_FUNCS])
+   m4_popdef([AC_LIBOBJ])
+   AC_CONFIG_COMMANDS_PRE([
+     gltests_libobjs=
+     gltests_ltlibobjs=
+     if test -n "$gltests_LIBOBJS"; then
+       # Remove the extension.
+       sed_drop_objext='s/\.o$//;s/\.obj$//'
+       for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed "$sed_drop_objext" | sort | uniq`; do
+         gltests_libobjs="$gltests_libobjs $i.$ac_objext"
+         gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+       done
+     fi
+     AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs])
+     AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs])
+   ])
+   LIBGNU_LIBDEPS="$gl_libdeps"
+   AC_SUBST([LIBGNU_LIBDEPS])
+   LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
+   AC_SUBST([LIBGNU_LTLIBDEPS])
+ ])
+ 
+ # Like AC_LIBOBJ, except that the module name goes
+ # into gl_LIBOBJS instead of into LIBOBJS.
+ AC_DEFUN([gl_LIBOBJ], [
+   AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl
+   gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext"
+ ])
+ 
+ # Like AC_REPLACE_FUNCS, except that the module name goes
+ # into gl_LIBOBJS instead of into LIBOBJS.
+ AC_DEFUN([gl_REPLACE_FUNCS], [
+   m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
+   AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)])
+ ])
+ 
+ # Like AC_LIBSOURCES, except the directory where the source file is
+ # expected is derived from the gnulib-tool parameterization,
+ # and alloca is special cased (for the alloca-opt module).
+ # We could also entirely rely on EXTRA_lib..._SOURCES.
+ AC_DEFUN([gl_LIBSOURCES], [
+   m4_foreach([_gl_NAME], [$1], [
+     m4_if(_gl_NAME, [alloca.c], [], [
+       m4_define([gl_LIBSOURCES_DIR], [gnulib/lib])
+       m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ])
+     ])
+   ])
+ ])
+ 
+ # Like AC_LIBOBJ, except that the module name goes
+ # into gltests_LIBOBJS instead of into LIBOBJS.
+ AC_DEFUN([gltests_LIBOBJ], [
+   AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl
+   gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext"
+ ])
+ 
+ # Like AC_REPLACE_FUNCS, except that the module name goes
+ # into gltests_LIBOBJS instead of into LIBOBJS.
+ AC_DEFUN([gltests_REPLACE_FUNCS], [
+   m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
+   AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)])
+ ])
+ 
+ # Like AC_LIBSOURCES, except the directory where the source file is
+ # expected is derived from the gnulib-tool parameterization,
+ # and alloca is special cased (for the alloca-opt module).
+ # We could also entirely rely on EXTRA_lib..._SOURCES.
+ AC_DEFUN([gltests_LIBSOURCES], [
+   m4_foreach([_gl_NAME], [$1], [
+     m4_if(_gl_NAME, [alloca.c], [], [
+       m4_define([gltests_LIBSOURCES_DIR], [tests])
+       m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ])
+     ])
+   ])
+ ])
+ 
+ # This macro records the list of files which have been installed by
+ # gnulib-tool and may be removed by future gnulib-tool invocations.
+ AC_DEFUN([gl_FILE_LIST], [
+   build-aux/config.rpath
+   build-aux/link-warning.h
+   lib/alloca.in.h
+   lib/argz.c
+   lib/argz.in.h
+   lib/config.charset
+   lib/error.c
+   lib/error.h
+   lib/exitfail.c
+   lib/exitfail.h
+   lib/getopt.c
+   lib/getopt.in.h
+   lib/getopt1.c
+   lib/getopt_int.h
+   lib/gettext.h
+   lib/gettimeofday.c
+   lib/intprops.h
+   lib/localcharset.c
+   lib/localcharset.h
+   lib/malloc.c
+   lib/malloca.c
+   lib/malloca.h
+   lib/malloca.valgrind
+   lib/mbchar.c
+   lib/mbchar.h
+   lib/mbiter.h
+   lib/mbscasecmp.c
+   lib/mbschr.c
+   lib/mbslen.c
+   lib/mbsncasecmp.c
+   lib/mbsstr.c
+   lib/mbswidth.c
+   lib/mbswidth.h
+   lib/mbuiter.h
+   lib/memchr.c
+   lib/memcmp.c
+   lib/memcpy.c
+   lib/memmem.c
+   lib/memmove.c
+   lib/mempcpy.c
+   lib/mkstemp.c
+   lib/ref-add.sin
+   lib/ref-del.sin
+   lib/setenv.c
+   lib/stdbool.in.h
+   lib/stdint.in.h
+   lib/stdlib.in.h
+   lib/stpcpy.c
+   lib/str-kmp.h
+   lib/str-two-way.h
+   lib/strdup.c
+   lib/streq.h
+   lib/strerror.c
+   lib/string.in.h
+   lib/strndup.c
+   lib/strnlen.c
+   lib/strnlen1.c
+   lib/strnlen1.h
+   lib/sys_stat.in.h
+   lib/sys_time.in.h
+   lib/tempname.c
+   lib/tempname.h
+   lib/unistd.in.h
+   lib/unitypes.h
+   lib/uniwidth.h
+   lib/uniwidth/cjk.h
+   lib/uniwidth/width.c
+   lib/unsetenv.c
+   lib/wchar.in.h
+   lib/wctype.in.h
+   lib/wcwidth.c
+   lib/xalloc-die.c
+   lib/xalloc.h
+   lib/xmalloc.c
+   lib/xsetenv.c
+   lib/xsetenv.h
+   m4/alloca.m4
+   m4/argz.m4
+   m4/codeset.m4
+   m4/eealloc.m4
+   m4/environ.m4
+   m4/error.m4
+   m4/exitfail.m4
+   m4/extensions.m4
+   m4/getopt.m4
+   m4/gettext.m4
+   m4/gettimeofday.m4
+   m4/glibc2.m4
+   m4/glibc21.m4
+   m4/gnulib-common.m4
+   m4/iconv.m4
+   m4/include_next.m4
+   m4/inline.m4
+   m4/intdiv0.m4
+   m4/intl.m4
+   m4/intldir.m4
+   m4/intlmacosx.m4
+   m4/intmax.m4
+   m4/inttypes-pri.m4
+   m4/inttypes_h.m4
+   m4/lcmessage.m4
+   m4/lib-ld.m4
+   m4/lib-link.m4
+   m4/lib-prefix.m4
+   m4/localcharset.m4
+   m4/lock.m4
+   m4/longlong.m4
+   m4/malloc.m4
+   m4/malloca.m4
+   m4/mbchar.m4
+   m4/mbiter.m4
+   m4/mbrtowc.m4
+   m4/mbscasecmp.m4
+   m4/mbschr.m4
+   m4/mbslen.m4
+   m4/mbsncasecmp.m4
+   m4/mbsstr.m4
+   m4/mbstate_t.m4
+   m4/mbswidth.m4
+   m4/memchr.m4
+   m4/memcmp.m4
+   m4/memcpy.m4
+   m4/memmem.m4
+   m4/memmove.m4
+   m4/mempcpy.m4
+   m4/mkstemp.m4
+   m4/nls.m4
+   m4/onceonly.m4
+   m4/po.m4
+   m4/printf-posix.m4
+   m4/progtest.m4
+   m4/setenv.m4
+   m4/size_max.m4
+   m4/stdbool.m4
+   m4/stdint.m4
+   m4/stdint_h.m4
+   m4/stdlib_h.m4
+   m4/stpcpy.m4
+   m4/strdup.m4
+   m4/strerror.m4
+   m4/string_h.m4
+   m4/strndup.m4
+   m4/strnlen.m4
+   m4/sys_stat_h.m4
+   m4/sys_time_h.m4
+   m4/tempname.m4
+   m4/uintmax_t.m4
+   m4/unistd_h.m4
+   m4/visibility.m4
+   m4/wchar.m4
+   m4/wchar_t.m4
+   m4/wctype.m4
+   m4/wcwidth.m4
+   m4/wint_t.m4
+   m4/xalloc.m4
+   m4/xsize.m4
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/iconv.m4 texinfo-4.13/gnulib/m4/iconv.m4
*** texinfo-4.12/gnulib/m4/iconv.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/iconv.m4	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,180 ----
+ # iconv.m4 serial AM6 (gettext-0.17)
+ dnl Copyright (C) 2000-2002, 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Bruno Haible.
+ 
+ AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+ [
+   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+   AC_REQUIRE([AC_LIB_RPATH])
+ 
+   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+   dnl accordingly.
+   AC_LIB_LINKFLAGS_BODY([iconv])
+ ])
+ 
+ AC_DEFUN([AM_ICONV_LINK],
+ [
+   dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+   dnl those with the standalone portable GNU libiconv installed).
+   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ 
+   dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+   dnl accordingly.
+   AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+ 
+   dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+   dnl because if the user has installed libiconv and not disabled its use
+   dnl via --without-libiconv-prefix, he wants to use it. The first
+   dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+   am_save_CPPFLAGS="$CPPFLAGS"
+   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+ 
+   AC_CACHE_CHECK([for iconv], am_cv_func_iconv, [
+     am_cv_func_iconv="no, consider installing GNU libiconv"
+     am_cv_lib_iconv=no
+     AC_TRY_LINK([#include <stdlib.h>
+ #include <iconv.h>],
+       [iconv_t cd = iconv_open("","");
+        iconv(cd,NULL,NULL,NULL,NULL);
+        iconv_close(cd);],
+       am_cv_func_iconv=yes)
+     if test "$am_cv_func_iconv" != yes; then
+       am_save_LIBS="$LIBS"
+       LIBS="$LIBS $LIBICONV"
+       AC_TRY_LINK([#include <stdlib.h>
+ #include <iconv.h>],
+         [iconv_t cd = iconv_open("","");
+          iconv(cd,NULL,NULL,NULL,NULL);
+          iconv_close(cd);],
+         am_cv_lib_iconv=yes
+         am_cv_func_iconv=yes)
+       LIBS="$am_save_LIBS"
+     fi
+   ])
+   if test "$am_cv_func_iconv" = yes; then
+     AC_CACHE_CHECK([for working iconv], am_cv_func_iconv_works, [
+       dnl This tests against bugs in AIX 5.1 and HP-UX 11.11.
+       am_save_LIBS="$LIBS"
+       if test $am_cv_lib_iconv = yes; then
+         LIBS="$LIBS $LIBICONV"
+       fi
+       AC_TRY_RUN([
+ #include <iconv.h>
+ #include <string.h>
+ int main ()
+ {
+   /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+      returns.  */
+   {
+     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+     if (cd_utf8_to_88591 != (iconv_t)(-1))
+       {
+         static const char input[] = "\342\202\254"; /* EURO SIGN */
+         char buf[10];
+         const char *inptr = input;
+         size_t inbytesleft = strlen (input);
+         char *outptr = buf;
+         size_t outbytesleft = sizeof (buf);
+         size_t res = iconv (cd_utf8_to_88591,
+                             (char **) &inptr, &inbytesleft,
+                             &outptr, &outbytesleft);
+         if (res == 0)
+           return 1;
+       }
+   }
+ #if 0 /* This bug could be worked around by the caller.  */
+   /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
+   {
+     iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+     if (cd_88591_to_utf8 != (iconv_t)(-1))
+       {
+         static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+         char buf[50];
+         const char *inptr = input;
+         size_t inbytesleft = strlen (input);
+         char *outptr = buf;
+         size_t outbytesleft = sizeof (buf);
+         size_t res = iconv (cd_88591_to_utf8,
+                             (char **) &inptr, &inbytesleft,
+                             &outptr, &outbytesleft);
+         if ((int)res > 0)
+           return 1;
+       }
+   }
+ #endif
+   /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+      provided.  */
+   if (/* Try standardized names.  */
+       iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+       /* Try IRIX, OSF/1 names.  */
+       && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+       /* Try AIX names.  */
+       && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+       /* Try HP-UX names.  */
+       && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+     return 1;
+   return 0;
+ }], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no],
+         [case "$host_os" in
+            aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+            *)            am_cv_func_iconv_works="guessing yes" ;;
+          esac])
+       LIBS="$am_save_LIBS"
+     ])
+     case "$am_cv_func_iconv_works" in
+       *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+       *)   am_func_iconv=yes ;;
+     esac
+   else
+     am_func_iconv=no am_cv_lib_iconv=no
+   fi
+   if test "$am_func_iconv" = yes; then
+     AC_DEFINE(HAVE_ICONV, 1,
+       [Define if you have the iconv() function and it works.])
+   fi
+   if test "$am_cv_lib_iconv" = yes; then
+     AC_MSG_CHECKING([how to link with libiconv])
+     AC_MSG_RESULT([$LIBICONV])
+   else
+     dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+     dnl either.
+     CPPFLAGS="$am_save_CPPFLAGS"
+     LIBICONV=
+     LTLIBICONV=
+   fi
+   AC_SUBST(LIBICONV)
+   AC_SUBST(LTLIBICONV)
+ ])
+ 
+ AC_DEFUN([AM_ICONV],
+ [
+   AM_ICONV_LINK
+   if test "$am_cv_func_iconv" = yes; then
+     AC_MSG_CHECKING([for iconv declaration])
+     AC_CACHE_VAL(am_cv_proto_iconv, [
+       AC_TRY_COMPILE([
+ #include <stdlib.h>
+ #include <iconv.h>
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ #if defined(__STDC__) || defined(__cplusplus)
+ size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+ #else
+ size_t iconv();
+ #endif
+ ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+       am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+     am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+     AC_MSG_RESULT([$]{ac_t:-
+          }[$]am_cv_proto_iconv)
+     AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+       [Define as const if the declaration of iconv() needs const.])
+   fi
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/include_next.m4 texinfo-4.13/gnulib/m4/include_next.m4
*** texinfo-4.12/gnulib/m4/include_next.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/include_next.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,110 ----
+ # include_next.m4 serial 6
+ dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Paul Eggert and Derek Price.
+ 
+ AC_DEFUN([gl_INCLUDE_NEXT],
+ [
+   AC_LANG_PREPROC_REQUIRE()
+   AC_CACHE_CHECK([whether the preprocessor supports include_next],
+     [gl_cv_have_include_next],
+     [rm -rf conftestd1 conftestd2
+      mkdir conftestd1 conftestd2
+      cat <<EOF > conftestd1/conftest.h
+ #define DEFINED_IN_CONFTESTD1
+ #include_next <conftest.h>
+ #ifdef DEFINED_IN_CONFTESTD2
+ int foo;
+ #else
+ #error "include_next doesn't work"
+ #endif
+ EOF
+      cat <<EOF > conftestd2/conftest.h
+ #ifndef DEFINED_IN_CONFTESTD1
+ #error "include_next test doesn't work"
+ #endif
+ #define DEFINED_IN_CONFTESTD2
+ EOF
+      save_CPPFLAGS="$CPPFLAGS"
+      CPPFLAGS="$CPPFLAGS -Iconftestd1 -Iconftestd2"
+      AC_COMPILE_IFELSE([#include <conftest.h>],
+        [gl_cv_have_include_next=yes],
+        [gl_cv_have_include_next=no])
+      CPPFLAGS="$save_CPPFLAGS"
+      rm -rf conftestd1 conftestd2
+     ])
+   if test $gl_cv_have_include_next = yes; then
+ 
+     dnl FIXME: Remove HAVE_INCLUDE_NEXT and update everything that uses it
+     dnl to use @INCLUDE_NEXT@ instead.
+     AC_DEFINE([HAVE_INCLUDE_NEXT], 1,
+ 	      [Define if your compiler supports the #include_next directive.])
+ 
+     INCLUDE_NEXT=include_next
+   else
+     INCLUDE_NEXT=include
+   fi
+   AC_SUBST([INCLUDE_NEXT])
+ ])
+ 
+ # gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...)
+ # ------------------------------------------
+ # For each arg foo.h, if #include_next works, define NEXT_FOO_H to be
+ # '<foo.h>'; otherwise define it to be
+ # '"///usr/include/foo.h"', or whatever other absolute file name is suitable.
+ # That way, a header file with the following line:
+ #	#@INCLUDE_NEXT@ @NEXT_FOO_H@
+ # behaves (after sed substitution) as if it contained
+ #	#include_next <foo.h>
+ # even if the compiler does not support include_next.
+ # The three "///" are to pacify Sun C 5.8, which otherwise would say
+ # "warning: #include of /usr/include/... may be non-portable".
+ # Use `""', not `<>', so that the /// cannot be confused with a C99 comment.
+ # Note: This macro assumes that the header file is not empty after
+ # preprocessing, i.e. it does not only define preprocessor macros but also
+ # provides some type/enum definitions or function/variable declarations.
+ AC_DEFUN([gl_CHECK_NEXT_HEADERS],
+ [
+   AC_REQUIRE([gl_INCLUDE_NEXT])
+   AC_CHECK_HEADERS_ONCE([$1])
+ 
+   m4_foreach_w([gl_HEADER_NAME], [$1],
+     [AS_VAR_PUSHDEF([gl_next_header],
+ 		    [gl_cv_next_]m4_quote(m4_defn([gl_HEADER_NAME])))
+      if test $gl_cv_have_include_next = yes; then
+        AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+      else
+        AC_CACHE_CHECK(
+ 	 [absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
+ 	 m4_quote(m4_defn([gl_next_header])),
+ 	 [AS_VAR_PUSHDEF([gl_header_exists],
+ 			 [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))
+ 	  if test AS_VAR_GET(gl_header_exists) = yes; then
+ 	    AC_LANG_CONFTEST(
+ 	      [AC_LANG_SOURCE(
+ 		 [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]]
+ 	       )])
+ 	    dnl eval is necessary to expand ac_cpp.
+ 	    dnl Ultrix and Pyramid sh refuse to redirect output of eval,
+ 	    dnl so use subshell.
+ 	    AS_VAR_SET([gl_next_header],
+ 	      ['"'`(eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+ 	       sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{
+ 		 s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#
+ 		 s#^/[^/]#//&#
+ 		 p
+ 		 q
+ 	       }'`'"'])
+ 	  else
+ 	    AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+ 	  fi
+ 	  AS_VAR_POPDEF([gl_header_exists])])
+      fi
+      AC_SUBST(
+        AS_TR_CPP([NEXT_]m4_quote(m4_defn([gl_HEADER_NAME]))),
+        [AS_VAR_GET([gl_next_header])])
+      AS_VAR_POPDEF([gl_next_header])])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/inline.m4 texinfo-4.13/gnulib/m4/inline.m4
*** texinfo-4.12/gnulib/m4/inline.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/inline.m4	Fri Nov 17 11:55:05 2006
***************
*** 0 ****
--- 1,40 ----
+ # inline.m4 serial 3
+ dnl Copyright (C) 2006 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl Test for the 'inline' keyword or equivalent.
+ dnl Define 'inline' to a supported equivalent, or to nothing if not supported,
+ dnl like AC_C_INLINE does.  Also, define HAVE_INLINE if 'inline' or an
+ dnl equivalent is effectively supported, i.e. if the compiler is likely to
+ dnl drop unused 'static inline' functions.
+ AC_DEFUN([gl_INLINE],
+ [
+   AC_REQUIRE([AC_C_INLINE])
+   AC_CACHE_CHECK([whether the compiler generally respects inline],
+     [gl_cv_c_inline_effective],
+     [if test $ac_cv_c_inline = no; then
+        gl_cv_c_inline_effective=no
+      else
+        dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is
+        dnl specified.
+        dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result
+        dnl depends on optimization flags, which can be in CFLAGS.
+        dnl (AC_EGREP_CPP looks only at the CPPFLAGS.)
+        AC_COMPILE_IFELSE(
+          [AC_LANG_PROGRAM([[]],
+            [[#ifdef __NO_INLINE__
+                #error "inline is not effective"
+              #endif]])],
+          [gl_cv_c_inline_effective=yes],
+          [gl_cv_c_inline_effective=no])
+      fi
+     ])
+   if test $gl_cv_c_inline_effective = yes; then
+     AC_DEFINE([HAVE_INLINE], 1,
+       [Define to 1 if the compiler supports one of the keywords
+        'inline', '__inline__', '__inline' and effectively inlines
+        functions marked as such.])
+   fi
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/intlmacosx.m4 texinfo-4.13/gnulib/m4/intlmacosx.m4
*** texinfo-4.12/gnulib/m4/intlmacosx.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/intlmacosx.m4	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,51 ----
+ # intlmacosx.m4 serial 1 (gettext-0.17)
+ dnl Copyright (C) 2004-2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ dnl
+ dnl This file can can be used in projects which are not available under
+ dnl the GNU General Public License or the GNU Library General Public
+ dnl License but which still want to provide support for the GNU gettext
+ dnl functionality.
+ dnl Please note that the actual code of the GNU gettext library is covered
+ dnl by the GNU Library General Public License, and the rest of the GNU
+ dnl gettext package package is covered by the GNU General Public License.
+ dnl They are *not* in the public domain.
+ 
+ dnl Checks for special options needed on MacOS X.
+ dnl Defines INTL_MACOSX_LIBS.
+ AC_DEFUN([gt_INTL_MACOSX],
+ [
+   dnl Check for API introduced in MacOS X 10.2.
+   AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+     gt_cv_func_CFPreferencesCopyAppValue,
+     [gt_save_LIBS="$LIBS"
+      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+      AC_TRY_LINK([#include <CoreFoundation/CFPreferences.h>],
+        [CFPreferencesCopyAppValue(NULL, NULL)],
+        [gt_cv_func_CFPreferencesCopyAppValue=yes],
+        [gt_cv_func_CFPreferencesCopyAppValue=no])
+      LIBS="$gt_save_LIBS"])
+   if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+     AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1,
+       [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+   fi
+   dnl Check for API introduced in MacOS X 10.3.
+   AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent,
+     [gt_save_LIBS="$LIBS"
+      LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+      AC_TRY_LINK([#include <CoreFoundation/CFLocale.h>], [CFLocaleCopyCurrent();],
+        [gt_cv_func_CFLocaleCopyCurrent=yes],
+        [gt_cv_func_CFLocaleCopyCurrent=no])
+      LIBS="$gt_save_LIBS"])
+   if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+     AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1,
+       [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+   fi
+   INTL_MACOSX_LIBS=
+   if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+     INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+   fi
+   AC_SUBST([INTL_MACOSX_LIBS])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/lib-ld.m4 texinfo-4.13/gnulib/m4/lib-ld.m4
*** texinfo-4.12/gnulib/m4/lib-ld.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/lib-ld.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,110 ----
+ # lib-ld.m4 serial 3 (gettext-0.13)
+ dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl Subroutines of libtool.m4,
+ dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+ dnl with libtool.m4.
+ 
+ dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+ AC_DEFUN([AC_LIB_PROG_LD_GNU],
+ [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+ [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+ case `$LD -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+   acl_cv_prog_gnu_ld=yes ;;
+ *)
+   acl_cv_prog_gnu_ld=no ;;
+ esac])
+ with_gnu_ld=$acl_cv_prog_gnu_ld
+ ])
+ 
+ dnl From libtool-1.4. Sets the variable LD.
+ AC_DEFUN([AC_LIB_PROG_LD],
+ [AC_ARG_WITH(gnu-ld,
+ [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
+ test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ # Prepare PATH_SEPARATOR.
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+   echo "#! /bin/sh" >conf$$.sh
+   echo  "exit 0"   >>conf$$.sh
+   chmod +x conf$$.sh
+   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+     PATH_SEPARATOR=';'
+   else
+     PATH_SEPARATOR=:
+   fi
+   rm -f conf$$.sh
+ fi
+ ac_prog=ld
+ if test "$GCC" = yes; then
+   # Check if gcc -print-prog-name=ld gives a path.
+   AC_MSG_CHECKING([for ld used by GCC])
+   case $host in
+   *-*-mingw*)
+     # gcc leaves a trailing carriage return which upsets mingw
+     ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+   *)
+     ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+   esac
+   case $ac_prog in
+     # Accept absolute paths.
+     [[\\/]* | [A-Za-z]:[\\/]*)]
+       [re_direlt='/[^/][^/]*/\.\./']
+       # Canonicalize the path of ld
+       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ 	ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+       done
+       test -z "$LD" && LD="$ac_prog"
+       ;;
+   "")
+     # If it fails, then pretend we aren't using GCC.
+     ac_prog=ld
+     ;;
+   *)
+     # If it is relative, then search for the first ld in PATH.
+     with_gnu_ld=unknown
+     ;;
+   esac
+ elif test "$with_gnu_ld" = yes; then
+   AC_MSG_CHECKING([for GNU ld])
+ else
+   AC_MSG_CHECKING([for non-GNU ld])
+ fi
+ AC_CACHE_VAL(acl_cv_path_LD,
+ [if test -z "$LD"; then
+   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+   for ac_dir in $PATH; do
+     test -z "$ac_dir" && ac_dir=.
+     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+       acl_cv_path_LD="$ac_dir/$ac_prog"
+       # Check to see if the program is GNU ld.  I'd rather use --version,
+       # but apparently some GNU ld's only accept -v.
+       # Break only if it was the GNU/non-GNU ld that we prefer.
+       case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+       *GNU* | *'with BFD'*)
+ 	test "$with_gnu_ld" != no && break ;;
+       *)
+ 	test "$with_gnu_ld" != yes && break ;;
+       esac
+     fi
+   done
+   IFS="$ac_save_ifs"
+ else
+   acl_cv_path_LD="$LD" # Let the user override the test with a path.
+ fi])
+ LD="$acl_cv_path_LD"
+ if test -n "$LD"; then
+   AC_MSG_RESULT($LD)
+ else
+   AC_MSG_RESULT(no)
+ fi
+ test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+ AC_LIB_PROG_LD_GNU
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/lib-link.m4 texinfo-4.13/gnulib/m4/lib-link.m4
*** texinfo-4.12/gnulib/m4/lib-link.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/lib-link.m4	Fri Mar 14 17:29:58 2008
***************
*** 0 ****
--- 1,739 ----
+ # lib-link.m4 serial 15 (gettext-0.18)
+ dnl Copyright (C) 2001-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Bruno Haible.
+ 
+ AC_PREREQ(2.54)
+ 
+ dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+ dnl the libraries corresponding to explicit and implicit dependencies.
+ dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+ dnl augments the CPPFLAGS variable.
+ dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+ dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+ AC_DEFUN([AC_LIB_LINKFLAGS],
+ [
+   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+   AC_REQUIRE([AC_LIB_RPATH])
+   pushdef([Name],[translit([$1],[./-], [___])])
+   pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                                 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+   AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+     AC_LIB_LINKFLAGS_BODY([$1], [$2])
+     ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+     ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+     ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+     ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
+   ])
+   LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+   LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+   INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+   LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
+   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+   AC_SUBST([LIB]NAME)
+   AC_SUBST([LTLIB]NAME)
+   AC_SUBST([LIB]NAME[_PREFIX])
+   dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+   dnl results of this search when this library appears as a dependency.
+   HAVE_LIB[]NAME=yes
+   popdef([NAME])
+   popdef([Name])
+ ])
+ 
+ dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+ dnl searches for libname and the libraries corresponding to explicit and
+ dnl implicit dependencies, together with the specified include files and
+ dnl the ability to compile and link the specified testcode. If found, it
+ dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+ dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+ dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+ dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+ dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+ dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+ AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+ [
+   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+   AC_REQUIRE([AC_LIB_RPATH])
+   pushdef([Name],[translit([$1],[./-], [___])])
+   pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                                 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ 
+   dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+   dnl accordingly.
+   AC_LIB_LINKFLAGS_BODY([$1], [$2])
+ 
+   dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+   dnl because if the user has installed lib[]Name and not disabled its use
+   dnl via --without-lib[]Name-prefix, he wants to use it.
+   ac_save_CPPFLAGS="$CPPFLAGS"
+   AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ 
+   AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+     ac_save_LIBS="$LIBS"
+     LIBS="$LIBS $LIB[]NAME"
+     AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+     LIBS="$ac_save_LIBS"
+   ])
+   if test "$ac_cv_lib[]Name" = yes; then
+     HAVE_LIB[]NAME=yes
+     AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+     AC_MSG_CHECKING([how to link with lib[]$1])
+     AC_MSG_RESULT([$LIB[]NAME])
+   else
+     HAVE_LIB[]NAME=no
+     dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+     dnl $INC[]NAME either.
+     CPPFLAGS="$ac_save_CPPFLAGS"
+     LIB[]NAME=
+     LTLIB[]NAME=
+     LIB[]NAME[]_PREFIX=
+   fi
+   AC_SUBST([HAVE_LIB]NAME)
+   AC_SUBST([LIB]NAME)
+   AC_SUBST([LTLIB]NAME)
+   AC_SUBST([LIB]NAME[_PREFIX])
+   popdef([NAME])
+   popdef([Name])
+ ])
+ 
+ dnl Determine the platform dependent parameters needed to use rpath:
+ dnl   acl_libext,
+ dnl   acl_shlibext,
+ dnl   acl_hardcode_libdir_flag_spec,
+ dnl   acl_hardcode_libdir_separator,
+ dnl   acl_hardcode_direct,
+ dnl   acl_hardcode_minus_L.
+ AC_DEFUN([AC_LIB_RPATH],
+ [
+   dnl Tell automake >= 1.10 to complain if config.rpath is missing.
+   m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
+   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
+   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
+   AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+   AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+     CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+     ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+     . ./conftest.sh
+     rm -f ./conftest.sh
+     acl_cv_rpath=done
+   ])
+   wl="$acl_cv_wl"
+   acl_libext="$acl_cv_libext"
+   acl_shlibext="$acl_cv_shlibext"
+   acl_libname_spec="$acl_cv_libname_spec"
+   acl_library_names_spec="$acl_cv_library_names_spec"
+   acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+   acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+   acl_hardcode_direct="$acl_cv_hardcode_direct"
+   acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+   dnl Determine whether the user wants rpath handling at all.
+   AC_ARG_ENABLE(rpath,
+     [  --disable-rpath         do not hardcode runtime library paths],
+     :, enable_rpath=yes)
+ ])
+ 
+ dnl AC_LIB_FROMPACKAGE(name, package)
+ dnl declares that libname comes from the given package. The configure file
+ dnl will then not have a --with-libname-prefix option but a
+ dnl --with-package-prefix option. Several libraries can come from the same
+ dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
+ dnl macro call that searches for libname.
+ AC_DEFUN([AC_LIB_FROMPACKAGE],
+ [
+   pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                                 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+   define([acl_frompackage_]NAME, [$2])
+   popdef([NAME])
+   pushdef([PACK],[$2])
+   pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
+                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+   define([acl_libsinpackage_]PACKUP,
+     m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1])
+   popdef([PACKUP])
+   popdef([PACK])
+ ])
+ 
+ dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+ dnl the libraries corresponding to explicit and implicit dependencies.
+ dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+ dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
+ dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+ [
+   AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+   pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+                                 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+   pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
+   pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-],
+                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+   pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
+   dnl Autoconf >= 2.61 supports dots in --with options.
+   pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)])
+   dnl By default, look in $includedir and $libdir.
+   use_additional=yes
+   AC_LIB_WITH_FINAL_PREFIX([
+     eval additional_includedir=\"$includedir\"
+     eval additional_libdir=\"$libdir\"
+   ])
+   AC_ARG_WITH(P_A_C_K[-prefix],
+ [[  --with-]]P_A_C_K[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib
+   --without-]]P_A_C_K[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]],
+ [
+     if test "X$withval" = "Xno"; then
+       use_additional=no
+     else
+       if test "X$withval" = "X"; then
+         AC_LIB_WITH_FINAL_PREFIX([
+           eval additional_includedir=\"$includedir\"
+           eval additional_libdir=\"$libdir\"
+         ])
+       else
+         additional_includedir="$withval/include"
+         additional_libdir="$withval/$acl_libdirstem"
+       fi
+     fi
+ ])
+   dnl Search the library and its dependencies in $additional_libdir and
+   dnl $LDFLAGS. Using breadth-first-seach.
+   LIB[]NAME=
+   LTLIB[]NAME=
+   INC[]NAME=
+   LIB[]NAME[]_PREFIX=
+   rpathdirs=
+   ltrpathdirs=
+   names_already_handled=
+   names_next_round='$1 $2'
+   while test -n "$names_next_round"; do
+     names_this_round="$names_next_round"
+     names_next_round=
+     for name in $names_this_round; do
+       already_handled=
+       for n in $names_already_handled; do
+         if test "$n" = "$name"; then
+           already_handled=yes
+           break
+         fi
+       done
+       if test -z "$already_handled"; then
+         names_already_handled="$names_already_handled $name"
+         dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+         dnl or AC_LIB_HAVE_LINKFLAGS call.
+         uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+         eval value=\"\$HAVE_LIB$uppername\"
+         if test -n "$value"; then
+           if test "$value" = yes; then
+             eval value=\"\$LIB$uppername\"
+             test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+             eval value=\"\$LTLIB$uppername\"
+             test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+           else
+             dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+             dnl that this library doesn't exist. So just drop it.
+             :
+           fi
+         else
+           dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+           dnl and the already constructed $LIBNAME/$LTLIBNAME.
+           found_dir=
+           found_la=
+           found_so=
+           found_a=
+           eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
+           if test -n "$acl_shlibext"; then
+             shrext=".$acl_shlibext"             # typically: shrext=.so
+           else
+             shrext=
+           fi
+           if test $use_additional = yes; then
+             dir="$additional_libdir"
+             dnl The same code as in the loop below:
+             dnl First look for a shared library.
+             if test -n "$acl_shlibext"; then
+               if test -f "$dir/$libname$shrext"; then
+                 found_dir="$dir"
+                 found_so="$dir/$libname$shrext"
+               else
+                 if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                   ver=`(cd "$dir" && \
+                         for f in "$libname$shrext".*; do echo "$f"; done \
+                         | sed -e "s,^$libname$shrext\\\\.,," \
+                         | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                         | sed 1q ) 2>/dev/null`
+                   if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                     found_dir="$dir"
+                     found_so="$dir/$libname$shrext.$ver"
+                   fi
+                 else
+                   eval library_names=\"$acl_library_names_spec\"
+                   for f in $library_names; do
+                     if test -f "$dir/$f"; then
+                       found_dir="$dir"
+                       found_so="$dir/$f"
+                       break
+                     fi
+                   done
+                 fi
+               fi
+             fi
+             dnl Then look for a static library.
+             if test "X$found_dir" = "X"; then
+               if test -f "$dir/$libname.$acl_libext"; then
+                 found_dir="$dir"
+                 found_a="$dir/$libname.$acl_libext"
+               fi
+             fi
+             if test "X$found_dir" != "X"; then
+               if test -f "$dir/$libname.la"; then
+                 found_la="$dir/$libname.la"
+               fi
+             fi
+           fi
+           if test "X$found_dir" = "X"; then
+             for x in $LDFLAGS $LTLIB[]NAME; do
+               AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+               case "$x" in
+                 -L*)
+                   dir=`echo "X$x" | sed -e 's/^X-L//'`
+                   dnl First look for a shared library.
+                   if test -n "$acl_shlibext"; then
+                     if test -f "$dir/$libname$shrext"; then
+                       found_dir="$dir"
+                       found_so="$dir/$libname$shrext"
+                     else
+                       if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                         ver=`(cd "$dir" && \
+                               for f in "$libname$shrext".*; do echo "$f"; done \
+                               | sed -e "s,^$libname$shrext\\\\.,," \
+                               | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                               | sed 1q ) 2>/dev/null`
+                         if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                           found_dir="$dir"
+                           found_so="$dir/$libname$shrext.$ver"
+                         fi
+                       else
+                         eval library_names=\"$acl_library_names_spec\"
+                         for f in $library_names; do
+                           if test -f "$dir/$f"; then
+                             found_dir="$dir"
+                             found_so="$dir/$f"
+                             break
+                           fi
+                         done
+                       fi
+                     fi
+                   fi
+                   dnl Then look for a static library.
+                   if test "X$found_dir" = "X"; then
+                     if test -f "$dir/$libname.$acl_libext"; then
+                       found_dir="$dir"
+                       found_a="$dir/$libname.$acl_libext"
+                     fi
+                   fi
+                   if test "X$found_dir" != "X"; then
+                     if test -f "$dir/$libname.la"; then
+                       found_la="$dir/$libname.la"
+                     fi
+                   fi
+                   ;;
+               esac
+               if test "X$found_dir" != "X"; then
+                 break
+               fi
+             done
+           fi
+           if test "X$found_dir" != "X"; then
+             dnl Found the library.
+             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+             if test "X$found_so" != "X"; then
+               dnl Linking with a shared library. We attempt to hardcode its
+               dnl directory into the executable's runpath, unless it's the
+               dnl standard /usr/lib.
+               if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
+                 dnl No hardcoding is needed.
+                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+               else
+                 dnl Use an explicit option to hardcode DIR into the resulting
+                 dnl binary.
+                 dnl Potentially add DIR to ltrpathdirs.
+                 dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                 haveit=
+                 for x in $ltrpathdirs; do
+                   if test "X$x" = "X$found_dir"; then
+                     haveit=yes
+                     break
+                   fi
+                 done
+                 if test -z "$haveit"; then
+                   ltrpathdirs="$ltrpathdirs $found_dir"
+                 fi
+                 dnl The hardcoding into $LIBNAME is system dependent.
+                 if test "$acl_hardcode_direct" = yes; then
+                   dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+                   dnl resulting binary.
+                   LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                 else
+                   if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                     dnl Use an explicit option to hardcode DIR into the resulting
+                     dnl binary.
+                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                     dnl Potentially add DIR to rpathdirs.
+                     dnl The rpathdirs will be appended to $LIBNAME at the end.
+                     haveit=
+                     for x in $rpathdirs; do
+                       if test "X$x" = "X$found_dir"; then
+                         haveit=yes
+                         break
+                       fi
+                     done
+                     if test -z "$haveit"; then
+                       rpathdirs="$rpathdirs $found_dir"
+                     fi
+                   else
+                     dnl Rely on "-L$found_dir".
+                     dnl But don't add it if it's already contained in the LDFLAGS
+                     dnl or the already constructed $LIBNAME
+                     haveit=
+                     for x in $LDFLAGS $LIB[]NAME; do
+                       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                       if test "X$x" = "X-L$found_dir"; then
+                         haveit=yes
+                         break
+                       fi
+                     done
+                     if test -z "$haveit"; then
+                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+                     fi
+                     if test "$acl_hardcode_minus_L" != no; then
+                       dnl FIXME: Not sure whether we should use
+                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                       dnl here.
+                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+                     else
+                       dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
+                       dnl here, because this doesn't fit in flags passed to the
+                       dnl compiler. So give up. No hardcoding. This affects only
+                       dnl very old systems.
+                       dnl FIXME: Not sure whether we should use
+                       dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+                       dnl here.
+                       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+                     fi
+                   fi
+                 fi
+               fi
+             else
+               if test "X$found_a" != "X"; then
+                 dnl Linking with a static library.
+                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+               else
+                 dnl We shouldn't come here, but anyway it's good to have a
+                 dnl fallback.
+                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+               fi
+             fi
+             dnl Assume the include files are nearby.
+             additional_includedir=
+             case "$found_dir" in
+               */$acl_libdirstem | */$acl_libdirstem/)
+                 basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+                 LIB[]NAME[]_PREFIX="$basedir"
+                 additional_includedir="$basedir/include"
+                 ;;
+             esac
+             if test "X$additional_includedir" != "X"; then
+               dnl Potentially add $additional_includedir to $INCNAME.
+               dnl But don't add it
+               dnl   1. if it's the standard /usr/include,
+               dnl   2. if it's /usr/local/include and we are using GCC on Linux,
+               dnl   3. if it's already present in $CPPFLAGS or the already
+               dnl      constructed $INCNAME,
+               dnl   4. if it doesn't exist as a directory.
+               if test "X$additional_includedir" != "X/usr/include"; then
+                 haveit=
+                 if test "X$additional_includedir" = "X/usr/local/include"; then
+                   if test -n "$GCC"; then
+                     case $host_os in
+                       linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                     esac
+                   fi
+                 fi
+                 if test -z "$haveit"; then
+                   for x in $CPPFLAGS $INC[]NAME; do
+                     AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                     if test "X$x" = "X-I$additional_includedir"; then
+                       haveit=yes
+                       break
+                     fi
+                   done
+                   if test -z "$haveit"; then
+                     if test -d "$additional_includedir"; then
+                       dnl Really add $additional_includedir to $INCNAME.
+                       INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+                     fi
+                   fi
+                 fi
+               fi
+             fi
+             dnl Look for dependencies.
+             if test -n "$found_la"; then
+               dnl Read the .la file. It defines the variables
+               dnl dlname, library_names, old_library, dependency_libs, current,
+               dnl age, revision, installed, dlopen, dlpreopen, libdir.
+               save_libdir="$libdir"
+               case "$found_la" in
+                 */* | *\\*) . "$found_la" ;;
+                 *) . "./$found_la" ;;
+               esac
+               libdir="$save_libdir"
+               dnl We use only dependency_libs.
+               for dep in $dependency_libs; do
+                 case "$dep" in
+                   -L*)
+                     additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                     dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+                     dnl But don't add it
+                     dnl   1. if it's the standard /usr/lib,
+                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
+                     dnl   3. if it's already present in $LDFLAGS or the already
+                     dnl      constructed $LIBNAME,
+                     dnl   4. if it doesn't exist as a directory.
+                     if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+                       haveit=
+                       if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+                         if test -n "$GCC"; then
+                           case $host_os in
+                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                           esac
+                         fi
+                       fi
+                       if test -z "$haveit"; then
+                         haveit=
+                         for x in $LDFLAGS $LIB[]NAME; do
+                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                           if test "X$x" = "X-L$additional_libdir"; then
+                             haveit=yes
+                             break
+                           fi
+                         done
+                         if test -z "$haveit"; then
+                           if test -d "$additional_libdir"; then
+                             dnl Really add $additional_libdir to $LIBNAME.
+                             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+                           fi
+                         fi
+                         haveit=
+                         for x in $LDFLAGS $LTLIB[]NAME; do
+                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+                           if test "X$x" = "X-L$additional_libdir"; then
+                             haveit=yes
+                             break
+                           fi
+                         done
+                         if test -z "$haveit"; then
+                           if test -d "$additional_libdir"; then
+                             dnl Really add $additional_libdir to $LTLIBNAME.
+                             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+                           fi
+                         fi
+                       fi
+                     fi
+                     ;;
+                   -R*)
+                     dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                     if test "$enable_rpath" != no; then
+                       dnl Potentially add DIR to rpathdirs.
+                       dnl The rpathdirs will be appended to $LIBNAME at the end.
+                       haveit=
+                       for x in $rpathdirs; do
+                         if test "X$x" = "X$dir"; then
+                           haveit=yes
+                           break
+                         fi
+                       done
+                       if test -z "$haveit"; then
+                         rpathdirs="$rpathdirs $dir"
+                       fi
+                       dnl Potentially add DIR to ltrpathdirs.
+                       dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+                       haveit=
+                       for x in $ltrpathdirs; do
+                         if test "X$x" = "X$dir"; then
+                           haveit=yes
+                           break
+                         fi
+                       done
+                       if test -z "$haveit"; then
+                         ltrpathdirs="$ltrpathdirs $dir"
+                       fi
+                     fi
+                     ;;
+                   -l*)
+                     dnl Handle this in the next round.
+                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                     ;;
+                   *.la)
+                     dnl Handle this in the next round. Throw away the .la's
+                     dnl directory; it is already contained in a preceding -L
+                     dnl option.
+                     names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                     ;;
+                   *)
+                     dnl Most likely an immediate library name.
+                     LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+                     LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+                     ;;
+                 esac
+               done
+             fi
+           else
+             dnl Didn't find the library; assume it is in the system directories
+             dnl known to the linker and runtime loader. (All the system
+             dnl directories known to the linker should also be known to the
+             dnl runtime loader, otherwise the system is severely misconfigured.)
+             LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+             LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+           fi
+         fi
+       fi
+     done
+   done
+   if test "X$rpathdirs" != "X"; then
+     if test -n "$acl_hardcode_libdir_separator"; then
+       dnl Weird platform: only the last -rpath option counts, the user must
+       dnl pass all path elements in one option. We can arrange that for a
+       dnl single library, but not when more than one $LIBNAMEs are used.
+       alldirs=
+       for found_dir in $rpathdirs; do
+         alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+       done
+       dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
+       acl_save_libdir="$libdir"
+       libdir="$alldirs"
+       eval flag=\"$acl_hardcode_libdir_flag_spec\"
+       libdir="$acl_save_libdir"
+       LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+     else
+       dnl The -rpath options are cumulative.
+       for found_dir in $rpathdirs; do
+         acl_save_libdir="$libdir"
+         libdir="$found_dir"
+         eval flag=\"$acl_hardcode_libdir_flag_spec\"
+         libdir="$acl_save_libdir"
+         LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+       done
+     fi
+   fi
+   if test "X$ltrpathdirs" != "X"; then
+     dnl When using libtool, the option that works for both libraries and
+     dnl executables is -R. The -R options are cumulative.
+     for found_dir in $ltrpathdirs; do
+       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+     done
+   fi
+   popdef([P_A_C_K])
+   popdef([PACKLIBS])
+   popdef([PACKUP])
+   popdef([PACK])
+   popdef([NAME])
+ ])
+ 
+ dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+ dnl unless already present in VAR.
+ dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+ dnl contains two or three consecutive elements that belong together.
+ AC_DEFUN([AC_LIB_APPENDTOVAR],
+ [
+   for element in [$2]; do
+     haveit=
+     for x in $[$1]; do
+       AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+       if test "X$x" = "X$element"; then
+         haveit=yes
+         break
+       fi
+     done
+     if test -z "$haveit"; then
+       [$1]="${[$1]}${[$1]:+ }$element"
+     fi
+   done
+ ])
+ 
+ dnl For those cases where a variable contains several -L and -l options
+ dnl referring to unknown libraries and directories, this macro determines the
+ dnl necessary additional linker options for the runtime path.
+ dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
+ dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
+ dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
+ dnl otherwise linking without libtool is assumed.
+ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
+ [
+   AC_REQUIRE([AC_LIB_RPATH])
+   AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+   $1=
+   if test "$enable_rpath" != no; then
+     if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+       dnl Use an explicit option to hardcode directories into the resulting
+       dnl binary.
+       rpathdirs=
+       next=
+       for opt in $2; do
+         if test -n "$next"; then
+           dir="$next"
+           dnl No need to hardcode the standard /usr/lib.
+           if test "X$dir" != "X/usr/$acl_libdirstem"; then
+             rpathdirs="$rpathdirs $dir"
+           fi
+           next=
+         else
+           case $opt in
+             -L) next=yes ;;
+             -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
+                  dnl No need to hardcode the standard /usr/lib.
+                  if test "X$dir" != "X/usr/$acl_libdirstem"; then
+                    rpathdirs="$rpathdirs $dir"
+                  fi
+                  next= ;;
+             *) next= ;;
+           esac
+         fi
+       done
+       if test "X$rpathdirs" != "X"; then
+         if test -n ""$3""; then
+           dnl libtool is used for linking. Use -R options.
+           for dir in $rpathdirs; do
+             $1="${$1}${$1:+ }-R$dir"
+           done
+         else
+           dnl The linker is used for linking directly.
+           if test -n "$acl_hardcode_libdir_separator"; then
+             dnl Weird platform: only the last -rpath option counts, the user
+             dnl must pass all path elements in one option.
+             alldirs=
+             for dir in $rpathdirs; do
+               alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
+             done
+             acl_save_libdir="$libdir"
+             libdir="$alldirs"
+             eval flag=\"$acl_hardcode_libdir_flag_spec\"
+             libdir="$acl_save_libdir"
+             $1="$flag"
+           else
+             dnl The -rpath options are cumulative.
+             for dir in $rpathdirs; do
+               acl_save_libdir="$libdir"
+               libdir="$dir"
+               eval flag=\"$acl_hardcode_libdir_flag_spec\"
+               libdir="$acl_save_libdir"
+               $1="${$1}${$1:+ }$flag"
+             done
+           fi
+         fi
+       fi
+     fi
+   fi
+   AC_SUBST([$1])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/lib-prefix.m4 texinfo-4.13/gnulib/m4/lib-prefix.m4
*** texinfo-4.12/gnulib/m4/lib-prefix.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/lib-prefix.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,185 ----
+ # lib-prefix.m4 serial 5 (gettext-0.15)
+ dnl Copyright (C) 2001-2005 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Bruno Haible.
+ 
+ dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+ dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+ dnl require excessive bracketing.
+ ifdef([AC_HELP_STRING],
+ [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+ [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+ 
+ dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+ dnl to access previously installed libraries. The basic assumption is that
+ dnl a user will want packages to use other packages he previously installed
+ dnl with the same --prefix option.
+ dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+ dnl libraries, but is otherwise very convenient.
+ AC_DEFUN([AC_LIB_PREFIX],
+ [
+   AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+   AC_REQUIRE([AC_PROG_CC])
+   AC_REQUIRE([AC_CANONICAL_HOST])
+   AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+   AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+   dnl By default, look in $includedir and $libdir.
+   use_additional=yes
+   AC_LIB_WITH_FINAL_PREFIX([
+     eval additional_includedir=\"$includedir\"
+     eval additional_libdir=\"$libdir\"
+   ])
+   AC_LIB_ARG_WITH([lib-prefix],
+ [  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+   --without-lib-prefix    don't search for libraries in includedir and libdir],
+ [
+     if test "X$withval" = "Xno"; then
+       use_additional=no
+     else
+       if test "X$withval" = "X"; then
+         AC_LIB_WITH_FINAL_PREFIX([
+           eval additional_includedir=\"$includedir\"
+           eval additional_libdir=\"$libdir\"
+         ])
+       else
+         additional_includedir="$withval/include"
+         additional_libdir="$withval/$acl_libdirstem"
+       fi
+     fi
+ ])
+   if test $use_additional = yes; then
+     dnl Potentially add $additional_includedir to $CPPFLAGS.
+     dnl But don't add it
+     dnl   1. if it's the standard /usr/include,
+     dnl   2. if it's already present in $CPPFLAGS,
+     dnl   3. if it's /usr/local/include and we are using GCC on Linux,
+     dnl   4. if it doesn't exist as a directory.
+     if test "X$additional_includedir" != "X/usr/include"; then
+       haveit=
+       for x in $CPPFLAGS; do
+         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+         if test "X$x" = "X-I$additional_includedir"; then
+           haveit=yes
+           break
+         fi
+       done
+       if test -z "$haveit"; then
+         if test "X$additional_includedir" = "X/usr/local/include"; then
+           if test -n "$GCC"; then
+             case $host_os in
+               linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+             esac
+           fi
+         fi
+         if test -z "$haveit"; then
+           if test -d "$additional_includedir"; then
+             dnl Really add $additional_includedir to $CPPFLAGS.
+             CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+           fi
+         fi
+       fi
+     fi
+     dnl Potentially add $additional_libdir to $LDFLAGS.
+     dnl But don't add it
+     dnl   1. if it's the standard /usr/lib,
+     dnl   2. if it's already present in $LDFLAGS,
+     dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
+     dnl   4. if it doesn't exist as a directory.
+     if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+       haveit=
+       for x in $LDFLAGS; do
+         AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+         if test "X$x" = "X-L$additional_libdir"; then
+           haveit=yes
+           break
+         fi
+       done
+       if test -z "$haveit"; then
+         if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+           if test -n "$GCC"; then
+             case $host_os in
+               linux*) haveit=yes;;
+             esac
+           fi
+         fi
+         if test -z "$haveit"; then
+           if test -d "$additional_libdir"; then
+             dnl Really add $additional_libdir to $LDFLAGS.
+             LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+           fi
+         fi
+       fi
+     fi
+   fi
+ ])
+ 
+ dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+ dnl acl_final_exec_prefix, containing the values to which $prefix and
+ dnl $exec_prefix will expand at the end of the configure script.
+ AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+ [
+   dnl Unfortunately, prefix and exec_prefix get only finally determined
+   dnl at the end of configure.
+   if test "X$prefix" = "XNONE"; then
+     acl_final_prefix="$ac_default_prefix"
+   else
+     acl_final_prefix="$prefix"
+   fi
+   if test "X$exec_prefix" = "XNONE"; then
+     acl_final_exec_prefix='${prefix}'
+   else
+     acl_final_exec_prefix="$exec_prefix"
+   fi
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+   prefix="$acl_save_prefix"
+ ])
+ 
+ dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+ dnl variables prefix and exec_prefix bound to the values they will have
+ dnl at the end of the configure script.
+ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+ [
+   acl_save_prefix="$prefix"
+   prefix="$acl_final_prefix"
+   acl_save_exec_prefix="$exec_prefix"
+   exec_prefix="$acl_final_exec_prefix"
+   $1
+   exec_prefix="$acl_save_exec_prefix"
+   prefix="$acl_save_prefix"
+ ])
+ 
+ dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing
+ dnl the basename of the libdir, either "lib" or "lib64".
+ AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
+ [
+   dnl There is no formal standard regarding lib and lib64. The current
+   dnl practice is that on a system supporting 32-bit and 64-bit instruction
+   dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit
+   dnl libraries go under $prefix/lib. We determine the compiler's default
+   dnl mode by looking at the compiler's library search path. If at least
+   dnl of its elements ends in /lib64 or points to a directory whose absolute
+   dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the
+   dnl default, namely "lib".
+   acl_libdirstem=lib
+   searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+   if test -n "$searchpath"; then
+     acl_save_IFS="${IFS= 	}"; IFS=":"
+     for searchdir in $searchpath; do
+       if test -d "$searchdir"; then
+         case "$searchdir" in
+           */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+           *) searchdir=`cd "$searchdir" && pwd`
+              case "$searchdir" in
+                */lib64 ) acl_libdirstem=lib64 ;;
+              esac ;;
+         esac
+       fi
+     done
+     IFS="$acl_save_IFS"
+   fi
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/localcharset.m4 texinfo-4.13/gnulib/m4/localcharset.m4
*** texinfo-4.12/gnulib/m4/localcharset.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/localcharset.m4	Wed Jul 25 17:46:11 2007
***************
*** 0 ****
--- 1,16 ----
+ # localcharset.m4 serial 5
+ dnl Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_LOCALCHARSET],
+ [
+   dnl Prerequisites of lib/localcharset.c.
+   AC_REQUIRE([AM_LANGINFO_CODESET])
+   AC_CHECK_DECLS_ONCE(getc_unlocked)
+ 
+   dnl Prerequisites of the lib/Makefile.am snippet.
+   AC_REQUIRE([AC_CANONICAL_HOST])
+   AC_REQUIRE([gl_GLIBC21])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/longlong.m4 texinfo-4.13/gnulib/m4/longlong.m4
*** texinfo-4.12/gnulib/m4/longlong.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/longlong.m4	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,106 ----
+ # longlong.m4 serial 13
+ dnl Copyright (C) 1999-2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Paul Eggert.
+ 
+ # Define HAVE_LONG_LONG_INT if 'long long int' works.
+ # This fixes a bug in Autoconf 2.61, but can be removed once we
+ # assume 2.62 everywhere.
+ 
+ # Note: If the type 'long long int' exists but is only 32 bits large
+ # (as on some very old compilers), HAVE_LONG_LONG_INT will not be
+ # defined. In this case you can treat 'long long int' like 'long int'.
+ 
+ AC_DEFUN([AC_TYPE_LONG_LONG_INT],
+ [
+   AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
+     [AC_LINK_IFELSE(
+        [_AC_TYPE_LONG_LONG_SNIPPET],
+        [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+ 	dnl If cross compiling, assume the bug isn't important, since
+ 	dnl nobody cross compiles for this platform as far as we know.
+ 	AC_RUN_IFELSE(
+ 	  [AC_LANG_PROGRAM(
+ 	     [[@%:@include <limits.h>
+ 	       @%:@ifndef LLONG_MAX
+ 	       @%:@ define HALF \
+ 			(1LL << (sizeof (long long int) * CHAR_BIT - 2))
+ 	       @%:@ define LLONG_MAX (HALF - 1 + HALF)
+ 	       @%:@endif]],
+ 	     [[long long int n = 1;
+ 	       int i;
+ 	       for (i = 0; ; i++)
+ 		 {
+ 		   long long int m = n << i;
+ 		   if (m >> i != n)
+ 		     return 1;
+ 		   if (LLONG_MAX / 2 < m)
+ 		     break;
+ 		 }
+ 	       return 0;]])],
+ 	  [ac_cv_type_long_long_int=yes],
+ 	  [ac_cv_type_long_long_int=no],
+ 	  [ac_cv_type_long_long_int=yes])],
+        [ac_cv_type_long_long_int=no])])
+   if test $ac_cv_type_long_long_int = yes; then
+     AC_DEFINE([HAVE_LONG_LONG_INT], 1,
+       [Define to 1 if the system has the type `long long int'.])
+   fi
+ ])
+ 
+ # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+ # This fixes a bug in Autoconf 2.61, but can be removed once we
+ # assume 2.62 everywhere.
+ 
+ # Note: If the type 'unsigned long long int' exists but is only 32 bits
+ # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+ # will not be defined. In this case you can treat 'unsigned long long int'
+ # like 'unsigned long int'.
+ 
+ AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
+ [
+   AC_CACHE_CHECK([for unsigned long long int],
+     [ac_cv_type_unsigned_long_long_int],
+     [AC_LINK_IFELSE(
+        [_AC_TYPE_LONG_LONG_SNIPPET],
+        [ac_cv_type_unsigned_long_long_int=yes],
+        [ac_cv_type_unsigned_long_long_int=no])])
+   if test $ac_cv_type_unsigned_long_long_int = yes; then
+     AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1,
+       [Define to 1 if the system has the type `unsigned long long int'.])
+   fi
+ ])
+ 
+ # Expands to a C program that can be used to test for simultaneous support
+ # of 'long long' and 'unsigned long long'. We don't want to say that
+ # 'long long' is available if 'unsigned long long' is not, or vice versa,
+ # because too many programs rely on the symmetry between signed and unsigned
+ # integer types (excluding 'bool').
+ AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
+ [
+   AC_LANG_PROGRAM(
+     [[/* For now, do not test the preprocessor; as of 2007 there are too many
+ 	 implementations with broken preprocessors.  Perhaps this can
+ 	 be revisited in 2012.  In the meantime, code should not expect
+ 	 #if to work with literals wider than 32 bits.  */
+       /* Test literals.  */
+       long long int ll = 9223372036854775807ll;
+       long long int nll = -9223372036854775807LL;
+       unsigned long long int ull = 18446744073709551615ULL;
+       /* Test constant expressions.   */
+       typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ 		     ? 1 : -1)];
+       typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ 		     ? 1 : -1)];
+       int i = 63;]],
+     [[/* Test availability of runtime routines for shift and division.  */
+       long long int llmax = 9223372036854775807ll;
+       unsigned long long int ullmax = 18446744073709551615ull;
+       return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ 	      | (llmax / ll) | (llmax % ll)
+ 	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ 	      | (ullmax / ull) | (ullmax % ull));]])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/malloc.m4 texinfo-4.13/gnulib/m4/malloc.m4
*** texinfo-4.12/gnulib/m4/malloc.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/malloc.m4	Tue Dec 25 16:51:11 2007
***************
*** 0 ****
--- 1,41 ----
+ # malloc.m4 serial 8
+ dnl Copyright (C) 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ # gl_FUNC_MALLOC_POSIX
+ # --------------------
+ # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it
+ # fails), and replace malloc if it is not.
+ AC_DEFUN([gl_FUNC_MALLOC_POSIX],
+ [
+   AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+   if test $gl_cv_func_malloc_posix = yes; then
+     HAVE_MALLOC_POSIX=1
+     AC_DEFINE([HAVE_MALLOC_POSIX], 1,
+       [Define if the 'malloc' function is POSIX compliant.])
+   else
+     AC_LIBOBJ([malloc])
+     HAVE_MALLOC_POSIX=0
+   fi
+   AC_SUBST([HAVE_MALLOC_POSIX])
+ ])
+ 
+ # Test whether malloc, realloc, calloc are POSIX compliant,
+ # Set gl_cv_func_malloc_posix to yes or no accordingly.
+ AC_DEFUN([gl_CHECK_MALLOC_POSIX],
+ [
+   AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant],
+     [gl_cv_func_malloc_posix],
+     [
+       dnl It is too dangerous to try to allocate a large amount of memory:
+       dnl some systems go to their knees when you do that. So assume that
+       dnl all Unix implementations of the function are POSIX compliant.
+       AC_TRY_COMPILE([],
+         [#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+          choke me
+          #endif
+         ], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no])
+     ])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/malloca.m4 texinfo-4.13/gnulib/m4/malloca.m4
*** texinfo-4.12/gnulib/m4/malloca.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/malloca.m4	Wed Jul 25 17:46:11 2007
***************
*** 0 ****
--- 1,14 ----
+ # malloca.m4 serial 1
+ dnl Copyright (C) 2003-2004, 2006-2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_MALLOCA],
+ [
+   dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables
+   dnl @ALLOCA@ and @LTALLOCA@.
+   dnl gl_FUNC_ALLOCA   dnl Already brought in by the module dependencies.
+   AC_REQUIRE([gl_EEMALLOC])
+   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbchar.m4 texinfo-4.13/gnulib/m4/mbchar.m4
*** texinfo-4.12/gnulib/m4/mbchar.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbchar.m4	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,13 ----
+ # mbchar.m4 serial 7
+ dnl Copyright (C) 2005-2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl autoconf tests required for use of mbchar.m4
+ dnl From Bruno Haible.
+ 
+ AC_DEFUN([gl_MBCHAR],
+ [
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbiter.m4 texinfo-4.13/gnulib/m4/mbiter.m4
*** texinfo-4.12/gnulib/m4/mbiter.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbiter.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,17 ----
+ # mbiter.m4 serial 2
+ dnl Copyright (C) 2005 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl autoconf tests required for use of mbiter.h
+ dnl From Bruno Haible.
+ 
+ AC_DEFUN([gl_MBITER],
+ [
+   AC_REQUIRE([AC_TYPE_MBSTATE_T])
+   dnl The following line is that so the user can test HAVE_MBRTOWC before
+   dnl #include "mbiter.h" or "mbuiter.h".
+   AC_REQUIRE([gl_FUNC_MBRTOWC])
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbrtowc.m4 texinfo-4.13/gnulib/m4/mbrtowc.m4
*** texinfo-4.12/gnulib/m4/mbrtowc.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbrtowc.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,31 ----
+ # mbrtowc.m4 serial 8
+ dnl Copyright (C) 2001-2002, 2004-2005 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Paul Eggert
+ 
+ dnl This file can be removed, and gl_FUNC_MBRTOWC replaced with
+ dnl AC_FUNC_MBRTOWC, when autoconf 2.60 can be assumed everywhere.
+ 
+ AC_DEFUN([gl_FUNC_MBRTOWC],
+ [
+   dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60.
+   AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
+     gl_cv_func_mbrtowc,
+     [AC_LINK_IFELSE(
+        [AC_LANG_PROGRAM(
+             [[#include <wchar.h>]],
+             [[wchar_t wc;
+               char const s[] = "";
+               size_t n = 1;
+               mbstate_t state;
+               return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])],
+        gl_cv_func_mbrtowc=yes,
+        gl_cv_func_mbrtowc=no)])
+   if test $gl_cv_func_mbrtowc = yes; then
+     AC_DEFINE([HAVE_MBRTOWC], 1,
+       [Define to 1 if mbrtowc and mbstate_t are properly declared.])
+   fi
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbscasecmp.m4 texinfo-4.13/gnulib/m4/mbscasecmp.m4
*** texinfo-4.12/gnulib/m4/mbscasecmp.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbscasecmp.m4	Tue Dec 25 16:51:11 2007
***************
*** 0 ****
--- 1,16 ----
+ # mbscasecmp.m4 serial 1
+ dnl Copyright (C) 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MBSCASECMP],
+ [
+   gl_PREREQ_MBSCASECMP
+ ])
+ 
+ # Prerequisites of lib/mbscasecmp.c.
+ AC_DEFUN([gl_PREREQ_MBSCASECMP], [
+   AC_REQUIRE([gl_FUNC_MBRTOWC])
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbschr.m4 texinfo-4.13/gnulib/m4/mbschr.m4
*** texinfo-4.12/gnulib/m4/mbschr.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbschr.m4	Mon May 12 05:38:22 2008
***************
*** 0 ****
--- 1,16 ----
+ # mbschr.m4 serial 1
+ dnl Copyright (C) 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MBSCHR],
+ [
+   gl_PREREQ_MBSCHR
+ ])
+ 
+ # Prerequisites of lib/mbschr.c.
+ AC_DEFUN([gl_PREREQ_MBSCHR], [
+   AC_REQUIRE([gl_FUNC_MBRTOWC])
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbslen.m4 texinfo-4.13/gnulib/m4/mbslen.m4
*** texinfo-4.12/gnulib/m4/mbslen.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbslen.m4	Mon May 12 05:38:22 2008
***************
*** 0 ****
--- 1,16 ----
+ # mbslen.m4 serial 1
+ dnl Copyright (C) 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MBSLEN],
+ [
+   gl_PREREQ_MBSLEN
+ ])
+ 
+ # Prerequisites of lib/mbslen.c.
+ AC_DEFUN([gl_PREREQ_MBSLEN], [
+   AC_REQUIRE([gl_FUNC_MBRTOWC])
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbsncasecmp.m4 texinfo-4.13/gnulib/m4/mbsncasecmp.m4
*** texinfo-4.12/gnulib/m4/mbsncasecmp.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbsncasecmp.m4	Tue Dec 25 16:51:11 2007
***************
*** 0 ****
--- 1,16 ----
+ # mbsncasecmp.m4 serial 1
+ dnl Copyright (C) 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MBSNCASECMP],
+ [
+   gl_PREREQ_MBSNCASECMP
+ ])
+ 
+ # Prerequisites of lib/mbsncasecmp.c.
+ AC_DEFUN([gl_PREREQ_MBSNCASECMP], [
+   AC_REQUIRE([gl_FUNC_MBRTOWC])
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbsstr.m4 texinfo-4.13/gnulib/m4/mbsstr.m4
*** texinfo-4.12/gnulib/m4/mbsstr.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbsstr.m4	Mon May 12 05:38:22 2008
***************
*** 0 ****
--- 1,16 ----
+ # mbsstr.m4 serial 1
+ dnl Copyright (C) 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MBSSTR],
+ [
+   gl_PREREQ_MBSSTR
+ ])
+ 
+ # Prerequisites of lib/mbsstr.c.
+ AC_DEFUN([gl_PREREQ_MBSSTR], [
+   AC_REQUIRE([gl_FUNC_MBRTOWC])
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbstate_t.m4 texinfo-4.13/gnulib/m4/mbstate_t.m4
*** texinfo-4.12/gnulib/m4/mbstate_t.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbstate_t.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,30 ----
+ # mbstate_t.m4 serial 10
+ dnl Copyright (C) 2000-2002, 2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ # From Paul Eggert.
+ 
+ # BeOS 5 has <wchar.h> but does not define mbstate_t,
+ # so you can't declare an object of that type.
+ # Check for this incompatibility with Standard C.
+ 
+ # AC_TYPE_MBSTATE_T
+ # -----------------
+ AC_DEFUN([AC_TYPE_MBSTATE_T],
+   [AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t,
+      [AC_COMPILE_IFELSE(
+ 	[AC_LANG_PROGRAM(
+ 	   [AC_INCLUDES_DEFAULT[
+ #	    include <wchar.h>]],
+ 	   [[mbstate_t x; return sizeof x;]])],
+ 	[ac_cv_type_mbstate_t=yes],
+ 	[ac_cv_type_mbstate_t=no])])
+    if test $ac_cv_type_mbstate_t = yes; then
+      AC_DEFINE([HAVE_MBSTATE_T], 1,
+ 	       [Define to 1 if <wchar.h> declares mbstate_t.])
+    else
+      AC_DEFINE([mbstate_t], int,
+ 	       [Define to a type if <wchar.h> does not define.])
+    fi])
diff -Nrc2 texinfo-4.12/gnulib/m4/mbswidth.m4 texinfo-4.13/gnulib/m4/mbswidth.m4
*** texinfo-4.12/gnulib/m4/mbswidth.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mbswidth.m4	Wed Feb  7 09:00:38 2007
***************
*** 0 ****
--- 1,42 ----
+ # mbswidth.m4 serial 14
+ dnl Copyright (C) 2000-2002, 2004, 2006, 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl autoconf tests required for use of mbswidth.c
+ dnl From Bruno Haible.
+ 
+ AC_DEFUN([gl_MBSWIDTH],
+ [
+   AC_CHECK_HEADERS_ONCE([wchar.h])
+   AC_CHECK_FUNCS_ONCE([isascii mbsinit])
+   gl_FUNC_MBRTOWC
+ 
+   dnl UnixWare 7.1.1 <wchar.h> has a declaration of a function mbswidth()
+   dnl that clashes with ours.
+   AC_CACHE_CHECK([whether mbswidth is declared in <wchar.h>],
+     ac_cv_have_decl_mbswidth,
+     [AC_TRY_COMPILE([
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+    before <wchar.h>.  */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ ], [
+   char *p = (char *) mbswidth;
+   return !p;
+ ], ac_cv_have_decl_mbswidth=yes, ac_cv_have_decl_mbswidth=no)])
+   if test $ac_cv_have_decl_mbswidth = yes; then
+     ac_val=1
+   else
+     ac_val=0
+   fi
+   AC_DEFINE_UNQUOTED(HAVE_DECL_MBSWIDTH_IN_WCHAR_H, $ac_val,
+     [Define to 1 if you have a declaration of mbswidth() in <wchar.h>, and to 0 otherwise.])
+ 
+   AC_TYPE_MBSTATE_T
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/memchr.m4 texinfo-4.13/gnulib/m4/memchr.m4
*** texinfo-4.12/gnulib/m4/memchr.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/memchr.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,18 ----
+ # memchr.m4 serial 4
+ dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MEMCHR],
+ [
+   AC_REPLACE_FUNCS(memchr)
+   if test $ac_cv_func_memchr = no; then
+     gl_PREREQ_MEMCHR
+   fi
+ ])
+ 
+ # Prerequisites of lib/memchr.c.
+ AC_DEFUN([gl_PREREQ_MEMCHR], [
+   AC_CHECK_HEADERS(bp-sym.h)
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/memcmp.m4 texinfo-4.13/gnulib/m4/memcmp.m4
*** texinfo-4.12/gnulib/m4/memcmp.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/memcmp.m4	Sat Jul 26 10:13:26 2008
***************
*** 0 ****
--- 1,31 ----
+ # memcmp.m4 serial 13
+ dnl Copyright (C) 2002, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MEMCMP],
+ [
+   if test $cross_compiling != no; then
+     # AC_FUNC_MEMCMP as of 2.62 defaults to 'no' when cross compiling.
+     # We default to yes if memcmp appears to exist, which works
+     # better for MinGW.
+     AC_CACHE_CHECK([whether cross-compiling target has memcmp],
+                    [ac_cv_func_memcmp_working],
+                    [AC_LINK_IFELSE([
+ 			AC_LANG_PROGRAM([[#include <string.h>
+ 				]], [[int ret = memcmp ("foo", "bar", 0);]])],
+ 			[ac_cv_func_memcmp_working=yes],
+ 			[ac_cv_func_memcmp_working=no])])
+   fi 
+   AC_FUNC_MEMCMP
+   dnl Note: AC_FUNC_MEMCMP does AC_LIBOBJ(memcmp).
+   if test $ac_cv_func_memcmp_working = no; then
+     AC_DEFINE(memcmp, rpl_memcmp,
+       [Define to rpl_memcmp if the replacement function should be used.])
+     gl_PREREQ_MEMCMP
+   fi
+ ])
+ 
+ # Prerequisites of lib/memcmp.c.
+ AC_DEFUN([gl_PREREQ_MEMCMP], [:])
diff -Nrc2 texinfo-4.12/gnulib/m4/memcpy.m4 texinfo-4.13/gnulib/m4/memcpy.m4
*** texinfo-4.12/gnulib/m4/memcpy.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/memcpy.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,18 ----
+ # memcpy.m4 serial 2
+ dnl Copyright (C) 2002 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MEMCPY],
+ [
+   AC_REPLACE_FUNCS(memcpy)
+   if test $ac_cv_func_memcpy = no; then
+     gl_PREREQ_MEMCPY
+   fi
+ ])
+ 
+ # Prerequisites of lib/memcpy.c.
+ AC_DEFUN([gl_PREREQ_MEMCPY], [
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/memmem.m4 texinfo-4.13/gnulib/m4/memmem.m4
*** texinfo-4.12/gnulib/m4/memmem.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/memmem.m4	Sat Jul 26 10:13:26 2008
***************
*** 0 ****
--- 1,83 ----
+ # memmem.m4 serial 13
+ dnl Copyright (C) 2002, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl Check that memmem is present.
+ AC_DEFUN([gl_FUNC_MEMMEM_SIMPLE],
+ [
+   dnl Persuade glibc <string.h> to declare memmem().
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ 
+   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+   AC_REPLACE_FUNCS(memmem)
+   AC_CHECK_DECLS_ONCE(memmem)
+   if test $ac_cv_have_decl_memmem = no; then
+     HAVE_DECL_MEMMEM=0
+   fi
+   gl_PREREQ_MEMMEM
+ ]) # gl_FUNC_MEMMEM_SIMPLE
+ 
+ dnl Additionally, check that memmem is efficient and handles empty needles.
+ AC_DEFUN([gl_FUNC_MEMMEM],
+ [
+   AC_REQUIRE([gl_FUNC_MEMMEM_SIMPLE])
+   if test $ac_cv_have_decl_memmem = yes; then
+     AC_CACHE_CHECK([whether memmem works in linear time],
+       [gl_cv_func_memmem_works],
+       [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+ #include <signal.h> /* for signal */
+ #include <string.h> /* for memmem */
+ #include <stdlib.h> /* for malloc */
+ #include <unistd.h> /* for alarm */
+ ]], [[size_t m = 1000000;
+     char *haystack = (char *) malloc (2 * m + 1);
+     char *needle = (char *) malloc (m + 1);
+     void *result = 0;
+     /* Failure to compile this test due to missing alarm is okay,
+        since all such platforms (mingw) also lack memmem.  */
+     signal (SIGALRM, SIG_DFL);
+     alarm (5);
+     /* Check for quadratic performance.  */
+     if (haystack && needle)
+       {
+ 	memset (haystack, 'A', 2 * m);
+ 	haystack[2 * m] = 'B';
+ 	memset (needle, 'A', m);
+ 	needle[m] = 'B';
+ 	result = memmem (haystack, 2 * m + 1, needle, m + 1);
+       }
+     /* Check for empty needle behavior.  */
+     return !result || !memmem ("a", 1, 0, 0);]])],
+ 	[gl_cv_func_memmem_works=yes], [gl_cv_func_memmem_works=no],
+ 	[dnl Only glibc >= 2.9 and cygwin >= 1.7.0 are known to have a
+ 	 dnl memmem that works in linear time.
+ 	 AC_EGREP_CPP([Lucky user],
+ 	   [
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+  #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9) || (__GLIBC__ > 2)
+   Lucky user
+  #endif
+ #endif
+ #ifdef __CYGWIN__
+  #include <cygwin/version.h>
+  #if CYGWIN_VERSION_DLL_MAJOR >= 1007
+   Lucky user
+  #endif
+ #endif
+ 	   ],
+ 	   [gl_cv_func_memmem_works=yes],
+ 	   [gl_cv_func_memmem_works="guessing no"])
+ 	])
+       ])
+     if test "$gl_cv_func_memmem_works" != yes; then
+       REPLACE_MEMMEM=1
+       AC_LIBOBJ([memmem])
+     fi
+   fi
+ ]) # gl_FUNC_MEMMEM
+ 
+ # Prerequisites of lib/memmem.c.
+ AC_DEFUN([gl_PREREQ_MEMMEM], [:])
diff -Nrc2 texinfo-4.12/gnulib/m4/memmove.m4 texinfo-4.13/gnulib/m4/memmove.m4
*** texinfo-4.12/gnulib/m4/memmove.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/memmove.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,18 ----
+ # memmove.m4 serial 2
+ dnl Copyright (C) 2002 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MEMMOVE],
+ [
+   AC_REPLACE_FUNCS(memmove)
+   if test $ac_cv_func_memmove = no; then
+     gl_PREREQ_MEMMOVE
+   fi
+ ])
+ 
+ # Prerequisites of lib/memmove.c.
+ AC_DEFUN([gl_PREREQ_MEMMOVE], [
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mempcpy.m4 texinfo-4.13/gnulib/m4/mempcpy.m4
*** texinfo-4.12/gnulib/m4/mempcpy.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mempcpy.m4	Sun Jun  8 06:04:15 2008
***************
*** 0 ****
--- 1,26 ----
+ # mempcpy.m4 serial 9
+ dnl Copyright (C) 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_MEMPCPY],
+ [
+   dnl Persuade glibc <string.h> to declare mempcpy().
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ 
+   dnl The mempcpy() declaration in lib/string.in.h uses 'restrict'.
+   AC_REQUIRE([AC_C_RESTRICT])
+ 
+   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+   AC_REPLACE_FUNCS(mempcpy)
+   if test $ac_cv_func_mempcpy = no; then
+     HAVE_MEMPCPY=0
+     gl_PREREQ_MEMPCPY
+   fi
+ ])
+ 
+ # Prerequisites of lib/mempcpy.c.
+ AC_DEFUN([gl_PREREQ_MEMPCPY], [
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/mkstemp.m4 texinfo-4.13/gnulib/m4/mkstemp.m4
*** texinfo-4.12/gnulib/m4/mkstemp.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/mkstemp.m4	Wed Feb 21 16:46:10 2007
***************
*** 0 ****
--- 1,56 ----
+ #serial 17
+ 
+ # Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # On some hosts (e.g., HP-UX 10.20, SunOS 4.1.4, Solaris 2.5.1), mkstemp has a
+ # silly limit that it can create no more than 26 files from a given template.
+ # Other systems lack mkstemp altogether.
+ # On OSF1/Tru64 V4.0F, the system-provided mkstemp function can create
+ # only 32 files per process.
+ # On systems like the above, arrange to use the replacement function.
+ AC_DEFUN([gl_FUNC_MKSTEMP],
+ [
+   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+   AC_REQUIRE([AC_SYS_LARGEFILE])
+ 
+   AC_CACHE_CHECK([for working mkstemp],
+     [gl_cv_func_working_mkstemp],
+     [
+       mkdir conftest.mkstemp
+       AC_RUN_IFELSE(
+ 	[AC_LANG_PROGRAM(
+ 	  [AC_INCLUDES_DEFAULT],
+ 	  [[int i;
+ 	    off_t large = (off_t) 4294967295u;
+ 	    if (large < 0)
+ 	      large = 2147483647;
+ 	    for (i = 0; i < 70; i++)
+ 	      {
+ 		char templ[] = "conftest.mkstemp/coXXXXXX";
+ 		int (*mkstemp_function) (char *) = mkstemp;
+ 		int fd = mkstemp_function (templ);
+ 		if (fd < 0 || lseek (fd, large, SEEK_SET) != large)
+ 		  return 1;
+ 		close (fd);
+ 	      }
+ 	    return 0;]])],
+ 	[gl_cv_func_working_mkstemp=yes],
+ 	[gl_cv_func_working_mkstemp=no],
+ 	[gl_cv_func_working_mkstemp=no])
+       rm -rf conftest.mkstemp
+     ])
+ 
+   if test $gl_cv_func_working_mkstemp != yes; then
+     REPLACE_MKSTEMP=1
+     AC_LIBOBJ([mkstemp])
+     gl_PREREQ_MKSTEMP
+   fi
+ ])
+ 
+ # Prerequisites of lib/mkstemp.c.
+ AC_DEFUN([gl_PREREQ_MKSTEMP],
+ [
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/nls.m4 texinfo-4.13/gnulib/m4/nls.m4
*** texinfo-4.12/gnulib/m4/nls.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/nls.m4	Sat Aug 12 05:57:17 2006
***************
*** 0 ****
--- 1,31 ----
+ # nls.m4 serial 3 (gettext-0.15)
+ dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ dnl
+ dnl This file can can be used in projects which are not available under
+ dnl the GNU General Public License or the GNU Library General Public
+ dnl License but which still want to provide support for the GNU gettext
+ dnl functionality.
+ dnl Please note that the actual code of the GNU gettext library is covered
+ dnl by the GNU Library General Public License, and the rest of the GNU
+ dnl gettext package package is covered by the GNU General Public License.
+ dnl They are *not* in the public domain.
+ 
+ dnl Authors:
+ dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+ dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+ 
+ AC_PREREQ(2.50)
+ 
+ AC_DEFUN([AM_NLS],
+ [
+   AC_MSG_CHECKING([whether NLS is requested])
+   dnl Default is enabled NLS
+   AC_ARG_ENABLE(nls,
+     [  --disable-nls           do not use Native Language Support],
+     USE_NLS=$enableval, USE_NLS=yes)
+   AC_MSG_RESULT($USE_NLS)
+   AC_SUBST(USE_NLS)
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/onceonly.m4 texinfo-4.13/gnulib/m4/onceonly.m4
*** texinfo-4.12/gnulib/m4/onceonly.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/onceonly.m4	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,90 ----
+ # onceonly.m4 serial 6
+ dnl Copyright (C) 2002-2003, 2005-2006, 2008 Free Software Foundation, Inc.
+ dnl This file is free software, distributed under the terms of the GNU
+ dnl General Public License.  As a special exception to the GNU General
+ dnl Public License, this file may be distributed as part of a program
+ dnl that contains a configuration script generated by Autoconf, under
+ dnl the same distribution terms as the rest of that program.
+ 
+ dnl This file defines some "once only" variants of standard autoconf macros.
+ dnl   AC_CHECK_HEADERS_ONCE          like  AC_CHECK_HEADERS
+ dnl   AC_CHECK_FUNCS_ONCE            like  AC_CHECK_FUNCS
+ dnl   AC_CHECK_DECLS_ONCE            like  AC_CHECK_DECLS
+ dnl   AC_REQUIRE([AC_FUNC_STRCOLL])  like  AC_FUNC_STRCOLL
+ dnl The advantage is that the check for each of the headers/functions/decls
+ dnl will be put only once into the 'configure' file. It keeps the size of
+ dnl the 'configure' file down, and avoids redundant output when 'configure'
+ dnl is run.
+ dnl The drawback is that the checks cannot be conditionalized. If you write
+ dnl   if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
+ dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
+ dnl empty, and the check will be inserted before the body of the AC_DEFUNed
+ dnl function.
+ 
+ dnl The original code implemented AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE
+ dnl in terms of AC_DEFUN and AC_REQUIRE. This implementation uses diversions to
+ dnl named sections DEFAULTS and INIT_PREPARE in order to check all requested
+ dnl headers at once, thus reducing the size of 'configure'. It is known to work
+ dnl with autoconf 2.57..2.62 at least . The size reduction is ca. 9%.
+ 
+ dnl Autoconf version 2.59 plus gnulib is required; this file is not needed
+ dnl with Autoconf 2.60 or greater. But note that autoconf's implementation of
+ dnl AC_CHECK_DECLS_ONCE expects a comma-separated list of symbols as first
+ dnl argument!
+ AC_PREREQ([2.59])
+ 
+ # AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
+ # AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
+ AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
+   :
+   m4_foreach_w([gl_HEADER_NAME], [$1], [
+     AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
+                                                  [./-], [___])), [
+       m4_divert_text([INIT_PREPARE],
+         [gl_header_list="$gl_header_list gl_HEADER_NAME"])
+       gl_HEADERS_EXPANSION
+       AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_HEADER_NAME])),
+         [Define to 1 if you have the <]m4_defn([gl_HEADER_NAME])[> header file.])
+     ])
+     AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
+                                                    [./-], [___])))
+   ])
+ ])
+ m4_define([gl_HEADERS_EXPANSION], [
+   m4_divert_text([DEFAULTS], [gl_header_list=])
+   AC_CHECK_HEADERS([$gl_header_list])
+   m4_define([gl_HEADERS_EXPANSION], [])
+ ])
+ 
+ # AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
+ # AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
+ AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
+   :
+   m4_foreach_w([gl_FUNC_NAME], [$1], [
+     AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [
+       m4_divert_text([INIT_PREPARE],
+         [gl_func_list="$gl_func_list gl_FUNC_NAME"])
+       gl_FUNCS_EXPANSION
+       AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_FUNC_NAME])),
+         [Define to 1 if you have the `]m4_defn([gl_FUNC_NAME])[' function.])
+     ])
+     AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]))
+   ])
+ ])
+ m4_define([gl_FUNCS_EXPANSION], [
+   m4_divert_text([DEFAULTS], [gl_func_list=])
+   AC_CHECK_FUNCS([$gl_func_list])
+   m4_define([gl_FUNCS_EXPANSION], [])
+ ])
+ 
+ # AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
+ # AC_CHECK_DECLS(DECL1, DECL2, ...).
+ AC_DEFUN([AC_CHECK_DECLS_ONCE], [
+   :
+   m4_foreach_w([gl_DECL_NAME], [$1], [
+     AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [
+       AC_CHECK_DECLS(m4_defn([gl_DECL_NAME]))
+     ])
+     AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]))
+   ])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/po.m4 texinfo-4.13/gnulib/m4/po.m4
*** texinfo-4.12/gnulib/m4/po.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/po.m4	Tue Dec 25 15:57:18 2007
***************
*** 0 ****
--- 1,449 ----
+ # po.m4 serial 15 (gettext-0.17)
+ dnl Copyright (C) 1995-2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ dnl
+ dnl This file can can be used in projects which are not available under
+ dnl the GNU General Public License or the GNU Library General Public
+ dnl License but which still want to provide support for the GNU gettext
+ dnl functionality.
+ dnl Please note that the actual code of the GNU gettext library is covered
+ dnl by the GNU Library General Public License, and the rest of the GNU
+ dnl gettext package package is covered by the GNU General Public License.
+ dnl They are *not* in the public domain.
+ 
+ dnl Authors:
+ dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+ dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+ 
+ AC_PREREQ(2.50)
+ 
+ dnl Checks for all prerequisites of the po subdirectory.
+ AC_DEFUN([AM_PO_SUBDIRS],
+ [
+   AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+   AC_REQUIRE([AC_PROG_INSTALL])dnl
+   AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+   AC_REQUIRE([AM_NLS])dnl
+ 
+   dnl Release version of the gettext macros. This is used to ensure that
+   dnl the gettext macros and po/Makefile.in.in are in sync.
+   AC_SUBST([GETTEXT_MACRO_VERSION], [0.17])
+ 
+   dnl Perform the following tests also if --disable-nls has been given,
+   dnl because they are needed for "make dist" to work.
+ 
+   dnl Search for GNU msgfmt in the PATH.
+   dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+   dnl The second test excludes FreeBSD msgfmt.
+   AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+     [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+      (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+     :)
+   AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+ 
+   dnl Test whether it is GNU msgfmt >= 0.15.
+ changequote(,)dnl
+   case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+     '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+     *) MSGFMT_015=$MSGFMT ;;
+   esac
+ changequote([,])dnl
+   AC_SUBST([MSGFMT_015])
+ changequote(,)dnl
+   case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+     '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+     *) GMSGFMT_015=$GMSGFMT ;;
+   esac
+ changequote([,])dnl
+   AC_SUBST([GMSGFMT_015])
+ 
+   dnl Search for GNU xgettext 0.12 or newer in the PATH.
+   dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+   dnl The second test excludes FreeBSD xgettext.
+   AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+     [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+      (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+     :)
+   dnl Remove leftover from FreeBSD xgettext call.
+   rm -f messages.po
+ 
+   dnl Test whether it is GNU xgettext >= 0.15.
+ changequote(,)dnl
+   case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+     '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+     *) XGETTEXT_015=$XGETTEXT ;;
+   esac
+ changequote([,])dnl
+   AC_SUBST([XGETTEXT_015])
+ 
+   dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+   AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+     [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
+ 
+   dnl Installation directories.
+   dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
+   dnl have to define it here, so that it can be used in po/Makefile.
+   test -n "$localedir" || localedir='${datadir}/locale'
+   AC_SUBST([localedir])
+ 
+   dnl Support for AM_XGETTEXT_OPTION.
+   test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+   AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
+ 
+   AC_CONFIG_COMMANDS([po-directories], [[
+     for ac_file in $CONFIG_FILES; do
+       # Support "outfile[:infile[:infile...]]"
+       case "$ac_file" in
+         *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+       esac
+       # PO directories have a Makefile.in generated from Makefile.in.in.
+       case "$ac_file" in */Makefile.in)
+         # Adjust a relative srcdir.
+         ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+         ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+         ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+         # In autoconf-2.13 it is called $ac_given_srcdir.
+         # In autoconf-2.50 it is called $srcdir.
+         test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+         case "$ac_given_srcdir" in
+           .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+           /*) top_srcdir="$ac_given_srcdir" ;;
+           *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+         esac
+         # Treat a directory as a PO directory if and only if it has a
+         # POTFILES.in file. This allows packages to have multiple PO
+         # directories under different names or in different locations.
+         if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+           rm -f "$ac_dir/POTFILES"
+           test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+           cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+           POMAKEFILEDEPS="POTFILES.in"
+           # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+           # on $ac_dir but don't depend on user-specified configuration
+           # parameters.
+           if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+             # The LINGUAS file contains the set of available languages.
+             if test -n "$OBSOLETE_ALL_LINGUAS"; then
+               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+             fi
+             ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+             # Hide the ALL_LINGUAS assigment from automake < 1.5.
+             eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+           else
+             # The set of available languages was given in configure.in.
+             # Hide the ALL_LINGUAS assigment from automake < 1.5.
+             eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+           fi
+           # Compute POFILES
+           # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+           # Compute UPDATEPOFILES
+           # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+           # Compute DUMMYPOFILES
+           # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+           # Compute GMOFILES
+           # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+           case "$ac_given_srcdir" in
+             .) srcdirpre= ;;
+             *) srcdirpre='$(srcdir)/' ;;
+           esac
+           POFILES=
+           UPDATEPOFILES=
+           DUMMYPOFILES=
+           GMOFILES=
+           for lang in $ALL_LINGUAS; do
+             POFILES="$POFILES $srcdirpre$lang.po"
+             UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+             DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+             GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+           done
+           # CATALOGS depends on both $ac_dir and the user's LINGUAS
+           # environment variable.
+           INST_LINGUAS=
+           if test -n "$ALL_LINGUAS"; then
+             for presentlang in $ALL_LINGUAS; do
+               useit=no
+               if test "%UNSET%" != "$LINGUAS"; then
+                 desiredlanguages="$LINGUAS"
+               else
+                 desiredlanguages="$ALL_LINGUAS"
+               fi
+               for desiredlang in $desiredlanguages; do
+                 # Use the presentlang catalog if desiredlang is
+                 #   a. equal to presentlang, or
+                 #   b. a variant of presentlang (because in this case,
+                 #      presentlang can be used as a fallback for messages
+                 #      which are not translated in the desiredlang catalog).
+                 case "$desiredlang" in
+                   "$presentlang"*) useit=yes;;
+                 esac
+               done
+               if test $useit = yes; then
+                 INST_LINGUAS="$INST_LINGUAS $presentlang"
+               fi
+             done
+           fi
+           CATALOGS=
+           if test -n "$INST_LINGUAS"; then
+             for lang in $INST_LINGUAS; do
+               CATALOGS="$CATALOGS $lang.gmo"
+             done
+           fi
+           test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+           sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+           for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+             if test -f "$f"; then
+               case "$f" in
+                 *.orig | *.bak | *~) ;;
+                 *) cat "$f" >> "$ac_dir/Makefile" ;;
+               esac
+             fi
+           done
+         fi
+         ;;
+       esac
+     done]],
+    [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+     # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+     # from automake < 1.5.
+     eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+     # Capture the value of LINGUAS because we need it to compute CATALOGS.
+     LINGUAS="${LINGUAS-%UNSET%}"
+    ])
+ ])
+ 
+ dnl Postprocesses a Makefile in a directory containing PO files.
+ AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+ [
+   # When this code is run, in config.status, two variables have already been
+   # set:
+   # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+   # - LINGUAS is the value of the environment variable LINGUAS at configure
+   #   time.
+ 
+ changequote(,)dnl
+   # Adjust a relative srcdir.
+   ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+   ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+   ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+   # In autoconf-2.13 it is called $ac_given_srcdir.
+   # In autoconf-2.50 it is called $srcdir.
+   test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+   case "$ac_given_srcdir" in
+     .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+     /*) top_srcdir="$ac_given_srcdir" ;;
+     *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
+   esac
+ 
+   # Find a way to echo strings without interpreting backslash.
+   if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+     gt_echo='echo'
+   else
+     if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+       gt_echo='printf %s\n'
+     else
+       echo_func () {
+         cat <<EOT
+ $*
+ EOT
+       }
+       gt_echo='echo_func'
+     fi
+   fi
+ 
+   # A sed script that extracts the value of VARIABLE from a Makefile.
+   sed_x_variable='
+ # Test if the hold space is empty.
+ x
+ s/P/P/
+ x
+ ta
+ # Yes it was empty. Look if we have the expected variable definition.
+ /^[	 ]*VARIABLE[	 ]*=/{
+   # Seen the first line of the variable definition.
+   s/^[	 ]*VARIABLE[	 ]*=//
+   ba
+ }
+ bd
+ :a
+ # Here we are processing a line from the variable definition.
+ # Remove comment, more precisely replace it with a space.
+ s/#.*$/ /
+ # See if the line ends in a backslash.
+ tb
+ :b
+ s/\\$//
+ # Print the line, without the trailing backslash.
+ p
+ tc
+ # There was no trailing backslash. The end of the variable definition is
+ # reached. Clear the hold space.
+ s/^.*$//
+ x
+ bd
+ :c
+ # A trailing backslash means that the variable definition continues in the
+ # next line. Put a nonempty string into the hold space to indicate this.
+ s/^.*$/P/
+ x
+ :d
+ '
+ changequote([,])dnl
+ 
+   # Set POTFILES to the value of the Makefile variable POTFILES.
+   sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
+   POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+   # Compute POTFILES_DEPS as
+   #   $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+   POTFILES_DEPS=
+   for file in $POTFILES; do
+     POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+   done
+   POMAKEFILEDEPS=""
+ 
+   if test -n "$OBSOLETE_ALL_LINGUAS"; then
+     test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+   fi
+   if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+     # The LINGUAS file contains the set of available languages.
+     ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+     POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+   else
+     # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+     sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
+     ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+   fi
+   # Hide the ALL_LINGUAS assigment from automake < 1.5.
+   eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+   # Compute POFILES
+   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+   # Compute UPDATEPOFILES
+   # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+   # Compute DUMMYPOFILES
+   # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+   # Compute GMOFILES
+   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+   # Compute PROPERTIESFILES
+   # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+   # Compute CLASSFILES
+   # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+   # Compute QMFILES
+   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+   # Compute MSGFILES
+   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+   # Compute RESOURCESDLLFILES
+   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+   case "$ac_given_srcdir" in
+     .) srcdirpre= ;;
+     *) srcdirpre='$(srcdir)/' ;;
+   esac
+   POFILES=
+   UPDATEPOFILES=
+   DUMMYPOFILES=
+   GMOFILES=
+   PROPERTIESFILES=
+   CLASSFILES=
+   QMFILES=
+   MSGFILES=
+   RESOURCESDLLFILES=
+   for lang in $ALL_LINGUAS; do
+     POFILES="$POFILES $srcdirpre$lang.po"
+     UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+     DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+     GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+     PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
+     CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+     QMFILES="$QMFILES $srcdirpre$lang.qm"
+     frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+     MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+     frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+     RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+   done
+   # CATALOGS depends on both $ac_dir and the user's LINGUAS
+   # environment variable.
+   INST_LINGUAS=
+   if test -n "$ALL_LINGUAS"; then
+     for presentlang in $ALL_LINGUAS; do
+       useit=no
+       if test "%UNSET%" != "$LINGUAS"; then
+         desiredlanguages="$LINGUAS"
+       else
+         desiredlanguages="$ALL_LINGUAS"
+       fi
+       for desiredlang in $desiredlanguages; do
+         # Use the presentlang catalog if desiredlang is
+         #   a. equal to presentlang, or
+         #   b. a variant of presentlang (because in this case,
+         #      presentlang can be used as a fallback for messages
+         #      which are not translated in the desiredlang catalog).
+         case "$desiredlang" in
+           "$presentlang"*) useit=yes;;
+         esac
+       done
+       if test $useit = yes; then
+         INST_LINGUAS="$INST_LINGUAS $presentlang"
+       fi
+     done
+   fi
+   CATALOGS=
+   JAVACATALOGS=
+   QTCATALOGS=
+   TCLCATALOGS=
+   CSHARPCATALOGS=
+   if test -n "$INST_LINGUAS"; then
+     for lang in $INST_LINGUAS; do
+       CATALOGS="$CATALOGS $lang.gmo"
+       JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+       QTCATALOGS="$QTCATALOGS $lang.qm"
+       frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+       TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+       frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+       CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+     done
+   fi
+ 
+   sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+   if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+     # Add dependencies that cannot be formulated as a simple suffix rule.
+     for lang in $ALL_LINGUAS; do
+       frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+       cat >> "$ac_file.tmp" <<EOF
+ $frobbedlang.msg: $lang.po
+ 	@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+ 	\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+ EOF
+     done
+   fi
+   if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+     # Add dependencies that cannot be formulated as a simple suffix rule.
+     for lang in $ALL_LINGUAS; do
+       frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+       cat >> "$ac_file.tmp" <<EOF
+ $frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+ 	@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+ 	\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+ EOF
+     done
+   fi
+   if test -n "$POMAKEFILEDEPS"; then
+     cat >> "$ac_file.tmp" <<EOF
+ Makefile: $POMAKEFILEDEPS
+ EOF
+   fi
+   mv "$ac_file.tmp" "$ac_file"
+ ])
+ 
+ dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
+ AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
+ [
+   XGETTEXT_EXTRA_OPTIONS=
+ ])
+ 
+ dnl Registers an option to be passed to xgettext in the po subdirectory.
+ AC_DEFUN([AM_XGETTEXT_OPTION],
+ [
+   AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
+   XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/progtest.m4 texinfo-4.13/gnulib/m4/progtest.m4
*** texinfo-4.12/gnulib/m4/progtest.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/progtest.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,92 ----
+ # progtest.m4 serial 4 (gettext-0.14.2)
+ dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ dnl
+ dnl This file can can be used in projects which are not available under
+ dnl the GNU General Public License or the GNU Library General Public
+ dnl License but which still want to provide support for the GNU gettext
+ dnl functionality.
+ dnl Please note that the actual code of the GNU gettext library is covered
+ dnl by the GNU Library General Public License, and the rest of the GNU
+ dnl gettext package package is covered by the GNU General Public License.
+ dnl They are *not* in the public domain.
+ 
+ dnl Authors:
+ dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
+ 
+ AC_PREREQ(2.50)
+ 
+ # Search path for a program which passes the given test.
+ 
+ dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+ dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+ AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+ [
+ # Prepare PATH_SEPARATOR.
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+   echo "#! /bin/sh" >conf$$.sh
+   echo  "exit 0"   >>conf$$.sh
+   chmod +x conf$$.sh
+   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+     PATH_SEPARATOR=';'
+   else
+     PATH_SEPARATOR=:
+   fi
+   rm -f conf$$.sh
+ fi
+ 
+ # Find out how to test for executable files. Don't use a zero-byte file,
+ # as systems may use methods other than mode bits to determine executability.
+ cat >conf$$.file <<_ASEOF
+ #! /bin/sh
+ exit 0
+ _ASEOF
+ chmod +x conf$$.file
+ if test -x conf$$.file >/dev/null 2>&1; then
+   ac_executable_p="test -x"
+ else
+   ac_executable_p="test -f"
+ fi
+ rm -f conf$$.file
+ 
+ # Extract the first word of "$2", so it can be a program name with args.
+ set dummy $2; ac_word=[$]2
+ AC_MSG_CHECKING([for $ac_word])
+ AC_CACHE_VAL(ac_cv_path_$1,
+ [case "[$]$1" in
+   [[\\/]]* | ?:[[\\/]]*)
+     ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+     ;;
+   *)
+     ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+     for ac_dir in ifelse([$5], , $PATH, [$5]); do
+       IFS="$ac_save_IFS"
+       test -z "$ac_dir" && ac_dir=.
+       for ac_exec_ext in '' $ac_executable_extensions; do
+         if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+           echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
+           if [$3]; then
+             ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+             break 2
+           fi
+         fi
+       done
+     done
+     IFS="$ac_save_IFS"
+ dnl If no 4th arg is given, leave the cache variable unset,
+ dnl so AC_PATH_PROGS will keep looking.
+ ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+ ])dnl
+     ;;
+ esac])dnl
+ $1="$ac_cv_path_$1"
+ if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+   AC_MSG_RESULT([$]$1)
+ else
+   AC_MSG_RESULT(no)
+ fi
+ AC_SUBST($1)dnl
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/setenv.m4 texinfo-4.13/gnulib/m4/setenv.m4
*** texinfo-4.12/gnulib/m4/setenv.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/setenv.m4	Wed Feb 27 10:32:22 2008
***************
*** 0 ****
--- 1,71 ----
+ # setenv.m4 serial 10
+ dnl Copyright (C) 2001-2004, 2006-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_SETENV],
+ [
+   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+   AC_CHECK_FUNCS_ONCE([setenv])
+   if test $ac_cv_func_setenv = no; then
+     HAVE_SETENV=0
+     AC_LIBOBJ([setenv])
+     gl_PREREQ_SETENV
+   fi
+ ])
+ 
+ # Like gl_FUNC_SETENV, except prepare for separate compilation (no AC_LIBOBJ).
+ AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
+ [
+   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+   AC_CHECK_FUNCS_ONCE([setenv])
+   if test $ac_cv_func_setenv = no; then
+     HAVE_SETENV=0
+   fi
+   gl_PREREQ_SETENV
+ ])
+ 
+ AC_DEFUN([gl_FUNC_UNSETENV],
+ [
+   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+   AC_CHECK_FUNCS([unsetenv])
+   if test $ac_cv_func_unsetenv = no; then
+     HAVE_UNSETENV=0
+     AC_LIBOBJ([unsetenv])
+     gl_PREREQ_UNSETENV
+   else
+     AC_CACHE_CHECK([for unsetenv() return type], gt_cv_func_unsetenv_ret,
+       [AC_TRY_COMPILE([#include <stdlib.h>
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ #if defined(__STDC__) || defined(__cplusplus)
+ int unsetenv (const char *name);
+ #else
+ int unsetenv();
+ #endif
+ ], , gt_cv_func_unsetenv_ret='int', gt_cv_func_unsetenv_ret='void')])
+     if test $gt_cv_func_unsetenv_ret = 'void'; then
+       VOID_UNSETENV=1
+     fi
+   fi
+ ])
+ 
+ # Prerequisites of lib/setenv.c.
+ AC_DEFUN([gl_PREREQ_SETENV],
+ [
+   AC_REQUIRE([AC_FUNC_ALLOCA])
+   AC_REQUIRE([gl_ENVIRON])
+   AC_CHECK_HEADERS_ONCE(unistd.h)
+   AC_CHECK_HEADERS(search.h)
+   AC_CHECK_FUNCS(tsearch)
+ ])
+ 
+ # Prerequisites of lib/unsetenv.c.
+ AC_DEFUN([gl_PREREQ_UNSETENV],
+ [
+   AC_REQUIRE([gl_ENVIRON])
+   AC_CHECK_HEADERS_ONCE(unistd.h)
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/stdbool.m4 texinfo-4.13/gnulib/m4/stdbool.m4
*** texinfo-4.12/gnulib/m4/stdbool.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/stdbool.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,115 ----
+ # Check for stdbool.h that conforms to C99.
+ 
+ dnl Copyright (C) 2002-2006 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ # Prepare for substituting <stdbool.h> if it is not supported.
+ 
+ AC_DEFUN([AM_STDBOOL_H],
+ [
+   AC_REQUIRE([AC_HEADER_STDBOOL])
+ 
+   # Define two additional variables used in the Makefile substitution.
+ 
+   if test "$ac_cv_header_stdbool_h" = yes; then
+     STDBOOL_H=''
+   else
+     STDBOOL_H='stdbool.h'
+   fi
+   AC_SUBST([STDBOOL_H])
+ 
+   if test "$ac_cv_type__Bool" = yes; then
+     HAVE__BOOL=1
+   else
+     HAVE__BOOL=0
+   fi
+   AC_SUBST([HAVE__BOOL])
+ ])
+ 
+ # AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future.
+ AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H])
+ 
+ # This macro is only needed in autoconf <= 2.59.  Newer versions of autoconf
+ # have this macro built-in.
+ 
+ AC_DEFUN([AC_HEADER_STDBOOL],
+   [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
+      [ac_cv_header_stdbool_h],
+      [AC_TRY_COMPILE(
+ 	[
+ 	  #include <stdbool.h>
+ 	  #ifndef bool
+ 	   "error: bool is not defined"
+ 	  #endif
+ 	  #ifndef false
+ 	   "error: false is not defined"
+ 	  #endif
+ 	  #if false
+ 	   "error: false is not 0"
+ 	  #endif
+ 	  #ifndef true
+ 	   "error: true is not defined"
+ 	  #endif
+ 	  #if true != 1
+ 	   "error: true is not 1"
+ 	  #endif
+ 	  #ifndef __bool_true_false_are_defined
+ 	   "error: __bool_true_false_are_defined is not defined"
+ 	  #endif
+ 
+ 	  struct s { _Bool s: 1; _Bool t; } s;
+ 
+ 	  char a[true == 1 ? 1 : -1];
+ 	  char b[false == 0 ? 1 : -1];
+ 	  char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+ 	  char d[(bool) 0.5 == true ? 1 : -1];
+ 	  bool e = &s;
+ 	  char f[(_Bool) 0.0 == false ? 1 : -1];
+ 	  char g[true];
+ 	  char h[sizeof (_Bool)];
+ 	  char i[sizeof s.t];
+ 	  enum { j = false, k = true, l = false * true, m = true * 256 };
+ 	  _Bool n[m];
+ 	  char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+ 	  char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+ 	  #if defined __xlc__ || defined __GNUC__
+ 	   /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0
+ 	      reported by James Lemley on 2005-10-05; see
+ 	      http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+ 	      This test is not quite right, since xlc is allowed to
+ 	      reject this program, as the initializer for xlcbug is
+ 	      not one of the forms that C requires support for.
+ 	      However, doing the test right would require a run-time
+ 	      test, and that would make cross-compilation harder.
+ 	      Let us hope that IBM fixes the xlc bug, and also adds
+ 	      support for this kind of constant expression.  In the
+ 	      meantime, this test will reject xlc, which is OK, since
+ 	      our stdbool.h substitute should suffice.  We also test
+ 	      this with GCC, where it should work, to detect more
+ 	      quickly whether someone messes up the test in the
+ 	      future.  */
+ 	   char digs[] = "0123456789";
+ 	   int xlcbug = 1 / (&(digs + 5)[-2 + (bool) 1] == &digs[4] ? 1 : -1);
+ 	  #endif
+ 	  /* Catch a bug in an HP-UX C compiler.  See
+ 	     http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ 	     http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ 	   */
+ 	  _Bool q = true;
+ 	  _Bool *pq = &q;
+ 	],
+ 	[
+ 	  *pq |= q;
+ 	  *pq |= ! q;
+ 	  /* Refer to every declared value, to avoid compiler optimizations.  */
+ 	  return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+ 		  + !m + !n + !o + !p + !q + !pq);
+ 	],
+ 	[ac_cv_header_stdbool_h=yes],
+ 	[ac_cv_header_stdbool_h=no])])
+    AC_CHECK_TYPES([_Bool])
+    if test $ac_cv_header_stdbool_h = yes; then
+      AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.])
+    fi])
diff -Nrc2 texinfo-4.12/gnulib/m4/stdint.m4 texinfo-4.13/gnulib/m4/stdint.m4
*** texinfo-4.12/gnulib/m4/stdint.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/stdint.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,395 ----
+ # stdint.m4 serial 31
+ dnl Copyright (C) 2001-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Paul Eggert and Bruno Haible.
+ dnl Test whether <stdint.h> is supported or must be substituted.
+ 
+ AC_DEFUN([gl_STDINT_H],
+ [
+   AC_PREREQ(2.59)dnl
+ 
+   dnl Check for long long int and unsigned long long int.
+   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+   if test $ac_cv_type_long_long_int = yes; then
+     HAVE_LONG_LONG_INT=1
+   else
+     HAVE_LONG_LONG_INT=0
+   fi
+   AC_SUBST([HAVE_LONG_LONG_INT])
+   AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+   if test $ac_cv_type_unsigned_long_long_int = yes; then
+     HAVE_UNSIGNED_LONG_LONG_INT=1
+   else
+     HAVE_UNSIGNED_LONG_LONG_INT=0
+   fi
+   AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT])
+ 
+   dnl Check for <inttypes.h>.
+   dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h.
+   if test $ac_cv_header_inttypes_h = yes; then
+     HAVE_INTTYPES_H=1
+   else
+     HAVE_INTTYPES_H=0
+   fi
+   AC_SUBST([HAVE_INTTYPES_H])
+ 
+   dnl Check for <sys/types.h>.
+   dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h.
+   if test $ac_cv_header_sys_types_h = yes; then
+     HAVE_SYS_TYPES_H=1
+   else
+     HAVE_SYS_TYPES_H=0
+   fi
+   AC_SUBST([HAVE_SYS_TYPES_H])
+ 
+   gl_CHECK_NEXT_HEADERS([stdint.h])
+   if test $ac_cv_header_stdint_h = yes; then
+     HAVE_STDINT_H=1
+   else
+     HAVE_STDINT_H=0
+   fi
+   AC_SUBST([HAVE_STDINT_H])
+ 
+   dnl Now see whether we need a substitute <stdint.h>.
+   if test $ac_cv_header_stdint_h = yes; then
+     AC_CACHE_CHECK([whether stdint.h conforms to C99],
+       [gl_cv_header_working_stdint_h],
+       [gl_cv_header_working_stdint_h=no
+        AC_COMPILE_IFELSE([
+          AC_LANG_PROGRAM([[
+ #define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
+ #define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
+ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+ #include <stdint.h>
+ /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
+ #if !(defined WCHAR_MIN && defined WCHAR_MAX)
+ #error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+ #endif
+ ]
+ gl_STDINT_INCLUDES
+ [
+ #ifdef INT8_MAX
+ int8_t a1 = INT8_MAX;
+ int8_t a1min = INT8_MIN;
+ #endif
+ #ifdef INT16_MAX
+ int16_t a2 = INT16_MAX;
+ int16_t a2min = INT16_MIN;
+ #endif
+ #ifdef INT32_MAX
+ int32_t a3 = INT32_MAX;
+ int32_t a3min = INT32_MIN;
+ #endif
+ #ifdef INT64_MAX
+ int64_t a4 = INT64_MAX;
+ int64_t a4min = INT64_MIN;
+ #endif
+ #ifdef UINT8_MAX
+ uint8_t b1 = UINT8_MAX;
+ #else
+ typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+ #endif
+ #ifdef UINT16_MAX
+ uint16_t b2 = UINT16_MAX;
+ #endif
+ #ifdef UINT32_MAX
+ uint32_t b3 = UINT32_MAX;
+ #endif
+ #ifdef UINT64_MAX
+ uint64_t b4 = UINT64_MAX;
+ #endif
+ int_least8_t c1 = INT8_C (0x7f);
+ int_least8_t c1max = INT_LEAST8_MAX;
+ int_least8_t c1min = INT_LEAST8_MIN;
+ int_least16_t c2 = INT16_C (0x7fff);
+ int_least16_t c2max = INT_LEAST16_MAX;
+ int_least16_t c2min = INT_LEAST16_MIN;
+ int_least32_t c3 = INT32_C (0x7fffffff);
+ int_least32_t c3max = INT_LEAST32_MAX;
+ int_least32_t c3min = INT_LEAST32_MIN;
+ int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+ int_least64_t c4max = INT_LEAST64_MAX;
+ int_least64_t c4min = INT_LEAST64_MIN;
+ uint_least8_t d1 = UINT8_C (0xff);
+ uint_least8_t d1max = UINT_LEAST8_MAX;
+ uint_least16_t d2 = UINT16_C (0xffff);
+ uint_least16_t d2max = UINT_LEAST16_MAX;
+ uint_least32_t d3 = UINT32_C (0xffffffff);
+ uint_least32_t d3max = UINT_LEAST32_MAX;
+ uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+ uint_least64_t d4max = UINT_LEAST64_MAX;
+ int_fast8_t e1 = INT_FAST8_MAX;
+ int_fast8_t e1min = INT_FAST8_MIN;
+ int_fast16_t e2 = INT_FAST16_MAX;
+ int_fast16_t e2min = INT_FAST16_MIN;
+ int_fast32_t e3 = INT_FAST32_MAX;
+ int_fast32_t e3min = INT_FAST32_MIN;
+ int_fast64_t e4 = INT_FAST64_MAX;
+ int_fast64_t e4min = INT_FAST64_MIN;
+ uint_fast8_t f1 = UINT_FAST8_MAX;
+ uint_fast16_t f2 = UINT_FAST16_MAX;
+ uint_fast32_t f3 = UINT_FAST32_MAX;
+ uint_fast64_t f4 = UINT_FAST64_MAX;
+ #ifdef INTPTR_MAX
+ intptr_t g = INTPTR_MAX;
+ intptr_t gmin = INTPTR_MIN;
+ #endif
+ #ifdef UINTPTR_MAX
+ uintptr_t h = UINTPTR_MAX;
+ #endif
+ intmax_t i = INTMAX_MAX;
+ uintmax_t j = UINTMAX_MAX;
+ 
+ #include <limits.h> /* for CHAR_BIT */
+ #define TYPE_MINIMUM(t) \
+   ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+ #define TYPE_MAXIMUM(t) \
+   ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
+ struct s {
+   int check_PTRDIFF:
+       PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+       && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+       ? 1 : -1;
+   /* Detect bug in FreeBSD 6.0 / ia64.  */
+   int check_SIG_ATOMIC:
+       SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+       && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+       ? 1 : -1;
+   int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+   int check_WCHAR:
+       WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+       && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+       ? 1 : -1;
+   /* Detect bug in mingw.  */
+   int check_WINT:
+       WINT_MIN == TYPE_MINIMUM (wint_t)
+       && WINT_MAX == TYPE_MAXIMUM (wint_t)
+       ? 1 : -1;
+ 
+   /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
+   int check_UINT8_C:
+         (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+   int check_UINT16_C:
+         (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+ 
+   /* Detect bugs in OpenBSD 3.9 stdint.h.  */
+ #ifdef UINT8_MAX
+   int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+ #endif
+ #ifdef UINT16_MAX
+   int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+ #endif
+ #ifdef UINT32_MAX
+   int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+ #endif
+ #ifdef UINT64_MAX
+   int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+ #endif
+   int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+   int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+   int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+   int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+   int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+   int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+   int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+   int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+   int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+   int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+   int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+ };
+          ]])],
+          [gl_cv_header_working_stdint_h=yes])])
+   fi
+   if test "$gl_cv_header_working_stdint_h" = yes; then
+     STDINT_H=
+   else
+     dnl Check for <sys/inttypes.h>, and for
+     dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5).
+     AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h])
+     if test $ac_cv_header_sys_inttypes_h = yes; then
+       HAVE_SYS_INTTYPES_H=1
+     else
+       HAVE_SYS_INTTYPES_H=0
+     fi
+     AC_SUBST([HAVE_SYS_INTTYPES_H])
+     if test $ac_cv_header_sys_bitypes_h = yes; then
+       HAVE_SYS_BITYPES_H=1
+     else
+       HAVE_SYS_BITYPES_H=0
+     fi
+     AC_SUBST([HAVE_SYS_BITYPES_H])
+ 
+     dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
+     dnl character support).
+     AC_CHECK_HEADERS_ONCE([wchar.h])
+ 
+     gl_STDINT_TYPE_PROPERTIES
+     STDINT_H=stdint.h
+   fi
+   AC_SUBST(STDINT_H)
+ ])
+ 
+ dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES)
+ dnl Determine the size of each of the given types in bits.
+ AC_DEFUN([gl_STDINT_BITSIZEOF],
+ [
+   dnl Use a shell loop, to avoid bloating configure, and
+   dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+   dnl   config.h.in,
+   dnl - extra AC_SUBST calls, so that the right substitutions are made.
+   m4_foreach_w([gltype], [$1],
+     [AH_TEMPLATE([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+        [Define to the number of bits in type ']gltype['.])])
+   for gltype in $1 ; do
+     AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
+       [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT],
+          [$2
+ #include <limits.h>], [result=unknown])
+        eval gl_cv_bitsizeof_${gltype}=\$result
+       ])
+     eval result=\$gl_cv_bitsizeof_${gltype}
+     if test $result = unknown; then
+       dnl Use a nonempty default, because some compilers, such as IRIX 5 cc,
+       dnl do a syntax check even on unused #if conditions and give an error
+       dnl on valid C code like this:
+       dnl   #if 0
+       dnl   # if  > 32
+       dnl   # endif
+       dnl   #endif
+       result=0
+     fi
+     GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+     AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result])
+     eval BITSIZEOF_${GLTYPE}=\$result
+   done
+   m4_foreach_w([gltype], [$1],
+     [AC_SUBST([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+ ])
+ 
+ dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES)
+ dnl Determine the signedness of each of the given types.
+ dnl Define HAVE_SIGNED_TYPE if type is signed.
+ AC_DEFUN([gl_CHECK_TYPES_SIGNED],
+ [
+   dnl Use a shell loop, to avoid bloating configure, and
+   dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+   dnl   config.h.in,
+   dnl - extra AC_SUBST calls, so that the right substitutions are made.
+   m4_foreach_w([gltype], [$1],
+     [AH_TEMPLATE([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+        [Define to 1 if ']gltype[' is a signed integer type.])])
+   for gltype in $1 ; do
+     AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed],
+       [AC_COMPILE_IFELSE(
+          [AC_LANG_PROGRAM([$2[
+             int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])],
+          result=yes, result=no)
+        eval gl_cv_type_${gltype}_signed=\$result
+       ])
+     eval result=\$gl_cv_type_${gltype}_signed
+     GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+     if test "$result" = yes; then
+       AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], 1)
+       eval HAVE_SIGNED_${GLTYPE}=1
+     else
+       eval HAVE_SIGNED_${GLTYPE}=0
+     fi
+   done
+   m4_foreach_w([gltype], [$1],
+     [AC_SUBST([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+ ])
+ 
+ dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES)
+ dnl Determine the suffix to use for integer constants of the given types.
+ dnl Define t_SUFFIX for each such type.
+ AC_DEFUN([gl_INTEGER_TYPE_SUFFIX],
+ [
+   dnl Use a shell loop, to avoid bloating configure, and
+   dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+   dnl   config.h.in,
+   dnl - extra AC_SUBST calls, so that the right substitutions are made.
+   m4_foreach_w([gltype], [$1],
+     [AH_TEMPLATE(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX],
+        [Define to l, ll, u, ul, ull, etc., as suitable for
+         constants of type ']gltype['.])])
+   for gltype in $1 ; do
+     AC_CACHE_CHECK([for $gltype integer literal suffix],
+       [gl_cv_type_${gltype}_suffix],
+       [eval gl_cv_type_${gltype}_suffix=no
+        eval result=\$gl_cv_type_${gltype}_signed
+        if test "$result" = yes; then
+          glsufu=
+        else
+          glsufu=u
+        fi
+        for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+          case $glsuf in
+            '')  gltype1='int';;
+            l)	gltype1='long int';;
+            ll)	gltype1='long long int';;
+            i64)	gltype1='__int64';;
+            u)	gltype1='unsigned int';;
+            ul)	gltype1='unsigned long int';;
+            ull)	gltype1='unsigned long long int';;
+            ui64)gltype1='unsigned __int64';;
+          esac
+          AC_COMPILE_IFELSE(
+            [AC_LANG_PROGRAM([$2[
+               extern $gltype foo;
+               extern $gltype1 foo;]])],
+            [eval gl_cv_type_${gltype}_suffix=\$glsuf])
+          eval result=\$gl_cv_type_${gltype}_suffix
+          test "$result" != no && break
+        done])
+     GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+     eval result=\$gl_cv_type_${gltype}_suffix
+     test "$result" = no && result=
+     eval ${GLTYPE}_SUFFIX=\$result
+     AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], $result)
+   done
+   m4_foreach_w([gltype], [$1],
+     [AC_SUBST(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])])
+ ])
+ 
+ dnl gl_STDINT_INCLUDES
+ AC_DEFUN([gl_STDINT_INCLUDES],
+ [[
+   /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+      included before <wchar.h>.  */
+   #include <stddef.h>
+   #include <signal.h>
+   #if HAVE_WCHAR_H
+   # include <stdio.h>
+   # include <time.h>
+   # include <wchar.h>
+   #endif
+ ]])
+ 
+ dnl gl_STDINT_TYPE_PROPERTIES
+ dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t
+ dnl of interest to stdint.in.h.
+ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
+ [
+   gl_STDINT_BITSIZEOF([ptrdiff_t sig_atomic_t size_t wchar_t wint_t],
+     [gl_STDINT_INCLUDES])
+   gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t],
+     [gl_STDINT_INCLUDES])
+   gl_cv_type_ptrdiff_t_signed=yes
+   gl_cv_type_size_t_signed=no
+   gl_INTEGER_TYPE_SUFFIX([ptrdiff_t sig_atomic_t size_t wchar_t wint_t],
+     [gl_STDINT_INCLUDES])
+ ])
+ 
+ dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+ dnl Remove this when we can assume autoconf >= 2.61.
+ m4_ifdef([AC_COMPUTE_INT], [], [
+   AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+ ])
+ 
+ # Hey Emacs!
+ # Local Variables:
+ # indent-tabs-mode: nil
+ # End:
diff -Nrc2 texinfo-4.12/gnulib/m4/stdlib_h.m4 texinfo-4.13/gnulib/m4/stdlib_h.m4
*** texinfo-4.12/gnulib/m4/stdlib_h.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/stdlib_h.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,47 ----
+ # stdlib_h.m4 serial 7
+ dnl Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_STDLIB_H],
+ [
+   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+   gl_CHECK_NEXT_HEADERS([stdlib.h])
+ ])
+ 
+ AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
+ [
+   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+   GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+ ])
+ 
+ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
+ [
+   GNULIB_MALLOC_POSIX=0;  AC_SUBST([GNULIB_MALLOC_POSIX])
+   GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
+   GNULIB_CALLOC_POSIX=0;  AC_SUBST([GNULIB_CALLOC_POSIX])
+   GNULIB_GETSUBOPT=0;     AC_SUBST([GNULIB_GETSUBOPT])
+   GNULIB_MKDTEMP=0;       AC_SUBST([GNULIB_MKDTEMP])
+   GNULIB_MKSTEMP=0;       AC_SUBST([GNULIB_MKSTEMP])
+   GNULIB_PUTENV=0;        AC_SUBST([GNULIB_PUTENV])
+   GNULIB_RPMATCH=0;       AC_SUBST([GNULIB_RPMATCH])
+   GNULIB_SETENV=0;        AC_SUBST([GNULIB_SETENV])
+   GNULIB_STRTOD=0;        AC_SUBST([GNULIB_STRTOD])
+   GNULIB_UNSETENV=0;      AC_SUBST([GNULIB_UNSETENV])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_CALLOC_POSIX=1;    AC_SUBST([HAVE_CALLOC_POSIX])
+   HAVE_GETSUBOPT=1;       AC_SUBST([HAVE_GETSUBOPT])
+   HAVE_MALLOC_POSIX=1;    AC_SUBST([HAVE_MALLOC_POSIX])
+   HAVE_MKDTEMP=1;         AC_SUBST([HAVE_MKDTEMP])
+   HAVE_REALLOC_POSIX=1;   AC_SUBST([HAVE_REALLOC_POSIX])
+   HAVE_RPMATCH=1;         AC_SUBST([HAVE_RPMATCH])
+   HAVE_SETENV=1;          AC_SUBST([HAVE_SETENV])
+   HAVE_STRTOD=1;          AC_SUBST([HAVE_STRTOD])
+   HAVE_UNSETENV=1;        AC_SUBST([HAVE_UNSETENV])
+   REPLACE_MKSTEMP=0;      AC_SUBST([REPLACE_MKSTEMP])
+   REPLACE_PUTENV=0;       AC_SUBST([REPLACE_PUTENV])
+   REPLACE_STRTOD=0;       AC_SUBST([REPLACE_STRTOD])
+   VOID_UNSETENV=0;        AC_SUBST([VOID_UNSETENV])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/stpcpy.m4 texinfo-4.13/gnulib/m4/stpcpy.m4
*** texinfo-4.12/gnulib/m4/stpcpy.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/stpcpy.m4	Sun Jun  8 06:04:15 2008
***************
*** 0 ****
--- 1,26 ----
+ # stpcpy.m4 serial 6
+ dnl Copyright (C) 2002, 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_STPCPY],
+ [
+   dnl Persuade glibc <string.h> to declare stpcpy().
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ 
+   dnl The stpcpy() declaration in lib/string.in.h uses 'restrict'.
+   AC_REQUIRE([AC_C_RESTRICT])
+ 
+   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+   AC_REPLACE_FUNCS(stpcpy)
+   if test $ac_cv_func_stpcpy = no; then
+     HAVE_STPCPY=0
+     gl_PREREQ_STPCPY
+   fi
+ ])
+ 
+ # Prerequisites of lib/stpcpy.c.
+ AC_DEFUN([gl_PREREQ_STPCPY], [
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/strdup.m4 texinfo-4.13/gnulib/m4/strdup.m4
*** texinfo-4.12/gnulib/m4/strdup.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/strdup.m4	Mon Feb  5 08:26:09 2007
***************
*** 0 ****
--- 1,22 ----
+ # strdup.m4 serial 9
+ 
+ dnl Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+ dnl Foundation, Inc.
+ 
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_STRDUP],
+ [
+   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+   AC_REPLACE_FUNCS(strdup)
+   AC_CHECK_DECLS_ONCE(strdup)
+   if test $ac_cv_have_decl_strdup = no; then
+     HAVE_DECL_STRDUP=0
+   fi
+   gl_PREREQ_STRDUP
+ ])
+ 
+ # Prerequisites of lib/strdup.c.
+ AC_DEFUN([gl_PREREQ_STRDUP], [:])
diff -Nrc2 texinfo-4.12/gnulib/m4/strerror.m4 texinfo-4.13/gnulib/m4/strerror.m4
*** texinfo-4.12/gnulib/m4/strerror.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/strerror.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,47 ----
+ # strerror.m4 serial 8
+ dnl Copyright (C) 2002, 2007-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_STRERROR],
+ [
+   AC_REQUIRE([gl_FUNC_STRERROR_SEPARATE])
+   if test $gl_cv_func_working_strerror = no; then
+     AC_LIBOBJ([strerror])
+     AC_DEFINE_UNQUOTED([REPLACE_STRERROR], [$REPLACE_STRERROR],
+       [Define this to 1 if strerror is broken.])
+   fi
+ ])
+ 
+ # Like gl_FUNC_STRERROR, except prepare for separate compilation (no AC_LIBOBJ).
+ AC_DEFUN([gl_FUNC_STRERROR_SEPARATE],
+ [
+   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+   AC_CACHE_CHECK([for working strerror function],
+    [gl_cv_func_working_strerror],
+    [AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+ 	 [[#include <string.h>
+ 	 ]],
+ 	 [[return !*strerror (-2);]])],
+       [gl_cv_func_working_strerror=yes],
+       [gl_cv_func_working_strerror=no],
+       [dnl Assume crossbuild works if it compiles.
+        AC_COMPILE_IFELSE(
+ 	 [AC_LANG_PROGRAM(
+ 	    [[#include <string.h>
+ 	    ]],
+ 	    [[return !*strerror (-2);]])],
+ 	 [gl_cv_func_working_strerror=yes],
+ 	 [gl_cv_func_working_strerror=no])])])
+   if test $gl_cv_func_working_strerror = no ; then
+     REPLACE_STRERROR=1
+     gl_PREREQ_STRERROR
+   fi
+ ])
+ 
+ # Prerequisites of lib/strerror.c.
+ AC_DEFUN([gl_PREREQ_STRERROR], [
+   AC_CHECK_DECLS([strerror])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/string_h.m4 texinfo-4.13/gnulib/m4/string_h.m4
*** texinfo-4.12/gnulib/m4/string_h.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/string_h.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,89 ----
+ # Configure a GNU-like replacement for <string.h>.
+ 
+ # Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # serial 4
+ 
+ # Written by Paul Eggert.
+ 
+ AC_DEFUN([gl_HEADER_STRING_H],
+ [
+   dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+   dnl once only, before all statements that occur in other macros.
+   AC_REQUIRE([gl_HEADER_STRING_H_BODY])
+ ])
+ 
+ AC_DEFUN([gl_HEADER_STRING_H_BODY],
+ [
+   AC_REQUIRE([AC_C_RESTRICT])
+   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+   gl_CHECK_NEXT_HEADERS([string.h])
+ ])
+ 
+ AC_DEFUN([gl_STRING_MODULE_INDICATOR],
+ [
+   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+   GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+ ])
+ 
+ AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
+ [
+   GNULIB_MEMMEM=0;      AC_SUBST([GNULIB_MEMMEM])
+   GNULIB_MEMPCPY=0;     AC_SUBST([GNULIB_MEMPCPY])
+   GNULIB_MEMRCHR=0;     AC_SUBST([GNULIB_MEMRCHR])
+   GNULIB_RAWMEMCHR=0;   AC_SUBST([GNULIB_RAWMEMCHR])
+   GNULIB_STPCPY=0;      AC_SUBST([GNULIB_STPCPY])
+   GNULIB_STPNCPY=0;     AC_SUBST([GNULIB_STPNCPY])
+   GNULIB_STRCHRNUL=0;   AC_SUBST([GNULIB_STRCHRNUL])
+   GNULIB_STRDUP=0;      AC_SUBST([GNULIB_STRDUP])
+   GNULIB_STRNDUP=0;     AC_SUBST([GNULIB_STRNDUP])
+   GNULIB_STRNLEN=0;     AC_SUBST([GNULIB_STRNLEN])
+   GNULIB_STRPBRK=0;     AC_SUBST([GNULIB_STRPBRK])
+   GNULIB_STRSEP=0;      AC_SUBST([GNULIB_STRSEP])
+   GNULIB_STRSTR=0;      AC_SUBST([GNULIB_STRSTR])
+   GNULIB_STRCASESTR=0;  AC_SUBST([GNULIB_STRCASESTR])
+   GNULIB_STRTOK_R=0;    AC_SUBST([GNULIB_STRTOK_R])
+   GNULIB_MBSLEN=0;      AC_SUBST([GNULIB_MBSLEN])
+   GNULIB_MBSNLEN=0;     AC_SUBST([GNULIB_MBSNLEN])
+   GNULIB_MBSCHR=0;      AC_SUBST([GNULIB_MBSCHR])
+   GNULIB_MBSRCHR=0;     AC_SUBST([GNULIB_MBSRCHR])
+   GNULIB_MBSSTR=0;      AC_SUBST([GNULIB_MBSSTR])
+   GNULIB_MBSCASECMP=0;  AC_SUBST([GNULIB_MBSCASECMP])
+   GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP])
+   GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP])
+   GNULIB_MBSCASESTR=0;  AC_SUBST([GNULIB_MBSCASESTR])
+   GNULIB_MBSCSPN=0;     AC_SUBST([GNULIB_MBSCSPN])
+   GNULIB_MBSPBRK=0;     AC_SUBST([GNULIB_MBSPBRK])
+   GNULIB_MBSSPN=0;      AC_SUBST([GNULIB_MBSSPN])
+   GNULIB_MBSSEP=0;      AC_SUBST([GNULIB_MBSSEP])
+   GNULIB_MBSTOK_R=0;    AC_SUBST([GNULIB_MBSTOK_R])
+   GNULIB_STRERROR=0;    AC_SUBST([GNULIB_STRERROR])
+   GNULIB_STRSIGNAL=0;   AC_SUBST([GNULIB_STRSIGNAL])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_DECL_MEMMEM=1;		AC_SUBST([HAVE_DECL_MEMMEM])
+   HAVE_MEMPCPY=1;		AC_SUBST([HAVE_MEMPCPY])
+   HAVE_DECL_MEMRCHR=1;		AC_SUBST([HAVE_DECL_MEMRCHR])
+   HAVE_RAWMEMCHR=1;		AC_SUBST([HAVE_RAWMEMCHR])
+   HAVE_STPCPY=1;		AC_SUBST([HAVE_STPCPY])
+   HAVE_STPNCPY=1;		AC_SUBST([HAVE_STPNCPY])
+   HAVE_STRCHRNUL=1;		AC_SUBST([HAVE_STRCHRNUL])
+   HAVE_DECL_STRDUP=1;		AC_SUBST([HAVE_DECL_STRDUP])
+   HAVE_STRNDUP=1;		AC_SUBST([HAVE_STRNDUP])
+   HAVE_DECL_STRNDUP=1;		AC_SUBST([HAVE_DECL_STRNDUP])
+   HAVE_DECL_STRNLEN=1;		AC_SUBST([HAVE_DECL_STRNLEN])
+   HAVE_STRPBRK=1;		AC_SUBST([HAVE_STRPBRK])
+   HAVE_STRSEP=1;		AC_SUBST([HAVE_STRSEP])
+   HAVE_STRCASESTR=1;		AC_SUBST([HAVE_STRCASESTR])
+   HAVE_DECL_STRTOK_R=1;		AC_SUBST([HAVE_DECL_STRTOK_R])
+   HAVE_DECL_STRERROR=1;		AC_SUBST([HAVE_DECL_STRERROR])
+   HAVE_DECL_STRSIGNAL=1;	AC_SUBST([HAVE_DECL_STRSIGNAL])
+   REPLACE_STRERROR=0;		AC_SUBST([REPLACE_STRERROR])
+   REPLACE_STRSIGNAL=0;		AC_SUBST([REPLACE_STRSIGNAL])
+   REPLACE_MEMMEM=0;		AC_SUBST([REPLACE_MEMMEM])
+   REPLACE_STRCASESTR=0;		AC_SUBST([REPLACE_STRCASESTR])
+   REPLACE_STRSTR=0;		AC_SUBST([REPLACE_STRSTR])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/strndup.m4 texinfo-4.13/gnulib/m4/strndup.m4
*** texinfo-4.12/gnulib/m4/strndup.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/strndup.m4	Sun Jun  8 06:04:15 2008
***************
*** 0 ****
--- 1,53 ----
+ # strndup.m4 serial 15
+ dnl Copyright (C) 2002-2003, 2005-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_STRNDUP],
+ [
+   dnl Persuade glibc <string.h> to declare strndup().
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ 
+   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+   AC_CHECK_DECLS_ONCE([strndup])
+   if test $ac_cv_have_decl_strndup = no; then
+     HAVE_DECL_STRNDUP=0
+   fi
+ 
+   # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
+   AC_CACHE_CHECK([for working strndup], gl_cv_func_strndup,
+     [AC_RUN_IFELSE([
+        AC_LANG_PROGRAM([[#include <string.h>
+ 			 #include <stdlib.h>]], [[
+ #ifndef HAVE_DECL_STRNDUP
+   extern char *strndup (const char *, size_t);
+ #endif
+   char *s;
+   s = strndup ("some longer string", 15);
+   free (s);
+   s = strndup ("shorter string", 13);
+   return s[13] != '\0';]])],
+        [gl_cv_func_strndup=yes],
+        [gl_cv_func_strndup=no],
+        [AC_CHECK_FUNC([strndup],
+           [AC_EGREP_CPP([too risky], [
+ #ifdef _AIX
+                too risky
+ #endif
+              ],
+              [gl_cv_func_strndup=no],
+              [gl_cv_func_strndup=yes])],
+           [gl_cv_func_strndup=no])])])
+   if test $gl_cv_func_strndup = yes; then
+     AC_DEFINE([HAVE_STRNDUP], 1,
+       [Define if you have the strndup() function and it works.])
+   else
+     HAVE_STRNDUP=0
+     AC_LIBOBJ([strndup])
+     gl_PREREQ_STRNDUP
+   fi
+ ])
+ 
+ # Prerequisites of lib/strndup.c.
+ AC_DEFUN([gl_PREREQ_STRNDUP], [:])
diff -Nrc2 texinfo-4.12/gnulib/m4/strnlen.m4 texinfo-4.13/gnulib/m4/strnlen.m4
*** texinfo-4.12/gnulib/m4/strnlen.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/strnlen.m4	Mon May 12 05:38:22 2008
***************
*** 0 ****
--- 1,31 ----
+ # strnlen.m4 serial 9
+ dnl Copyright (C) 2002-2003, 2005-2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_STRNLEN],
+ [
+   dnl Persuade glibc <string.h> to declare strnlen().
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ 
+   AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+   AC_CHECK_DECLS_ONCE([strnlen])
+   if test $ac_cv_have_decl_strnlen = no; then
+     HAVE_DECL_STRNLEN=0
+   fi
+ 
+   AC_FUNC_STRNLEN
+   if test $ac_cv_func_strnlen_working = no; then
+     # This is necessary because automake-1.6.1 doesn't understand
+     # that the above use of AC_FUNC_STRNLEN means we may have to use
+     # lib/strnlen.c.
+     #AC_LIBOBJ(strnlen)
+     AC_DEFINE(strnlen, rpl_strnlen,
+       [Define to rpl_strnlen if the replacement function should be used.])
+     gl_PREREQ_STRNLEN
+   fi
+ ])
+ 
+ # Prerequisites of lib/strnlen.c.
+ AC_DEFUN([gl_PREREQ_STRNLEN], [:])
diff -Nrc2 texinfo-4.12/gnulib/m4/sys_stat_h.m4 texinfo-4.13/gnulib/m4/sys_stat_h.m4
*** texinfo-4.12/gnulib/m4/sys_stat_h.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/sys_stat_h.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,55 ----
+ # sys_stat_h.m4 serial 8   -*- Autoconf -*-
+ dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Eric Blake.
+ dnl Test whether <sys/stat.h> contains lstat and mkdir or must be substituted.
+ 
+ AC_DEFUN([gl_HEADER_SYS_STAT_H],
+ [
+   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ 
+   dnl Check for lstat.  Systems that lack it (mingw) also lack symlinks, so
+   dnl stat is a good replacement.
+   AC_CHECK_FUNCS_ONCE([lstat])
+   if test $ac_cv_func_lstat = yes; then
+     HAVE_LSTAT=1
+   else
+     HAVE_LSTAT=0
+   fi
+   AC_SUBST([HAVE_LSTAT])
+ 
+   dnl For the mkdir substitute.
+   AC_REQUIRE([AC_C_INLINE])
+ 
+   dnl Check for broken stat macros.
+   AC_REQUIRE([AC_HEADER_STAT])
+ 
+   gl_CHECK_NEXT_HEADERS([sys/stat.h])
+   SYS_STAT_H='sys/stat.h'
+   AC_SUBST([SYS_STAT_H])
+ 
+   dnl Define types that are supposed to be defined in <sys/types.h> or
+   dnl <sys/stat.h>.
+   AC_CHECK_TYPE([nlink_t], [],
+     [AC_DEFINE([nlink_t], [int],
+        [Define to the type of st_nlink in struct stat, or a supertype.])],
+     [#include <sys/types.h>
+      #include <sys/stat.h>])
+ 
+ ]) # gl_HEADER_SYS_STAT_H
+ 
+ AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR],
+ [
+   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+   GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+ ])
+ 
+ AC_DEFUN([gl_SYS_STAT_H_DEFAULTS],
+ [
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/sys_time_h.m4 texinfo-4.13/gnulib/m4/sys_time_h.m4
*** texinfo-4.12/gnulib/m4/sys_time_h.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/sys_time_h.m4	Mon Jun 25 14:16:33 2007
***************
*** 0 ****
--- 1,57 ----
+ # Configure a replacement for <sys/time.h>.
+ 
+ # Copyright (C) 2007 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # Written by Paul Eggert and Martin Lambers.
+ 
+ AC_DEFUN([gl_HEADER_SYS_TIME_H],
+ [
+   dnl Use AC_REQUIRE here, so that the REPLACE_GETTIMEOFDAY=0 statement
+   dnl below is expanded once only, before all REPLACE_GETTIMEOFDAY=1
+   dnl statements that occur in other macros.
+   AC_REQUIRE([gl_HEADER_SYS_TIME_H_BODY])
+ ])
+ 
+ AC_DEFUN([gl_HEADER_SYS_TIME_H_BODY],
+ [
+   AC_REQUIRE([AC_C_RESTRICT])
+   gl_CHECK_NEXT_HEADERS([sys/time.h])
+ 
+   if test $ac_cv_header_sys_time_h = yes; then
+     HAVE_SYS_TIME_H=1
+   else
+     HAVE_SYS_TIME_H=0
+   fi
+   AC_SUBST([HAVE_SYS_TIME_H])
+ 
+   AC_CACHE_CHECK([for struct timeval], [gl_cv_sys_struct_timeval],
+     [AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM(
+ 	  [[#if HAVE_SYS_TIME_H
+ 	     #include <sys/time.h>
+ 	    #endif
+ 	    #include <time.h>
+ 	  ]],
+ 	  [[static struct timeval x; x.tv_sec = x.tv_usec;]])],
+        [gl_cv_sys_struct_timeval=yes],
+        [gl_cv_sys_struct_timeval=no])])
+   if test $gl_cv_sys_struct_timeval = yes; then
+     HAVE_STRUCT_TIMEVAL=1
+   else
+     HAVE_STRUCT_TIMEVAL=0
+   fi
+   AC_SUBST([HAVE_STRUCT_TIMEVAL])
+ 
+   dnl Assume POSIX behavior unless another module says otherwise.
+   REPLACE_GETTIMEOFDAY=0
+   AC_SUBST([REPLACE_GETTIMEOFDAY])
+   if test $HAVE_SYS_TIME_H = 0 || test $HAVE_STRUCT_TIMEVAL = 0; then
+     SYS_TIME_H=sys/time.h
+   else
+     SYS_TIME_H=
+   fi
+   AC_SUBST([SYS_TIME_H])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/tempname.m4 texinfo-4.13/gnulib/m4/tempname.m4
*** texinfo-4.12/gnulib/m4/tempname.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/tempname.m4	Mon Feb  5 08:26:09 2007
***************
*** 0 ****
--- 1,22 ----
+ #serial 3
+ 
+ # Copyright (C) 2006-2007 Free Software Foundation, Inc.
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # glibc provides __gen_tempname as a wrapper for mk[ds]temp.  Expose
+ # it as a public API, and provide it on systems that are lacking.
+ AC_DEFUN([gl_FUNC_GEN_TEMPNAME],
+ [
+   AC_REQUIRE([AC_SYS_LARGEFILE])
+ 
+   AC_LIBOBJ([tempname])
+   gl_PREREQ_TEMPNAME
+ ])
+ 
+ # Prerequisites of lib/tempname.c.
+ AC_DEFUN([gl_PREREQ_TEMPNAME],
+ [
+   :
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/unistd_h.m4 texinfo-4.13/gnulib/m4/unistd_h.m4
*** texinfo-4.12/gnulib/m4/unistd_h.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/unistd_h.m4	Wed Feb 27 10:32:22 2008
***************
*** 0 ****
--- 1,63 ----
+ # unistd_h.m4 serial 11
+ dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl Written by Simon Josefsson, Bruno Haible.
+ 
+ AC_DEFUN([gl_UNISTD_H],
+ [
+   dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+   dnl once only, before all statements that occur in other macros.
+   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ 
+   gl_CHECK_NEXT_HEADERS([unistd.h])
+ 
+   AC_CHECK_HEADERS_ONCE([unistd.h])
+   if test $ac_cv_header_unistd_h = yes; then
+     HAVE_UNISTD_H=1
+   else
+     HAVE_UNISTD_H=0
+   fi
+   AC_SUBST([HAVE_UNISTD_H])
+ ])
+ 
+ AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
+ [
+   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+   GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+ ])
+ 
+ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
+ [
+   GNULIB_CHOWN=0;         AC_SUBST([GNULIB_CHOWN])
+   GNULIB_DUP2=0;          AC_SUBST([GNULIB_DUP2])
+   GNULIB_ENVIRON=0;       AC_SUBST([GNULIB_ENVIRON])
+   GNULIB_FCHDIR=0;        AC_SUBST([GNULIB_FCHDIR])
+   GNULIB_FTRUNCATE=0;     AC_SUBST([GNULIB_FTRUNCATE])
+   GNULIB_GETCWD=0;        AC_SUBST([GNULIB_GETCWD])
+   GNULIB_GETLOGIN_R=0;    AC_SUBST([GNULIB_GETLOGIN_R])
+   GNULIB_GETPAGESIZE=0;   AC_SUBST([GNULIB_GETPAGESIZE])
+   GNULIB_LCHOWN=0;        AC_SUBST([GNULIB_LCHOWN])
+   GNULIB_LSEEK=0;         AC_SUBST([GNULIB_LSEEK])
+   GNULIB_READLINK=0;      AC_SUBST([GNULIB_READLINK])
+   GNULIB_SLEEP=0;         AC_SUBST([GNULIB_SLEEP])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_DUP2=1;            AC_SUBST([HAVE_DUP2])
+   HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
+   HAVE_GETPAGESIZE=1;     AC_SUBST([HAVE_GETPAGESIZE])
+   HAVE_READLINK=1;        AC_SUBST([HAVE_READLINK])
+   HAVE_SLEEP=1;           AC_SUBST([HAVE_SLEEP])
+   HAVE_DECL_ENVIRON=1;    AC_SUBST([HAVE_DECL_ENVIRON])
+   HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
+   HAVE_OS_H=0;            AC_SUBST([HAVE_OS_H])
+   HAVE_SYS_PARAM_H=0;     AC_SUBST([HAVE_SYS_PARAM_H])
+   REPLACE_CHOWN=0;        AC_SUBST([REPLACE_CHOWN])
+   REPLACE_FCHDIR=0;       AC_SUBST([REPLACE_FCHDIR])
+   REPLACE_GETCWD=0;       AC_SUBST([REPLACE_GETCWD])
+   REPLACE_GETPAGESIZE=0;  AC_SUBST([REPLACE_GETPAGESIZE])
+   REPLACE_LCHOWN=0;       AC_SUBST([REPLACE_LCHOWN])
+   REPLACE_LSEEK=0;        AC_SUBST([REPLACE_LSEEK])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/wchar.m4 texinfo-4.13/gnulib/m4/wchar.m4
*** texinfo-4.12/gnulib/m4/wchar.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/wchar.m4	Sun Jul 15 15:30:27 2007
***************
*** 0 ****
--- 1,54 ----
+ dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
+ 
+ dnl Copyright (C) 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl Written by Eric Blake.
+ 
+ # wchar.m4 serial 4
+ 
+ AC_DEFUN([gl_WCHAR_H],
+ [
+   AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+   AC_CACHE_CHECK([whether <wchar.h> is standalone],
+     [gl_cv_header_wchar_h_standalone],
+     [AC_COMPILE_IFELSE([[#include <wchar.h>
+ wchar_t w;]],
+       [gl_cv_header_wchar_h_standalone=yes],
+       [gl_cv_header_wchar_h_standalone=no])])
+   if test $gl_cv_header_wchar_h_standalone != yes; then
+     WCHAR_H=wchar.h
+   fi
+ 
+   dnl Prepare for creating substitute <wchar.h>.
+   dnl Do it always: WCHAR_H may be empty here but can be set later.
+   dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
+   dnl character support).
+   AC_CHECK_HEADERS_ONCE([wchar.h])
+   if test $ac_cv_header_wchar_h = yes; then
+     HAVE_WCHAR_H=1
+   else
+     HAVE_WCHAR_H=0
+   fi
+   AC_SUBST([HAVE_WCHAR_H])
+   gl_CHECK_NEXT_HEADERS([wchar.h])
+ ])
+ 
+ AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
+ [
+   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+   AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+   GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+ ])
+ 
+ AC_DEFUN([gl_WCHAR_H_DEFAULTS],
+ [
+   GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH])
+   REPLACE_WCWIDTH=0;   AC_SUBST([REPLACE_WCWIDTH])
+   WCHAR_H=
+   AC_SUBST([WCHAR_H])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/wchar_t.m4 texinfo-4.13/gnulib/m4/wchar_t.m4
*** texinfo-4.12/gnulib/m4/wchar_t.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/wchar_t.m4	Sun Jun 18 16:39:43 2006
***************
*** 0 ****
--- 1,20 ----
+ # wchar_t.m4 serial 1 (gettext-0.12)
+ dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Bruno Haible.
+ dnl Test whether <stddef.h> has the 'wchar_t' type.
+ dnl Prerequisite: AC_PROG_CC
+ 
+ AC_DEFUN([gt_TYPE_WCHAR_T],
+ [
+   AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
+     [AC_TRY_COMPILE([#include <stddef.h>
+        wchar_t foo = (wchar_t)'\0';], ,
+        gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
+   if test $gt_cv_c_wchar_t = yes; then
+     AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
+   fi
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/wctype.m4 texinfo-4.13/gnulib/m4/wctype.m4
*** texinfo-4.12/gnulib/m4/wctype.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/wctype.m4	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,74 ----
+ # wctype.m4 serial 2
+ 
+ dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
+ 
+ dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl Written by Paul Eggert.
+ 
+ AC_DEFUN([gl_WCTYPE_H],
+ [
+   AC_REQUIRE([AC_PROG_CC])
+   AC_CHECK_FUNCS_ONCE([iswcntrl])
+   if test $ac_cv_func_iswcntrl = yes; then
+     HAVE_ISWCNTRL=1
+   else
+     HAVE_ISWCNTRL=0
+   fi
+   AC_SUBST([HAVE_ISWCNTRL])
+   AC_CHECK_HEADERS_ONCE([wctype.h])
+   AC_REQUIRE([AC_C_INLINE])
+ 
+   AC_REQUIRE([gt_TYPE_WINT_T])
+   if test $gt_cv_c_wint_t = yes; then
+     HAVE_WINT_T=1
+   else
+     HAVE_WINT_T=0
+   fi
+   AC_SUBST([HAVE_WINT_T])
+ 
+   WCTYPE_H=wctype.h
+   if test $ac_cv_header_wctype_h = yes; then
+     if test $ac_cv_func_iswcntrl = yes; then
+       dnl Linux libc5 has an iswprint function that returns 0 for all arguments.
+       dnl The other functions are likely broken in the same way.
+       AC_CACHE_CHECK([whether iswcntrl works], [gl_cv_func_iswcntrl_works],
+         [
+           AC_TRY_RUN([#include <stddef.h>
+                       #include <stdio.h>
+                       #include <time.h>
+                       #include <wchar.h>
+                       #include <wctype.h>
+                       int main () { return iswprint ('x') == 0; }],
+             [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no],
+             [AC_TRY_COMPILE([#include <stdlib.h>
+                           #if __GNU_LIBRARY__ == 1
+                           Linux libc5 i18n is broken.
+                           #endif], [],
+               [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no])
+             ])
+         ])
+       if test $gl_cv_func_iswcntrl_works = yes; then
+         WCTYPE_H=
+       fi
+     fi
+     dnl Compute NEXT_WCTYPE_H even if WCTYPE_H is empty,
+     dnl for the benefit of builds from non-distclean directories.
+     gl_CHECK_NEXT_HEADERS([wctype.h])
+     HAVE_WCTYPE_H=1
+   else
+     HAVE_WCTYPE_H=0
+   fi
+   AC_SUBST([HAVE_WCTYPE_H])
+   AC_SUBST([WCTYPE_H])
+ 
+   if test "$gl_cv_func_iswcntrl_works" = no; then
+     REPLACE_ISWCNTRL=1
+   else
+     REPLACE_ISWCNTRL=0
+   fi
+   AC_SUBST([REPLACE_ISWCNTRL])
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/wcwidth.m4 texinfo-4.13/gnulib/m4/wcwidth.m4
*** texinfo-4.12/gnulib/m4/wcwidth.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/wcwidth.m4	Tue Dec 25 15:57:19 2007
***************
*** 0 ****
--- 1,85 ----
+ # wcwidth.m4 serial 13
+ dnl Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_FUNC_WCWIDTH],
+ [
+   AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+ 
+   dnl Persuade glibc <wchar.h> to declare wcwidth().
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ 
+   AC_REQUIRE([gt_TYPE_WCHAR_T])
+   AC_REQUIRE([gt_TYPE_WINT_T])
+ 
+   AC_CHECK_HEADERS_ONCE([wchar.h])
+   AC_CHECK_FUNCS_ONCE([wcwidth])
+ 
+   AC_CHECK_DECLS([wcwidth], [], [], [
+ /* AIX 3.2.5 declares wcwidth in <string.h>. */
+ #include <string.h>
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+    before <wchar.h>.  */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ ])
+   if test $ac_cv_have_decl_wcwidth != yes; then
+     HAVE_DECL_WCWIDTH=0
+   fi
+ 
+   if test $ac_cv_func_wcwidth = no; then
+     REPLACE_WCWIDTH=1
+   else
+     dnl On MacOS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
+     dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
+     dnl This leads to bugs in 'ls' (coreutils).
+     AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
+       [gl_cv_func_wcwidth_works],
+       [
+         AC_TRY_RUN([
+ #include <locale.h>
+ /* AIX 3.2.5 declares wcwidth in <string.h>. */
+ #include <string.h>
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+    before <wchar.h>.  */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+ #if !HAVE_DECL_WCWIDTH
+ extern
+ # ifdef __cplusplus
+ "C"
+ # endif
+ int wcwidth (int);
+ #endif
+ int main ()
+ {
+   if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
+     if (wcwidth (0x0301) > 0 || wcwidth (0x200B) > 0)
+       return 1;
+   return 0;
+ }], [gl_cv_func_wcwidth_works=yes], [gl_cv_func_wcwidth_works=no],
+           [gl_cv_func_wcwidth_works="guessing no"])
+       ])
+     case "$gl_cv_func_wcwidth_works" in
+       *yes) ;;
+       *no) REPLACE_WCWIDTH=1 ;;
+     esac
+   fi
+   if test $REPLACE_WCWIDTH = 1; then
+     AC_LIBOBJ([wcwidth])
+   fi
+ 
+   if test $REPLACE_WCWIDTH = 1 || test $HAVE_DECL_WCWIDTH = 0; then
+     WCHAR_H=wchar.h
+   fi
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/wint_t.m4 texinfo-4.13/gnulib/m4/wint_t.m4
*** texinfo-4.12/gnulib/m4/wint_t.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/wint_t.m4	Tue Dec 25 15:57:19 2007
***************
*** 0 ****
--- 1,28 ----
+ # wint_t.m4 serial 2 (gettext-0.17)
+ dnl Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ dnl From Bruno Haible.
+ dnl Test whether <wchar.h> has the 'wint_t' type.
+ dnl Prerequisite: AC_PROG_CC
+ 
+ AC_DEFUN([gt_TYPE_WINT_T],
+ [
+   AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
+     [AC_TRY_COMPILE([
+ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+    <wchar.h>.
+    BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+    before <wchar.h>.  */
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <time.h>
+ #include <wchar.h>
+        wint_t foo = (wchar_t)'\0';], ,
+        gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
+   if test $gt_cv_c_wint_t = yes; then
+     AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
+   fi
+ ])
diff -Nrc2 texinfo-4.12/gnulib/m4/xalloc.m4 texinfo-4.13/gnulib/m4/xalloc.m4
*** texinfo-4.12/gnulib/m4/xalloc.m4	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/gnulib/m4/xalloc.m4	Thu Nov  9 06:57:44 2006
***************
*** 0 ****
--- 1,24 ----
+ # xalloc.m4 serial 16
+ dnl Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+ 
+ AC_DEFUN([gl_XALLOC],
+ [
+   AC_LIBOBJ([xmalloc])
+ 
+   gl_PREREQ_XALLOC
+   gl_PREREQ_XMALLOC
+ ])
+ 
+ # Prerequisites of lib/xalloc.h.
+ AC_DEFUN([gl_PREREQ_XALLOC], [
+   AC_REQUIRE([gl_INLINE])
+   :
+ ])
+ 
+ # Prerequisites of lib/xmalloc.c.
+ AC_DEFUN([gl_PREREQ_XMALLOC], [
+   :
+ ])
diff -Nrc2 texinfo-4.12/info/Makefile.am texinfo-4.13/info/Makefile.am
*** texinfo-4.12/info/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/Makefile.am	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,82 ----
+ # $Id: Makefile.am,v 1.15 2008/03/28 23:39:20 karl Exp $
+ # Makefile.am for texinfo/info.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ # Use `ginfo' for building to avoid confusion with the standard `info'
+ # target.  Removes the `g' in the install rule before applying any
+ # user-specified name transformations.
+ bin_PROGRAMS = ginfo infokey
+ transform = s/ginfo/info/; $(program_transform_name)
+ 
+ localedir = $(datadir)/locale
+ infodir2 = $(datadir)/info
+ 
+ AM_CPPFLAGS = 					\
+   -I$(top_srcdir)				\
+   -I$(top_srcdir)/gnulib/lib			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\" 			\
+   -DINFODIR=\"$(infodir)\"			\
+   -DINFODIR2=\"$(infodir2)\"
+ 
+ LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a \
+         $(TERMLIBS) $(LIBINTL)
+ infokey_LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL)
+ 
+ EXTRA_DIST = README pcterm.c
+ 
+ ginfo_SOURCES = dir.c display.c display.h doc.h dribble.c dribble.h \
+   echo-area.c echo-area.h \
+   filesys.c filesys.h footnotes.c footnotes.h gc.c gc.h \
+   indices.c indices.h info-utils.c info-utils.h info.c info.h infodoc.c \
+   infomap.c infomap.h m-x.c man.c man.h nodemenu.c nodes.c nodes.h \
+   search.c search.h session.c session.h signals.c signals.h \
+   termdep.h terminal.c terminal.h tilde.c tilde.h \
+   variables.c variables.h window.c window.h
+ nodist_ginfo_SOURCES = doc.c funs.h
+ infokey_SOURCES = infokey.c infokey.h key.h
+ nodist_infokey_SOURCES = key.c funs.h
+ 
+ # The files `doc.c', `key.c' and `funs.h' are created by ./makedoc run over the
+ # source files which contain DECLARE_INFO_COMMAND.  `funs.h' is a header file
+ # listing the functions found.  `doc.c' is a structure containing pointers
+ # to those functions along with completable names and documentation strings.
+ #
+ generated_sources = doc.c key.c funs.h
+ 
+ # We need a linear ordering to prevent race condition in parallel make.
+ # See the node ``(automake)Multiple Outputs'' for an explanation.
+ # Make sure this matches with order in which makedoc.c creates these
+ # files.
+ doc.c: key.c
+ key.c: funs.h
+ 
+ # These files are not distributed.
+ DISTCLEANFILES = $(generated_sources)
+ 
+ noinst_PROGRAMS = makedoc
+ makedoc_SOURCES = makedoc.c
+ 
+ # Files with Info commands defined that makedoc should read.
+ cmd_sources = $(srcdir)/session.c $(srcdir)/echo-area.c $(srcdir)/infodoc.c \
+   $(srcdir)/m-x.c $(srcdir)/indices.c $(srcdir)/nodemenu.c \
+   $(srcdir)/footnotes.c $(srcdir)/variables.c
+ 
+ # Make the target only funs.h even though we create all the
+ # $(generated_sources) so that parallel makes won't do the rm && makedoc
+ # more than once.
+ funs.h: makedoc$(EXEEXT) $(cmd_sources)
+ 	rm -f $(generated_sources)
+ 	$(top_builddir)/$(native_tools)/info/makedoc $(cmd_sources)
+ 
+ # The following hack is necessary to hint make before the automatic
+ # dependencies are built.
+ BUILT_SOURCES = funs.h
diff -Nrc2 texinfo-4.12/info/Makefile.in texinfo-4.13/info/Makefile.in
*** texinfo-4.12/info/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/Makefile.in	Thu Sep 18 11:46:24 2008
***************
*** 0 ****
--- 1,810 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # $Id: Makefile.am,v 1.15 2008/03/28 23:39:20 karl Exp $
+ # Makefile.am for texinfo/info.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ bin_PROGRAMS = ginfo$(EXEEXT) infokey$(EXEEXT)
+ noinst_PROGRAMS = makedoc$(EXEEXT)
+ subdir = info
+ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ am__installdirs = "$(DESTDIR)$(bindir)"
+ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+ PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+ am_ginfo_OBJECTS = dir.$(OBJEXT) display.$(OBJEXT) dribble.$(OBJEXT) \
+ 	echo-area.$(OBJEXT) filesys.$(OBJEXT) footnotes.$(OBJEXT) \
+ 	gc.$(OBJEXT) indices.$(OBJEXT) info-utils.$(OBJEXT) \
+ 	info.$(OBJEXT) infodoc.$(OBJEXT) infomap.$(OBJEXT) \
+ 	m-x.$(OBJEXT) man.$(OBJEXT) nodemenu.$(OBJEXT) nodes.$(OBJEXT) \
+ 	search.$(OBJEXT) session.$(OBJEXT) signals.$(OBJEXT) \
+ 	terminal.$(OBJEXT) tilde.$(OBJEXT) variables.$(OBJEXT) \
+ 	window.$(OBJEXT)
+ nodist_ginfo_OBJECTS = doc.$(OBJEXT)
+ ginfo_OBJECTS = $(am_ginfo_OBJECTS) $(nodist_ginfo_OBJECTS)
+ ginfo_LDADD = $(LDADD)
+ am__DEPENDENCIES_1 =
+ ginfo_DEPENDENCIES = ../lib/libtxi.a \
+ 	$(top_builddir)/gnulib/lib/libgnu.a $(am__DEPENDENCIES_1) \
+ 	$(am__DEPENDENCIES_1)
+ am_infokey_OBJECTS = infokey.$(OBJEXT)
+ nodist_infokey_OBJECTS = key.$(OBJEXT)
+ infokey_OBJECTS = $(am_infokey_OBJECTS) $(nodist_infokey_OBJECTS)
+ infokey_DEPENDENCIES = ../lib/libtxi.a \
+ 	$(top_builddir)/gnulib/lib/libgnu.a $(am__DEPENDENCIES_1)
+ am_makedoc_OBJECTS = makedoc.$(OBJEXT)
+ makedoc_OBJECTS = $(am_makedoc_OBJECTS)
+ makedoc_LDADD = $(LDADD)
+ makedoc_DEPENDENCIES = ../lib/libtxi.a \
+ 	$(top_builddir)/gnulib/lib/libgnu.a $(am__DEPENDENCIES_1) \
+ 	$(am__DEPENDENCIES_1)
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(ginfo_SOURCES) $(nodist_ginfo_SOURCES) $(infokey_SOURCES) \
+ 	$(nodist_infokey_SOURCES) $(makedoc_SOURCES)
+ DIST_SOURCES = $(ginfo_SOURCES) $(infokey_SOURCES) $(makedoc_SOURCES)
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ transform = s/ginfo/info/; $(program_transform_name)
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = $(datadir)/locale
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ infodir2 = $(datadir)/info
+ AM_CPPFLAGS = \
+   -I$(top_srcdir)				\
+   -I$(top_srcdir)/gnulib/lib			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\" 			\
+   -DINFODIR=\"$(infodir)\"			\
+   -DINFODIR2=\"$(infodir2)\"
+ 
+ LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a \
+         $(TERMLIBS) $(LIBINTL)
+ 
+ infokey_LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL)
+ EXTRA_DIST = README pcterm.c
+ ginfo_SOURCES = dir.c display.c display.h doc.h dribble.c dribble.h \
+   echo-area.c echo-area.h \
+   filesys.c filesys.h footnotes.c footnotes.h gc.c gc.h \
+   indices.c indices.h info-utils.c info-utils.h info.c info.h infodoc.c \
+   infomap.c infomap.h m-x.c man.c man.h nodemenu.c nodes.c nodes.h \
+   search.c search.h session.c session.h signals.c signals.h \
+   termdep.h terminal.c terminal.h tilde.c tilde.h \
+   variables.c variables.h window.c window.h
+ 
+ nodist_ginfo_SOURCES = doc.c funs.h
+ infokey_SOURCES = infokey.c infokey.h key.h
+ nodist_infokey_SOURCES = key.c funs.h
+ 
+ # The files `doc.c', `key.c' and `funs.h' are created by ./makedoc run over the
+ # source files which contain DECLARE_INFO_COMMAND.  `funs.h' is a header file
+ # listing the functions found.  `doc.c' is a structure containing pointers
+ # to those functions along with completable names and documentation strings.
+ #
+ generated_sources = doc.c key.c funs.h
+ 
+ # These files are not distributed.
+ DISTCLEANFILES = $(generated_sources)
+ makedoc_SOURCES = makedoc.c
+ 
+ # Files with Info commands defined that makedoc should read.
+ cmd_sources = $(srcdir)/session.c $(srcdir)/echo-area.c $(srcdir)/infodoc.c \
+   $(srcdir)/m-x.c $(srcdir)/indices.c $(srcdir)/nodemenu.c \
+   $(srcdir)/footnotes.c $(srcdir)/variables.c
+ 
+ 
+ # The following hack is necessary to hint make before the automatic
+ # dependencies are built.
+ BUILT_SOURCES = funs.h
+ all: $(BUILT_SOURCES)
+ 	$(MAKE) $(AM_MAKEFLAGS) all-am
+ 
+ .SUFFIXES:
+ .SUFFIXES: .c .o .obj
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  info/Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnu  info/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+ 	  ; then \
+ 	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ 	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ 	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ 	  else :; fi; \
+ 	done
+ 
+ uninstall-binPROGRAMS:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ 	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ 	done
+ 
+ clean-binPROGRAMS:
+ 	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+ 
+ clean-noinstPROGRAMS:
+ 	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+ ginfo$(EXEEXT): $(ginfo_OBJECTS) $(ginfo_DEPENDENCIES) 
+ 	@rm -f ginfo$(EXEEXT)
+ 	$(LINK) $(ginfo_OBJECTS) $(ginfo_LDADD) $(LIBS)
+ infokey$(EXEEXT): $(infokey_OBJECTS) $(infokey_DEPENDENCIES) 
+ 	@rm -f infokey$(EXEEXT)
+ 	$(LINK) $(infokey_OBJECTS) $(infokey_LDADD) $(LIBS)
+ makedoc$(EXEEXT): $(makedoc_OBJECTS) $(makedoc_DEPENDENCIES) 
+ 	@rm -f makedoc$(EXEEXT)
+ 	$(LINK) $(makedoc_OBJECTS) $(makedoc_LDADD) $(LIBS)
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+ 
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/display.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/doc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dribble.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/echo-area.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filesys.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/footnotes.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/indices.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/info-utils.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/info.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/infodoc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/infokey.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/infomap.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/key.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/m-x.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/makedoc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/man.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nodemenu.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nodes.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/search.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/session.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signals.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/terminal.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tilde.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/variables.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/window.Po@am__quote@
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	mkid -fID $$unique
+ tags: TAGS
+ 
+ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	here=`pwd`; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ 	  test -n "$$unique" || unique=$$empty_fix; \
+ 	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ 	    $$tags $$unique; \
+ 	fi
+ ctags: CTAGS
+ CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ 	     $$tags $$unique
+ 
+ GTAGS:
+ 	here=`$(am__cd) $(top_builddir) && pwd` \
+ 	  && cd $(top_srcdir) \
+ 	  && gtags -i $(GTAGS_ARGS) $$here
+ 
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ check-am: all-am
+ check: $(BUILT_SOURCES)
+ 	$(MAKE) $(AM_MAKEFLAGS) check-am
+ all-am: Makefile $(PROGRAMS)
+ installdirs:
+ 	for dir in "$(DESTDIR)$(bindir)"; do \
+ 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: $(BUILT_SOURCES)
+ 	$(MAKE) $(AM_MAKEFLAGS) install-am
+ install-exec: install-exec-am
+ install-data: install-data-am
+ uninstall: uninstall-am
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-am
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ 	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+ clean: clean-am
+ 
+ clean-am: clean-binPROGRAMS clean-generic clean-noinstPROGRAMS \
+ 	mostlyclean-am
+ 
+ distclean: distclean-am
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-compile distclean-generic \
+ 	distclean-tags
+ 
+ dvi: dvi-am
+ 
+ dvi-am:
+ 
+ html: html-am
+ 
+ info: info-am
+ 
+ info-am:
+ 
+ install-data-am:
+ 
+ install-dvi: install-dvi-am
+ 
+ install-exec-am: install-binPROGRAMS
+ 
+ install-html: install-html-am
+ 
+ install-info: install-info-am
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-am
+ 
+ install-ps: install-ps-am
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+ 
+ mostlyclean-am: mostlyclean-compile mostlyclean-generic
+ 
+ pdf: pdf-am
+ 
+ pdf-am:
+ 
+ ps: ps-am
+ 
+ ps-am:
+ 
+ uninstall-am: uninstall-binPROGRAMS
+ 
+ .MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ 	clean-generic clean-noinstPROGRAMS ctags distclean \
+ 	distclean-compile distclean-generic distclean-tags distdir dvi \
+ 	dvi-am html html-am info info-am install install-am \
+ 	install-binPROGRAMS install-data install-data-am install-dvi \
+ 	install-dvi-am install-exec install-exec-am install-html \
+ 	install-html-am install-info install-info-am install-man \
+ 	install-pdf install-pdf-am install-ps install-ps-am \
+ 	install-strip installcheck installcheck-am installdirs \
+ 	maintainer-clean maintainer-clean-generic mostlyclean \
+ 	mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ 	tags uninstall uninstall-am uninstall-binPROGRAMS
+ 
+ 
+ # We need a linear ordering to prevent race condition in parallel make.
+ # See the node ``(automake)Multiple Outputs'' for an explanation.
+ # Make sure this matches with order in which makedoc.c creates these
+ # files.
+ doc.c: key.c
+ key.c: funs.h
+ 
+ # Make the target only funs.h even though we create all the
+ # $(generated_sources) so that parallel makes won't do the rm && makedoc
+ # more than once.
+ funs.h: makedoc$(EXEEXT) $(cmd_sources)
+ 	rm -f $(generated_sources)
+ 	$(top_builddir)/$(native_tools)/info/makedoc $(cmd_sources)
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/info/README texinfo-4.13/info/README
*** texinfo-4.12/info/README	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/README	Sun Apr 11 10:56:45 2004
***************
*** 0 ****
--- 1,30 ----
+ $Id: README,v 1.3 2004/04/11 17:56:45 karl Exp $
+ texinfo/info/README
+ 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ Info 2.0 is a complete rewrite of the original standalone Info I wrote in
+ 1987, the first program I wrote for rms.  That program was something like
+ my second Unix program ever, and my die-hard machine language coding habits
+ tended to show through.  I found the original Info hard to read and
+ maintain, and thus decided to write this one.
+ 
+ The rewrite consists of about 12,000 lines of code written in about 12
+ days.  I believe this version of Info to be in much better shape than the
+ original Info.
+ 
+ Info 2.0 is substantially different from its original standalone
+ predecessor.  It appears almost identical to the GNU Emacs version, but has
+ the advantages of smaller size, ease of portability, and a built in library
+ which can be used in other programs (to get or display documentation from
+ Info files, for example).
+ 
+ A full listing of the commands available in Info can be gotten by typing
+ `?' while within an Info window.  This produces a node in a window which
+ can be viewed just like any Info node.
+ 
+ --Brian Fox <bfox@gnu.org>
diff -Nrc2 texinfo-4.12/info/dir.c texinfo-4.13/info/dir.c
*** texinfo-4.12/info/dir.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/dir.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,290 ----
+ /* dir.c -- how to build a special "dir" node from "localdir" files.
+    $Id: dir.c,v 1.8 2008/06/11 09:55:41 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2004, 2007, 
+    2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+   Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "info-utils.h"
+ #include "filesys.h"
+ #include "tilde.h"
+ 
+ /* The "dir" node can be built from the contents of a file called "dir",
+    with the addition of the menus of every file named in the array
+    dirs_to_add which are found in INFOPATH. */
+ 
+ static void add_menu_to_file_buffer (char *contents, long int size,
+     FILE_BUFFER *fb);
+ static void insert_text_into_fb_at_binding (FILE_BUFFER *fb,
+     SEARCH_BINDING *binding, char *text, int textlen);
+ void maybe_build_dir_node (char *dirname);
+ 
+ static char *dirs_to_add[] = {
+   "dir", "localdir", NULL
+ };
+ 
+ 
+ /* Return zero if the file represented in the stat structure TEST has
+    already been seen, nonzero else.  */
+ 
+ typedef struct
+ {
+   dev_t device;
+   ino_t inode;
+ } dir_file_list_entry_type;
+ 
+ static int
+ new_dir_file_p (struct stat *test)
+ {
+   static unsigned dir_file_list_len = 0;
+   static dir_file_list_entry_type *dir_file_list = NULL;
+   unsigned i;
+   
+   for (i = 0; i < dir_file_list_len; i++)
+     {
+       dir_file_list_entry_type entry;
+       entry = dir_file_list[i];
+       if (entry.device == test->st_dev && entry.inode == test->st_ino)
+         return 0;
+     }
+   
+   dir_file_list_len++;
+   dir_file_list = xrealloc (dir_file_list, 
+                         dir_file_list_len * sizeof (dir_file_list_entry_type));
+   dir_file_list[dir_file_list_len - 1].device = test->st_dev;
+   dir_file_list[dir_file_list_len - 1].inode = test->st_ino;
+   return 1;
+ }
+ 
+ 
+ void
+ maybe_build_dir_node (char *dirname)
+ {
+   int path_index, update_tags;
+   char *this_dir;
+   FILE_BUFFER *dir_buffer = info_find_file (dirname);
+ 
+   /* If there is no "dir" in the current info path, we cannot build one
+      from nothing. */
+   if (!dir_buffer)
+     return;
+ 
+   /* If this directory has already been built, return now. */
+   if (dir_buffer->flags & N_CannotGC)
+     return;
+ 
+   /* Initialize the list we use to avoid reading the same dir file twice
+      with the dir file just found.  */
+   new_dir_file_p (&dir_buffer->finfo);
+   
+   path_index = update_tags = 0;
+ 
+   /* Using each element of the path, check for one of the files in
+      DIRS_TO_ADD.  Do not check for "localdir.info.Z" or anything else.
+      Only files explictly named are eligible.  This is a design decision.
+      There can be an info file name "localdir.info" which contains
+      information on the setting up of "localdir" files. */
+   while ((this_dir = extract_colon_unit (infopath, &path_index)))
+     {
+       register int da_index;
+       char *from_file;
+ 
+       /* Expand a leading tilde if one is present. */
+       if (*this_dir == '~')
+         {
+           char *tilde_expanded_dirname;
+ 
+           tilde_expanded_dirname = tilde_expand_word (this_dir);
+           if (tilde_expanded_dirname != this_dir)
+             {
+               free (this_dir);
+               this_dir = tilde_expanded_dirname;
+             }
+         }
+ 
+       /* For every different file named in DIRS_TO_ADD found in the
+          search path, add that file's menu to our "dir" node. */
+       for (da_index = 0; (from_file = dirs_to_add[da_index]); da_index++)
+         {
+           struct stat finfo;
+           int statable;
+           int namelen = strlen (from_file);
+           char *fullpath = xmalloc (3 + strlen (this_dir) + namelen);
+           
+           strcpy (fullpath, this_dir);
+           if (!IS_SLASH (fullpath[strlen (fullpath) - 1]))
+             strcat (fullpath, "/");
+           strcat (fullpath, from_file);
+ 
+           statable = (stat (fullpath, &finfo) == 0);
+ 
+           /* Only add this file if we have not seen it before.  */
+           if (statable && S_ISREG (finfo.st_mode) && new_dir_file_p (&finfo))
+             {
+               long filesize;
+ 	      int compressed;
+               char *contents = filesys_read_info_file (fullpath, &filesize,
+                                                        &finfo, &compressed);
+               if (contents)
+                 {
+                   update_tags++;
+                   add_menu_to_file_buffer (contents, filesize, dir_buffer);
+                   free (contents);
+                 }
+             }
+ 
+           free (fullpath);
+         }
+       free (this_dir);
+     }
+ 
+   if (update_tags)
+     build_tags_and_nodes (dir_buffer);
+ 
+   /* Flag that the dir buffer has been built. */
+   dir_buffer->flags |= N_CannotGC;
+ }
+ 
+ /* Given CONTENTS and FB (a file buffer), add the menu found in CONTENTS
+    to the menu found in FB->contents.  Second argument SIZE is the total
+    size of CONTENTS. */
+ static void
+ add_menu_to_file_buffer (char *contents, long int size, FILE_BUFFER *fb)
+ {
+   SEARCH_BINDING contents_binding, fb_binding;
+   long contents_offset, fb_offset;
+ 
+   contents_binding.buffer = contents;
+   contents_binding.start = 0;
+   contents_binding.end = size;
+   contents_binding.flags = S_FoldCase | S_SkipDest;
+ 
+   fb_binding.buffer = fb->contents;
+   fb_binding.start = 0;
+   fb_binding.end = fb->filesize;
+   fb_binding.flags = S_FoldCase | S_SkipDest;
+ 
+   /* Move to the start of the menus in CONTENTS and FB. */
+   contents_offset = search_forward (INFO_MENU_LABEL, &contents_binding);
+   fb_offset = search_forward (INFO_MENU_LABEL, &fb_binding);
+ 
+   /* If there is no menu in CONTENTS, quit now. */
+   if (contents_offset == -1)
+     return;
+ 
+   /* There is a menu in CONTENTS, and contents_offset points to the first
+      character following the menu starter string.  Skip all whitespace
+      and newline characters. */
+   contents_offset += skip_whitespace_and_newlines (contents + contents_offset);
+ 
+   /* If there is no menu in FB, make one. */
+   if (fb_offset == -1)
+     {
+       /* Find the start of the second node in this file buffer.  If there
+          is only one node, we will be adding the contents to the end of
+          this node. */
+       fb_offset = find_node_separator (&fb_binding);
+ 
+       /* If not even a single node separator, give up. */
+       if (fb_offset == -1)
+         return;
+ 
+       fb_binding.start = fb_offset;
+       fb_binding.start +=
+         skip_node_separator (fb_binding.buffer + fb_binding.start);
+ 
+       /* Try to find the next node separator. */
+       fb_offset = find_node_separator (&fb_binding);
+ 
+       /* If found one, consider that the start of the menu.  Otherwise, the
+          start of this menu is the end of the file buffer (i.e., fb->size). */
+       if (fb_offset != -1)
+         fb_binding.start = fb_offset;
+       else
+         fb_binding.start = fb_binding.end;
+ 
+       insert_text_into_fb_at_binding
+         (fb, &fb_binding, INFO_MENU_LABEL, strlen (INFO_MENU_LABEL));
+ 
+       fb_binding.buffer = fb->contents;
+       fb_binding.start = 0;
+       fb_binding.end = fb->filesize;
+       fb_offset = search_forward (INFO_MENU_LABEL, &fb_binding);
+       if (fb_offset == -1)
+         abort ();
+     }
+ 
+   /* CONTENTS_OFFSET and FB_OFFSET point to the starts of the menus that
+      appear in their respective buffers.  Add the remainder of CONTENTS
+      to the end of FB's menu. */
+   fb_binding.start = fb_offset;
+   fb_offset = find_node_separator (&fb_binding);
+   if (fb_offset != -1)
+     fb_binding.start = fb_offset;
+   else
+     fb_binding.start = fb_binding.end;
+ 
+   /* Leave exactly one blank line between directory entries. */
+   {
+     int num_found = 0;
+ 
+     while ((fb_binding.start > 0) &&
+            (whitespace_or_newline (fb_binding.buffer[fb_binding.start - 1])))
+       {
+         num_found++;
+         fb_binding.start--;
+       }
+ 
+     /* Optimize if possible. */
+     if (num_found >= 2)
+       {
+         fb_binding.buffer[fb_binding.start++] = '\n';
+         fb_binding.buffer[fb_binding.start++] = '\n';
+       }
+     else
+       {
+         /* Do it the hard way. */
+         insert_text_into_fb_at_binding (fb, &fb_binding, "\n\n", 2);
+         fb_binding.start += 2;
+       }
+   }
+ 
+   /* Insert the new menu. */
+   insert_text_into_fb_at_binding
+     (fb, &fb_binding, contents + contents_offset, size - contents_offset);
+ }
+ 
+ static void
+ insert_text_into_fb_at_binding (FILE_BUFFER *fb,
+     SEARCH_BINDING *binding, char *text, int textlen)
+ {
+   char *contents;
+   long start, end;
+ 
+   start = binding->start;
+   end = fb->filesize;
+ 
+   contents = xmalloc (fb->filesize + textlen + 1);
+   memcpy (contents, fb->contents, start);
+   memcpy (contents + start, text, textlen);
+   memcpy (contents + start + textlen, fb->contents + start, end - start);
+   free (fb->contents);
+   fb->contents = contents;
+   fb->filesize += textlen;
+   fb->finfo.st_size = fb->filesize;
+ }
diff -Nrc2 texinfo-4.12/info/display.c texinfo-4.13/info/display.c
*** texinfo-4.12/info/display.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/display.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,526 ----
+ /* display.c -- How to display Info windows.
+    $Id: display.c,v 1.16 2008/06/11 09:55:41 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 2003, 2004, 2006, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "display.h"
+ 
+ extern int info_any_buffered_input_p (void); /* Found in session.c. */
+ 
+ static void free_display (DISPLAY_LINE **display);
+ static DISPLAY_LINE **make_display (int width, int height);
+ 
+ void handle_tag (char *tag);
+ void handle_tag_start (char *tag);
+ void handle_tag_end (char *tag);
+ 
+ /* An array of display lines which tell us what is currently visible on
+    the display.  */
+ DISPLAY_LINE **the_display = NULL;
+ 
+ /* Non-zero means do no output. */
+ int display_inhibited = 0;
+ 
+ /* Initialize THE_DISPLAY to WIDTH and HEIGHT, with nothing in it. */
+ void
+ display_initialize_display (int width, int height)
+ {
+   free_display (the_display);
+   the_display = make_display (width, height);
+   display_clear_display (the_display);
+ }
+ 
+ /* Clear all of the lines in DISPLAY making the screen blank. */
+ void
+ display_clear_display (DISPLAY_LINE **display)
+ {
+   register int i;
+ 
+   for (i = 0; display[i]; i++)
+     {
+       display[i]->text[0] = '\0';
+       display[i]->textlen = 0;
+       display[i]->inverse = 0;
+     }
+ }
+ 
+ /* Non-zero if we didn't completely redisplay a window. */
+ int display_was_interrupted_p = 0;
+ 
+ /* Update the windows pointed to by WINDOW in the_display.  This actually
+    writes the text on the screen. */
+ void
+ display_update_display (WINDOW *window)
+ {
+   register WINDOW *win;
+ 
+   display_was_interrupted_p = 0;
+ 
+   /* For every window in the list, check contents against the display. */
+   for (win = window; win; win = win->next)
+     {
+       /* Only re-display visible windows which need updating. */
+       if (((win->flags & W_WindowVisible) == 0) ||
+           ((win->flags & W_UpdateWindow) == 0) ||
+           (win->height == 0))
+         continue;
+ 
+       display_update_one_window (win);
+       if (display_was_interrupted_p)
+         break;
+     }
+ 
+   /* Always update the echo area. */
+   display_update_one_window (the_echo_area);
+ }
+ 
+ void
+ handle_tag_start (char *tag)
+ {
+   /* TODO really handle this tag.  */
+   return;
+ }
+ 
+ void
+ handle_tag_end (char *tag)
+ {
+   /* TODO really handle this tag.  */
+   return;
+ }
+ 
+ void
+ handle_tag (char *tag)
+ {
+     if (tag[0] == '/')
+       {
+ 	tag++;
+ 	handle_tag_end (tag);
+       }
+     else
+       handle_tag_start (tag);
+ }
+ 
+ 
+ struct display_node_closure {
+   WINDOW *win;
+   DISPLAY_LINE **display;
+ };
+ 
+ static int
+ find_diff (const char *a, size_t alen, const char *b, size_t blen, int *ppos)
+ {
+   mbi_iterator_t itra, itrb;
+   int i = 0;
+   int pos = 0;
+   
+   for (i = 0, mbi_init (itra, a, alen), mbi_init (itrb, b, blen);
+        mbi_avail (itra) && mbi_avail (itrb);
+        mbi_advance (itra), mbi_advance (itrb))
+     {
+       if (mb_cmp (mbi_cur (itra), mbi_cur (itrb)))
+ 	break;
+       pos += mb_len (mbi_cur (itra));
+     }
+   *ppos = pos;
+   return i;
+ }
+ 
+ int
+ display_node_text(void *closure, size_t line_index,
+ 		  const char *src_line,
+ 		  char *printed_line, size_t pl_index, size_t pl_count)
+ {
+   struct display_node_closure *dn = closure;
+   WINDOW *win = dn->win;
+   DISPLAY_LINE **display = dn->display;
+   DISPLAY_LINE *entry = display[win->first_row + line_index];
+ 
+   /* We have the exact line as it should appear on the screen.
+      Check to see if this line matches the one already appearing
+      on the screen. */
+ 
+   /* If the window is very small, entry might be NULL. */
+   if (entry)
+     {
+       int i, off;
+ 	      
+       /* If the screen line is inversed, then we have to clear
+ 	 the line from the screen first.  Why, I don't know.
+ 	 (But don't do this if we have no visible entries, as can
+ 	 happen if the window is shrunk very small.)  */
+       if (entry->inverse
+ 	  /* Need to erase the line if it has escape sequences.  */
+ 	  || (raw_escapes_p && mbschr (entry->text, '\033') != 0))
+ 	{
+ 	  terminal_goto_xy (0, win->first_row + line_index);
+ 	  terminal_clear_to_eol ();
+ 	  entry->inverse = 0;
+ 	  entry->text[0] = '\0';
+ 	  entry->textlen = 0;
+ 	}
+ 
+       i = find_diff (printed_line, pl_index,
+ 		     entry->text, strlen (entry->text), &off);
+ 
+       /* If the lines are not the same length, or if they differed
+ 	 at all, we must do some redrawing. */
+       if (i != pl_count || pl_count != entry->textlen)
+ 	{
+ 	  /* Move to the proper point on the terminal. */
+ 	  terminal_goto_xy (i, win->first_row + line_index);
+ 	  /* If there is any text to print, print it. */
+ 	  if (i != pl_count)
+ 	    terminal_put_text (printed_line + i);
+ 	  
+ 	  /* If the printed text didn't extend all the way to the edge
+ 	     of the window, and text was appearing between here and the
+ 	     edge of the window, clear from here to the end of the
+ 	     line. */
+ 	  if ((pl_count < win->width && pl_count < entry->textlen)
+ 	      || entry->inverse)
+ 	    terminal_clear_to_eol ();
+ 	  
+ 	  fflush (stdout);
+ 	  
+ 	  /* Update the display text buffer. */
+ 	  if (strlen (printed_line) > (unsigned int) screenwidth)
+ 	    /* printed_line[] can include more than screenwidth
+ 	       characters, e.g. if multibyte encoding is used or
+ 	       if we are under -R and there are escape sequences
+ 	       in it.  However, entry->text was allocated (in
+ 	       display_initialize_display) for screenwidth
+ 	       bytes only.  */
+ 	    entry->text = xrealloc (entry->text, strlen (printed_line) + 1);
+ 	  strcpy (entry->text + off, printed_line + off);
+ 	  entry->textlen = pl_count;
+ 	  
+ 	  /* Lines showing node text are not in inverse.  Only modelines
+ 	     have that distinction. */
+ 	  entry->inverse = 0;
+ 	}
+     }
+ 
+   /* A line has been displayed, and the screen reflects that state.
+      If there is typeahead pending, then let that typeahead be read
+      now, instead of continuing with the display. */
+   if (info_any_buffered_input_p ())
+     {
+       display_was_interrupted_p = 1;
+       return 1;
+     }
+ 
+   if (line_index + 1 == win->height)
+     return 1;
+ 
+   return 0;
+ }
+ 
+ void
+ display_update_one_window (WINDOW *win)
+ {
+   size_t line_index = 0;
+   DISPLAY_LINE **display = the_display;
+ 
+   /* If display is inhibited, that counts as an interrupted display. */
+   if (display_inhibited)
+     display_was_interrupted_p = 1;
+ 
+   /* If the window has no height, or display is inhibited, quit now.
+      Strictly speaking, it should only be necessary to test if the
+      values are equal to zero, since window_new_screen_size should
+      ensure that the window height/width never becomes negative, but
+      since historically this has often been the culprit for crashes, do
+      our best to be doubly safe.  */
+   if (win->height <= 0 || win->width <= 0 || display_inhibited)
+     return;
+ 
+   /* If the window's first row doesn't appear in the_screen, then it
+      cannot be displayed.  This can happen when the_echo_area is the
+      window to be displayed, and the screen has shrunk to less than one
+      line. */
+   if ((win->first_row < 0) || (win->first_row > the_screen->height))
+     return;
+ 
+   if (win->node && win->line_starts)
+     {
+       struct display_node_closure dnc;
+ 
+       dnc.win = win;
+       dnc.display = the_display;
+       
+       line_index = process_node_text (win, win->line_starts[win->pagetop],
+ 				      1,
+ 				      display_node_text,
+ 				      &dnc);
+       if (display_was_interrupted_p)
+ 	return;
+     }
+   
+   /* We have reached the end of the node or the end of the window.  If it
+      is the end of the node, then clear the lines of the window from here
+      to the end of the window. */
+   for (; line_index < win->height; line_index++)
+     {
+       DISPLAY_LINE *entry = display[win->first_row + line_index];
+ 
+       /* If this line has text on it then make it go away. */
+       if (entry && entry->textlen)
+         {
+           entry->textlen = 0;
+           entry->text[0] = '\0';
+ 
+           terminal_goto_xy (0, win->first_row + line_index);
+           terminal_clear_to_eol ();
+         }
+     }
+ 
+   /* Finally, if this window has a modeline it might need to be redisplayed.
+      Check the window's modeline against the one in the display, and update
+      if necessary. */
+   if (!(win->flags & W_InhibitMode))
+     {
+       window_make_modeline (win);
+       line_index = win->first_row + win->height;
+ 
+       /* This display line must both be in inverse, and have the same
+          contents. */
+       if ((!display[line_index]->inverse) ||
+           (strcmp (display[line_index]->text, win->modeline) != 0))
+         {
+           terminal_goto_xy (0, line_index);
+           terminal_begin_inverse ();
+           terminal_put_text (win->modeline);
+           terminal_end_inverse ();
+           strcpy (display[line_index]->text, win->modeline);
+           display[line_index]->inverse = 1;
+           display[line_index]->textlen = strlen (win->modeline);
+           fflush (stdout);
+         }
+     }
+ 
+   fflush (stdout);
+ 
+   /* Okay, this window doesn't need updating anymore. */
+   win->flags &= ~W_UpdateWindow;
+ }
+ 
+ /* Scroll the region of the_display starting at START, ending at END, and
+    moving the lines AMOUNT lines.  If AMOUNT is less than zero, the lines
+    are moved up in the screen, otherwise down.  Actually, it is possible
+    for no scrolling to take place in the case that the terminal doesn't
+    support it.  This doesn't matter to us. */
+ void
+ display_scroll_display (int start, int end, int amount)
+ {
+   register int i, last;
+   DISPLAY_LINE *temp;
+ 
+   /* If this terminal cannot do scrolling, give up now. */
+   if (!terminal_can_scroll)
+     return;
+ 
+   /* If there isn't anything displayed on the screen because it is too
+      small, quit now. */
+   if (!the_display[0])
+     return;
+ 
+   /* If there is typeahead pending, then don't actually do any scrolling. */
+   if (info_any_buffered_input_p ())
+     return;
+ 
+   /* Do it on the screen. */
+   terminal_scroll_terminal (start, end, amount);
+ 
+   /* Now do it in the display buffer so our contents match the screen. */
+   if (amount > 0)
+     {
+       last = end + amount;
+ 
+       /* Shift the lines to scroll right into place. */
+       for (i = 0; i < (end - start); i++)
+         {
+           temp = the_display[last - i];
+           the_display[last - i] = the_display[end - i];
+           the_display[end - i] = temp;
+         }
+ 
+       /* The lines have been shifted down in the buffer.  Clear all of the
+          lines that were vacated. */
+       for (i = start; i != (start + amount); i++)
+         {
+           the_display[i]->text[0] = '\0';
+           the_display[i]->textlen = 0;
+           the_display[i]->inverse = 0;
+         }
+     }
+ 
+   if (amount < 0)
+     {
+       last = start + amount;
+       for (i = 0; i < (end - start); i++)
+         {
+           temp = the_display[last + i];
+           the_display[last + i] = the_display[start + i];
+           the_display[start + i] = temp;
+         }
+ 
+       /* The lines have been shifted up in the buffer.  Clear all of the
+          lines that are left over. */
+       for (i = end + amount; i != end; i++)
+         {
+           the_display[i]->text[0] = '\0';
+           the_display[i]->textlen = 0;
+           the_display[i]->inverse = 0;
+         }
+     }
+ }
+ 
+ /* Try to scroll lines in WINDOW.  OLD_PAGETOP is the pagetop of WINDOW before
+    having had its line starts recalculated.  OLD_STARTS is the list of line
+    starts that used to appear in this window.  OLD_COUNT is the number of lines
+    that appear in the OLD_STARTS array. */
+ void
+ display_scroll_line_starts (WINDOW *window, int old_pagetop,
+     char **old_starts, int old_count)
+ {
+   register int i, old, new;     /* Indices into the line starts arrays. */
+   int last_new, last_old;       /* Index of the last visible line. */
+   int old_first, new_first;     /* Index of the first changed line. */
+   int unchanged_at_top = 0;
+   int already_scrolled = 0;
+ 
+   /* Locate the first line which was displayed on the old window. */
+   old_first = old_pagetop;
+   new_first = window->pagetop;
+ 
+   /* Find the last line currently visible in this window. */
+   last_new = window->pagetop + (window->height - 1);
+   if (last_new > window->line_count)
+     last_new = window->line_count - 1;
+ 
+   /* Find the last line which used to be currently visible in this window. */
+   last_old = old_pagetop + (window->height - 1);
+   if (last_old > old_count)
+     last_old = old_count - 1;
+ 
+   for (old = old_first, new = new_first;
+        old < last_old && new < last_new;
+        old++, new++)
+     if (old_starts[old] != window->line_starts[new])
+       break;
+     else
+       unchanged_at_top++;
+ 
+   /* Loop through the old lines looking for a match in the new lines. */
+   for (old = old_first + unchanged_at_top; old < last_old; old++)
+     {
+       for (new = new_first; new < last_new; new++)
+         if (old_starts[old] == window->line_starts[new])
+           {
+             /* Find the extent of the matching lines. */
+             for (i = 0; (old + i) < last_old; i++)
+               if (old_starts[old + i] != window->line_starts[new + i])
+                 break;
+ 
+             /* Scroll these lines if there are enough of them. */
+             {
+               int start, end, amount;
+ 
+               start = (window->first_row
+                        + ((old + already_scrolled) - old_pagetop));
+               amount = new - (old + already_scrolled);
+               end = window->first_row + window->height;
+ 
+               /* If we are shifting the block of lines down, then the last
+                  AMOUNT lines will become invisible.  Thus, don't bother
+                  scrolling them. */
+               if (amount > 0)
+                 end -= amount;
+ 
+               if ((end - start) > 0)
+                 {
+                   display_scroll_display (start, end, amount);
+ 
+                   /* Some lines have been scrolled.  Simulate the scrolling
+                      by offsetting the value of the old index. */
+                   old += i;
+                   already_scrolled += amount;
+                 }
+             }
+           }
+     }
+ }
+ 
+ /* Move the screen cursor to directly over the current character in WINDOW. */
+ void
+ display_cursor_at_point (WINDOW *window)
+ {
+   int vpos, hpos;
+ 
+   vpos = window_line_of_point (window) - window->pagetop + window->first_row;
+   hpos = window_get_cursor_column (window);
+   terminal_goto_xy (hpos, vpos);
+   fflush (stdout);
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                   Functions Static to this File                  */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Make a DISPLAY_LINE ** with width and height. */
+ static DISPLAY_LINE **
+ make_display (int width, int height)
+ {
+   register int i;
+   DISPLAY_LINE **display;
+ 
+   display = xmalloc ((1 + height) * sizeof (DISPLAY_LINE *));
+ 
+   for (i = 0; i < height; i++)
+     {
+       display[i] = xmalloc (sizeof (DISPLAY_LINE));
+       display[i]->text = xmalloc (1 + width);
+       display[i]->textlen = 0;
+       display[i]->inverse = 0;
+     }
+   display[i] = NULL;
+   return display;
+ }
+ 
+ /* Free the storage allocated to DISPLAY. */
+ static void
+ free_display (DISPLAY_LINE **display)
+ {
+   register int i;
+   register DISPLAY_LINE *display_line;
+ 
+   if (!display)
+     return;
+ 
+   for (i = 0; (display_line = display[i]); i++)
+     {
+       free (display_line->text);
+       free (display_line);
+     }
+   free (display);
+ }
+ 
diff -Nrc2 texinfo-4.12/info/display.h texinfo-4.13/info/display.h
*** texinfo-4.12/info/display.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/display.h	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,79 ----
+ /* display.h -- How the display in Info is done.
+    $Id: display.h,v 1.8 2008/06/09 22:51:20 gray Exp $
+ 
+    This file is part of GNU Info, a program for reading online documentation
+    stored in Info format.
+ 
+    Copyright (C) 1993, 1997, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_DISPLAY_H
+ #define INFO_DISPLAY_H
+ 
+ #include "info-utils.h"
+ #include "terminal.h"
+ 
+ typedef struct {
+   char *text;			/* Text of the line as it appears. */
+   int textlen;			/* Printable Length of TEXT. */
+   int inverse;			/* Non-zero means this line is inverse. */
+ } DISPLAY_LINE;
+ 
+ /* An array of display lines which tell us what is currently visible on
+    the display.  */
+ extern DISPLAY_LINE **the_display;
+ 
+ /* Non-zero means do no output. */
+ extern int display_inhibited;
+ 
+ /* Non-zero if we didn't completely redisplay a window. */
+ extern int display_was_interrupted_p;
+ 
+ /* Initialize THE_DISPLAY to WIDTH and HEIGHT, with nothing in it. */
+ extern void display_initialize_display (int width, int height);
+ 
+ /* Clear all of the lines in DISPLAY making the screen blank. */
+ extern void display_clear_display (DISPLAY_LINE **display);
+ 
+ /* Update the windows pointed to by WINDOWS in THE_DISPLAY.  This actually
+    writes the text on the screen. */
+ extern void display_update_display (WINDOW *window);
+ 
+ /* Display WIN on THE_DISPLAY.  Unlike display_update_display (), this
+    function only does one window. */
+ extern void display_update_one_window (WINDOW *win);
+ 
+ /* Move the screen cursor to directly over the current character in WINDOW. */
+ extern void display_cursor_at_point (WINDOW *window);
+ 
+ /* Scroll the region of the_display starting at START, ending at END, and
+    moving the lines AMOUNT lines.  If AMOUNT is less than zero, the lines
+    are moved up in the screen, otherwise down.  Actually, it is possible
+    for no scrolling to take place in the case that the terminal doesn't
+    support it.  This doesn't matter to us. */
+ extern void display_scroll_display (int start, int end, int amount);
+ 
+ /* Try to scroll lines in WINDOW.  OLD_PAGETOP is the pagetop of WINDOW before
+    having had its line starts recalculated.  OLD_STARTS is the list of line
+    starts that used to appear in this window.  OLD_COUNT is the number of lines
+    that appear in the OLD_STARTS array. */
+ extern void display_scroll_line_starts (WINDOW *window, int old_pagetop,
+     char **old_starts, int old_count);
+ 
+ void handle_tag (char *tag);
+ 
+ #endif /* not INFO_DISPLAY_H */
diff -Nrc2 texinfo-4.12/info/doc.h texinfo-4.13/info/doc.h
*** texinfo-4.12/info/doc.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/doc.h	Wed Feb 27 10:32:22 2008
***************
*** 0 ****
--- 1,102 ----
+ /* doc.h -- Structures associating function pointers with documentation.
+    $Id: doc.h,v 1.7 2008/02/26 16:51:05 karl Exp $
+ 
+    Copyright (C) 1993, 2001, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #if !defined (DOC_H)
+ #define DOC_H
+ 
+ #include "info.h" /* for NAMED_FUNCTIONS, VFunction, etc.  */
+ 
+ #if defined (INFOKEY)
+ /* For each function, we keep track of the first defined key sequence
+    which invokes that function, for each different map.  This is so that
+    the dynamic documentation generation in infodoc.c (a) doesn't have to
+    search through copious KEYMAP_ENTRYs, and, more importantly, (b) the
+    user and programmer can choose the preferred key sequence that is
+    printed for any given function -- it's just the first one that
+    appears in the user's infokey file or the default keymaps in
+    infomap.c.
+ 
+    Each FUNCTION_DOC has a linked list of FUNCTION_KEYSEQ structs
+    hanging off it, which are created on startup when the user and/or
+    default keymaps are being parsed.  */
+ typedef struct function_keyseq
+ {
+   struct function_keyseq *next;
+   struct keymap_entry *map;
+   char *keyseq;
+ } FUNCTION_KEYSEQ;
+ 
+ #endif /* INFOKEY */
+ 
+ 
+ /* An array of FUNCTION_DOC structures is defined in doc.c, which is
+    automagically generated by the makedoc utility, whose job is to scan
+    through the source files for command function declarations and
+    compile a list of all the ones it finds.  This saves tedious
+    housekeeping and avoids errors of omission.  */
+ typedef struct
+ {
+   VFunction *func;
+ #if defined (NAMED_FUNCTIONS)
+   char *func_name;
+ #endif /* NAMED_FUNCTIONS */
+ #if defined (INFOKEY)
+   FUNCTION_KEYSEQ *keys;
+ #endif /* INFOKEY */
+    char *doc;
+ } FUNCTION_DOC;
+ 
+ extern FUNCTION_DOC function_doc_array[];
+ 
+ /* Under the old key-binding system, an info command is specified by
+    the pointer to its function.  Under the new INFOKEY binding system, 
+    it is specified by a pointer to the command's FUNCTION_DOC structure,
+    defined in doc.c, from which the pointer to the function can be
+    easily divined using the InfoFunction() extractor.  */
+ #if defined(INFOKEY)
+ typedef FUNCTION_DOC InfoCommand;
+ /* The cast to VFunction * prevents pgcc from complaining about
+    dereferencing a void *.  */
+ #define InfoFunction(ic) ((ic) ? (ic)->func : (VFunction *) NULL)
+ #define InfoCmd(fn) (&function_doc_array[A_##fn])
+ #define DocInfoCmd(fd) ((fd) && (fd)->func ? (fd) : NULL)
+ #else /* !INFOKEY */
+ typedef VFunction InfoCommand;
+ #define InfoFunction(vf) ((vf))
+ #define InfoCmd(fn) fn
+ #define DocInfoCmd(fd) ((fd)->func)
+ #endif /* !INFOKEY */
+ 
+ #include "infomap.h" /* for Keymap.  */
+ 
+ #if defined (NAMED_FUNCTIONS)
+ extern char *function_name (InfoCommand *cmd);
+ extern InfoCommand *named_function (char *name);
+ #endif /* NAMED_FUNCTIONS */
+ 
+ extern char *function_documentation (InfoCommand *cmd);
+ extern char *key_documentation (char key, Keymap map);
+ extern char *pretty_keyname (unsigned char key);
+ extern char *pretty_keyseq (char *keyseq);
+ extern char *where_is (Keymap map, InfoCommand *cmd);
+ extern char *replace_in_documentation (const char *string, int help_is_only_window_p);
+ extern void dump_map_to_message_buffer (char *prefix, Keymap map);
+ 
+ #endif /* !DOC_H */
diff -Nrc2 texinfo-4.12/info/dribble.c texinfo-4.13/info/dribble.c
*** texinfo-4.12/info/dribble.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/dribble.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,67 ----
+ /* dribble.c -- dribble files for Info.
+    $Id: dribble.c,v 1.7 2008/06/11 09:55:41 gray Exp $
+ 
+    Copyright (C) 1993, 1998, 2004, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "dribble.h"
+ 
+ /* When non-zero, it is a stream to write all input characters to for the
+    duration of this info session. */
+ FILE *info_dribble_file = NULL;
+ 
+ /* Open a dribble file named NAME, perhaps closing an already open one.
+    This sets the global variable INFO_DRIBBLE_FILE to the open stream. */
+ void
+ open_dribble_file (char *name)
+ {
+   /* Perhaps close existing dribble file. */
+   close_dribble_file ();
+ 
+   /* Keystrokes can be non-printable characters, so we need binary I/O.  */
+   info_dribble_file = fopen (name, FOPEN_WBIN);
+ 
+ #if defined (HAVE_SETVBUF)
+   if (info_dribble_file)
+ #  if defined (SETVBUF_REVERSED)
+     setvbuf (info_dribble_file, _IONBF, NULL, 1);
+ #  else
+     setvbuf (info_dribble_file, NULL, _IONBF, 1);
+ #  endif /* !SETVBUF_REVERSED */
+ #endif /* HAVE_SETVBUF */
+ }
+ 
+ /* If there is a dribble file already open, close it. */
+ void
+ close_dribble_file (void)
+ {
+   if (info_dribble_file)
+     {
+       fflush (info_dribble_file);
+       fclose (info_dribble_file);
+       info_dribble_file = NULL;
+     }
+ }
+ 
+ /* Write some output to our existing dribble file. */
+ void
+ dribble (unsigned char byte)
+ {
+   if (info_dribble_file)
+     fwrite (&byte, sizeof (unsigned char), 1, info_dribble_file);
+ }
diff -Nrc2 texinfo-4.12/info/dribble.h texinfo-4.13/info/dribble.h
*** texinfo-4.12/info/dribble.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/dribble.h	Sun Jul  1 14:20:29 2007
***************
*** 0 ****
--- 1,40 ----
+ /* dribble.h -- Functions and vars declared in dribble.c. */
+ 
+ /* This file is part of GNU Info, a program for reading online documentation
+    stored in Info format.
+ 
+    Copyright (C) 1993, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #if !defined (_DRIBBLE_H_)
+ #define _DRIBBLE_H_
+ 
+ /* When non-zero, it is a stream to write all input characters to for the
+    duration of this info session. */
+ extern FILE *info_dribble_file;
+ 
+ /* Open a dribble file named NAME, perhaps closing an already open one.
+    This sets the global variable INFO_DRIBBLE_FILE to the open stream. */
+ extern void open_dribble_file (char *name);
+ 
+ /* If there is a dribble file already open, close it. */
+ extern void close_dribble_file (void);
+ 
+ /* Write some output to our existing dribble file. */
+ extern void dribble (unsigned char byte);
+ 
+ #endif /* !_DRIBBLE_H_ */
diff -Nrc2 texinfo-4.12/info/echo-area.c texinfo-4.13/info/echo-area.c
*** texinfo-4.12/info/echo-area.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/echo-area.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,1525 ----
+ /* echo-area.c -- how to read a line in the echo area.
+    $Id: echo-area.c,v 1.14 2008/06/11 09:55:41 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 1999, 2001, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ 
+ #if defined (FD_SET)
+ #  if defined (hpux)
+ #    define fd_set_cast(x) (int *)(x)
+ #  else
+ #    define fd_set_cast(x) (fd_set *)(x)
+ #  endif /* !hpux */
+ #endif /* FD_SET */
+ 
+ /* Non-zero means that C-g was used to quit reading input. */
+ int info_aborted_echo_area = 0;
+ 
+ /* Non-zero means that the echo area is being used to read input. */
+ int echo_area_is_active = 0;
+ 
+ /* The address of the last command executed in the echo area. */
+ VFunction *ea_last_executed_command = NULL;
+ 
+ /* Non-zero means that the last command executed while reading input
+    killed some text. */
+ int echo_area_last_command_was_kill = 0;
+ 
+ /* Variables which hold on to the current state of the input line. */
+ static char input_line[1 + EA_MAX_INPUT];
+ static const char *input_line_prompt;
+ static int input_line_point;
+ static int input_line_beg;
+ static int input_line_end;
+ static NODE input_line_node = {
+   NULL, NULL, NULL, input_line,
+   EA_MAX_INPUT, 0, N_IsInternal
+ };
+ 
+ static void echo_area_initialize_node (void);
+ static void push_echo_area (void), pop_echo_area (void);
+ static int echo_area_stack_contains_completions_p (void);
+ 
+ static void ea_kill_text (int from, int to);
+ 
+ /* Non-zero means we force the user to complete. */
+ static int echo_area_must_complete_p = 0;
+ static int completions_window_p (WINDOW *window);
+ 
+ /* If non-null, this is a window which was specifically created to display
+    possible completions output.  We remember it so we can delete it when
+    appropriate. */
+ static WINDOW *echo_area_completions_window = NULL;
+ 
+ /* Variables which keep track of the window which was active prior to
+    entering the echo area. */
+ static WINDOW *calling_window = NULL;
+ static NODE *calling_window_node = NULL;
+ static long calling_window_point = 0;
+ static long calling_window_pagetop = 0;
+ 
+ /* Remember the node and pertinent variables of the calling window. */
+ static void
+ remember_calling_window (WINDOW *window)
+ {
+   /* Only do this if the calling window is not the completions window, or,
+      if it is the completions window and there is no other window. */
+   if (!completions_window_p (window) ||
+       ((window == windows) && !(window->next)))
+     {
+       calling_window = window;
+       calling_window_node = window->node;
+       calling_window_point = window->point;
+       calling_window_pagetop = window->pagetop;
+     }
+ }
+ 
+ /* Restore the caller's window so that it shows the node that it was showing
+    on entry to info_read_xxx_echo_area (). */
+ static void
+ restore_calling_window (void)
+ {
+   register WINDOW *win, *compwin = NULL;
+ 
+   /* If the calling window is still visible, and it is the window that
+      we used for completions output, then restore the calling window. */
+   for (win = windows; win; win = win->next)
+     {
+       if (completions_window_p (win))
+         compwin = win;
+ 
+       if (win == calling_window && win == compwin)
+         {
+           window_set_node_of_window (calling_window, calling_window_node);
+           calling_window->point = calling_window_point;
+           calling_window->pagetop = calling_window_pagetop;
+           compwin = NULL;
+           break;
+         }
+     }
+ 
+   /* Delete the completions window if it is still present, it isn't the
+      last window on the screen, and there aren't any prior echo area reads
+      pending which created a completions window. */
+   if (compwin)
+     {
+       if ((compwin != windows || windows->next) &&
+           !echo_area_stack_contains_completions_p ())
+         {
+           WINDOW *next;
+           int pagetop = 0;
+           int start = 0;
+           int end = 0;
+           int amount = 0;
+ 
+           next = compwin->next;
+           if (next)
+             {
+               start = next->first_row;
+               end = start + next->height;
+               amount = - (compwin->height + 1);
+               pagetop = next->pagetop;
+             }
+ 
+           info_delete_window_internal (compwin);
+ 
+           /* This is not necessary because info_delete_window_internal ()
+              calls echo_area_inform_of_deleted_window (), which does the
+              right thing. */
+ #if defined (UNNECESSARY)
+           echo_area_completions_window = NULL;
+ #endif /* UNNECESSARY */
+ 
+           if (next)
+             {
+               display_scroll_display (start, end, amount);
+               next->pagetop = pagetop;
+               display_update_display (windows);
+             }
+         }
+     }
+ }
+ 
+ /* Set up a new input line with PROMPT. */
+ static void
+ initialize_input_line (const char *prompt)
+ {
+   input_line_prompt = prompt;
+   if (prompt)
+     strcpy (input_line, prompt);
+   else
+     input_line[0] = '\0';
+ 
+   input_line_beg = input_line_end = input_line_point = strlen (prompt);
+ }
+ 
+ static char *
+ echo_area_after_read (void)
+ {
+   char *return_value;
+ 
+   if (info_aborted_echo_area)
+     {
+       info_aborted_echo_area = 0;
+       return_value = NULL;
+     }
+   else
+     {
+       if (input_line_beg == input_line_end)
+         return_value = xstrdup ("");
+       else
+         {
+           int line_len = input_line_end - input_line_beg;
+           return_value = xmalloc (1 + line_len);
+           strncpy (return_value, &input_line[input_line_beg], line_len);
+           return_value[line_len] = '\0';
+         }
+     }
+   return return_value;
+ }
+ 
+ /* Read a line of text in the echo area.  Return a malloc ()'ed string,
+    or NULL if the user aborted out of this read.  WINDOW is the currently
+    active window, so that we can restore it when we need to.  PROMPT, if
+    non-null, is a prompt to print before reading the line. */
+ char *
+ info_read_in_echo_area (WINDOW *window, const char *prompt)
+ {
+   char *line;
+ 
+   /* If the echo area is already active, remember the current state. */
+   if (echo_area_is_active)
+     push_echo_area ();
+ 
+   /* Initialize our local variables. */
+   initialize_input_line (prompt);
+ 
+   /* Initialize the echo area for the first (but maybe not the last) time. */
+   echo_area_initialize_node ();
+ 
+   /* Save away the original node of this window, and the window itself,
+      so echo area commands can temporarily use this window. */
+   remember_calling_window (window);
+ 
+   /* Let the rest of Info know that the echo area is active. */
+   echo_area_is_active++;
+   active_window = the_echo_area;
+ 
+   /* Read characters in the echo area. */
+   info_read_and_dispatch ();
+ 
+   echo_area_is_active--;
+ 
+   /* Restore the original active window and show point in it. */
+   active_window = calling_window;
+   restore_calling_window ();
+   display_cursor_at_point (active_window);
+   fflush (stdout);
+ 
+   /* Get the value of the line. */
+   line = echo_area_after_read ();
+ 
+   /* If there is a previous loop waiting for us, restore it now. */
+   if (echo_area_is_active)
+     pop_echo_area ();
+ 
+   /* Return the results to the caller. */
+   return line;
+ }
+ 
+ /* (re) Initialize the echo area node. */
+ static void
+ echo_area_initialize_node (void)
+ {
+   register int i;
+ 
+   for (i = input_line_end; (unsigned int) i < sizeof (input_line); i++)
+     input_line[i] = ' ';
+ 
+   input_line[i - 1] = '\n';
+   window_set_node_of_window (the_echo_area, &input_line_node);
+   input_line[input_line_end] = '\n';
+ }
+ 
+ /* Prepare to read characters in the echo area.  This can initialize the
+    echo area node, but its primary purpose is to side effect the input
+    line buffer contents. */
+ void
+ echo_area_prep_read (void)
+ {
+   if (the_echo_area->node != &input_line_node)
+     echo_area_initialize_node ();
+ 
+   the_echo_area->point = input_line_point;
+   input_line[input_line_end] = '\n';
+   display_update_one_window (the_echo_area);
+   display_cursor_at_point (active_window);
+ }
+ 
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                   Echo Area Movement Commands                    */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ DECLARE_INFO_COMMAND (ea_forward, _("Move forward a character"))
+ {
+   if (count < 0)
+     ea_backward (window, -count, key);
+   else
+     {
+       input_line_point += count;
+       if (input_line_point > input_line_end)
+         input_line_point = input_line_end;
+     }
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_backward, _("Move backward a character"))
+ {
+   if (count < 0)
+     ea_forward (window, -count, key);
+   else
+     {
+       input_line_point -= count;
+       if (input_line_point < input_line_beg)
+         input_line_point = input_line_beg;
+     }
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_beg_of_line, _("Move to the start of this line"))
+ {
+   input_line_point = input_line_beg;
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_end_of_line, _("Move to the end of this line"))
+ {
+   input_line_point = input_line_end;
+ }
+ 
+ #define alphabetic(c) (islower (c) || isupper (c) || isdigit (c))
+ 
+ /* Move forward a word in the input line. */
+ DECLARE_INFO_COMMAND (ea_forward_word, _("Move forward a word"))
+ {
+   int c;
+ 
+   if (count < 0)
+     ea_backward_word (window, -count, key);
+   else
+     {
+       while (count--)
+         {
+           if (input_line_point == input_line_end)
+             return;
+ 
+           /* If we are not in a word, move forward until we are in one.
+              Then, move forward until we hit a non-alphabetic character. */
+           c = input_line[input_line_point];
+ 
+           if (!alphabetic (c))
+             {
+               while (++input_line_point < input_line_end)
+                 {
+                   c = input_line[input_line_point];
+                   if (alphabetic (c))
+                     break;
+                 }
+             }
+ 
+           if (input_line_point == input_line_end)
+             return;
+ 
+           while (++input_line_point < input_line_end)
+             {
+               c = input_line[input_line_point];
+               if (!alphabetic (c))
+                 break;
+             }
+         }
+     }
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_backward_word, _("Move backward a word"))
+ {
+   int c;
+ 
+   if (count < 0)
+     ea_forward_word (window, -count, key);
+   else
+     {
+       while (count--)
+         {
+           if (input_line_point == input_line_beg)
+             return;
+ 
+           /* Like ea_forward_word (), except that we look at the
+              characters just before point. */
+ 
+           c = input_line[input_line_point - 1];
+ 
+           if (!alphabetic (c))
+             {
+               while ((--input_line_point) != input_line_beg)
+                 {
+                   c = input_line[input_line_point - 1];
+                   if (alphabetic (c))
+                     break;
+                 }
+             }
+ 
+           while (input_line_point != input_line_beg)
+             {
+               c = input_line[input_line_point - 1];
+               if (!alphabetic (c))
+                 break;
+               else
+                 --input_line_point;
+             }
+         }
+     }
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_delete, _("Delete the character under the cursor"))
+ {
+   register int i;
+ 
+   if (count < 0)
+     ea_rubout (window, -count, key);
+   else
+     {
+       if (input_line_point == input_line_end)
+         return;
+ 
+       if (info_explicit_arg || count > 1)
+         {
+           int orig_point;
+ 
+           orig_point = input_line_point;
+           ea_forward (window, count, key);
+           ea_kill_text (orig_point, input_line_point);
+           input_line_point = orig_point;
+         }
+       else
+         {
+           for (i = input_line_point; i < input_line_end; i++)
+             input_line[i] = input_line[i + 1];
+ 
+           input_line_end--;
+         }
+     }
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_rubout, _("Delete the character behind the cursor"))
+ {
+   if (count < 0)
+     ea_delete (window, -count, key);
+   else
+     {
+       int start;
+ 
+       if (input_line_point == input_line_beg)
+         return;
+ 
+       start = input_line_point;
+       ea_backward (window, count, key);
+ 
+       if (info_explicit_arg || count > 1)
+         ea_kill_text (start, input_line_point);
+       else
+         ea_delete (window, count, key);
+     }
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_abort, _("Cancel or quit operation"))
+ {
+   /* If any text, just discard it, and restore the calling window's node.
+      If no text, quit. */
+   if (input_line_end != input_line_beg)
+     {
+       terminal_ring_bell ();
+       input_line_end = input_line_point = input_line_beg;
+       if (calling_window->node != calling_window_node)
+         restore_calling_window ();
+     }
+   else
+     info_aborted_echo_area = 1;
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_newline, _("Accept (or force completion of) this line"))
+ {
+   /* Stub does nothing.  Simply here to see if it has been executed. */
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_quoted_insert, _("Insert next character verbatim"))
+ {
+   unsigned char character;
+ 
+   character = info_get_another_input_char ();
+   ea_insert (window, count, character);
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_insert, _("Insert this character"))
+ {
+   register int i;
+ 
+   if ((input_line_end + 1) == EA_MAX_INPUT)
+     {
+       terminal_ring_bell ();
+       return;
+     }
+ 
+   for (i = input_line_end + 1; i != input_line_point; i--)
+     input_line[i] = input_line[i - 1];
+ 
+   input_line[input_line_point] = key;
+   input_line_point++;
+   input_line_end++;
+   window_line_map_init (window);
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_tab_insert, _("Insert a TAB character"))
+ {
+   ea_insert (window, count, '\t');
+ }
+ 
+ /* Transpose the characters at point.  If point is at the end of the line,
+    then transpose the characters before point. */
+ DECLARE_INFO_COMMAND (ea_transpose_chars, _("Transpose characters at point"))
+ {
+   /* Handle conditions that would make it impossible to transpose
+      characters. */
+   if (!count || !input_line_point || (input_line_end - input_line_beg) < 2)
+     return;
+ 
+   while (count)
+     {
+       int t;
+       if (input_line_point == input_line_end)
+         {
+           t = input_line[input_line_point - 1];
+ 
+           input_line[input_line_point - 1] = input_line[input_line_point - 2];
+           input_line[input_line_point - 2] = t;
+         }
+       else
+         {
+           t = input_line[input_line_point];
+ 
+           input_line[input_line_point] = input_line[input_line_point - 1];
+           input_line[input_line_point - 1] = t;
+ 
+           if (count < 0 && input_line_point != input_line_beg)
+             input_line_point--;
+           else
+             input_line_point++;
+         }
+ 
+       if (count < 0)
+         count++;
+       else
+         count--;
+     }
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                   Echo Area Killing and Yanking                  */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ static char **kill_ring = NULL;
+ static int kill_ring_index = 0; /* Number of kills appearing in KILL_RING. */
+ static int kill_ring_slots = 0; /* Number of slots allocated to KILL_RING. */
+ static int kill_ring_loc = 0;   /* Location of current yank pointer. */
+ 
+ /* The largest number of kills that we remember at one time. */
+ static int max_retained_kills = 15;
+ 
+ DECLARE_INFO_COMMAND (ea_yank, _("Yank back the contents of the last kill"))
+ {
+   register int i;
+   register char *text;
+ 
+   if (!kill_ring_index)
+     {
+       inform_in_echo_area (_("Kill ring is empty"));
+       return;
+     }
+ 
+   text = kill_ring[kill_ring_loc];
+ 
+   for (i = 0; text[i]; i++)
+     ea_insert (window, 1, text[i]);
+ }
+ 
+ /* If the last command was yank, or yank_pop, and the text just before
+    point is identical to the current kill item, then delete that text
+    from the line, rotate the index down, and yank back some other text. */
+ DECLARE_INFO_COMMAND (ea_yank_pop, _("Yank back a previous kill"))
+ {
+   register int len;
+ 
+   if (((ea_last_executed_command != (VFunction *) ea_yank) &&
+        (ea_last_executed_command != (VFunction *) ea_yank_pop)) ||
+       (kill_ring_index == 0))
+     return;
+ 
+   len = strlen (kill_ring[kill_ring_loc]);
+ 
+   /* Delete the last yanked item from the line. */
+   {
+     register int i, counter;
+ 
+     counter = input_line_end - input_line_point;
+     
+     for (i = input_line_point - len; counter; i++, counter--)
+       input_line[i] = input_line[i + len];
+ 
+     input_line_end -= len;
+     input_line_point -= len;
+   }
+ 
+   /* Get a previous kill, and yank that. */
+   kill_ring_loc--;
+   if (kill_ring_loc < 0)
+     kill_ring_loc = kill_ring_index - 1;
+ 
+   ea_yank (window, count, key);
+ }
+ 
+ /* Delete the text from point to end of line. */
+ DECLARE_INFO_COMMAND (ea_kill_line, _("Kill to the end of the line"))
+ {
+   if (count < 0)
+     {
+       ea_kill_text (input_line_point, input_line_beg);
+       input_line_point = input_line_beg;
+     }
+   else
+     ea_kill_text (input_line_point, input_line_end);
+ }
+ 
+ /* Delete the text from point to beg of line. */
+ DECLARE_INFO_COMMAND (ea_backward_kill_line,
+                       _("Kill to the beginning of the line"))
+ {
+   if (count < 0)
+     ea_kill_text (input_line_point, input_line_end);
+   else
+     {
+       ea_kill_text (input_line_point, input_line_beg);
+       input_line_point = input_line_beg;
+     }
+ }
+ 
+ /* Delete from point to the end of the current word. */
+ DECLARE_INFO_COMMAND (ea_kill_word, _("Kill the word following the cursor"))
+ {
+   int orig_point = input_line_point;
+ 
+   if (count < 0)
+     ea_backward_kill_word (window, -count, key);
+   else
+     {
+       ea_forward_word (window, count, key);
+ 
+       if (input_line_point != orig_point)
+         ea_kill_text (orig_point, input_line_point);
+ 
+       input_line_point = orig_point;
+     }
+   window_line_map_init (window);
+ }
+ 
+ /* Delete from point to the start of the current word. */
+ DECLARE_INFO_COMMAND (ea_backward_kill_word,
+                       _("Kill the word preceding the cursor"))
+ {
+   int orig_point = input_line_point;
+ 
+   if (count < 0)
+     ea_kill_word (window, -count, key);
+   else
+     {
+       ea_backward_word (window, count, key);
+ 
+       if (input_line_point != orig_point)
+         ea_kill_text (orig_point, input_line_point);
+     }
+   window_line_map_init (window);
+ }
+ 
+ /* The way to kill something.  This appends or prepends to the last
+    kill, if the last command was a kill command.  If FROM is less
+    than TO, then the killed text is appended to the most recent kill,
+    otherwise it is prepended.  If the last command was not a kill command,
+    then a new slot is made for this kill. */
+ static void
+ ea_kill_text (int from, int to)
+ {
+   register int i, counter, distance;
+   int killing_backwards, slot;
+   char *killed_text;
+ 
+   killing_backwards = (from > to);
+ 
+   /* If killing backwards, reverse the values of FROM and TO. */
+   if (killing_backwards)
+     {
+       int temp = from;
+       from = to;
+       to = temp;
+     }
+ 
+   /* Remember the text that we are about to delete. */
+   distance = to - from;
+   killed_text = xmalloc (1 + distance);
+   strncpy (killed_text, &input_line[from], distance);
+   killed_text[distance] = '\0';
+ 
+   /* Actually delete the text from the line. */
+   counter = input_line_end - to;
+ 
+   for (i = from; counter; i++, counter--)
+     input_line[i] = input_line[i + distance];
+ 
+   input_line_end -= distance;
+ 
+   /* If the last command was a kill, append or prepend the killed text to
+      the last command's killed text. */
+   if (echo_area_last_command_was_kill)
+     {
+       char *old, *new;
+ 
+       slot = kill_ring_loc;
+       old = kill_ring[slot];
+       new = xmalloc (1 + strlen (old) + strlen (killed_text));
+ 
+       if (killing_backwards)
+         {
+           /* Prepend TEXT to current kill. */
+           strcpy (new, killed_text);
+           strcat (new, old);
+         }
+       else
+         {
+           /* Append TEXT to current kill. */
+           strcpy (new, old);
+           strcat (new, killed_text);
+         }
+ 
+       free (old);
+       free (killed_text);
+       kill_ring[slot] = new;
+     }
+   else
+     {
+       /* Try to store the kill in a new slot, unless that would cause there
+          to be too many remembered kills. */
+       slot = kill_ring_index;
+ 
+       if (slot == max_retained_kills)
+         slot = 0;
+ 
+       if (slot + 1 > kill_ring_slots)
+         kill_ring = xrealloc (kill_ring,
+ 			      (kill_ring_slots += max_retained_kills)
+ 			      * sizeof (char *));
+ 
+       if (slot != kill_ring_index)
+         free (kill_ring[slot]);
+       else
+         kill_ring_index++;
+ 
+       kill_ring[slot] = killed_text;
+ 
+       kill_ring_loc = slot;
+     }
+ 
+   /* Notice that the last command was a kill. */
+   echo_area_last_command_was_kill++;
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                      Echo Area Completion                        */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Pointer to an array of REFERENCE to complete over. */
+ static REFERENCE **echo_area_completion_items = NULL;
+ 
+ /* Sorted array of REFERENCE * which is the possible completions found in
+    the variable echo_area_completion_items.  If there is only one element,
+    it is the only possible completion. */
+ static REFERENCE **completions_found = NULL;
+ static int completions_found_index = 0;
+ static int completions_found_slots = 0;
+ 
+ /* The lowest common denominator found while completing. */
+ static REFERENCE *LCD_completion;
+ 
+ /* Internal functions used by the user calls. */
+ static void build_completions (void), completions_must_be_rebuilt (void);
+ 
+ /* Variable which holds the output of completions. */
+ static NODE *possible_completions_output_node = NULL;
+ 
+ static char *compwin_name = "*Completions*";
+ 
+ /* Return non-zero if WINDOW is a window used for completions output. */
+ static int
+ completions_window_p (WINDOW *window)
+ {
+   int result = 0;
+ 
+   if (internal_info_node_p (window->node) &&
+       (strcmp (window->node->nodename, compwin_name) == 0))
+     result = 1;
+ 
+   return result;
+ }
+ 
+ /* Workhorse for completion readers.  If FORCE is non-zero, the user cannot
+    exit unless the line read completes, or is empty. */
+ char *
+ info_read_completing_internal (WINDOW *window, const char *prompt,
+     REFERENCE **completions, int force)
+ {
+   char *line;
+ 
+   /* If the echo area is already active, remember the current state. */
+   if (echo_area_is_active)
+     push_echo_area ();
+ 
+   echo_area_must_complete_p = force;
+ 
+   /* Initialize our local variables. */
+   initialize_input_line (prompt);
+ 
+   /* Initialize the echo area for the first (but maybe not the last) time. */
+   echo_area_initialize_node ();
+ 
+   /* Save away the original node of this window, and the window itself,
+      so echo area commands can temporarily use this window. */
+   remember_calling_window (window);
+ 
+   /* Save away the list of items to complete over. */
+   echo_area_completion_items = completions;
+   completions_must_be_rebuilt ();
+ 
+   active_window = the_echo_area;
+   echo_area_is_active++;
+ 
+   /* Read characters in the echo area. */
+   while (1)
+     {
+       info_read_and_dispatch ();
+ 
+       line = echo_area_after_read ();
+ 
+       /* Force the completion to take place if the user hasn't accepted
+          a default or aborted, and if FORCE is active. */
+       if (force && line && *line && completions)
+         {
+           register int i;
+ 
+           build_completions ();
+ 
+           /* If there is only one completion, then make the line be that
+              completion. */
+           if (completions_found_index == 1)
+             {
+               free (line);
+               line = xstrdup (completions_found[0]->label);
+               break;
+             }
+ 
+           /* If one of the completions matches exactly, then that is okay, so
+              return the current line. */
+           for (i = 0; i < completions_found_index; i++)
+             if (mbscasecmp (completions_found[i]->label, line) == 0)
+               {
+                 free (line);
+                 line = xstrdup (completions_found[i]->label);
+                 break;
+               }
+ 
+           /* If no match, go back and try again. */
+           if (i == completions_found_index)
+             {
+               if (!completions_found_index)
+                 inform_in_echo_area (_("No completions"));
+               else
+                 inform_in_echo_area (_("Not complete"));
+               continue;
+             }
+         }
+       break;
+     }
+   echo_area_is_active--;
+ 
+   /* Restore the original active window and show point in it. */
+   active_window = calling_window;
+   restore_calling_window ();
+   display_cursor_at_point (active_window);
+   fflush (stdout);
+ 
+   echo_area_completion_items = NULL;
+   completions_must_be_rebuilt ();
+ 
+   /* If there is a previous loop waiting for us, restore it now. */
+   if (echo_area_is_active)
+     pop_echo_area ();
+ 
+   return line;
+ }
+   
+ /* Read a line in the echo area with completion over COMPLETIONS. */
+ char *
+ info_read_completing_in_echo_area (WINDOW *window,
+     const char *prompt, REFERENCE **completions)
+ {
+   return info_read_completing_internal (window, prompt, completions, 1);
+ }
+ 
+ /* Read a line in the echo area allowing completion over COMPLETIONS, but
+    not requiring it. */
+ char *
+ info_read_maybe_completing (WINDOW *window,
+     const char *prompt, REFERENCE **completions)
+ {
+   return info_read_completing_internal (window, prompt, completions, 0);
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_possible_completions, _("List possible completions"))
+ {
+   if (!echo_area_completion_items)
+     {
+       ea_insert (window, count, key);
+       return;
+     }
+ 
+   build_completions ();
+ 
+   if (!completions_found_index)
+     {
+       terminal_ring_bell ();
+       inform_in_echo_area (_("No completions"));
+     }
+   else if ((completions_found_index == 1) && (key != '?'))
+     {
+       inform_in_echo_area (_("Sole completion"));
+     }
+   else
+     {
+       register int i, l;
+       int limit, iterations, max_label = 0;
+ 
+       initialize_message_buffer ();
+       printf_to_message_buffer (completions_found_index == 1
+                                 ? _("One completion:\n")
+                                 : _("%d completions:\n"),
+ 				(void *) (long) completions_found_index,
+ 				NULL, NULL);
+ 
+       /* Find the maximum length of a label. */
+       for (i = 0; i < completions_found_index; i++)
+         {
+           int len = strlen (completions_found[i]->label);
+           if (len > max_label)
+             max_label = len;
+         }
+ 
+       max_label += 4;
+ 
+       /* Find out how many columns we should print in. */
+       limit = calling_window->width / max_label;
+       if (limit != 1 && (limit * max_label == calling_window->width))
+         limit--;
+ 
+       /* Avoid a possible floating exception.  If max_label > width then
+          the limit will be 0 and a divide-by-zero fault will result. */
+       if (limit == 0)
+         limit = 1;
+ 
+       /* How many iterations of the printing loop? */
+       iterations = (completions_found_index + (limit - 1)) / limit;
+ 
+       /* Watch out for special case.  If the number of completions is less
+          than LIMIT, then just do the inner printing loop. */
+       if (completions_found_index < limit)
+         iterations = 1;
+ 
+       /* Print the sorted items, up-and-down alphabetically. */
+       for (i = 0; i < iterations; i++)
+         {
+           register int j;
+ 
+           for (j = 0, l = i; j < limit; j++)
+             {
+               if (l >= completions_found_index)
+                 break;
+               else
+                 {
+                   char *label;
+                   int printed_length, k;
+ 
+                   label = completions_found[l]->label;
+                   printed_length = strlen (label);
+                   printf_to_message_buffer ("%s", label, NULL, NULL);
+ 
+                   if (j + 1 < limit)
+                     {
+                       for (k = 0; k < max_label - printed_length; k++)
+                         printf_to_message_buffer (" ", NULL, NULL, NULL);
+                     }
+                 }
+               l += iterations;
+             }
+           printf_to_message_buffer ("\n", NULL, NULL, NULL);
+         }
+ 
+       /* Make a new node to hold onto possible completions.  Don't destroy
+          dangling pointers. */
+       {
+         NODE *temp;
+ 
+         temp = message_buffer_to_node ();
+         add_gcable_pointer (temp->contents);
+         name_internal_node (temp, compwin_name);
+         possible_completions_output_node = temp;
+       }
+ 
+       /* Find a suitable window for displaying the completions output.
+          First choice is an existing window showing completions output.
+          If there is only one window, and it is large, make another
+          (smaller) window, and use that one.  Otherwise, use the caller's
+          window. */
+       {
+         WINDOW *compwin;
+ 
+         compwin = get_internal_info_window (compwin_name);
+ 
+         if (!compwin)
+           {
+             /* If we can split the window to display most of the completion
+                items, then do so. */
+             if (calling_window->height > (iterations * 2)
+ 		&& calling_window->height / 2 >= WINDOW_MIN_SIZE)
+               {
+                 int start, pagetop;
+ #ifdef SPLIT_BEFORE_ACTIVE
+                 int end;
+ #endif
+ 
+                 active_window = calling_window;
+ 
+                 /* Perhaps we can scroll this window on redisplay. */
+                 start = calling_window->first_row;
+                 pagetop = calling_window->pagetop;
+ 
+                 compwin =
+                   window_make_window (possible_completions_output_node);
+                 active_window = the_echo_area;
+                 window_change_window_height
+                   (compwin, -(compwin->height - (iterations + 2)));
+ 
+                 window_adjust_pagetop (calling_window);
+                 remember_calling_window (calling_window);
+ 
+ #if defined (SPLIT_BEFORE_ACTIVE)
+                 /* If the pagetop hasn't changed, scrolling the calling
+                    window is a reasonable thing to do. */
+                 if (pagetop == calling_window->pagetop)
+                   {
+                     end = start + calling_window->height;
+                     display_scroll_display
+                       (start, end, calling_window->prev->height + 1);
+                   }
+ #else /* !SPLIT_BEFORE_ACTIVE */
+                 /* If the pagetop has changed, set the new pagetop here. */
+                 if (pagetop != calling_window->pagetop)
+                   {
+                     int newtop = calling_window->pagetop;
+                     calling_window->pagetop = pagetop;
+                     set_window_pagetop (calling_window, newtop);
+                   }
+ #endif /* !SPLIT_BEFORE_ACTIVE */
+ 
+                 echo_area_completions_window = compwin;
+                 remember_window_and_node (compwin, compwin->node);
+               }
+             else
+               compwin = calling_window;
+           }
+ 
+         if (compwin->node != possible_completions_output_node)
+           {
+             window_set_node_of_window
+               (compwin, possible_completions_output_node);
+             remember_window_and_node (compwin, compwin->node);
+           }
+ 
+         display_update_display (windows);
+       }
+     }
+ }
+ 
+ DECLARE_INFO_COMMAND (ea_complete, _("Insert completion"))
+ {
+   if (!echo_area_completion_items)
+     {
+       ea_insert (window, count, key);
+       return;
+     }
+ 
+   /* If KEY is SPC, and we are not forcing completion to take place, simply
+      insert the key. */
+   if (!echo_area_must_complete_p && key == SPC)
+     {
+       ea_insert (window, count, key);
+       return;
+     }
+ 
+   if (ea_last_executed_command == (VFunction *) ea_complete)
+     {
+       /* If the keypress is a SPC character, and we have already tried
+          completing once, and there are several completions, then check
+          the batch of completions to see if any continue with a space.
+          If there are some, insert the space character and continue. */
+       if (key == SPC && completions_found_index > 1)
+         {
+           register int i, offset;
+ 
+           offset = input_line_end - input_line_beg;
+ 
+           for (i = 0; i < completions_found_index; i++)
+             if (completions_found[i]->label[offset] == ' ')
+               break;
+ 
+           if (completions_found[i])
+             ea_insert (window, 1, ' ');
+           else
+             {
+               ea_possible_completions (window, count, key);
+               return;
+             }
+         }
+       else
+         {
+           ea_possible_completions (window, count, key);
+           return;
+         }
+     }
+ 
+   input_line_point = input_line_end;
+   build_completions ();
+ 
+   if (!completions_found_index)
+     terminal_ring_bell ();
+   else if (LCD_completion->label[0] == '\0')
+     ea_possible_completions (window, count, key);
+   else
+     {
+       register int i;
+       input_line_point = input_line_end = input_line_beg;
+       for (i = 0; LCD_completion->label[i]; i++)
+         ea_insert (window, 1, LCD_completion->label[i]);
+     }
+ }
+ 
+ /* Utility REFERENCE used to store possible LCD. */
+ static REFERENCE LCD_reference = {
+     NULL, NULL, NULL, 0, 0, 0
+ };
+ 
+ static void remove_completion_duplicates (void);
+ 
+ /* Variables which remember the state of the most recent call
+    to build_completions (). */
+ static char *last_completion_request = NULL;
+ static REFERENCE **last_completion_items = NULL;
+ 
+ /* How to tell the completion builder to reset internal state. */
+ static void
+ completions_must_be_rebuilt (void)
+ {
+   maybe_free (last_completion_request);
+   last_completion_request = NULL;
+   last_completion_items = NULL;
+ }
+ 
+ /* Build a list of possible completions from echo_area_completion_items,
+    and the contents of input_line. */
+ static void
+ build_completions (void)
+ {
+   register int i, len;
+   register REFERENCE *entry;
+   char *request;
+   int informed_of_lengthy_job = 0;
+ 
+   /* If there are no items to complete over, exit immediately. */
+   if (!echo_area_completion_items)
+     {
+       completions_found_index = 0;
+       LCD_completion = NULL;
+       return;
+     }
+ 
+   /* Check to see if this call to build completions is the same as the last
+      call to build completions. */
+   len = input_line_end - input_line_beg;
+   request = xmalloc (1 + len);
+   strncpy (request, &input_line[input_line_beg], len);
+   request[len] = '\0';
+ 
+   if (last_completion_request && last_completion_items &&
+       last_completion_items == echo_area_completion_items &&
+       (strcmp (last_completion_request, request) == 0))
+     {
+       free (request);
+       return;
+     }
+ 
+   maybe_free (last_completion_request);
+   last_completion_request = request;
+   last_completion_items = echo_area_completion_items;
+ 
+   /* Always start at the beginning of the list. */
+   completions_found_index = 0;
+   LCD_completion = NULL;
+ 
+   for (i = 0; (entry = echo_area_completion_items[i]); i++)
+     {
+       if (mbsncasecmp (request, entry->label, len) == 0)
+         add_pointer_to_array (entry, completions_found_index,
+                               completions_found, completions_found_slots,
+                               20, REFERENCE *);
+ 
+       if (!informed_of_lengthy_job && completions_found_index > 100)
+         {
+           informed_of_lengthy_job = 1;
+           window_message_in_echo_area (_("Building completions..."),
+               NULL, NULL);
+         }
+     }
+ 
+   if (!completions_found_index)
+     return;
+ 
+   /* Sort and prune duplicate entries from the completions array. */
+   remove_completion_duplicates ();
+ 
+   /* If there is only one completion, just return that. */
+   if (completions_found_index == 1)
+     {
+       LCD_completion = completions_found[0];
+       return;
+     }
+ 
+   /* Find the least common denominator. */
+   {
+     long shortest = 100000;
+ 
+     for (i = 1; i < completions_found_index; i++)
+       {
+         register int j;
+         int c1, c2;
+ 
+         for (j = 0;
+              (c1 = info_tolower (completions_found[i - 1]->label[j])) &&
+              (c2 = info_tolower (completions_found[i]->label[j]));
+              j++)
+           if (c1 != c2)
+             break;
+ 
+         if (shortest > j)
+           shortest = j;
+       }
+ 
+     maybe_free (LCD_reference.label);
+     LCD_reference.label = xmalloc (1 + shortest);
+     /* Since both the sorting done inside remove_completion_duplicates
+        and all the comparisons above are case-insensitive, it's
+        possible that the completion we are going to return is
+        identical to what the user typed but for the letter-case.  This
+        is confusing, since the user could type FOOBAR<TAB> and get her
+        string change letter-case for no good reason.  So try to find a
+        possible completion whose letter-case is identical, and if so,
+        use that.  */
+     if (completions_found_index > 1)
+       {
+ 	int req_len = strlen (request);
+ 
+         for (i = 0; i < completions_found_index; i++)
+           if (strncmp (request, completions_found[i]->label, req_len) == 0)
+             break;
+         /* If none of the candidates match exactly, use the first one.  */
+         if (i >= completions_found_index)
+           i = 0;
+       }
+     strncpy (LCD_reference.label, completions_found[i]->label, shortest);
+     LCD_reference.label[shortest] = '\0';
+     LCD_completion = &LCD_reference;
+   }
+ 
+   if (informed_of_lengthy_job)
+     echo_area_initialize_node ();
+ }
+ 
+ /* Function called by qsort. */
+ static int
+ compare_references (const void *entry1, const void *entry2)
+ {
+   REFERENCE **e1 = (REFERENCE **) entry1;
+   REFERENCE **e2 = (REFERENCE **) entry2;
+ 
+   return mbscasecmp ((*e1)->label, (*e2)->label);
+ }
+ 
+ /* Prune duplicate entries from COMPLETIONS_FOUND. */
+ static void
+ remove_completion_duplicates (void)
+ {
+   register int i, j;
+   REFERENCE **temp;
+   int newlen;
+ 
+   if (!completions_found_index)
+     return;
+ 
+   /* Sort the items. */
+   qsort (completions_found, completions_found_index, sizeof (REFERENCE *),
+          compare_references);
+ 
+   for (i = 0, newlen = 1; i < completions_found_index - 1; i++)
+     {
+       if (strcmp (completions_found[i]->label,
+                   completions_found[i + 1]->label) == 0)
+         completions_found[i] = NULL;
+       else
+         newlen++;
+     }
+ 
+   /* We have marked all the dead slots.  It is faster to copy the live slots
+      twice than to prune the dead slots one by one. */
+   temp = xmalloc ((1 + newlen) * sizeof (REFERENCE *));
+   for (i = 0, j = 0; i < completions_found_index; i++)
+     if (completions_found[i])
+       temp[j++] = completions_found[i];
+ 
+   for (i = 0; i < newlen; i++)
+     completions_found[i] = temp[i];
+ 
+   completions_found[i] = NULL;
+   completions_found_index = newlen;
+   free (temp);
+ }
+ 
+ /* Scroll the "other" window.  If there is a window showing completions, scroll
+    that one, otherwise scroll the window which was active on entering the read
+    function. */
+ DECLARE_INFO_COMMAND (ea_scroll_completions_window, _("Scroll the completions window"))
+ {
+   WINDOW *compwin;
+   int old_pagetop;
+ 
+   compwin = get_internal_info_window (compwin_name);
+ 
+   if (!compwin)
+     compwin = calling_window;
+ 
+   old_pagetop = compwin->pagetop;
+ 
+   /* Let info_scroll_forward () do the work, and print any messages that
+      need to be displayed. */
+   info_scroll_forward (compwin, count, key);
+ }
+ 
+ /* Function which gets called when an Info window is deleted while the
+    echo area is active.  WINDOW is the window which has just been deleted. */
+ void
+ echo_area_inform_of_deleted_window (WINDOW *window)
+ {
+   /* If this is the calling_window, forget what we remembered about it. */
+   if (window == calling_window)
+     {
+       if (active_window != the_echo_area)
+         remember_calling_window (active_window);
+       else
+         remember_calling_window (windows);
+     }
+ 
+   /* If this window was the echo_area_completions_window, then notice that
+      the window has been deleted. */
+   if (window == echo_area_completions_window)
+     echo_area_completions_window = NULL;
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                 Pushing and Popping the Echo Area                */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Push and Pop the echo area. */
+ typedef struct {
+   char *line;
+   const char *prompt;
+   REFERENCE **comp_items;
+   int point, beg, end;
+   int must_complete;
+   NODE node;
+   WINDOW *compwin;
+ } PUSHED_EA;
+ 
+ static PUSHED_EA **pushed_echo_areas = NULL;
+ static int pushed_echo_areas_index = 0;
+ static int pushed_echo_areas_slots = 0;
+ 
+ /* Pushing the echo_area has a side effect of zeroing the completion_items. */
+ static void
+ push_echo_area (void)
+ {
+   PUSHED_EA *pushed;
+ 
+   pushed = xmalloc (sizeof (PUSHED_EA));
+   pushed->line = xstrdup (input_line);
+   pushed->prompt = input_line_prompt;
+   pushed->point = input_line_point;
+   pushed->beg = input_line_beg;
+   pushed->end = input_line_end;
+   pushed->node = input_line_node;
+   pushed->comp_items = echo_area_completion_items;
+   pushed->must_complete = echo_area_must_complete_p;
+   pushed->compwin = echo_area_completions_window;
+ 
+   add_pointer_to_array (pushed, pushed_echo_areas_index, pushed_echo_areas,
+                         pushed_echo_areas_slots, 4, PUSHED_EA *);
+ 
+   echo_area_completion_items = NULL;
+ }
+ 
+ static void
+ pop_echo_area (void)
+ {
+   PUSHED_EA *popped;
+ 
+   popped = pushed_echo_areas[--pushed_echo_areas_index];
+ 
+   strcpy (input_line, popped->line);
+   free (popped->line);
+   input_line_prompt = popped->prompt;
+   input_line_point = popped->point;
+   input_line_beg = popped->beg;
+   input_line_end = popped->end;
+   input_line_node = popped->node;
+   echo_area_completion_items = popped->comp_items;
+   echo_area_must_complete_p = popped->must_complete;
+   echo_area_completions_window = popped->compwin;
+   completions_must_be_rebuilt ();
+ 
+   /* If the completion window no longer exists, forget about it. */
+   if (echo_area_completions_window)
+     {
+       register WINDOW *win;
+ 
+       for (win = windows; win; win = win->next)
+         if (echo_area_completions_window == win)
+           break;
+ 
+       /* If the window wasn't found, then it has already been deleted. */
+       if (!win)
+         echo_area_completions_window = NULL;
+     }
+ 
+   free (popped);
+ }
+ 
+ /* Returns non-zero if any of the prior stacked calls to read in the echo
+    area produced a completions window. */
+ static int
+ echo_area_stack_contains_completions_p (void)
+ {
+   register int i;
+ 
+   for (i = 0; i < pushed_echo_areas_index; i++)
+     if (pushed_echo_areas[i]->compwin)
+       return 1;
+ 
+   return 0;
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*             Error Messages While Reading in Echo Area            */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ #if defined (HAVE_SYS_TIME_H)
+ #  include <sys/time.h>
+ #  define HAVE_STRUCT_TIMEVAL
+ #endif /* HAVE_SYS_TIME_H */
+ 
+ static void
+ pause_or_input (void)
+ {
+ #ifdef FD_SET
+   struct timeval timer;
+   fd_set readfds;
+   int ready;
+ 
+   FD_ZERO (&readfds);
+   FD_SET (fileno (stdin), &readfds);
+   timer.tv_sec = 2;
+   timer.tv_usec = 0;
+   ready = select (fileno (stdin) + 1, &readfds, NULL, NULL, &timer);
+ #endif /* FD_SET */
+ }
+ 
+ /* Print MESSAGE right after the end of the current line, and wait
+    for input or a couple of seconds, whichever comes first.  Then flush the
+    informational message that was printed. */
+ void
+ inform_in_echo_area (const char *message)
+ {
+   int i;
+   char *text;
+   int avail = EA_MAX_INPUT + 1 - input_line_end;
+ 
+   text = xstrdup (message);
+   for (i = 0; text[i] && text[i] != '\n' && i < avail; i++)
+     ;
+   text[i] = 0;
+ 
+   echo_area_initialize_node ();
+   sprintf (&input_line[input_line_end], "%s[%s]\n",
+            echo_area_is_active ? " ": "", text);
+   free (text);
+   the_echo_area->point = input_line_point;
+   display_update_one_window (the_echo_area);
+   display_cursor_at_point (active_window);
+   fflush (stdout);
+   pause_or_input ();
+   echo_area_initialize_node ();
+ }
diff -Nrc2 texinfo-4.12/info/echo-area.h texinfo-4.13/info/echo-area.h
*** texinfo-4.12/info/echo-area.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/echo-area.h	Wed Feb 27 10:32:22 2008
***************
*** 0 ****
--- 1,84 ----
+ /* echo-area.h -- Functions used in reading information from the echo area.
+    $Id: echo-area.h,v 1.8 2008/02/26 16:51:05 karl Exp $
+ 
+    This file is part of GNU Info, a program for reading online documentation
+    stored in Info format.
+ 
+    Copyright (C) 1993, 1997, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_ECHO_AREA_H
+ #define INFO_ECHO_AREA_H
+ 
+ #define EA_MAX_INPUT 256
+ 
+ extern int echo_area_is_active, info_aborted_echo_area;
+ 
+ /* Non-zero means that the last command executed while reading input
+    killed some text. */
+ extern int echo_area_last_command_was_kill;
+ 
+ extern void inform_in_echo_area (const char *message);
+ extern void echo_area_inform_of_deleted_window (WINDOW *window);
+ extern void echo_area_prep_read (void);
+ extern VFunction *ea_last_executed_command;
+ extern char * info_read_completing_internal (WINDOW *window, const char *prompt,
+     REFERENCE **completions, int force);
+ 
+ /* Read a line of text in the echo area.  Return a malloc ()'ed string,
+    or NULL if the user aborted out of this read.  WINDOW is the currently
+    active window, so that we can restore it when we need to.  PROMPT, if
+    non-null, is a prompt to print before reading the line. */
+ extern char *info_read_in_echo_area (WINDOW *window, const char *prompt);
+ 
+ /* Read a line in the echo area with completion over COMPLETIONS.
+    Takes arguments of WINDOW, PROMPT, and COMPLETIONS, a REFERENCE **. */
+ char *info_read_completing_in_echo_area (WINDOW *window,
+     const char *prompt, REFERENCE **completions);
+ 
+ /* Read a line in the echo area allowing completion over COMPLETIONS, but
+    not requiring it.  Takes arguments of WINDOW, PROMPT, and COMPLETIONS,
+    a REFERENCE **. */
+ extern char *info_read_maybe_completing (WINDOW *window,
+     const char *prompt, REFERENCE **completions);
+ 
+ extern void ea_insert (WINDOW *window, int count, unsigned char key);
+ extern void ea_quoted_insert (WINDOW *window, int count, unsigned char key);
+ extern void ea_beg_of_line (WINDOW *window, int count, unsigned char key);
+ extern void ea_backward (WINDOW *window, int count, unsigned char key);
+ extern void ea_delete (WINDOW *window, int count, unsigned char key);
+ extern void ea_end_of_line (WINDOW *window, int count, unsigned char key);
+ extern void ea_forward (WINDOW *window, int count, unsigned char key);
+ extern void ea_abort (WINDOW *window, int count, unsigned char key);
+ extern void ea_rubout (WINDOW *window, int count, unsigned char key);
+ extern void ea_complete (WINDOW *window, int count, unsigned char key);
+ extern void ea_newline (WINDOW *window, int count, unsigned char key);
+ extern void ea_kill_line (WINDOW *window, int count, unsigned char key);
+ extern void ea_backward_kill_line (WINDOW *window, int count, unsigned char key);
+ extern void ea_transpose_chars (WINDOW *window, int count, unsigned char key);
+ extern void ea_yank (WINDOW *window, int count, unsigned char key);
+ extern void ea_tab_insert (WINDOW *window, int count, unsigned char key);
+ extern void ea_possible_completions (WINDOW *window, int count, unsigned char key);
+ extern void ea_backward_word (WINDOW *window, int count, unsigned char key);
+ extern void ea_kill_word (WINDOW *window, int count, unsigned char key);
+ extern void ea_forward_word (WINDOW *window, int count, unsigned char key);
+ extern void ea_yank_pop (WINDOW *window, int count, unsigned char key);
+ extern void ea_backward_kill_word (WINDOW *window, int count, unsigned char key);
+ extern void ea_scroll_completions_window (WINDOW *window, int count,
+     unsigned char key);
+ 
+ #endif /* not INFO_ECHO_AREA_H */
diff -Nrc2 texinfo-4.12/info/filesys.c texinfo-4.13/info/filesys.c
*** texinfo-4.12/info/filesys.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/filesys.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,710 ----
+ /* filesys.c -- filesystem specific functions.
+    $Id: filesys.c,v 1.12 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2000, 2002, 2003, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ 
+ #include "tilde.h"
+ #include "filesys.h"
+ 
+ /* Local to this file. */
+ static char *info_file_in_path (char *filename, char *path);
+ static char *lookup_info_filename (char *filename);
+ static char *info_absolute_file (char *fname);
+ 
+ static void remember_info_filename (char *filename, char *expansion);
+ static void maybe_initialize_infopath (void);
+ 
+ typedef struct
+ {
+   char *suffix;
+   char *decompressor;
+ } COMPRESSION_ALIST;
+ 
+ static char *info_suffixes[] = {
+   ".info",
+   "-info",
+   "/index",
+   ".inf",       /* 8+3 file on filesystem which supports long file names */
+ #ifdef __MSDOS__
+   /* 8+3 file names strike again...  */
+   ".in",        /* for .inz, .igz etc. */
+   ".i",
+ #endif
+   "",
+   NULL
+ };
+ 
+ static COMPRESSION_ALIST compress_suffixes[] = {
+   { ".gz", "gunzip" },
+   { ".bz2", "bunzip2" },
+   { ".lzma", "unlzma" },
+   { ".z", "gunzip" },
+   { ".Z", "uncompress" },
+   { ".Y", "unyabba" },
+ #ifdef __MSDOS__
+   { "gz", "gunzip" },
+   { "z", "gunzip" },
+ #endif
+   { NULL, NULL }
+ };
+ 
+ /* The path on which we look for info files.  You can initialize this
+    from the environment variable INFOPATH if there is one, or you can
+    call info_add_path () to add paths to the beginning or end of it.
+    You can call zap_infopath () to make the path go away. */
+ char *infopath = NULL;
+ static int infopath_size = 0;
+ 
+ /* Expand the filename in PARTIAL to make a real name for this operating
+    system.  This looks in INFO_PATHS in order to find the correct file.
+    If it can't find the file, it returns NULL. */
+ static char *local_temp_filename = NULL;
+ static int local_temp_filename_size = 0;
+ 
+ char *
+ info_find_fullpath (char *partial)
+ {
+   int initial_character;
+   char *temp;
+ 
+   filesys_error_number = 0;
+ 
+   maybe_initialize_infopath ();
+ 
+   if (partial && (initial_character = *partial))
+     {
+       char *expansion;
+ 
+       expansion = lookup_info_filename (partial);
+ 
+       if (expansion)
+         return expansion;
+ 
+       /* If we have the full path to this file, we still may have to add
+          various extensions to it.  I guess we have to stat this file
+          after all. */
+       if (IS_ABSOLUTE (partial))
+ 	temp = info_absolute_file (partial);
+       else if (initial_character == '~')
+         {
+           expansion = tilde_expand_word (partial);
+           if (IS_ABSOLUTE (expansion))
+             {
+               temp = info_absolute_file (expansion);
+               free (expansion);
+             }
+           else
+             temp = expansion;
+         }
+       else if (initial_character == '.' &&
+                (IS_SLASH (partial[1]) ||
+ 		(partial[1] == '.' && IS_SLASH (partial[2]))))
+         {
+           if (local_temp_filename_size < 1024)
+             local_temp_filename = xrealloc
+               (local_temp_filename, (local_temp_filename_size = 1024));
+ #if defined (HAVE_GETCWD)
+           if (!getcwd (local_temp_filename, local_temp_filename_size))
+ #else /*  !HAVE_GETCWD */
+           if (!getwd (local_temp_filename))
+ #endif /* !HAVE_GETCWD */
+             {
+               filesys_error_number = errno;
+               return partial;
+             }
+ 
+           strcat (local_temp_filename, "/");
+           strcat (local_temp_filename, partial);
+ 	  temp = info_absolute_file (local_temp_filename); /* try extensions */
+ 	  if (!temp)
+ 	    partial = local_temp_filename;
+         }
+       else
+         temp = info_file_in_path (partial, infopath);
+ 
+       if (temp)
+         {
+           remember_info_filename (partial, temp);
+           if (strlen (temp) > (unsigned int) local_temp_filename_size)
+             local_temp_filename = xrealloc
+               (local_temp_filename,
+                (local_temp_filename_size = (50 + strlen (temp))));
+           strcpy (local_temp_filename, temp);
+           free (temp);
+           return local_temp_filename;
+         }
+     }
+   return partial;
+ }
+ 
+ /* Scan the list of directories in PATH looking for FILENAME.  If we find
+    one that is a regular file, return it as a new string.  Otherwise, return
+    a NULL pointer. */
+ static char *
+ info_file_in_path (char *filename, char *path)
+ {
+   struct stat finfo;
+   char *temp_dirname;
+   int statable, dirname_index;
+ 
+   /* Reject ridiculous cases up front, to prevent infinite recursion
+      later on.  E.g., someone might say "info '(.)foo'"...  */
+   if (!*filename || STREQ (filename, ".") || STREQ (filename, ".."))
+     return NULL;
+ 
+   dirname_index = 0;
+ 
+   while ((temp_dirname = extract_colon_unit (path, &dirname_index)))
+     {
+       register int i, pre_suffix_length;
+       char *temp;
+ 
+       /* Expand a leading tilde if one is present. */
+       if (*temp_dirname == '~')
+         {
+           char *expanded_dirname;
+ 
+           expanded_dirname = tilde_expand_word (temp_dirname);
+           free (temp_dirname);
+           temp_dirname = expanded_dirname;
+         }
+ 
+       temp = xmalloc (30 + strlen (temp_dirname) + strlen (filename));
+       strcpy (temp, temp_dirname);
+       if (!IS_SLASH (temp[(strlen (temp)) - 1]))
+         strcat (temp, "/");
+       strcat (temp, filename);
+ 
+       pre_suffix_length = strlen (temp);
+ 
+       free (temp_dirname);
+ 
+       for (i = 0; info_suffixes[i]; i++)
+         {
+           strcpy (temp + pre_suffix_length, info_suffixes[i]);
+ 
+           statable = (stat (temp, &finfo) == 0);
+ 
+           /* If we have found a regular file, then use that.  Else, if we
+              have found a directory, look in that directory for this file. */
+           if (statable)
+             {
+               if (S_ISREG (finfo.st_mode))
+                 {
+                   return temp;
+                 }
+               else if (S_ISDIR (finfo.st_mode))
+                 {
+                   char *newpath, *filename_only, *newtemp;
+ 
+                   newpath = xstrdup (temp);
+                   filename_only = filename_non_directory (filename);
+                   newtemp = info_file_in_path (filename_only, newpath);
+ 
+                   free (newpath);
+                   if (newtemp)
+                     {
+                       free (temp);
+                       return newtemp;
+                     }
+                 }
+             }
+           else
+             {
+               /* Add various compression suffixes to the name to see if
+                  the file is present in compressed format. */
+               register int j, pre_compress_suffix_length;
+ 
+               pre_compress_suffix_length = strlen (temp);
+ 
+               for (j = 0; compress_suffixes[j].suffix; j++)
+                 {
+                   strcpy (temp + pre_compress_suffix_length,
+                           compress_suffixes[j].suffix);
+ 
+                   statable = (stat (temp, &finfo) == 0);
+                   if (statable && (S_ISREG (finfo.st_mode)))
+                     return temp;
+                 }
+             }
+         }
+       free (temp);
+     }
+   return NULL;
+ }
+ 
+ /* Assume FNAME is an absolute file name, and check whether it is
+    a regular file.  If it is, return it as a new string; otherwise
+    return a NULL pointer.  We do it by taking the file name apart
+    into its directory and basename parts, and calling info_file_in_path.*/
+ static char *
+ info_absolute_file (char *fname)
+ {
+   char *containing_dir = xstrdup (fname);
+   char *base = filename_non_directory (containing_dir);
+ 
+   if (base > containing_dir)
+     base[-1] = '\0';
+ 
+   return info_file_in_path (filename_non_directory (fname), containing_dir);
+ }
+ 
+ 
+ /* Given a string containing units of information separated by the
+    PATH_SEP character, return the next one after IDX, or NULL if there
+    are no more.  Advance IDX to the character after the colon. */
+ 
+ char *
+ extract_colon_unit (char *string, int *idx)
+ {
+   unsigned int i = (unsigned int) *idx;
+   unsigned int start = i;
+ 
+   if (!string || i >= strlen (string))
+     return NULL;
+ 
+   if (!string[i]) /* end of string */
+     return NULL;
+ 
+   /* Advance to next PATH_SEP.  */
+   while (string[i] && string[i] != PATH_SEP[0])
+     i++;
+ 
+   {
+     char *value = xmalloc ((i - start) + 1);
+     strncpy (value, &string[start], (i - start));
+     value[i - start] = 0;
+ 
+     i++; /* move past PATH_SEP */
+     *idx = i;
+     return value;
+   }
+ }
+ 
+ /* A structure which associates a filename with its expansion. */
+ typedef struct
+ {
+   char *filename;
+   char *expansion;
+ } FILENAME_LIST;
+ 
+ /* An array of remembered arguments and results. */
+ static FILENAME_LIST **names_and_files = NULL;
+ static int names_and_files_index = 0;
+ static int names_and_files_slots = 0;
+ 
+ /* Find the result for having already called info_find_fullpath () with
+    FILENAME. */
+ static char *
+ lookup_info_filename (char *filename)
+ {
+   if (filename && names_and_files)
+     {
+       register int i;
+       for (i = 0; names_and_files[i]; i++)
+         {
+           if (FILENAME_CMP (names_and_files[i]->filename, filename) == 0)
+             return names_and_files[i]->expansion;
+         }
+     }
+   return NULL;
+ }
+ 
+ /* Add a filename and its expansion to our list. */
+ static void
+ remember_info_filename (char *filename, char *expansion)
+ {
+   FILENAME_LIST *new;
+ 
+   if (names_and_files_index + 2 > names_and_files_slots)
+     {
+       int alloc_size;
+       names_and_files_slots += 10;
+ 
+       alloc_size = names_and_files_slots * sizeof (FILENAME_LIST *);
+ 
+       names_and_files = xrealloc (names_and_files, alloc_size);
+     }
+ 
+   new = xmalloc (sizeof (FILENAME_LIST));
+   new->filename = xstrdup (filename);
+   new->expansion = expansion ? xstrdup (expansion) : NULL;
+ 
+   names_and_files[names_and_files_index++] = new;
+   names_and_files[names_and_files_index] = NULL;
+ }
+ 
+ static void
+ maybe_initialize_infopath (void)
+ {
+   if (!infopath_size)
+     {
+       infopath = (char *)
+         xmalloc (infopath_size = (1 + strlen (DEFAULT_INFOPATH)));
+ 
+       strcpy (infopath, DEFAULT_INFOPATH);
+     }
+ }
+ 
+ /* Add PATH to the list of paths found in INFOPATH.  2nd argument says
+    whether to put PATH at the front or end of INFOPATH. */
+ void
+ info_add_path (char *path, int where)
+ {
+   int len;
+ 
+   if (!infopath)
+     {
+       infopath = xmalloc (infopath_size = 200 + strlen (path));
+       infopath[0] = '\0';
+     }
+ 
+   len = strlen (path) + strlen (infopath);
+ 
+   if (len + 2 >= infopath_size)
+     infopath = xrealloc (infopath, (infopath_size += (2 * len) + 2));
+ 
+   if (!*infopath)
+     strcpy (infopath, path);
+   else if (where == INFOPATH_APPEND)
+     {
+       strcat (infopath, PATH_SEP);
+       strcat (infopath, path);
+     }
+   else if (where == INFOPATH_PREPEND)
+     {
+       char *temp = xstrdup (infopath);
+       strcpy (infopath, path);
+       strcat (infopath, PATH_SEP);
+       strcat (infopath, temp);
+       free (temp);
+     }
+ }
+ 
+ /* Make INFOPATH have absolutely nothing in it. */
+ void
+ zap_infopath (void)
+ {
+   if (infopath)
+     free (infopath);
+ 
+   infopath = NULL;
+   infopath_size = 0;
+ }
+ 
+ /* Given a chunk of text and its length, convert all CRLF pairs at every
+    end-of-line into a single Newline character.  Return the length of
+    produced text.
+ 
+    This is required because the rest of code is too entrenched in having
+    a single newline at each EOL; in particular, searching for various
+    Info headers and cookies can become extremely tricky if that assumption
+    breaks.
+ 
+    FIXME: this could also support Mac-style text files with a single CR
+    at the EOL, but what about random CR characters in non-Mac files?  Can
+    we afford converting them into newlines as well?  Maybe implement some
+    heuristics here, like in Emacs 20.
+ 
+    FIXME: is it a good idea to show the EOL type on the modeline?  */
+ long
+ convert_eols (char *text, long int textlen)
+ {
+   register char *s = text;
+   register char *d = text;
+ 
+   while (textlen--)
+     {
+       if (*s == '\r' && textlen && s[1] == '\n')
+ 	{
+ 	  s++;
+ 	  textlen--;
+ 	}
+       *d++ = *s++;
+     }
+ 
+   return d - text;
+ }
+ 
+ /* Read the contents of PATHNAME, returning a buffer with the contents of
+    that file in it, and returning the size of that buffer in FILESIZE.
+    FINFO is a stat struct which has already been filled in by the caller.
+    If the file turns out to be compressed, set IS_COMPRESSED to non-zero.
+    If the file cannot be read, return a NULL pointer. */
+ char *
+ filesys_read_info_file (char *pathname, long int *filesize,
+     struct stat *finfo, int *is_compressed)
+ {
+   long st_size;
+ 
+   *filesize = filesys_error_number = 0;
+ 
+   if (compressed_filename_p (pathname))
+     {
+       *is_compressed = 1;
+       return filesys_read_compressed (pathname, filesize);
+     }
+   else
+     {
+       int descriptor;
+       char *contents;
+ 
+       *is_compressed = 0;
+       descriptor = open (pathname, O_RDONLY | O_BINARY, 0666);
+ 
+       /* If the file couldn't be opened, give up. */
+       if (descriptor < 0)
+         {
+           filesys_error_number = errno;
+           return NULL;
+         }
+ 
+       /* Try to read the contents of this file. */
+       st_size = (long) finfo->st_size;
+       contents = xmalloc (1 + st_size);
+       if ((read (descriptor, contents, st_size)) != st_size)
+         {
+ 	  filesys_error_number = errno;
+ 	  close (descriptor);
+ 	  free (contents);
+ 	  return NULL;
+         }
+ 
+       close (descriptor);
+ 
+       /* Convert any DOS-style CRLF EOLs into Unix-style NL.
+ 	 Seems like a good idea to have even on Unix, in case the Info
+ 	 files are coming from some Windows system across a network.  */
+       *filesize = convert_eols (contents, st_size);
+ 
+       /* EOL conversion can shrink the text quite a bit.  We don't
+ 	 want to waste storage.  */
+       if (*filesize < st_size)
+ 	contents = xrealloc (contents, 1 + *filesize);
+       contents[*filesize] = '\0';
+ 
+       return contents;
+     }
+ }
+ 
+ /* Typically, pipe buffers are 4k. */
+ #define BASIC_PIPE_BUFFER (4 * 1024)
+ 
+ /* We use some large multiple of that. */
+ #define FILESYS_PIPE_BUFFER_SIZE (16 * BASIC_PIPE_BUFFER)
+ 
+ char *
+ filesys_read_compressed (char *pathname, long int *filesize)
+ {
+   FILE *stream;
+   char *command, *decompressor;
+   char *contents = NULL;
+ 
+   *filesize = filesys_error_number = 0;
+ 
+   decompressor = filesys_decompressor_for_file (pathname);
+ 
+   if (!decompressor)
+     return NULL;
+ 
+   command = xmalloc (15 + strlen (pathname) + strlen (decompressor));
+   /* Explicit .exe suffix makes the diagnostics of `popen'
+      better on systems where COMMAND.COM is the stock shell.  */
+   sprintf (command, "%s%s < %s",
+ 	   decompressor, STRIP_DOT_EXE ? ".exe" : "", pathname);
+ 
+ #if !defined (BUILDING_LIBRARY)
+   if (info_windows_initialized_p)
+     {
+       char *temp;
+ 
+       temp = xmalloc (5 + strlen (command));
+       sprintf (temp, "%s...", command);
+       message_in_echo_area ("%s", temp, NULL);
+       free (temp);
+     }
+ #endif /* !BUILDING_LIBRARY */
+ 
+   stream = popen (command, FOPEN_RBIN);
+   free (command);
+ 
+   /* Read chunks from this file until there are none left to read. */
+   if (stream)
+     {
+       long offset, size;
+       char *chunk;
+     
+       offset = size = 0;
+       chunk = xmalloc (FILESYS_PIPE_BUFFER_SIZE);
+ 
+       while (1)
+         {
+           int bytes_read;
+ 
+           bytes_read = fread (chunk, 1, FILESYS_PIPE_BUFFER_SIZE, stream);
+ 
+           if (bytes_read + offset >= size)
+             contents = xrealloc
+               (contents, size += (2 * FILESYS_PIPE_BUFFER_SIZE));
+ 
+           memcpy (contents + offset, chunk, bytes_read);
+           offset += bytes_read;
+           if (bytes_read != FILESYS_PIPE_BUFFER_SIZE)
+             break;
+         }
+ 
+       free (chunk);
+       if (pclose (stream) == -1)
+ 	{
+ 	  if (contents)
+ 	    free (contents);
+ 	  contents = NULL;
+ 	  filesys_error_number = errno;
+ 	}
+       else
+ 	{
+ 	  *filesize = convert_eols (contents, offset);
+ 	  contents = xrealloc (contents, 1 + *filesize);
+ 	  contents[*filesize] = '\0';
+ 	}
+     }
+   else
+     {
+       filesys_error_number = errno;
+     }
+ 
+ #if !defined (BUILDING_LIBARARY)
+   if (info_windows_initialized_p)
+     unmessage_in_echo_area ();
+ #endif /* !BUILDING_LIBRARY */
+   return contents;
+ }
+ 
+ /* Return non-zero if FILENAME belongs to a compressed file. */
+ int
+ compressed_filename_p (char *filename)
+ {
+   char *decompressor;
+ 
+   /* Find the final extension of this filename, and see if it matches one
+      of our known ones. */
+   decompressor = filesys_decompressor_for_file (filename);
+ 
+   if (decompressor)
+     return 1;
+   else
+     return 0;
+ }
+ 
+ /* Return the command string that would be used to decompress FILENAME. */
+ char *
+ filesys_decompressor_for_file (char *filename)
+ {
+   register int i;
+   char *extension = NULL;
+ 
+   /* Find the final extension of FILENAME, and see if it appears in our
+      list of known compression extensions. */
+   for (i = strlen (filename) - 1; i > 0; i--)
+     if (filename[i] == '.')
+       {
+         extension = filename + i;
+         break;
+       }
+ 
+   if (!extension)
+     return NULL;
+ 
+   for (i = 0; compress_suffixes[i].suffix; i++)
+     if (FILENAME_CMP (extension, compress_suffixes[i].suffix) == 0)
+       return compress_suffixes[i].decompressor;
+ 
+ #if defined (__MSDOS__)
+   /* If no other suffix matched, allow any extension which ends
+      with `z' to be decompressed by gunzip.  Due to limited 8+3 DOS
+      file namespace, we can expect many such cases, and supporting
+      every weird suffix thus produced would be a pain.  */
+   if (extension[strlen (extension) - 1] == 'z' ||
+       extension[strlen (extension) - 1] == 'Z')
+     return "gunzip";
+ #endif
+ 
+   return NULL;
+ }
+ 
+ /* The number of the most recent file system error. */
+ int filesys_error_number = 0;
+ 
+ /* A function which returns a pointer to a static buffer containing
+    an error message for FILENAME and ERROR_NUM. */
+ static char *errmsg_buf = NULL;
+ static int errmsg_buf_size = 0;
+ 
+ char *
+ filesys_error_string (char *filename, int error_num)
+ {
+   int len;
+   char *result;
+ 
+   if (error_num == 0)
+     return NULL;
+ 
+   result = strerror (error_num);
+ 
+   len = 4 + strlen (filename) + strlen (result);
+   if (len >= errmsg_buf_size)
+     errmsg_buf = xrealloc (errmsg_buf, (errmsg_buf_size = 2 + len));
+ 
+   sprintf (errmsg_buf, "%s: %s", filename, result);
+   return errmsg_buf;
+ }
+ 
+ 
+ /* Check for "dir" with all the possible info and compression suffixes,
+    in combination.  */
+ 
+ int
+ is_dir_name (char *filename)
+ {
+   unsigned i;
+ 
+   for (i = 0; info_suffixes[i]; i++)
+     {
+       unsigned c;
+       char trydir[50];
+       strcpy (trydir, "dir");
+       strcat (trydir, info_suffixes[i]);
+       
+       if (mbscasecmp (filename, trydir) == 0)
+         return 1;
+ 
+       for (c = 0; compress_suffixes[c].suffix; c++)
+         {
+           char dir_compressed[50]; /* can be short */
+           strcpy (dir_compressed, trydir); 
+           strcat (dir_compressed, compress_suffixes[c].suffix);
+           if (mbscasecmp (filename, dir_compressed) == 0)
+             return 1;
+         }
+     }  
+ 
+   return 0;
+ }
diff -Nrc2 texinfo-4.12/info/filesys.h texinfo-4.13/info/filesys.h
*** texinfo-4.12/info/filesys.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/filesys.h	Sun Jul  1 14:20:29 2007
***************
*** 0 ****
--- 1,92 ----
+ /* filesys.h -- external declarations for filesys.c.
+    $Id: filesys.h,v 1.7 2007/07/01 21:20:29 karl Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2002, 2004, 2005, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_FILESYS_H
+ #define INFO_FILESYS_H
+ 
+ /* The path on which we look for info files.  You can initialize this
+    from the environment variable INFOPATH if there is one, or you can
+    call info_add_path () to add paths to the beginning or end of it. */
+ extern char *infopath;
+ 
+ /* Make INFOPATH have absolutely nothing in it. */
+ extern void zap_infopath (void);
+ 
+ /* Add PATH to the list of paths found in INFOPATH.  2nd argument says
+    whether to put PATH at the front or end of INFOPATH. */
+ extern void info_add_path (char *path, int where);
+ 
+ /* Defines that are passed along with the pathname to info_add_path (). */
+ #define INFOPATH_PREPEND 0
+ #define INFOPATH_APPEND  1
+ 
+ /* Expand the filename in PARTIAL to make a real name for this operating
+    system.  This looks in INFO_PATHS in order to find the correct file.
+    If it can't find the file, it returns NULL. */
+ extern char *info_find_fullpath (char *partial);
+ 
+ /* Given a chunk of text and its length, convert all CRLF pairs at the
+    EOLs into a single Newline character.  Return the length of produced
+    text.  */
+ long convert_eols (char *text, long textlen);
+ 
+ /* Read the contents of PATHNAME, returning a buffer with the contents of
+    that file in it, and returning the size of that buffer in FILESIZE.
+    FINFO is a stat struct which has already been filled in by the caller.
+    If the file cannot be read, return a NULL pointer. */
+ extern char *filesys_read_info_file (char *pathname, long int *filesize,
+     struct stat *finfo, int *is_compressed);
+ 
+ extern char *filesys_read_compressed (char *pathname, long int *filesize);
+ 
+ /* Return the command string that would be used to decompress FILENAME. */
+ extern char *filesys_decompressor_for_file (char *filename);
+ extern int compressed_filename_p (char *filename);
+ 
+ /* A function which returns a pointer to a static buffer containing
+    an error message for FILENAME and ERROR_NUM. */
+ extern char *filesys_error_string (char *filename, int error_num);
+ 
+ /* The number of the most recent file system error. */
+ extern int filesys_error_number;
+ 
+ /* Given a string containing units of information separated by colons,
+    return the next one pointed to by IDX, or NULL if there are no more.
+    Advance IDX to the character after the colon. */
+ extern char *extract_colon_unit (char *string, int *idx);
+ 
+ /* Return true if FILENAME is `dir', with a possible compression suffix.  */
+ extern int is_dir_name (char *filename);
+ 
+ /* The default value of INFOPATH. */
+ #if !defined (DEFAULT_INFOPATH)
+ #  define DEFAULT_INFOPATH ".:/usr/local/info:/usr/info:/usr/local/lib/info:/usr/lib/info:/usr/local/gnu/info:/usr/local/gnu/lib/info:/usr/gnu/info:/usr/gnu/lib/info:/opt/gnu/info:/usr/share/info:/usr/share/lib/info:/usr/local/share/info:/usr/local/share/lib/info:/usr/gnu/lib/emacs/info:/usr/local/gnu/lib/emacs/info:/usr/local/lib/emacs/info:/usr/local/emacs/info"
+ #endif /* !DEFAULT_INFOPATH */
+ 
+ #if !defined (S_ISREG) && defined (S_IFREG)
+ #  define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+ #endif /* !S_ISREG && S_IFREG */
+ 
+ #if !defined (S_ISDIR) && defined (S_IFDIR)
+ #  define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+ #endif /* !S_ISDIR && S_IFDIR */
+ 
+ #endif /* not INFO_FILESYS_H */
diff -Nrc2 texinfo-4.12/info/footnotes.c texinfo-4.13/info/footnotes.c
*** texinfo-4.12/info/footnotes.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/footnotes.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,267 ----
+ /* footnotes.c -- Some functions for manipulating footnotes.
+    $Id: footnotes.c,v 1.9 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 1999, 2002, 2004, 2007,
+    2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ 
+ /* Nonzero means attempt to show footnotes when displaying a new window. */
+ int auto_footnotes_p = 0;
+ 
+ static char *footnote_nodename = "*Footnotes*";
+ 
+ NODE * make_footnotes_node (NODE *node);
+ 
+ #define FOOTNOTE_HEADER_FORMAT \
+    "*** Footnotes appearing in the node `%s' ***\n"
+ 
+ /* Find the window currently showing footnotes. */
+ static WINDOW *
+ find_footnotes_window (void)
+ {
+   WINDOW *win;
+ 
+   /* Try to find an existing window first. */
+   for (win = windows; win; win = win->next)
+     if (internal_info_node_p (win->node) &&
+         (strcmp (win->node->nodename, footnote_nodename) == 0))
+       break;
+ 
+   return win;
+ }
+ 
+ /* Manufacture a node containing the footnotes of this node, and
+    return the manufactured node.  If NODE has no footnotes, return a 
+    NULL pointer. */
+ NODE *
+ make_footnotes_node (NODE *node)
+ {
+   NODE *fn_node, *result = NULL;
+   long fn_start;
+ 
+   /* Make the initial assumption that the footnotes appear as simple
+      text within this windows node. */
+   fn_node = node;
+ 
+   /* See if this node contains the magic footnote label. */
+   fn_start =
+     info_search_in_node (FOOTNOTE_LABEL, node, 0, NULL, 1, 0);
+ 
+   /* If it doesn't, check to see if it has an associated footnotes node. */
+   if (fn_start == -1)
+     {
+       REFERENCE **refs;
+ 
+       refs = info_xrefs_of_node (node);
+ 
+       if (refs)
+         {
+           register int i;
+           char *refname;
+           int reflen = strlen ("-Footnotes") + strlen (node->nodename);
+ 
+           refname = xmalloc (reflen + 1);
+ 
+           strcpy (refname, node->nodename);
+           strcat (refname, "-Footnotes");
+ 
+           for (i = 0; refs[i]; i++)
+             if ((refs[i]->nodename != NULL) &&
+                 /* Support both the older "foo-Footnotes" and the new
+                    style "foo-Footnote-NN" references.  */
+                 (strcmp (refs[i]->nodename, refname) == 0 ||
+                  (strncmp (refs[i]->nodename, refname, reflen - 1) == 0 &&
+                   refs[i]->nodename[reflen - 1] == '-' &&
+                   isdigit (refs[i]->nodename[reflen]))))
+               {
+                 char *filename;
+ 
+                 filename = node->parent;
+                 if (!filename)
+                   filename = node->filename;
+ 
+                 fn_node = info_get_node (filename, refname);
+ 
+                 if (fn_node)
+                   fn_start = 0;
+ 
+                 break;
+               }
+ 
+           free (refname);
+           info_free_references (refs);
+         }
+     }
+ 
+   /* If we never found the start of a footnotes area, quit now. */
+   if (fn_start == -1)
+     return NULL;
+ 
+   /* Make the new node. */
+   result = xmalloc (sizeof (NODE));
+   result->flags = 0;
+   result->display_pos = 0;
+ 
+   /* Get the size of the footnotes appearing within this node. */
+   {
+     char *header;
+     long text_start = fn_start;
+ 
+     header = xmalloc
+       (1 + strlen (node->nodename) + strlen (FOOTNOTE_HEADER_FORMAT));
+     sprintf (header, FOOTNOTE_HEADER_FORMAT, node->nodename);
+ 
+     /* Move the start of the displayed text to right after the first line.
+        This effectively skips either "---- footno...", or "File: foo...". */
+     while (text_start < fn_node->nodelen)
+       if (fn_node->contents[text_start++] == '\n')
+         break;
+   
+     result->nodelen = strlen (header) + fn_node->nodelen - text_start;
+ 
+     /* Set the contents of this node. */
+     result->contents = xmalloc (1 + result->nodelen);
+     sprintf (result->contents, "%s", header);
+     memcpy (result->contents + strlen (header),
+             fn_node->contents + text_start, fn_node->nodelen - text_start);
+ 
+     name_internal_node (result, footnote_nodename);
+     free (header);
+   }
+ 
+ #if defined (NOTDEF)
+   /* If the footnotes were gleaned from the node that we were called with,
+      shorten the calling node's display length. */
+   if (fn_node == node)
+     narrow_node (node, 0, fn_start);
+ #endif /* NOTDEF */
+ 
+   return result;
+ }
+ 
+ /* Create or delete the footnotes window depending on whether footnotes
+    exist in WINDOW's node or not.  Returns FN_FOUND if footnotes were found
+    and displayed.  Returns FN_UNFOUND if there were no footnotes found
+    in WINDOW's node.  Returns FN_UNABLE if there were footnotes, but the
+    window to show them couldn't be made. */
+ int
+ info_get_or_remove_footnotes (WINDOW *window)
+ {
+   WINDOW *fn_win;
+   NODE *new_footnotes;
+ 
+   fn_win = find_footnotes_window ();
+ 
+   /* If we are in the footnotes window, change nothing. */
+   if (fn_win == window)
+     return FN_FOUND;
+ 
+   /* Try to find footnotes for this window's node. */
+   new_footnotes = make_footnotes_node (window->node);
+ 
+   /* If there was a window showing footnotes, and there are no footnotes
+      for the current window, delete the old footnote window. */
+   if (fn_win && !new_footnotes)
+     {
+       if (windows->next)
+         info_delete_window_internal (fn_win);
+     }
+ 
+   /* If there are footnotes for this window's node, but no window around
+      showing footnotes, try to make a new window. */
+   if (new_footnotes && !fn_win)
+     {
+       WINDOW *old_active;
+       WINDOW *last, *win;
+ 
+       /* Always make this window be the last one appearing in the list.  Find
+          the last window in the chain. */
+       for (win = windows, last = windows; win; last = win, win = win->next);
+ 
+       /* Try to split this window, and make the split window the one to
+          contain the footnotes. */
+       old_active = active_window;
+       active_window = last;
+       fn_win = window_make_window (new_footnotes);
+       active_window = old_active;
+ 
+       if (!fn_win)
+         {
+           free (new_footnotes->contents);
+           free (new_footnotes);
+ 
+           /* If we are hacking automatic footnotes, and there are footnotes
+              but we couldn't display them, print a message to that effect. */
+           if (auto_footnotes_p)
+             inform_in_echo_area (_("Footnotes could not be displayed"));
+           return FN_UNABLE;
+         }
+     }
+ 
+   /* If there are footnotes, and there is a window to display them,
+      make that window be the number of lines appearing in the footnotes. */
+   if (new_footnotes && fn_win)
+     {
+       window_set_node_of_window (fn_win, new_footnotes);
+ 
+       window_change_window_height
+         (fn_win, fn_win->line_count - fn_win->height);
+ 
+       remember_window_and_node (fn_win, new_footnotes);
+       add_gcable_pointer (new_footnotes->contents);
+     }
+ 
+   if (!new_footnotes)
+     return FN_UNFOUND;
+   else
+     return FN_FOUND;
+ }
+ 
+ /* Show the footnotes associated with this node in another window. */
+ DECLARE_INFO_COMMAND (info_show_footnotes,
+    _("Show the footnotes associated with this node in another window"))
+ {
+   /* A negative argument means just make the window go away. */
+   if (count < 0)
+     {
+       WINDOW *fn_win = find_footnotes_window ();
+ 
+       /* If there is an old footnotes window, and it isn't the only window
+          on the screen, delete it. */
+       if (fn_win && windows->next)
+         info_delete_window_internal (fn_win);
+     }
+   else
+     {
+       int result;
+ 
+       result = info_get_or_remove_footnotes (window);
+ 
+       switch (result)
+         {
+         case FN_UNFOUND:
+           info_error (msg_no_foot_node, NULL, NULL);
+           break;
+ 
+         case FN_UNABLE:
+           info_error (msg_win_too_small, NULL, NULL);
+           break;
+         }
+     }
+ }
diff -Nrc2 texinfo-4.12/info/footnotes.h texinfo-4.13/info/footnotes.h
*** texinfo-4.12/info/footnotes.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/footnotes.h	Sun Jul  1 14:20:29 2007
***************
*** 0 ****
--- 1,43 ----
+ /* footnotes.h -- Some functions for manipulating footnotes.
+    $Id: footnotes.h,v 1.6 2007/07/01 21:20:29 karl Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2002, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_FOOTNOTES_H
+ #define INFO_FOOTNOTES_H
+ 
+ /* Magic string which indicates following text is footnotes. */
+ #define FOOTNOTE_LABEL N_("---------- Footnotes ----------")
+ 
+ #define FN_FOUND   0
+ #define FN_UNFOUND 1
+ #define FN_UNABLE  2
+ 
+ 
+ /* Create or delete the footnotes window depending on whether footnotes
+    exist in WINDOW's node or not.  Returns FN_FOUND if footnotes were found
+    and displayed.  Returns FN_UNFOUND if there were no footnotes found
+    in WINDOW's node.  Returns FN_UNABLE if there were footnotes, but the
+    window to show them couldn't be made. */
+ extern int info_get_or_remove_footnotes (WINDOW *window);
+ 
+ /* Non-zero means attempt to show footnotes when displaying a new window. */
+ extern int auto_footnotes_p;
+ 
+ #endif /* not INFO_FOOTNOTES_H */
diff -Nrc2 texinfo-4.12/info/gc.c texinfo-4.13/info/gc.c
*** texinfo-4.12/info/gc.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/gc.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,91 ----
+ /* gc.c -- Functions to remember and garbage collect unused node contents.
+    $Id: gc.c,v 1.7 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 2004, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ 
+ /* Array of pointers to the contents of gc-able nodes.  A pointer on this
+    list can be garbage collected when no info window contains a node whose
+    contents member match the pointer. */
+ static char **gcable_pointers = NULL;
+ static int gcable_pointers_index = 0;
+ static int gcable_pointers_slots = 0;
+ 
+ /* Add POINTER to the list of garbage collectible pointers.  A pointer
+    is not actually garbage collected until no info window contains a node
+    whose contents member is equal to the pointer. */
+ void
+ add_gcable_pointer (char *pointer)
+ {
+   gc_pointers ();
+   add_pointer_to_array (pointer, gcable_pointers_index, gcable_pointers,
+ 			gcable_pointers_slots, 10, char *);
+ }
+ 
+ /* Grovel the list of info windows and gc-able pointers finding those
+    node->contents which are collectible, and free them. */
+ void
+ gc_pointers (void)
+ {
+   register int i, j, k;
+   INFO_WINDOW *iw;
+   char **new = NULL;
+   int new_index = 0;
+   int new_slots = 0;
+ 
+   if (!info_windows || !gcable_pointers_index)
+     return;
+ 
+   for (i = 0; (iw = info_windows[i]); i++)
+     {
+       for (j = 0; j < iw->nodes_index; j++)
+ 	{
+ 	  NODE *node = iw->nodes[j];
+ 
+ 	  /* If this node->contents appears in our list of gcable_pointers,
+ 	     it is not gc-able, so save it. */
+ 	  for (k = 0; k < gcable_pointers_index; k++)
+ 	    if (gcable_pointers[k] == node->contents)
+ 	      {
+ 		add_pointer_to_array
+ 		  (node->contents, new_index, new, new_slots, 10, char *);
+ 		break;
+ 	      }
+ 	}
+     }
+ 
+   /* We have gathered all of the pointers which need to be saved.  Free any
+      of the original pointers which do not appear in the new list. */
+   for (i = 0; i < gcable_pointers_index; i++)
+     {
+       for (j = 0; j < new_index; j++)
+ 	if (gcable_pointers[i] == new[j])
+ 	  break;
+ 
+       /* If we got all the way through the new list, then the old pointer
+ 	 can be garbage collected. */
+       if (new && !new[j])
+ 	free (gcable_pointers[i]);
+     }
+ 
+   free (gcable_pointers);
+   gcable_pointers = new;
+   gcable_pointers_slots = new_slots;
+   gcable_pointers_index = new_index;
+ }
diff -Nrc2 texinfo-4.12/info/gc.h texinfo-4.13/info/gc.h
*** texinfo-4.12/info/gc.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/gc.h	Sun Jul  1 14:20:30 2007
***************
*** 0 ****
--- 1,36 ----
+ /* gc.h -- Functions for garbage collecting unused node contents.
+    $Id: gc.h,v 1.6 2007/07/01 21:20:30 karl Exp $
+ 
+    This file is part of GNU Info, a program for reading online documentation
+    stored in Info format.
+ 
+    Copyright (C) 1993, 1997, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_GC_H
+ #define INFO_GC_H
+ 
+ /* Add POINTER to the list of garbage collectible pointers.  A pointer
+    is not actually garbage collected until no info window contains a node
+    whose contents member is equal to the pointer. */
+ extern void add_gcable_pointer (char *pointer);
+ 
+ /* Grovel the list of info windows and gc-able pointers finding those
+    node->contents which are collectible, and free them. */
+ extern void gc_pointers (void);
+ 
+ #endif /* not INFO_GC_H */
diff -Nrc2 texinfo-4.12/info/indices.c texinfo-4.13/info/indices.c
*** texinfo-4.12/info/indices.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/indices.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,743 ----
+ /* indices.c -- deal with an Info file index.
+    $Id: indices.c,v 1.11 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 1999, 2002, 2003, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "indices.h"
+ 
+ /* User-visible variable controls the output of info-index-next. */
+ int show_index_match = 1;
+ 
+ /* In the Info sense, an index is a menu.  This variable holds the last
+    parsed index. */
+ static REFERENCE **index_index = NULL;
+ 
+ /* The offset of the most recently selected index element. */
+ static int index_offset = 0;
+ 
+ /* Variable which holds the last string searched for. */
+ static char *index_search = NULL;
+ 
+ /* A couple of "globals" describing where the initial index was found. */
+ static char *initial_index_filename = NULL;
+ static char *initial_index_nodename = NULL;
+ 
+ /* A structure associating index names with index offset ranges. */
+ typedef struct {
+   char *name;                   /* The nodename of this index. */
+   int first;                    /* The index in our list of the first entry. */
+   int last;                     /* The index in our list of the last entry. */
+ } INDEX_NAME_ASSOC;
+ 
+ /* An array associating index nodenames with index offset ranges. */
+ static INDEX_NAME_ASSOC **index_nodenames = NULL;
+ static int index_nodenames_index = 0;
+ static int index_nodenames_slots = 0;
+ 
+ /* Add the name of NODE, and the range of the associated index elements
+    (passed in ARRAY) to index_nodenames. */
+ static void
+ add_index_to_index_nodenames (REFERENCE **array, NODE *node)
+ {
+   register int i, last;
+   INDEX_NAME_ASSOC *assoc;
+ 
+   for (last = 0; array[last + 1]; last++);
+   assoc = xmalloc (sizeof (INDEX_NAME_ASSOC));
+   assoc->name = xstrdup (node->nodename);
+ 
+   if (!index_nodenames_index)
+     {
+       assoc->first = 0;
+       assoc->last = last;
+     }
+   else
+     {
+       for (i = 0; index_nodenames[i + 1]; i++);
+       assoc->first = 1 + index_nodenames[i]->last;
+       assoc->last = assoc->first + last;
+     }
+   add_pointer_to_array
+     (assoc, index_nodenames_index, index_nodenames, index_nodenames_slots,
+      10, INDEX_NAME_ASSOC *);
+ }
+ 
+ /* Find and return the indices of WINDOW's file.  The indices are defined
+    as the first node in the file containing the word "Index" and any
+    immediately following nodes whose names also contain "Index".  All such
+    indices are concatenated and the result returned.  If WINDOW's info file
+    doesn't have any indices, a NULL pointer is returned. */
+ REFERENCE **
+ info_indices_of_window (WINDOW *window)
+ {
+   FILE_BUFFER *fb;
+ 
+   fb = file_buffer_of_window (window);
+ 
+   return info_indices_of_file_buffer (fb);
+ }
+ 
+ REFERENCE **
+ info_indices_of_file_buffer (FILE_BUFFER *file_buffer)
+ {
+   register int i;
+   REFERENCE **result = NULL;
+ 
+   /* No file buffer, no indices. */
+   if (!file_buffer)
+     return NULL;
+ 
+   /* Reset globals describing where the index was found. */
+   maybe_free (initial_index_filename);
+   maybe_free (initial_index_nodename);
+   initial_index_filename = NULL;
+   initial_index_nodename = NULL;
+ 
+   if (index_nodenames)
+     {
+       for (i = 0; index_nodenames[i]; i++)
+         {
+           free (index_nodenames[i]->name);
+           free (index_nodenames[i]);
+         }
+ 
+       index_nodenames_index = 0;
+       index_nodenames[0] = NULL;
+     }
+ 
+   /* Grovel the names of the nodes found in this file. */
+   if (file_buffer->tags)
+     {
+       TAG *tag;
+ 
+       for (i = 0; (tag = file_buffer->tags[i]); i++)
+         {
+           if (string_in_line ("Index", tag->nodename) != -1)
+             {
+               NODE *node;
+               REFERENCE **menu;
+ 
+               /* Found one.  Get its menu. */
+               node = info_get_node (tag->filename, tag->nodename);
+               if (!node)
+                 continue;
+ 
+               /* Remember the filename and nodename of this index. */
+               initial_index_filename = xstrdup (file_buffer->filename);
+               initial_index_nodename = xstrdup (tag->nodename);
+ 
+               menu = info_menu_of_node (node);
+ 
+               /* If we have a menu, add this index's nodename and range
+                  to our list of index_nodenames. */
+               if (menu)
+                 {
+                   add_index_to_index_nodenames (menu, node);
+ 
+                   /* Concatenate the references found so far. */
+                   result = info_concatenate_references (result, menu);
+                 }
+               free (node);
+             }
+         }
+     }
+ 
+   /* If there is a result, clean it up so that every entry has a filename. */
+   for (i = 0; result && result[i]; i++)
+     if (!result[i]->filename)
+       result[i]->filename = xstrdup (file_buffer->filename);
+ 
+   return result;
+ }
+ 
+ DECLARE_INFO_COMMAND (info_index_search,
+    _("Look up a string in the index for this file"))
+ {
+   do_info_index_search (window, count, 0);
+ }
+ 
+ /* Look up SEARCH_STRING in the index for this file.  If SEARCH_STRING
+    is NULL, prompt user for input.  */ 
+ void
+ do_info_index_search (WINDOW *window, int count, char *search_string)
+ {
+   FILE_BUFFER *fb;
+   char *line;
+ 
+   /* Reset the index offset, since this is not the info-index-next command. */
+   index_offset = 0;
+ 
+   /* The user is selecting a new search string, so flush the old one. */
+   maybe_free (index_search);
+   index_search = NULL;
+ 
+   /* If this window's file is not the same as the one that we last built an
+      index for, build and remember an index now. */
+   fb = file_buffer_of_window (window);
+   if (!initial_index_filename ||
+       (FILENAME_CMP (initial_index_filename, fb->filename) != 0))
+     {
+       info_free_references (index_index);
+       window_message_in_echo_area (_("Finding index entries..."),
+           NULL, NULL);
+       index_index = info_indices_of_file_buffer (fb);
+     }
+ 
+   /* If there is no index, quit now. */
+   if (!index_index)
+     {
+       info_error (_("No indices found."), NULL, NULL);
+       return;
+     }
+ 
+   /* Okay, there is an index.  Look for SEARCH_STRING, or, if it is
+      empty, prompt for one.  */
+   if (search_string && *search_string)
+     line = xstrdup (search_string);
+   else
+     {
+       line = info_read_maybe_completing (window, _("Index entry: "),
+                                          index_index);
+       window = active_window;
+ 
+       /* User aborted? */
+       if (!line)
+         {
+           info_abort_key (active_window, 1, 0);
+           return;
+         }
+ 
+       /* Empty line means move to the Index node. */
+       if (!*line)
+         {
+           free (line);
+ 
+           if (initial_index_filename && initial_index_nodename)
+             {
+               NODE *node;
+ 
+               node = info_get_node (initial_index_filename,
+                                     initial_index_nodename);
+               set_remembered_pagetop_and_point (window);
+               window_set_node_of_window (window, node);
+               remember_window_and_node (window, node);
+               window_clear_echo_area ();
+               return;
+             }
+         }
+     }
+ 
+   /* The user typed either a completed index label, or a partial string.
+      Find an exact match, or, failing that, the first index entry containing
+      the partial string.  So, we just call info_next_index_match () with minor
+      manipulation of INDEX_OFFSET. */
+   {
+     int old_offset;
+ 
+     /* Start the search right after/before this index. */
+     if (count < 0)
+       {
+         register int i;
+         for (i = 0; index_index[i]; i++);
+         index_offset = i;
+       }
+     else
+       index_offset = -1;
+ 
+     old_offset = index_offset;
+ 
+     /* The "last" string searched for is this one. */
+     index_search = line;
+ 
+     /* Find it, or error. */
+     info_next_index_match (window, count, 0);
+ 
+     /* If the search failed, return the index offset to where it belongs. */
+     if (index_offset == old_offset)
+       index_offset = 0;
+   }
+ }
+ 
+ int
+ index_entry_exists (WINDOW *window, char *string)
+ {
+   register int i;
+   FILE_BUFFER *fb;
+ 
+   /* If there is no previous search string, the user hasn't built an index
+      yet. */
+   if (!string)
+     return 0;
+ 
+   fb = file_buffer_of_window (window);
+   if (!initial_index_filename
+       || (FILENAME_CMP (initial_index_filename, fb->filename) != 0))
+     {
+       info_free_references (index_index);
+       index_index = info_indices_of_file_buffer (fb);
+     }
+ 
+   /* If there is no index, that is an error. */
+   if (!index_index)
+     return 0;
+ 
+   for (i = 0; (i > -1) && (index_index[i]); i++)
+     if (strcmp (string, index_index[i]->label) == 0)
+       break;
+ 
+   /* If that failed, look for the next substring match. */
+   if ((i < 0) || (!index_index[i]))
+     {
+       for (i = 0; (i > -1) && (index_index[i]); i++)
+         if (string_in_line (string, index_index[i]->label) != -1)
+           break;
+ 
+       if ((i > -1) && (index_index[i]))
+         string_in_line (string, index_index[i]->label);
+     }
+ 
+   /* If that failed, return 0. */
+   if ((i < 0) || (!index_index[i]))
+     return 0;
+ 
+   return 1;
+ }
+ 
+ DECLARE_INFO_COMMAND (info_next_index_match,
+  _("Go to the next matching index item from the last `\\[index-search]' command"))
+ {
+   register int i;
+   int partial, dir;
+   NODE *node;
+ 
+   /* If there is no previous search string, the user hasn't built an index
+      yet. */
+   if (!index_search)
+     {
+       info_error (_("No previous index search string."), NULL, NULL);
+       return;
+     }
+ 
+   /* If there is no index, that is an error. */
+   if (!index_index)
+     {
+       info_error (_("No index entries."), NULL, NULL);
+       return;
+     }
+ 
+   /* The direction of this search is controlled by the value of the
+      numeric argument. */
+   if (count < 0)
+     dir = -1;
+   else
+     dir = 1;
+ 
+   /* Search for the next occurence of index_search.  First try to find
+      an exact match. */
+   partial = 0;
+ 
+   for (i = index_offset + dir; (i > -1) && (index_index[i]); i += dir)
+     if (strcmp (index_search, index_index[i]->label) == 0)
+       break;
+ 
+   /* If that failed, look for the next substring match. */
+   if ((i < 0) || (!index_index[i]))
+     {
+       for (i = index_offset + dir; (i > -1) && (index_index[i]); i += dir)
+         if (string_in_line (index_search, index_index[i]->label) != -1)
+           break;
+ 
+       if ((i > -1) && (index_index[i]))
+         partial = string_in_line (index_search, index_index[i]->label);
+     }
+ 
+   /* If that failed, print an error. */
+   if ((i < 0) || (!index_index[i]))
+     {
+       info_error (_("No %sindex entries containing `%s'."),
+                   index_offset > 0 ? (char *) _("more ") : "", index_search);
+       return;
+     }
+ 
+   /* Okay, we found the next one.  Move the offset to the current entry. */
+   index_offset = i;
+ 
+   /* Report to the user on what we have found. */
+   {
+     register int j;
+     const char *name = _("CAN'T SEE THIS");
+     char *match;
+ 
+     for (j = 0; index_nodenames[j]; j++)
+       {
+         if ((i >= index_nodenames[j]->first) &&
+             (i <= index_nodenames[j]->last))
+           {
+             name = index_nodenames[j]->name;
+             break;
+           }
+       }
+ 
+     /* If we had a partial match, indicate to the user which part of the
+        string matched. */
+     match = xstrdup (index_index[i]->label);
+ 
+     if (partial && show_index_match)
+       {
+         int k, ls, start, upper;
+ 
+         ls = strlen (index_search);
+         start = partial - ls;
+         upper = isupper (match[start]) ? 1 : 0;
+ 
+         for (k = 0; k < ls; k++)
+           if (upper)
+             match[k + start] = info_tolower (match[k + start]);
+           else
+             match[k + start] = info_toupper (match[k + start]);
+       }
+ 
+     {
+       char *format;
+ 
+       format = replace_in_documentation
+         (_("Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"),
+          0);
+ 
+       window_message_in_echo_area (format, match, (char *) name);
+     }
+ 
+     free (match);
+   }
+ 
+   /* Select the node corresponding to this index entry. */
+   node = info_get_node (index_index[i]->filename, index_index[i]->nodename);
+ 
+   if (!node)
+     {
+       info_error (msg_cant_file_node,
+                   index_index[i]->filename, index_index[i]->nodename);
+       return;
+     }
+ 
+   info_set_node_of_window (1, window, node);
+ 
+   {
+     long loc;
+     long line = index_index[i]->line_number - 1;
+ 
+     if (line >= 0 && line < window->line_count)
+       {
+ 	/* Jump to the line number specified in the index entry.  */
+ 	loc = window->line_starts[line] - window->node->contents;
+       }
+     else
+       {
+ 	/* Try to find an occurence of LABEL in this node. */
+ 	long start = window->line_starts[1] - window->node->contents;
+ 	loc = info_target_search_node (node, index_index[i]->label, start);
+       }
+ 
+     if (loc != -1)
+       {
+         window->point = loc;
+         window_adjust_pagetop (window);
+       }
+   }
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                 Info APROPOS: Search every known index.          */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* For every menu item in DIR, search the indices of that file for
+    SEARCH_STRING. */
+ REFERENCE **
+ apropos_in_all_indices (char *search_string, int inform)
+ {
+   register int i, dir_index;
+   REFERENCE **all_indices = NULL;
+   REFERENCE **dir_menu = NULL;
+   NODE *dir_node;
+ 
+   dir_node = info_get_node ("dir", "Top");
+   if (dir_node)
+     dir_menu = info_menu_of_node (dir_node);
+ 
+   if (!dir_menu)
+     return NULL;
+ 
+   /* For every menu item in DIR, get the associated node's file buffer and
+      read the indices of that file buffer.  Gather all of the indices into
+      one large one. */
+   for (dir_index = 0; dir_menu[dir_index]; dir_index++)
+     {
+       REFERENCE **this_index, *this_item;
+       NODE *this_node;
+       FILE_BUFFER *this_fb;
+       int dir_node_duplicated = 0;
+ 
+       this_item = dir_menu[dir_index];
+ 
+       if (!this_item->filename)
+         {
+ 	  dir_node_duplicated = 1;
+           if (dir_node->parent)
+             this_item->filename = xstrdup (dir_node->parent);
+           else
+             this_item->filename = xstrdup (dir_node->filename);
+         }
+ 
+       /* Find this node.  If we cannot find it, try using the label of the
+          entry as a file (i.e., "(LABEL)Top"). */
+       this_node = info_get_node (this_item->filename, this_item->nodename);
+ 
+       if (!this_node && this_item->nodename &&
+           (strcmp (this_item->label, this_item->nodename) == 0))
+         this_node = info_get_node (this_item->label, "Top");
+ 
+       if (!this_node)
+ 	{
+ 	  if (dir_node_duplicated)
+ 	    free (this_item->filename);
+ 	  continue;
+ 	}
+ 
+       /* Get the file buffer associated with this node. */
+       {
+         char *files_name;
+ 
+         files_name = this_node->parent;
+         if (!files_name)
+           files_name = this_node->filename;
+ 
+         this_fb = info_find_file (files_name);
+ 
+ 	/* If we already scanned this file, don't do that again.
+ 	   In addition to being faster, this also avoids having
+ 	   multiple identical entries in the *Apropos* menu.  */
+ 	for (i = 0; i < dir_index; i++)
+ 	  if (FILENAME_CMP (this_fb->filename, dir_menu[i]->filename) == 0)
+ 	    break;
+ 	if (i < dir_index)
+ 	  {
+ 	    if (dir_node_duplicated)
+ 	      free (this_item->filename);
+ 	    continue;
+ 	  }
+ 
+         if (this_fb && inform)
+           message_in_echo_area (_("Scanning indices of `%s'..."),
+               files_name, NULL);
+ 
+         this_index = info_indices_of_file_buffer (this_fb);
+         free (this_node);
+ 
+         if (this_fb && inform)
+           unmessage_in_echo_area ();
+       }
+ 
+       if (this_index)
+         {
+           /* Remember the filename which contains this set of references. */
+           for (i = 0; this_index && this_index[i]; i++)
+             if (!this_index[i]->filename)
+               this_index[i]->filename = xstrdup (this_fb->filename);
+ 
+           /* Concatenate with the other indices.  */
+           all_indices = info_concatenate_references (all_indices, this_index);
+         }
+     }
+ 
+   info_free_references (dir_menu);
+ 
+   /* Build a list of the references which contain SEARCH_STRING. */
+   if (all_indices)
+     {
+       REFERENCE *entry, **apropos_list = NULL;
+       int apropos_list_index = 0;
+       int apropos_list_slots = 0;
+ 
+       for (i = 0; (entry = all_indices[i]); i++)
+         {
+           if (string_in_line (search_string, entry->label) != -1)
+             {
+               add_pointer_to_array
+                 (entry, apropos_list_index, apropos_list, apropos_list_slots,
+                  100, REFERENCE *);
+             }
+           else
+             {
+               maybe_free (entry->label);
+               maybe_free (entry->filename);
+               maybe_free (entry->nodename);
+               free (entry);
+             }
+         }
+ 
+       free (all_indices);
+       all_indices = apropos_list;
+     }
+   return all_indices;
+ }
+ 
+ #define APROPOS_NONE \
+    N_("No available info files have `%s' in their indices.")
+ 
+ void
+ info_apropos (char *string)
+ {
+   REFERENCE **apropos_list;
+ 
+   apropos_list = apropos_in_all_indices (string, 0);
+ 
+   if (!apropos_list)
+     info_error (_(APROPOS_NONE), string, NULL);
+   else
+     {
+       register int i;
+       REFERENCE *entry;
+ 
+       for (i = 0; (entry = apropos_list[i]); i++)
+         fprintf (stdout, "\"(%s)%s\" -- %s\n",
+                  entry->filename, entry->nodename, entry->label);
+     }
+   info_free_references (apropos_list);
+ }
+ 
+ static char *apropos_list_nodename = "*Apropos*";
+ 
+ DECLARE_INFO_COMMAND (info_index_apropos,
+    _("Grovel all known info file's indices for a string and build a menu"))
+ {
+   char *line;
+ 
+   line = info_read_in_echo_area (window, _("Index apropos: "));
+ 
+   window = active_window;
+ 
+   /* User aborted? */
+   if (!line)
+     {
+       info_abort_key (window, 1, 1);
+       return;
+     }
+ 
+   /* User typed something? */
+   if (*line)
+     {
+       REFERENCE **apropos_list;
+       NODE *apropos_node;
+ 
+       apropos_list = apropos_in_all_indices (line, 1);
+ 
+       if (!apropos_list)
+         info_error (_(APROPOS_NONE), line, NULL);
+       else
+         {
+           register int i;
+           char *line_buffer;
+ 
+           initialize_message_buffer ();
+           printf_to_message_buffer
+             (_("\n* Menu: Nodes whose indices contain `%s':\n"),
+              line, NULL, NULL);
+           line_buffer = xmalloc (500);
+ 
+           for (i = 0; apropos_list[i]; i++)
+             {
+               int len;
+ 	      /* The label might be identical to that of another index
+ 		 entry in another Info file.  Therefore, we make the file
+ 		 name part of the menu entry, to make them all distinct.  */
+               sprintf (line_buffer, "* %s [%s]: ",
+ 		       apropos_list[i]->label, apropos_list[i]->filename);
+               len = pad_to (40, line_buffer);
+               sprintf (line_buffer + len, "(%s)%s.",
+                        apropos_list[i]->filename, apropos_list[i]->nodename);
+               printf_to_message_buffer ("%s\n", line_buffer, NULL, NULL);
+             }
+           free (line_buffer);
+         }
+ 
+       apropos_node = message_buffer_to_node ();
+       add_gcable_pointer (apropos_node->contents);
+       name_internal_node (apropos_node, apropos_list_nodename);
+ 
+       /* Even though this is an internal node, we don't want the window
+          system to treat it specially.  So we turn off the internalness
+          of it here. */
+       apropos_node->flags &= ~N_IsInternal;
+ 
+       /* Find/Create a window to contain this node. */
+       {
+         WINDOW *new;
+         NODE *node;
+ 
+         set_remembered_pagetop_and_point (window);
+ 
+         /* If a window is visible and showing an apropos list already,
+            re-use it. */
+         for (new = windows; new; new = new->next)
+           {
+             node = new->node;
+ 
+             if (internal_info_node_p (node) &&
+                 (strcmp (node->nodename, apropos_list_nodename) == 0))
+               break;
+           }
+ 
+         /* If we couldn't find an existing window, try to use the next window
+            in the chain. */
+         if (!new && window->next)
+           new = window->next;
+ 
+         /* If we still don't have a window, make a new one to contain
+            the list. */
+         if (!new)
+           {
+             WINDOW *old_active;
+ 
+             old_active = active_window;
+             active_window = window;
+             new = window_make_window (NULL);
+             active_window = old_active;
+           }
+ 
+         /* If we couldn't make a new window, use this one. */
+         if (!new)
+           new = window;
+ 
+         /* Lines do not wrap in this window. */
+         new->flags |= W_NoWrap;
+ 
+         window_set_node_of_window (new, apropos_node);
+         remember_window_and_node (new, apropos_node);
+         active_window = new;
+       }
+       info_free_references (apropos_list);
+     }
+   free (line);
+ 
+   if (!info_error_was_printed)
+     window_clear_echo_area ();
+ }
diff -Nrc2 texinfo-4.12/info/indices.h texinfo-4.13/info/indices.h
*** texinfo-4.12/info/indices.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/indices.h	Sun Jul  1 14:20:30 2007
***************
*** 0 ****
--- 1,44 ----
+ /* indices.h -- Functions defined in indices.c.
+    $Id: indices.h,v 1.6 2007/07/01 21:20:30 karl Exp $
+ 
+    This file is part of GNU Info, a program for reading online documentation
+    stored in Info format.
+ 
+    Copyright (C) 1993, 1997, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_INDICES_H
+ #define INFO_INDICES_H
+ 
+ /* User-visible variable controls the output of info-index-next. */
+ extern int show_index_match;
+ 
+ extern REFERENCE **info_indices_of_window (WINDOW *window);
+ extern REFERENCE **info_indices_of_file_buffer (FILE_BUFFER *file_buffer);
+ extern void info_apropos (char *string);
+ 
+ /* For every menu item in DIR, search the indices of that file for STRING. */
+ REFERENCE **apropos_in_all_indices (char *search_string, int inform);
+ 
+ /* User visible functions declared in indices.c. */
+ extern void info_index_search (WINDOW *window, int count, unsigned char key);
+ extern void info_next_index_match (WINDOW *window, int count, unsigned char key);
+ extern void info_index_apropos (WINDOW *window, int count, unsigned char key);
+ extern void do_info_index_search (WINDOW *window, int count, char *search_string);
+ extern int index_entry_exists (WINDOW *window, char *string);
+ 
+ #endif /* not INFO_INDICES_H */
diff -Nrc2 texinfo-4.12/info/info-utils.c texinfo-4.13/info/info-utils.c
*** texinfo-4.12/info/info-utils.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/info-utils.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,729 ----
+ /* info-utils.c -- miscellanous.
+    $Id: info-utils.c,v 1.12 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1998, 2003, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "info-utils.h"
+ #if defined (HANDLE_MAN_PAGES)
+ #  include "man.h"
+ #endif /* HANDLE_MAN_PAGES */
+ 
+ /* When non-zero, various display and input functions handle ISO Latin
+    character sets correctly. */
+ int ISO_Latin_p = 1;
+ 
+ /* Variable which holds the most recent filename parsed as a result of
+    calling info_parse_xxx (). */
+ char *info_parsed_filename = NULL;
+ 
+ /* Variable which holds the most recent nodename parsed as a result of
+    calling info_parse_xxx (). */
+ char *info_parsed_nodename = NULL;
+ 
+ /* Variable which holds the most recent line number parsed as a result of
+    calling info_parse_xxx (). */
+ int info_parsed_line_number = 0;
+ 
+ /* Functions to remember a filename or nodename for later return. */
+ static void save_filename (char *filename);
+ static void saven_filename (char *filename, int len);
+ static void save_nodename (char *nodename);
+ static void saven_nodename (char *nodename, int len);
+ 
+ /* How to get a reference (either menu or cross). */
+ static REFERENCE **info_references_internal (char *label,
+     SEARCH_BINDING *binding);
+ 
+ /* Parse the filename and nodename out of STRING.  If STRING doesn't
+    contain a filename (i.e., it is NOT (FILENAME)NODENAME) then set
+    INFO_PARSED_FILENAME to NULL.  If second argument NEWLINES_OKAY is
+    non-zero, it says to allow the nodename specification to cross a
+    newline boundary (i.e., only `,', `.', or `TAB' can end the spec). */
+ void
+ info_parse_node (char *string, int newlines_okay)
+ {
+   register int i = 0;
+ 
+   /* Default the answer. */
+   save_filename (NULL);
+   save_nodename (NULL);
+ 
+   /* Special case of nothing passed.  Return nothing. */
+   if (!string || !*string)
+     return;
+ 
+   string += skip_whitespace (string);
+ 
+   /* Check for (FILENAME)NODENAME. */
+   if (*string == '(')
+     {
+       i = 0;
+       /* Advance past the opening paren. */
+       string++;
+ 
+       /* Find the closing paren. */
+       while (string[i] && string[i] != ')')
+         i++;
+ 
+       /* Remember parsed filename. */
+       saven_filename (string, i);
+ 
+       /* Point directly at the nodename. */
+       string += i;
+ 
+       if (*string)
+         string++;
+     }
+ 
+   /* Parse out nodename. */
+   i = skip_node_characters (string, newlines_okay);
+   saven_nodename (string, i);
+   canonicalize_whitespace (info_parsed_nodename);
+   if (info_parsed_nodename && !*info_parsed_nodename)
+     {
+       free (info_parsed_nodename);
+       info_parsed_nodename = NULL;
+     }
+ 
+   /* Parse ``(line ...)'' part of menus, if any.  */
+   {
+     char *rest = string + i;
+ 
+     /* Advance only if it's not already at end of string.  */
+     if (*rest)
+       rest++;
+ 
+     /* Skip any whitespace first, and then a newline in case the item
+        was so long to contain the ``(line ...)'' string in the same
+        physical line.  */
+     while (whitespace(*rest))
+       rest++;
+     if (*rest == '\n')
+       {
+         rest++;
+         while (whitespace(*rest))
+           rest++;
+       }
+ 
+     /* Are we looking at an opening parenthesis?  That can only mean
+        we have a winner. :)  */
+     if (strncmp (rest, "(line ", strlen ("(line ")) == 0)
+       {
+         rest += strlen ("(line ");
+         info_parsed_line_number = strtol (rest, NULL, 0);
+       }
+     else
+       info_parsed_line_number = 0;
+   }
+ }
+ 
+ /* Return the node addressed by LABEL in NODE (usually one of "Prev:",
+    "Next:", "Up:", "File:", or "Node:".  After a call to this function,
+    the global INFO_PARSED_NODENAME and INFO_PARSED_FILENAME contain
+    the information. */
+ void
+ info_parse_label (char *label, NODE *node)
+ {
+   register int i;
+   char *nodeline;
+ 
+   /* Default answer to failure. */
+   save_nodename (NULL);
+   save_filename (NULL);
+ 
+   /* Find the label in the first line of this node. */
+   nodeline = node->contents;
+   i = string_in_line (label, nodeline);
+ 
+   if (i == -1)
+     return;
+ 
+   nodeline += i;
+   nodeline += skip_whitespace (nodeline);
+   info_parse_node (nodeline, DONT_SKIP_NEWLINES);
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                  Finding and Building Menus                      */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Return a NULL terminated array of REFERENCE * which represents the menu
+    found in NODE.  If there is no menu in NODE, just return a NULL pointer. */
+ REFERENCE **
+ info_menu_of_node (NODE *node)
+ {
+   long position;
+   SEARCH_BINDING tmp_search;
+   REFERENCE **menu = NULL;
+ 
+   tmp_search.buffer = node->contents;
+   tmp_search.start = 0;
+   tmp_search.end = node->nodelen;
+   tmp_search.flags = S_FoldCase;
+ 
+   /* Find the start of the menu. */
+   position = search_forward (INFO_MENU_LABEL, &tmp_search);
+ 
+   if (position == -1)
+     return NULL;
+ 
+   /* We have the start of the menu now.  Glean menu items from the rest
+      of the node. */
+   tmp_search.start = position + strlen (INFO_MENU_LABEL);
+   tmp_search.start += skip_line (tmp_search.buffer + tmp_search.start);
+   tmp_search.start--;
+   menu = info_menu_items (&tmp_search);
+   return menu;
+ }
+ 
+ /* Return a NULL terminated array of REFERENCE * which represents the cross
+    refrences found in NODE.  If there are no cross references in NODE, just
+    return a NULL pointer. */
+ REFERENCE **
+ info_xrefs_of_node (NODE *node)
+ {
+   SEARCH_BINDING tmp_search;
+ 
+ #if defined (HANDLE_MAN_PAGES)
+   if (node->flags & N_IsManPage)
+     return xrefs_of_manpage (node);
+ #endif
+ 
+   tmp_search.buffer = node->contents;
+   tmp_search.start = 0;
+   tmp_search.end = node->nodelen;
+   tmp_search.flags = S_FoldCase;
+ 
+   return info_xrefs (&tmp_search);
+ }
+ 
+ /* Glean menu entries from BINDING->buffer + BINDING->start until we
+    have looked at the entire contents of BINDING.  Return an array
+    of REFERENCE * that represents each menu item in this range. */
+ REFERENCE **
+ info_menu_items (SEARCH_BINDING *binding)
+ {
+   return info_references_internal (INFO_MENU_ENTRY_LABEL, binding);
+ }
+ 
+ /* Glean cross references from BINDING->buffer + BINDING->start until
+    BINDING->end.  Return an array of REFERENCE * that represents each
+    cross reference in this range. */
+ REFERENCE **
+ info_xrefs (SEARCH_BINDING *binding)
+ {
+   return info_references_internal (INFO_XREF_LABEL, binding);
+ }
+ 
+ /* Glean cross references or menu items from BINDING.  Return an array
+    of REFERENCE * that represents the items found. */
+ static REFERENCE **
+ info_references_internal (char *label, SEARCH_BINDING *binding)
+ {
+   SEARCH_BINDING tmp_search;
+   REFERENCE **refs = NULL;
+   int refs_index = 0, refs_slots = 0;
+   int searching_for_menu_items = 0;
+   long position;
+ 
+   tmp_search.buffer = binding->buffer;
+   tmp_search.start = binding->start;
+   tmp_search.end = binding->end;
+   tmp_search.flags = S_FoldCase | S_SkipDest;
+ 
+   searching_for_menu_items = (mbscasecmp (label, INFO_MENU_ENTRY_LABEL) == 0);
+ 
+   while ((position = search_forward (label, &tmp_search)) != -1)
+     {
+       int offset, start;
+       char *refdef;
+       REFERENCE *entry;
+ 
+       tmp_search.start = position;
+       tmp_search.start += skip_whitespace (tmp_search.buffer + tmp_search.start);
+       start = tmp_search.start - binding->start;
+       refdef = tmp_search.buffer + tmp_search.start;
+       offset = string_in_line (":", refdef);
+ 
+       /* When searching for menu items, if no colon, there is no
+          menu item on this line. */
+       if (offset == -1)
+         {
+           if (searching_for_menu_items)
+             continue;
+           else
+             {
+               int temp;
+ 
+               temp = skip_line (refdef);
+               offset = string_in_line (":", refdef + temp);
+               if (offset == -1)
+                 continue;       /* Give up? */
+               else
+                 offset += temp;
+             }
+         }
+ 
+       entry = xmalloc (sizeof (REFERENCE));
+       entry->filename = NULL;
+       entry->nodename = NULL;
+       entry->label = xmalloc (offset);
+       strncpy (entry->label, refdef, offset - 1);
+       entry->label[offset - 1] = '\0';
+       canonicalize_whitespace (entry->label);
+       entry->line_number = 0;
+       
+       refdef += offset;
+       entry->start = start;
+       entry->end = refdef - binding->buffer;
+ 
+       /* If this reference entry continues with another ':' then the
+          nodename is the same as the label. */
+       if (*refdef == ':')
+         {
+           entry->nodename = xstrdup (entry->label);
+         }
+       else
+         {
+           /* This entry continues with a specific nodename.  Parse the
+              nodename from the specification. */
+ 
+           refdef += skip_whitespace_and_newlines (refdef);
+ 
+           if (searching_for_menu_items)
+             info_parse_node (refdef, DONT_SKIP_NEWLINES);
+           else
+             info_parse_node (refdef, SKIP_NEWLINES);
+ 
+           if (info_parsed_filename)
+             entry->filename = xstrdup (info_parsed_filename);
+ 
+           if (info_parsed_nodename)
+             entry->nodename = xstrdup (info_parsed_nodename);
+ 
+           entry->line_number = info_parsed_line_number;
+         }
+ 
+       add_pointer_to_array
+         (entry, refs_index, refs, refs_slots, 50, REFERENCE *);
+     }
+   return refs;
+ }
+ 
+ /* Get the entry associated with LABEL in REFERENCES.  Return a pointer
+    to the ENTRY if found, or NULL. */
+ REFERENCE *
+ info_get_labeled_reference (char *label, REFERENCE **references)
+ {
+   register int i;
+   REFERENCE *entry;
+ 
+   for (i = 0; references && (entry = references[i]); i++)
+     {
+       if (strcmp (label, entry->label) == 0)
+         return entry;
+     }
+   return NULL;
+ }
+ 
+ /* A utility function for concatenating REFERENCE **.  Returns a new
+    REFERENCE ** which is the concatenation of REF1 and REF2.  The REF1
+    and REF2 arrays are freed, but their contents are not. */
+ REFERENCE **
+ info_concatenate_references (REFERENCE **ref1, REFERENCE **ref2)
+ {
+   register int i, j;
+   REFERENCE **result;
+   int size;
+ 
+   /* With one argument passed as NULL, simply return the other arg. */
+   if (!ref1)
+     return ref2;
+   else if (!ref2)
+     return ref1;
+ 
+   /* Get the total size of the slots that we will need. */
+   for (i = 0; ref1[i]; i++);
+   size = i;
+   for (i = 0; ref2[i]; i++);
+   size += i;
+ 
+   result = xmalloc ((1 + size) * sizeof (REFERENCE *));
+ 
+   /* Copy the contents over. */
+   for (i = 0; ref1[i]; i++)
+     result[i] = ref1[i];
+ 
+   j = i;
+   for (i = 0; ref2[i]; i++)
+     result[j++] = ref2[i];
+ 
+   result[j] = NULL;
+   free (ref1);
+   free (ref2);
+   return result;
+ }
+ 
+ 
+ 
+ /* Copy a reference structure.  Since we tend to free everything at
+    every opportunity, we don't share any points, but copy everything into
+    new memory.  */
+ REFERENCE *
+ info_copy_reference (REFERENCE *src)
+ {
+   REFERENCE *dest = xmalloc (sizeof (REFERENCE));
+   dest->label = src->label ? xstrdup (src->label) : NULL;
+   dest->filename = src->filename ? xstrdup (src->filename) : NULL;
+   dest->nodename = src->nodename ? xstrdup (src->nodename) : NULL;
+   dest->start = src->start;
+   dest->end = src->end;
+   dest->line_number = 0;
+   
+   return dest;
+ }
+ 
+ 
+ 
+ /* Free the data associated with REFERENCES. */
+ void
+ info_free_references (REFERENCE **references)
+ {
+   register int i;
+   REFERENCE *entry;
+ 
+   if (references)
+     {
+       for (i = 0; references && (entry = references[i]); i++)
+         {
+           maybe_free (entry->label);
+           maybe_free (entry->filename);
+           maybe_free (entry->nodename);
+ 
+           free (entry);
+         }
+ 
+       free (references);
+     }
+ }
+ 
+ /* Search for sequences of whitespace or newlines in STRING, replacing
+    all such sequences with just a single space.  Remove whitespace from
+    start and end of string. */
+ void
+ canonicalize_whitespace (char *string)
+ {
+   register int i, j;
+   int len, whitespace_found, whitespace_loc = 0;
+   char *temp;
+ 
+   if (!string)
+     return;
+ 
+   len = strlen (string);
+   temp = xmalloc (1 + len);
+ 
+   /* Search for sequences of whitespace or newlines.  Replace all such
+      sequences in the string with just a single space. */
+ 
+   whitespace_found = 0;
+   for (i = 0, j = 0; string[i]; i++)
+     {
+       if (whitespace_or_newline (string[i]))
+         {
+           whitespace_found++;
+           whitespace_loc = i;
+           continue;
+         }
+       else
+         {
+           if (whitespace_found && whitespace_loc)
+             {
+               whitespace_found = 0;
+ 
+               /* Suppress whitespace at start of string. */
+               if (j)
+                 temp[j++] = ' ';
+             }
+ 
+           temp[j++] = string[i];
+         }
+     }
+ 
+   /* Kill trailing whitespace. */
+   if (j && whitespace (temp[j - 1]))
+     j--;
+ 
+   temp[j] = '\0';
+   strcpy (string, temp);
+   free (temp);
+ }
+ 
+ /* String representation of a char returned by printed_representation (). */
+ static char *the_rep;
+ static size_t the_rep_size;
+ 
+ /* Return a pointer to a string which is the printed representation
+    of CHARACTER if it were printed at HPOS. */
+ char *
+ printed_representation (const unsigned char *cp, size_t len, size_t hpos,
+ 			/* Return: */
+ 			size_t *plen)
+ {
+   register int i = 0;
+   int printable_limit = ISO_Latin_p ? 255 : 127;
+ #define REPSPACE(s)                                            \
+   do                                                           \
+     {                                                          \
+       while (the_rep_size < s) 			               \
+ 	{						       \
+ 	  if (the_rep_size == 0)			       \
+ 	    the_rep_size = 8; /* Initial allocation */	       \
+ 	  the_rep = x2realloc (the_rep, &the_rep_size);	       \
+ 	}						       \
+     }                                                          \
+   while (0)
+     
+ #define SC(c)                                                  \
+   do                                                           \
+     {                                                          \
+       REPSPACE(i + 1);                                         \
+       the_rep[i++] = c;                                        \
+     }                                                          \
+   while (0)
+   
+   for (; len > 0; cp++, len--)
+     {
+       if (raw_escapes_p && *cp == '\033')
+ 	SC(*cp);
+       /* Show CTRL-x as ^X.  */
+       else if (iscntrl (*cp) && *cp < 127)
+ 	{
+ 	  switch (*cp)
+ 	    {
+ 	    case '\r':
+ 	    case '\n':
+ 	      SC(*cp);
+ 	      break;
+ 
+ 	    case '\t':
+ 	      {
+ 		int tw;
+ 
+ 		tw = ((hpos + 8) & 0xf8) - hpos;
+ 		while (i < tw)
+ 		  SC(' ');
+ 		break;
+ 	      }
+ 	      
+ 	    default:
+ 	      SC('^');
+ 	      SC(*cp | 0x40);
+ 	    }
+ 	}
+       /* Show META-x as 0370.  */
+       else if (*cp > printable_limit)
+ 	{
+ 	  REPSPACE (i + 5);
+ 	  sprintf (the_rep + i, "\\%0o", *cp);
+ 	  i = strlen (the_rep);
+ 	}
+       else if (*cp == DEL)
+ 	{
+ 	  SC('^');
+ 	  SC('?');
+ 	}
+       else
+ 	SC(*cp);
+     }
+   
+   SC(0);
+   *plen = i - 1;
+   return the_rep;
+ }
+ 
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                  Functions Static To This File                   */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Amount of space allocated to INFO_PARSED_FILENAME via xmalloc (). */
+ static int parsed_filename_size = 0;
+ 
+ /* Amount of space allocated to INFO_PARSED_NODENAME via xmalloc (). */
+ static int parsed_nodename_size = 0;
+ 
+ static void save_string (char *string, char **string_p, int *string_size_p);
+ static void saven_string (char *string, int len, char **string_p,
+     int *string_size_p);
+ 
+ /* Remember FILENAME in PARSED_FILENAME.  An empty FILENAME is translated
+    to a NULL pointer in PARSED_FILENAME. */
+ static void
+ save_filename (char *filename)
+ {
+   save_string (filename, &info_parsed_filename, &parsed_filename_size);
+ }
+ 
+ /* Just like save_filename (), but you pass the length of the string. */
+ static void
+ saven_filename (char *filename, int len)
+ {
+   saven_string (filename, len,
+                 &info_parsed_filename, &parsed_filename_size);
+ }
+ 
+ /* Remember NODENAME in PARSED_NODENAME.  An empty NODENAME is translated
+    to a NULL pointer in PARSED_NODENAME. */
+ static void
+ save_nodename (char *nodename)
+ {
+   save_string (nodename, &info_parsed_nodename, &parsed_nodename_size);
+ }
+ 
+ /* Just like save_nodename (), but you pass the length of the string. */
+ static void
+ saven_nodename (char *nodename, int len)
+ {
+   saven_string (nodename, len,
+                 &info_parsed_nodename, &parsed_nodename_size);
+ }
+ 
+ /* Remember STRING in STRING_P.  STRING_P should currently have STRING_SIZE_P
+    bytes allocated to it.  An empty STRING is translated to a NULL pointer
+    in STRING_P. */
+ static void
+ save_string (char *string, char **string_p, int *string_size_p)
+ {
+   if (!string || !*string)
+     {
+       if (*string_p)
+         free (*string_p);
+ 
+       *string_p = NULL;
+       *string_size_p = 0;
+     }
+   else
+     {
+       if (strlen (string) >= (unsigned int) *string_size_p)
+         *string_p = xrealloc
+           (*string_p, (*string_size_p = 1 + strlen (string)));
+ 
+       strcpy (*string_p, string);
+     }
+ }
+ 
+ /* Just like save_string (), but you also pass the length of STRING. */
+ static void
+ saven_string (char *string, int len, char **string_p, int *string_size_p)
+ {
+   if (!string)
+     {
+       if (*string_p)
+         free (*string_p);
+ 
+       *string_p = NULL;
+       *string_size_p = 0;
+     }
+   else
+     {
+       if (len >= *string_size_p)
+         *string_p = xrealloc (*string_p, (*string_size_p = 1 + len));
+ 
+       strncpy (*string_p, string, len);
+       (*string_p)[len] = '\0';
+     }
+ }
+ 
+ /* Return a pointer to the part of PATHNAME that simply defines the file. */
+ char *
+ filename_non_directory (char *pathname)
+ {
+   register char *filename = pathname + strlen (pathname);
+ 
+   if (HAVE_DRIVE (pathname))
+     pathname += 2;
+ 
+   while (filename > pathname && !IS_SLASH (filename[-1]))
+     filename--;
+ 
+   return filename;
+ }
+ 
+ /* Return non-zero if NODE is one especially created by Info. */
+ int
+ internal_info_node_p (NODE *node)
+ {
+ #if defined (NEVER)
+   if (node &&
+       (node->filename && !*node->filename) &&
+       !node->parent && node->nodename)
+     return 1;
+   else
+     return 0;
+ #else
+   return (node != NULL) && ((node->flags & N_IsInternal) != 0);
+ #endif /* !NEVER */
+ }
+ 
+ /* Make NODE appear to be one especially created by Info. */
+ void
+ name_internal_node (NODE *node, char *name)
+ {
+   if (!node)
+     return;
+ 
+   node->filename = "";
+   node->parent = NULL;
+   node->nodename = name;
+   node->flags |= N_IsInternal;
+ }
+ 
+ /* Return the window displaying NAME, the name of an internally created
+    Info window. */
+ WINDOW *
+ get_internal_info_window (char *name)
+ {
+   WINDOW *win;
+ 
+   for (win = windows; win; win = win->next)
+     if (internal_info_node_p (win->node) &&
+         (strcmp (win->node->nodename, name) == 0))
+       break;
+ 
+   return win;
+ }
+ 
+ /* Return a window displaying the node NODE. */
+ WINDOW *
+ get_window_of_node (NODE *node)
+ {
+   WINDOW *win = NULL;
+ 
+   for (win = windows; win; win = win->next)
+     if (win->node == node)
+       break;
+ 
+   return win;
+ }
diff -Nrc2 texinfo-4.12/info/info-utils.h texinfo-4.13/info/info-utils.h
*** texinfo-4.12/info/info-utils.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/info-utils.h	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,136 ----
+ /* info-utils.h -- Exported functions and variables from info-utils.c.
+    $Id: info-utils.h,v 1.8 2008/05/10 14:39:04 gray Exp $   
+ 
+    Copyright (C) 1993, 1996, 1998, 2002, 2003, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_UTILS_H
+ #define INFO_UTILS_H
+ 
+ #include "nodes.h"
+ #include "window.h"
+ #include "search.h"
+ 
+ /* Structure which describes a node reference, such as a menu entry or
+    cross reference.  Arrays of such references can be built by calling
+    info_menus_of_node () or info_xrefs_of_node (). */
+ typedef struct {
+   char *label;          /* User Label. */
+   char *filename;       /* File where this node can be found. */
+   char *nodename;       /* Name of the node. */
+   int start, end;       /* Offsets within the containing node of LABEL. */
+   int line_number;      /* Specific line number a menu item points to.  */
+ } REFERENCE;
+ 
+ /* When non-zero, various display and input functions handle ISO Latin
+    character sets correctly. */
+ extern int ISO_Latin_p;
+ 
+ /* Variable which holds the most recent filename parsed as a result of
+    calling info_parse_xxx (). */
+ extern char *info_parsed_filename;
+ 
+ /* Variable which holds the most recent nodename parsed as a result of
+    calling info_parse_xxx (). */
+ extern char *info_parsed_nodename;
+ 
+ /* Parse the filename and nodename out of STRING.  If STRING doesn't
+    contain a filename (i.e., it is NOT (FILENAME)NODENAME) then set
+    INFO_PARSED_FILENAME to NULL.  If second argument NEWLINES_OKAY is
+    non-zero, it says to allow the nodename specification to cross a
+    newline boundary (i.e., only `,', `.', or `TAB' can end the spec). */
+ void info_parse_node (char *string, int newlines_okay);
+ 
+ /* Return a NULL terminated array of REFERENCE * which represents the menu
+    found in NODE.  If there is no menu in NODE, just return a NULL pointer. */
+ extern REFERENCE **info_menu_of_node (NODE *node);
+ 
+ /* Return a NULL terminated array of REFERENCE * which represents the cross
+    refrences found in NODE.  If there are no cross references in NODE, just
+    return a NULL pointer. */
+ extern REFERENCE **info_xrefs_of_node (NODE *node);
+ 
+ /* Glean cross references from BINDING->buffer + BINDING->start until
+    BINDING->end.  Return an array of REFERENCE * that represents each
+    cross reference in this range. */
+ extern REFERENCE **info_xrefs (SEARCH_BINDING *binding);
+ 
+ /* Get the entry associated with LABEL in REFERENCES.  Return a pointer to
+    the reference if found, or NULL. */
+ extern REFERENCE *info_get_labeled_reference (char *label,
+     REFERENCE **references);
+ 
+ /* Glean menu entries from BINDING->buffer + BINDING->start until we
+    have looked at the entire contents of BINDING.  Return an array
+    of REFERENCE * that represents each menu item in this range. */
+ extern REFERENCE **info_menu_items (SEARCH_BINDING *binding);
+ 
+ /* A utility function for concatenating REFERENCE **.  Returns a new
+    REFERENCE ** which is the concatenation of REF1 and REF2.  The REF1
+    and REF2 arrays are freed, but their contents are not. */
+ REFERENCE **info_concatenate_references (REFERENCE **ref1, REFERENCE **ref2);
+ 
+ /* Copy an existing reference into new memory.  */
+ extern REFERENCE *info_copy_reference (REFERENCE *src);
+ 
+ /* Free the data associated with REFERENCES. */
+ extern void info_free_references (REFERENCE **references);
+ 
+ /* Search for sequences of whitespace or newlines in STRING, replacing
+    all such sequences with just a single space.  Remove whitespace from
+    start and end of string. */
+ void canonicalize_whitespace (char *string);
+ 
+ /* Return a pointer to a string which is the printed representation
+    of CHARACTER if it were printed at HPOS. */
+ extern char *printed_representation (const unsigned char *cp, size_t len,
+ 				     size_t hpos, size_t *plen);
+ 
+ /* Return a pointer to the part of PATHNAME that simply defines the file. */
+ extern char *filename_non_directory (char *pathname);
+ 
+ /* Return non-zero if NODE is one especially created by Info. */
+ extern int internal_info_node_p (NODE *node);
+ 
+ /* Make NODE appear to be one especially created by Info, and give it NAME. */
+ extern void name_internal_node (NODE *node, char *name);
+ 
+ /* Return the window displaying NAME, the name of an internally created
+    Info window. */
+ extern WINDOW *get_internal_info_window (char *name);
+ 
+ /* Return a window displaying the node NODE. */
+ extern WINDOW *get_window_of_node (NODE *node);
+ 
+ /* Return the node addressed by LABEL in NODE (usually one of "Prev:",
+    "Next:", "Up:", "File:", or "Node:".  After a call to this function,
+    the globals `info_parsed_nodename' and `info_parsed_filename' contain
+    the information. */
+ extern void info_parse_label (char *label, NODE *node);
+ 
+ #define info_file_label_of_node(n) info_parse_label (INFO_FILE_LABEL, n)
+ #define info_next_label_of_node(n) info_parse_label (INFO_NEXT_LABEL, n)
+ #define info_up_label_of_node(n)   info_parse_label (INFO_UP_LABEL, n)
+ #define info_prev_label_of_node(n) \
+   do { \
+     info_parse_label (INFO_PREV_LABEL, n); \
+     if (!info_parsed_nodename && !info_parsed_filename) \
+       info_parse_label (INFO_ALTPREV_LABEL, n); \
+   } while (0)
+ 
+ #endif /* not INFO_UTILS_H */
diff -Nrc2 texinfo-4.12/info/info.c texinfo-4.13/info/info.c
*** texinfo-4.12/info/info.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/info.c	Fri Aug 15 16:17:04 2008
***************
*** 0 ****
--- 1,707 ----
+ /* info.c -- Display nodes of Info files in multiple windows.
+    $Id: info.c,v 1.33 2008/08/14 17:36:13 karl Exp $
+ 
+    Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+    2004, 2005, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "indices.h"
+ #include "dribble.h"
+ #include "getopt.h"
+ #if defined (HANDLE_MAN_PAGES)
+ #  include "man.h"
+ #endif /* HANDLE_MAN_PAGES */
+ 
+ char *program_name = "info";
+ 
+ /* Non-zero means search all indices for APROPOS_SEARCH_STRING. */
+ static int apropos_p = 0;
+ 
+ /* Variable containing the string to search for when apropos_p is non-zero. */
+ static char *apropos_search_string = NULL;
+ 
+ /* Non-zero means search all indices for INDEX_SEARCH_STRING.  Unlike
+    apropos, this puts the user at the node, running info. */
+ static int index_search_p = 0;
+ 
+ /* Non-zero means look for the node which describes the invocation
+    and command-line options of the program, and start the info
+    session at that node.  */
+ static int goto_invocation_p = 0;
+ 
+ /* Variable containing the string to search for when index_search_p is
+    non-zero. */
+ static char *index_search_string = NULL;
+ 
+ /* Non-zero means print version info only. */
+ static int print_version_p = 0;
+ 
+ /* Non-zero means print a short description of the options. */
+ static int print_help_p = 0;
+ 
+ /* Array of the names of nodes that the user specified with "--node" on the
+    command line. */
+ static char **user_nodenames = NULL;
+ static int user_nodenames_index = 0;
+ static int user_nodenames_slots = 0;
+ 
+ /* String specifying the first file to load.  This string can only be set
+    by the user specifying "--file" on the command line. */
+ static char *user_filename = NULL;
+ 
+ /* String specifying the name of the file to dump nodes to.  This value is
+    filled if the user speficies "--output" on the command line. */
+ static char *user_output_filename = NULL;
+ 
+ /* Non-zero indicates that when "--output" is specified, all of the menu
+    items of the specified nodes (and their subnodes as well) should be
+    dumped in the order encountered.  This basically can print a book. */
+ int dump_subnodes = 0;
+ 
+ /* Non-zero means make default keybindings be loosely modeled on vi(1).  */
+ int vi_keys_p = 0;
+ 
+ /* Non-zero means don't remove ANSI escape sequences.  */
+ int raw_escapes_p = 1;
+ 
+ /* Non-zero means print the absolute location of the file to be loaded.  */
+ static int print_where_p = 0;
+ 
+ #ifdef __MSDOS__
+ /* Non-zero indicates that screen output should be made 'speech-friendly'.
+    Since on MSDOS the usual behavior is to write directly to the video
+    memory, speech synthesizer software cannot grab the output.  Therefore,
+    we provide a user option which tells us to avoid direct screen output
+    and use stdout instead (which loses the color output).  */
+ int speech_friendly = 0;
+ #endif
+ 
+ /* Structure describing the options that Info accepts.  We pass this structure
+    to getopt_long ().  If you add or otherwise change this structure, you must
+    also change the string which follows it. */
+ #define DRIBBLE_OPTION 2
+ #define RESTORE_OPTION 3
+ #define IDXSRCH_OPTION 4
+ static struct option long_options[] = {
+   { "apropos", 1, 0, 'k' },
+   { "directory", 1, 0, 'd' },
+   { "dribble", 1, 0, DRIBBLE_OPTION },
+   { "file", 1, 0, 'f' },
+   { "help", 0, &print_help_p, 1 },
+   { "index-search", 1, 0, IDXSRCH_OPTION },
+   { "location", 0, &print_where_p, 1 },
+   { "node", 1, 0, 'n' },
+   { "output", 1, 0, 'o' },
+   { "raw-escapes", 0, &raw_escapes_p, 1 },
+   { "no-raw-escapes", 0, &raw_escapes_p, 0 },
+   { "show-malformed-multibytes", 0, &show_malformed_multibyte_p, 1 },
+   { "no-show-malformed-multibytes", 0, &show_malformed_multibyte_p, 0 },
+   { "restore", 1, 0, RESTORE_OPTION },
+   { "show-options", 0, 0, 'O' },
+   { "subnodes", 0, &dump_subnodes, 1 },
+   { "usage", 0, 0, 'O' },
+   { "version", 0, &print_version_p, 1 },
+   { "vi-keys", 0, &vi_keys_p, 1 },
+   { "where", 0, &print_where_p, 1 },
+ #ifdef __MSDOS__
+   { "speech-friendly", 0, &speech_friendly, 1 },
+ #endif
+   {NULL, 0, NULL, 0}
+ };
+ 
+ /* String describing the shorthand versions of the long options found above. */
+ #ifdef __MSDOS__
+ static char *short_options = "k:d:n:f:ho:ORswb";
+ #else
+ static char *short_options = "k:d:n:f:ho:ORws";
+ #endif
+ 
+ /* When non-zero, the Info window system has been initialized. */
+ int info_windows_initialized_p = 0;
+ 
+ /* Some "forward" declarations. */
+ static void info_short_help (void);
+ static void init_messages (void);
+ 
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                Main Entry Point to the Info Program              */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ int
+ main (int argc, char *argv[])
+ {
+   int getopt_long_index;        /* Index returned by getopt_long (). */
+   NODE *initial_node;           /* First node loaded by Info. */
+ 
+ #ifdef HAVE_SETLOCALE
+   /* Set locale via LC_ALL.  */
+   setlocale (LC_ALL, "");
+ #endif /* HAVE_SETLOCALE */
+ 
+ #ifdef ENABLE_NLS
+   /* Set the text message domain.  */
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   textdomain (PACKAGE);
+ #endif
+ 
+   init_messages ();
+ 
+   while (1)
+     {
+       int option_character;
+ 
+       option_character = getopt_long
+         (argc, argv, short_options, long_options, &getopt_long_index);
+ 
+       /* getopt_long returns EOF when there are no more long options. */
+       if (option_character == EOF)
+         break;
+ 
+       /* If this is a long option, then get the short version of it. */
+       if (option_character == 0 && long_options[getopt_long_index].flag == 0)
+         option_character = long_options[getopt_long_index].val;
+ 
+       /* Case on the option that we have received. */
+       switch (option_character)
+         {
+         case 0:
+           break;
+ 
+           /* User wants to add a directory. */
+         case 'd':
+           info_add_path (optarg, INFOPATH_PREPEND);
+           break;
+ 
+           /* User is specifying a particular node. */
+         case 'n':
+           add_pointer_to_array (optarg, user_nodenames_index, user_nodenames,
+                                 user_nodenames_slots, 10, char *);
+           break;
+ 
+           /* User is specifying a particular Info file. */
+         case 'f':
+           if (user_filename)
+             free (user_filename);
+ 
+           user_filename = xstrdup (optarg);
+           break;
+ 
+           /* Treat -h like --help. */
+         case 'h':
+           print_help_p = 1;
+           break;
+ 
+           /* User is specifying the name of a file to output to. */
+         case 'o':
+           if (user_output_filename)
+             free (user_output_filename);
+           user_output_filename = xstrdup (optarg);
+           break;
+ 
+          /* User has specified that she wants to find the "Options"
+              or "Invocation" node for the program.  */
+         case 'O':
+           goto_invocation_p = 1;
+           break;
+ 
+ 	  /* User has specified that she wants the escape sequences
+ 	     in man pages to be passed thru unaltered.  */
+         case 'R':
+           raw_escapes_p = 1;
+           break;
+ 
+           /* User is specifying that she wishes to dump the subnodes of
+              the node that she is dumping. */
+         case 's':
+           dump_subnodes = 1;
+           break;
+ 
+           /* For compatibility with man, -w is --where.  */
+         case 'w':
+           print_where_p = 1;
+           break;
+ 
+ #ifdef __MSDOS__
+ 	  /* User wants speech-friendly output.  */
+ 	case 'b':
+ 	  speech_friendly = 1;
+ 	  break;
+ #endif /* __MSDOS__ */
+ 
+           /* User has specified a string to search all indices for. */
+         case 'k':
+           apropos_p = 1;
+           maybe_free (apropos_search_string);
+           apropos_search_string = xstrdup (optarg);
+           break;
+ 
+           /* User has specified a dribble file to receive keystrokes. */
+         case DRIBBLE_OPTION:
+           close_dribble_file ();
+           open_dribble_file (optarg);
+           break;
+ 
+           /* User has specified an alternate input stream. */
+         case RESTORE_OPTION:
+           info_set_input_from_file (optarg);
+           break;
+ 
+           /* User has specified a string to search all indices for. */
+         case IDXSRCH_OPTION:
+           index_search_p = 1;
+           maybe_free (index_search_string);
+           index_search_string = xstrdup (optarg);
+           break;
+ 
+         default:
+           fprintf (stderr, _("Try --help for more information.\n"));
+           xexit (1);
+         }
+     }
+ 
+   /* If the output device is not a terminal, and no output filename has been
+      specified, make user_output_filename be "-", so that the info is written
+      to stdout, and turn on the dumping of subnodes. */
+   if ((!isatty (fileno (stdout))) && (user_output_filename == NULL))
+     {
+       user_output_filename = xstrdup ("-");
+       dump_subnodes = 1;
+     }
+ 
+   /* If the user specified --version, then show the version and exit. */
+   if (print_version_p)
+     {
+       printf ("info (GNU %s) %s\n", PACKAGE, VERSION);
+       puts ("");
+       printf (_("Copyright (C) %s Free Software Foundation, Inc.\n\
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
+ This is free software: you are free to change and redistribute it.\n\
+ There is NO WARRANTY, to the extent permitted by law.\n"),
+ 	      "2008");
+       xexit (0);
+     }
+ 
+   /* If the `--help' option was present, show the help and exit. */
+   if (print_help_p)
+     {
+       info_short_help ();
+       xexit (0);
+     }
+ 
+   /* If the user hasn't specified a path for Info files, default it.
+      Lowest priority is our messy hardwired list in filesys.h.
+      Then comes the user's INFODIR from the Makefile.
+      Highest priority is the environment variable, if set.  */
+   if (!infopath)
+     {
+       char *path_from_env = getenv ("INFOPATH");
+ 
+       if (path_from_env)
+         {
+           unsigned len = strlen (path_from_env);
+           /* Trailing : on INFOPATH means insert the default path.  */
+           if (len && path_from_env[len - 1] == PATH_SEP[0])
+             {
+               path_from_env[len - 1] = 0;
+               info_add_path (DEFAULT_INFOPATH, INFOPATH_PREPEND);
+             }
+ #ifdef INFODIR /* from the Makefile */
+           info_add_path (INFODIR, INFOPATH_PREPEND);
+ #endif
+           info_add_path (path_from_env, INFOPATH_PREPEND);
+         }
+       else
+         {
+           info_add_path (DEFAULT_INFOPATH, INFOPATH_PREPEND);
+ #ifdef INFODIR /* from the Makefile */
+           info_add_path (INFODIR, INFOPATH_PREPEND);
+ #endif
+ #ifdef INFODIR2 /* from the Makefile, too */
+ #  ifdef INFODIR
+           if (!STREQ (INFODIR, INFODIR2))
+ #  endif
+             info_add_path (INFODIR2, INFOPATH_PREPEND);
+ #endif
+         }
+     }
+ 
+   /* If the user specified a particular filename, add the path of that
+      file to the contents of INFOPATH. */
+   if (user_filename)
+     add_file_directory_to_path (user_filename);
+ 
+   /* If the user wants to search every known index for a given string,
+      do that now, and report the results. */
+   if (apropos_p)
+     {
+       info_apropos (apropos_search_string);
+       xexit (0);
+     }
+ 
+   /* Get the initial Info node.  It is either "(dir)Top", or what the user
+      specifed with values in user_filename and user_nodenames. */
+   initial_node = info_get_node (user_filename,
+                                 user_nodenames ? user_nodenames[0] : 0);
+ 
+   /* If we couldn't get the initial node, this user is in trouble. */
+   if (!initial_node)
+     {
+       if (info_recent_file_error)
+         info_error (info_recent_file_error, NULL, NULL);
+       else
+         info_error (msg_cant_find_node,
+                     user_nodenames ? user_nodenames[0] : "Top", NULL);
+       xexit (1);
+     }
+ 
+   /* Special cases for when the user specifies multiple nodes.  If we
+      are dumping to an output file, dump all of the nodes specified.
+      Otherwise, attempt to create enough windows to handle the nodes
+      that this user wants displayed. */
+   if (user_nodenames_index > 1)
+     {
+       free (initial_node);
+ 
+       if (print_where_p)
+         printf ("%s\n", user_filename ? user_filename : "unknown?!");
+       else if (user_output_filename)
+         dump_nodes_to_file
+           (user_filename, user_nodenames, user_output_filename, dump_subnodes);
+       else
+         begin_multiple_window_info_session (user_filename, user_nodenames);
+ 
+       xexit (0);
+     }
+ 
+   /* If there are arguments remaining, they are the names of menu items
+      in sequential info files starting from the first one loaded.  That
+      file name is either "dir", or the contents of user_filename if one
+      was specified. */
+   {
+     const char *errstr;
+     char *errarg1, *errarg2;
+     NODE *new_initial_node;
+ 
+    /* If they say info -O info, we want to show them the invocation node
+       for standalone info; there's nothing useful in info.texi.  */
+    if (goto_invocation_p && argv[optind]
+        && mbscasecmp (argv[optind], "info") == 0)
+      argv[optind] = "info-stnd";
+ 
+     new_initial_node = info_follow_menus (initial_node, argv + optind,
+         &errstr, &errarg1, &errarg2);
+ 
+     if (new_initial_node && new_initial_node != initial_node)
+       initial_node = new_initial_node;
+ 
+     if (print_where_p)
+       {
+         if (initial_node->parent)
+           printf ("%s\n", initial_node->parent);
+         else if (initial_node->filename
+             && !is_dir_name (filename_non_directory (initial_node->filename)))
+           printf ("%s\n", initial_node->filename);
+         else
+           xexit (1);
+         xexit (0);
+       }
+ 
+     /* If the user specified that this node should be output, then do that
+        now.  Otherwise, start the Info session with this node.  Or act
+        accordingly if the initial node was not found.  */
+     if (user_output_filename && !goto_invocation_p)
+       {
+         if (!errstr)
+           dump_node_to_file (initial_node, user_output_filename,
+                              dump_subnodes);
+         else
+           info_error (errstr, errarg1, errarg2);
+       }
+     else
+       {
+ 
+         if (errstr)
+           begin_info_session_with_error (initial_node, errstr,
+               errarg1, errarg2);
+         /* If the user specified `--index-search=STRING' or
+            --show-options, start the info session in the node
+            corresponding to what they want. */
+         else if (index_search_p || goto_invocation_p)
+           {
+             int status = 0;
+ 
+             initialize_info_session (initial_node, 0);
+ 
+             if (goto_invocation_p
+                 || index_entry_exists (windows, index_search_string))
+               {
+                 terminal_prep_terminal ();
+                 terminal_clear_screen ();
+                 info_last_executed_command = NULL;
+ 
+                 if (index_search_p)
+                   do_info_index_search (windows, 0, index_search_string);
+                 else
+                   {
+                     /* If they said "info --show-options foo bar baz",
+                        the last of the arguments is the program whose
+                        options they want to see.  */
+                     char **p = argv + optind;
+                     char *program;
+ 
+                     if (*p)
+                       {
+                         while (p[1])
+                           p++;
+                         program = xstrdup (*p);
+                       }
+                     else if (user_filename)
+ 		      /* If there's no command-line arguments to
+ 			 supply the program name, use the Info file
+ 			 name (sans extension and leading directories)
+ 			 instead.  */
+ 		      program = program_name_from_file_name (user_filename);
+ 		    else
+ 		      program = xstrdup ("");
+ 
+                     info_intuit_options_node (windows, initial_node, program);
+                     free (program);
+                   }
+ 
+ 		if (user_output_filename)
+ 		  {
+ 		    dump_node_to_file (windows->node, user_output_filename,
+ 				       dump_subnodes);
+ 		  }
+ 		else
+ 		  info_read_and_dispatch ();
+ 
+                 /* On program exit, leave the cursor at the bottom of the
+                    window, and restore the terminal IO. */
+                 terminal_goto_xy (0, screenheight - 1);
+                 terminal_clear_to_eol ();
+                 fflush (stdout);
+                 terminal_unprep_terminal ();
+               }
+             else
+               {
+                 fprintf (stderr, _("no index entries found for `%s'\n"),
+                          index_search_string);
+                 status = 2;
+               }
+ 
+             close_dribble_file ();
+             xexit (status);
+           }
+         else
+           begin_info_session (initial_node);
+       }
+ 
+     xexit (0);
+   }
+ 
+   return 0; /* Avoid bogus warnings.  */
+ }
+ 
+ void
+ add_file_directory_to_path (char *filename)
+ {
+   char *directory_name = xstrdup (filename);
+   char *temp = filename_non_directory (directory_name);
+ 
+   if (temp != directory_name)
+     {
+       if (HAVE_DRIVE (directory_name) && temp == directory_name + 2)
+ 	{
+ 	  /* The directory of "d:foo" is stored as "d:.", to avoid
+ 	     mixing it with "d:/" when a slash is appended.  */
+ 	  *temp = '.';
+ 	  temp += 2;
+ 	}
+       temp[-1] = 0;
+       info_add_path (directory_name, INFOPATH_PREPEND);
+     }
+ 
+   free (directory_name);
+ }
+ 
+ 
+ /* Error handling.  */
+ 
+ /* Non-zero if an error has been signalled. */
+ int info_error_was_printed = 0;
+ 
+ /* Non-zero means ring terminal bell on errors. */
+ int info_error_rings_bell_p = 1;
+ 
+ /* Print FORMAT with ARG1 and ARG2.  If the window system was initialized,
+    then the message is printed in the echo area.  Otherwise, a message is
+    output to stderr. */
+ void
+ info_error (const char *format, void *arg1, void *arg2)
+ {
+   info_error_was_printed = 1;
+ 
+   if (!info_windows_initialized_p || display_inhibited)
+     {
+       fprintf (stderr, "%s: ", program_name);
+       if (arg1)
+         fprintf (stderr, format, arg1, arg2);
+       else
+         /* If we're passed a string, just print it.  Otherwise a % in a
+            filename gets treated as a format specifier.  */
+         fputs (format, stderr);
+       fprintf (stderr, "\n");
+       fflush (stderr);
+     }
+   else
+     {
+       if (!echo_area_is_active)
+         {
+           if (info_error_rings_bell_p)
+             terminal_ring_bell ();
+           window_message_in_echo_area (format, arg1, arg2);
+         }
+       else
+         {
+           NODE *temp = build_message_node (format, arg1, arg2);
+           if (info_error_rings_bell_p)
+             terminal_ring_bell ();
+           inform_in_echo_area (temp->contents);
+           free (temp->contents);
+           free (temp);
+         }
+     }
+ }
+ 
+ 
+ /* Produce a scaled down description of the available options to Info. */
+ static void
+ info_short_help (void)
+ {
+   printf (_("\
+ Usage: %s [OPTION]... [MENU-ITEM...]\n\
+ \n\
+ Read documentation in Info format.\n"), program_name);
+   puts ("");
+ 
+   puts (_("\
+ Options:\n\
+   -k, --apropos=STRING         look up STRING in all indices of all manuals.\n\
+   -d, --directory=DIR          add DIR to INFOPATH.\n\
+       --dribble=FILENAME       remember user keystrokes in FILENAME.\n\
+   -f, --file=FILENAME          specify Info file to visit."));
+ 
+   puts (_("\
+   -h, --help                   display this help and exit.\n\
+       --index-search=STRING    go to node pointed by index entry STRING.\n\
+   -n, --node=NODENAME          specify nodes in first visited Info file.\n\
+   -o, --output=FILENAME        output selected nodes to FILENAME."));
+ 
+   puts (_("\
+   -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n\
+       --no-raw-escapes         output escapes as literal text.\n\
+       --restore=FILENAME       read initial keystrokes from FILENAME.\n\
+   -O, --show-options, --usage  go to command-line options node."));
+ 
+ #ifdef __MSDOS__
+   puts (_("\
+   -b, --speech-friendly        be friendly to speech synthesizers."));
+ #endif
+ 
+   puts (_("\
+       --subnodes               recursively output menu items.\n\
+       --vi-keys                use vi-like and less-like key bindings.\n\
+       --version                display version information and exit.\n\
+   -w, --where, --location      print physical location of Info file."));
+ 
+   puts (_("\n\
+ The first non-option argument, if present, is the menu entry to start from;\n\
+ it is searched for in all `dir' files along INFOPATH.\n\
+ If it is not present, info merges all `dir' files and shows the result.\n\
+ Any remaining arguments are treated as the names of menu\n\
+ items relative to the initial node visited."));
+ 
+   puts (_("\n\
+ For a summary of key bindings, type h within Info."));
+ 
+   puts (_("\n\
+ Examples:\n\
+   info                       show top-level dir menu\n\
+   info info                  show the general manual for Info readers\n\
+   info info-stnd             show the manual specific to this Info program\n\
+   info emacs                 start at emacs node from top-level dir\n\
+   info emacs buffers         start at buffers node within emacs manual\n\
+   info --show-options emacs  start at node with emacs' command line options\n\
+   info --subnodes -o out.txt emacs  dump entire manual to out.txt\n\
+   info -f ./foo.info         show file ./foo.info, not searching dir"));
+ 
+   puts (_("\n\
+ Email bug reports to bug-texinfo@gnu.org,\n\
+ general questions and discussion to help-texinfo@gnu.org.\n\
+ Texinfo home page: http://www.gnu.org/software/texinfo/"));
+ 
+   xexit (0);
+ }
+ 
+ 
+ /* Initialize strings for gettext.  Because gettext doesn't handle N_ or
+    _ within macro definitions, we put shared messages into variables and
+    use them that way.  This also has the advantage that there's only one
+    copy of the strings.  */
+ 
+ const char *msg_cant_find_node;
+ const char *msg_cant_file_node;
+ const char *msg_cant_find_window;
+ const char *msg_cant_find_point;
+ const char *msg_cant_kill_last;
+ const char *msg_no_menu_node;
+ const char *msg_no_foot_node;
+ const char *msg_no_xref_node;
+ const char *msg_no_pointer;
+ const char *msg_unknown_command;
+ const char *msg_term_too_dumb;
+ const char *msg_at_node_bottom;
+ const char *msg_at_node_top;
+ const char *msg_one_window;
+ const char *msg_win_too_small;
+ const char *msg_cant_make_help;
+ 
+ static void
+ init_messages (void)
+ {
+   msg_cant_find_node   = _("Cannot find node `%s'.");
+   msg_cant_file_node   = _("Cannot find node `(%s)%s'.");
+   msg_cant_find_window = _("Cannot find a window!");
+   msg_cant_find_point  = _("Point doesn't appear within this window's node!");
+   msg_cant_kill_last   = _("Cannot delete the last window.");
+   msg_no_menu_node     = _("No menu in this node.");
+   msg_no_foot_node     = _("No footnotes in this node.");
+   msg_no_xref_node     = _("No cross references in this node.");
+   msg_no_pointer       = _("No `%s' pointer for this node.");
+   msg_unknown_command  = _("Unknown Info command `%c'; try `?' for help.");
+   msg_term_too_dumb    = _("Terminal type `%s' is not smart enough to run Info.");
+   msg_at_node_bottom   = _("You are already at the last page of this node.");
+   msg_at_node_top      = _("You are already at the first page of this node.");
+   msg_one_window       = _("Only one window.");
+   msg_win_too_small    = _("Resulting window would be too small.");
+   msg_cant_make_help   = _("Not enough room for a help window, please delete a window.");
+ }
diff -Nrc2 texinfo-4.12/info/info.h texinfo-4.13/info/info.h
*** texinfo-4.12/info/info.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/info.h	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,163 ----
+ /* info.h -- Header file which includes all of the other headers.
+    $Id: info.h,v 1.9 2008/05/10 14:39:05 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_H
+ #define INFO_H
+ 
+ /* We always want these, so why clutter up the compile command?  */
+ #define HANDLE_MAN_PAGES
+ #define NAMED_FUNCTIONS
+ #define INFOKEY
+ 
+ /* System dependencies.  */
+ #include "system.h"
+ 
+ /* Some of our other include files use these.  */
+ typedef int Function ();
+ typedef void VFunction ();
+ typedef char *CFunction ();
+ 
+ #include "filesys.h"
+ #include "doc.h"
+ #include "display.h"
+ #include "session.h"
+ #include "echo-area.h"
+ #include "footnotes.h"
+ #include "gc.h"
+ 
+ #include "string.h"
+ #include "mbiter.h"
+ #include "mbchar.h"
+ 
+ #define info_toupper(x) (islower (x) ? toupper (x) : x)
+ #define info_tolower(x) (isupper (x) ? tolower (x) : x)
+ 
+ #if !defined (whitespace)
+ #  define whitespace(c) ((c == ' ') || (c == '\t'))
+ #endif /* !whitespace */
+ 
+ #if !defined (whitespace_or_newline)
+ #  define whitespace_or_newline(c) (whitespace (c) || (c == '\n'))
+ #endif /* !whitespace_or_newline */
+ 
+ /* Add POINTER to the list of pointers found in ARRAY.  SLOTS is the number
+    of slots that have already been allocated.  INDEX is the index into the
+    array where POINTER should be added.  GROW is the number of slots to grow
+    ARRAY by, in the case that it needs growing.  TYPE is a cast of the type
+    of object stored in ARRAY (e.g., NODE_ENTRY *. */
+ #define add_pointer_to_array(pointer, idx, array, slots, grow, type) \
+   do { \
+     if (idx + 2 >= slots) \
+       array = (type *)(xrealloc (array, (slots += grow) * sizeof (type))); \
+     array[idx++] = (type)pointer; \
+     array[idx] = (type)NULL; \
+   } while (0)
+ 
+ #define maybe_free(x) do { if (x) free (x); } while (0)
+ 
+ #if !defined (zero_mem) && defined (HAVE_MEMSET)
+ #  define zero_mem(mem, length) memset (mem, 0, length)
+ #endif /* !zero_mem && HAVE_MEMSET */
+ 
+ #if !defined (zero_mem) && defined (HAVE_BZERO)
+ #  define zero_mem(mem, length) bzero (mem, length)
+ #endif /* !zero_mem && HAVE_BZERO */
+ 
+ #if !defined (zero_mem)
+ #  define zero_mem(mem, length) \
+   do {                                  \
+         register int zi;                \
+         register unsigned char *place;  \
+                                         \
+         place = (unsigned char *)mem;   \
+         for (zi = 0; zi < length; zi++) \
+           place[zi] = 0;                \
+       } while (0)
+ #endif /* !zero_mem */
+ 
+ 
+ /* A structure associating the nodes visited in a particular window. */
+ typedef struct {
+   WINDOW *window;               /* The window that this list is attached to. */
+   NODE **nodes;                 /* Array of nodes visited in this window. */
+   int *pagetops;                /* For each node in NODES, the pagetop. */
+   long *points;                 /* For each node in NODES, the point. */
+   int current;                  /* Index in NODES of the current node. */
+   int nodes_index;              /* Index where to add the next node. */
+   int nodes_slots;              /* Number of slots allocated to NODES. */
+ } INFO_WINDOW;
+ 
+ /* Array of structures describing for each window which nodes have been
+    visited in that window. */
+ extern INFO_WINDOW **info_windows;
+ 
+ /* For handling errors.  If you initialize the window system, you should
+    also set info_windows_initialized_p to non-zero.  It is used by the
+    info_error () function to determine how to format and output errors. */
+ extern int info_windows_initialized_p;
+ 
+ /* Non-zero if an error message has been printed. */
+ extern int info_error_was_printed;
+ 
+ /* Non-zero means ring terminal bell on errors. */
+ extern int info_error_rings_bell_p;
+ 
+ /* Non-zero means default keybindings are loosely modeled on vi(1).  */
+ extern int vi_keys_p;
+ 
+ /* Non-zero means don't remove ANSI escape sequences from man pages.  */
+ extern int raw_escapes_p;
+ 
+ /* Print FORMAT with ARG1 and ARG2.  If the window system was initialized,
+    then the message is printed in the echo area.  Otherwise, a message is
+    output to stderr. */
+ extern void info_error (const char *format, void *arg1, void *arg2);
+ 
+ extern void add_file_directory_to_path (char *filename);
+ 
+ /* Error message defines. */
+ extern const char *msg_cant_find_node;
+ extern const char *msg_cant_file_node;
+ extern const char *msg_cant_find_window;
+ extern const char *msg_cant_find_point;
+ extern const char *msg_cant_kill_last;
+ extern const char *msg_no_menu_node;
+ extern const char *msg_no_foot_node;
+ extern const char *msg_no_xref_node;
+ extern const char *msg_no_pointer;
+ extern const char *msg_unknown_command;
+ extern const char *msg_term_too_dumb;
+ extern const char *msg_at_node_bottom;
+ extern const char *msg_at_node_top;
+ extern const char *msg_one_window;
+ extern const char *msg_win_too_small;
+ extern const char *msg_cant_make_help;
+ 
+ 
+ #if defined(INFOKEY)
+ /* Found in variables.c. */
+ extern void set_variable_to_value (char *name, char *value);
+ #endif /* INFOKEY */
+ 
+ /* Found in m-x.c.  */
+ extern char *read_function_name (const char *prompt, WINDOW *window);
+ 
+ #endif /* !INFO_H */
diff -Nrc2 texinfo-4.12/info/infodoc.c texinfo-4.13/info/infodoc.c
*** texinfo-4.12/info/infodoc.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/infodoc.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,1193 ----
+ /* infodoc.c -- functions which build documentation nodes.
+    $Id: infodoc.c,v 1.26 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2006,
+    2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "funs.h"
+ 
+ /* HELP_NODE_GETS_REGENERATED is always defined now that keys may get
+    rebound, or other changes in the help text may occur.  */
+ #define HELP_NODE_GETS_REGENERATED 1
+ 
+ /* The name of the node used in the help window. */
+ static char *info_help_nodename = "*Info Help*";
+ 
+ /* A node containing printed key bindings and their documentation. */
+ static NODE *internal_info_help_node = NULL;
+ 
+ /* A pointer to the contents of the help node. */
+ static char *internal_info_help_node_contents = NULL;
+ 
+ /* The (more or less) static text which appears in the internal info
+    help node.  The actual key bindings are inserted.  Keep the
+    underlines (****, etc.) in the same N_ call as  the text lines they
+    refer to, so translations can make the number of *'s or -'s match.  */
+ #if defined(INFOKEY)
+ 
+ static char *info_internal_help_text[] = {
+   N_("Basic Info command keys\n"),
+   "\n",
+   N_("\\%-10[quit-help]  Close this help window.\n"),
+   N_("\\%-10[quit]  Quit Info altogether.\n"),
+   N_("\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"),
+   "\n",
+   N_("\\%-10[prev-line]  Move up one line.\n"),
+   N_("\\%-10[next-line]  Move down one line.\n"),
+   N_("\\%-10[scroll-backward]  Scroll backward one screenful.\n"),
+   N_("\\%-10[scroll-forward]  Scroll forward one screenful.\n"),
+   N_("\\%-10[beginning-of-node]  Go to the beginning of this node.\n"),
+   N_("\\%-10[end-of-node]  Go to the end of this node.\n"),
+   "\n",
+   N_("\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"),
+   N_("\\%-10[select-reference-this-line]  Follow the hypertext link under the cursor.\n"),
+   N_("\\%-10[history-node]  Go back to the last node seen in this window.\n"),
+   "\n",
+   N_("\\%-10[global-prev-node]  Go to the previous node in the document.\n"),
+   N_("\\%-10[global-next-node]  Go to the next node in the document.\n"),
+   N_("\\%-10[prev-node]  Go to the previous node on this level.\n"),
+   N_("\\%-10[next-node]  Go to the next node on this level.\n"),
+   N_("\\%-10[up-node]  Go up one level.\n"),
+   N_("\\%-10[top-node]  Go to the top node of this document.\n"),
+   N_("\\%-10[dir-node]  Go to the main `directory' node.\n"),
+   "\n",
+   N_("1...9       Pick the first...ninth item in this node's menu.\n"),
+   N_("\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"),
+   N_("\\%-10[menu-item]  Pick a menu item specified by name.\n"),
+   N_("\\%-10[xref-item]  Follow a cross reference specified by name.\n"),
+   N_("\\%-10[goto-node]  Go to a node specified by name.\n"),
+   "\n",
+   N_("\\%-10[search]  Search forward for a specified string.\n"),
+   N_("\\%-10[search-previous]  Search for previous occurrence.\n"),
+   N_("\\%-10[search-next]  Search for next occurrence.\n"),
+   N_("\\%-10[index-search]  Search for a specified string in the index, and\n\
+               select the node referenced by the first entry found.\n"),
+   N_("\\%-10[abort-key]  Cancel the current operation.\n"),
+   "\n",
+   NULL
+ };
+ 
+ #else /* !INFOKEY */
+ 
+ static char *info_internal_help_text[] = {
+   N_("Basic Commands in Info Windows\n\
+ ******************************\n"),
+   "\n",
+   N_("  %-10s  Quit this help.\n"),
+   N_("  %-10s  Quit Info altogether.\n"),
+   N_("  %-10s  Invoke the Info tutorial.\n"),
+   "\n",
+   N_("Selecting other nodes:\n\
+ ----------------------\n",
+   N_("  %-10s  Move to the `next' node of this node.\n"),
+   N_("  %-10s  Move to the `previous' node of this node.\n"),
+   N_("  %-10s  Move `up' from this node.\n"),
+   N_("  %-10s  Pick menu item specified by name.\n\
+               Picking a menu item causes another node to be selected.\n"),
+   N_("  %-10s  Follow a cross reference.  Reads name of reference.\n"),
+   N_("  %-10s  Move to the last node seen in this window.\n"),
+   N_("  %-10s  Skip to next hypertext link within this node.\n"),
+   N_("  %-10s  Follow the hypertext link under cursor.\n"),
+   N_("  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"),
+   N_("  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"),
+   "\n",
+   N_("Moving within a node:\n\
+ ---------------------\n"),
+   N_("  %-10s  Scroll forward a page.\n"),
+   N_("  %-10s  Scroll backward a page.\n"),
+   N_("  %-10s  Go to the beginning of this node.\n"),
+   N_("  %-10s  Go to the end of this node.\n"),
+   N_("  %-10s  Scroll forward 1 line.\n"),
+   N_("  %-10s  Scroll backward 1 line.\n"),
+   "\n",
+   N_("Other commands:\n\
+ ---------------\n"),
+   N_("  %-10s  Pick first...ninth item in node's menu.\n"),
+   N_("  %-10s  Pick last item in node's menu.\n"),
+   /* The next four strings are each a unity, so they each need to be
+      kept as one string for the translators.  */
+   N_("  %-10s  Search for a specified string in the index entries of this Info\n\
+               file, and select the node referenced by the first entry found.\n"),
+   N_("  %-10s  Move to node specified by name.\n\
+               You may include a filename as well, as in (FILENAME)NODENAME.\n"),
+   N_("  %-10s  Search forward for a specified string,\n\
+               and select the node in which the next occurrence is found.\n"),
+   N_("  %-10s  Search backward for a specified string,\n\
+               and select the node in which the next occurrence is found.\n"),
+   NULL
+ };
+ 
+ static char *info_help_keys_text[][2] = {
+   { "", "" },
+   { "", "" },
+   { "", "" },
+   { "CTRL-x 0", "CTRL-x 0" },
+   { "q", "q" },
+   { "h", "ESC h" },
+   { "", "" },
+   { "", "" },
+   { "", "" },
+   { "SPC", "SPC" },
+   { "DEL", "b" },
+   { "b", "ESC b" },
+   { "e", "ESC e" },
+   { "ESC 1 SPC", "RET" },
+   { "ESC 1 DEL", "y" },
+   { "", "" },
+   { "", "" },
+   { "", "" },
+   { "n", "CTRL-x n" },
+   { "p", "CTRL-x p" },
+   { "u", "CTRL-x u" },
+   { "m", "ESC m" },
+   { "", "" },
+   { "f", "ESC f" },
+   { "l", "l" },
+   { "TAB", "TAB" },
+   { "RET", "CTRL-x RET" },
+   { "d", "ESC d" },
+   { "t", "ESC t" },
+   { "", "" },
+   { "", "" },
+   { "", "" },
+   { "1-9", "ESC 1-9" },
+   { "0", "ESC 0" },
+   { "i", "CTRL-x i" },
+   { "", "" },
+   { "g", "CTRL-x g" },
+   { "", "" },
+   { "s", "/" },
+   { "", "" },
+   { "ESC - s", "?" },
+   { "", "" },
+   NULL
+ };
+ 
+ #endif /* !INFOKEY */
+ 
+ static char *where_is_internal (Keymap map, InfoCommand *cmd);
+ 
+ void
+ dump_map_to_message_buffer (char *prefix, Keymap map)
+ {
+   register int i;
+   unsigned prefix_len = strlen (prefix);
+   char *new_prefix = xmalloc (prefix_len + 2);
+ 
+   strncpy (new_prefix, prefix, prefix_len);
+   new_prefix[prefix_len + 1] = '\0';
+ 
+   for (i = 0; i < 256; i++)
+     {
+       new_prefix[prefix_len] = i;
+       if (map[i].type == ISKMAP)
+         {
+           dump_map_to_message_buffer (new_prefix, (Keymap)map[i].function);
+         }
+       else if (map[i].function)
+         {
+           register int last;
+           char *doc, *name;
+ 
+           doc = function_documentation (map[i].function);
+           name = function_name (map[i].function);
+ 
+           if (!*doc)
+             continue;
+ 
+           /* Find out if there is a series of identical functions, as in
+              ea_insert (). */
+           for (last = i + 1; last < 256; last++)
+             if ((map[last].type != ISFUNC) ||
+                 (map[last].function != map[i].function))
+               break;
+ 
+           if (last - 1 != i)
+             {
+               printf_to_message_buffer ("%s .. ", pretty_keyseq (new_prefix),
+                   NULL, NULL);
+               new_prefix[prefix_len] = last - 1;
+               printf_to_message_buffer ("%s\t", pretty_keyseq (new_prefix),
+                   NULL, NULL);
+               i = last - 1;
+             }
+           else
+             printf_to_message_buffer ("%s\t", pretty_keyseq (new_prefix),
+                 NULL, NULL);
+ 
+ #if defined (NAMED_FUNCTIONS)
+           /* Print the name of the function, and some padding before the
+              documentation string is printed. */
+           {
+             int length_so_far;
+             int desired_doc_start = 40; /* Must be multiple of 8. */
+ 
+             printf_to_message_buffer ("(%s)", name, NULL, NULL);
+             length_so_far = message_buffer_length_this_line ();
+ 
+             if ((desired_doc_start + strlen (doc))
+                 >= (unsigned int) the_screen->width)
+               printf_to_message_buffer ("\n     ", NULL, NULL, NULL);
+             else
+               {
+                 while (length_so_far < desired_doc_start)
+                   {
+                     printf_to_message_buffer ("\t", NULL, NULL, NULL);
+                     length_so_far += character_width ('\t', length_so_far);
+                   }
+               }
+           }
+ #endif /* NAMED_FUNCTIONS */
+           printf_to_message_buffer ("%s\n", doc, NULL, NULL);
+         }
+     }
+   free (new_prefix);
+ }
+ 
+ /* How to create internal_info_help_node.  HELP_IS_ONLY_WINDOW_P says
+    whether we're going to end up in a second (or more) window of our
+    own, or whether there's only one window and we're going to usurp it.
+    This determines how to quit the help window.  Maybe we should just
+    make q do the right thing in both cases.  */
+ 
+ static void
+ create_internal_info_help_node (int help_is_only_window_p)
+ {
+   register int i;
+   NODE *node;
+   char *contents = NULL;
+   char *exec_keys;
+ 
+ #ifndef HELP_NODE_GETS_REGENERATED
+   if (internal_info_help_node_contents)
+     contents = internal_info_help_node_contents;
+ #endif /* !HELP_NODE_GETS_REGENERATED */
+ 
+   if (!contents)
+     {
+       int printed_one_mx = 0;
+ 
+       initialize_message_buffer ();
+ 
+       for (i = 0; info_internal_help_text[i]; i++)
+         {
+ #ifdef INFOKEY
+           printf_to_message_buffer (replace_in_documentation
+               (_(info_internal_help_text[i]), help_is_only_window_p),
+               NULL, NULL, NULL);
+ #else
+           /* Don't translate blank lines, gettext outputs the po file
+              header in that case.  We want a blank line.  */
+           char *msg = *(info_internal_help_text[i])
+                       ? _(info_internal_help_text[i])
+                       : info_internal_help_text[i];
+           char *key = info_help_keys_text[i][vi_keys_p];
+ 
+           /* If we have only one window (because the window size was too
+              small to split it), CTRL-x 0 doesn't work to `quit' help.  */
+           if (STREQ (key, "CTRL-x 0") && help_is_only_window_p)
+             key = "l";
+ 
+           printf_to_message_buffer (msg, key, NULL, NULL);
+ #endif /* !INFOKEY */
+         }
+ 
+       printf_to_message_buffer ("---------------------\n", NULL, NULL, NULL);
+       printf_to_message_buffer (_("The current search path is:\n"),
+           NULL, NULL, NULL);
+       printf_to_message_buffer ("%s\n", infopath, NULL, NULL);
+       printf_to_message_buffer ("---------------------\n\n", NULL, NULL, NULL);
+       printf_to_message_buffer (_("Commands available in Info windows:\n\n"),
+           NULL, NULL, NULL);
+       dump_map_to_message_buffer ("", info_keymap);
+       printf_to_message_buffer ("---------------------\n\n", NULL, NULL, NULL);
+       printf_to_message_buffer (_("Commands available in the echo area:\n\n"),
+           NULL, NULL, NULL);
+       dump_map_to_message_buffer ("", echo_area_keymap);
+ 
+ #if defined (NAMED_FUNCTIONS)
+       /* Get a list of commands which have no keystroke equivs. */
+       exec_keys = where_is (info_keymap, InfoCmd(info_execute_command));
+       if (exec_keys)
+         exec_keys = xstrdup (exec_keys);
+       for (i = 0; function_doc_array[i].func; i++)
+         {
+           InfoCommand *cmd = DocInfoCmd(&function_doc_array[i]);
+ 
+           if (InfoFunction(cmd) != (VFunction *) info_do_lowercase_version
+               && !where_is_internal (info_keymap, cmd)
+               && !where_is_internal (echo_area_keymap, cmd))
+             {
+               if (!printed_one_mx)
+                 {
+                   printf_to_message_buffer ("---------------------\n\n",
+                       NULL, NULL, NULL);
+                   if (exec_keys && exec_keys[0])
+                       printf_to_message_buffer
+                         (_("The following commands can only be invoked via %s:\n\n"),
+                          exec_keys, NULL, NULL);
+                   else
+                       printf_to_message_buffer
+                         (_("The following commands cannot be invoked at all:\n\n"),
+                          NULL, NULL, NULL);
+                   printed_one_mx = 1;
+                 }
+ 
+               printf_to_message_buffer
+                 ("%s %s\n     %s\n",
+                  exec_keys,
+                  function_doc_array[i].func_name,
+                  replace_in_documentation (strlen (function_doc_array[i].doc)
+                    ? _(function_doc_array[i].doc) : "", 0)
+                 );
+ 
+             }
+         }
+ 
+       if (printed_one_mx)
+         printf_to_message_buffer ("\n", NULL, NULL, NULL);
+ 
+       maybe_free (exec_keys);
+ #endif /* NAMED_FUNCTIONS */
+ 
+       node = message_buffer_to_node ();
+       internal_info_help_node_contents = node->contents;
+     }
+   else
+     {
+       /* We already had the right contents, so simply use them. */
+       node = build_message_node ("", 0, 0);
+       free (node->contents);
+       node->contents = contents;
+       node->nodelen = 1 + strlen (contents);
+     }
+ 
+   internal_info_help_node = node;
+ 
+   /* Do not GC this node's contents.  It never changes, and we never need
+      to delete it once it is made.  If you change some things (such as
+      placing information about dynamic variables in the help text) then
+      you will need to allow the contents to be gc'd, and you will have to
+      arrange to always regenerate the help node. */
+ #if defined (HELP_NODE_GETS_REGENERATED)
+   add_gcable_pointer (internal_info_help_node->contents);
+ #endif
+ 
+   name_internal_node (internal_info_help_node, info_help_nodename);
+ 
+   /* Even though this is an internal node, we don't want the window
+      system to treat it specially.  So we turn off the internalness
+      of it here. */
+   internal_info_help_node->flags &= ~N_IsInternal;
+ }
+ 
+ /* Return a window which is the window showing help in this Info. */
+ 
+ /* If the eligible window's height is >= this, split it to make the help
+    window.  Otherwise display the help window in the current window.  */
+ #define HELP_SPLIT_SIZE 24
+ 
+ static WINDOW *
+ info_find_or_create_help_window (void)
+ {
+   int help_is_only_window_p;
+   WINDOW *eligible = NULL;
+   WINDOW *help_window = get_window_of_node (internal_info_help_node);
+ 
+   /* If we couldn't find the help window, then make it. */
+   if (!help_window)
+     {
+       WINDOW *window;
+       int max = 0;
+ 
+       for (window = windows; window; window = window->next)
+         {
+           if (window->height > max)
+             {
+               max = window->height;
+               eligible = window;
+             }
+         }
+ 
+       if (!eligible)
+         return NULL;
+     }
+ #ifndef HELP_NODE_GETS_REGENERATED
+   else
+     /* help window is static, just return it.  */
+     return help_window;
+ #endif /* not HELP_NODE_GETS_REGENERATED */
+ 
+   /* Make sure that we have a node containing the help text.  The
+      argument is false if help will be the only window (so l must be used
+      to quit help), true if help will be one of several visible windows
+      (so CTRL-x 0 must be used to quit help).  */
+   help_is_only_window_p = ((help_window && !windows->next)
+         || (!help_window && eligible->height < HELP_SPLIT_SIZE));
+   create_internal_info_help_node (help_is_only_window_p);
+ 
+   /* Either use the existing window to display the help node, or create
+      a new window if there was no existing help window. */
+   if (!help_window)
+     { /* Split the largest window into 2 windows, and show the help text
+          in that window. */
+       if (eligible->height >= HELP_SPLIT_SIZE)
+         {
+           active_window = eligible;
+           help_window = window_make_window (internal_info_help_node);
+         }
+       else
+         {
+           set_remembered_pagetop_and_point (active_window);
+           window_set_node_of_window (active_window, internal_info_help_node);
+           help_window = active_window;
+         }
+     }
+   else
+     { /* Case where help node always gets regenerated, and we have an
+          existing window in which to place the node. */
+       if (active_window != help_window)
+         {
+           set_remembered_pagetop_and_point (active_window);
+           active_window = help_window;
+         }
+       window_set_node_of_window (active_window, internal_info_help_node);
+     }
+   remember_window_and_node (help_window, help_window->node);
+   return help_window;
+ }
+ 
+ /* Create or move to the help window. */
+ DECLARE_INFO_COMMAND (info_get_help_window, _("Display help message"))
+ {
+   WINDOW *help_window;
+ 
+   help_window = info_find_or_create_help_window ();
+   if (help_window)
+     {
+       active_window = help_window;
+       active_window->flags |= W_UpdateWindow;
+     }
+   else
+     {
+       info_error (msg_cant_make_help, NULL, NULL);
+     }
+ }
+ 
+ /* Show the Info help node.  This means that the "info" file is installed
+    where it can easily be found on your system. */
+ DECLARE_INFO_COMMAND (info_get_info_help_node, _("Visit Info node `(info)Help'"))
+ {
+   NODE *node;
+   char *nodename;
+ 
+   /* If there is a window on the screen showing the node "(info)Help" or
+      the node "(info)Help-Small-Screen", simply select that window. */
+   {
+     WINDOW *win;
+ 
+     for (win = windows; win; win = win->next)
+       {
+         if (win->node && win->node->filename &&
+             (mbscasecmp
+              (filename_non_directory (win->node->filename), "info") == 0) &&
+             ((strcmp (win->node->nodename, "Help") == 0) ||
+              (strcmp (win->node->nodename, "Help-Small-Screen") == 0)))
+           {
+             active_window = win;
+             return;
+           }
+       }
+   }
+ 
+   /* If the current window is small, show the small screen help. */
+   if (active_window->height < 24)
+     nodename = "Help-Small-Screen";
+   else
+     nodename = "Help";
+ 
+   /* Try to get the info file for Info. */
+   node = info_get_node ("Info", nodename);
+ 
+   if (!node)
+     {
+       if (info_recent_file_error)
+         info_error (info_recent_file_error, NULL, NULL);
+       else
+         info_error (msg_cant_file_node, "Info", nodename);
+     }
+   else
+     {
+       /* If the current window is very large (greater than 45 lines),
+          then split it and show the help node in another window.
+          Otherwise, use the current window. */
+ 
+       if (active_window->height > 45)
+         active_window = window_make_window (node);
+       else
+         {
+           set_remembered_pagetop_and_point (active_window);
+           window_set_node_of_window (active_window, node);
+         }
+ 
+       remember_window_and_node (active_window, node);
+     }
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                   Groveling Info Keymaps and Docs                */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Return the documentation associated with the Info command FUNCTION. */
+ char *
+ function_documentation (InfoCommand *cmd)
+ {
+   char *doc;
+ 
+ #if defined (INFOKEY)
+ 
+   doc = cmd->doc;
+ 
+ #else /* !INFOKEY */
+ 
+   register int i;
+ 
+   for (i = 0; function_doc_array[i].func; i++)
+     if (InfoFunction(cmd) == function_doc_array[i].func)
+       break;
+ 
+   doc = function_doc_array[i].func ? function_doc_array[i].doc : "";
+ 
+ #endif /* !INFOKEY */
+ 
+   return replace_in_documentation ((strlen (doc) == 0) ? doc : _(doc), 0);
+ }
+ 
+ #if defined (NAMED_FUNCTIONS)
+ /* Return the user-visible name of the function associated with the
+    Info command FUNCTION. */
+ char *
+ function_name (InfoCommand *cmd)
+ {
+ #if defined (INFOKEY)
+ 
+   return cmd->func_name;
+ 
+ #else /* !INFOKEY */
+ 
+   register int i;
+ 
+   for (i = 0; function_doc_array[i].func; i++)
+     if (InfoFunction(cmd) == function_doc_array[i].func)
+       break;
+ 
+   return function_doc_array[i].func_name;
+ 
+ #endif /* !INFOKEY */
+ }
+ 
+ /* Return a pointer to the info command for function NAME. */
+ InfoCommand *
+ named_function (char *name)
+ {
+   register int i;
+ 
+   for (i = 0; function_doc_array[i].func; i++)
+     if (strcmp (function_doc_array[i].func_name, name) == 0)
+       break;
+ 
+   return DocInfoCmd(&function_doc_array[i]);
+ }
+ #endif /* NAMED_FUNCTIONS */
+ 
+ /* Return the documentation associated with KEY in MAP. */
+ char *
+ key_documentation (char key, Keymap map)
+ {
+   InfoCommand *function = map[key].function;
+ 
+   if (function)
+     return function_documentation (function);
+   else
+     return NULL;
+ }
+ 
+ DECLARE_INFO_COMMAND (describe_key, _("Print documentation for KEY"))
+ {
+   char keys[50];
+   unsigned char keystroke;
+   char *k = keys;
+   Keymap map;
+ 
+   *k = '\0';
+   map = window->keymap;
+ 
+   for (;;)
+     {
+       message_in_echo_area (_("Describe key: %s"),
+           pretty_keyseq (keys), NULL);
+       keystroke = info_get_input_char ();
+       unmessage_in_echo_area ();
+ 
+ #if !defined (INFOKEY)
+       if (Meta_p (keystroke))
+         {
+           if (map[ESC].type != ISKMAP)
+             {
+               window_message_in_echo_area
+               (_("ESC %s is undefined."), pretty_keyname (UnMeta (keystroke)));
+               return;
+             }
+ 
+           *k++ = '\e';
+           keystroke = UnMeta (keystroke);
+           map = (Keymap)map[ESC].function;
+         }
+ #endif /* !INFOKEY */
+ 
+       /* Add the KEYSTROKE to our list. */
+       *k++ = keystroke;
+       *k = '\0';
+ 
+       if (map[keystroke].function == NULL)
+         {
+           message_in_echo_area (_("%s is undefined."),
+               pretty_keyseq (keys), NULL);
+           return;
+         }
+       else if (map[keystroke].type == ISKMAP)
+         {
+           map = (Keymap)map[keystroke].function;
+           continue;
+         }
+       else
+         {
+           char *keyname, *message, *fundoc, *funname = "";
+ 
+ #if defined (INFOKEY)
+           /* If the key is bound to do-lowercase-version, but its
+              lower-case variant is undefined, say that this key is
+              also undefined.  This is especially important for unbound
+              edit keys that emit an escape sequence: it's terribly
+              confusing to see a message "Home (do-lowercase-version)"
+              or some such when Home is unbound.  */
+           if (InfoFunction(map[keystroke].function)
+               == (VFunction *) info_do_lowercase_version)
+             {
+               unsigned char lowerkey = Meta_p(keystroke)
+                                        ? Meta (tolower (UnMeta (keystroke)))
+                                        : tolower (keystroke);
+ 
+               if (map[lowerkey].function == NULL)
+                 {
+                   message_in_echo_area (_("%s is undefined."),
+                                         pretty_keyseq (keys), NULL);
+                   return;
+                 }
+             }
+ #endif
+ 
+           keyname = pretty_keyseq (keys);
+ 
+ #if defined (NAMED_FUNCTIONS)
+           funname = function_name (map[keystroke].function);
+ #endif /* NAMED_FUNCTIONS */
+ 
+           fundoc = function_documentation (map[keystroke].function);
+ 
+           message = xmalloc
+             (10 + strlen (keyname) + strlen (fundoc) + strlen (funname));
+ 
+ #if defined (NAMED_FUNCTIONS)
+           sprintf (message, "%s (%s): %s.", keyname, funname, fundoc);
+ #else
+           sprintf (message, _("%s is defined to %s."), keyname, fundoc);
+ #endif /* !NAMED_FUNCTIONS */
+ 
+           window_message_in_echo_area ("%s", message, NULL);
+           free (message);
+           break;
+         }
+     }
+ }
+ 
+ /* Return the pretty printable name of a single character. */
+ char *
+ pretty_keyname (unsigned char key)
+ {
+   static char rep_buffer[30];
+   char *rep;
+ 
+   if (Meta_p (key))
+     {
+       char temp[20];
+ 
+       rep = pretty_keyname (UnMeta (key));
+ 
+ #if defined (INFOKEY)
+       sprintf (temp, "M-%s", rep);
+ #else /* !INFOKEY */
+       sprintf (temp, "ESC %s", rep);
+ #endif /* !INFOKEY */
+       strcpy (rep_buffer, temp);
+       rep = rep_buffer;
+     }
+   else if (Control_p (key))
+     {
+       switch (key)
+         {
+         case '\n': rep = "LFD"; break;
+         case '\t': rep = "TAB"; break;
+         case '\r': rep = "RET"; break;
+         case ESC:  rep = "ESC"; break;
+ 
+         default:
+           sprintf (rep_buffer, "C-%c", UnControl (key));
+           rep = rep_buffer;
+         }
+     }
+   else
+     {
+       switch (key)
+         {
+         case ' ': rep = "SPC"; break;
+         case DEL: rep = "DEL"; break;
+         default:
+           rep_buffer[0] = key;
+           rep_buffer[1] = '\0';
+           rep = rep_buffer;
+         }
+     }
+   return rep;
+ }
+ 
+ /* Return the pretty printable string which represents KEYSEQ. */
+ 
+ static void pretty_keyseq_internal (char *keyseq, char *rep);
+ 
+ char *
+ pretty_keyseq (char *keyseq)
+ {
+   static char keyseq_rep[200];
+ 
+   keyseq_rep[0] = '\0';
+   if (*keyseq)
+     pretty_keyseq_internal (keyseq, keyseq_rep);
+   return keyseq_rep;
+ }
+ 
+ static void
+ pretty_keyseq_internal (char *keyseq, char *rep)
+ {
+   if (term_kP && strncmp(keyseq, term_kP, strlen(term_kP)) == 0)
+     {
+       strcpy(rep, "PgUp");
+       keyseq += strlen(term_kP);
+     }
+   else if (term_kN && strncmp(keyseq, term_kN, strlen(term_kN)) == 0)
+     {
+       strcpy(rep, "PgDn");
+       keyseq += strlen(term_kN);
+     }
+ #if defined(INFOKEY)
+   else if (term_kh && strncmp(keyseq, term_kh, strlen(term_kh)) == 0)
+     {
+       strcpy(rep, "Home");
+       keyseq += strlen(term_kh);
+     }
+   else if (term_ke && strncmp(keyseq, term_ke, strlen(term_ke)) == 0)
+     {
+       strcpy(rep, "End");
+       keyseq += strlen(term_ke);
+     }
+   else if (term_ki && strncmp(keyseq, term_ki, strlen(term_ki)) == 0)
+     {
+       strcpy(rep, "INS");
+       keyseq += strlen(term_ki);
+     }
+   else if (term_kx && strncmp(keyseq, term_kx, strlen(term_kx)) == 0)
+     {
+       strcpy(rep, "DEL");
+       keyseq += strlen(term_kx);
+     }
+ #endif /* INFOKEY */
+   else if (term_ku && strncmp(keyseq, term_ku, strlen(term_ku)) == 0)
+     {
+       strcpy(rep, "Up");
+       keyseq += strlen(term_ku);
+     }
+   else if (term_kd && strncmp(keyseq, term_kd, strlen(term_kd)) == 0)
+     {
+       strcpy(rep, "Down");
+       keyseq += strlen(term_kd);
+     }
+   else if (term_kl && strncmp(keyseq, term_kl, strlen(term_kl)) == 0)
+     {
+       strcpy(rep, "Left");
+       keyseq += strlen(term_kl);
+     }
+   else if (term_kr && strncmp(keyseq, term_kr, strlen(term_kr)) == 0)
+     {
+       strcpy(rep, "Right");
+       keyseq += strlen(term_kr);
+     }
+   else
+     {
+       strcpy (rep, pretty_keyname (keyseq[0]));
+       keyseq++;
+     }
+   if (*keyseq)
+     {
+       strcat (rep, " ");
+       pretty_keyseq_internal (keyseq, rep + strlen(rep));
+     }
+ }
+ 
+ /* Return a pointer to the last character in s that is found in f. */
+ static const char *
+ strrpbrk (const char *s, const char *f)
+ {
+   register const char *e = s + strlen(s);
+   register const char *t;
+ 
+   while (e-- != s)
+     {
+       for (t = f; *t; t++)
+         if (*e == *t)
+           return e;
+     }
+   return NULL;
+ }
+ 
+ /* Replace the names of functions with the key that invokes them. */
+ char *
+ replace_in_documentation (const char *string, int help_is_only_window_p)
+ {
+   unsigned reslen = strlen (string);
+   register int i, start, next;
+   static char *result = NULL;
+ 
+   maybe_free (result);
+   result = xmalloc (1 + reslen);
+ 
+   i = next = start = 0;
+ 
+   /* Skip to the beginning of a replaceable function. */
+   for (i = start; string[i]; i++)
+     {
+       int j = i + 1;
+ 
+       /* Is this the start of a replaceable function name? */
+       if (string[i] == '\\')
+         {
+           char *fmt = NULL;
+           unsigned min = 0;
+           unsigned max = 0;
+ 
+           if(string[j] == '%')
+             {
+               if (string[++j] == '-')
+                 j++;
+               if (isdigit(string[j]))
+                 {
+                   min = atoi(string + j);
+                   while (isdigit(string[j]))
+                     j++;
+                   if (string[j] == '.' && isdigit(string[j + 1]))
+                     {
+                       j += 1;
+                       max = atoi(string + j);
+                       while (isdigit(string[j]))
+                         j++;
+                     }
+                   fmt = xmalloc (j - i + 2);
+                   strncpy (fmt, string + i + 1, j - i);
+                   fmt[j - i - 1] = 's';
+                   fmt[j - i] = '\0';
+                 }
+               else
+                 j = i + 1;
+             }
+           if (string[j] == '[')
+             {
+               unsigned arg = 0;
+               char *argstr = NULL;
+               char *rep_name, *fun_name, *rep;
+               InfoCommand *command;
+               char *repstr = NULL;
+               unsigned replen;
+ 
+               /* Copy in the old text. */
+               strncpy (result + next, string + start, i - start);
+               next += (i - start);
+               start = j + 1;
+ 
+               /* Look for an optional numeric arg. */
+               i = start;
+               if (isdigit(string[i])
+                   || (string[i] == '-' && isdigit(string[i + 1])) )
+                 {
+                   arg = atoi(string + i);
+                   if (string[i] == '-')
+                     i++;
+                   while (isdigit(string[i]))
+                     i++;
+                 }
+               start = i;
+ 
+               /* Move to the end of the function name. */
+               for (i = start; string[i] && (string[i] != ']'); i++);
+ 
+               rep_name = xmalloc (1 + i - start);
+               strncpy (rep_name, string + start, i - start);
+               rep_name[i - start] = '\0';
+ 
+             /* If we have only one window (because the window size was too
+                small to split it), we have to quit help by going back one
+                node in the history list, not deleting the window.  */
+               if (strcmp (rep_name, "quit-help") == 0)
+                 fun_name = help_is_only_window_p ? "history-node"
+                                                  : "delete-window";
+               else
+                 fun_name = rep_name;
+ 
+               /* Find a key which invokes this function in the info_keymap. */
+               command = named_function (fun_name);
+ 
+               free (rep_name);
+ 
+               /* If the internal documentation string fails, there is a
+                  serious problem with the associated command's documentation.
+                  We croak so that it can be fixed immediately. */
+               if (!command)
+                 abort ();
+ 
+               if (arg)
+                 {
+                   char *argrep;
+ 		  const char *p;
+ 
+                   argrep = where_is (info_keymap, InfoCmd(info_add_digit_to_numeric_arg));
+                   p = argrep ? strrpbrk (argrep, "0123456789-") : NULL;
+                   if (p)
+                     {
+                       argstr = xmalloc (p - argrep + 21);
+                       strncpy (argstr, argrep, p - argrep);
+                       sprintf (argstr + (p - argrep), "%d", arg);
+                     }
+                   else
+                     command = NULL;
+                 }
+               rep = command ? where_is (info_keymap, command) : NULL;
+               if (!rep)
+                 rep = "N/A";
+               replen = (argstr ? strlen (argstr) : 0) + strlen (rep) + 1;
+               repstr = xmalloc (replen);
+               repstr[0] = '\0';
+               if (argstr)
+                 {
+                   strcat(repstr, argstr);
+                   strcat(repstr, " ");
+                   free (argstr);
+                 }
+               strcat(repstr, rep);
+ 
+               if (fmt)
+                 {
+                   if (replen > max)
+                     replen = max;
+                   if (replen < min)
+                     replen = min;
+                 }
+               if (next + replen > reslen)
+                 {
+                   reslen = next + replen + 1;
+                   result = xrealloc (result, reslen + 1);
+                 }
+ 
+               if (fmt)
+                   sprintf (result + next, fmt, repstr);
+               else
+                   strcpy (result + next, repstr);
+ 
+               next = strlen (result);
+               free (repstr);
+ 
+               start = i;
+               if (string[i])
+                 start++;
+             }
+ 
+           maybe_free (fmt);
+         }
+     }
+   strcpy (result + next, string + start);
+   return result;
+ }
+ 
+ /* Return a string of characters which could be typed from the keymap
+    MAP to invoke FUNCTION. */
+ static char *where_is_rep = NULL;
+ static int where_is_rep_index = 0;
+ static int where_is_rep_size = 0;
+ 
+ char *
+ where_is (Keymap map, InfoCommand *cmd)
+ {
+   char *rep;
+ 
+   if (!where_is_rep_size)
+     where_is_rep = xmalloc (where_is_rep_size = 100);
+   where_is_rep_index = 0;
+ 
+   rep = where_is_internal (map, cmd);
+ 
+   /* If it couldn't be found, return "M-x Foo" (or equivalent). */
+   if (!rep)
+     {
+       char *name;
+ 
+       name = function_name (cmd);
+       if (!name)
+         return NULL; /* no such function */
+ 
+       rep = where_is_internal (map, InfoCmd(info_execute_command));
+       if (!rep)
+         return ""; /* function exists but can't be got to by user */
+ 
+       sprintf (where_is_rep, "%s %s", rep, name);
+ 
+       rep = where_is_rep;
+     }
+   return rep;
+ }
+ 
+ /* Return the printed rep of the keystrokes that invoke FUNCTION,
+    as found in MAP, or NULL. */
+ static char *
+ where_is_internal (Keymap map, InfoCommand *cmd)
+ {
+ #if defined(INFOKEY)
+ 
+   register FUNCTION_KEYSEQ *k;
+ 
+   for (k = cmd->keys; k; k = k->next)
+     if (k->map == map)
+       return pretty_keyseq (k->keyseq);
+ 
+   return NULL;
+ 
+ #else /* !INFOKEY */
+   /* There is a bug in that create_internal_info_help_node calls
+      where_is_internal without setting where_is_rep_index to zero.  This
+      was found by Mandrake and reported by Thierry Vignaud
+      <tvignaud@mandrakesoft.com> around April 24, 2002.
+ 
+      I think the best fix is to make where_is_rep_index another
+      parameter to this recursively-called function, instead of a static
+      variable.  But this [!INFOKEY] branch of the code is not enabled
+      any more, so let's just skip the whole thing.  --karl, 28sep02.  */
+   register int i;
+ 
+   /* If the function is directly invokable in MAP, return the representation
+      of that keystroke. */
+   for (i = 0; i < 256; i++)
+     if ((map[i].type == ISFUNC) && map[i].function == cmd)
+       {
+         sprintf (where_is_rep + where_is_rep_index, "%s", pretty_keyname (i));
+         return where_is_rep;
+       }
+ 
+   /* Okay, search subsequent maps for this function. */
+   for (i = 0; i < 256; i++)
+     {
+       if (map[i].type == ISKMAP)
+         {
+           int saved_index = where_is_rep_index;
+           char *rep;
+ 
+           sprintf (where_is_rep + where_is_rep_index, "%s ",
+                    pretty_keyname (i));
+ 
+           where_is_rep_index = strlen (where_is_rep);
+           rep = where_is_internal ((Keymap)map[i].function, cmd);
+ 
+           if (rep)
+             return where_is_rep;
+ 
+           where_is_rep_index = saved_index;
+         }
+     }
+ 
+   return NULL;
+ 
+ #endif /* INFOKEY */
+ }
+ 
+ DECLARE_INFO_COMMAND (info_where_is,
+    _("Show what to type to execute a given command"))
+ {
+   char *command_name;
+ 
+   command_name = read_function_name (_("Where is command: "), window);
+ 
+   if (!command_name)
+     {
+       info_abort_key (active_window, count, key);
+       return;
+     }
+ 
+   if (*command_name)
+     {
+       InfoCommand *command;
+ 
+       command = named_function (command_name);
+ 
+       if (command)
+         {
+           char *location;
+ 
+           location = where_is (active_window->keymap, command);
+ 
+           if (!location || !location[0])
+             {
+               info_error (_("`%s' is not on any keys"),
+                   command_name, NULL);
+             }
+           else
+             {
+               if (strstr (location, function_name (command)))
+                 window_message_in_echo_area
+                   (_("%s can only be invoked via %s."),
+                    command_name, location);
+               else
+                 window_message_in_echo_area
+                   (_("%s can be invoked via %s."),
+                    command_name, location);
+             }
+         }
+       else
+         info_error (_("There is no function named `%s'"),
+             command_name, NULL);
+     }
+ 
+   free (command_name);
+ }
diff -Nrc2 texinfo-4.12/info/infokey.c texinfo-4.13/info/infokey.c
*** texinfo-4.12/info/infokey.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/infokey.c	Thu Jun 12 05:39:20 2008
***************
*** 0 ****
--- 1,924 ----
+ /* infokey.c -- compile ~/.infokey to ~/.info.
+    $Id: infokey.c,v 1.18 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Andrew Bettison <andrewb@zip.com.au>. */
+ 
+ #include "info.h"
+ #include "infomap.h"
+ #include "infokey.h"
+ #include "key.h"
+ #include "getopt.h"
+ 
+ char *program_name = "infokey";
+ 
+ /* Non-zero means print version info only. */
+ static int print_version_p = 0;
+ 
+ /* Non-zero means print a short description of the options. */
+ static int print_help_p = 0;
+ 
+ /* String specifying the source file.  This is set by the user on the
+    command line, or a default is used. */
+ static char *input_filename = NULL;
+ 
+ /* String specifying the name of the file to output to.  This is
+    set by the user on the command line, or a default is used. */
+ static char *output_filename = NULL;
+ 
+ /* Structure describing the options that Infokey accepts.  We pass this
+    structure to getopt_long ().  If you add or otherwise change this
+    structure, you must also change the string which follows it. */
+ static struct option long_options[] =
+ {
+   {"output", 1, 0, 'o'},
+   {"help", 0, &print_help_p, 1},
+   {"version", 0, &print_version_p, 1},
+   {NULL, 0, NULL, 0}
+ };
+ 
+ /* String describing the shorthand versions of the long options found above. */
+ static char *short_options = "o:";
+ 
+ /* Structure for holding the compiled sections. */
+ enum sect_e
+   {
+     info = 0,
+     ea = 1,
+     var = 2
+   };
+ struct sect
+   {
+     unsigned int cur;
+     unsigned char data[INFOKEY_MAX_SECTIONLEN];
+   };
+ 
+ /* Some "forward" declarations. */
+ static char *mkpath (const char *dir, const char *file);
+ static int compile (FILE *fp, const char *filename, struct sect *sections);
+ static int write_infokey_file (FILE *fp, struct sect *sections);
+ static void syntax_error (const char *filename,
+     unsigned int linenum, const char *fmt,
+     const void *a1, const void *a2, const void *a3, const void *a4);
+ static void error_message (int error_code, const char *fmt,
+     const void *a1, const void *a2, const void *a3, const void *a4);
+ static void suggest_help (void);
+ static void short_help (void);
+ 
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*             Main Entry Point to the Infokey Program              */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ int
+ main (int argc, char **argv)
+ {
+   int getopt_long_index;	/* Index returned by getopt_long (). */
+ 
+ #ifdef HAVE_SETLOCALE
+   /* Set locale via LC_ALL.  */
+   setlocale (LC_ALL, "");
+ #endif
+ 
+ #ifdef ENABLE_NLS
+   /* Set the text message domain.  */
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   textdomain (PACKAGE);
+ #endif
+ 
+   while (1)
+     {
+       int option_character;
+ 
+       option_character = getopt_long
+ 	(argc, argv, short_options, long_options, &getopt_long_index);
+ 
+       /* getopt_long () returns EOF when there are no more long options. */
+       if (option_character == EOF)
+ 	break;
+ 
+       /* If this is a long option, then get the short version of it. */
+       if (option_character == 0 && long_options[getopt_long_index].flag == 0)
+ 	option_character = long_options[getopt_long_index].val;
+ 
+       /* Case on the option that we have received. */
+       switch (option_character)
+ 	{
+ 	case 0:
+ 	  break;
+ 
+ 	  /* User is specifying the name of a file to output to. */
+ 	case 'o':
+ 	  if (output_filename)
+ 	    free (output_filename);
+ 	  output_filename = xstrdup (optarg);
+ 	  break;
+ 
+ 	default:
+ 	  suggest_help ();
+ 	  xexit (1);
+ 	}
+     }
+ 
+   /* If the user specified --version, then show the version and exit. */
+   if (print_version_p)
+     {
+       printf ("%s (GNU %s) %s\n", program_name, PACKAGE, VERSION);
+       puts ("");
+       printf (_("Copyright (C) %s Free Software Foundation, Inc.\n\
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
+ This is free software: you are free to change and redistribute it.\n\
+ There is NO WARRANTY, to the extent permitted by law.\n"),
+ 	      "2008");
+       xexit (0);
+     }
+ 
+   /* If the `--help' option was present, show the help and exit. */
+   if (print_help_p)
+     {
+       short_help ();
+       xexit (0);
+     }
+ 
+   /* If there is one argument remaining, it is the name of the input
+      file. */
+   if (optind == argc - 1)
+     {
+       if (input_filename)
+ 	free (input_filename);
+       input_filename = xstrdup (argv[optind]);
+     }
+   else if (optind != argc)
+     {
+       error_message (0, _("incorrect number of arguments"),
+           NULL, NULL, NULL, NULL);
+       suggest_help ();
+       xexit (1);
+     }
+ 
+   /* Use default filenames where none given. */
+   {
+     char *homedir;
+ 
+     homedir = getenv ("HOME");
+ #ifdef __MSDOS__
+     if (!homedir)
+       homedir = ".";
+ #endif
+     if (!input_filename)
+       input_filename = mkpath (homedir, INFOKEY_SRCFILE);
+     if (!output_filename)
+       output_filename = mkpath (homedir, INFOKEY_FILE);
+   }
+ 
+   {
+     FILE *inf;
+     FILE *outf;
+     int write_error;
+     static struct sect sections[3];
+ 
+     /* Open the input file. */
+     inf = fopen (input_filename, "r");
+     if (!inf)
+       {
+ 	error_message (errno, _("cannot open input file `%s'"),
+             input_filename, NULL, NULL, NULL);
+ 	xexit (1);
+       }
+ 
+     /* Compile the input file to its verious sections, then write the
+        section data to the output file. */
+ 
+     if (compile (inf, input_filename, sections))
+       {
+ 	/* Open the output file. */
+ 	outf = fopen (output_filename, FOPEN_WBIN);
+ 	if (!outf)
+ 	  {
+ 	    error_message (errno, _("cannot create output file `%s'"),
+                 output_filename, NULL, NULL, NULL);
+ 	    xexit (1);
+ 	  }
+ 
+ 	/* Write the contents of the output file and close it.  If there is
+ 	   an error writing to the file, delete it and exit with a failure
+ 	   status.  */
+ 	write_error = 0;
+ 	if (!write_infokey_file (outf, sections))
+ 	  {
+ 	    error_message (errno, _("error writing to `%s'"),
+                 output_filename, NULL, NULL, NULL);
+ 	    write_error = 1;
+ 	  }
+ 	if (fclose (outf) == EOF)
+ 	  {
+ 	    error_message (errno, _("error closing output file `%s'"),
+                 output_filename, NULL, NULL, NULL);
+ 	    write_error = 1;
+ 	  }
+ 	if (write_error)
+ 	  {
+ 	    unlink (output_filename);
+ 	    xexit (1);
+ 	  }
+       }
+ 
+     /* Close the input file. */
+     fclose (inf);
+   }
+ 
+   return 0;
+ }
+ 
+ static char *
+ mkpath (const char *dir, const char *file)
+ {
+   char *p;
+ 
+   p = xmalloc (strlen (dir) + 1 + strlen (file) + 2);
+   strcpy (p, dir);
+   strcat (p, "/");
+   strcat (p, file);
+   return p;
+ }
+ 
+ 
+ /* Compilation - the real work.
+ 
+ 	Source file syntax
+ 	------------------
+ 	The source file is a line-based text file with the following
+ 	structure:
+ 
+ 		# comments
+ 		# more comments
+ 
+ 		#info
+ 		u	prev-line
+ 		d	next-line
+ 		^a	invalid		# just beep
+ 		\ku	prev-line
+ 		#stop
+ 		\kd	next-line
+ 		q	quit		# of course!
+ 
+ 		#echo-area
+ 		^a	echo-area-beg-of-line
+ 		^e	echo-area-end-of-line
+ 		\kr	echo-area-forward
+ 		\kl	echo-area-backward
+ 		\kh	echo-area-beg-of-line
+ 		\ke	echo-area-end-of-line
+ 
+ 		#var
+ 		scroll-step=1
+ 		ISO-Latin=Off
+ 
+ 	Lines starting with '#' are comments, and are ignored.  Blank
+ 	lines are ignored.  Each section is introduced by one of the
+ 	following lines:
+ 
+ 		#info
+ 		#echo-area
+ 		#var
+ 
+ 	The sections may occur in any order.  Each section may be
+ 	omitted completely.  If the 'info' section is the first in the
+ 	file, its '#info' line may be omitted.
+ 
+ 	The 'info' and 'echo-area' sections
+ 	-----------------------------------
+ 	Each line in the 'info' or 'echo-area' sections has the
+ 	following syntax:
+ 
+ 		key-sequence SPACE action-name [ SPACE [ # comment ] ] \n
+ 
+ 	Where SPACE is one or more white space characters excluding
+ 	newline, "action-name" is the name of a GNU Info command,
+ 	"comment" is any sequence of characters excluding newline, and
+ 	"key-sequence" is a concatenation of one or more key definitions
+ 	using the following syntax:
+ 
+ 	   1.	A carat ^ followed by one character indicates a single
+ 	   	control character;
+ 
+ 	   2.	A backslash \ followed by one, two, or three octal
+ 		digits indicates a single character having that ASCII
+ 		code;
+ 
+ 	   3.	\n indicates a single NEWLINE;
+ 		\e indicates a single ESC;
+ 		\r indicates a single CR;
+ 		\t indicates a single TAB;
+ 		\b indicates a single BACKSPACE;
+ 
+ 	   4.	\ku indicates the Up Arrow key;
+ 	   	\kd indicates the Down Arrow key;
+ 	   	\kl indicates the Left Arrow key;
+ 	   	\kr indicates the Right Arrow key;
+ 	   	\kP indicates the Page Up (PRIOR) key;
+ 	   	\kN indicates the Page Down (NEXT) key;
+ 	   	\kh indicates the Home key;
+ 	   	\ke indicates the End key;
+ 	   	\kx indicates the DEL key;
+ 		\k followed by any other character indicates a single
+ 		control-K, and the following character is interpreted
+ 		as in rules 1, 2, 3, 5 and 6.
+ 
+ 	   5.	\m followed by any sequence defined in rules 1, 2, 3, 4
+ 		or 6 indicates the "Meta" modification of that key.
+ 
+ 	   6.	A backslash \ followed by any character not described
+ 	   	above indicates that character itself.  In particular:
+ 		\\ indicates a single backslash \,
+ 		\  (backslash-space) indicates a single space,
+ 		\^ indicates a single caret ^,
+ 
+ 	If the following line:
+ 
+ 		#stop
+ 
+ 	occurs anywhere in an 'info' or 'echo-area' section, that
+ 	indicates to GNU Info to suppress all of its default key
+ 	bindings in that context.
+ 
+ 	The 'var' section
+ 	-----------------
+ 	Each line in the 'var' section has the following syntax:
+ 
+ 		variable-name = value \n
+ 
+ 	Where "variable-name" is the name of a GNU Info variable and
+ 	"value" is the value that GNU Info will assign to that variable
+ 	when commencing execution.  There must be no white space in the
+ 	variable name, nor between the variable name and the '='.  All
+ 	characters immediately following the '=', up to but not
+ 	including the terminating newline, are considered to be the
+ 	value that will be assigned.  In other words, white space
+ 	following the '=' is not ignored.
+  */
+ 
+ static int add_to_section (struct sect *s, const char *str, unsigned int len);
+ static int lookup_action (const char *actname);
+ 
+ /* Compile the input file into its various sections.  Return true if no
+    error was encountered.
+  */
+ static int
+ compile (FILE *fp, const char *filename, struct sect *sections)
+ {
+   int error = 0;
+   char rescan = 0;
+   unsigned int lnum = 0;
+   int c = 0;
+ 
+   /* This parser is a true state machine, with no sneaky fetching
+      of input characters inside the main loop.  In other words, all
+      state is fully represented by the following variables:
+    */
+   enum
+     {
+       start_of_line,
+       start_of_comment,
+       in_line_comment,
+       in_trailing_comment,
+       get_keyseq,
+       got_keyseq,
+       get_action,
+       got_action,
+       get_varname,
+       got_varname,
+       get_equals,
+       got_equals,
+       get_value
+     }
+   state = start_of_line;
+   enum sect_e section = info;
+   enum
+     {
+       normal,
+       slosh,
+       control,
+       octal,
+       special_key
+     }
+   seqstate;		/* used if state == get_keyseq */
+   char meta = 0;
+   char ocnt = 0;	/* used if state == get_keyseq && seqstate == octal */
+ 
+   /* Data is accumulated in the following variables.  The code
+      avoids overflowing these strings, and throws an error
+      where appropriate if a string limit is exceeded.  These string
+      lengths are arbitrary (and should be large enough) and their
+      lengths are not hard-coded anywhere else, so increasing them
+      here will not break anything.  */
+   char oval = 0;
+   char comment[10];
+   unsigned int clen = 0;
+   char seq[20];
+   unsigned int slen = 0;
+   char act[80];
+   unsigned int alen = 0;
+   char varn[80];
+   unsigned int varlen = 0;
+   char val[80];
+   unsigned int vallen = 0;
+ 
+ #define	To_seq(c) \
+ 		  do { \
+ 		    if (slen < sizeof seq) \
+ 		      seq[slen++] = meta ? Meta(c) : (c); \
+ 		    else \
+ 		      { \
+ 			syntax_error(filename, lnum, _("key sequence too long"), \
+                             NULL, NULL, NULL, NULL); \
+ 			error = 1; \
+ 		      } \
+ 		    meta = 0; \
+ 		  } while (0)
+ 
+   sections[info].cur = 1;
+   sections[info].data[0] = 0;
+   sections[ea].cur = 1;
+   sections[ea].data[0] = 0;
+   sections[var].cur = 0;
+ 
+   while (!error && (rescan || (c = fgetc (fp)) != EOF))
+     {
+       rescan = 0;
+       switch (state)
+ 	{
+ 	case start_of_line:
+ 	  lnum++;
+ 	  if (c == '#')
+ 	    state = start_of_comment;
+ 	  else if (c != '\n')
+ 	    {
+ 	      switch (section)
+ 		{
+ 		case info:
+ 		case ea:
+ 		  state = get_keyseq;
+ 		  seqstate = normal;
+ 		  slen = 0;
+ 		  break;
+ 		case var:
+ 		  state = get_varname;
+ 		  varlen = 0;
+ 		  break;
+ 		}
+ 	      rescan = 1;
+ 	    }
+ 	  break;
+ 
+ 	case start_of_comment:
+ 	  clen = 0;
+ 	  state = in_line_comment;
+ 	  /* fall through */
+ 	case in_line_comment:
+ 	  if (c == '\n')
+ 	    {
+ 	      state = start_of_line;
+ 	      comment[clen] = '\0';
+ 	      if (strcmp (comment, "info") == 0)
+ 		section = info;
+ 	      else if (strcmp (comment, "echo-area") == 0)
+ 		section = ea;
+ 	      else if (strcmp (comment, "var") == 0)
+ 		section = var;
+ 	      else if (strcmp (comment, "stop") == 0
+ 		       && (section == info || section == ea))
+ 		sections[section].data[0] = 1;
+ 	    }
+ 	  else if (clen < sizeof comment - 1)
+ 	    comment[clen++] = c;
+ 	  break;
+ 
+ 	case in_trailing_comment:
+ 	  if (c == '\n')
+ 	    state = start_of_line;
+ 	  break;
+ 
+ 	case get_keyseq:
+ 	  switch (seqstate)
+ 	    {
+ 	    case normal:
+ 	      if (c == '\n' || isspace (c))
+ 		{
+ 		  state = got_keyseq;
+ 		  rescan = 1;
+ 		  if (slen == 0)
+ 		    {
+ 		      syntax_error (filename, lnum, _("missing key sequence"),
+                           NULL, NULL, NULL, NULL);
+ 		      error = 1;
+ 		    }
+ 		}
+ 	      else if (c == '\\')
+ 		seqstate = slosh;
+ 	      else if (c == '^')
+ 		seqstate = control;
+ 	      else
+ 		To_seq (c);
+ 	      break;
+ 
+ 	    case slosh:
+ 	      switch (c)
+ 		{
+ 		case '0': case '1': case '2': case '3':
+ 		case '4': case '5': case '6': case '7':
+ 		  seqstate = octal;
+ 		  oval = c - '0';
+ 		  ocnt = 1;
+ 		  break;
+ 		case 'b':
+ 		  To_seq ('\b');
+ 		  seqstate = normal;
+ 		  break;
+ 		case 'e':
+ 		  To_seq ('\033');
+ 		  seqstate = normal;
+ 		  break;
+ 		case 'n':
+ 		  To_seq ('\n');
+ 		  seqstate = normal;
+ 		  break;
+ 		case 'r':
+ 		  To_seq ('\r');
+ 		  seqstate = normal;
+ 		  break;
+ 		case 't':
+ 		  To_seq ('\t');
+ 		  seqstate = normal;
+ 		  break;
+ 		case 'm':
+ 		  meta = 1;
+ 		  seqstate = normal;
+ 		  break;
+ 		case 'k':
+ 		  seqstate = special_key;
+ 		  break;
+ 		default:
+ 		  /* Backslash followed by any other char
+ 		     just means that char.  */
+ 		  To_seq (c);
+ 		  seqstate = normal;
+ 		  break;
+ 		}
+ 	      break;
+ 
+ 	    case octal:
+ 	      switch (c)
+ 		{
+ 		case '0': case '1': case '2': case '3':
+ 		case '4': case '5': case '6': case '7':
+ 		  if (++ocnt <= 3)
+ 		    oval = oval * 8 + c - '0';
+ 		  if (ocnt == 3)
+ 		    seqstate = normal;
+ 		  break;
+ 		default:
+ 		  ocnt = 4;
+ 		  seqstate = normal;
+ 		  rescan = 1;
+ 		  break;
+ 		}
+ 	      if (seqstate != octal)
+ 		{
+ 		  if (oval)
+ 		    To_seq (oval);
+ 		  else
+ 		    {
+ 		      syntax_error (filename, lnum,
+                           _("NUL character (\\000) not permitted"),
+                           NULL, NULL, NULL, NULL);
+ 		      error = 1;
+ 		    }
+ 		}
+ 	      break;
+ 
+ 	    case special_key:
+ 	      To_seq (SK_ESCAPE);
+ 	      switch (c)
+ 		{
+ 		case 'u': To_seq (SK_UP_ARROW); break;
+ 		case 'd': To_seq (SK_DOWN_ARROW); break;
+ 		case 'r': To_seq (SK_RIGHT_ARROW); break;
+ 		case 'l': To_seq (SK_LEFT_ARROW); break;
+ 		case 'U': To_seq (SK_PAGE_UP); break;
+ 		case 'D': To_seq (SK_PAGE_DOWN); break;
+ 		case 'h': To_seq (SK_HOME); break;
+ 		case 'e': To_seq (SK_END); break;
+ 		case 'x': To_seq (SK_DELETE); break;
+ 		default:  To_seq (SK_LITERAL); rescan = 1; break;
+ 		}
+ 	      seqstate = normal;
+ 	      break;
+ 
+ 	    case control:
+ 	      if (CONTROL (c))
+ 		To_seq (CONTROL (c));
+ 	      else
+ 		{
+ 		  syntax_error (filename, lnum,
+                       _("NUL character (^%c) not permitted"),
+                       (void *) (long) c, NULL, NULL, NULL);
+ 		  error = 1;
+ 		}
+ 	      seqstate = normal;
+ 	      break;
+ 	    }
+ 	  break;
+ 
+ 	case got_keyseq:
+ 	  if (isspace (c) && c != '\n')
+ 	    break;
+ 	  state = get_action;
+ 	  alen = 0;
+ 	  /* fall through */
+ 	case get_action:
+ 	  if (c == '\n' || isspace (c))
+ 	    {
+ 	      int a;
+ 
+ 	      state = got_action;
+ 	      rescan = 1;
+ 	      if (alen == 0)
+ 		{
+ 		  syntax_error (filename, lnum, _("missing action name"),
+ 				(void *) (long) c, NULL, NULL, NULL);
+ 		  error = 1;
+ 		}
+ 	      else
+ 		{
+ 		  act[alen] = '\0';
+ 		  a = lookup_action (act);
+ 		  if (a != -1)
+ 		    {
+ 		      char av = a;
+ 
+ 		      if (!(add_to_section (&sections[section], seq, slen)
+ 			    && add_to_section (&sections[section], "", 1)
+ 			    && add_to_section (&sections[section], &av, 1)))
+ 			{
+ 			  syntax_error (filename, lnum, _("section too long"),
+                               NULL, NULL, NULL, NULL);
+ 			  error = 1;
+ 			}
+ 		    }
+ 		  else
+ 		    {
+ 		      syntax_error (filename, lnum, _("unknown action `%s'"),
+                           act, NULL, NULL, NULL);
+ 		      error = 1;
+ 		    }
+ 		}
+ 	    }
+ 	  else if (alen < sizeof act - 1)
+ 	    act[alen++] = c;
+ 	  else
+ 	    {
+ 	      syntax_error (filename, lnum, _("action name too long"),
+                   NULL, NULL, NULL, NULL);
+ 	      error = 1;
+ 	    }
+ 	  break;
+ 
+ 	case got_action:
+ 	  if (c == '#')
+ 	    state = in_trailing_comment;
+ 	  else if (c == '\n')
+ 	    state = start_of_line;
+ 	  else if (!isspace (c))
+ 	    {
+ 	      syntax_error (filename, lnum,
+                   _("extra characters following action `%s'"),
+                   act, NULL, NULL, NULL);
+ 	      error = 1;
+ 	    }
+ 	  break;
+ 
+ 	case get_varname:
+ 	  if (c == '=')
+ 	    {
+ 	      if (varlen == 0)
+ 		{
+ 		  syntax_error (filename, lnum, _("missing variable name"),
+                       NULL, NULL, NULL, NULL);
+ 		  error = 1;
+ 		}
+ 	      state = get_value;
+ 	      vallen = 0;
+ 	    }
+ 	  else if (c == '\n' || isspace (c))
+ 	    {
+ 	      syntax_error (filename, lnum,
+                   _("missing `=' immediately after variable name"),
+                   NULL, NULL, NULL, NULL);
+ 	      error = 1;
+ 	    }
+ 	  else if (varlen < sizeof varn)
+ 	    varn[varlen++] = c;
+ 	  else
+ 	    {
+ 	      syntax_error (filename, lnum, _("variable name too long"),
+                   NULL, NULL, NULL, NULL);
+ 	      error = 1;
+ 	    }
+ 	  break;
+ 
+ 	case get_value:
+ 	  if (c == '\n')
+ 	    {
+ 	      state = start_of_line;
+ 	      if (!(add_to_section (&sections[section], varn, varlen)
+ 		    && add_to_section (&sections[section], "", 1)
+ 		    && add_to_section (&sections[section], val, vallen)
+ 		    && add_to_section (&sections[section], "", 1)))
+ 		{
+ 		  syntax_error (filename, lnum, _("section too long"),
+                       NULL, NULL, NULL, NULL);
+ 		  error = 1;
+ 		}
+ 	    }
+ 	  else if (vallen < sizeof val)
+ 	    val[vallen++] = c;
+ 	  else
+ 	    {
+ 	      syntax_error (filename, lnum, _("value too long"),
+                   NULL, NULL, NULL, NULL);
+ 	      error = 1;
+ 	    }
+ 	  break;
+ 
+         case get_equals:
+         case got_equals:
+         case got_varname:
+           break;
+ 	}
+     }
+ 
+ #undef To_seq
+ 
+   return !error;
+ }
+ 
+ /* Add some characters to a section's data.  Return true if all the
+    characters fit, or false if the section's size limit was exceeded.
+  */
+ static int
+ add_to_section (struct sect *s, const char *str, unsigned int len)
+ {
+   if (s->cur + len > sizeof s->data)
+     return 0;
+   strncpy ((char *) s->data + s->cur, str, len);
+   s->cur += len;
+   return 1;
+ }
+ 
+ /* Translate from an action name to its numeric code.  This uses the
+    auto-generated array in key.c.
+  */
+ static int
+ lookup_action (const char *actname)
+ {
+   int i;
+ 
+   if (strcmp ("invalid", actname) == 0)
+     return A_INVALID;
+   for (i = 0; function_key_array[i].name != NULL; i++)
+     if (strcmp (function_key_array[i].name, actname) == 0)
+       return function_key_array[i].code;
+   return -1;
+ }
+ 
+ /* Put an integer to an infokey file.
+    Integers are stored as two bytes, low order first,
+    in radix INFOKEY_RADIX.
+  */
+ static int
+ putint (int i, FILE *fp)
+ {
+   return fputc (i % INFOKEY_RADIX, fp) != EOF
+     && fputc ((i / INFOKEY_RADIX) % INFOKEY_RADIX, fp) != EOF;
+ }
+ 
+ /* Write an entire section to an infokey file.  If the section is
+    empty, simply omit it.
+  */
+ static int
+ putsect (struct sect *s, int code, FILE *fp)
+ {
+   if (s->cur == 0)
+     return 1;
+   return fputc (code, fp) != EOF
+     && putint (s->cur, fp)
+     && fwrite (s->data, s->cur, 1, fp) == 1;
+ }
+ 
+ /* Write an entire infokey file, given an array containing its sections.
+  */
+ static int
+ write_infokey_file (FILE *fp, struct sect *sections)
+ {
+   /* Get rid of sections with no effect. */
+   if (sections[info].cur == 1 && sections[info].data[0] == 0)
+     sections[info].cur = 0;
+   if (sections[ea].cur == 1 && sections[ea].data[0] == 0)
+     sections[ea].cur = 0;
+ 
+   /* Write all parts of the file out in order (no lseeks),
+      checking for errors all the way. */
+   return fputc (INFOKEY_MAGIC_S0, fp) != EOF
+     && fputc (INFOKEY_MAGIC_S1, fp) != EOF
+     && fputc (INFOKEY_MAGIC_S2, fp) != EOF
+     && fputc (INFOKEY_MAGIC_S3, fp) != EOF
+     && fputs (VERSION, fp) != EOF
+     && fputc ('\0', fp) != EOF
+     && putsect (&sections[info], INFOKEY_SECTION_INFO, fp)
+     && putsect (&sections[ea], INFOKEY_SECTION_EA, fp)
+     && putsect (&sections[var], INFOKEY_SECTION_VAR, fp)
+     && fputc (INFOKEY_MAGIC_E0, fp) != EOF
+     && fputc (INFOKEY_MAGIC_E1, fp) != EOF
+     && fputc (INFOKEY_MAGIC_E2, fp) != EOF
+     && fputc (INFOKEY_MAGIC_E3, fp) != EOF;
+ }
+ 
+ 
+ /* Error handling. */
+ 
+ /* Give the user a "syntax error" message in the form
+ 	progname: "filename", line N: message
+  */
+ static void
+ error_message (int error_code, const char *fmt,
+     const void *a1, const void *a2, const void *a3, const void *a4)
+ {
+   fprintf (stderr, "%s: ", program_name);
+   fprintf (stderr, fmt, a1, a2, a3, a4);
+   if (error_code)
+     fprintf (stderr, " - %s", strerror (error_code));
+   fprintf (stderr, "\n");
+ }
+ 
+ /* Give the user a generic error message in the form
+ 	progname: message
+  */
+ static void
+ syntax_error (const char *filename,
+     unsigned int linenum, const char *fmt,
+     const void *a1, const void *a2, const void *a3, const void *a4)
+ {
+   fprintf (stderr, "%s: ", program_name);
+   fprintf (stderr, _("\"%s\", line %u: "), filename, linenum);
+   fprintf (stderr, fmt, a1, a2, a3, a4);
+   fprintf (stderr, "\n");
+ }
+ 
+ /* Produce a gentle rtfm. */
+ static void
+ suggest_help (void)
+ {
+   fprintf (stderr, _("Try --help for more information.\n"));
+ }
+ 
+ /* Produce a scaled down description of the available options to Info. */
+ static void
+ short_help (void)
+ {
+   printf (_("\
+ Usage: %s [OPTION]... [INPUT-FILE]\n\
+ \n\
+ Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n\
+ $HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n\
+ \n\
+ Options:\n\
+   --output FILE        output to FILE instead of $HOME/.info\n\
+   --help               display this help and exit.\n\
+   --version            display version information and exit.\n\
+ "), program_name);
+ 
+   puts (_("\n\
+ Email bug reports to bug-texinfo@gnu.org,\n\
+ general questions and discussion to help-texinfo@gnu.org.\n\
+ Texinfo home page: http://www.gnu.org/software/texinfo/"));
+ 
+   xexit (0);
+ }
diff -Nrc2 texinfo-4.12/info/infokey.h texinfo-4.13/info/infokey.h
*** texinfo-4.12/info/infokey.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/infokey.h	Sun Jul  1 14:20:30 2007
***************
*** 0 ****
--- 1,127 ----
+ /* infokey.h -- Custom keystroke definition support.
+    $Id: infokey.h,v 1.5 2007/07/01 21:20:30 karl Exp $
+ 
+    Copyright (C) 1999, 2002, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Andrew Bettison <andrewb@zip.com.au>.
+ 
+    This design was derived from the "lesskey" system in less 3.4.0. by
+    Mark Nudelman.
+ 
+    The following terminology is confusing:
+ 	source file = $HOME/.infokey
+ 	infokey file = $HOME/.info
+    Oh, well.
+  */
+ 
+ 
+ /* Default source file, where user writes text definitions to be
+    compiled to the infokey file.  MS-DOS doesn't allow leading
+    dots in file names.  */
+ #ifdef __MSDOS__
+ #define INFOKEY_SRCFILE		"_infokey"
+ #else
+ #define INFOKEY_SRCFILE		".infokey"
+ #endif
+ 
+ /* Default "infokey file", where compiled user defs are kept and
+    read by Info.  MS-DOS doesn't allow leading dots in file names.  */
+ #ifdef __MSDOS__
+ #define INFOKEY_FILE		"_info"
+ #else
+ #define INFOKEY_FILE		".info"
+ #endif
+ 
+ /*
+ Format of entire infokey file:
+ 
+ 	4 bytes		magic number S
+ 	X bytes		version string
+ 	1 byte '\0'	terminator
+ 
+ 	any number of sections:
+ 		1 byte		section id
+ 		2 bytes		section length (N)
+ 		N bytes		section definitions: format depends on section
+ 
+ 	4 bytes		magic number E
+ 
+ Format of INFO and EA sections:
+ 	
+ 	1 byte		flag: 1 == suppress default key bindings
+ 	Repeat:
+ 		X bytes		key sequence
+ 		1 byte '\0'	terminator
+ 		1 byte		action code (A_xxx)
+ 
+ Format of VAR section:
+ 	
+ 	Repeat:
+ 		X bytes		variable name
+ 		1 byte '\0'	terminator
+ 		Y bytes		value
+ 		1 byte '\0'	terminator
+ 
+ */
+ 
+ #define	INFOKEY_NMAGIC		8
+ 
+ #define	INFOKEY_MAGIC_S0	'\001'
+ #define	INFOKEY_MAGIC_S1	'I'
+ #define	INFOKEY_MAGIC_S2	'n'
+ #define	INFOKEY_MAGIC_S3	'f'
+ 
+ #define	INFOKEY_SECTION_INFO	'i'
+ #define	INFOKEY_SECTION_EA	'e'
+ #define	INFOKEY_SECTION_VAR	'v'
+ 
+ #define	INFOKEY_MAGIC_E0	'A'
+ #define	INFOKEY_MAGIC_E1	'l'
+ #define	INFOKEY_MAGIC_E2	'f'
+ #define	INFOKEY_MAGIC_E3	'n'
+ 
+ #define	INFOKEY_RADIX		64
+ #define	INFOKEY_MAX_SECTIONLEN	500
+ #define	INFOKEY_MAX_DEFLEN	16
+ 
+ #define	A_MAX_COMMAND		120
+ #define	A_INVALID		121
+ 
+ /* Character transformations (independent of info's own) */
+ 
+ #define	CONTROL(c)		((c) & 0x1f)
+ #define	ISCONTROL(c)		(((c) & ~0x1f) == 0)
+ #define	META(c)			((c) | 0x80)
+ #define	UNMETA(c)		((c) & ~0x80)
+ #define	ISMETA(c)		(((c) & 0x80) != 0)
+ 
+ /* Special keys (keys which output different strings on different terminals) */
+ 
+ #define SK_ESCAPE		CONTROL('k')
+ #define SK_RIGHT_ARROW		1
+ #define SK_LEFT_ARROW		2
+ #define SK_UP_ARROW		3
+ #define SK_DOWN_ARROW		4
+ #define SK_PAGE_UP		5
+ #define SK_PAGE_DOWN		6
+ #define SK_HOME			7
+ #define SK_END			8
+ #define SK_DELETE		9
+ #define SK_INSERT		10
+ #define SK_CTL_LEFT_ARROW	11
+ #define SK_CTL_RIGHT_ARROW	12
+ #define SK_CTL_DELETE		13
+ #define SK_LITERAL		40
diff -Nrc2 texinfo-4.12/info/infomap.c texinfo-4.13/info/infomap.c
*** texinfo-4.12/info/infomap.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/infomap.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,1285 ----
+ /* infomap.c -- keymaps for Info.
+    $Id: infomap.c,v 1.21 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "infomap.h"
+ #include "funs.h"
+ #include "terminal.h"
+ 
+ #if defined(INFOKEY)
+ #include "infokey.h"
+ #include "variables.h"
+ #endif /* INFOKEY */
+ 
+ static int keymap_bind_keyseq (Keymap map, const char *keyseq,
+     KEYMAP_ENTRY *keyentry);
+ 
+ /* Return a new keymap which has all the uppercase letters mapped to run
+    the function info_do_lowercase_version (). */
+ Keymap
+ keymap_make_keymap (void)
+ {
+   int i;
+   Keymap keymap;
+ 
+   keymap = (Keymap)xmalloc (256 * sizeof (KEYMAP_ENTRY));
+ 
+   for (i = 0; i < 256; i++)
+     {
+       keymap[i].type = ISFUNC;
+       keymap[i].function = NULL;
+     }
+ 
+   for (i = 'A'; i < ('Z' + 1); i++)
+     {
+       keymap[i].type = ISFUNC;
+ #if defined(INFOKEY)
+       keymap[Meta(i)].type = ISFUNC;
+       keymap[Meta(i)].function =
+ #endif /* INFOKEY */
+       keymap[i].function = InfoCmd(info_do_lowercase_version);
+     }
+ 
+   return keymap;
+ }
+ 
+ #if defined(INFOKEY)
+ static FUNCTION_KEYSEQ *
+ find_function_keyseq (Keymap map, int c, Keymap rootmap)
+ {
+   FUNCTION_KEYSEQ *k;
+ 
+   if (map[c].type != ISFUNC)
+     abort();
+   if (map[c].function == NULL)
+     return NULL;
+   for (k = map[c].function->keys; k; k = k->next)
+     {
+       const unsigned char *p;
+       Keymap m = rootmap;
+       if (k->map != rootmap)
+         continue;
+       for (p = (unsigned char *) k->keyseq; *p && m[*p].type == ISKMAP; p++)
+         m = (Keymap)m[*p].function;
+       if (*p != c || p[1])
+         continue;
+       if (m[*p].type != ISFUNC)
+         abort ();
+       break;
+     }
+   return k;
+ }
+ 
+ static void
+ add_function_keyseq (InfoCommand *function,
+     const char *keyseq, Keymap rootmap)
+ {
+   FUNCTION_KEYSEQ *ks;
+ 
+   if (function == NULL ||
+       function == InfoCmd(info_do_lowercase_version) ||
+       function == InfoCmd(ea_insert))
+     return;
+   ks = xmalloc (sizeof(FUNCTION_KEYSEQ));
+   ks->next = function->keys;
+   ks->map = rootmap;
+   ks->keyseq = xstrdup(keyseq);
+   function->keys = ks;
+ }
+ 
+ static void
+ remove_function_keyseq (InfoCommand *function,
+     const char *keyseq, Keymap rootmap)
+ {
+ 
+   FUNCTION_KEYSEQ *k, *kp;
+ 
+   if (function == NULL ||
+       function == InfoCmd(info_do_lowercase_version) ||
+       function == InfoCmd(ea_insert))
+     return;
+   for (kp = NULL, k = function->keys; k; kp = k, k = k->next)
+     if (k->map == rootmap && strcmp(k->keyseq, keyseq) == 0)
+       break;
+   if (!k)
+     abort ();
+   if (kp)
+     kp->next = k->next;
+   else
+     function->keys = k->next;
+ }
+ #endif /* INFOKEY */
+ 
+ /* Return a new keymap which is a copy of MAP. */
+ Keymap
+ keymap_copy_keymap (Keymap map, Keymap rootmap, Keymap newroot)
+ {
+   int i;
+   Keymap keymap;
+ #if defined(INFOKEY)
+   FUNCTION_KEYSEQ *ks;
+ #endif /* INFOKEY */
+ 
+   keymap = keymap_make_keymap ();
+   if (!newroot)
+     newroot = keymap;
+ 
+   for (i = 0; i < 256; i++)
+     {
+       keymap[i].type = map[i].type;
+       switch (map[i].type)
+         {
+         case ISFUNC:
+           keymap[i].function = map[i].function;
+ #if defined(INFOKEY)
+           ks = find_function_keyseq (map, i, rootmap);
+           if (ks)
+             add_function_keyseq(map[i].function, ks->keyseq, newroot);
+ #endif /* INFOKEY */
+           break;
+         case ISKMAP:
+           keymap[i].function = (InfoCommand *)keymap_copy_keymap
+             ((Keymap)map[i].function, rootmap, NULL);
+           break;
+         }
+     }
+   return keymap;
+ }
+ 
+ /* Free the keymap and its descendants. */
+ void
+ keymap_discard_keymap (Keymap map, Keymap rootmap)
+ {
+   int i;
+ 
+   if (!map)
+     return;
+   if (!rootmap)
+     rootmap = map;
+ 
+   for (i = 0; i < 256; i++)
+     {
+ #if defined(INFOKEY)
+       FUNCTION_KEYSEQ *ks;
+ #endif /* INFOKEY */
+       switch (map[i].type)
+         {
+         case ISFUNC:
+ #if defined(INFOKEY)
+           ks = find_function_keyseq(map, i, rootmap);
+           if (ks)
+             remove_function_keyseq (map[i].function, ks->keyseq, rootmap);
+ #endif /* INFOKEY */
+           break;
+ 
+         case ISKMAP:
+           keymap_discard_keymap ((Keymap)map[i].function, rootmap);
+           break;
+ 
+         }
+     }
+   free(map);
+ }
+ 
+ /* Conditionally bind key sequence. */
+ static int
+ keymap_bind_keyseq (Keymap map,
+     const char *keyseq, KEYMAP_ENTRY *keyentry)
+ {
+   Keymap m = map;
+   const unsigned char *s = (unsigned char *) keyseq;
+   int c;
+ 
+   if (s == NULL || *s == '\0') return 0;
+ 
+   while ((c = *s++) != '\0')
+     {
+ #if defined(INFOKEY)
+       FUNCTION_KEYSEQ *ks;
+ #endif /* INFOKEY */
+       switch (m[c].type)
+         {
+         case ISFUNC:
+ #if defined(INFOKEY)
+           ks = find_function_keyseq(m, c, map);
+           if (ks)
+             remove_function_keyseq (m[c].function, ks->keyseq, map);
+ #else /* !INFOKEY */
+           if (!(m[c].function == NULL || (
+                 m != map &&
+                 m[c].function == InfoCmd(info_do_lowercase_version))
+               ))
+             return 0;
+ #endif /* !INFOKEY */
+ 
+           if (*s != '\0')
+             {
+               m[c].type = ISKMAP;
+               /* Here we are casting the Keymap pointer returned from
+                  keymap_make_keymap to an InfoCommand pointer.  Ugh.
+                  This makes the `function' structure garbage
+                  if it's actually interpreted as an InfoCommand.
+                  Should really be using a union, and taking steps to
+                  avoid the possible error.  */
+               m[c].function = (InfoCommand *)keymap_make_keymap ();
+             }
+           break;
+ 
+         case ISKMAP:
+ #if defined(INFOKEY)
+           if (*s == '\0')
+             keymap_discard_keymap ((Keymap)m[c].function, map);
+ #else /* !INFOKEY */
+           if (*s == '\0')
+             return 0;
+ #endif
+           break;
+         }
+       if (*s != '\0')
+         {
+           m = (Keymap)m[c].function;
+         }
+       else
+         {
+ #if defined(INFOKEY)
+           add_function_keyseq (keyentry->function, keyseq, map);
+ #endif /* INFOKEY */
+           m[c] = *keyentry;
+         }
+     }
+ 
+   return 1;
+ }
+ 
+ 
+ /* Initialize the standard info keymaps. */
+ 
+ Keymap info_keymap = NULL;
+ Keymap echo_area_keymap = NULL;
+ 
+ /* Make sure that we don't have too many command codes defined. */
+ 
+ #if A_NCOMMANDS > A_MAX_COMMAND + 1
+ #error "too many commands defined"
+ #endif
+ 
+ /* Initialize the keymaps from the .info keymap file. */
+ 
+ #define NUL     '\0'
+ 
+ static unsigned char default_emacs_like_info_keys[] =
+ {
+         0,      /* suppress-default-keybindings flag */
+         TAB, NUL,                       A_info_move_to_next_xref,
+         LFD, NUL,                       A_info_select_reference_this_line,
+         RET, NUL,                       A_info_select_reference_this_line,
+         CONTROL('a'), NUL,              A_info_beginning_of_line,
+         CONTROL('b'), NUL,              A_info_backward_char,
+         CONTROL('e'), NUL,              A_info_end_of_line,
+         CONTROL('f'), NUL,              A_info_forward_char,
+         CONTROL('h'), NUL,              A_info_get_help_window,
+         CONTROL('l'), NUL,              A_info_redraw_display,
+         CONTROL('n'), NUL,              A_info_next_line,
+         CONTROL('p'), NUL,              A_info_prev_line,
+         CONTROL('r'), NUL,              A_isearch_backward,
+         CONTROL('s'), NUL,              A_isearch_forward,
+         CONTROL('u'), NUL,              A_info_universal_argument,
+         CONTROL('v'), NUL,              A_info_scroll_forward_page_only,
+         ',', NUL,                       A_info_next_index_match,
+         '/', NUL,                       A_info_search,
+         '0', NUL,                       A_info_last_menu_item,
+         '1', NUL,                       A_info_menu_digit,
+         '2', NUL,                       A_info_menu_digit,
+         '3', NUL,                       A_info_menu_digit,
+         '4', NUL,                       A_info_menu_digit,
+         '5', NUL,                       A_info_menu_digit,
+         '6', NUL,                       A_info_menu_digit,
+         '7', NUL,                       A_info_menu_digit,
+         '8', NUL,                       A_info_menu_digit,
+         '9', NUL,                       A_info_menu_digit,
+         '<', NUL,                       A_info_first_node,
+         '>', NUL,                       A_info_last_node,
+         '?', NUL,                       A_info_get_help_window,
+         '[', NUL,                       A_info_global_prev_node,
+         ']', NUL,                       A_info_global_next_node,
+         'b', NUL,                       A_info_beginning_of_node,
+         'd', NUL,                       A_info_dir_node,
+         'e', NUL,                       A_info_end_of_node,
+         'f', NUL,                       A_info_xref_item,
+         'g', NUL,                       A_info_goto_node,
+         'G', NUL,                       A_info_menu_sequence,
+         'h', NUL,                       A_info_get_help_window,
+         'H', NUL,                       A_info_get_info_help_node,
+         'i', NUL,                       A_info_index_search,
+         'l', NUL,                       A_info_history_node,
+         'm', NUL,                       A_info_menu_item,
+         'n', NUL,                       A_info_next_node,
+         'O', NUL,                       A_info_goto_invocation_node,
+         'p', NUL,                       A_info_prev_node,
+         'r', NUL,                       A_info_xref_item,
+         'R', NUL,                       A_info_toggle_regexp,
+         's', NUL,                       A_info_search,
+         'S', NUL,                       A_info_search_case_sensitively,
+         't', NUL,                       A_info_top_node,
+         'u', NUL,                       A_info_up_node,
+         ESC, '0', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '1', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '2', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '3', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '4', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '5', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '6', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '7', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '8', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '9', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '-', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, CONTROL('f'), NUL,         A_info_show_footnotes,
+         ESC, CONTROL('g'), NUL,         A_info_abort_key,
+         ESC, TAB, NUL,                  A_info_move_to_prev_xref,
+         ESC, CONTROL('v'), NUL,         A_info_scroll_other_window,
+         ESC, '<', NUL,                  A_info_beginning_of_node,
+         ESC, '>', NUL,                  A_info_end_of_node,
+         ESC, 'b', NUL,                  A_info_backward_word,
+         ESC, 'f', NUL,                  A_info_forward_word,
+         ESC, 'r', NUL,                  A_info_move_to_window_line,
+         ESC, 'v', NUL,                  A_info_scroll_backward_page_only,
+         Meta('0'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('1'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('2'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('3'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('4'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('5'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('6'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('7'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('8'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('9'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('-'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta(CONTROL('f')), NUL,        A_info_show_footnotes,
+         Meta(CONTROL('g')), NUL,        A_info_abort_key,
+         Meta(TAB), NUL,                 A_info_move_to_prev_xref,
+         Meta(CONTROL('v')), NUL,        A_info_scroll_other_window,
+         Meta('<'), NUL,                 A_info_beginning_of_node,
+         Meta('>'), NUL,                 A_info_end_of_node,
+         Meta('b'), NUL,                 A_info_backward_word,
+         Meta('f'), NUL,                 A_info_forward_word,
+         Meta('r'), NUL,                 A_info_move_to_window_line,
+         Meta('v'), NUL,                 A_info_scroll_backward_page_only,
+ #if defined (NAMED_FUNCTIONS)
+         ESC, 'x', NUL,                  A_info_execute_command,
+         Meta('x'), NUL,                 A_info_execute_command,
+ #endif /* NAMED_FUNCTIONS */
+ 
+         CONTROL('x'), CONTROL('b'), NUL,        A_list_visited_nodes,
+         CONTROL('x'), CONTROL('c'), NUL,        A_info_quit,
+         CONTROL('x'), CONTROL('f'), NUL,        A_info_view_file,
+         CONTROL('x'), CONTROL('g'), NUL,        A_info_abort_key,
+         CONTROL('x'), CONTROL('v'), NUL,        A_info_view_file,
+         CONTROL('x'), '0', NUL,         A_info_delete_window,
+         CONTROL('x'), '1', NUL,         A_info_keep_one_window,
+         CONTROL('x'), '2', NUL,         A_info_split_window,
+         CONTROL('x'), '^', NUL,         A_info_grow_window,
+         CONTROL('x'), 'b', NUL,         A_select_visited_node,
+         CONTROL('x'), 'k', NUL,         A_info_kill_node,
+         CONTROL('x'), 'n', NUL,         A_info_search_next,
+         CONTROL('x'), 'N', NUL,         A_info_search_previous,
+         CONTROL('x'), 'o', NUL,         A_info_next_window,
+         CONTROL('x'), 't', NUL,         A_info_tile_windows,
+         CONTROL('x'), 'w', NUL,         A_info_toggle_wrap,
+ 
+ /*      Arrow key bindings for info keymaps.  It seems that some
+         terminals do not match their termcap entries, so it's best to just
+         define everything with both of the usual prefixes.  */
+ 
+         SK_ESCAPE, SK_PAGE_UP, NUL,             A_info_scroll_backward,
+         SK_ESCAPE, SK_PAGE_DOWN, NUL,           A_info_scroll_forward,
+         '\033', 'O', 'A', NUL,                  A_info_prev_line,
+         '\033', '[', 'A', NUL,                  A_info_prev_line,
+         '\033', 'O', 'B', NUL,                  A_info_next_line,
+         '\033', '[', 'B', NUL,                  A_info_next_line,
+         SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_info_forward_char,
+         '\033', 'O', 'C', NUL,                  A_info_forward_char,
+         '\033', '[', 'C', NUL,                  A_info_forward_char,
+         SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_info_backward_char,
+         '\033', 'O', 'D', NUL,                  A_info_backward_char,
+         '\033', '[', 'D', NUL,                  A_info_backward_char,
+         SK_ESCAPE, SK_HOME, NUL,                A_info_beginning_of_node,
+         SK_ESCAPE, SK_END, NUL,                 A_info_end_of_node,
+         SK_ESCAPE, SK_DELETE, NUL,              A_info_scroll_backward,
+ 
+         ESC, SK_ESCAPE, SK_PAGE_UP, NUL,        A_info_scroll_other_window_backward,
+         ESC, SK_ESCAPE, SK_PAGE_DOWN, NUL,      A_info_scroll_other_window,
+         ESC, SK_ESCAPE, SK_UP_ARROW, NUL,       A_info_prev_line,
+         ESC, '\033', 'O', 'A', NUL,             A_info_prev_line,
+         ESC, '\033', '[', 'A', NUL,             A_info_prev_line,
+         ESC, SK_ESCAPE, SK_DOWN_ARROW, NUL,     A_info_next_line,
+         ESC, '\033', 'O', 'B', NUL,             A_info_next_line,
+         ESC, '\033', '[', 'B', NUL,             A_info_next_line,
+         ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_info_forward_word,
+         ESC, '\033', 'O', 'C', NUL,             A_info_forward_word,
+         ESC, '\033', '[', 'C', NUL,             A_info_forward_word,
+         ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_info_backward_word,
+         ESC, '\033', 'O', 'D', NUL,             A_info_backward_word,
+         ESC, '\033', '[', 'D', NUL,             A_info_backward_word,
+ 
+         /* We want help to report q, not C-x C-c, etc.  */
+         'q', NUL,                       A_info_quit,
+         'x', NUL,                       A_info_delete_window,
+         SPC, NUL,                       A_info_scroll_forward,
+         DEL, NUL,                       A_info_scroll_backward,
+         '{', NUL,                       A_info_search_previous,
+         '}', NUL,                       A_info_search_next,
+         CONTROL('g'), NUL,              A_info_abort_key,
+         SK_ESCAPE, SK_UP_ARROW, NUL,    A_info_prev_line,
+         SK_ESCAPE, SK_DOWN_ARROW, NUL,  A_info_next_line,
+ };
+ 
+ 
+ static unsigned char default_emacs_like_ea_keys[] =
+ {
+         0,      /* suppress-default-keybindings flag */
+         ESC, '0', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '1', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '2', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '3', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '4', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '5', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '6', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '7', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '8', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '9', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '-', NUL,                  A_info_add_digit_to_numeric_arg,
+         Meta('0'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('1'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('2'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('3'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('4'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('5'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('6'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('7'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('8'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('9'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('-'), NUL,                 A_info_add_digit_to_numeric_arg,
+         ESC, CONTROL('g'), NUL,         A_ea_abort,
+         ESC, CONTROL('v'), NUL,         A_ea_scroll_completions_window,
+         ESC, 'b', NUL,                  A_ea_backward_word,
+         ESC, 'd', NUL,                  A_ea_kill_word,
+         ESC, 'f', NUL,                  A_ea_forward_word,
+         ESC, 'y', NUL,                  A_ea_yank_pop,
+         ESC, '?', NUL,                  A_ea_possible_completions,
+         ESC, TAB, NUL,                  A_ea_tab_insert,
+         ESC, DEL, NUL,                  A_ea_backward_kill_word,
+         Meta(CONTROL('g')), NUL,        A_ea_abort,
+         Meta(CONTROL('v')), NUL,        A_ea_scroll_completions_window,
+         Meta('b'), NUL,                 A_ea_backward_word,
+         Meta('d'), NUL,                 A_ea_kill_word,
+         Meta('f'), NUL,                 A_ea_forward_word,
+         Meta('y'), NUL,                 A_ea_yank_pop,
+         Meta('?'), NUL,                 A_ea_possible_completions,
+         Meta(TAB), NUL,                 A_ea_tab_insert,
+         Meta(DEL), NUL,                 A_ea_backward_kill_word,
+         CONTROL('a'), NUL,              A_ea_beg_of_line,
+         CONTROL('b'), NUL,              A_ea_backward,
+         CONTROL('d'), NUL,              A_ea_delete,
+         CONTROL('e'), NUL,              A_ea_end_of_line,
+         CONTROL('f'), NUL,              A_ea_forward,
+         CONTROL('g'), NUL,              A_ea_abort,
+         CONTROL('h'), NUL,              A_ea_rubout,
+ /*      CONTROL('k') */
+         SK_ESCAPE, SK_LITERAL, NUL,     A_ea_kill_line,
+         CONTROL('l'), NUL,              A_info_redraw_display,
+         CONTROL('q'), NUL,              A_ea_quoted_insert,
+         CONTROL('t'), NUL,              A_ea_transpose_chars,
+         CONTROL('u'), NUL,              A_info_universal_argument,
+         CONTROL('y'), NUL,              A_ea_yank,
+         LFD, NUL,                       A_ea_newline,
+         RET, NUL,                       A_ea_newline,
+         SPC, NUL,                       A_ea_complete,
+         TAB, NUL,                       A_ea_complete,
+         '?', NUL,                       A_ea_possible_completions,
+ #ifdef __MSDOS__
+         /* PC users will lynch me if I don't give them their usual DEL
+            effect...  */
+         DEL, NUL,                       A_ea_delete,
+ #else
+         DEL, NUL,                       A_ea_rubout,
+ #endif
+ #if defined (NAMED_FUNCTIONS)
+   /*    ESC, 'x', NUL,                  A_info_execute_command, */
+   /*    Meta('x'), NUL,                 A_info_execute_command, */
+ #endif /* NAMED_FUNCTIONS */
+         CONTROL('x'), 'o', NUL,         A_info_next_window,
+         CONTROL('x'), DEL, NUL,         A_ea_backward_kill_line,
+ 
+ /*      Arrow key bindings for echo area keymaps.  It seems that some
+         terminals do not match their termcap entries, so it's best to just
+         define everything with both of the usual prefixes.  */
+ 
+         SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_ea_forward,
+         '\033', 'O', 'C', NUL,                  A_ea_forward,
+         '\033', '[', 'C', NUL,                  A_ea_forward,
+         SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_ea_backward,
+         '\033', 'O', 'D', NUL,                  A_ea_backward,
+         '\033', '[', 'D', NUL,                  A_ea_backward,
+         ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_ea_forward_word,
+         ESC, '\033', 'O', 'C', NUL,             A_ea_forward_word,
+         ESC, '\033', '[', 'C', NUL,             A_ea_forward_word,
+         ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_ea_backward_word,
+         ESC, '\033', 'O', 'D', NUL,             A_ea_backward_word,
+         ESC, '\033', '[', 'D', NUL,             A_ea_backward_word,
+ #ifdef __MSDOS__
+         SK_ESCAPE, SK_DELETE, NUL,              A_ea_delete,
+ #else
+         SK_ESCAPE, SK_DELETE, NUL,              A_ea_rubout,
+ #endif
+         SK_ESCAPE, SK_HOME, NUL,                A_ea_beg_of_line,
+         SK_ESCAPE, SK_END, NUL,                 A_ea_end_of_line,
+         ESC, SK_ESCAPE, SK_DELETE, NUL,         A_ea_backward_kill_word,
+         CONTROL('x'), SK_ESCAPE, SK_DELETE, NUL,A_ea_backward_kill_line,
+ };
+ 
+ 
+ static unsigned char default_vi_like_info_keys[] =
+ {
+         0,      /* suppress-default-keybindings flag */
+         '0', NUL,                       A_info_add_digit_to_numeric_arg,
+         '1', NUL,                       A_info_add_digit_to_numeric_arg,
+         '2', NUL,                       A_info_add_digit_to_numeric_arg,
+         '3', NUL,                       A_info_add_digit_to_numeric_arg,
+         '4', NUL,                       A_info_add_digit_to_numeric_arg,
+         '5', NUL,                       A_info_add_digit_to_numeric_arg,
+         '6', NUL,                       A_info_add_digit_to_numeric_arg,
+         '7', NUL,                       A_info_add_digit_to_numeric_arg,
+         '8', NUL,                       A_info_add_digit_to_numeric_arg,
+         '9', NUL,                       A_info_add_digit_to_numeric_arg,
+         '-', NUL,                       A_info_add_digit_to_numeric_arg,
+         TAB, NUL,                       A_info_move_to_next_xref,
+         LFD, NUL,                       A_info_down_line,
+         RET, NUL,                       A_info_down_line,
+         CONTROL('a'), NUL,              A_info_beginning_of_line,
+         CONTROL('b'), NUL,              A_info_scroll_backward_page_only,
+         CONTROL('d'), NUL,              A_info_scroll_half_screen_down,
+         CONTROL('e'), NUL,              A_info_down_line,
+         CONTROL('f'), NUL,              A_info_scroll_forward_page_only,
+         CONTROL('k'), NUL,              A_info_up_line,
+         CONTROL('l'), NUL,              A_info_redraw_display,
+         CONTROL('n'), NUL,              A_info_down_line,
+         CONTROL('p'), NUL,              A_info_up_line,
+         CONTROL('r'), NUL,              A_info_redraw_display,
+         CONTROL('s'), NUL,              A_isearch_forward,
+         CONTROL('u'), NUL,              A_info_scroll_half_screen_up,
+         CONTROL('v'), NUL,              A_info_scroll_forward_page_only,
+         CONTROL('y'), NUL,              A_info_up_line,
+         ',', NUL,                       A_info_next_index_match,
+         '/', NUL,                       A_info_search,
+         ESC, '0', NUL,                  A_info_last_menu_item,
+         ESC, '1', NUL,                  A_info_menu_digit,
+         ESC, '2', NUL,                  A_info_menu_digit,
+         ESC, '3', NUL,                  A_info_menu_digit,
+         ESC, '4', NUL,                  A_info_menu_digit,
+         ESC, '5', NUL,                  A_info_menu_digit,
+         ESC, '6', NUL,                  A_info_menu_digit,
+         ESC, '7', NUL,                  A_info_menu_digit,
+         ESC, '8', NUL,                  A_info_menu_digit,
+         ESC, '9', NUL,                  A_info_menu_digit,
+         Meta('0'), NUL,                 A_info_last_menu_item,
+         Meta('1'), NUL,                 A_info_menu_digit,
+         Meta('2'), NUL,                 A_info_menu_digit,
+         Meta('3'), NUL,                 A_info_menu_digit,
+         Meta('4'), NUL,                 A_info_menu_digit,
+         Meta('5'), NUL,                 A_info_menu_digit,
+         Meta('6'), NUL,                 A_info_menu_digit,
+         Meta('7'), NUL,                 A_info_menu_digit,
+         Meta('8'), NUL,                 A_info_menu_digit,
+         Meta('9'), NUL,                 A_info_menu_digit,
+         '<', NUL,                       A_info_first_node,
+         '>', NUL,                       A_info_last_node,
+         '?', NUL,                       A_info_search_backward,
+         '[', NUL,                       A_info_global_prev_node,
+         ']', NUL,                       A_info_global_next_node,
+         '\'', NUL,                      A_info_history_node,
+         'b', NUL,                       A_info_scroll_backward,
+         'd', NUL,                       A_info_scroll_half_screen_down,
+         'e', NUL,                       A_info_down_line,
+         'E', NUL,                       A_info_view_file,
+         ':', 'e', NUL,                  A_info_view_file,
+         'f', NUL,                       A_info_scroll_forward_page_only,
+         'F', NUL,                       A_info_scroll_forward_page_only,
+         'g', NUL,                       A_info_first_node,
+         'G', NUL,                       A_info_last_node,
+         'h', NUL,                       A_info_get_help_window,
+         'H', NUL,                       A_info_get_help_window,
+         'i', NUL,                       A_info_index_search,
+         'I', NUL,                       A_info_goto_invocation_node,
+         'j', NUL,                       A_info_next_line,
+         'k', NUL,                       A_info_prev_line,
+         'l', NUL,                       A_info_history_node,
+         'm', NUL,                       A_info_menu_item,
+         'n', NUL,                       A_info_search_next,
+         'N', NUL,                       A_info_search_previous,
+         'O', NUL,                       A_info_goto_invocation_node,
+         'p', NUL,                       A_info_prev_node,
+         'Q', NUL,                       A_info_quit,
+         ':', 'q', NUL,                  A_info_quit,
+         ':', 'Q', NUL,                  A_info_quit,
+         'Z', 'Z', NUL,                  A_info_quit,
+         'r', NUL,                       A_info_redraw_display,
+         'R', NUL,                       A_info_toggle_regexp,
+         's', NUL,                       A_info_search,
+         'S', NUL,                       A_info_search_case_sensitively,
+         't', NUL,                       A_info_top_node,
+         'u', NUL,                       A_info_scroll_half_screen_up,
+         'w', NUL,                       A_info_scroll_backward_page_only_set_window,
+         'y', NUL,                       A_info_up_line,
+         'z', NUL,                       A_info_scroll_forward_page_only_set_window,
+         ESC, CONTROL('f'), NUL,         A_info_show_footnotes,
+         ESC, CONTROL('g'), NUL,         A_info_abort_key,
+         ESC, TAB, NUL,                  A_info_move_to_prev_xref,
+         ESC, SPC, NUL,                  A_info_scroll_forward_page_only,
+         ESC, CONTROL('v'), NUL,         A_info_scroll_other_window,
+         ESC, '<', NUL,                  A_info_beginning_of_node,
+         ESC, '>', NUL,                  A_info_end_of_node,
+         ESC, '/', NUL,                  A_info_search,
+         ESC, '?', NUL,                  A_info_search_backward,
+         ESC, 'b', NUL,                  A_info_beginning_of_node,
+         ESC, 'd', NUL,                  A_info_dir_node,
+         ESC, 'e', NUL,                  A_info_end_of_node,
+         ESC, 'f', NUL,                  A_info_xref_item,
+         ESC, 'g', NUL,                  A_info_select_reference_this_line,
+         ESC, 'h', NUL,                  A_info_get_info_help_node,
+         ESC, 'm', NUL,                  A_info_menu_item,
+         ESC, 'n', NUL,                  A_info_search,
+         ESC, 'N', NUL,                  A_info_search_backward,
+         ESC, 'r', NUL,                  A_isearch_backward,
+         ESC, 's', NUL,                  A_isearch_forward,
+         ESC, 't', NUL,                  A_info_top_node,
+         ESC, 'v', NUL,                  A_info_scroll_backward_page_only,
+ #if defined (NAMED_FUNCTIONS)
+         ESC, 'x', NUL,                  A_info_execute_command,
+         Meta('x'), NUL,                 A_info_execute_command,
+ #endif /* NAMED_FUNCTIONS */
+         ESC, DEL, NUL,                  A_info_scroll_other_window_backward,
+         CONTROL('x'), CONTROL('b'), NUL,        A_list_visited_nodes,
+         CONTROL('x'), CONTROL('c'), NUL,        A_info_quit,
+         CONTROL('x'), CONTROL('f'), NUL,        A_info_view_file,
+         CONTROL('x'), CONTROL('g'), NUL,        A_info_abort_key,
+         CONTROL('x'), CONTROL('v'), NUL,        A_info_view_file,
+         CONTROL('x'), LFD, NUL,         A_info_select_reference_this_line,
+         CONTROL('x'), RET, NUL,         A_info_select_reference_this_line,
+         CONTROL('x'), '0', NUL,         A_info_delete_window,
+         CONTROL('x'), '1', NUL,         A_info_keep_one_window,
+         CONTROL('x'), '2', NUL,         A_info_split_window,
+         CONTROL('x'), '^', NUL,         A_info_grow_window,
+         CONTROL('x'), 'b', NUL,         A_select_visited_node,
+         CONTROL('x'), 'g', NUL,         A_info_goto_node,
+         CONTROL('x'), 'i', NUL,         A_info_index_search,
+         CONTROL('x'), 'I', NUL,         A_info_goto_invocation_node,
+         CONTROL('x'), 'k', NUL,         A_info_kill_node,
+         CONTROL('x'), 'n', NUL,         A_info_next_node,
+         CONTROL('x'), 'o', NUL,         A_info_next_window,
+         CONTROL('x'), 'O', NUL,         A_info_goto_invocation_node,
+         CONTROL('x'), 'p', NUL,         A_info_prev_node,
+         CONTROL('x'), 'r', NUL,         A_info_xref_item,
+         CONTROL('x'), 't', NUL,         A_info_tile_windows,
+         CONTROL('x'), 'u', NUL,         A_info_up_node,
+         CONTROL('x'), 'w', NUL,         A_info_toggle_wrap,
+         CONTROL('x'), ',', NUL,         A_info_next_index_match,
+ 
+ /*      Arrow key bindings for info keymaps.  It seems that some
+         terminals do not match their termcap entries, so it's best to just
+         define everything with both of the usual prefixes.  */
+ 
+         SK_ESCAPE, SK_PAGE_UP, NUL,             A_info_scroll_backward,
+         SK_ESCAPE, SK_PAGE_DOWN, NUL,           A_info_scroll_forward,
+         '\033', 'O', 'A', NUL,                  A_info_up_line,
+         '\033', '[', 'A', NUL,                  A_info_up_line,
+         '\033', 'O', 'B', NUL,                  A_info_down_line,
+         '\033', '[', 'B', NUL,                  A_info_down_line,
+         SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_info_scroll_forward_page_only,
+         '\033', 'O', 'C', NUL,                  A_info_scroll_forward_page_only,
+         '\033', '[', 'C', NUL,                  A_info_scroll_forward_page_only,
+         SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_info_scroll_backward_page_only,
+         '\033', 'O', 'D', NUL,                  A_info_scroll_backward_page_only,
+         '\033', '[', 'D', NUL,                  A_info_scroll_backward_page_only,
+         SK_ESCAPE, SK_HOME, NUL,                A_info_beginning_of_node,
+         SK_ESCAPE, SK_END, NUL,                 A_info_end_of_node,
+         ESC, SK_ESCAPE, SK_PAGE_DOWN, NUL,      A_info_scroll_other_window,
+         ESC, SK_ESCAPE, SK_PAGE_UP, NUL,        A_info_scroll_other_window_backward,
+         ESC, SK_ESCAPE, SK_DELETE, NUL,         A_info_scroll_other_window_backward,
+         ESC, SK_ESCAPE, SK_UP_ARROW, NUL,       A_info_prev_node,
+         ESC, '\033', 'O', 'A', NUL,             A_info_prev_node,
+         ESC, '\033', '[', 'A', NUL,             A_info_prev_node,
+         ESC, SK_ESCAPE, SK_DOWN_ARROW, NUL,     A_info_next_node,
+         ESC, '\033', 'O', 'B', NUL,             A_info_next_node,
+         ESC, '\033', '[', 'B', NUL,             A_info_next_node,
+         ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_info_xref_item,
+         ESC, '\033', 'O', 'C', NUL,             A_info_xref_item,
+         ESC, '\033', '[', 'C', NUL,             A_info_xref_item,
+         ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_info_beginning_of_node,
+         ESC, '\033', 'O', 'D', NUL,             A_info_beginning_of_node,
+         ESC, '\033', '[', 'D', NUL,             A_info_beginning_of_node,
+         CONTROL('x'), SK_ESCAPE, SK_DELETE, NUL,A_ea_backward_kill_line,
+ 
+         /* We want help to report q, not C-x C-c, etc.  */
+         'q', NUL,                       A_info_quit,
+         'x', NUL,                       A_info_delete_window,
+         SPC, NUL,                       A_info_scroll_forward,
+         DEL, NUL,                       A_info_scroll_backward,
+         '{', NUL,                       A_info_search_previous,
+         '}', NUL,                       A_info_search_next,
+         CONTROL('g'), NUL,              A_info_abort_key,
+         SK_ESCAPE, SK_UP_ARROW, NUL,    A_info_up_line,
+         SK_ESCAPE, SK_DOWN_ARROW, NUL,  A_info_down_line,
+ };
+ 
+ 
+ static unsigned char default_vi_like_ea_keys[] =
+ {
+         0,      /* suppress-default-keybindings flag */
+         ESC, '1', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '2', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '3', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '4', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '5', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '6', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '7', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '8', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '9', NUL,                  A_info_add_digit_to_numeric_arg,
+         ESC, '-', NUL,                  A_info_add_digit_to_numeric_arg,
+         Meta('1'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('2'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('3'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('4'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('5'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('6'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('7'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('8'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('9'), NUL,                 A_info_add_digit_to_numeric_arg,
+         Meta('-'), NUL,                 A_info_add_digit_to_numeric_arg,
+         ESC, CONTROL('g'), NUL,         A_ea_abort,
+         ESC, CONTROL('h'), NUL,         A_ea_backward_kill_word,
+         ESC, CONTROL('v'), NUL,         A_ea_scroll_completions_window,
+         ESC, '0', NUL,                  A_ea_beg_of_line,
+         ESC, '$', NUL,                  A_ea_end_of_line,
+         ESC, 'b', NUL,                  A_ea_backward_word,
+         ESC, 'd', NUL,                  A_ea_kill_word,
+         ESC, 'f', NUL,                  A_ea_forward_word,
+         ESC, 'h', NUL,                  A_ea_forward,
+         ESC, 'l', NUL,                  A_ea_backward,
+         ESC, 'w', NUL,                  A_ea_forward_word,
+         ESC, 'x', NUL,                  A_ea_delete,
+         ESC, 'X', NUL,                  A_ea_kill_word,
+         ESC, 'y', NUL,                  A_ea_yank_pop,
+         ESC, '?', NUL,                  A_ea_possible_completions,
+         ESC, TAB, NUL,                  A_ea_tab_insert,
+         ESC, DEL, NUL,                  A_ea_kill_word,
+         Meta(CONTROL('g')), NUL,        A_ea_abort,
+         Meta(CONTROL('h')), NUL,        A_ea_backward_kill_word,
+         Meta(CONTROL('v')), NUL,        A_ea_scroll_completions_window,
+         Meta('0'), NUL,                 A_ea_beg_of_line,
+         Meta('$'), NUL,                 A_ea_end_of_line,
+         Meta('b'), NUL,                 A_ea_backward_word,
+         Meta('d'), NUL,                 A_ea_kill_word,
+         Meta('f'), NUL,                 A_ea_forward_word,
+         Meta('h'), NUL,                 A_ea_forward,
+         Meta('l'), NUL,                 A_ea_backward,
+         Meta('w'), NUL,                 A_ea_forward_word,
+         Meta('x'), NUL,                 A_ea_delete,
+         Meta('X'), NUL,                 A_ea_kill_word,
+         Meta('y'), NUL,                 A_ea_yank_pop,
+         Meta('?'), NUL,                 A_ea_possible_completions,
+         Meta(TAB), NUL,                 A_ea_tab_insert,
+         Meta(DEL), NUL,                 A_ea_kill_word,
+         CONTROL('a'), NUL,              A_ea_beg_of_line,
+         CONTROL('b'), NUL,              A_ea_backward,
+         CONTROL('d'), NUL,              A_ea_delete,
+         CONTROL('e'), NUL,              A_ea_end_of_line,
+         CONTROL('f'), NUL,              A_ea_forward,
+         CONTROL('g'), NUL,              A_ea_abort,
+         CONTROL('h'), NUL,              A_ea_rubout,
+ /*      CONTROL('k') */
+         SK_ESCAPE, SK_LITERAL, NUL,     A_ea_kill_line,
+         CONTROL('l'), NUL,              A_info_redraw_display,
+         CONTROL('q'), NUL,              A_ea_quoted_insert,
+         CONTROL('t'), NUL,              A_ea_transpose_chars,
+         CONTROL('u'), NUL,              A_ea_abort,
+         CONTROL('v'), NUL,              A_ea_quoted_insert,
+         CONTROL('y'), NUL,              A_ea_yank,
+         LFD, NUL,                       A_ea_newline,
+         RET, NUL,                       A_ea_newline,
+         SPC, NUL,                       A_ea_complete,
+         TAB, NUL,                       A_ea_complete,
+         '?', NUL,                       A_ea_possible_completions,
+ #ifdef __MSDOS__
+         /* PC users will lynch me if I don't give them their usual DEL
+            effect...  */
+         DEL, NUL,                       A_ea_delete,
+ #else
+         DEL, NUL,                       A_ea_rubout,
+ #endif
+         CONTROL('x'), 'o', NUL,         A_info_next_window,
+         CONTROL('x'), DEL, NUL,         A_ea_backward_kill_line,
+ 
+   /* Arrow key bindings for echo area keymaps.  It seems that some
+      terminals do not match their termcap entries, so it's best to just
+      define everything with both of the usual prefixes.  */
+ 
+         SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_ea_forward,
+         '\033', 'O', 'C', NUL,                  A_ea_forward,
+         '\033', '[', 'C', NUL,                  A_ea_forward,
+         SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_ea_backward,
+         '\033', 'O', 'D', NUL,                  A_ea_backward,
+         '\033', '[', 'D', NUL,                  A_ea_backward,
+         SK_ESCAPE, SK_HOME, NUL,                A_ea_beg_of_line,
+         SK_ESCAPE, SK_END, NUL,                 A_ea_end_of_line,
+ #ifdef __MSDOS__
+         SK_ESCAPE, SK_DELETE, NUL,              A_ea_delete,
+ #else
+         SK_DELETE, SK_DELETE, NUL,              A_ea_rubout,
+ #endif
+         ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_ea_forward_word,
+         ESC, '\033', 'O', 'C', NUL,             A_ea_forward_word,
+         ESC, '\033', '[', 'C', NUL,             A_ea_forward_word,
+         ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_ea_backward_word,
+         ESC, '\033', 'O', 'D', NUL,             A_ea_backward_word,
+         ESC, '\033', '[', 'D', NUL,             A_ea_backward_word,
+         ESC, SK_ESCAPE, SK_DELETE, NUL,         A_ea_kill_word,
+         CONTROL('x'), SK_ESCAPE, SK_DELETE, NUL,A_ea_backward_kill_line,
+ };
+ 
+ 
+ static unsigned char *user_info_keys;
+ static unsigned int user_info_keys_len;
+ static unsigned char *user_ea_keys;
+ static unsigned int user_ea_keys_len;
+ static unsigned char *user_vars;
+ static unsigned int user_vars_len;
+ 
+ /*
+  * Return the size of a file, or 0 if the size can't be determined.
+  */
+ static unsigned long
+ filesize (int f)
+ {
+         long pos = lseek(f, 0L, SEEK_CUR);
+         long sz = -1L;
+         if (pos != -1L)
+         {
+                 sz = lseek(f, 0L, SEEK_END);
+                 lseek(f, pos, SEEK_SET);
+         }
+         return sz == -1L ? 0L : sz;
+ }
+ 
+ /* Get an integer from a infokey file.
+    Integers are stored as two bytes, low order first, in radix INFOKEY_RADIX.
+  */
+ static int
+ getint (unsigned char **sp)
+ {
+         int n;
+ 
+         if ( !((*sp)[0] < INFOKEY_RADIX && (*sp)[1] < INFOKEY_RADIX) )
+                 return -1;
+         n = (*sp)[0] + (*sp)[1] * INFOKEY_RADIX;
+         *sp += 2;
+         return n;
+ }
+ 
+ 
+ /* Fetch the contents of the standard infokey file "$HOME/.info".  Return
+    true if ok, false if not.  */
+ static int
+ fetch_user_maps (void)
+ {
+         char *filename = NULL;
+         char *homedir;
+         int f;
+         unsigned char *buf;
+         unsigned long len;
+         long nread;
+         unsigned char *p;
+         int n;
+ 
+         /* Find and open file. */
+         if ((filename = getenv("INFOKEY")) != NULL)
+                 filename = xstrdup(filename);
+         else if ((homedir = getenv("HOME")) != NULL)
+         {
+                 filename = xmalloc(strlen(homedir) + 2 + strlen(INFOKEY_FILE));
+                 strcpy(filename, homedir);
+                 strcat(filename, "/");
+                 strcat(filename, INFOKEY_FILE);
+         }
+ #ifdef __MSDOS__
+         /* Poor baby, she doesn't have a HOME...  */
+         else
+                 filename = xstrdup(INFOKEY_FILE); /* try current directory */
+ #endif
+         if (filename == NULL || (f = open(filename, O_RDONLY)) == (-1))
+         {
+                 if (filename && errno != ENOENT)
+                 {
+                         info_error(filesys_error_string(filename, errno),
+                             NULL, NULL);
+                         free(filename);
+                 }
+                 return 0;
+         }
+         SET_BINARY (f);
+ 
+         /* Ensure that the file is a reasonable size. */
+         len = filesize(f);
+         if (len < INFOKEY_NMAGIC + 2 || len > 100 * 1024)
+         {
+                 /* Bad file (a valid file must have at least 9 chars, and
+                    more than 100 KB is a problem). */
+                 if (len < INFOKEY_NMAGIC + 2)
+                         info_error(_("Ignoring invalid infokey file `%s' - too small"),
+                                    filename, NULL);
+                 else
+                         info_error(_("Ignoring invalid infokey file `%s' - too big"),
+                                    filename, NULL);
+                 close(f);
+                 free(filename);
+                 return 0;
+         }
+ 
+         /* Read the file into a buffer. */
+         buf = xmalloc((int)len);
+         nread = read(f, buf, (unsigned int) len);
+         close(f);
+         if ((unsigned int) nread != len)
+         {
+                 info_error(_("Error reading infokey file `%s' - short read"),
+                     filename, NULL);
+                 free(buf);
+                 free(filename);
+                 return 0;
+         }
+ 
+         /* Check the header, trailer, and version of the file to increase
+            our confidence that the contents are valid.  */
+         if (    buf[0] != INFOKEY_MAGIC_S0
+                 || buf[1] != INFOKEY_MAGIC_S1
+                 || buf[2] != INFOKEY_MAGIC_S2
+                 || buf[3] != INFOKEY_MAGIC_S3
+                 || buf[len - 4] != INFOKEY_MAGIC_E0
+                 || buf[len - 3] != INFOKEY_MAGIC_E1
+                 || buf[len - 2] != INFOKEY_MAGIC_E2
+                 || buf[len - 1] != INFOKEY_MAGIC_E3
+         )
+         {
+                 info_error(_("Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"),
+                     filename, NULL);
+                 free(filename);
+                 return 0;
+         }
+         if (len < INFOKEY_NMAGIC + strlen(VERSION) + 1
+             || strcmp(VERSION, (char *) (buf + 4)) != 0)
+         {
+                 info_error
+                   (_("Your infokey file `%s' is out of date -- run infokey to update it"),
+                     filename, NULL);
+                 free(filename);
+                 return 0;
+         }
+ 
+         /* Extract the pieces.  */
+         for (p = buf + 4 + strlen(VERSION) + 1;
+              (unsigned int) (p - buf) < len - 4;
+              p += n)
+         {
+                 int s = *p++;
+ 
+                 n = getint(&p);
+                 if (n < 0 || (unsigned int) n > len - 4 - (p - buf))
+                 {
+                         info_error(_("Invalid infokey file `%s' (bad section length) -- run infokey to update it"),
+                             filename, NULL);
+                         free(filename);
+                         return 0;
+                 }
+ 
+                 switch (s)
+                 {
+                 case INFOKEY_SECTION_INFO:
+                         user_info_keys = p;
+                         user_info_keys_len = n;
+                         break;
+                 case INFOKEY_SECTION_EA:
+                         user_ea_keys = p;
+                         user_ea_keys_len = n;
+                         break;
+                 case INFOKEY_SECTION_VAR:
+                         user_vars = p;
+                         user_vars_len = n;
+                         break;
+                 default:
+                         info_error(_("Invalid infokey file `%s' (bad section code) -- run infokey to update it"),
+                             filename, NULL);
+                         free(filename);
+                         return 0;
+                 }
+         }
+ 
+         free(filename);
+         return 1;
+ }
+ 
+ /* Decode special key sequences from the infokey file.  Return zero
+    if the key sequence includes special keys which the terminal
+    doesn't define.
+  */
+ static int
+ decode_keys(unsigned char *src, unsigned int slen,
+     unsigned char *dst, unsigned int dlen)
+ {
+         unsigned char *s = src;
+         unsigned char *d = dst;
+ 
+ #define To_dst(c) do { \
+   if ((unsigned int) (d - dst) < dlen) *d++ = (c); \
+ } while (0)
+ 
+         while ((unsigned int) (s - src) < slen)
+         {
+                 unsigned char c = ISMETA(*s) ? UNMETA(*s) : *s;
+ 
+                 if (c == SK_ESCAPE)
+                 {
+                         char *t;
+                         static char lit[] = { SK_ESCAPE, NUL };
+ 
+                         switch ((unsigned int) (s + 1 - src) < slen ? s[1] : '\0')
+                         {
+                         case SK_RIGHT_ARROW:    t = term_kr; break;
+                         case SK_LEFT_ARROW:     t = term_kl; break;
+                         case SK_UP_ARROW:       t = term_ku; break;
+                         case SK_DOWN_ARROW:     t = term_kd; break;
+                         case SK_PAGE_UP:        t = term_kP; break;
+                         case SK_PAGE_DOWN:      t = term_kN; break;
+                         case SK_HOME:           t = term_kh; break;
+                         case SK_END:            t = term_ke; break;
+                         case SK_DELETE:         t = term_kx; break;
+                         case SK_INSERT:         t = term_ki; break;
+                         case SK_LITERAL:
+                         default:                t = lit; break;
+                         }
+                         if (t == NULL)
+                                 return 0;
+                         while (*t)
+                                 To_dst(ISMETA(*s) ? Meta(*t++) : *t++);
+                         s += 2;
+                 }
+                 else
+                 {
+                         if (ISMETA(*s))
+                                 To_dst(Meta(*s++));
+                         else
+                                 To_dst(*s++);
+                 }
+         }
+ 
+         To_dst('\0');
+ 
+         return 1;
+ 
+ #undef To_dst
+ 
+ }
+ 
+ /* Convert an infokey file section to keymap bindings.  Return false if
+    the default bindings are to be suppressed.  */
+ static int
+ section_to_keymaps(Keymap map, unsigned char *table, unsigned int len)
+ {
+         int stop;
+         unsigned char *p;
+         unsigned char *seq = NULL;
+         unsigned int seqlen = 0;
+         enum { getseq, gotseq, getaction } state = getseq;
+ 
+         stop = len > 0 ? table[0] : 0;
+ 
+         for (p = table + 1; (unsigned int) (p - table) < len; p++)
+         {
+                 switch (state)
+                 {
+                 case getseq:
+                         if (*p)
+                         {
+                                 seq = p;
+                                 state = gotseq;
+                         }
+                         break;
+ 
+                 case gotseq:
+                         if (!*p)
+                         {
+                                 seqlen = p - seq;
+                                 state = getaction;
+                         }
+                         break;
+ 
+                 case getaction:
+                         {
+                                 unsigned int action = *p;
+                                 unsigned char keyseq[256];
+                                 KEYMAP_ENTRY ke;
+ 
+                                 state = getseq;
+                                 /* If decode_keys returns zero, it
+                                    means that seq includes keys which
+                                    the terminal doesn't support, like
+                                    PageDown.  In that case, don't bind
+                                    the key sequence.  */
+                                 if (decode_keys(seq, seqlen, keyseq,
+                                                 sizeof keyseq))
+                                 {
+                                         keyseq[sizeof keyseq - 1] = '\0';
+                                         ke.type = ISFUNC;
+                                         ke.function =
+                                           action < A_NCOMMANDS
+                                           ? &function_doc_array[action]
+                                           : NULL;
+                                         keymap_bind_keyseq(map,
+                                             (const char *) keyseq, &ke);
+                                 }
+                         }
+                         break;
+                 }
+         }
+         if (state != getseq)
+                 info_error(_("Bad data in infokey file -- some key bindings ignored"),
+                     NULL, NULL);
+         return !stop;
+ }
+ 
+ /* Convert an infokey file section to variable settings.
+  */
+ static void
+ section_to_vars(unsigned char *table, unsigned int len)
+ {
+         enum { getvar, gotvar, getval, gotval } state = getvar;
+         unsigned char *var = NULL;
+         unsigned char *val = NULL;
+         unsigned char *p;
+ 
+         for (p = table; (unsigned int) (p - table) < len; p++)
+           {
+             switch (state)
+               {
+               case getvar:
+                 if (*p)
+                   {
+                     var = p;
+                     state = gotvar;
+                   }
+                 break;
+ 
+               case gotvar:
+                 if (!*p)
+                   state = getval;
+                 break;
+ 
+               case getval:
+                 if (*p)
+                   {
+                     val = p;
+                     state = gotval;
+                   }
+                 break;
+ 
+               case gotval:
+                 if (!*p)
+                   {
+                     set_variable_to_value((char *) var, (char *) val);
+                     state = getvar;
+                   }
+                 break;
+               }
+           }
+       if (state != getvar)
+         info_error(_("Bad data in infokey file -- some var settings ignored"),
+             NULL, NULL);
+ }
+ 
+ void
+ initialize_info_keymaps (void)
+ {
+   int i;
+   int suppress_info_default_bindings = 0;
+   int suppress_ea_default_bindings = 0;
+ 
+   if (!info_keymap)
+     {
+       info_keymap = keymap_make_keymap ();
+       echo_area_keymap = keymap_make_keymap ();
+     }
+ 
+   /* Bind the echo area insert routines. */
+   for (i = 0; i < 256; i++)
+     if (isprint (i))
+       echo_area_keymap[i].function = InfoCmd(ea_insert);
+ 
+   /* Get user-defined keys and variables.  */
+   if (fetch_user_maps())
+     {
+       if (user_info_keys_len && user_info_keys[0])
+         suppress_info_default_bindings = 1;
+       if (user_ea_keys_len && user_ea_keys[0])
+         suppress_ea_default_bindings = 1;
+     }
+ 
+   /* Apply the default bindings, unless the user says to suppress
+      them.  */
+   if (vi_keys_p)
+     {
+       if (!suppress_info_default_bindings)
+         section_to_keymaps(info_keymap, default_vi_like_info_keys,
+                            sizeof(default_vi_like_info_keys));
+       if (!suppress_ea_default_bindings)
+           section_to_keymaps(echo_area_keymap, default_vi_like_ea_keys,
+                              sizeof(default_vi_like_ea_keys));
+     }
+   else
+     {
+       if (!suppress_info_default_bindings)
+         section_to_keymaps(info_keymap, default_emacs_like_info_keys,
+                            sizeof(default_emacs_like_info_keys));
+       if (!suppress_ea_default_bindings)
+           section_to_keymaps(echo_area_keymap, default_emacs_like_ea_keys,
+                              sizeof(default_emacs_like_ea_keys));
+     }
+ 
+   /* If the user specified custom bindings, apply them on top of the
+      default ones.  */
+   if (user_info_keys_len)
+     section_to_keymaps(info_keymap, user_info_keys, user_info_keys_len);
+ 
+   if (user_ea_keys_len)
+     section_to_keymaps(echo_area_keymap, user_ea_keys, user_ea_keys_len);
+ 
+   if (user_vars_len)
+     section_to_vars(user_vars, user_vars_len);
+ }
+ 
+ /* vim: set sw=2 cino={1s>2sn-s^-se-s: */
diff -Nrc2 texinfo-4.12/info/infomap.h texinfo-4.13/info/infomap.h
*** texinfo-4.12/info/infomap.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/infomap.h	Sun Jul  1 14:20:30 2007
***************
*** 0 ****
--- 1,81 ----
+ /* infomap.h -- description of a keymap in Info and related functions.
+    $Id: infomap.h,v 1.6 2007/07/01 21:20:30 karl Exp $
+ 
+    Copyright (C) 1993, 2001, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFOMAP_H
+ #define INFOMAP_H
+ 
+ #include "info.h"
+ 
+ #define ESC '\033'
+ #define DEL '\177'
+ #define TAB '\011'      
+ #define RET '\r'
+ #define LFD '\n'
+ #define SPC ' '
+ 
+ #define meta_character_threshold (DEL + 1)
+ #define control_character_threshold (SPC)
+ 
+ #define meta_character_bit 0x80
+ #define control_character_bit 0x40
+ 
+ #define Meta_p(c) (((c) > meta_character_threshold))
+ #define Control_p(c) ((c) < control_character_threshold)
+ 
+ #define Meta(c) ((c) | (meta_character_bit))
+ #define UnMeta(c) ((c) & (~meta_character_bit))
+ #define Control(c) ((toupper (c)) & (~control_character_bit))
+ #define UnControl(c) (tolower ((c) | control_character_bit))
+ 
+ /* A keymap contains one entry for each key in the ASCII set.
+    Each entry consists of a type and a pointer.
+    FUNCTION is the address of a function to run, or the
+    address of a keymap to indirect through.
+    TYPE says which kind of thing FUNCTION is. */
+ typedef struct keymap_entry
+ {
+   char type;
+   InfoCommand *function;
+ } KEYMAP_ENTRY;
+ 
+ typedef KEYMAP_ENTRY *Keymap;
+ 
+ /* The values that TYPE can have in a keymap entry. */
+ #define ISFUNC 0
+ #define ISKMAP 1
+ 
+ extern Keymap info_keymap;
+ extern Keymap echo_area_keymap;
+ 
+ /* Return a new keymap which has all the uppercase letters mapped to run
+    the function info_do_lowercase_version (). */
+ extern Keymap keymap_make_keymap (void);
+ 
+ /* Return a new keymap which is a copy of MAP. */
+ extern Keymap keymap_copy_keymap (Keymap map, Keymap rootmap,
+     Keymap newroot);
+ 
+ /* Free MAP and it's descendents. */
+ extern void keymap_discard_keymap (Keymap map, Keymap rootmap);
+ 
+ /* Initialize the info keymaps. */
+ extern void initialize_info_keymaps (void);
+ 
+ #endif /* not INFOMAP_H */
diff -Nrc2 texinfo-4.12/info/key.h texinfo-4.13/info/key.h
*** texinfo-4.12/info/key.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/key.h	Sun Jul  1 14:20:30 2007
***************
*** 0 ****
--- 1,34 ----
+ /* key.h -- Structure associating function names with numeric codes. */
+ 
+ /* This file is part of GNU Info, a program for reading online documentation
+    stored in Info format.
+ 
+    Copyright (C) 1993, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Andrew Bettison <andrewb@zip.com.au> */
+ 
+ #if !defined (KEY_H)
+ #define KEY_H
+ 
+ typedef struct {
+ 	char *name;
+ 	unsigned char	code;
+ }
+ 	FUNCTION_KEY;
+ 
+ extern FUNCTION_KEY function_key_array[];
+ 
+ #endif /* !KEY_H */
diff -Nrc2 texinfo-4.12/info/m-x.c texinfo-4.13/info/m-x.c
*** texinfo-4.12/info/m-x.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/m-x.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,213 ----
+ /* m-x.c -- Meta-x minibuffer reader.
+    $Id: m-x.c,v 1.8 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2001, 2002, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "funs.h"
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                     Reading Named Commands                       */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Read the name of an Info function in the echo area and return the
+    name.  A return value of NULL indicates that no function name could
+    be read. */
+ char *
+ read_function_name (const char *prompt, WINDOW *window)
+ {
+   register int i;
+   char *line;
+   REFERENCE **array = NULL;
+   int array_index = 0, array_slots = 0;
+ 
+   /* Make an array of REFERENCE which actually contains the names of
+      the functions available in Info. */
+   for (i = 0; function_doc_array[i].func; i++)
+     {
+       REFERENCE *entry;
+ 
+       entry = xmalloc (sizeof (REFERENCE));
+       entry->label = xstrdup (function_doc_array[i].func_name);
+       entry->nodename = NULL;
+       entry->filename = NULL;
+ 
+       add_pointer_to_array
+         (entry, array_index, array, array_slots, 200, REFERENCE *);
+     }
+ 
+   line = info_read_completing_in_echo_area (window, prompt, array);
+ 
+   info_free_references (array);
+ 
+   if (!echo_area_is_active)
+     window_clear_echo_area ();
+ 
+   return line;
+ }
+ 
+ DECLARE_INFO_COMMAND (describe_command,
+    _("Read the name of an Info command and describe it"))
+ {
+   char *line;
+ 
+   line = read_function_name (_("Describe command: "), window);
+ 
+   if (!line)
+     {
+       info_abort_key (active_window, count, key);
+       return;
+     }
+ 
+   /* Describe the function named in "LINE". */
+   if (*line)
+     {
+       InfoCommand *cmd = named_function (line);
+ 
+       if (!cmd)
+         return;
+ 
+       window_message_in_echo_area ("%s: %s.",
+                                    line, function_documentation (cmd));
+     }
+   free (line);
+ }
+ 
+ DECLARE_INFO_COMMAND (info_execute_command,
+    _("Read a command name in the echo area and execute it"))
+ {
+   char *line;
+   char *keys;
+   char *prompt;
+ 
+   prompt = xmalloc (20);
+ 
+   keys = where_is (info_keymap, InfoCmd(info_execute_command));
+   /* If the where_is () function thinks that this command doesn't exist,
+      there's something very wrong!  */
+   if (!keys)
+     abort();
+ 
+   if (info_explicit_arg || count != 1)
+     sprintf (prompt, "%d %s ", count, keys);
+   else
+     sprintf (prompt, "%s ", keys);
+ 
+   /* Ask the completer to read a reference for us. */
+   line = read_function_name (prompt, window);
+ 
+   /* User aborted? */
+   if (!line)
+     {
+       info_abort_key (active_window, count, key);
+       return;
+     }
+ 
+   /* User accepted "default"?  (There is none.) */
+   if (!*line)
+     {
+       free (line);
+       return;
+     }
+ 
+   /* User wants to execute a named command.  Do it. */
+   {
+     InfoCommand *command;
+ 
+     if ((active_window != the_echo_area) &&
+         (strncmp (line, "echo-area-", 10) == 0))
+       {
+         free (line);
+         info_error (_("Cannot execute an `echo-area' command here."),
+             NULL, NULL);
+         return;
+       }
+ 
+     command = named_function (line);
+     free (line);
+ 
+     if (!command)
+       return;
+ 
+     if (InfoFunction(command))
+       (*InfoFunction(command)) (active_window, count, 0);
+     else
+       info_error (_("Undefined command: %s"), line, NULL);
+   }
+ }
+ 
+ /* Okay, now that we have M-x, let the user set the screen height. */
+ DECLARE_INFO_COMMAND (set_screen_height,
+   _("Set the height of the displayed window"))
+ {
+   int new_height, old_height = screenheight;
+ 
+   if (info_explicit_arg || count != 1)
+     new_height = count;
+   else
+     {
+       char prompt[80];
+       char *line;
+ 
+       new_height = screenheight;
+ 
+       sprintf (prompt, _("Set screen height to (%d): "), new_height);
+ 
+       line = info_read_in_echo_area (window, prompt);
+ 
+       /* If the user aborted, do that now. */
+       if (!line)
+         {
+           info_abort_key (active_window, count, 0);
+           return;
+         }
+ 
+       /* Find out what the new height is supposed to be. */
+       if (*line)
+         new_height = atoi (line);
+ 
+       /* Clear the echo area if it isn't active. */
+       if (!echo_area_is_active)
+         window_clear_echo_area ();
+ 
+       free (line);
+     }
+ 
+   terminal_clear_screen ();
+   display_clear_display (the_display);
+   screenheight = new_height;
+ #ifdef SET_SCREEN_SIZE_HELPER
+   SET_SCREEN_SIZE_HELPER;
+ #endif
+   if (screenheight == old_height)
+     {
+       /* Display dimensions didn't actually change, so
+ 	 window_new_screen_size won't do anything, but we've
+ 	 already cleared the display above.  Undo the damage.  */
+       window_mark_chain (windows, W_UpdateWindow);
+       display_update_display (windows);
+     }
+   else
+     {
+       display_initialize_display (screenwidth, screenheight);
+       window_new_screen_size (screenwidth, screenheight);
+     }
+ }
diff -Nrc2 texinfo-4.12/info/makedoc.c texinfo-4.13/info/makedoc.c
*** texinfo-4.12/info/makedoc.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/makedoc.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,584 ----
+ /* makedoc.c -- make doc.c and funs.h from input files.
+    $Id: makedoc.c,v 1.10 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2007,
+    2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ /* This program grovels the contents of the source files passed as arguments
+    and writes out a file of function pointers and documentation strings, and
+    a header file which describes the contents.  This only does the functions
+    declared with DECLARE_INFO_COMMAND. */
+ 
+ #include "info.h"
+ #include "infokey.h"
+ 
+ char *program_name = "makedoc";
+ 
+ static void fatal_file_error (char *filename);
+ 
+ /* Name of the header file which receives the declarations of functions. */
+ static char *funs_filename = "funs.h";
+ 
+ /* Name of the documentation to function pointer file. */
+ static char *doc_filename = "doc.c";
+ static char *key_filename = "key.c";
+ 
+ static char *doc_header[] = {
+   "/* doc.c -- Generated structure containing function names and doc strings.",
+   "",
+   "   This file was automatically made from various source files with the",
+   "   command `%s'.  DO NOT EDIT THIS FILE, only `%s.c'.",
+   NULL
+ };
+ 
+ static char *doc_header_1[] = {
+   "   An entry in the array FUNCTION_DOC_ARRAY is made for each command",
+   "   found in the above files; each entry consists of a function pointer,",
+ #if defined (NAMED_FUNCTIONS)
+   "   a string which is the user-visible name of the function,",
+ #endif /* NAMED_FUNCTIONS */
+   "   and a string which documents its purpose. */",
+   "",
+   "#include \"info.h\"",
+   "#include \"funs.h\"",
+   "",
+   "FUNCTION_DOC function_doc_array[] = {",
+   "",
+   NULL
+ };
+ 
+ static char *key_header[] = {
+   "/* key.c -- Generated array containing function names.",
+   "",
+   "   This file was automatically made from various source files with the",
+   "   command \"%s\".  DO NOT EDIT THIS FILE, only \"%s.c\".",
+   "",
+   NULL
+ };
+ 
+ static char *key_header_1[] = {
+   "   An entry in the array FUNCTION_KEY_ARRAY is made for each command",
+   "   found in the above files; each entry consists of",
+   "   a string which is the user-visible name of the function.  */",
+   "",
+   "#include \"key.h\"",
+   "#include \"funs.h\"",
+   "",
+   "FUNCTION_KEY function_key_array[] = {",
+   "",
+   NULL
+ };
+ 
+ /* How to remember the locations of the functions found so that Emacs
+    can use the information in a tag table. */
+ typedef struct {
+   char *name;                   /* Name of the tag. */
+   int line;                     /* Line number at which it appears. */
+   long char_offset;             /* Character offset at which it appears. */
+ } EMACS_TAG;
+ 
+ typedef struct {
+   char *filename;               /* Name of the file containing entries. */
+   long entrylen;                /* Total number of characters in tag block. */
+   EMACS_TAG **entries;          /* Entries found in FILENAME. */
+   int entries_index;
+   int entries_slots;
+ } EMACS_TAG_BLOCK;
+ 
+ EMACS_TAG_BLOCK **emacs_tags = NULL;
+ int emacs_tags_index = 0;
+ int emacs_tags_slots = 0;
+ 
+ #define DECLARATION_STRING "\nDECLARE_INFO_COMMAND"
+ 
+ static void process_one_file (char *filename, FILE *doc_stream,
+     FILE *key_stream, FILE *funs_stream);
+ static void maybe_dump_tags (FILE *stream);
+ static FILE *must_fopen (char *filename, char *mode);
+ static void init_func_key (unsigned int val);
+ static unsigned int next_func_key (void);
+ 
+ int
+ main (int argc, char **argv)
+ {
+   register int i;
+   int tags_only = 0;
+   FILE *funs_stream, *doc_stream;
+   FILE *key_stream;
+ 
+ #if STRIP_DOT_EXE
+   {
+     char *dot = strrchr (argv[0], '.');
+ 
+     if (dot && FILENAME_CMP (dot, ".exe") == 0)
+       *dot = 0;
+   }
+ #endif
+ 
+   for (i = 1; i < argc; i++)
+     if (strcmp (argv[i], "-tags") == 0)
+       {
+         tags_only++;
+         break;
+       }
+ 
+   if (tags_only)
+     {
+       funs_filename = NULL_DEVICE;
+       doc_filename = NULL_DEVICE;
+       key_filename = NULL_DEVICE;
+     }
+ 
+   /* The order of these calls depends exactly on the order in the
+      Makefile.{in,am}, or they might fail on filesystems with
+      high-precision times; see also the fclose calls below.  */
+   funs_stream = must_fopen (funs_filename, "w");
+   key_stream = must_fopen (key_filename, "w");
+   doc_stream = must_fopen (doc_filename, "w");
+ 
+   fprintf (funs_stream,
+       "/* %s -- Generated declarations for Info commands. */\n\n\
+ #include \"info.h\"\n",
+       funs_filename);
+ 
+   for (i = 0; doc_header[i]; i++)
+     {
+       fprintf (doc_stream, doc_header[i], argv[0], argv[0]);
+       fprintf (doc_stream, "\n");
+     }
+ 
+   fprintf (doc_stream,
+            _("   Source files groveled to make this file include:\n\n"));
+ 
+   for (i = 0; key_header[i]; i++)
+     {
+       fprintf (key_stream, key_header[i], argv[0], argv[0]);
+       fprintf (key_stream, "\n");
+     }
+   fprintf (key_stream,
+            _("   Source files groveled to make this file include:\n\n"));
+ 
+   for (i = 1; i < argc; i++)
+     {
+       fprintf (doc_stream, "\t%s\n", argv[i]);
+       fprintf (key_stream, "\t%s\n", argv[i]);
+     }
+ 
+   fprintf (doc_stream, "\n");
+   for (i = 0; doc_header_1[i]; i++)
+     fprintf (doc_stream, "%s\n", doc_header_1[i]);
+ 
+   fprintf (key_stream, "\n");
+   for (i = 0; key_header_1[i]; i++)
+     fprintf (key_stream, "%s\n", key_header_1[i]);
+ 
+   init_func_key(0);
+ 
+   for (i = 1; i < argc; i++)
+     {
+       char *curfile;
+       curfile = argv[i];
+ 
+       if (*curfile == '-')
+         continue;
+ 
+       fprintf (doc_stream, "/* Commands found in \"%s\". */\n", curfile);
+       fprintf (key_stream, "/* Commands found in \"%s\". */\n", curfile);
+       fprintf (funs_stream, "\n/* Functions declared in \"%s\". */\n",
+                curfile);
+ 
+       process_one_file (curfile, doc_stream, key_stream, funs_stream);
+     }
+ 
+ #if defined (INFOKEY)
+ 
+ #if defined (NAMED_FUNCTIONS)
+   fprintf (doc_stream,
+            "   { NULL, NULL, NULL, NULL }\n};\n");
+ #else /* !NAMED_FUNCTIONS */
+   fprintf (doc_stream, "   { NULL, NULL, NULL }\n};\n");
+ #endif /* !NAMED_FUNCTIONS */
+ 
+ #else /* !INFOKEY */
+ 
+ #if defined (NAMED_FUNCTIONS)
+   fprintf (doc_stream,
+            "   { NULL, NULL, NULL }\n};\n");
+ #else /* !NAMED_FUNCTIONS */
+   fprintf (doc_stream, "   { NULL, NULL }\n};\n");
+ #endif /* !NAMED_FUNCTIONS */
+ 
+ #endif /* !INFOKEY */
+ 
+   fprintf (key_stream, "   { NULL, 0 }\n};\n");
+   fprintf (funs_stream, "\n#define A_NCOMMANDS %u\n", next_func_key());
+ 
+   /* The order of these calls also depends exactly on the order in the
+    * Makefile.{in,am}; see the must_fopen calls above.  */
+   fclose (funs_stream);
+   fclose (key_stream);
+   fclose (doc_stream);
+ 
+   if (tags_only)
+     maybe_dump_tags (stdout);
+   return 0;
+ }
+ 
+ /* Dumping out the contents of an Emacs tags table. */
+ static void
+ maybe_dump_tags (FILE *stream)
+ {
+   register int i;
+ 
+   /* Emacs needs its TAGS file to be in Unix text format (i.e., only
+      newline at end of every line, no CR), so when we generate a
+      TAGS table, we must switch the output stream to binary mode.
+      (If the table is written to a terminal, this is obviously not needed.) */
+   SET_BINARY (fileno (stream));
+ 
+   /* Print out the information for each block. */
+   for (i = 0; i < emacs_tags_index; i++)
+     {
+       register int j;
+       register EMACS_TAG_BLOCK *block;
+       register EMACS_TAG *etag;
+       long block_len;
+ 
+       block_len = 0;
+       block = emacs_tags[i];
+ 
+       /* Calculate the length of the dumped block first. */
+       for (j = 0; j < block->entries_index; j++)
+         {
+           char digits[30];
+           etag = block->entries[j];
+           block_len += 3 + strlen (etag->name);
+           sprintf (digits, "%d,%ld", etag->line, etag->char_offset);
+           block_len += strlen (digits);
+         }
+ 
+       /* Print out the defining line. */
+       fprintf (stream, "\f\n%s,%ld\n", block->filename, block_len);
+ 
+       /* Print out the individual tags. */
+       for (j = 0; j < block->entries_index; j++)
+         {
+           etag = block->entries[j];
+ 
+           fprintf (stream, "%s,\177%d,%ld\n",
+                    etag->name, etag->line, etag->char_offset);
+         }
+     }
+ }
+ 
+ /* Keeping track of names, line numbers and character offsets of functions
+    found in source files. */
+ static EMACS_TAG_BLOCK *
+ make_emacs_tag_block (char *filename)
+ {
+   EMACS_TAG_BLOCK *block;
+ 
+   block = xmalloc (sizeof (EMACS_TAG_BLOCK));
+   block->filename = xstrdup (filename);
+   block->entrylen = 0;
+   block->entries = NULL;
+   block->entries_index = 0;
+   block->entries_slots = 0;
+   return block;
+ }
+ 
+ static void
+ add_tag_to_block (EMACS_TAG_BLOCK *block,
+     char *name, int line, long int char_offset)
+ {
+   EMACS_TAG *tag;
+ 
+   tag = xmalloc (sizeof (EMACS_TAG));
+   tag->name = name;
+   tag->line = line;
+   tag->char_offset = char_offset;
+   add_pointer_to_array (tag, block->entries_index, block->entries,
+                         block->entries_slots, 50, EMACS_TAG *);
+ }
+ 
+ /* Read the file represented by FILENAME into core, and search it for Info
+    function declarations.  Output the declarations in various forms to the
+    DOC_STREAM, KEY_STREAM, and FUNS_STREAM. */
+ static void
+ process_one_file (char *filename, FILE *doc_stream,
+     FILE *key_stream, FILE *funs_stream)
+ {
+   int descriptor, decl_len;
+   char *buffer, *decl_str;
+   struct stat finfo;
+   long offset;
+   long file_size;
+   EMACS_TAG_BLOCK *block;
+ 
+   if (stat (filename, &finfo) == -1)
+     fatal_file_error (filename);
+ 
+   descriptor = open (filename, O_RDONLY, 0666);
+ 
+   if (descriptor == -1)
+     fatal_file_error (filename);
+ 
+   file_size = (long) finfo.st_size;
+   buffer = xmalloc (1 + file_size);
+   /* On some systems, the buffer will actually contain
+      less characters than the full file's size, because
+      the CR characters are removed from line endings.  */
+   file_size = read (descriptor, buffer, file_size);
+   close (descriptor);
+ 
+   offset = 0;
+   decl_str = DECLARATION_STRING;
+   decl_len = strlen (decl_str);
+ 
+   block = make_emacs_tag_block (filename);
+ 
+   while (1)
+     {
+       long point = 0;
+       long line_start = 0;
+       int line_number = 0;
+ 
+       char *func, *doc;
+ #if defined (INFOKEY) || defined (NAMED_FUNCTIONS)
+       char *func_name;
+ #endif /* INFOKEY || NAMED_FUNCTIONS */
+ 
+       for (; offset < (file_size - decl_len); offset++)
+         {
+           if (buffer[offset] == '\n')
+             {
+               line_number++;
+               line_start = offset + 1;
+             }
+ 
+           if (strncmp (buffer + offset, decl_str, decl_len) == 0)
+             {
+               offset += decl_len;
+               point = offset;
+               break;
+             }
+         }
+ 
+       if (!point)
+         break;
+ 
+       /* Skip forward until we find the open paren. */
+       while (point < file_size)
+         {
+           if (buffer[point] == '\n')
+             {
+               line_number++;
+               line_start = point + 1;
+             }
+           else if (buffer[point] == '(')
+             break;
+ 
+           point++;
+         }
+ 
+       while (point++ < file_size)
+         {
+           if (!whitespace_or_newline (buffer[point]))
+             break;
+           else if (buffer[point] == '\n')
+             {
+               line_number++;
+               line_start = point + 1;
+             }
+         }
+ 
+       if (point >= file_size)
+         break;
+ 
+       /* Now looking at name of function.  Get it. */
+       for (offset = point; buffer[offset] != ','; offset++);
+       func = xmalloc (1 + (offset - point));
+       strncpy (func, buffer + point, offset - point);
+       func[offset - point] = '\0';
+ 
+       /* Remember this tag in the current block. */
+       {
+         char *tag_name;
+ 
+         tag_name = xmalloc (1 + (offset - line_start));
+         strncpy (tag_name, buffer + line_start, offset - line_start);
+         tag_name[offset - line_start] = '\0';
+         add_tag_to_block (block, tag_name, line_number, point);
+       }
+ 
+ #if defined (INFOKEY) || defined (NAMED_FUNCTIONS)
+       /* Generate the user-visible function name from the function's name. */
+       {
+         register int i;
+         char *name_start;
+ 
+         name_start = func;
+ 
+         if (strncmp (name_start, "info_", 5) == 0)
+           name_start += 5;
+ 
+         func_name = xstrdup (name_start);
+ 
+         /* Fix up "ea" commands. */
+         if (strncmp (func_name, "ea_", 3) == 0)
+           {
+             char *temp_func_name;
+ 
+             temp_func_name = xmalloc (10 + strlen (func_name));
+             strcpy (temp_func_name, "echo_area_");
+             strcat (temp_func_name, func_name + 3);
+             free (func_name);
+             func_name = temp_func_name;
+           }
+ 
+         for (i = 0; func_name[i]; i++)
+           if (func_name[i] == '_')
+             func_name[i] = '-';
+       }
+ #endif /* INFOKEY || NAMED_FUNCTIONS */
+ 
+       /* Find doc string. */
+       point = offset + 1;
+ 
+       while (point < file_size)
+         {
+           if (buffer[point] == '\n')
+             {
+               line_number++;
+               line_start = point + 1;
+             }
+ 
+           if (buffer[point] == '"')
+             break;
+           else
+             point++;
+         }
+ 
+       offset = point + 1;
+ 
+       while (offset < file_size)
+         {
+           if (buffer[offset] == '\n')
+             {
+               line_number++;
+               line_start = offset + 1;
+             }
+ 
+           if (buffer[offset] == '\\')
+             offset += 2;
+           else if (buffer[offset] == '"')
+             break;
+           else
+             offset++;
+         }
+ 
+       offset++;
+       if (offset >= file_size)
+         break;
+ 
+       doc = xmalloc (1 + (offset - point));
+       strncpy (doc, buffer + point, offset - point);
+       doc[offset - point] = '\0';
+ 
+ #if defined (INFOKEY)
+ 
+ #if defined (NAMED_FUNCTIONS)
+       fprintf (doc_stream,
+           "   { (VFunction *)%s, \"%s\", (FUNCTION_KEYSEQ *)0, %s },\n",
+           func, func_name, doc);
+ #else /* !NAMED_FUNCTIONS */
+       fprintf (doc_stream,
+           "   { (VFunction *) %s, (FUNCTION_KEYSEQ *)0, %s },\n", func, doc);
+ #endif /* !NAMED_FUNCTIONS */
+ 
+       fprintf (key_stream, "   { \"%s\", A_%s },\n", func_name, func);
+ 
+ #else /* !INFOKEY */
+ 
+ #if defined (NAMED_FUNCTIONS)
+       fprintf (doc_stream, "   { %s, \"%s\", %s },\n", func, func_name, doc);
+ #else /* !NAMED_FUNCTIONS */
+       fprintf (doc_stream, "   { %s, %s },\n", func, doc);
+ #endif /* !NAMED_FUNCTIONS */
+ 
+ #endif /* !INFOKEY */
+ 
+ #if defined (INFOKEY) || defined (NAMED_FUNCTIONS)
+       free (func_name);
+ #endif /* INFOKEY || NAMED_FUNCTIONS */
+ 
+ #if defined (INFOKEY)
+       fprintf (funs_stream, "#define A_%s %u\n", func, next_func_key());
+ #endif /* INFOKEY */
+       fprintf (funs_stream,
+           "extern void %s (WINDOW *window, int count, unsigned char key);\n",
+           func);
+       free (func);
+       free (doc);
+     }
+   free (buffer);
+ 
+   /* If we created any tags, remember this file on our global list.  Otherwise,
+      free the memory already allocated to it. */
+   if (block->entries)
+     add_pointer_to_array (block, emacs_tags_index, emacs_tags,
+                           emacs_tags_slots, 10, EMACS_TAG_BLOCK *);
+   else
+     {
+       free (block->filename);
+       free (block);
+     }
+ }
+ 
+ static void
+ fatal_file_error (char *filename)
+ {
+   fprintf (stderr, _("Couldn't manipulate the file %s.\n"), filename);
+   xexit (2);
+ }
+ 
+ static FILE *
+ must_fopen (char *filename, char *mode)
+ {
+   FILE *stream;
+ 
+   stream = fopen (filename, mode);
+   if (!stream)
+     fatal_file_error (filename);
+ 
+   return stream;
+ }
+ 
+ static unsigned int func_key;
+ 
+ static void
+ init_func_key(unsigned int val)
+ {
+ 	func_key = val;
+ }
+ 
+ static unsigned int
+ next_func_key(void)
+ {
+ 	return func_key++;
+ }
diff -Nrc2 texinfo-4.12/info/man.c texinfo-4.13/info/man.c
*** texinfo-4.12/info/man.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/man.c	Sat Jul  5 16:32:19 2008
***************
*** 0 ****
--- 1,678 ----
+ /*  man.c: How to read and format man files.
+     $Id: man.c,v 1.14 2008/06/28 08:09:32 gray Exp $
+ 
+    Copyright (C) 1995, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 
+    2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox Thu May  4 09:17:52 1995. */
+ 
+ #include "info.h"
+ #include <sys/ioctl.h>
+ #include "signals.h"
+ #if defined (HAVE_SYS_TIME_H)
+ #include <sys/time.h>
+ #endif
+ #if defined (HAVE_SYS_WAIT_H)
+ #include <sys/wait.h>
+ #endif
+ 
+ #include "tilde.h"
+ #include "man.h"
+ 
+ #if !defined (_POSIX_VERSION)
+ #define pid_t int
+ #endif
+ 
+ #if defined (FD_SET)
+ #  if defined (hpux)
+ #    define fd_set_cast(x) (int *)(x)
+ #  else
+ #    define fd_set_cast(x) (fd_set *)(x)
+ #  endif /* !hpux */
+ #endif /* FD_SET */
+ 
+ #if STRIP_DOT_EXE
+ static char const * const exec_extensions[] = {
+   ".exe", ".com", ".bat", ".btm", ".sh", ".ksh", ".pl", ".sed", "", NULL
+ };
+ #else
+ static char const * const exec_extensions[] = { "", NULL };
+ #endif
+ 
+ static char *read_from_fd (int fd);
+ static NODE *manpage_node_of_file_buffer (FILE_BUFFER *file_buffer,
+     char *pagename);
+ static char *get_manpage_contents (char *pagename);
+ 
+ NODE *
+ make_manpage_node (char *pagename)
+ {
+   return info_get_node (MANPAGE_FILE_BUFFER_NAME, pagename);
+ }
+ 
+ NODE *
+ get_manpage_node (FILE_BUFFER *file_buffer, char *pagename)
+ {
+   NODE *node;
+ 
+   node = manpage_node_of_file_buffer (file_buffer, pagename);
+ 
+   if (!node)
+     {
+       char *page;
+ 
+       page = get_manpage_contents (pagename);
+ 
+       if (page)
+         {
+           char header[1024];
+           long oldsize, newsize;
+           int hlen, plen;
+ 	  char *old_contents = file_buffer->contents;
+ 
+           sprintf (header, "\n\n%c\n%s %s,  %s %s,  %s (dir)\n\n",
+                    INFO_COOKIE,
+                    INFO_FILE_LABEL, file_buffer->filename,
+                    INFO_NODE_LABEL, pagename,
+                    INFO_UP_LABEL);
+           oldsize = file_buffer->filesize;
+           hlen = strlen (header);
+           plen = strlen (page);
+           newsize = (oldsize + hlen + plen);
+           file_buffer->contents = xrealloc (file_buffer->contents, 1 + newsize);
+           memcpy (file_buffer->contents + oldsize, header, hlen);
+           memcpy (file_buffer->contents + oldsize + hlen, page, plen);
+           file_buffer->contents[newsize] = '\0';
+           file_buffer->filesize = newsize;
+           file_buffer->finfo.st_size = newsize;
+           build_tags_and_nodes (file_buffer);
+           free (page);
+ 	  /* We have just relocated file_buffer->contents from under
+ 	     the feet of info_windows[] array.  Therefore, all the
+ 	     nodes on that list which are showing man pages have their
+ 	     contents member pointing into the blue.  Undo that harm.  */
+ 	  if (old_contents && oldsize && old_contents != file_buffer->contents)
+ 	    {
+ 	      int iw;
+ 	      INFO_WINDOW *info_win;
+ 	      char *old_contents_end = old_contents + oldsize;
+ 
+ 	      for (iw = 0; (info_win = info_windows[iw]); iw++)
+ 		{
+ 		  int in;
+ 
+ 		  for (in = 0; in < info_win->nodes_index; in++)
+ 		    {
+ 		      NODE *tmp_node = info_win->nodes[in];
+ 
+ 		      /* It really only suffices to see that node->filename
+ 			 is "*manpages*".  But after several hours of
+ 			 debugging this, would you blame me for being a bit
+ 			 paranoid?  */
+ 		      if (tmp_node && tmp_node->filename
+                           && tmp_node->contents
+                           && strcmp (tmp_node->filename,
+ 				  MANPAGE_FILE_BUFFER_NAME) == 0
+                           && tmp_node->contents >= old_contents
+                           && tmp_node->contents + tmp_node->nodelen
+                                 <= old_contents_end)
+ 			{
+ 			  info_win->nodes[in] =
+ 			    manpage_node_of_file_buffer (file_buffer,
+                                 tmp_node->nodename);
+ 			  free (tmp_node->nodename);
+ 			  free (tmp_node);
+ 			}
+ 		    }
+ 		}
+ 	    }
+         }
+ 
+       node = manpage_node_of_file_buffer (file_buffer, pagename);
+     }
+ 
+   return node;
+ }
+ 
+ FILE_BUFFER *
+ create_manpage_file_buffer (void)
+ {
+   FILE_BUFFER *file_buffer = make_file_buffer ();
+   file_buffer->filename = xstrdup (MANPAGE_FILE_BUFFER_NAME);
+   file_buffer->fullpath = xstrdup (MANPAGE_FILE_BUFFER_NAME);
+   file_buffer->finfo.st_size = 0;
+   file_buffer->filesize = 0;
+   file_buffer->contents = NULL;
+   file_buffer->flags = (N_IsInternal | N_CannotGC | N_IsManPage);
+ 
+   return file_buffer;
+ }
+ 
+ /* Scan the list of directories in PATH looking for FILENAME.  If we find
+    one that is an executable file, return it as a new string.  Otherwise,
+    return a NULL pointer. */
+ static char *
+ executable_file_in_path (char *filename, char *path)
+ {
+   struct stat finfo;
+   char *temp_dirname;
+   int statable, dirname_index;
+ 
+   dirname_index = 0;
+ 
+   while ((temp_dirname = extract_colon_unit (path, &dirname_index)))
+     {
+       char *temp;
+       char *temp_end;
+       int i;
+ 
+       /* Expand a leading tilde if one is present. */
+       if (*temp_dirname == '~')
+         {
+           char *expanded_dirname;
+ 
+           expanded_dirname = tilde_expand_word (temp_dirname);
+           free (temp_dirname);
+           temp_dirname = expanded_dirname;
+         }
+ 
+       temp = xmalloc (34 + strlen (temp_dirname) + strlen (filename));
+       strcpy (temp, temp_dirname);
+       if (!IS_SLASH (temp[(strlen (temp)) - 1]))
+         strcat (temp, "/");
+       strcat (temp, filename);
+       temp_end = temp + strlen (temp);
+ 
+       free (temp_dirname);
+ 
+       /* Look for FILENAME, possibly with any of the extensions
+ 	 in EXEC_EXTENSIONS[].  */
+       for (i = 0; exec_extensions[i]; i++)
+ 	{
+ 	  if (exec_extensions[i][0])
+ 	    strcpy (temp_end, exec_extensions[i]);
+ 	  statable = (stat (temp, &finfo) == 0);
+ 
+ 	  /* If we have found a regular executable file, then use it. */
+ 	  if ((statable) && (S_ISREG (finfo.st_mode)) &&
+ 	      (access (temp, X_OK) == 0))
+ 	    return temp;
+ 	}
+ 
+       free (temp);
+     }
+   return NULL;
+ }
+ 
+ /* Return the full pathname of the system man page formatter. */
+ static char *
+ find_man_formatter (void)
+ {
+   char *man_command = getenv ("INFO_MAN_COMMAND");
+   return man_command ? man_command :
+                        executable_file_in_path ("man", getenv ("PATH"));
+ }
+ 
+ static char *manpage_pagename = NULL;
+ static char *manpage_section  = NULL;
+ 
+ static void
+ get_page_and_section (char *pagename)
+ {
+   register int i;
+ 
+   if (manpage_pagename)
+     free (manpage_pagename);
+ 
+   if (manpage_section)
+     free (manpage_section);
+ 
+   manpage_pagename = NULL;
+   manpage_section  = NULL;
+ 
+   for (i = 0; pagename[i] != '\0' && pagename[i] != '('; i++);
+ 
+   manpage_pagename = xmalloc (1 + i);
+   strncpy (manpage_pagename, pagename, i);
+   manpage_pagename[i] = '\0';
+ 
+   if (pagename[i] == '(')
+     {
+       int start;
+ 
+       start = i + 1;
+ 
+       for (i = start; pagename[i] != '\0' && pagename[i] != ')'; i++);
+ 
+       manpage_section = xmalloc (1 + (i - start));
+       strncpy (manpage_section, pagename + start, (i - start));
+       manpage_section[i - start] = '\0';
+     }
+ }
+ 
+ #if PIPE_USE_FORK
+ static void
+ reap_children (int sig)
+ {
+   wait (NULL);
+ }
+ #endif
+ 
+ static char *
+ get_manpage_contents (char *pagename)
+ {
+   static char *formatter_args[4] = { NULL };
+   int pipes[2];
+   pid_t child;
+   RETSIGTYPE (*sigsave) (int signum);
+   char *formatted_page = NULL;
+   int arg_index = 1;
+ 
+   if (formatter_args[0] == NULL)
+     formatter_args[0] = find_man_formatter ();
+ 
+   if (formatter_args[0] == NULL)
+     return NULL;
+ 
+   get_page_and_section (pagename);
+ 
+   if (manpage_section)
+     formatter_args[arg_index++] = manpage_section;
+   else
+     formatter_args[arg_index++] = "-a";    
+ 
+   formatter_args[arg_index++] = manpage_pagename;
+   formatter_args[arg_index] = NULL;
+ 
+   /* Open a pipe to this program, read the output, and save it away
+      in FORMATTED_PAGE.  The reader end of the pipe is pipes[0]; the
+      writer end is pipes[1]. */
+ #if PIPE_USE_FORK
+   pipe (pipes);
+ 
+   sigsave = signal (SIGCHLD, reap_children);
+ 
+   child = fork ();
+   if (child == -1)
+     return NULL;
+ 
+   if (child != 0)
+     {
+       /* In the parent, close the writing end of the pipe, and read from
+          the exec'd child. */
+       close (pipes[1]);
+       formatted_page = read_from_fd (pipes[0]);
+       close (pipes[0]);
+       signal (SIGCHLD, sigsave);
+     }
+   else
+     { /* In the child, close the read end of the pipe, make the write end
+          of the pipe be stdout, and execute the man page formatter. */
+       close (pipes[0]);
+       freopen (NULL_DEVICE, "w", stderr);
+       freopen (NULL_DEVICE, "r", stdin);
+       dup2 (pipes[1], fileno (stdout));
+ 
+       execv (formatter_args[0], formatter_args);
+ 
+       /* If we get here, we couldn't exec, so close out the pipe and
+          exit. */
+       close (pipes[1]);
+       xexit (0);
+     }
+ #else  /* !PIPE_USE_FORK */
+   /* Cannot fork/exec, but can popen/pclose.  */
+   {
+     FILE *fpipe;
+     char *cmdline = xmalloc (strlen (formatter_args[0])
+ 			     + strlen (manpage_pagename)
+ 			     + (arg_index > 2 ? strlen (manpage_section) : 0)
+  			     + 3);
+     int save_stderr = dup (fileno (stderr));
+     int fd_err = open (NULL_DEVICE, O_WRONLY, 0666);
+ 
+     if (fd_err > 2)
+       dup2 (fd_err, fileno (stderr)); /* Don't print errors. */
+     sprintf (cmdline, "%s %s %s", formatter_args[0], manpage_pagename,
+ 				  arg_index > 2 ? manpage_section : "");
+     fpipe = popen (cmdline, "r");
+     free (cmdline);
+     if (fd_err > 2)
+       close (fd_err);
+     dup2 (save_stderr, fileno (stderr));
+     if (fpipe == 0)
+       return NULL;
+     formatted_page = read_from_fd (fileno (fpipe));
+     if (pclose (fpipe) == -1)
+       {
+ 	if (formatted_page)
+ 	  free (formatted_page);
+ 	return NULL;
+       }
+   }
+ #endif /* !PIPE_USE_FORK */
+ 
+   /* If we have the page, then clean it up. */
+   if (formatted_page)
+     clean_manpage (formatted_page);
+ 
+   return formatted_page;
+ }
+ 
+ static NODE *
+ manpage_node_of_file_buffer (FILE_BUFFER *file_buffer, char *pagename)
+ {
+   NODE *node = NULL;
+   TAG *tag = NULL;
+ 
+   if (file_buffer->contents)
+     {
+       register int i;
+ 
+       for (i = 0; (tag = file_buffer->tags[i]); i++)
+         {
+           if (mbscasecmp (pagename, tag->nodename) == 0)
+             break;
+         }
+     }
+ 
+   if (tag)
+     {
+       node = xmalloc (sizeof (NODE));
+       node->filename = file_buffer->filename;
+       node->nodename = xstrdup (tag->nodename);
+       node->contents = file_buffer->contents + tag->nodestart;
+       node->nodelen = tag->nodelen;
+       node->flags    = 0;
+       node->display_pos = 0;
+       node->parent   = NULL;
+       node->flags = (N_HasTagsTable | N_IsManPage);
+       node->contents += skip_node_separator (node->contents);
+     }
+ 
+   return node;
+ }
+ 
+ static char *
+ read_from_fd (int fd)
+ {
+   struct timeval timeout;
+   char *buffer = NULL;
+   int bsize = 0;
+   int bindex = 0;
+   int select_result;
+ #if defined (FD_SET)
+   fd_set read_fds;
+ 
+   timeout.tv_sec = 15;
+   timeout.tv_usec = 0;
+ 
+   FD_ZERO (&read_fds);
+   FD_SET (fd, &read_fds);
+ 
+   select_result = select (fd + 1, fd_set_cast (&read_fds), 0, 0, &timeout);
+ #else /* !FD_SET */
+   select_result = 1;
+ #endif /* !FD_SET */
+ 
+   switch (select_result)
+     {
+     case 0:
+     case -1:
+       break;
+ 
+     default:
+       {
+         int amount_read;
+         int done = 0;
+ 
+         while (!done)
+           {
+             while ((bindex + 1024) > (bsize))
+               buffer = xrealloc (buffer, (bsize += 1024));
+             buffer[bindex] = '\0';
+ 
+             amount_read = read (fd, buffer + bindex, 1023);
+ 
+             if (amount_read < 0)
+               {
+                 done = 1;
+               }
+             else
+               {
+                 bindex += amount_read;
+                 buffer[bindex] = '\0';
+                 if (amount_read == 0)
+                   done = 1;
+               }
+           }
+       }
+     }
+ 
+   if ((buffer != NULL) && (*buffer == '\0'))
+     {
+       free (buffer);
+       buffer = NULL;
+     }
+ 
+   return buffer;
+ }
+ 
+ static char *reference_section_starters[] =
+ {
+   "\nRELATED INFORMATION",
+   "\nRELATED\tINFORMATION",
+   "RELATED INFORMATION\n",
+   "RELATED\tINFORMATION\n",
+   "\nSEE ALSO",
+   "\nSEE\tALSO",
+   "SEE ALSO\n",
+   "SEE\tALSO\n",
+   NULL
+ };
+ 
+ static SEARCH_BINDING frs_binding;
+ 
+ static SEARCH_BINDING *
+ find_reference_section (NODE *node)
+ {
+   register int i;
+   long position = -1;
+ 
+   frs_binding.buffer = node->contents;
+   frs_binding.start = 0;
+   frs_binding.end = node->nodelen;
+   frs_binding.flags = S_SkipDest;
+ 
+   for (i = 0; reference_section_starters[i] != NULL; i++)
+     {
+       position = search_forward (reference_section_starters[i], &frs_binding);
+       if (position != -1)
+         break;
+     }
+ 
+   if (position == -1)
+     return NULL;
+ 
+   /* We found the start of the reference section, and point is right after
+      the string which starts it.  The text from here to the next header
+      (or end of buffer) contains the only references in this manpage. */
+   frs_binding.start = position;
+ 
+   for (i = frs_binding.start; i < frs_binding.end - 2; i++)
+     {
+       if ((frs_binding.buffer[i] == '\n') &&
+           (!whitespace (frs_binding.buffer[i + 1])))
+         {
+           frs_binding.end = i;
+           break;
+         }
+     }
+ 
+   return &frs_binding;
+ }
+ 
+ REFERENCE **
+ xrefs_of_manpage (NODE *node)
+ {
+   SEARCH_BINDING *reference_section;
+   REFERENCE **refs = NULL;
+   int refs_index = 0;
+   int refs_slots = 0;
+   long position;
+ 
+   reference_section = find_reference_section (node);
+ 
+   if (reference_section == NULL)
+     return NULL;
+ 
+   /* Grovel the reference section building a list of references found there.
+      A reference is alphabetic characters followed by non-whitespace text
+      within parenthesis. */
+   reference_section->flags = 0;
+ 
+   while ((position = search_forward ("(", reference_section)) != -1)
+     {
+       register int start, end;
+ 
+       for (start = position; start > reference_section->start; start--)
+         if (whitespace (reference_section->buffer[start]))
+           break;
+ 
+       start++;
+ 
+       for (end = position; end < reference_section->end; end++)
+         {
+           if (whitespace (reference_section->buffer[end]))
+             {
+               end = start;
+               break;
+             }
+ 
+           if (reference_section->buffer[end] == ')')
+             {
+               end++;
+               break;
+             }
+         }
+ 
+       if (end != start)
+         {
+           REFERENCE *entry;
+           int len = end - start;
+ 
+           entry = xmalloc (sizeof (REFERENCE));
+           entry->label = xmalloc (1 + len);
+           strncpy (entry->label, (reference_section->buffer) + start, len);
+           entry->label[len] = '\0';
+           entry->filename = xstrdup (node->filename);
+           entry->nodename = xstrdup (entry->label);
+           entry->start = start;
+           entry->end = end;
+ 
+           add_pointer_to_array
+             (entry, refs_index, refs, refs_slots, 10, REFERENCE *);
+         }
+ 
+       reference_section->start = position + 1;
+     }
+ 
+   return refs;
+ }
+ 
+ long
+ locate_manpage_xref (NODE *node, long int start, int dir)
+ {
+   REFERENCE **refs;
+   long position = -1;
+ 
+   refs = xrefs_of_manpage (node);
+ 
+   if (refs)
+     {
+       register int i, count;
+       REFERENCE *entry;
+ 
+       for (i = 0; refs[i]; i++);
+       count = i;
+ 
+       if (dir > 0)
+         {
+           for (i = 0; (entry = refs[i]); i++)
+             if (entry->start > start)
+               {
+                 position = entry->start;
+                 break;
+               }
+         }
+       else
+         {
+           for (i = count - 1; i > -1; i--)
+             {
+               entry = refs[i];
+ 
+               if (entry->start < start)
+                 {
+                   position = entry->start;
+                   break;
+                 }
+             }
+         }
+ 
+       info_free_references (refs);
+     }
+   return position;
+ }
+ 
+ /* This one was a little tricky.  The binding buffer that is passed in has
+    a START and END value of 0 -- strlen (window-line-containing-point).
+    The BUFFER is a pointer to the start of that line. */
+ REFERENCE **
+ manpage_xrefs_in_binding (NODE *node, SEARCH_BINDING *binding)
+ {
+   register int i;
+   REFERENCE **all_refs = xrefs_of_manpage (node);
+   REFERENCE **brefs = NULL;
+   REFERENCE *entry;
+   int brefs_index = 0;
+   int brefs_slots = 0;
+   int start, end;
+ 
+   if (!all_refs)
+     return NULL;
+ 
+   start = binding->start + (binding->buffer - node->contents);
+   end = binding->end + (binding->buffer - node->contents);
+ 
+   for (i = 0; (entry = all_refs[i]); i++)
+     {
+       if ((entry->start > start) && (entry->end < end))
+         {
+           add_pointer_to_array
+             (entry, brefs_index, brefs, brefs_slots, 10, REFERENCE *);
+         }
+       else
+         {
+           maybe_free (entry->label);
+           maybe_free (entry->filename);
+           maybe_free (entry->nodename);
+           free (entry);
+         }
+     }
+ 
+   free (all_refs);
+   return brefs;
+ }
diff -Nrc2 texinfo-4.12/info/man.h texinfo-4.13/info/man.h
*** texinfo-4.12/info/man.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/man.h	Sun Jul  1 14:20:30 2007
***************
*** 0 ****
--- 1,38 ----
+ /* man.h: Defines and external function declarations for man.c.
+    $Id: man.h,v 1.6 2007/07/01 21:20:30 karl Exp $
+ 
+    This file is part of GNU Info, a program for reading online documentation
+    stored in Info format.
+ 
+    Copyright (C) 1993, 1997, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Author: Brian J. Fox (bfox@ai.mit.edu) Sat May  6 16:19:13 1995. */
+ 
+ #ifndef INFO_MAN_H
+ #define INFO_MAN_H
+ 
+ #define MANPAGE_FILE_BUFFER_NAME "*manpages*"
+ 
+ extern NODE *make_manpage_node (char *pagename);
+ extern NODE *get_manpage_node (FILE_BUFFER *file_buffer,
+     char *pagename);
+ extern FILE_BUFFER *create_manpage_file_buffer (void);
+ extern long locate_manpage_xref (NODE *node, long int start, int dir);
+ extern REFERENCE **xrefs_of_manpage (NODE *node);
+ extern REFERENCE **manpage_xrefs_in_binding (NODE *node,
+     SEARCH_BINDING *binding);
+ 
+ #endif /* INFO_MAN_H */
diff -Nrc2 texinfo-4.12/info/nodemenu.c texinfo-4.13/info/nodemenu.c
*** texinfo-4.12/info/nodemenu.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/nodemenu.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,346 ----
+ /* nodemenu.c -- produce a menu of all visited nodes.
+    $Id: nodemenu.c,v 1.11 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2002, 2003, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ 
+ NODE * get_visited_nodes (Function *filter_func);
+ 
+ /* Return a line describing the format of a node information line. */
+ static const char *
+ nodemenu_format_info (void)
+ {
+   return _("\n\
+ * Menu:\n\
+   (File)Node                        Lines   Size   Containing File\n\
+   ----------                        -----   ----   ---------------");
+ }
+ 
+ /* Produce a formatted line of information about NODE.  Here is what we want
+    the output listing to look like:
+ 
+ * Menu:
+   (File)Node                        Lines   Size   Containing File
+   ----------                        -----   ----   ---------------
+ * (emacs)Buffers::                  48      2230   /usr/gnu/info/emacs/emacs-1
+ * (autoconf)Writing configure.in::  123     58789  /usr/gnu/info/autoconf/autoconf-1
+ * (dir)Top::                        40      589    /usr/gnu/info/dir
+ */
+ static char *
+ format_node_info (NODE *node)
+ {
+   register int i, len;
+   char *parent, *containing_file;
+   static char *line_buffer = NULL;
+ 
+   if (!line_buffer)
+     line_buffer = xmalloc (1000);
+ 
+   if (node->parent)
+     {
+       parent = filename_non_directory (node->parent);
+       if (!parent)
+         parent = node->parent;
+     }
+   else
+     parent = NULL;
+ 
+   containing_file = node->filename;
+ 
+   if (!parent && !*containing_file)
+     sprintf (line_buffer, "* %s::", node->nodename);
+   else
+     {
+       char *file = NULL;
+ 
+       if (parent)
+         file = parent;
+       else
+         file = filename_non_directory (containing_file);
+ 
+       if (!file)
+         file = containing_file;
+ 
+       if (!*file)
+         file = "dir";
+ 
+       sprintf (line_buffer, "* (%s)%s::", file, node->nodename);
+     }
+ 
+   len = pad_to (36, line_buffer);
+ 
+   {
+     int lines = 1;
+ 
+     for (i = 0; i < node->nodelen; i++)
+       if (node->contents[i] == '\n')
+         lines++;
+ 
+     sprintf (line_buffer + len, "%d", lines);
+   }
+ 
+   len = pad_to (44, line_buffer);
+   sprintf (line_buffer + len, "%ld", node->nodelen);
+ 
+   if (node->filename && *(node->filename))
+     {
+       len = pad_to (51, line_buffer);
+       strcpy (line_buffer + len, node->filename);
+     }
+ 
+   return xstrdup (line_buffer);
+ }
+ 
+ /* Little string comparison routine for qsort (). */
+ static int
+ compare_strings (const void *entry1, const void *entry2)
+ {
+   char **e1 = (char **) entry1;
+   char **e2 = (char **) entry2;
+ 
+   return mbscasecmp (*e1, *e2);
+ }
+ 
+ /* The name of the nodemenu node. */
+ static char *nodemenu_nodename = "*Node Menu*";
+ 
+ /* Produce an informative listing of all the visited nodes, and return it
+    in a node.  If FILTER_FUNC is non-null, it is a function which filters
+    which nodes will appear in the listing.  FILTER_FUNC takes an argument
+    of NODE, and returns non-zero if the node should appear in the listing. */
+ NODE *
+ get_visited_nodes (Function *filter_func)
+ {
+   register int i, iw_index;
+   INFO_WINDOW *info_win;
+   NODE *node;
+   char **lines = NULL;
+   int lines_index = 0, lines_slots = 0;
+ 
+   if (!info_windows)
+     return NULL;
+ 
+   for (iw_index = 0; (info_win = info_windows[iw_index]); iw_index++)
+     {
+       for (i = 0; i < info_win->nodes_index; i++)
+         {
+           node = info_win->nodes[i];
+ 
+           /* We skip mentioning "*Node Menu*" nodes. */
+           if (internal_info_node_p (node) &&
+               (strcmp (node->nodename, nodemenu_nodename) == 0))
+             continue;
+ 
+           if (node && (!filter_func || (*filter_func) (node)))
+             {
+               char *line;
+ 
+               line = format_node_info (node);
+               add_pointer_to_array
+                 (line, lines_index, lines, lines_slots, 20, char *);
+             }
+         }
+     }
+ 
+   /* Sort the array of information lines, if there are any. */
+   if (lines)
+     {
+       register int j, newlen;
+       char **temp;
+ 
+       qsort (lines, lines_index, sizeof (char *), compare_strings);
+ 
+       /* Delete duplicates. */
+       for (i = 0, newlen = 1; i < lines_index - 1; i++)
+         {
+ 	  /* Use FILENAME_CMP here, since the most important piece
+ 	     of info in each line is the file name of the node.  */
+           if (FILENAME_CMP (lines[i], lines[i + 1]) == 0)
+             {
+               free (lines[i]);
+               lines[i] = NULL;
+             }
+           else
+             newlen++;
+         }
+ 
+       /* We have free ()'d and marked all of the duplicate slots.
+          Copy the live slots rather than pruning the dead slots. */
+       temp = xmalloc ((1 + newlen) * sizeof (char *));
+       for (i = 0, j = 0; i < lines_index; i++)
+         if (lines[i])
+           temp[j++] = lines[i];
+ 
+       temp[j] = NULL;
+       free (lines);
+       lines = temp;
+       lines_index = newlen;
+     }
+ 
+   initialize_message_buffer ();
+ 
+   printf_to_message_buffer
+     ("%s", replace_in_documentation
+      (_("Here is the menu of nodes you have recently visited.\n\
+ Select one from this menu, or use `\\[history-node]' in another window.\n"), 0),
+      NULL, NULL);
+ 
+   printf_to_message_buffer ("%s\n", (char *) nodemenu_format_info (),
+       NULL, NULL);
+ 
+   for (i = 0; (lines != NULL) && (i < lines_index); i++)
+     {
+       printf_to_message_buffer ("%s\n", lines[i], NULL, NULL);
+       free (lines[i]);
+     }
+ 
+   if (lines)
+     free (lines);
+ 
+   node = message_buffer_to_node ();
+   add_gcable_pointer (node->contents);
+   return node;
+ }
+ 
+ DECLARE_INFO_COMMAND (list_visited_nodes,
+    _("Make a window containing a menu of all of the currently visited nodes"))
+ {
+   WINDOW *new;
+   NODE *node;
+ 
+   set_remembered_pagetop_and_point (window);
+ 
+   /* If a window is visible and showing the buffer list already, re-use it. */
+   for (new = windows; new; new = new->next)
+     {
+       node = new->node;
+ 
+       if (internal_info_node_p (node) &&
+           (strcmp (node->nodename, nodemenu_nodename) == 0))
+         break;
+     }
+ 
+   /* If we couldn't find an existing window, try to use the next window
+      in the chain. */
+   if (!new)
+     {
+       if (window->next)
+         new = window->next;
+       /* If there is more than one window, wrap around. */
+       else if (window != windows)
+         new = windows;
+     }
+ 
+   /* If we still don't have a window, make a new one to contain the list. */
+   if (!new)
+     {
+       WINDOW *old_active;
+ 
+       old_active = active_window;
+       active_window = window;
+       new = window_make_window (NULL);
+       active_window = old_active;
+     }
+ 
+   /* If we couldn't make a new window, use this one. */
+   if (!new)
+     new = window;
+ 
+   /* Lines do not wrap in this window. */
+   new->flags |= W_NoWrap;
+   node = get_visited_nodes (NULL);
+   name_internal_node (node, nodemenu_nodename);
+ 
+ #if 0
+   /* Even if this is an internal node, we don't want the window
+      system to treat it specially.  So we turn off the internalness
+      of it here. */
+   /* Why?  We depend on internal_info_node_p returning true, so we must
+      not remove the flag.  Otherwise, the *Node Menu* nodes themselves
+      appear in the node menu.  --Andreas Schwab
+      <schwab@issan.informatik.uni-dortmund.de>.  */
+   node->flags &= ~N_IsInternal;
+ #endif
+ 
+   /* If this window is already showing a node menu, reuse the existing node
+      slot. */
+   {
+     int remember_me = 1;
+ 
+ #if defined (NOTDEF)
+     if (internal_info_node_p (new->node) &&
+         (strcmp (new->node->nodename, nodemenu_nodename) == 0))
+       remember_me = 0;
+ #endif /* NOTDEF */
+ 
+     window_set_node_of_window (new, node);
+ 
+     if (remember_me)
+       remember_window_and_node (new, node);
+   }
+ 
+   active_window = new;
+ }
+ 
+ DECLARE_INFO_COMMAND (select_visited_node,
+       _("Select a node which has been previously visited in a visible window"))
+ {
+   char *line;
+   NODE *node;
+   REFERENCE **menu;
+ 
+   node = get_visited_nodes (NULL);
+ 
+   menu = info_menu_of_node (node);
+   free (node);
+ 
+   line =
+     info_read_completing_in_echo_area (window,
+         _("Select visited node: "), menu);
+ 
+   window = active_window;
+ 
+   /* User aborts, just quit. */
+   if (!line)
+     {
+       info_abort_key (window, 0, 0);
+       info_free_references (menu);
+       return;
+     }
+ 
+   if (*line)
+     {
+       REFERENCE *entry;
+ 
+       /* Find the selected label in the references. */
+       entry = info_get_labeled_reference (line, menu);
+ 
+       if (!entry)
+         info_error (_("The reference disappeared! (%s)."), line, NULL);
+       else
+         info_select_reference (window, entry);
+     }
+ 
+   free (line);
+   info_free_references (menu);
+ 
+   if (!info_error_was_printed)
+     window_clear_echo_area ();
+ }
diff -Nrc2 texinfo-4.12/info/nodes.c texinfo-4.13/info/nodes.c
*** texinfo-4.12/info/nodes.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/nodes.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,1269 ----
+ /* nodes.c -- how to get an Info file and node.
+    $Id: nodes.c,v 1.11 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1998, 1999, 2000, 2002, 2003, 2004, 2006, 2007,
+    2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ 
+ #include "nodes.h"
+ #include "search.h"
+ #include "filesys.h"
+ #include "info-utils.h"
+ 
+ #if defined (HANDLE_MAN_PAGES)
+ #  include "man.h"
+ #endif /* HANDLE_MAN_PAGES */
+ 
+ static void forget_info_file (char *filename);
+ static void remember_info_file (FILE_BUFFER *file_buffer);
+ static void free_file_buffer_tags (FILE_BUFFER *file_buffer);
+ static void free_info_tag (TAG *tag);
+ static void get_nodes_of_tags_table (FILE_BUFFER *file_buffer,
+     SEARCH_BINDING *buffer_binding);
+ static void get_nodes_of_info_file (FILE_BUFFER *file_buffer);
+ static void get_tags_of_indirect_tags_table (FILE_BUFFER *file_buffer,
+     SEARCH_BINDING *indirect_binding, SEARCH_BINDING *tags_binding);
+ static void info_reload_file_buffer_contents (FILE_BUFFER *fb);
+ static char *adjust_nodestart (NODE *node, int min, int max);
+ static FILE_BUFFER *info_load_file_internal (char *filename, int get_tags);
+ static FILE_BUFFER *info_find_file_internal (char *filename, int get_tags);
+ static NODE *info_node_of_file_buffer_tags (FILE_BUFFER *file_buffer,
+     char *nodename);
+ 
+ static long get_node_length (SEARCH_BINDING *binding);
+ 
+ /* Magic number that RMS used to decide how much a tags table pointer could
+    be off by.  I feel that it should be much smaller, like 4.  */
+ #define DEFAULT_INFO_FUDGE 1000
+ 
+ /* Passed to *_internal functions.  INFO_GET_TAGS says to do what is
+    neccessary to fill in the nodes or tags arrays in FILE_BUFFER. */
+ #define INFO_NO_TAGS  0
+ #define INFO_GET_TAGS 1
+ 
+ /* Global variables.  */
+ 
+ /* When non-zero, this is a string describing the recent file error. */
+ char *info_recent_file_error = NULL;
+ 
+ /* The list of already loaded nodes. */
+ FILE_BUFFER **info_loaded_files = NULL;
+ 
+ /* The number of slots currently allocated to LOADED_FILES. */
+ int info_loaded_files_slots = 0;
+ 
+ /* Public functions for node manipulation.  */
+ 
+ /* Used to build `dir' menu from `localdir' files found in INFOPATH. */
+ extern void maybe_build_dir_node (char *dirname);
+ 
+ /* Return a pointer to a NODE structure for the Info node (FILENAME)NODENAME.
+    If FILENAME is NULL, `dir' is used.
+    IF NODENAME is NULL, `Top' is used.
+    If the node cannot be found, return NULL. */
+ NODE *
+ info_get_node (char *filename, char *nodename)
+ {
+   NODE *node;
+   FILE_BUFFER *file_buffer = NULL;
+ 
+   info_recent_file_error = NULL;
+   info_parse_node (nodename, DONT_SKIP_NEWLINES);
+   nodename = NULL;
+ 
+   if (info_parsed_filename)
+     filename = info_parsed_filename;
+ 
+   if (info_parsed_nodename)
+     nodename = info_parsed_nodename;
+ 
+   /* If FILENAME is not specified, it defaults to "dir". */
+   if (!filename)
+     filename = "dir";
+ 
+   /* If the file to be looked up is "dir", build the contents from all of
+      the "dir"s and "localdir"s found in INFOPATH. */
+   if (is_dir_name (filename))
+     maybe_build_dir_node (filename);
+ 
+   /* Find the correct info file, or give up.  */
+   file_buffer = info_find_file (filename);
+   if (!file_buffer)
+     {
+       if (filesys_error_number)
+         info_recent_file_error =
+           filesys_error_string (filename, filesys_error_number);
+       return NULL;
+     }
+ 
+   /* Look for the node.  */
+   node = info_get_node_of_file_buffer (nodename, file_buffer);
+ 
+   /* If the node not found was "Top", try again with different case,
+      unless this was a man page.  */
+   if (!node
+       && mbscasecmp (filename, MANPAGE_FILE_BUFFER_NAME) != 0
+       && (nodename == NULL || mbscasecmp (nodename, "Top") == 0))
+     {
+       node = info_get_node_of_file_buffer ("Top", file_buffer);
+       if (!node)
+         node = info_get_node_of_file_buffer ("top", file_buffer);
+       if (!node)
+         node = info_get_node_of_file_buffer ("TOP", file_buffer);
+     }
+ 
+   return node;
+ }
+ 
+ /* Return a pointer to a NODE structure for the Info node NODENAME in
+    FILE_BUFFER.  NODENAME can be passed as NULL, in which case the
+    nodename of "Top" is used.  If the node cannot be found, return a
+    NULL pointer. */
+ NODE *
+ info_get_node_of_file_buffer (char *nodename, FILE_BUFFER *file_buffer)
+ {
+   NODE *node = NULL;
+   int implicit_nodename = 0;
+ 
+   /* If we are unable to find the file, we have to give up.  There isn't
+      anything else we can do. */
+   if (!file_buffer)
+     return NULL;
+ 
+   /* If the file buffer was gc'ed, reload the contents now. */
+   if (!file_buffer->contents)
+     info_reload_file_buffer_contents (file_buffer);
+ 
+   /* If NODENAME is not specified, it defaults to "Top". */
+   if (!nodename)
+     {
+       nodename = "Top";
+       implicit_nodename = 1;  /* don't return man page for top */
+     }
+ 
+   /* If the name of the node that we wish to find is exactly "*", then the
+      node body is the contents of the entire file.  Create and return such
+      a node. */
+   if (strcmp (nodename, "*") == 0)
+     {
+       node = xmalloc (sizeof (NODE));
+       node->filename = file_buffer->fullpath;
+       node->parent   = NULL;
+       node->nodename = xstrdup ("*");
+       node->contents = file_buffer->contents;
+       node->nodelen = file_buffer->filesize;
+       node->flags = 0;
+       node->display_pos = 0;
+     }
+ #if defined (HANDLE_MAN_PAGES)
+   /* If the file buffer is the magic one associated with manpages, call
+      the manpage node finding function instead. */
+   else if (!implicit_nodename && file_buffer->flags & N_IsManPage)
+     {
+       node = get_manpage_node (file_buffer, nodename);
+     }
+ #endif /* HANDLE_MAN_PAGES */
+   /* If this is the "main" info file, it might contain a tags table.  Search
+      the tags table for an entry which matches the node that we want.  If
+      there is a tags table, get the file which contains this node, but don't
+      bother building a node list for it. */
+   else if (file_buffer->tags)
+     {
+       node = info_node_of_file_buffer_tags (file_buffer, nodename);
+     }
+ 
+   /* Return the results of our node search. */
+   return node;
+ }
+ 
+ /* Locate the file named by FILENAME, and return the information structure
+    describing this file.  The file may appear in our list of loaded files
+    already, or it may not.  If it does not already appear, find the file,
+    and add it to the list of loaded files.  If the file cannot be found,
+    return a NULL FILE_BUFFER *. */
+ FILE_BUFFER *
+ info_find_file (char *filename)
+ {
+   return info_find_file_internal (filename, INFO_GET_TAGS);
+ }
+ 
+ /* Load the info file FILENAME, remembering information about it in a
+    file buffer. */
+ FILE_BUFFER *
+ info_load_file (char *filename)
+ {
+   return info_load_file_internal (filename, INFO_GET_TAGS);
+ }
+ 
+ 
+ /* Private functions implementation.  */
+ 
+ /* The workhorse for info_find_file ().  Non-zero 2nd argument says to
+    try to build a tags table (or otherwise glean the nodes) for this
+    file once found.  By default, we build the tags table, but when this
+    function is called by info_get_node () when we already have a valid
+    tags table describing the nodes, it is unnecessary. */
+ static FILE_BUFFER *
+ info_find_file_internal (char *filename, int get_tags)
+ {
+   int i;
+   FILE_BUFFER *file_buffer;
+ 
+   /* First try to find the file in our list of already loaded files. */
+   if (info_loaded_files)
+     {
+       for (i = 0; (file_buffer = info_loaded_files[i]); i++)
+         if ((FILENAME_CMP (filename, file_buffer->filename) == 0)
+             || (FILENAME_CMP (filename, file_buffer->fullpath) == 0)
+             || (!IS_ABSOLUTE (filename)
+                 && FILENAME_CMP (filename,
+                                 filename_non_directory (file_buffer->fullpath))
+                     == 0))
+           {
+             struct stat new_info, *old_info;
+ 
+             /* This file is loaded.  If the filename that we want is
+                specifically "dir", then simply return the file buffer. */
+             if (is_dir_name (filename_non_directory (filename)))
+               return file_buffer;
+ 
+ #if defined (HANDLE_MAN_PAGES)
+             /* Do the same for the magic MANPAGE file. */
+             if (file_buffer->flags & N_IsManPage)
+               return file_buffer;
+ #endif /* HANDLE_MAN_PAGES */
+ 
+             /* The file appears to be already loaded, and is not "dir".  Check
+                to see if it's changed since the last time it was loaded.  */
+             if (stat (file_buffer->fullpath, &new_info) == -1)
+               {
+                 filesys_error_number = errno;
+                 return NULL;
+               }
+ 
+             old_info = &file_buffer->finfo;
+ 
+             if (new_info.st_size != old_info->st_size
+                 || new_info.st_mtime != old_info->st_mtime)
+               {
+                 /* The file has changed.  Forget that we ever had loaded it
+                    in the first place. */
+                 forget_info_file (filename);
+                 break;
+               }
+             else
+               {
+                 /* The info file exists, and has not changed since the last
+                    time it was loaded.  If the caller requested a nodes list
+                    for this file, and there isn't one here, build the nodes
+                    for this file_buffer.  In any case, return the file_buffer
+                    object. */
+                 if (!file_buffer->contents)
+                   {
+                     /* The file's contents have been gc'ed.  Reload it.  */
+                     info_reload_file_buffer_contents (file_buffer);
+                     if (!file_buffer->contents)
+                       return NULL;
+                   }
+ 
+                 if (get_tags && !file_buffer->tags)
+                   build_tags_and_nodes (file_buffer);
+ 
+                 return file_buffer;
+               }
+           }
+     }
+ 
+   /* The file wasn't loaded.  Try to load it now. */
+ #if defined (HANDLE_MAN_PAGES)
+   /* If the name of the file that we want is our special file buffer for
+      Unix manual pages, then create the file buffer, and return it now. */
+   if (mbscasecmp (filename, MANPAGE_FILE_BUFFER_NAME) == 0)
+     file_buffer = create_manpage_file_buffer ();
+   else
+ #endif /* HANDLE_MAN_PAGES */
+     file_buffer = info_load_file_internal (filename, get_tags);
+ 
+   /* If the file was loaded, remember the name under which it was found. */
+   if (file_buffer)
+     remember_info_file (file_buffer);
+ 
+   return file_buffer;
+ }
+ 
+ /* The workhorse function for info_load_file ().  Non-zero second argument
+    says to build a list of tags (or nodes) for this file.  This is the
+    default behaviour when info_load_file () is called, but it is not
+    necessary when loading a subfile for which we already have tags. */
+ static FILE_BUFFER *
+ info_load_file_internal (char *filename, int get_tags)
+ {
+   char *fullpath, *contents;
+   long filesize;
+   struct stat finfo;
+   int retcode, compressed;
+   FILE_BUFFER *file_buffer = NULL;
+ 
+   /* Get the full pathname of this file, as known by the info system.
+      That is to say, search along INFOPATH and expand tildes, etc. */
+   fullpath = info_find_fullpath (filename);
+ 
+   /* Did we actually find the file? */
+   retcode = stat (fullpath, &finfo);
+ 
+   /* If the file referenced by the name returned from info_find_fullpath ()
+      doesn't exist, then try again with the last part of the filename
+      appearing in lowercase. */
+   /* This is probably not needed at all on those systems which define
+      FILENAME_CMP to be mbscasecmp.  But let's do it anyway, lest some
+      network redirector supports case sensitivity.  */
+   if (retcode < 0)
+     {
+       char *lowered_name;
+       char *tmp_basename;
+ 
+       lowered_name = xstrdup (filename);
+       tmp_basename = filename_non_directory (lowered_name);
+ 
+       while (*tmp_basename)
+         {
+           if (isupper (*tmp_basename))
+             *tmp_basename = tolower (*tmp_basename);
+ 
+           tmp_basename++;
+         }
+ 
+       fullpath = info_find_fullpath (lowered_name);
+ 
+       retcode = stat (fullpath, &finfo);
+       free (lowered_name);
+     }
+ 
+   /* If the file wasn't found, give up, returning a NULL pointer. */
+   if (retcode < 0)
+     {
+       filesys_error_number = errno;
+       return NULL;
+     }
+ 
+   /* Otherwise, try to load the file. */
+   contents = filesys_read_info_file (fullpath, &filesize, &finfo, &compressed);
+ 
+   if (!contents)
+     return NULL;
+ 
+   /* The file was found, and can be read.  Allocate FILE_BUFFER and fill
+      in the various members. */
+   file_buffer = make_file_buffer ();
+   file_buffer->filename = xstrdup (filename);
+   file_buffer->fullpath = xstrdup (fullpath);
+   file_buffer->finfo = finfo;
+   file_buffer->filesize = filesize;
+   file_buffer->contents = contents;
+   if (compressed)
+     file_buffer->flags |= N_IsCompressed;
+ 
+   /* If requested, build the tags and nodes for this file buffer. */
+   if (get_tags)
+     build_tags_and_nodes (file_buffer);
+ 
+   return file_buffer;
+ }
+ 
+ /* Grovel FILE_BUFFER->contents finding tags and nodes, and filling in the
+    various slots.  This can also be used to rebuild a tag or node table. */
+ void
+ build_tags_and_nodes (FILE_BUFFER *file_buffer)
+ {
+   SEARCH_BINDING binding;
+   long position;
+ 
+   free_file_buffer_tags (file_buffer);
+   file_buffer->flags &= ~N_HasTagsTable;
+ 
+   /* See if there is a tags table in this info file. */
+   binding.buffer = file_buffer->contents;
+   binding.start = file_buffer->filesize;
+   binding.end = binding.start - 1000;
+   if (binding.end < 0)
+     binding.end = 0;
+   binding.flags = S_FoldCase;
+ 
+   position = search_backward (TAGS_TABLE_END_LABEL, &binding);
+ 
+   /* If there is a tag table, find the start of it, and grovel over it
+      extracting tag information. */
+   if (position != -1)
+     while (1)
+       {
+         long tags_table_begin, tags_table_end;
+ 
+         binding.end = position;
+         binding.start = binding.end - 5 - strlen (TAGS_TABLE_END_LABEL);
+         if (binding.start < 0)
+           binding.start = 0;
+ 
+         position = find_node_separator (&binding);
+ 
+         /* For this test, (and all others here) failure indicates a bogus
+            tags table.  Grovel the file. */
+         if (position == -1)
+           break;
+ 
+         /* Remember the end of the tags table. */
+         binding.start = position;
+         tags_table_end = binding.start;
+         binding.end = 0;
+ 
+         /* Locate the start of the tags table. */
+         position = search_backward (TAGS_TABLE_BEG_LABEL, &binding);
+ 
+         if (position == -1)
+           break;
+ 
+         binding.end = position;
+         binding.start = binding.end - 5 - strlen (TAGS_TABLE_BEG_LABEL);
+         position = find_node_separator (&binding);
+ 
+         if (position == -1)
+           break;
+ 
+         /* The file contains a valid tags table.  Fill the FILE_BUFFER's
+            tags member. */
+         file_buffer->flags |= N_HasTagsTable;
+         tags_table_begin = position;
+ 
+         /* If this isn't an indirect tags table, just remember the nodes
+            described locally in this tags table.  Note that binding.end
+            is pointing to just after the beginning label. */
+         binding.start = binding.end;
+         binding.end = file_buffer->filesize;
+ 
+         if (!looking_at (TAGS_TABLE_IS_INDIRECT_LABEL, &binding))
+           {
+             binding.start = tags_table_begin;
+             binding.end = tags_table_end;
+             get_nodes_of_tags_table (file_buffer, &binding);
+             return;
+           }
+         else
+           {
+             /* This is an indirect tags table.  Build TAGS member. */
+             SEARCH_BINDING indirect;
+ 
+             indirect.start = tags_table_begin;
+             indirect.end = 0;
+             indirect.buffer = binding.buffer;
+             indirect.flags = S_FoldCase;
+ 
+             position = search_backward (INDIRECT_TAGS_TABLE_LABEL, &indirect);
+ 
+             if (position == -1)
+               {
+                 /* This file is malformed.  Give up. */
+                 return;
+               }
+ 
+             indirect.start = position;
+             indirect.end = tags_table_begin;
+             binding.start = tags_table_begin;
+             binding.end = tags_table_end;
+             get_tags_of_indirect_tags_table (file_buffer, &indirect, &binding);
+             return;
+           }
+       }
+ 
+   /* This file doesn't contain any kind of tags table.  Grovel the
+      file and build node entries for it. */
+   get_nodes_of_info_file (file_buffer);
+ }
+ 
+ /* Search through FILE_BUFFER->contents building an array of TAG *,
+    one entry per each node present in the file.  Store the tags in
+    FILE_BUFFER->tags, and the number of allocated slots in
+    FILE_BUFFER->tags_slots. */
+ static void
+ get_nodes_of_info_file (FILE_BUFFER *file_buffer)
+ {
+   long nodestart;
+   int tags_index = 0;
+   SEARCH_BINDING binding;
+ 
+   binding.buffer = file_buffer->contents;
+   binding.start = 0;
+   binding.end = file_buffer->filesize;
+   binding.flags = S_FoldCase;
+ 
+   while ((nodestart = find_node_separator (&binding)) != -1)
+     {
+       int start, end;
+       char *nodeline;
+       TAG *entry;
+       int anchor = 0;
+ 
+       /* Skip past the characters just found. */
+       binding.start = nodestart;
+       binding.start += skip_node_separator (binding.buffer + binding.start);
+ 
+       /* Move to the start of the line defining the node. */
+       nodeline = binding.buffer + binding.start;
+ 
+       /* Find "Node:" */
+       start = string_in_line (INFO_NODE_LABEL, nodeline);
+       /* No Node:.  Maybe it's a Ref:.  */
+       if (start == -1)
+         {
+           start = string_in_line (INFO_REF_LABEL, nodeline);
+           if (start != -1)
+             anchor = 1;
+         }
+ 
+       /* If not there, this is not the start of a node. */
+       if (start == -1)
+         continue;
+ 
+       /* Find the start of the nodename. */
+       start += skip_whitespace (nodeline + start);
+ 
+       /* Find the end of the nodename. */
+       end = start +
+         skip_node_characters (nodeline + start, DONT_SKIP_NEWLINES);
+ 
+       /* Okay, we have isolated the node name, and we know where the
+          node starts.  Remember this information. */
+       entry = xmalloc (sizeof (TAG));
+       entry->nodename = xmalloc (1 + (end - start));
+       strncpy (entry->nodename, nodeline + start, end - start);
+       entry->nodename[end - start] = 0;
+       entry->nodestart = nodestart;
+       if (anchor)
+         entry->nodelen = 0;
+       else
+         {
+           SEARCH_BINDING node_body;
+ 
+           node_body.buffer = binding.buffer + binding.start;
+           node_body.start = 0;
+           node_body.end = binding.end - binding.start;
+           node_body.flags = S_FoldCase;
+           entry->nodelen = get_node_length (&node_body);
+         }
+ 
+       entry->filename = file_buffer->fullpath;
+ 
+       /* Add this tag to the array of tag structures in this FILE_BUFFER. */
+       add_pointer_to_array (entry, tags_index, file_buffer->tags,
+                             file_buffer->tags_slots, 100, TAG *);
+     }
+ }
+ 
+ /* Return the length of the node which starts at BINDING. */
+ static long
+ get_node_length (SEARCH_BINDING *binding)
+ {
+   int i;
+   char *body;
+ 
+   /* [A node] ends with either a ^_, a ^L, or end of file.  */
+   for (i = binding->start, body = binding->buffer; i < binding->end; i++)
+     {
+       if (body[i] == INFO_FF || body[i] == INFO_COOKIE)
+         break;
+     }
+   return i - binding->start;
+ }
+ 
+ /* Build and save the array of nodes in FILE_BUFFER by searching through the
+    contents of BUFFER_BINDING for a tags table, and groveling the contents. */
+ static void
+ get_nodes_of_tags_table (FILE_BUFFER *file_buffer,
+     SEARCH_BINDING *buffer_binding)
+ {
+   int name_offset;
+   SEARCH_BINDING *tmp_search;
+   long position;
+   int tags_index = 0;
+ 
+   tmp_search = copy_binding (buffer_binding);
+ 
+   /* Find the start of the tags table. */
+   position = find_tags_table (tmp_search);
+ 
+   /* If none, we're all done. */
+   if (position == -1)
+     return;
+ 
+   /* Move to one character before the start of the actual table. */
+   tmp_search->start = position;
+   tmp_search->start += skip_node_separator
+     (tmp_search->buffer + tmp_search->start);
+   tmp_search->start += strlen (TAGS_TABLE_BEG_LABEL);
+   tmp_search->start--;
+ 
+   /* The tag table consists of lines containing node names and positions.
+      Do each line until we find one that doesn't contain a node name. */
+   while ((position = search_forward ("\n", tmp_search)) != -1)
+     {
+       TAG *entry;
+       char *nodedef;
+       unsigned p;
+       int anchor = 0;
+ 
+       /* Prepare to skip this line. */
+       tmp_search->start = position;
+       tmp_search->start++;
+ 
+       /* Skip past informative "(Indirect)" tags table line. */
+       if (!tags_index && looking_at (TAGS_TABLE_IS_INDIRECT_LABEL, tmp_search))
+         continue;
+ 
+       /* Find the label preceding the node name. */
+       name_offset =
+         string_in_line (INFO_NODE_LABEL, tmp_search->buffer + tmp_search->start);
+ 
+       /* If no node label, maybe it's an anchor.  */
+       if (name_offset == -1)
+         {
+           name_offset = string_in_line (INFO_REF_LABEL,
+               tmp_search->buffer + tmp_search->start);
+           if (name_offset != -1)
+             anchor = 1;
+         }
+ 
+       /* If not there, not a defining line, so we must be out of the
+          tags table.  */
+       if (name_offset == -1)
+         break;
+ 
+       entry = xmalloc (sizeof (TAG));
+ 
+       /* Find the beginning of the node definition. */
+       tmp_search->start += name_offset;
+       nodedef = tmp_search->buffer + tmp_search->start;
+       nodedef += skip_whitespace (nodedef);
+ 
+       /* Move past the node's name in this tag to the TAGSEP character. */
+       for (p = 0; nodedef[p] && nodedef[p] != INFO_TAGSEP; p++)
+         ;
+       if (nodedef[p] != INFO_TAGSEP)
+         continue;
+ 
+       entry->nodename = xmalloc (p + 1);
+       strncpy (entry->nodename, nodedef, p);
+       entry->nodename[p] = 0;
+       p++;
+       entry->nodestart = atol (nodedef + p);
+ 
+       /* If a node, we don't know the length yet, but if it's an
+          anchor, the length is 0. */
+       entry->nodelen = anchor ? 0 : -1;
+ 
+       /* The filename of this node is currently known as the same as the
+          name of this file. */
+       entry->filename = file_buffer->fullpath;
+ 
+       /* Add this node structure to the array of node structures in this
+          FILE_BUFFER. */
+       add_pointer_to_array (entry, tags_index, file_buffer->tags,
+                             file_buffer->tags_slots, 100, TAG *);
+     }
+   free (tmp_search);
+ }
+ 
+ /* A structure used only in `get_tags_of_indirect_tags_table' to hold onto
+    an intermediate value. */
+ typedef struct {
+   char *filename;
+   long first_byte;
+ } SUBFILE;
+ 
+ /* Remember in FILE_BUFFER the nodenames, subfilenames, and offsets within the
+    subfiles of every node which appears in TAGS_BINDING.  The 2nd argument is
+    a binding surrounding the indirect files list. */
+ static void
+ get_tags_of_indirect_tags_table (FILE_BUFFER *file_buffer,
+     SEARCH_BINDING *indirect_binding, SEARCH_BINDING *tags_binding)
+ {
+   int i;
+   SUBFILE **subfiles = NULL;
+   int subfiles_index = 0, subfiles_slots = 0;
+   TAG *entry;
+ 
+   /* First get the list of tags from the tags table.  Then lookup the
+      associated file in the indirect list for each tag, and update it. */
+   get_nodes_of_tags_table (file_buffer, tags_binding);
+ 
+   /* We have the list of tags in file_buffer->tags.  Get the list of
+      subfiles from the indirect table. */
+   {
+     char *start, *end, *line;
+     SUBFILE *subfile;
+ 
+     start = indirect_binding->buffer + indirect_binding->start;
+     end = indirect_binding->buffer + indirect_binding->end;
+     line = start;
+ 
+     while (line < end)
+       {
+         int colon;
+ 
+         colon = string_in_line (":", line);
+ 
+         if (colon == -1)
+           break;
+ 
+         subfile = xmalloc (sizeof (SUBFILE));
+         subfile->filename = xmalloc (colon);
+         strncpy (subfile->filename, line, colon - 1);
+         subfile->filename[colon - 1] = 0;
+         subfile->first_byte = (long) atol (line + colon);
+ 
+         add_pointer_to_array
+           (subfile, subfiles_index, subfiles, subfiles_slots, 10, SUBFILE *);
+ 
+         while (*line++ != '\n');
+       }
+   }
+ 
+   /* If we have successfully built the indirect files table, then
+      merge the information in the two tables. */
+   if (!subfiles)
+     {
+       free_file_buffer_tags (file_buffer);
+       return;
+     }
+   else
+     {
+       int tags_index;
+       long header_length;
+       SEARCH_BINDING binding;
+ 
+       /* Find the length of the header of the file containing the indirect
+          tags table.  This header appears at the start of every file.  We
+          want the absolute position of each node within each subfile, so
+          we subtract the start of the containing subfile from the logical
+          position of the node, and then add the length of the header in. */
+       binding.buffer = file_buffer->contents;
+       binding.start = 0;
+       binding.end = file_buffer->filesize;
+       binding.flags = S_FoldCase;
+ 
+       header_length = find_node_separator (&binding);
+       if (header_length == -1)
+         header_length = 0;
+ 
+       /* Build the file buffer's list of subfiles. */
+       {
+         char *containing_dir = xstrdup (file_buffer->fullpath);
+         char *temp = filename_non_directory (containing_dir);
+         int len_containing_dir;
+ 
+         if (temp > containing_dir)
+           {
+             if (HAVE_DRIVE (file_buffer->fullpath) &&
+                 temp == containing_dir + 2)
+               {
+                 /* Avoid converting "d:foo" into "d:/foo" below.  */
+                 *temp = '.';
+                 temp += 2;
+               }
+             temp[-1] = 0;
+           }
+ 
+         len_containing_dir = strlen (containing_dir);
+ 
+         for (i = 0; subfiles[i]; i++);
+ 
+         file_buffer->subfiles = xmalloc ((1 + i) * sizeof (char *));
+ 
+         for (i = 0; subfiles[i]; i++)
+           {
+             char *fullpath;
+ 
+             fullpath = xmalloc
+               (2 + strlen (subfiles[i]->filename) + len_containing_dir);
+ 
+             sprintf (fullpath, "%s/%s",
+                      containing_dir, subfiles[i]->filename);
+ 
+             file_buffer->subfiles[i] = fullpath;
+           }
+         file_buffer->subfiles[i] = NULL;
+         free (containing_dir);
+       }
+ 
+       /* For each node in the file's tags table, remember the starting
+          position. */
+       for (tags_index = 0; (entry = file_buffer->tags[tags_index]);
+            tags_index++)
+         {
+           for (i = 0;
+                subfiles[i] && entry->nodestart >= subfiles[i]->first_byte;
+                i++);
+ 
+           /* If the Info file containing the indirect tags table is
+              malformed, then give up. */
+           if (!i)
+             {
+               /* The Info file containing the indirect tags table is
+                  malformed.  Give up. */
+               for (i = 0; subfiles[i]; i++)
+                 {
+                   free (subfiles[i]->filename);
+                   free (subfiles[i]);
+                   free (file_buffer->subfiles[i]);
+                 }
+               file_buffer->subfiles = NULL;
+               free_file_buffer_tags (file_buffer);
+               return;
+             }
+ 
+           /* SUBFILES[i] is the index of the first subfile whose logical
+              first byte is greater than the logical offset of this node's
+              starting position.  This means that the subfile directly
+              preceding this one is the one containing the node. */
+ 
+           entry->filename = file_buffer->subfiles[i - 1];
+           entry->nodestart -= subfiles[i - 1]->first_byte;
+           entry->nodestart += header_length;
+         }
+ 
+       /* We have successfully built the tags table.  Remember that it
+          was indirect. */
+       file_buffer->flags |= N_TagsIndirect;
+     }
+ 
+   /* Free the structures assigned to SUBFILES.  Free the names as well
+      as the structures themselves, then finally, the array. */
+   for (i = 0; subfiles[i]; i++)
+     {
+       free (subfiles[i]->filename);
+       free (subfiles[i]);
+     }
+   free (subfiles);
+ }
+ 
+ 
+ /* Return the node that contains TAG in FILE_BUFFER, else
+    (pathologically) NULL.  Called from info_node_of_file_buffer_tags.  */
+ static NODE *
+ find_node_of_anchor (FILE_BUFFER *file_buffer, TAG *tag)
+ {
+   int anchor_pos, node_pos;
+   TAG *node_tag;
+   NODE *node;
+ 
+   /* Look through the tag list for the anchor.  */
+   for (anchor_pos = 0; file_buffer->tags[anchor_pos]; anchor_pos++)
+     {
+       TAG *t = file_buffer->tags[anchor_pos];
+       if (t->nodestart == tag->nodestart)
+         break;
+     }
+ 
+   /* Should not happen, because we should always find the anchor.  */
+   if (!file_buffer->tags[anchor_pos])
+     return NULL;
+ 
+   /* We've found the anchor.  Look backwards in the tag table for the
+      preceding node (we're assuming the tags are given in order),
+      skipping over any preceding anchors.  */
+   for (node_pos = anchor_pos - 1;
+        node_pos >= 0 && file_buffer->tags[node_pos]->nodelen == 0;
+        node_pos--)
+     ;
+ 
+   /* An info file with an anchor before any nodes is pathological, but
+      it's possible, so don't crash.  */
+   if (node_pos < 0)
+     return NULL;
+ 
+   /* We have the tag for the node that contained the anchor tag.  */
+   node_tag = file_buffer->tags[node_pos];
+ 
+   /* Look up the node name in the tag table to get the actual node.
+      This is a recursive call, but it can't recurse again, because we
+      call it with a real node.  */
+   node = info_node_of_file_buffer_tags (file_buffer, node_tag->nodename);
+ 
+   /* Start displaying the node at the anchor position.  */
+   if (node)
+     { /* The nodestart for real nodes is three characters before the `F'
+          in the `File:' line (a newline, the CTRL-_, and another
+          newline).  The nodestart for anchors is the actual position.
+          But we offset by only 2, rather than 3, because if an anchor is
+          at the beginning of a paragraph, it's nicer for it to end up on
+          the beginning of the first line of the paragraph rather than
+          the blank line before it.  (makeinfo has no way of knowing that
+          a paragraph is going to start, so we can't fix it there.)  */
+       node->display_pos = file_buffer->tags[anchor_pos]->nodestart
+                           - (node_tag->nodestart + 2);
+ 
+       /* Otherwise an anchor at the end of a node ends up displaying at
+          the end of the last line of the node (way over on the right of
+          the screen), which looks wrong.  */
+       if (node->display_pos >= (unsigned long) node->nodelen)
+         node->display_pos = node->nodelen - 1;
+ 
+       /* Don't search in the node for the xref text, it's not there.  */
+       node->flags |= N_FromAnchor;
+     }
+ 
+   return node;
+ }
+ 
+ 
+ /* Return the node from FILE_BUFFER which matches NODENAME by searching
+    the tags table in FILE_BUFFER, or NULL.  */
+ static NODE *
+ info_node_of_file_buffer_tags (FILE_BUFFER *file_buffer, char *nodename)
+ {
+   TAG *tag;
+   int i;
+ 
+   /* If no tags at all (possibly a misformatted info file), quit.  */
+   if (!file_buffer->tags) {
+     return NULL;
+   }
+ 
+   for (i = 0; (tag = file_buffer->tags[i]); i++)
+     if (strcmp (nodename, tag->nodename) == 0)
+       {
+         FILE_BUFFER *subfile = info_find_file_internal (tag->filename,
+                                                         INFO_NO_TAGS);
+         if (!subfile)
+           return NULL;
+ 
+         if (!subfile->contents)
+           {
+             info_reload_file_buffer_contents (subfile);
+             if (!subfile->contents)
+               return NULL;
+           }
+ 
+         /* If we were able to find this file and load it, then return
+            the node within it. */
+         {
+           NODE *node = xmalloc (sizeof (NODE));
+           node->filename    = subfile->fullpath;
+           node->parent      = NULL;
+           node->nodename    = tag->nodename;
+           node->contents    = subfile->contents + tag->nodestart;
+           node->display_pos = 0;
+           node->flags       = 0;
+ 
+           if (file_buffer->flags & N_HasTagsTable)
+             {
+               node->flags |= N_HasTagsTable;
+ 
+               if (file_buffer->flags & N_TagsIndirect)
+                 {
+                   node->flags |= N_TagsIndirect;
+                   node->parent = file_buffer->fullpath;
+                 }
+             }
+ 
+           if (subfile->flags & N_IsCompressed)
+             node->flags |= N_IsCompressed;
+ 
+           /* If TAG->nodelen hasn't been calculated yet, then we aren't
+              in a position to trust the entry pointer.  Adjust things so
+              that ENTRY->nodestart gets the exact address of the start of
+              the node separator which starts this node, and NODE->contents
+              gets the address of the line defining this node.  If we cannot
+              do that, the node isn't really here. */
+           if (tag->nodelen == -1)
+             {
+               int min, max;
+               char *node_sep;
+               SEARCH_BINDING node_body;
+               char *buff_end;
+ 
+               min = max = DEFAULT_INFO_FUDGE;
+ 
+               if (tag->nodestart < DEFAULT_INFO_FUDGE)
+                 min = tag->nodestart;
+ 
+               if (DEFAULT_INFO_FUDGE >
+                   (subfile->filesize - tag->nodestart))
+                 max = subfile->filesize - tag->nodestart;
+ 
+               /* NODE_SEP gets the address of the separator which defines
+                  this node, or NULL if the node wasn't found.
+                  NODE->contents is side-effected to point to right after
+                  the separator. */
+               node_sep = adjust_nodestart (node, min, max);
+               if (node_sep == NULL)
+                 {
+                   free (node);
+                   return NULL;
+                 }
+               /* Readjust tag->nodestart. */
+               tag->nodestart = node_sep - subfile->contents;
+ 
+               /* Calculate the length of the current node. */
+               buff_end = subfile->contents + subfile->filesize;
+ 
+               node_body.buffer = node->contents;
+               node_body.start = 0;
+               node_body.end = buff_end - node_body.buffer;
+               node_body.flags = 0;
+               tag->nodelen = get_node_length (&node_body);
+               node->nodelen = tag->nodelen;
+             }
+ 
+           else if (tag->nodelen == 0) /* anchor, return containing node */
+             {
+               free (node);
+               node = find_node_of_anchor (file_buffer, tag);
+             }
+ 
+           else
+             {
+               /* Since we know the length of this node, we have already
+                  adjusted tag->nodestart to point to the exact start of
+                  it.  Simply skip the node separator. */
+               node->contents += skip_node_separator (node->contents);
+               node->nodelen = tag->nodelen;
+             }
+ 
+           return node;
+         }
+       }
+ 
+   /* There was a tag table for this file, and the node wasn't found.
+      Return NULL, since this file doesn't contain the desired node. */
+   return NULL;
+ }
+ 
+ /* Managing file_buffers, nodes, and tags.  */
+ 
+ /* Create a new, empty file buffer. */
+ FILE_BUFFER *
+ make_file_buffer (void)
+ {
+   FILE_BUFFER *file_buffer = xmalloc (sizeof (FILE_BUFFER));
+ 
+   file_buffer->filename = file_buffer->fullpath = NULL;
+   file_buffer->contents = NULL;
+   file_buffer->tags = NULL;
+   file_buffer->subfiles = NULL;
+   file_buffer->tags_slots = 0;
+   file_buffer->flags = 0;
+ 
+   return file_buffer;
+ }
+ 
+ /* Add FILE_BUFFER to our list of already loaded info files. */
+ static void
+ remember_info_file (FILE_BUFFER *file_buffer)
+ {
+   int i;
+ 
+   for (i = 0; info_loaded_files && info_loaded_files[i]; i++)
+     ;
+ 
+   add_pointer_to_array (file_buffer, i, info_loaded_files,
+                         info_loaded_files_slots, 10, FILE_BUFFER *);
+ }
+ 
+ /* Forget the contents, tags table, nodes list, and names of FILENAME. */
+ static void
+ forget_info_file (char *filename)
+ {
+   int i;
+   FILE_BUFFER *file_buffer;
+ 
+   if (!info_loaded_files)
+     return;
+ 
+   for (i = 0; (file_buffer = info_loaded_files[i]); i++)
+     if (FILENAME_CMP (filename, file_buffer->filename) == 0
+         || FILENAME_CMP (filename, file_buffer->fullpath) == 0)
+       {
+         free (file_buffer->filename);
+         free (file_buffer->fullpath);
+ 
+         if (file_buffer->contents)
+           free (file_buffer->contents);
+ 
+         /* free_file_buffer_tags () also kills the subfiles list, since
+            the subfiles list is only of use in conjunction with tags. */
+         free_file_buffer_tags (file_buffer);
+ 
+         /* Move rest of list down.  */
+         while (info_loaded_files[i + 1])
+           {
+             info_loaded_files[i] = info_loaded_files[i + 1];
+             i++;
+           }
+         info_loaded_files[i] = 0;
+ 
+         break;
+       }
+ }
+ 
+ /* Free the tags (if any) associated with FILE_BUFFER. */
+ static void
+ free_file_buffer_tags (FILE_BUFFER *file_buffer)
+ {
+   int i;
+ 
+   if (file_buffer->tags)
+     {
+       TAG *tag;
+ 
+       for (i = 0; (tag = file_buffer->tags[i]); i++)
+         free_info_tag (tag);
+ 
+       free (file_buffer->tags);
+       file_buffer->tags = NULL;
+       file_buffer->tags_slots = 0;
+     }
+ 
+   if (file_buffer->subfiles)
+     {
+       for (i = 0; file_buffer->subfiles[i]; i++)
+         free (file_buffer->subfiles[i]);
+ 
+       free (file_buffer->subfiles);
+       file_buffer->subfiles = NULL;
+     }
+ }
+ 
+ /* Free the data associated with TAG, as well as TAG itself. */
+ static void
+ free_info_tag (TAG *tag)
+ {
+   free (tag->nodename);
+ 
+   /* We don't free tag->filename, because that filename is part of the
+      subfiles list for the containing FILE_BUFFER.  free_info_tags ()
+      will free the subfiles when it is appropriate. */
+ 
+   free (tag);
+ }
+ 
+ /* Load the contents of FILE_BUFFER->contents.  This function is called
+    when a file buffer was loaded, and then in order to conserve memory, the
+    file buffer's contents were freed and the pointer was zero'ed.  Note that
+    the file was already loaded at least once successfully, so the tags and/or
+    nodes members are still correctly filled. */
+ static void
+ info_reload_file_buffer_contents (FILE_BUFFER *fb)
+ {
+   int is_compressed;
+ 
+ #if defined (HANDLE_MAN_PAGES)
+   /* If this is the magic manpage node, don't try to reload, just give up. */
+   if (fb->flags & N_IsManPage)
+     return;
+ #endif
+ 
+   fb->flags &= ~N_IsCompressed;
+ 
+   /* Let the filesystem do all the work for us. */
+   fb->contents =
+     filesys_read_info_file (fb->fullpath, &(fb->filesize), &(fb->finfo),
+                             &is_compressed);
+   if (is_compressed)
+     fb->flags |= N_IsCompressed;
+ }
+ 
+ /* Return the actual starting memory location of NODE, side-effecting
+    NODE->contents.  MIN and MAX are bounds for a search if one is necessary.
+    Because of the way that tags are implemented, the physical nodestart may
+    not actually be where the tag says it is.  If that is the case, but the
+    node was found anyway, set N_UpdateTags in NODE->flags.  If the node is
+    found, return non-zero.  NODE->contents is returned positioned right after
+    the node separator that precedes this node, while the return value is
+    position directly on the separator that precedes this node.  If the node
+    could not be found, return a NULL pointer. */
+ static char *
+ adjust_nodestart (NODE *node, int min, int max)
+ {
+   long position;
+   SEARCH_BINDING node_body;
+ 
+   /* Define the node body. */
+   node_body.buffer = node->contents;
+   node_body.start = 0;
+   node_body.end = max;
+   node_body.flags = 0;
+ 
+   /* Try the optimal case first.  Who knows?  This file may actually be
+      formatted (mostly) correctly. */
+   if (node_body.buffer[0] != INFO_COOKIE && min > 2)
+     node_body.buffer -= 3;
+ 
+   position = find_node_separator (&node_body);
+ 
+   /* If we found a node start, then check it out. */
+   if (position != -1)
+     {
+       int sep_len;
+ 
+       sep_len = skip_node_separator (node->contents);
+ 
+       /* If we managed to skip a node separator, then check for this node
+          being the right one. */
+       if (sep_len != 0)
+         {
+           char *nodedef, *nodestart;
+           int offset;
+ 
+           nodestart = node_body.buffer + position + sep_len;
+           nodedef = nodestart;
+           offset = string_in_line (INFO_NODE_LABEL, nodedef);
+ 
+           if (offset != -1)
+             {
+               nodedef += offset;
+               nodedef += skip_whitespace (nodedef);
+               offset = skip_node_characters (nodedef, DONT_SKIP_NEWLINES);
+               if (((unsigned int) offset == strlen (node->nodename)) &&
+                   (strncmp (node->nodename, nodedef, offset) == 0))
+                 {
+                   node->contents = nodestart;
+                   return node_body.buffer + position;
+                 }
+             }
+         }
+     }
+ 
+   /* Oh well, I guess we have to try to find it in a larger area. */
+   node_body.buffer = node->contents - min;
+   node_body.start = 0;
+   node_body.end = min + max;
+   node_body.flags = 0;
+ 
+   position = find_node_in_binding (node->nodename, &node_body);
+ 
+   /* If the node couldn't be found, we lose big. */
+   if (position == -1)
+     return NULL;
+ 
+   /* Otherwise, the node was found, but the tags table could need updating
+      (if we used a tag to get here, that is).  Set the flag in NODE->flags. */
+   node->contents = node_body.buffer + position;
+   node->contents += skip_node_separator (node->contents);
+   if (node->flags & N_HasTagsTable)
+     node->flags |= N_UpdateTags;
+   return node_body.buffer + position;
+ }
diff -Nrc2 texinfo-4.12/info/nodes.h texinfo-4.13/info/nodes.h
*** texinfo-4.12/info/nodes.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/nodes.h	Sun Jul  1 14:20:31 2007
***************
*** 0 ****
--- 1,156 ----
+ /* nodes.h -- How we represent nodes internally.
+    $Id: nodes.h,v 1.6 2007/07/01 21:20:31 karl Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2002, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef NODES_H
+ #define NODES_H
+ 
+ #include "info.h"
+ 
+ /* User code interface.  */
+ 
+ /* Callers generally only want the node itself.  This structure is used
+    to pass node information around.  None of the information in this
+    structure should ever be directly freed.  The structure itself can
+    be passed to free ().  Note that NODE->parent is non-null if this
+    node's file is a subfile.  In that case, NODE->parent is the logical
+    name of the file containing this node.  Both names are given as full
+    paths, so you might have: node->filename = "/usr/gnu/info/emacs-1",
+    with node->parent = "/usr/gnu/info/emacs". */
+ typedef struct {
+   char *filename;               /* The physical file containing this node. */
+   char *parent;                 /* Non-null is the logical file name. */
+   char *nodename;               /* The name of this node. */
+   char *contents;               /* Characters appearing in this node. */
+   long nodelen;                 /* The length of the CONTENTS member. */
+   unsigned long display_pos;    /* Where to display at, if nonzero.  */
+   int flags;                    /* See immediately below. */
+ } NODE;
+ 
+ /* Defines that can appear in NODE->flags.  All informative. */
+ #define N_HasTagsTable 0x01     /* This node was found through a tags table. */
+ #define N_TagsIndirect 0x02     /* The tags table was an indirect one. */
+ #define N_UpdateTags   0x04     /* The tags table is out of date. */
+ #define N_IsCompressed 0x08     /* The file is compressed on disk. */
+ #define N_IsInternal   0x10     /* This node was made by Info. */
+ #define N_CannotGC     0x20     /* File buffer cannot be gc'ed. */
+ #define N_IsManPage    0x40     /* This node is a manpage. */
+ #define N_FromAnchor   0x80     /* Synthesized for an anchor reference. */
+ 
+ /* Internal data structures.  */
+ 
+ /* String constants. */
+ #define INFO_FILE_LABEL                 "File:"
+ #define INFO_REF_LABEL                  "Ref:"
+ #define INFO_NODE_LABEL                 "Node:"
+ #define INFO_PREV_LABEL                 "Prev:"
+ #define INFO_ALTPREV_LABEL              "Previous:"
+ #define INFO_NEXT_LABEL                 "Next:"
+ #define INFO_UP_LABEL                   "Up:"
+ #define INFO_MENU_LABEL                 "\n* Menu:"
+ #define INFO_MENU_ENTRY_LABEL           "\n* "
+ #define INFO_XREF_LABEL                 "*Note"
+ #define TAGS_TABLE_END_LABEL            "\nEnd Tag Table"
+ #define TAGS_TABLE_BEG_LABEL            "Tag Table:\n"
+ #define INDIRECT_TAGS_TABLE_LABEL       "Indirect:\n"
+ #define TAGS_TABLE_IS_INDIRECT_LABEL    "(Indirect)"
+ 
+ /* Character constants. */
+ #define INFO_COOKIE '\037'
+ #define INFO_FF     '\014'
+ #define INFO_TAGSEP '\177'
+ 
+ /* For each logical file that we have loaded, we keep a list of the names
+    of the nodes that are found in that file.  A pointer to a node in an
+    info file is called a "tag".  For split files, the tag pointer is
+    "indirect"; that is, the pointer also contains the name of the split
+    file where the node can be found.  For non-split files, the filename
+    member in the structure below simply contains the name of the current
+    file.  The following structure describes a single node within a file. */
+ typedef struct {
+   char *filename;               /* The file where this node can be found. */
+   char *nodename;               /* The node pointed to by this tag. */
+   long nodestart;               /* The offset of the start of this node. */
+   long nodelen;                 /* The length of this node. */
+ } TAG;
+ 
+ /* The following structure is used to remember information about the contents
+    of Info files that we have loaded at least once before.  The FINFO member
+    is present so that we can reload the file if it has been modified since
+    last being loaded.  All of the arrays appearing within this structure
+    are NULL terminated, and each array which can change size has a
+    corresponding SLOTS member which says how many slots have been allocated
+    (with malloc ()) for this array. */
+ typedef struct {
+   char *filename;               /* The filename used to find this file. */
+   char *fullpath;               /* The full pathname of this info file. */
+   struct stat finfo;            /* Information about this file. */
+   char *contents;               /* The contents of this particular file. */
+   long filesize;                /* The number of bytes this file expands to. */
+   char **subfiles;              /* If non-null, the list of subfiles. */
+   TAG **tags;                   /* If non-null, the indirect tags table. */
+   int tags_slots;               /* Number of slots allocated for TAGS. */
+   int flags;                    /* Various flags.  Mimics of N_* flags. */
+ } FILE_BUFFER;
+ 
+ /* Externally visible functions.  */
+ 
+ /* Array of FILE_BUFFER * which represents the currently loaded info files. */
+ extern FILE_BUFFER **info_loaded_files;
+ 
+ /* The number of slots currently allocated to INFO_LOADED_FILES. */
+ extern int info_loaded_files_slots;
+ 
+ /* Locate the file named by FILENAME, and return the information structure
+    describing this file.  The file may appear in our list of loaded files
+    already, or it may not.  If it does not already appear, find the file,
+    and add it to the list of loaded files.  If the file cannot be found,
+    return a NULL FILE_BUFFER *. */
+ extern FILE_BUFFER *info_find_file (char *filename);
+ 
+ /* Force load the file named FILENAME, and return the information structure
+    describing this file.  Even if the file was already loaded, this loads
+    a new buffer, rebuilds tags and nodes, and returns a new FILE_BUFFER *. */
+ extern FILE_BUFFER *info_load_file (char *filename);
+ 
+ /* Return a pointer to a NODE structure for the Info node (FILENAME)NODENAME.
+    FILENAME can be passed as NULL, in which case the filename of "dir" is used.
+    NODENAME can be passed as NULL, in which case the nodename of "Top" is used.
+    If the node cannot be found, return a NULL pointer. */
+ extern NODE *info_get_node (char *filename, char *nodename);
+ 
+ /* Return a pointer to a NODE structure for the Info node NODENAME in
+    FILE_BUFFER.  NODENAME can be passed as NULL, in which case the
+    nodename of "Top" is used.  If the node cannot be found, return a
+    NULL pointer. */
+ extern NODE *info_get_node_of_file_buffer (char *nodename,
+     FILE_BUFFER *file_buffer);
+ 
+ /* Grovel FILE_BUFFER->contents finding tags and nodes, and filling in the
+    various slots.  This can also be used to rebuild a tag or node table. */
+ extern void build_tags_and_nodes (FILE_BUFFER *file_buffer);
+ 
+ /* When non-zero, this is a string describing the most recent file error. */
+ extern char *info_recent_file_error;
+ 
+ /* Create a new, empty file buffer. */
+ extern FILE_BUFFER *make_file_buffer (void);
+ 
+ #endif /* not NODES_H */
diff -Nrc2 texinfo-4.12/info/pcterm.c texinfo-4.13/info/pcterm.c
*** texinfo-4.12/info/pcterm.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/pcterm.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,759 ----
+ /* pcterm.c -- How to handle the PC terminal for Info under MS-DOS/MS-Windows.
+    $Id: pcterm.c,v 1.8 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1998, 1999, 2003, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ 
+ /* WARNING WARNING WARNING!!!
+    This probably won't work as is with anything but DJGPP!  However, Borland
+    should come close, and other PC compilers will need minor modifications.  */
+ 
+ /* intl/libintl.h defines a macro `gettext' which
+    conflicts with conio.h header.  */
+ #ifdef gettext
+ # undef gettext
+ # define gettext _gettext
+ #endif
+ 
+ #include <pc.h>
+ #include <keys.h>
+ #include <conio.h>
+ 
+ #include "variables.h"
+ 
+ extern int speech_friendly;	/* defined in info.c */
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                PC Terminal Output Functions                      */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ static struct text_info outside_info;  /* holds screen params outside Info */
+ static unsigned char    norm_attr, inv_attr;
+ 
+ static unsigned const char * find_sequence (int);
+ 
+ /* Turn on reverse video. */
+ static void
+ pc_begin_inverse (void)
+ {
+   textattr (inv_attr);
+ }
+ 
+ /* Turn off reverse video. */
+ static void
+ pc_end_inverse (void)
+ {
+   textattr (norm_attr);
+ }
+ 
+ /* Move the cursor up one line. */
+ static void
+ pc_up_line (void)
+ {
+   int x, y;
+   ScreenGetCursor (&y, &x);
+   ScreenSetCursor (MAX (y-1, 0), x);
+ }
+ 
+ /* Move the cursor down one line. */
+ static void
+ pc_down_line (void)
+ {
+   int x, y;
+   ScreenGetCursor (&y, &x);
+   ScreenSetCursor (MIN (screenheight-1, y+1), x);
+ }
+ 
+ /* Clear the entire terminal screen. */
+ static void
+ pc_clear_screen (void)
+ {
+   ScreenClear ();
+ }
+ 
+ /* Clear from the current position of the cursor to the end of the line. */
+ static void
+ pc_clear_to_eol (void)
+ {
+   clreol (); /* perhaps to be replaced by a loop */
+ }
+ 
+ /* Set the global variables SCREENWIDTH and SCREENHEIGHT. */
+ static void
+ pc_get_screen_size(void)
+ {
+   /* Current screen dimensions are the default.  */
+   if (!outside_info.screenheight)	/* paranoia */
+     gettextinfo (&outside_info);
+   screenwidth  = outside_info.screenwidth;
+   screenheight = outside_info.screenheight;
+ 
+   /* Environment variable "LINES" overrides the default.  */
+   if (getenv ("LINES") != NULL)
+     screenheight = atoi (getenv ("LINES"));
+ 
+   /* Environment variable "INFO_LINES" overrides "LINES".  */
+   if (getenv ("INFO_LINES") != NULL)
+     screenheight = atoi (getenv ("INFO_LINES"));
+ }
+ 
+ /* Move the cursor to the terminal location of X and Y. */
+ static void
+ pc_goto_xy (x, y)
+      int x, y;
+ {
+   ScreenSetCursor (y, x); /* yes, pc.h says ScreenSetCursor (row, column) !! */
+ }
+ 
+ /* Print STRING to the terminal at the current position. */
+ static void
+ pc_put_text (string)
+      char *string;
+ {
+   if (speech_friendly)
+     fputs (string, stdout);
+   else
+     cputs (string);
+ }
+ 
+ /* Ring the terminal bell.  The bell is rung visibly if the terminal is
+    capable of doing that, and if terminal_use_visible_bell_p is non-zero. */
+ static void
+ pc_ring_bell(void)
+ {
+   if (terminal_has_visible_bell_p && terminal_use_visible_bell_p)
+     ScreenVisualBell ();
+   else
+     {
+       printf ("%c",'\a');
+       fflush (stdout);
+     }
+ }
+ 
+ /* Print NCHARS from STRING to the terminal at the current position. */
+ static void
+ pc_write_chars (string, nchars)
+     char *string;
+     int nchars;
+ {
+   if (!nchars)
+     return;
+ 
+   if (speech_friendly)
+     printf ("%.*s",nchars, string);
+   else
+     cprintf ("%..*s",nchars, string);
+ }
+ 
+ /* Scroll an area of the terminal from START to (and excluding) END,
+    AMOUNT lines.  If AMOUNT is negative, the lines are scrolled
+    towards the top of the screen, else they are scrolled towards the
+    bottom of the screen.  The lines of the old region which do not
+    overlap the new region are cleared, to mimic terminal operation.  */
+ static void
+ pc_scroll_terminal (start, end, amount)
+     int start, end, amount;
+ {
+   int line_to_clear = amount > 0 ? start : end + amount;
+ 
+   /* Move the text.  Note that `movetext' expects 1-based coordinates.  */
+   movetext (1, start + 1, ScreenCols (), end, 1, start + amount + 1);
+ 
+   /* Now clear the lines which were left unoccupied.  */
+   if (amount < 0)
+     amount = -amount;
+   while (amount--)
+     {
+       ScreenSetCursor (line_to_clear++, 0);
+       clreol ();
+     }
+ }
+ 
+ /* Put the screen in the video mode and colors which Info will use.
+    Prepare to start using the terminal to read characters singly.  */
+ static void
+ pc_prep_terminal (void)
+ {
+   int tty;
+ 
+   /* Do not set screen height if we already have it, because
+      doing so erases the screen.  */
+   if (screenheight != ScreenRows ())
+     _set_screen_lines (screenheight);
+ 
+   /* Don't fail if they asked for screen dimensions that their
+      hardware cannot support.  */
+   screenheight = ScreenRows ();
+   screenwidth  = ScreenCols ();
+ 
+   /* Try setting the colors user asked for.  */
+   textattr (norm_attr);
+   ScreenClear ();
+ 
+   /* Switch console reads to binary mode.  */
+   tty = fileno (stdin);
+ #ifdef __DJGPP__
+   setmode (tty, O_BINARY);
+   __djgpp_set_ctrl_c (1);	/* re-enable SIGINT generation by Ctrl-C */
+ #endif
+ }
+ 
+ /* Restore the tty settings back to what they were before we started using
+    this terminal. */
+ static void
+ pc_unprep_terminal (void)
+ {
+   int tty;
+ 
+   textattr (outside_info.normattr);
+ 
+   /* Do not set screen height if we already have it, because
+      doing so erases the screen.  */
+   if (outside_info.screenheight != ScreenRows ())
+     {
+       _set_screen_lines (outside_info.screenheight);
+       textmode (LASTMODE);
+     }
+   else
+     pc_clear_to_eol ();	/* for text attributes to really take effect */
+ 
+   /* Switch back to text mode on stdin.  */
+   tty = fileno (stdin);
+ #ifdef __DJGPP__
+   setmode (tty, O_TEXT);
+ #endif
+ }
+ 
+ /* Initialize the terminal which is known as TERMINAL_NAME.  If this
+    terminal doesn't have cursor addressability, `terminal_is_dumb_p'
+    becomes nonzero.  The variables SCREENHEIGHT and SCREENWIDTH are set
+    to the dimensions that this terminal actually has.  The variable
+    TERMINAL_HAS_META_P becomes nonzero if this terminal supports a Meta
+    key.  Finally, the terminal screen is cleared. */
+ static void
+ pc_initialize_terminal (term_name)
+     char *term_name;
+ {
+   char *info_colors;
+ 
+   if (!term_name)
+     {
+       term_name = getenv ("TERM");
+       if (!term_name)
+ 	term_name = "pc-dos";	/* ``what's in a name?'' */
+     }
+ 
+   /* Get current video information, to be restored later.  */
+   if (outside_info.screenwidth == 0)
+     gettextinfo (&outside_info);
+ 
+   /* Current screen colors are the default.  */
+   norm_attr    = outside_info.normattr;
+   inv_attr     = (((outside_info.normattr &    7) << 4) |
+                   ((outside_info.normattr & 0x7f) >> 4));
+ 
+   /* Does the user want non-default colors?  */
+   info_colors = getenv ("INFO_COLORS");
+   if ((info_colors != (char *)0) && !speech_friendly)
+     {
+       /* Decode a color from a string descriptor.
+ 	 The descriptor string is a sequence of color specifiers separated
+ 	 by a non-numeric character.  Each color specifier should represent
+ 	 a small integer which fits into an unsigned char, and can be given
+ 	 in any base supported by strtoul.  Examples of valid descriptors:
+ 
+ 		"10 31"
+ 		"0x13/0x45"
+ 		"007.077"
+ 
+ 	The separator between two color specifiers can be any character which
+ 	cannot be used in a printed representation of an integer number.  */
+       char *endp;
+       unsigned long color_desc = strtoul (info_colors, &endp, 0);
+ 
+       if (color_desc <= UCHAR_MAX)
+ 	{
+ 	  norm_attr = (unsigned char)color_desc;
+ 	  color_desc = strtoul (endp + 1, &endp, 0);
+ 	  if (color_desc <= UCHAR_MAX)
+ 	    inv_attr = (unsigned char)color_desc;
+ 	}
+     }
+ 
+   /* We can scroll.  */
+   terminal_can_scroll = 1;
+ 
+   /* We know how to produce a visible bell, if somebody's looking...  */
+   if (!speech_friendly)
+     terminal_has_visible_bell_p = 1;
+ 
+   /* We have a Meta key.  */
+   terminal_has_meta_p = 1;
+ 
+   /* We are *certainly* NOT dumb!  */
+   terminal_is_dumb_p = 0;
+ 
+   pc_get_screen_size ();
+ 
+   /* Store the arrow keys.  */
+   term_ku = (char *)find_sequence (K_Up);
+   term_kd = (char *)find_sequence (K_Down);
+   term_kr = (char *)find_sequence (K_Right);
+   term_kl = (char *)find_sequence (K_Left);
+ 
+   term_kP = (char *)find_sequence (K_PageUp);
+   term_kN = (char *)find_sequence (K_PageDown);
+ 
+ #if defined(INFOKEY)
+   term_kh = (char *)find_sequence (K_Home);
+   term_ke = (char *)find_sequence (K_End);
+   term_ki = (char *)find_sequence (K_Insert);
+   term_kx = (char *)find_sequence (K_Delete);
+ #endif
+ 
+   /* Set all the hooks to our PC-specific functions.  */
+   terminal_begin_inverse_hook       = pc_begin_inverse;
+   terminal_end_inverse_hook         = pc_end_inverse;
+   terminal_prep_terminal_hook       = pc_prep_terminal;
+   terminal_unprep_terminal_hook     = pc_unprep_terminal;
+   terminal_up_line_hook             = pc_up_line;
+   terminal_down_line_hook           = pc_down_line;
+   terminal_clear_screen_hook        = pc_clear_screen;
+   terminal_clear_to_eol_hook        = pc_clear_to_eol;
+   terminal_get_screen_size_hook     = pc_get_screen_size;
+   terminal_goto_xy_hook             = pc_goto_xy;
+   terminal_put_text_hook            = pc_put_text;
+   terminal_ring_bell_hook           = pc_ring_bell;
+   terminal_write_chars_hook         = pc_write_chars;
+   terminal_scroll_terminal_hook     = pc_scroll_terminal;
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*            How to Read Characters From the PC Terminal           */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* This will most certainly work ONLY with DJGPP.  */
+ #ifdef __DJGPP__
+ 
+ #include <errno.h>
+ #include <sys/fsext.h>
+ #include <dpmi.h>
+ 
+ /* Translation table for some special keys.
+    Arrow keys which are standard on other keyboards are translated into
+    standard ESC-sequences, in case somebody rebinds the simple keys
+    (like C-f, C-b, C-n, etc.).
+ 
+    The strange "\033\061" prefix in some keys is a numeric argument of
+    one, which means ``do the next command once''.  It is here so that
+    when the according PC key is pressed in the middle of an incremental
+    search, Info doesn't see just an ASCII character like `n' or `B',
+    and doesn't add it to the search string; instead, it will exit the
+    incremental search and then perform the command.  */
+ static struct
+ {
+   int inkey;
+   unsigned char const * const sequence;
+ } DJGPP_keytab[] = {		   /* these are for moving between nodes... */
+   {K_Control_PageDown,  "\033\061n"},
+   {K_Control_PageUp,    "\033\061p"},
+   {K_Control_Up,        "\033\061u"},
+   {K_Control_Down,      "\033\061m"},
+   {K_Control_Center,    "\033\061l"},
+ 
+ #if defined(INFOKEY)
+   {K_Home,              "\033[H"}, /* ...and these are for moving IN a node */
+   {K_End,               "\033[F"}, /* they're Numeric-Keypad-Keys, so       */
+ #else
+   {K_Home,              "\001"},
+   {K_End,               "\005"},
+ #endif
+   {K_Left,              "\033[D"}, /* NUMLOCK should be off !!              */
+   {K_Right,             "\033[C"},
+   {K_Down,              "\033[B"},
+   {K_Up,                "\033[A"},
+   {K_PageDown,          "\033[G"},
+   {K_PageUp,            "\033[I"},
+   {K_Control_Left,      "\033b"},
+   {K_Control_Right,     "\033f"},
+   {K_Control_Home,      "\033<"},
+   {K_Control_End,       "\033>"},
+ 
+ #if defined(INFOKEY)
+   {K_EHome,             "\033[H"}, /* these are also for moving IN a node */
+   {K_EEnd,              "\033[F"}, /* they're the "extended" (Grey) keys  */
+ #else
+   {K_EHome,             "\001"},
+   {K_EEnd,              "\005"},
+ #endif
+   {K_ELeft,             "\033[D"},
+   {K_ERight,            "\033[C"},
+   {K_EDown,             "\033[B"},
+   {K_EUp,               "\033[A"},
+   {K_EPageDown,         "\033[G"},
+   {K_EPageUp,           "\033[I"},
+   {K_Control_ELeft,     "\033b"},
+   {K_Control_ERight,    "\033f"},
+   {K_Control_EHome,     "\033<"},
+   {K_Control_EEnd,      "\033>"},
+ 
+   {K_BackTab,           "\033\011"},
+   {K_F1,                "\10"},    /* YEAH, gimme that good old F-one-thing */
+   {K_Delete,            "\177"},   /* to make Kp-Del be DEL (0x7f)          */
+   {K_EDelete,           "\177"},   /* to make Delete be DEL (0x7f)          */
+ #if defined(INFOKEY)
+   {K_Insert,            "\033[L"},
+   {K_EInsert,           "\033[L"},
+ #endif
+ 
+   /* These are here to map more Alt-X keys to ESC X sequences.  */
+   {K_Alt_Q,             "\033q"},
+   {K_Alt_W,             "\033w"},
+   {K_Alt_E,             "\033e"},
+   {K_Alt_R,             "\033r"},
+   {K_Alt_T,             "\033t"},
+   {K_Alt_Y,             "\033y"},
+   {K_Alt_U,             "\033u"},
+   {K_Alt_I,             "\033i"},
+   {K_Alt_O,             "\033o"},
+   {K_Alt_P,             "\033p"},
+   {K_Alt_LBracket,      "\033["},
+   {K_Alt_RBracket,      "\033]"},
+   {K_Alt_Return,        "\033\015"},
+   {K_Alt_A,             "\033a"},
+   {K_Alt_S,             "\033s"},
+   {K_Alt_D,             "\033d"},
+   {K_Alt_F,             "\033f"},
+   {K_Alt_G,             "\033g"},
+   {K_Alt_H,             "\033h"},
+   {K_Alt_J,             "\033j"},
+   {K_Alt_K,             "\033k"},
+   {K_Alt_L,             "\033l"},
+   {K_Alt_Semicolon,     "\033;"},
+   {K_Alt_Quote,         "\033'"},
+   {K_Alt_Backquote,     "\033`"},
+   {K_Alt_Backslash,     "\033\\"},
+   {K_Alt_Z,             "\033z"},
+   {K_Alt_X,             "\033x"},
+   {K_Alt_C,             "\033c"},
+   {K_Alt_V,             "\033v"},
+   {K_Alt_B,             "\033b"},
+   {K_Alt_N,             "\033n"},
+   {K_Alt_M,             "\033m"},
+   {K_Alt_Comma,         "\033<"}, /* our reader cannot distinguish between */
+   {K_Alt_Period,        "\033>"}, /* Alt-. and Alt->, so we cheat a little */
+   {K_Alt_Slash,         "\033?"}, /* ditto, to get Alt-?                   */
+   {K_Alt_Backspace,     "\033\177"}, /* M-DEL, to delete word backwards */
+   {K_Alt_1,             "\033\061"},
+   {K_Alt_2,             "\033\062"},
+   {K_Alt_3,             "\033\063"},
+   {K_Alt_4,             "\033\064"},
+   {K_Alt_5,             "\033\065"},
+   {K_Alt_6,             "\033\066"},
+   {K_Alt_7,             "\033\067"},
+   {K_Alt_8,             "\033\070"},
+   {K_Alt_9,             "\033\071"},
+   {K_Alt_0,             "\033\060"},
+   {K_Alt_Dash,          "\033\055"},
+   {K_Alt_EPageUp,       "\033\033[I"},
+   {K_Alt_EPageDown,     "\033\033[G"},
+   {K_Alt_Equals,        "\033\075"},
+   {K_Alt_EDelete,       "\033\177"},
+   {K_Alt_Tab,           "\033\011"},
+   {0, 0}
+ };
+ 
+ /* Given a key, return the sequence of characters which
+    our keyboard driver generates.  */
+ static unsigned const char *
+ find_sequence (int key)
+ {
+   int i;
+ 
+   for (i = 0; DJGPP_keytab[i].inkey; i++)
+     if (key == DJGPP_keytab[i].inkey)
+       return DJGPP_keytab[i].sequence;
+ 
+   return NULL;
+ }
+ 
+ /* Return zero if a key is pending in the
+    keyboard buffer, non-zero otherwise.  */
+ static int
+ kbd_buffer_empty (void)
+ {
+   __dpmi_regs r;
+   int retval;
+ 
+   r.h.ah = 0x11;	/* Get enhanced keyboard status */
+   __dpmi_int (0x16, &r);
+ 
+   /* If the keyboard buffer is empty, the Zero Flag will be set.  */
+   return (r.x.flags & 0x40) == 0x40;
+ }
+ 
+ /* The buffered characters pending to be read.
+    Actually, Info usually reads a single character, but when we
+    translate a key into a sequence of characters, we keep them here.  */
+ static unsigned char buffered[512];
+ 
+ /* Index of the next buffered character to be returned.  */
+ static int buf_idx;
+ 
+ /* Return the number of characters waiting to be read.  */
+ long
+ pc_term_chars_avail (void)
+ {
+   if (buf_idx >= sizeof (buffered)) /* paranoia */
+     {
+       buf_idx = 0;
+       buffered[buf_idx] = '\0';
+       return 0;
+     }
+   else
+     return strlen (buffered + buf_idx);
+ }
+ 
+ /* Our special terminal keyboard reader.  It will be called by
+    low-level libc functions when the application calls `read' or
+    the ANSI-standard stream-oriented read functions.  If the
+    caller wants to read the terminal, we redirect the call to
+    the BIOS keyboard functions, since that lets us recognize more
+    keys than DOS does.  */
+ static int
+ keyboard_read (__FSEXT_Fnumber func, int *retval, va_list rest_args)
+ {
+   /* When we are called, REST_ARGS are: file_descriptor, buf, nbytes.  */
+   unsigned char *buf;
+   size_t nbytes, nread = 0;
+   int fd = va_arg (rest_args, int);
+ 
+   /* Is this call for us?  */
+   if (func != __FSEXT_read || !isatty (fd))
+     return 0;	/* and the usual DOS call will be issued */
+ 
+   buf = va_arg (rest_args, unsigned char *);
+   nbytes = va_arg (rest_args, size_t);
+ 
+   if (!buf)
+     {
+       errno = EINVAL;
+       *retval = -1;
+       return 1;
+     }
+   if (!nbytes)
+     {
+       *retval = 0;
+       return 1;
+     }
+ 
+   /* Loop here until enough bytes has been read.  */
+   do
+     {
+       int key;
+ 
+       /* If any ``buffered characters'' are left, return as much
+ 	 of them as the caller wanted.  */
+       while (buffered[buf_idx] && nbytes)
+ 	{
+ 	  *buf++ = buffered[buf_idx++];
+ 	  nread++;
+ 	  nbytes--;
+ 	}
+ 
+       if (nbytes <= 0)
+ 	break;
+ 
+       /* Wait for another key.
+ 	 We do that in a busy-waiting loop so we don't get parked
+ 	 inside a BIOS call, which will effectively disable signals.
+          While we wait for them to type something, we repeatedly
+          release the rest of our time slice, so that other programs
+          in a multitasking environment, such as Windows, get more cycles.  */
+       while (kbd_buffer_empty ())
+ 	__dpmi_yield ();
+ 
+       key = getxkey ();
+ 
+       /* Translate the key if necessary.
+ 	 Untranslated non-ASCII keys are silently ignored.  */
+       if ((key & 0x300) != 0)
+ 	{
+ 	  unsigned char const * key_sequence = find_sequence (key);
+ 
+ 	  if (key_sequence != NULL)
+ 	    {
+ 	      strcpy (buffered, key_sequence);
+ 	      buf_idx = 0;
+ 	    }
+ 	}
+       else if (key == K_Control_Z)
+ 	raise (SIGUSR1);	/* we don't have SIGTSTP, so simulate it */
+       else if (key <= 0xff)
+ 	{
+ 	  *buf++ = key;
+ 	  nbytes--;
+ 	  nread++;
+ 	}
+     }
+   while (nbytes > 0);
+ 
+   *retval = nread;
+   return 1;	/* meaning that we handled the call */
+ }
+ 
+ /* Install our keyboard handler.
+    This is called by the startup code before `main'.  */
+ static void __attribute__((constructor))
+ install_keyboard_handler (void)
+ {
+   __FSEXT_set_function (fileno (stdin), keyboard_read);
+ 
+   /* We need to set this single hook here; the rest
+      will be set by pc_initialize_terminal when it is called.  */
+   terminal_initialize_terminal_hook = pc_initialize_terminal;
+ }
+ 
+ #endif /* __DJGPP__ */
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                Emulation of SIGTSTP on Ctrl-Z                    */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ #include <limits.h>
+ #include "signals.h"
+ #include "session.h"
+ 
+ #ifndef PATH_MAX
+ # define PATH_MAX 512
+ #endif
+ 
+ /* Effectively disable signals which aren't defined
+    (assuming no signal can ever be zero).
+    SIGINT is ANSI, so we expect it to be always defined.  */
+ #ifndef SIGUSR1
+ # define SIGUSR1 0
+ #endif
+ #ifndef SIGQUIT
+ # define SIGQUIT 0
+ #endif
+ 
+ int
+ kill (pid_t pid, int sig)
+ {
+   static char interrupted_msg[] = "Interrupted\r\n";
+   static char stopped_msg[] = "Stopped.  Type `exit RET' to return.\r\n";
+   char cwd[PATH_MAX + 1];
+ 
+   if (pid == getpid ()
+       || pid == 0
+       || pid == -1
+       || pid == -getpid ())
+     {
+       switch (sig)
+ 	{
+ 	RETSIGTYPE (*old_INT)(int), (*old_QUIT)(int);
+ 
+ 	case SIGINT:
+ #ifdef __DJGPP__
+ 	  /* If SIGINT was generated by a readable key, we want to remove
+ 	     it from the PC keyboard buffer, so that DOS and other
+ 	     programs never see it.  DJGPP signal-handling mechanism
+ 	     doesn't remove the INT key from the keyboard buffer.  */
+ 	  if (!kbd_buffer_empty ())
+ 	    getxkey ();
+ #endif
+ 	  pc_write_chars (interrupted_msg, sizeof (interrupted_msg) - 1);
+ 	  xexit (1);
+ 	case SIGUSR1:
+ 	  /* Simulate SIGTSTP by invoking a subsidiary shell.  */
+ 	  pc_goto_xy (0, outside_info.screenheight - 1);
+ 	  pc_clear_to_eol ();
+ 	  pc_write_chars (stopped_msg, sizeof (stopped_msg) - 1);
+ 
+ 	  /* The child shell can change the working directory, so
+ 	     we need to save and restore it, since it is global.  */
+ 	  if (!getcwd (cwd, PATH_MAX)) /* should never happen */
+ 	    cwd[0] = '\0';
+ 
+ 	  /* We don't want to get fatal signals while the subshell runs.  */
+ 	  old_INT = signal (SIGINT, SIG_IGN);
+ 	  old_QUIT = signal (SIGQUIT, SIG_IGN);
+ 	  system ("");
+ 	  if (*cwd)
+ 	    chdir (cwd);
+ 	  signal (SIGINT, old_INT);
+ 	  signal (SIGQUIT, old_QUIT);
+ 	  break;
+ 	default:
+ 	  if (sig)
+ 	    raise (sig);
+ 	  break;
+ 	}
+       return 0;
+     }
+   else
+     return -1;
+ }
+ 
+ /* These should never be called, but they make the linker happy.  */
+ 
+ void       tputs (char *a, int b, int (*c)())
+ {
+   perror ("tputs");
+ }
+ 
+ char*     tgoto (char*a, int b, int c)
+ {
+   perror ("tgoto"); return 0; /* here and below, added dummy retvals */
+ }
+ 
+ int       tgetnum (char*a)
+ {
+   perror ("tgetnum"); return 0;
+ }
+ 
+ int       tgetflag (char*a)
+ {
+   perror ("tgetflag"); return 0;
+ }
+ 
+ char*     tgetstr (char *a, char **b)
+ {
+   perror ("tgetstr"); return 0;
+ }
+ 
+ int       tgetent (char*a, char*b)
+ {
+   perror ("tgetent"); return 0;
+ }
+ 
+ int	tcgetattr(int fildes, struct termios *termios_p)
+ {
+   perror ("tcgetattr"); return 0;
+ }
+ 
+ int	tcsetattr(int fd, int opt_actions, const struct termios *termios_p)
+ {
+   perror ("tcsetattr"); return 0;
+ }
diff -Nrc2 texinfo-4.12/info/search.c texinfo-4.13/info/search.c
*** texinfo-4.12/info/search.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/search.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,677 ----
+ /* search.c -- searching large bodies of text.
+    $Id: search.c,v 1.9 2008/06/11 09:55:42 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2002, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include <regex.h>
+ 
+ #include "search.h"
+ #include "nodes.h"
+ 
+ /* The search functions take two arguments:
+ 
+      1) a string to search for, and
+ 
+      2) a pointer to a SEARCH_BINDING which contains the buffer, start,
+         and end of the search.
+ 
+    They return a long, which is the offset from the start of the buffer
+    at which the match was found.  An offset of -1 indicates failure. */
+ 
+ /* A function which makes a binding with buffer and bounds. */
+ SEARCH_BINDING *
+ make_binding (char *buffer, long int start, long int end)
+ {
+   SEARCH_BINDING *binding;
+ 
+   binding = xmalloc (sizeof (SEARCH_BINDING));
+   binding->buffer = buffer;
+   binding->start = start;
+   binding->end = end;
+   binding->flags = 0;
+ 
+   return binding;
+ }
+ 
+ /* Make a copy of BINDING without duplicating the data. */
+ SEARCH_BINDING *
+ copy_binding (SEARCH_BINDING *binding)
+ {
+   SEARCH_BINDING *copy;
+ 
+   copy = make_binding (binding->buffer, binding->start, binding->end);
+   copy->flags = binding->flags;
+   return copy;
+ }
+ 
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                 The Actual Searching Functions                   */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Search forwards or backwards for the text delimited by BINDING.
+    The search is forwards if BINDING->start is greater than BINDING->end. */
+ long
+ search (char *string, SEARCH_BINDING *binding)
+ {
+   long result;
+ 
+   /* If the search is backwards, then search backwards, otherwise forwards. */
+   if (binding->start > binding->end)
+     result = search_backward (string, binding);
+   else
+     result = search_forward (string, binding);
+ 
+   return result;
+ }
+ 
+ /* Search forwards or backwards for anything matching the regexp in the text
+    delimited by BINDING. The search is forwards if BINDING->start is greater
+    than BINDING->end.
+ 
+    If PRET is specified, it receives a copy of BINDING at the end of a
+    succeded search.  Its START and END fields contain bounds of the found
+    string instance. 
+ */
+ long
+ regexp_search (char *regexp, SEARCH_BINDING *binding, long length,
+ 	       SEARCH_BINDING *pret)
+ {
+   static char *previous_regexp = NULL;
+   static char *previous_content = NULL;
+   static int was_insensitive = 0;
+   static regex_t preg;
+   static regmatch_t *matches;
+   static int match_alloc = 0;
+   static int match_count = 0;
+   regoff_t pos;
+ 
+   if (previous_regexp == NULL
+       || ((binding->flags & S_FoldCase) != was_insensitive)
+       || (strcmp (previous_regexp, regexp) != 0))
+     {
+       /* need to compile a new regexp */
+       int result;
+       char *unescaped_regexp;
+       char *p, *q;
+ 
+       previous_content = NULL;
+ 
+       if (previous_regexp != NULL)
+         {
+           free (previous_regexp);
+           previous_regexp = NULL;
+           regfree (&preg);
+         }
+ 
+       was_insensitive = binding->flags & S_FoldCase;
+ 
+       /* expand the \n and \t in regexp */
+       unescaped_regexp = xmalloc (1 + strlen (regexp));
+       for (p = regexp, q = unescaped_regexp; *p != '\0'; p++, q++)
+         {
+           if (*p == '\\')
+             switch(*++p)
+               {
+               case 'n':
+                 *q = '\n';
+                 break;
+               case 't':
+                 *q = '\t';
+                 break;
+               case '\0':
+                 *q = '\\';
+                 p--;
+                 break;
+               default:
+                 *q++ = '\\';
+                 *q = *p;
+                 break;
+               }
+           else
+             *q = *p;
+         }
+       *q = '\0';
+ 
+       result = regcomp (&preg, unescaped_regexp,
+                        REG_EXTENDED|
+                        REG_NEWLINE|
+                        (was_insensitive ? REG_ICASE : 0));
+       free (unescaped_regexp);
+ 
+       if (result != 0)
+         {
+           int size = regerror (result, &preg, NULL, 0);
+           char *buf = xmalloc (size);
+           regerror (result, &preg, buf, size);
+           info_error (_("regexp error: %s"), buf, NULL);
+           return -1;
+         }
+ 
+       previous_regexp = xstrdup(regexp);
+     }
+ 
+   if (previous_content != binding->buffer)
+     {
+       /* new buffer to search in, let's scan it */
+       regoff_t start = 0;
+       char saved_char;
+ 
+       previous_content = binding->buffer;
+       saved_char = previous_content[length-1];
+       previous_content[length-1] = '\0';
+ 
+       for (match_count = 0; start < length; )
+         {
+           int result = 0;
+           if (match_count >= match_alloc)
+             {
+               /* match list full. Initially allocate 256 entries, then double
+                  every time we fill it */
+               match_alloc = (match_alloc > 0 ? match_alloc * 2 : 256);
+               matches = xrealloc (matches,
+ 				  match_alloc * sizeof(regmatch_t));
+             }
+ 
+           result = regexec (&preg, &previous_content[start],
+                             1, &matches[match_count], 0);
+           if (result == 0)
+             {
+               if (matches[match_count].rm_eo == 0)
+                 {
+                   /* ignore empty matches */
+                   start++;
+                 }
+               else
+                 {
+                   matches[match_count].rm_so += start;
+                   matches[match_count].rm_eo += start;
+                   start = matches[match_count++].rm_eo;
+                 }
+             }
+           else
+             {
+               break;
+             }
+         }
+       previous_content[length-1] = saved_char;
+     }
+ 
+   pos = binding->start;
+   if (pos > binding->end)
+     {
+       /* searching backward */
+       int i;
+       for (i = match_count - 1; i >= 0; i--)
+         {
+           if (matches[i].rm_so <= pos)
+ 	    {
+ 	      if (pret)
+ 		{
+ 		  pret->buffer = binding->buffer;
+ 		  pret->flags = binding->flags;
+ 		  pret->start = matches[i].rm_so;
+ 		  pret->end = matches[i].rm_eo;
+ 		}
+ 	      return matches[i].rm_so;
+ 	    }
+         }
+     }
+   else
+     {
+       /* searching forward */
+       int i;
+       for (i = 0; i < match_count; i++)
+         {
+           if (matches[i].rm_so >= pos)
+             {
+ 	      if (pret)
+ 		{
+ 		  pret->buffer = binding->buffer;
+ 		  pret->flags = binding->flags;
+ 		  pret->start = matches[i].rm_so;
+ 		  pret->end = matches[i].rm_eo;
+ 		}
+               if (binding->flags & S_SkipDest)
+                 return matches[i].rm_eo;
+               else
+                 return matches[i].rm_so;
+             }
+         }
+     }
+ 
+   /* not found */
+   return -1;
+ }
+ 
+ /* Search forwards for STRING through the text delimited in BINDING. */
+ long
+ search_forward (char *string, SEARCH_BINDING *binding)
+ {
+   register int c, i, len;
+   register char *buff, *end;
+   char *alternate = NULL;
+ 
+   len = strlen (string);
+ 
+   /* We match characters in the search buffer against STRING and ALTERNATE.
+      ALTERNATE is a case reversed version of STRING; this is cheaper than
+      case folding each character before comparison.   Alternate is only
+      used if the case folding bit is turned on in the passed BINDING. */
+ 
+   if (binding->flags & S_FoldCase)
+     {
+       alternate = xstrdup (string);
+ 
+       for (i = 0; i < len; i++)
+         {
+           if (islower (alternate[i]))
+             alternate[i] = toupper (alternate[i]);
+           else if (isupper (alternate[i]))
+             alternate[i] = tolower (alternate[i]);
+         }
+     }
+ 
+   buff = binding->buffer + binding->start;
+   end = binding->buffer + binding->end + 1;
+ 
+   while (buff < (end - len))
+     {
+       for (i = 0; i < len; i++)
+         {
+           c = buff[i];
+ 
+           if ((c != string[i]) && (!alternate || c != alternate[i]))
+             break;
+         }
+ 
+       if (!string[i])
+         {
+           if (alternate)
+             free (alternate);
+           if (binding->flags & S_SkipDest)
+             buff += len;
+           return buff - binding->buffer;
+         }
+ 
+       buff++;
+     }
+ 
+   if (alternate)
+     free (alternate);
+ 
+   return -1;
+ }
+ 
+ /* Search for STRING backwards through the text delimited in BINDING. */
+ long
+ search_backward (char *input_string, SEARCH_BINDING *binding)
+ {
+   register int c, i, len;
+   register char *buff, *end;
+   char *string;
+   char *alternate = NULL;
+ 
+   len = strlen (input_string);
+ 
+   /* Reverse the characters in the search string. */
+   string = xmalloc (1 + len);
+   for (c = 0, i = len - 1; input_string[c]; c++, i--)
+     string[i] = input_string[c];
+ 
+   string[c] = '\0';
+ 
+   /* We match characters in the search buffer against STRING and ALTERNATE.
+      ALTERNATE is a case reversed version of STRING; this is cheaper than
+      case folding each character before comparison.   ALTERNATE is only
+      used if the case folding bit is turned on in the passed BINDING. */
+ 
+   if (binding->flags & S_FoldCase)
+     {
+       alternate = xstrdup (string);
+ 
+       for (i = 0; i < len; i++)
+         {
+           if (islower (alternate[i]))
+             alternate[i] = toupper (alternate[i]);
+           else if (isupper (alternate[i]))
+             alternate[i] = tolower (alternate[i]);
+         }
+     }
+ 
+   buff = binding->buffer + binding->start - 1;
+   end = binding->buffer + binding->end;
+ 
+   while (buff > (end + len))
+     {
+       for (i = 0; i < len; i++)
+         {
+           c = *(buff - i);
+ 
+           if (c != string[i] && (!alternate || c != alternate[i]))
+             break;
+         }
+ 
+       if (!string[i])
+         {
+           free (string);
+           if (alternate)
+             free (alternate);
+ 
+           if (binding->flags & S_SkipDest)
+             buff -= len;
+           return 1 + buff - binding->buffer;
+         }
+ 
+       buff--;
+     }
+ 
+   free (string);
+   if (alternate)
+     free (alternate);
+ 
+   return -1;
+ }
+ 
+ /* Find STRING in LINE, returning the offset of the end of the string.
+    Return an offset of -1 if STRING does not appear in LINE.  The search
+    is bound by the end of the line (i.e., either NEWLINE or 0). */
+ int
+ string_in_line (char *string, char *line)
+ {
+   register int end;
+   SEARCH_BINDING binding;
+ 
+   /* Find the end of the line. */
+   for (end = 0; line[end] && line[end] != '\n'; end++);
+ 
+   /* Search for STRING within these confines. */
+   binding.buffer = line;
+   binding.start = 0;
+   binding.end = end;
+   binding.flags = S_FoldCase | S_SkipDest;
+ 
+   return search_forward (string, &binding);
+ }
+ 
+ /* Return non-zero if STRING is the first text to appear at BINDING. */
+ int
+ looking_at (char *string, SEARCH_BINDING *binding)
+ {
+   long search_end;
+ 
+   search_end = search (string, binding);
+ 
+   /* If the string was not found, SEARCH_END is -1.  If the string was found,
+      but not right away, SEARCH_END is != binding->start.  Otherwise, the
+      string was found at binding->start. */
+   return search_end == binding->start;
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                    Small String Searches                         */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Function names that start with "skip" are passed a string, and return
+    an offset from the start of that string.  Function names that start
+    with "find" are passed a SEARCH_BINDING, and return an absolute position
+    marker of the item being searched for.  "Find" functions return a value
+    of -1 if the item being looked for couldn't be found. */
+ 
+ /* Return the index of the first non-whitespace character in STRING. */
+ int
+ skip_whitespace (char *string)
+ {
+   register int i;
+ 
+   for (i = 0; string && whitespace (string[i]); i++);
+   return i;
+ }
+ 
+ /* Return the index of the first non-whitespace or newline character in
+    STRING. */
+ int
+ skip_whitespace_and_newlines (char *string)
+ {
+   register int i;
+ 
+   for (i = 0; string && whitespace_or_newline (string[i]); i++);
+   return i;
+ }
+ 
+ /* Return the index of the first whitespace character in STRING. */
+ int
+ skip_non_whitespace (char *string)
+ {
+   register int i;
+ 
+   for (i = 0; string && string[i] && !whitespace (string[i]); i++);
+   return i;
+ }
+ 
+ /* Return the index of the first non-node character in STRING.  Note that
+    this function contains quite a bit of hair to ignore periods in some
+    special cases.  This is because we here at GNU ship some info files which
+    contain nodenames that contain periods.  No such nodename can start with
+    a period, or continue with whitespace, newline, or ')' immediately following
+    the period.  If second argument NEWLINES_OKAY is non-zero, newlines should
+    be skipped while parsing out the nodename specification. */
+ int
+ skip_node_characters (char *string, int newlines_okay)
+ {
+   register int c, i = 0;
+   int paren_seen = 0;
+   int paren = 0;
+ 
+   /* Handle special case.  This is when another function has parsed out the
+      filename component of the node name, and we just want to parse out the
+      nodename proper.  In that case, a period at the start of the nodename
+      indicates an empty nodename. */
+   if (string && *string == '.')
+     return 0;
+ 
+   if (string && *string == '(')
+     {
+       paren++;
+       paren_seen++;
+       i++;
+     }
+ 
+   for (; string && (c = string[i]); i++)
+     {
+       if (paren)
+         {
+           if (c == '(')
+             paren++;
+           else if (c == ')')
+             paren--;
+ 
+           continue;
+         }
+       
+       /* If the character following the close paren is a space or period,
+          then this node name has no more characters associated with it. */
+       if (c == '\t' ||
+           c == ','  ||
+           c == INFO_TAGSEP ||
+           ((!newlines_okay) && (c == '\n')) ||
+           ((paren_seen && string[i - 1] == ')') &&
+            (c == ' ' || c == '.')) ||
+           (c == '.' &&
+            (
+ #if 0
+ /* This test causes a node name ending in a period, like `This.', not to
+    be found.  The trailing . is stripped.  This occurs in the jargon
+    file (`I see no X here.' is a node name).  */
+            (!string[i + 1]) ||
+ #endif
+             (whitespace_or_newline (string[i + 1])) ||
+             (string[i + 1] == ')'))))
+         break;
+     }
+   return i;
+ }
+ 
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                   Searching FILE_BUFFER's                        */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Return the absolute position of the first occurence of a node separator in
+    BINDING-buffer.  The search starts at BINDING->start.  Return -1 if no node
+    separator was found. */
+ long
+ find_node_separator (SEARCH_BINDING *binding)
+ {
+   register long i;
+   char *body;
+ 
+   body = binding->buffer;
+ 
+   /* A node is started by [^L]^_[^L]\n.  That is to say, the C-l's are
+      optional, but the DELETE and NEWLINE are not.  This separator holds
+      true for all separated elements in an Info file, including the tags
+      table (if present) and the indirect tags table (if present). */
+   for (i = binding->start; i < binding->end - 1; i++)
+     if (((body[i] == INFO_FF && body[i + 1] == INFO_COOKIE) &&
+          (body[i + 2] == '\n' ||
+           (body[i + 2] == INFO_FF && body[i + 3] == '\n'))) ||
+         ((body[i] == INFO_COOKIE) &&
+          (body[i + 1] == '\n' ||
+           (body[i + 1] == INFO_FF && body[i + 2] == '\n'))))
+       return i;
+   return -1;
+ }
+ 
+ /* Return the length of the node separator characters that BODY is
+    currently pointing at. */
+ int
+ skip_node_separator (char *body)
+ {
+   register int i;
+ 
+   i = 0;
+ 
+   if (body[i] == INFO_FF)
+     i++;
+ 
+   if (body[i++] != INFO_COOKIE)
+     return 0;
+ 
+   if (body[i] == INFO_FF)
+     i++;
+ 
+   if (body[i++] != '\n')
+     return 0;
+ 
+   return i;
+ }
+ 
+ /* Return the number of characters from STRING to the start of
+    the next line. */
+ int
+ skip_line (char *string)
+ {
+   register int i;
+ 
+   for (i = 0; string && string[i] && string[i] != '\n'; i++);
+ 
+   if (string[i] == '\n')
+     i++;
+ 
+   return i;
+ }
+ 
+ /* Return the absolute position of the beginning of a tags table in this
+    binding starting the search at binding->start. */
+ long
+ find_tags_table (SEARCH_BINDING *binding)
+ {
+   SEARCH_BINDING tmp_search;
+   long position;
+ 
+   tmp_search.buffer = binding->buffer;
+   tmp_search.start = binding->start;
+   tmp_search.end = binding->end;
+   tmp_search.flags = S_FoldCase;
+ 
+   while ((position = find_node_separator (&tmp_search)) != -1 )
+     {
+       tmp_search.start = position;
+       tmp_search.start += skip_node_separator (tmp_search.buffer
+           + tmp_search.start);
+ 
+       if (looking_at (TAGS_TABLE_BEG_LABEL, &tmp_search))
+         return position;
+     }
+   return -1;
+ }
+ 
+ /* Return the absolute position of the node named NODENAME in BINDING.
+    This is a brute force search, and we wish to avoid it when possible.
+    This function is called when a tag (indirect or otherwise) doesn't
+    really point to the right node.  It returns the absolute position of
+    the separator preceding the node. */
+ long
+ find_node_in_binding (char *nodename, SEARCH_BINDING *binding)
+ {
+   long position;
+   int offset, namelen;
+   SEARCH_BINDING tmp_search;
+ 
+   namelen = strlen (nodename);
+ 
+   tmp_search.buffer = binding->buffer;
+   tmp_search.start = binding->start;
+   tmp_search.end = binding->end;
+   tmp_search.flags = 0;
+ 
+   while ((position = find_node_separator (&tmp_search)) != -1)
+     {
+       tmp_search.start = position;
+       tmp_search.start += skip_node_separator
+         (tmp_search.buffer + tmp_search.start);
+ 
+       offset = string_in_line
+         (INFO_NODE_LABEL, tmp_search.buffer + tmp_search.start);
+ 
+       if (offset == -1)
+         continue;
+ 
+       tmp_search.start += offset;
+       tmp_search.start += skip_whitespace (tmp_search.buffer + tmp_search.start);
+       offset = skip_node_characters
+         (tmp_search.buffer + tmp_search.start, DONT_SKIP_NEWLINES);
+ 
+       /* Notice that this is an exact match.  You cannot grovel through
+          the buffer with this function looking for random nodes. */
+        if ((offset == namelen) &&
+            (tmp_search.buffer[tmp_search.start] == nodename[0]) &&
+            (strncmp (tmp_search.buffer + tmp_search.start, nodename, offset) == 0))
+          return position;
+     }
+   return -1;
+ }
diff -Nrc2 texinfo-4.12/info/search.h texinfo-4.13/info/search.h
*** texinfo-4.12/info/search.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/search.h	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,77 ----
+ /* search.h -- Structure used to search large bodies of text, with bounds.
+    $Id: search.h,v 1.8 2008/06/11 09:02:11 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2002, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ /* The search functions take two arguments:
+ 
+      1) a string to search for, and
+ 
+      2) a pointer to a SEARCH_BINDING which contains the buffer, start,
+         and end of the search.
+ 
+    They return a long, which is the offset from the start of the buffer
+    at which the match was found.  An offset of -1 indicates failure. */
+ 
+ #ifndef INFO_SEARCH_H
+ #define INFO_SEARCH_H
+ 
+ typedef struct {
+   char *buffer;                 /* The buffer of text to search. */
+   long start;                   /* Offset of the start of the search. */
+   long end;                     /* Offset of the end of the searh. */
+   int flags;                    /* Flags controlling the type of search. */
+ } SEARCH_BINDING;
+ 
+ #define S_FoldCase      0x01    /* Set means fold case in searches. */
+ #define S_SkipDest      0x02    /* Set means return pointing after the dest. */
+ 
+ SEARCH_BINDING *make_binding (char *buffer, long int start, long int end);
+ SEARCH_BINDING *copy_binding (SEARCH_BINDING *binding);
+ extern long search_forward (char *string, SEARCH_BINDING *binding);
+ extern long search_backward (char *input_string, SEARCH_BINDING *binding);
+ extern long search (char *string, SEARCH_BINDING *binding);
+ extern long regexp_search (char *regexp, SEARCH_BINDING *binding, long length,
+ 			   SEARCH_BINDING *pret);
+ extern int looking_at (char *string, SEARCH_BINDING *binding);
+ 
+ /* Note that STRING_IN_LINE () always returns the offset of the 1st character
+    after the string. */
+ extern int string_in_line (char *string, char *line);
+ 
+ /* Function names that start with "skip" are passed a string, and return
+    an offset from the start of that string.  Function names that start
+    with "find" are passed a SEARCH_BINDING, and return an absolute position
+    marker of the item being searched for.  "Find" functions return a value
+    of -1 if the item being looked for couldn't be found. */
+ extern int skip_whitespace (char *string);
+ extern int skip_non_whitespace (char *string);
+ extern int skip_whitespace_and_newlines (char *string);
+ extern int skip_line (char *string);
+ extern int skip_node_characters (char *string, int newlines_okay);
+ extern int skip_node_separator (char *body);
+ 
+ #define DONT_SKIP_NEWLINES 0
+ #define SKIP_NEWLINES 1
+ 
+ extern long find_node_separator (SEARCH_BINDING *binding);
+ extern long find_tags_table (SEARCH_BINDING *binding);
+ extern long find_node_in_binding (char *nodename, SEARCH_BINDING *binding);
+ 
+ #endif /* not INFO_SEARCH_H */
diff -Nrc2 texinfo-4.12/info/session.c texinfo-4.13/info/session.c
*** texinfo-4.12/info/session.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/session.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,5455 ----
+ /* session.c -- user windowing interface to Info.
+    $Id: session.c,v 1.43 2008/06/11 17:38:33 gray Exp $
+ 
+    Copyright (C) 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
+    2004, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "search.h"
+ #include <sys/ioctl.h>
+ 
+ #if defined (HAVE_SYS_TIME_H)
+ #  include <sys/time.h>
+ #  define HAVE_STRUCT_TIMEVAL
+ #endif /* HAVE_SYS_TIME_H */
+ 
+ #if defined (HANDLE_MAN_PAGES)
+ #  include "man.h"
+ #endif
+ 
+ static void info_clear_pending_input (void);
+ static void info_set_pending_input (unsigned char key);
+ static void info_handle_pointer (char *label, WINDOW *window);
+ static void display_info_keyseq (int expecting_future_input);
+ char *node_printed_rep (NODE *node);
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                   Running an Info Session                        */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* The place that we are reading input from. */
+ static FILE *info_input_stream = NULL;
+ 
+ /* The last executed command. */
+ VFunction *info_last_executed_command = NULL;
+ 
+ /* Becomes non-zero when 'q' is typed to an Info window. */
+ int quit_info_immediately = 0;
+ 
+ /* Array of structures describing for each window which nodes have been
+    visited in that window. */
+ INFO_WINDOW **info_windows = NULL;
+ 
+ /* Where to add the next window, if we need to add one. */
+ static int info_windows_index = 0;
+ 
+ /* Number of slots allocated to `info_windows'. */
+ static int info_windows_slots = 0;
+ 
+ /* Whether to use regexps or not for search.  */
+ static int use_regex = 1;
+ 
+ void remember_window_and_node (WINDOW *window, NODE *node);
+ void forget_window_and_nodes (WINDOW *window);
+ void display_startup_message_and_start (void);
+ 
+ /* Begin an info session finding the nodes specified by FILENAME and NODENAMES.
+    For each loaded node, create a new window.  Always split the largest of the
+    available windows. */
+ void
+ begin_multiple_window_info_session (char *filename, char **nodenames)
+ {
+   register int i;
+   WINDOW *window = NULL;
+ 
+   for (i = 0; nodenames[i]; i++)
+     {
+       NODE *node;
+ 
+       node = info_get_node (filename, nodenames[i]);
+ 
+       if (!node)
+         break;
+ 
+       /* If this is the first node, initialize the info session. */
+       if (!window)
+         {
+           initialize_info_session (node, 1);
+           window = active_window;
+         }
+       else
+         {
+           /* Find the largest window in WINDOWS, and make that be the active
+              one.  Then split it and add our window and node to the list
+              of remembered windows and nodes.  Then tile the windows. */
+           WINDOW *win, *largest = NULL;
+           int max_height = 0;
+ 
+           for (win = windows; win; win = win->next)
+             if (win->height > max_height)
+               {
+                 max_height = win->height;
+                 largest = win;
+               }
+ 
+           if (!largest)
+             {
+               display_update_display (windows);
+               info_error (msg_cant_find_window, NULL, NULL);
+               info_session ();
+               xexit (0);
+             }
+ 
+           active_window = largest;
+           window = window_make_window (node);
+           if (window)
+             {
+               window_tile_windows (TILE_INTERNALS);
+               remember_window_and_node (window, node);
+             }
+           else
+             {
+               display_update_display (windows);
+               info_error (msg_win_too_small, NULL, NULL);
+               info_session ();
+               xexit (0);
+             }
+         }
+     }
+   display_startup_message_and_start ();
+ }
+ 
+ /* Start an info session with INITIAL_NODE, and an error message in the echo
+    area made from FORMAT and ARG. */
+ void
+ begin_info_session_with_error (NODE *initial_node, const char *format,
+     void *arg1, void *arg2)
+ {
+   initialize_info_session (initial_node, 1);
+   info_error (format, arg1, arg2);
+   info_session ();
+ }
+ 
+ /* Start an info session with INITIAL_NODE. */
+ void
+ begin_info_session (NODE *initial_node)
+ {
+   initialize_info_session (initial_node, 1);
+   display_startup_message_and_start ();
+ }
+ 
+ void
+ display_startup_message_and_start (void)
+ {
+   char *format;
+ 
+   format = replace_in_documentation
+     (_("Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] for menu item."),
+      0);
+ 
+   window_message_in_echo_area (format, VERSION, NULL);
+   info_session ();
+ }
+ 
+ /* Run an info session with an already initialized window and node. */
+ void
+ info_session (void)
+ {
+   display_update_display (windows);
+   info_last_executed_command = NULL;
+   info_read_and_dispatch ();
+   /* On program exit, leave the cursor at the bottom of the window, and
+      restore the terminal I/O. */
+   terminal_goto_xy (0, screenheight - 1);
+   terminal_clear_to_eol ();
+   fflush (stdout);
+   terminal_unprep_terminal ();
+   close_dribble_file ();
+ }
+ 
+ /* Here is a window-location dependent event loop.  Called from the
+    functions info_session (), and from read_xxx_in_echo_area (). */
+ void
+ info_read_and_dispatch (void)
+ {
+   unsigned char key;
+   int done;
+   done = 0;
+ 
+   while (!done && !quit_info_immediately)
+     {
+       int lk = 0;
+ 
+       /* If we haven't just gone up or down a line, there is no
+          goal column for this window. */
+       if ((info_last_executed_command != (VFunction *) info_next_line) &&
+           (info_last_executed_command != (VFunction *) info_prev_line))
+         active_window->goal_column = -1;
+ 
+       if (echo_area_is_active)
+         {
+           lk = echo_area_last_command_was_kill;
+           echo_area_prep_read ();
+         }
+ 
+       if (!info_any_buffered_input_p ())
+         display_update_display (windows);
+ 
+       display_cursor_at_point (active_window);
+       info_initialize_numeric_arg ();
+ 
+       initialize_keyseq ();
+       key = info_get_input_char ();
+ 
+       /* No errors yet.  We just read a character, that's all.  Only clear
+          the echo_area if it is not currently active. */
+       if (!echo_area_is_active)
+         window_clear_echo_area ();
+ 
+       info_error_was_printed = 0;
+ 
+       /* Do the selected command. */
+       info_dispatch_on_key (key, active_window->keymap);
+ 
+       if (echo_area_is_active)
+         {
+           /* Echo area commands that do killing increment the value of
+              ECHO_AREA_LAST_COMMAND_WAS_KILL.  Thus, if there is no
+              change in the value of this variable, the last command
+              executed was not a kill command. */
+           if (lk == echo_area_last_command_was_kill)
+             echo_area_last_command_was_kill = 0;
+ 
+           if (ea_last_executed_command == (VFunction *) ea_newline ||
+               info_aborted_echo_area)
+             {
+               ea_last_executed_command = NULL;
+               done = 1;
+             }
+ 
+           if (info_last_executed_command == (VFunction *) info_quit)
+             quit_info_immediately = 1;
+         }
+       else if (info_last_executed_command == (VFunction *) info_quit)
+         done = 1;
+     }
+ }
+ 
+ /* Found in signals.c */
+ extern void initialize_info_signal_handler (void );
+ 
+ /* Initialize the first info session by starting the terminal, window,
+    and display systems.  If CLEAR_SCREEN is 0, don't clear the screen.  */
+ void
+ initialize_info_session (NODE *node, int clear_screen)
+ {
+   char *term_name = getenv ("TERM");
+   terminal_initialize_terminal (term_name);
+ 
+   if (terminal_is_dumb_p)
+     {
+       if (!term_name)
+         term_name = "dumb";
+ 
+       info_error (msg_term_too_dumb, term_name, NULL);
+       xexit (1);
+     }
+ 
+   if (clear_screen)
+     {
+       terminal_prep_terminal ();
+       terminal_clear_screen ();
+     }
+ 
+   initialize_info_keymaps ();
+   window_initialize_windows (screenwidth, screenheight);
+   initialize_info_signal_handler ();
+   display_initialize_display (screenwidth, screenheight);
+   info_set_node_of_window (0, active_window, node);
+ 
+   /* Tell the window system how to notify us when a window needs to be
+      asynchronously deleted (e.g., user resizes window very small). */
+   window_deletion_notifier = (VFunction *) forget_window_and_nodes;
+ 
+   /* If input has not been redirected yet, make it come from unbuffered
+      standard input. */
+   if (!info_input_stream)
+     {
+       setbuf (stdin, NULL);
+       info_input_stream = stdin;
+     }
+ 
+   info_windows_initialized_p = 1;
+ }
+ 
+ /* Tell Info that input is coming from the file FILENAME. */
+ void
+ info_set_input_from_file (char *filename)
+ {
+   FILE *stream;
+ 
+   /* Input may include binary characters.  */
+   stream = fopen (filename, FOPEN_RBIN);
+ 
+   if (!stream)
+     return;
+ 
+   if ((info_input_stream != NULL) &&
+       (info_input_stream != stdin))
+     fclose (info_input_stream);
+ 
+   info_input_stream = stream;
+ 
+   if (stream != stdin)
+     display_inhibited = 1;
+ }
+ 
+ /* Return the INFO_WINDOW containing WINDOW, or NULL if there isn't one. */
+ static INFO_WINDOW *
+ get_info_window_of_window (WINDOW *window)
+ {
+   register int i;
+   INFO_WINDOW *info_win = NULL;
+ 
+   for (i = 0; info_windows && (info_win = info_windows[i]); i++)
+     if (info_win->window == window)
+       break;
+ 
+   return info_win;
+ }
+ 
+ /* Reset the remembered pagetop and point of WINDOW to WINDOW's current
+    values if the window and node are the same as the current one being
+    displayed. */
+ void
+ set_remembered_pagetop_and_point (WINDOW *window)
+ {
+   INFO_WINDOW *info_win;
+ 
+   info_win = get_info_window_of_window (window);
+ 
+   if (!info_win)
+     return;
+ 
+   if (info_win->nodes_index &&
+       (info_win->nodes[info_win->current] == window->node))
+     {
+       info_win->pagetops[info_win->current] = window->pagetop;
+       info_win->points[info_win->current] = window->point;
+     }
+ }
+ 
+ void
+ remember_window_and_node (WINDOW *window, NODE *node)
+ {
+   /* See if we already have this window in our list. */
+   INFO_WINDOW *info_win = get_info_window_of_window (window);
+ 
+   /* If the window wasn't already on our list, then make a new entry. */
+   if (!info_win)
+     {
+       info_win = xmalloc (sizeof (INFO_WINDOW));
+       info_win->window = window;
+       info_win->nodes = NULL;
+       info_win->pagetops = NULL;
+       info_win->points = NULL;
+       info_win->current = 0;
+       info_win->nodes_index = 0;
+       info_win->nodes_slots = 0;
+ 
+       add_pointer_to_array (info_win, info_windows_index, info_windows,
+                             info_windows_slots, 10, INFO_WINDOW *);
+     }
+ 
+   /* If this node, the current pagetop, and the current point are the
+      same as the current saved node and pagetop, don't really add this to
+      the list of history nodes.  This may happen only at the very
+      beginning of the program, I'm not sure.  --karl  */
+   if (info_win->nodes
+       && info_win->current >= 0
+       && info_win->nodes[info_win->current]->contents == node->contents
+       && info_win->pagetops[info_win->current] == window->pagetop
+       && info_win->points[info_win->current] == window->point)
+   return;
+ 
+   /* Remember this node, the currently displayed pagetop, and the current
+      location of point in this window.  Because we are updating pagetops
+      and points as well as nodes, it is more efficient to avoid the
+      add_pointer_to_array macro here. */
+   if (info_win->nodes_index + 2 >= info_win->nodes_slots)
+     {
+       info_win->nodes_slots += 20;
+       info_win->nodes = (NODE **) xrealloc (info_win->nodes,
+                                       info_win->nodes_slots * sizeof (NODE *));
+       info_win->pagetops = (int *) xrealloc (info_win->pagetops,
+                                       info_win->nodes_slots * sizeof (int));
+       info_win->points = (long *) xrealloc (info_win->points,
+                                       info_win->nodes_slots * sizeof (long));
+     }
+ 
+   info_win->nodes[info_win->nodes_index] = node;
+   info_win->pagetops[info_win->nodes_index] = window->pagetop;
+   info_win->points[info_win->nodes_index] = window->point;
+   info_win->current = info_win->nodes_index++;
+   info_win->nodes[info_win->nodes_index] = NULL;
+   info_win->pagetops[info_win->nodes_index] = 0;
+   info_win->points[info_win->nodes_index] = 0;
+ }
+ 
+ #define DEBUG_FORGET_WINDOW_AND_NODES
+ #if defined (DEBUG_FORGET_WINDOW_AND_NODES)
+ static void
+ consistency_check_info_windows (void)
+ {
+   register int i;
+ 
+   for (i = 0; i < info_windows_index; i++)
+     {
+       WINDOW *win;
+ 
+       for (win = windows; win; win = win->next)
+         if (win == info_windows[i]->window)
+           break;
+ 
+       if (!win)
+         abort ();
+     }
+ }
+ #endif /* DEBUG_FORGET_WINDOW_AND_NODES */
+ 
+ /* Remove WINDOW and its associated list of nodes from INFO_WINDOWS. */
+ void
+ forget_window_and_nodes (WINDOW *window)
+ {
+   register int i;
+   INFO_WINDOW *info_win = NULL;
+ 
+   for (i = 0; info_windows && (info_win = info_windows[i]); i++)
+     if (info_win->window == window)
+       break;
+ 
+   /* If we found the window to forget, then do so. */
+   if (info_win)
+     {
+       while (i < info_windows_index)
+         {
+           info_windows[i] = info_windows[i + 1];
+           i++;
+         }
+ 
+       info_windows_index--;
+       info_windows[info_windows_index] = NULL;
+ 
+       if (info_win->nodes)
+         {
+           /* Free the node structures which held onto internal node contents
+              here.  This doesn't free the contents; we have a garbage collector
+              which does that. */
+           for (i = 0; info_win->nodes[i]; i++)
+             if (internal_info_node_p (info_win->nodes[i]))
+               free (info_win->nodes[i]);
+           free (info_win->nodes);
+ 
+           maybe_free (info_win->pagetops);
+           maybe_free (info_win->points);
+         }
+ 
+       free (info_win);
+     }
+ #if defined (DEBUG_FORGET_WINDOW_AND_NODES)
+   consistency_check_info_windows ();
+ #endif /* DEBUG_FORGET_WINDOW_AND_NODES */
+ }
+ 
+ /* Set WINDOW to show NODE.  Remember the new window in our list of Info
+    windows.  If we are doing automatic footnote display, also try to display
+    the footnotes for this window.  If REMEMBER is nonzero, first call
+    set_remembered_pagetop_and_point.  */
+ void
+ info_set_node_of_window (int remember, WINDOW *window, NODE *node)
+ {
+   if (remember)
+     set_remembered_pagetop_and_point (window);
+ 
+   /* Put this node into the window. */
+   window_set_node_of_window (window, node);
+ 
+   /* Remember this node and window in our list of info windows. */
+   remember_window_and_node (window, node);
+ 
+   /* If doing auto-footnote display/undisplay, show the footnotes belonging
+      to this window's node. */
+   if (auto_footnotes_p)
+     info_get_or_remove_footnotes (window);
+ }
+ 
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                     Info Movement Commands                       */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Change the pagetop of WINDOW to DESIRED_TOP, perhaps scrolling the screen
+    to do so. */
+ void
+ set_window_pagetop (WINDOW *window, int desired_top)
+ {
+   int point_line, old_pagetop;
+ 
+   if (desired_top < 0)
+     desired_top = 0;
+   else if (desired_top > window->line_count)
+     desired_top = window->line_count - 1;
+ 
+   if (window->pagetop == desired_top)
+     return;
+ 
+   old_pagetop = window->pagetop;
+   window->pagetop = desired_top;
+ 
+   /* Make sure that point appears in this window. */
+   point_line = window_line_of_point (window);
+   if ((point_line < window->pagetop) ||
+       ((point_line - window->pagetop) > window->height - 1))
+     window->point =
+       window->line_starts[window->pagetop] - window->node->contents;
+ 
+   window->flags |= W_UpdateWindow;
+ 
+   /* Find out which direction to scroll, and scroll the window in that
+      direction.  Do this only if there would be a savings in redisplay
+      time.  This is true if the amount to scroll is less than the height
+      of the window, and if the number of lines scrolled would be greater
+      than 10 % of the window's height. */
+   if (old_pagetop < desired_top)
+     {
+       int start, end, amount;
+ 
+       amount = desired_top - old_pagetop;
+ 
+       if ((amount >= window->height) ||
+           (((window->height - amount) * 10) < window->height))
+         return;
+ 
+       start = amount + window->first_row;
+       end = window->height + window->first_row;
+ 
+       display_scroll_display (start, end, -amount);
+     }
+   else
+     {
+       int start, end, amount;
+ 
+       amount = old_pagetop - desired_top;
+ 
+       if ((amount >= window->height) ||
+           (((window->height - amount) * 10) < window->height))
+         return;
+ 
+       start = window->first_row;
+       end = (window->first_row + window->height) - amount;
+       display_scroll_display (start, end, amount);
+     }
+ }
+ 
+ /* Immediately make WINDOW->point visible on the screen, and move the
+    terminal cursor there. */
+ static void
+ info_show_point (WINDOW *window)
+ {
+   int old_pagetop;
+ 
+   old_pagetop = window->pagetop;
+   window_adjust_pagetop (window);
+   if (old_pagetop != window->pagetop)
+     {
+       int new_pagetop;
+ 
+       new_pagetop = window->pagetop;
+       window->pagetop = old_pagetop;
+       set_window_pagetop (window, new_pagetop);
+     }
+ 
+   if (window->flags & W_UpdateWindow)
+     display_update_one_window (window);
+ 
+   display_cursor_at_point (window);
+ }
+ 
+ /* Move WINDOW->point from OLD line index to NEW line index. */
+ static void
+ move_to_new_line (int old, int new, WINDOW *window)
+ {
+   if (old == -1)
+     {
+       info_error (msg_cant_find_point, NULL, NULL);
+     }
+   else
+     {
+       int goal;
+ 
+       if (new >= window->line_count || new < 0)
+         return;
+       
+       goal = window_get_goal_column (window);
+       window->goal_column = goal;
+ 
+       window->point = window->line_starts[new] - window->node->contents;
+       window->point += window_chars_to_goal (window, goal);
+       info_show_point (window);
+     }
+ }
+ 
+ static int forward_move_node_structure (WINDOW *window, int behaviour);
+ static int backward_move_node_structure (WINDOW *window, int behaviour);
+ 
+ /* Move WINDOW's point down to the next line if possible. */
+ DECLARE_INFO_COMMAND (info_next_line, _("Move down to the next line"))
+ {
+   int old_line, new_line;
+ 
+   if (count < 0)
+     info_prev_line (window, -count, key);
+   else
+     while (count)
+       {
+         int diff;
+ 
+         old_line = window_line_of_point (window);
+         diff = window->line_count - old_line;
+         if (diff > count)
+           diff = count;
+ 
+         count -= diff;
+         new_line = old_line + diff;
+         if (new_line >= window->line_count)
+           {
+             if (cursor_movement_scrolls_p)
+               {
+                 if (forward_move_node_structure (window,
+                                                  info_scroll_behaviour))
+                   break;
+                 move_to_new_line (0, 0, window);
+               }
+             else
+               break;
+           }
+         else
+           move_to_new_line (old_line, new_line, window);
+       }
+ }
+ 
+ /* Move WINDOW's point up to the previous line if possible. */
+ DECLARE_INFO_COMMAND (info_prev_line, _("Move up to the previous line"))
+ {
+   int old_line, new_line;
+ 
+   if (count < 0)
+     info_next_line (window, -count, key);
+   else
+     while (count)
+       {
+         int diff;
+         
+         old_line = window_line_of_point (window);
+         diff = old_line + 1;
+         if (diff > count)
+           diff = count;
+         
+         count -= diff;
+         new_line = old_line - diff;
+         
+         if (new_line < 0
+             && cursor_movement_scrolls_p)
+           {
+             if (backward_move_node_structure (window, info_scroll_behaviour))
+               break;
+             if (window->line_count > window->height)
+               set_window_pagetop (window, window->line_count - window->height);
+             move_to_new_line (window->line_count,
+                               window->line_count - 1, window);
+           }
+         else
+           move_to_new_line (old_line, new_line, window);
+       }
+ }
+ 
+ /* Return true if POINT sits on a newline character. */
+ static int
+ _looking_at_newline (WINDOW *win, long point)
+ {
+   mbi_iterator_t iter;
+ 
+   mbi_init (iter, win->node->contents + point,
+ 	    win->node->nodelen - point);
+   mbi_avail (iter);
+   return mbi_cur (iter).wc_valid && mbi_cur (iter).wc == '\n';
+ }
+ 
+ /* Advance point of WIN to the beginning of the next logical line.
+    Return 1 if there is no next line. */
+ static int
+ point_next_line (WINDOW *win)
+ {
+   int line = window_line_of_point (win);
+   if (line + 1 >= win->line_count)
+     return 1;
+   win->point = win->line_starts[line + 1] - win->node->contents;
+   window_compute_line_map (win);
+   return 0;
+ }
+ 
+ /* Move point of WIN to the beginning of the previous logical
+    line.
+    Return 1 if there is no previous line. */
+ static int
+ point_prev_line (WINDOW *win)
+ {
+   int line = window_line_of_point (win);
+   if (line == 0)
+     return 1;
+   win->point = win->line_starts[line - 1] - win->node->contents;
+   window_compute_line_map (win);
+   return 0;
+ }
+ 
+ /* Advance point to the next multibyte character.  Return 1 if this would
+    cause pointing past the end of node buffer. */
+ static int
+ point_forward_char (WINDOW *win)
+ {
+   long point = win->point;
+   int col;
+ 
+   window_compute_line_map (win);
+   col = window_point_to_column (win, point, &point) + 1;
+   if (col >= win->line_map.used)
+     {
+       if (point_next_line (win))
+ 	return 1;
+       col = 0;
+     }
+   win->point = win->line_map.map[col];
+   return 0;
+ }
+ 
+ /* Set point to the previous multibyte character.
+    Return 1 if already on the beginning of node buffer. */
+ static int
+ point_backward_char (WINDOW *win)
+ {
+   long point = win->point;
+   int col;
+ 
+   window_compute_line_map (win);
+   col = window_point_to_column (win, point, &point);
+   for (; col >= 0 && win->line_map.map[col] == point; col--)
+     ;
+   if (col < 0)
+     {
+       if (point_prev_line (win))
+ 	return 1;
+       col = win->line_map.used - 1;
+     }
+   win->point = win->line_map.map[col];
+   return 0;
+ }
+ 
+ /* Skip forward any white space characters starting from column *PCOL in
+    the current line, advancing line if necessary.  Return 1 if going past
+    the end of node buffer. */
+ static int
+ point_skip_ws_forward (WINDOW *win, int *pcol)
+ {
+   mbi_iterator_t iter;
+   int col = *pcol;
+ 
+   while (1)
+     {
+       char *buffer = win->node->contents;
+       size_t buflen = win->node->nodelen;
+ 
+       for (; col < win->line_map.used; col++)
+ 	{
+ 	  mbi_init (iter, buffer + win->line_map.map[col],
+ 		    buflen - win->line_map.map[col]);
+ 	  mbi_avail (iter);
+ 	  if (!mbi_cur (iter).wc_valid || iswalnum (mbi_cur (iter).wc))
+ 	    {
+ 	      *pcol = col;
+ 	      return 0;
+ 	    }
+ 	}
+       if (point_next_line (win))
+ 	return 1;
+       col = 0;
+     }
+   return 1;
+ }
+ 
+ /* Skip backward any white space characters starting from column *PCOL in
+    the current line, retracting line if necessary.  Return 1 if going
+    before the beginning of node buffer. */
+ static int
+ point_skip_ws_backward (WINDOW *win, int *pcol)
+ {
+   mbi_iterator_t iter;
+   int col = *pcol;
+ 
+   while (1)
+     {
+       char *buffer = win->node->contents;
+       size_t buflen = win->node->nodelen;
+ 
+       for (; col > 0; col--)
+ 	{
+ 	  mbi_init (iter, buffer + win->line_map.map[col],
+ 		    buflen - win->line_map.map[col]);
+ 	  mbi_avail (iter);
+ 	  if (!mbi_cur (iter).wc_valid || iswalnum (mbi_cur (iter).wc))
+ 	    {
+ 	      *pcol = col;
+ 	      return 0;
+ 	    }
+ 	}
+       if (point_prev_line (win))
+ 	return 1;
+       col = win->line_map.used - 1;
+     }
+   return 1;
+ }
+ 
+ /* Advance window point to the beginning of the next word.  Return 1
+    if there are no more words in the buffer. */
+ static int
+ point_forward_word (WINDOW *win)
+ {
+   mbi_iterator_t iter;
+   int col;
+ 
+   window_compute_line_map (win);
+   col = window_point_to_column (win, win->point, &win->point);
+ 
+   if (point_skip_ws_forward (win, &col))
+     return 1;
+ 
+   while (1)
+     {
+       char *buffer = win->node->contents;
+       size_t buflen = win->node->nodelen;
+       
+       for (; col < win->line_map.used; col++)
+ 	{
+ 	  mbi_init (iter, buffer + win->line_map.map[col],
+ 		    buflen - win->line_map.map[col]);
+ 	  mbi_avail (iter);
+ 	  if (!(mbi_cur (iter).wc_valid && iswalnum (mbi_cur (iter).wc)))
+ 	    {
+ 	      if (point_skip_ws_forward (win, &col))
+ 		return 1;
+ 	      win->point = win->line_map.map[col];
+ 	      return 0;
+ 	    }
+ 	}
+       if (point_next_line (win))
+ 	return 1;
+       col = 0;
+     }
+   return 1;
+ }
+ 
+ /* Set window point to the beginning of the previous word.  Return 1
+    if looking at the very first word in the buffer. */
+ static int
+ point_backward_word (WINDOW *win)
+ {
+   mbi_iterator_t iter;
+   int col;
+ 
+   window_compute_line_map (win);
+   col = window_point_to_column (win, win->point, &win->point);
+ 
+   while (1)
+     {
+       long point;
+       char *buffer;
+       size_t buflen;
+ 
+       if (col <= 0)
+ 	{
+ 	  if (point_prev_line (win))
+ 	    return 1;
+ 	  col = win->line_map.used;
+ 	}
+       col--;
+       if (point_skip_ws_backward (win, &col))
+ 	return 1;
+ 
+       buffer = win->node->contents;
+       buflen = win->node->nodelen;
+ 
+       for (; col >= 0; col--)
+ 	{
+ 	  mbi_init (iter, buffer + win->line_map.map[col],
+ 		    buflen - win->line_map.map[col]);
+ 	  mbi_avail (iter);
+ 	  if (!(mbi_cur (iter).wc_valid && iswalnum (mbi_cur (iter).wc)))
+ 	    {
+ 	      win->point = win->line_map.map[col+1];
+ 	      return 0;
+ 	    }
+ 	}
+       point = win->line_map.map[0] - 1;
+       if (point > 0 && _looking_at_newline (win, point))
+ 	{
+ 	  win->point = win->line_map.map[0];
+ 	  return 0;
+ 	}
+     }
+   return 1;
+ }
+ 
+ /* Move WINDOW's point to the end of the true line. */
+ DECLARE_INFO_COMMAND (info_end_of_line, _("Move to the end of the line"))
+ {
+   int point = window_end_of_line (window);
+   if (point != window->point)
+     {
+       window->point = point;
+       info_show_point (window);
+     }
+ }
+ 
+ /* Move WINDOW's point to the beginning of the true line. */
+ DECLARE_INFO_COMMAND (info_beginning_of_line, _("Move to the start of the line"))
+ {
+   int old_point = window->point;
+   int point;
+   
+   while (1)
+     {
+       window_compute_line_map (window);
+       point = window->line_map.map[0];
+       if (point == 0 || _looking_at_newline (window, point-1))
+ 	break;
+       point_prev_line (window);
+     }
+ 
+   if (point != old_point)
+     {
+       window->point = point;
+       info_show_point (window);
+     }
+   else
+     window->point = old_point;
+ }
+ 
+ /* Move point forward in the node. */
+ DECLARE_INFO_COMMAND (info_forward_char, _("Move forward a character"))
+ {
+   if (count < 0)
+     info_backward_char (window, -count, key);
+   else
+     {
+       while (count)
+         {
+           if (point_forward_char (window))
+             {
+               if (cursor_movement_scrolls_p
+                   && forward_move_node_structure (window,
+                                                   info_scroll_behaviour) == 0)
+                 window->point = 0;
+               else
+                 {
+                   window->point = window->node->nodelen - 1;
+                   break;
+                 }
+             }
+ 	  count--;
+         }
+       info_show_point (window);
+     }
+ }
+ 
+ /* Move point backward in the node. */
+ DECLARE_INFO_COMMAND (info_backward_char, _("Move backward a character"))
+ {
+   if (count < 0)
+     info_forward_char (window, -count, key);
+   else
+     {
+       while (count)
+         {
+           if (point_backward_char (window))
+             {
+               if (cursor_movement_scrolls_p
+                   && backward_move_node_structure (window,
+                                                    info_scroll_behaviour) == 0)
+                 {
+                   window->point = window->node->nodelen - 1;
+                   if (window->line_count > window->height)
+                     set_window_pagetop (window,
+                                         window->line_count - window->height);
+                 }
+               else
+                 {
+                   window->point = 0;
+                   break;
+                 }
+             }
+ 	  count--;
+         }
+       info_show_point (window);
+     }
+ }
+ 
+ /* Move forward a word in this node. */
+ DECLARE_INFO_COMMAND (info_forward_word, _("Move forward a word"))
+ {
+   if (count < 0)
+     {
+       info_backward_word (window, -count, key);
+       return;
+     }
+ 
+   while (count)
+     {
+       if (point_forward_word (window))
+         {
+           if (cursor_movement_scrolls_p
+               && forward_move_node_structure (window,
+                                               info_scroll_behaviour) == 0)
+ 	    window->point = 0;
+           else
+             return;
+         }
+       --count;
+     }
+   info_show_point (window);
+ }
+ 
+ DECLARE_INFO_COMMAND (info_backward_word, _("Move backward a word"))
+ {
+   if (count < 0)
+     {
+       info_forward_word (window, -count, key);
+       return;
+     }
+ 
+   while (count)
+     {
+       if (point_backward_word (window))
+         {
+           if (cursor_movement_scrolls_p
+               && backward_move_node_structure (window,
+                                                info_scroll_behaviour) == 0)
+             {
+               if (window->line_count > window->height)
+                 set_window_pagetop (window,
+                                     window->line_count - window->height);
+               window->point = window->node->nodelen;
+             }
+           else
+             break;
+         }
+       --count;
+     }
+   info_show_point (window);
+ }
+ 
+ /* Variable controlling the behaviour of default scrolling when you are
+    already at the bottom of a node.  Possible values are defined in session.h.
+    The meanings are:
+ 
+    IS_Continuous        Try to get first menu item, or failing that, the
+                         "Next:" pointer, or failing that, the "Up:" and
+                         "Next:" of the up.
+    IS_NextOnly          Try to get "Next:" menu item.
+    IS_PageOnly          Simply give up at the bottom of a node. */
+ 
+ int info_scroll_behaviour = IS_Continuous;
+ 
+ /* Choices used by the completer when reading a value for the user-visible
+    variable "scroll-behaviour". */
+ char *info_scroll_choices[] = {
+   "Continuous", "Next Only", "Page Only", NULL
+ };
+ 
+ /* Controls whether scroll-behavior affects line movement commands */
+ int cursor_movement_scrolls_p = 1;
+ 
+ /* Choices for the scroll-last-node variable */
+ char *scroll_last_node_choices[] = {
+   "Stop", "Scroll", "Top", NULL
+ };
+ 
+ /* Controls what to do when a scrolling command is issued at the end of the
+    last node. */
+ int scroll_last_node = SLN_Stop;
+ 
+ /* Default window sizes for scrolling commands.  */
+ int default_window_size = -1;   /* meaning 1 window-full */
+ int default_scroll_size = -1;   /* meaning half screen size */
+ 
+ #define INFO_LABEL_FOUND() \
+   (info_parsed_nodename || (info_parsed_filename \
+                             && !is_dir_name (info_parsed_filename)))
+ 
+ static int
+ last_node_p (NODE *node)
+ {
+   info_next_label_of_node (node);
+   if (!INFO_LABEL_FOUND ())
+     {
+       info_up_label_of_node (node);
+       return !INFO_LABEL_FOUND () || strcmp (info_parsed_nodename, "Top") == 0;
+     }
+   return 0;
+ }
+ 
+ /* Move to 1st menu item, Next, Up/Next, or error in this window. */
+ static int
+ forward_move_node_structure (WINDOW *window, int behaviour)
+ {
+   switch (behaviour)
+     {
+     case IS_PageOnly:
+       info_error (msg_at_node_bottom, NULL, NULL);
+       return 1;
+ 
+     case IS_NextOnly:
+       info_next_label_of_node (window->node);
+       if (!info_parsed_nodename && !info_parsed_filename)
+         {
+           info_error (msg_no_pointer, (char *) _("Next"), NULL);
+           return 1;
+         }
+       else
+         {
+           info_handle_pointer ("Next", window);
+         }
+       break;
+ 
+     case IS_Continuous:
+       {
+         if (last_node_p (window->node))
+ 	  {
+ 	    switch (scroll_last_node)
+ 	      {
+ 	      case SLN_Stop:
+ 		info_error (_("No more nodes within this document."),
+ 			    NULL, NULL);
+ 		return 1;
+ 		
+ 	      case SLN_Scroll:
+ 		break;
+ 		
+ 	      case SLN_Top:
+ 		info_top_node (window, 1, 0);
+ 		return 0;
+ 		
+ 	      default:
+ 		abort ();
+ 	      }
+ 	  }
+ 	
+         /* First things first.  If this node contains a menu, move down
+            into the menu. */
+ 	{
+ 	  REFERENCE **menu;
+ 
+ 	  menu = info_menu_of_node (window->node);
+ 	  
+ 	  if (menu)
+ 	    {
+ 	      info_free_references (menu);
+ 	      info_menu_digit (window, 1, '1');
+ 	      return 0;
+ 	    }
+ 	}
+ 
+         /* Okay, this node does not contain a menu.  If it contains a
+            "Next:" pointer, use that. */
+         info_next_label_of_node (window->node);
+         if (INFO_LABEL_FOUND ())
+           {
+             info_handle_pointer ("Next", window);
+             return 0;
+           }
+ 
+         /* Okay, there wasn't a "Next:" for this node.  Move "Up:" until we
+            can move "Next:".  If that isn't possible, complain that there
+            are no more nodes. */
+         {
+           int up_counter, old_current;
+           INFO_WINDOW *info_win;
+ 
+           /* Remember the current node and location. */
+           info_win = get_info_window_of_window (window);
+           old_current = info_win->current;
+ 
+           /* Back up through the "Up:" pointers until we have found a "Next:"
+              that isn't the same as the first menu item found in that node. */
+           up_counter = 0;
+           while (!info_error_was_printed)
+             {
+               info_up_label_of_node (window->node);
+               if (INFO_LABEL_FOUND ())
+                 {
+                   info_handle_pointer ("Up", window);
+                   if (info_error_was_printed)
+                     continue;
+ 
+                   up_counter++;
+ 
+                   info_next_label_of_node (window->node);
+ 
+                   /* If no "Next" pointer, keep backing up. */
+                   if (!INFO_LABEL_FOUND ())
+                     continue;
+ 
+                   /* If this node's first menu item is the same as this node's
+                      Next pointer, keep backing up. */
+                   if (!info_parsed_filename)
+                     {
+                       REFERENCE **menu;
+                       char *next_nodename;
+ 
+                       /* Remember the name of the Next node, since reading
+                          the menu can overwrite the contents of the
+                          info_parsed_xxx strings. */
+                       next_nodename = xstrdup (info_parsed_nodename);
+ 
+                       menu = info_menu_of_node (window->node);
+                       if (menu &&
+                           (strcmp
+                            (menu[0]->nodename, next_nodename) == 0))
+                         {
+                           info_free_references (menu);
+                           free (next_nodename);
+                           continue;
+                         }
+                       else
+                         {
+                           /* Restore the world to where it was before
+                              reading the menu contents. */
+                           info_free_references (menu);
+                           free (next_nodename);
+                           info_next_label_of_node (window->node);
+                         }
+                     }
+ 
+                   /* This node has a "Next" pointer, and it is not the
+                      same as the first menu item found in this node. */
+                   info_handle_pointer ("Next", window);
+                   return 0;
+                 }
+               else
+                 {
+                   /* No more "Up" pointers.  Print an error, and call it
+                      quits. */
+                   register int i;
+ 
+                   for (i = 0; i < up_counter; i++)
+                     {
+                       info_win->nodes_index--;
+                       free (info_win->nodes[info_win->nodes_index]);
+                       info_win->nodes[info_win->nodes_index] = NULL;
+                     }
+                   info_win->current = old_current;
+                   window->node = info_win->nodes[old_current];
+                   window->pagetop = info_win->pagetops[old_current];
+                   window->point = info_win->points[old_current];
+                   recalculate_line_starts (window);
+                   window->flags |= W_UpdateWindow;
+                   info_error (_("No more nodes within this document."),
+                       NULL, NULL);
+                   return 1;
+                 }
+             }
+         }
+         break;
+       }
+     }
+   return info_error_was_printed; /*FIXME*/
+ }
+ 
+ /* Move Prev, Up or error in WINDOW depending on BEHAVIOUR. */
+ static int
+ backward_move_node_structure (WINDOW *window, int behaviour)
+ {
+   switch (behaviour)
+     {
+     case IS_PageOnly:
+       info_error (msg_at_node_top, NULL, NULL);
+       return 1;
+ 
+     case IS_NextOnly:
+       info_prev_label_of_node (window->node);
+       if (!info_parsed_nodename && !info_parsed_filename)
+         {
+           info_error (_("No `Prev' for this node."), NULL, NULL);
+           return 1;
+         }
+       else
+         {
+           info_handle_pointer ("Prev", window);
+         }
+       break;
+ 
+     case IS_Continuous:
+       info_prev_label_of_node (window->node);
+ 
+       if (!info_parsed_nodename && (!info_parsed_filename
+                                     || is_dir_name (info_parsed_filename)))
+         {
+           info_up_label_of_node (window->node);
+           if (!info_parsed_nodename && (!info_parsed_filename
+                                         || is_dir_name (info_parsed_filename)))
+             {
+               info_error (
+                     _("No `Prev' or `Up' for this node within this document."),
+                           NULL, NULL);
+               return 1;
+             }
+           else
+             {
+               info_handle_pointer ("Up", window);
+             }
+         }
+       else
+         {
+           REFERENCE **menu;
+           int inhibit_menu_traversing = 0;
+ 
+           /* Watch out!  If this node's Prev is the same as the Up, then
+              move Up.  Otherwise, we could move Prev, and then to the last
+              menu item in the Prev.  This would cause the user to loop
+              through a subsection of the info file. */
+           if (!info_parsed_filename && info_parsed_nodename)
+             {
+               char *pnode;
+ 
+               pnode = xstrdup (info_parsed_nodename);
+               info_up_label_of_node (window->node);
+ 
+               if (!info_parsed_filename && info_parsed_nodename &&
+                   strcmp (info_parsed_nodename, pnode) == 0)
+                 {
+                   /* The nodes are the same.  Inhibit moving to the last
+                      menu item. */
+                   free (pnode);
+                   inhibit_menu_traversing = 1;
+                 }
+               else
+                 {
+                   free (pnode);
+                   info_prev_label_of_node (window->node);
+                 }
+             }
+ 
+           /* Move to the previous node.  If this node now contains a menu,
+              and we have not inhibited movement to it, move to the node
+              corresponding to the last menu item. */
+           info_handle_pointer ("Prev", window);
+ 
+           if (!inhibit_menu_traversing)
+             {
+               while (!info_error_was_printed &&
+                      (menu = info_menu_of_node (window->node)))
+                 {
+                   info_free_references (menu);
+                   info_menu_digit (window, 1, '0');
+                 }
+             }
+         }
+       break;
+     }
+   return 0;
+ }
+ 
+ /* Move continuously forward through the node structure of this info file. */
+ DECLARE_INFO_COMMAND (info_global_next_node,
+                       _("Move forwards or down through node structure"))
+ {
+   if (count < 0)
+     info_global_prev_node (window, -count, key);
+   else
+     {
+       while (count && !info_error_was_printed)
+         {
+           forward_move_node_structure (window, IS_Continuous);
+           count--;
+         }
+     }
+ }
+ 
+ /* Move continuously backward through the node structure of this info file. */
+ DECLARE_INFO_COMMAND (info_global_prev_node,
+                       _("Move backwards or up through node structure"))
+ {
+   if (count < 0)
+     info_global_next_node (window, -count, key);
+   else
+     {
+       while (count && !info_error_was_printed)
+         {
+           backward_move_node_structure (window, IS_Continuous);
+           count--;
+         }
+     }
+ }
+ 
+ static void _scroll_forward(WINDOW *window, int count,
+     unsigned char key, int behaviour);
+ static void _scroll_backward(WINDOW *window, int count,
+     unsigned char key, int behaviour);
+ 
+ static void
+ _scroll_forward(WINDOW *window, int count, unsigned char key, int behaviour)
+ {
+   if (count < 0)
+     _scroll_backward (window, -count, key, behaviour);
+   else
+     {
+       int desired_top;
+ 
+       /* Without an explicit numeric argument, scroll the bottom two
+          lines to the top of this window,  Or, if at bottom of window,
+          and the chosen behaviour is to scroll through nodes get the
+          "Next" node for this window. */
+       if (default_window_size > 0)
+         desired_top = window->pagetop + default_window_size;
+       else if (!info_explicit_arg && count == 1)
+         {
+           desired_top = window->pagetop + (window->height - 2);
+ 
+           /* If there are no more lines to scroll here, error, or get
+              another node, depending on BEHAVIOUR. */
+           if (desired_top > window->line_count)
+             {
+               if (forward_move_node_structure (window, behaviour))
+                 info_end_of_node (window, 1, 0);
+               return;
+             }
+         }
+       else
+         desired_top = window->pagetop + count;
+ 
+       if (desired_top >= window->line_count)
+         desired_top = window->line_count - 2;
+ 
+       if (window->pagetop > desired_top)
+         return;
+       else
+         set_window_pagetop (window, desired_top);
+     }
+ }
+ 
+ static void
+ _scroll_backward(WINDOW *window, int count, unsigned char key, int behaviour)
+ {
+   if (count < 0)
+     _scroll_forward (window, -count, key, behaviour);
+   else
+     {
+       int desired_top;
+ 
+       /* Without an explicit numeric argument, scroll the top two lines
+          to the bottom of this window, or, depending on the selected
+          behaviour, move to the previous, or Up'th node. */
+       if (default_window_size > 0)
+         desired_top = window->pagetop - default_window_size;
+       else if (!info_explicit_arg && count == 1)
+         {
+ 	  desired_top = window->pagetop - (window->height - 2);
+ 	  
+           if ((desired_top < 0) && (window->pagetop == 0))
+             {
+               if ((backward_move_node_structure (window, behaviour) == 0)
+                   && (cursor_movement_scrolls_p))
+ 		info_end_of_node (window, 1, 0);
+               window->point = (window->line_starts[window->pagetop]
+                                - window->node->contents);
+               return;
+             }
+         }
+       else
+         desired_top = window->pagetop - count;
+ 
+       if (desired_top < 0)
+         desired_top = 0;
+ 
+       set_window_pagetop (window, desired_top);
+       window->point = (window->line_starts[window->pagetop]
+                        - window->node->contents);
+     }
+ }
+ 
+ /* Show the next screen of WINDOW's node. */
+ DECLARE_INFO_COMMAND (info_scroll_forward, _("Scroll forward in this window"))
+ {
+   _scroll_forward (window, count, key, info_scroll_behaviour);
+ }
+ 
+ /* Like info_scroll_forward, but sets default_window_size as a side
+    effect.  */
+ DECLARE_INFO_COMMAND (info_scroll_forward_set_window,
+                       _("Scroll forward in this window and set default window size"))
+ {
+   if (info_explicit_arg)
+     default_window_size = count;
+   _scroll_forward (window, count, key, info_scroll_behaviour);
+ }
+ 
+ /* Show the next screen of WINDOW's node but never advance to next node. */
+ DECLARE_INFO_COMMAND (info_scroll_forward_page_only, _("Scroll forward in this window staying within node"))
+ {
+   _scroll_forward (window, count, key, IS_PageOnly);
+ }
+ 
+ /* Like info_scroll_forward_page_only, but sets default_window_size as a side
+    effect.  */
+ DECLARE_INFO_COMMAND (info_scroll_forward_page_only_set_window,
+                       _("Scroll forward in this window staying within node and set default window size"))
+ {
+   if (info_explicit_arg)
+     default_window_size = count;
+   _scroll_forward (window, count, key, IS_PageOnly);
+ }
+ 
+ /* Show the previous screen of WINDOW's node. */
+ DECLARE_INFO_COMMAND (info_scroll_backward, _("Scroll backward in this window"))
+ {
+   _scroll_backward (window, count, key, info_scroll_behaviour);
+ }
+ 
+ /* Like info_scroll_backward, but sets default_window_size as a side
+    effect.  */
+ DECLARE_INFO_COMMAND (info_scroll_backward_set_window,
+                       _("Scroll backward in this window and set default window size"))
+ {
+   if (info_explicit_arg)
+     default_window_size = count;
+   _scroll_backward (window, count, key, info_scroll_behaviour);
+ }
+ 
+ /* Show the previous screen of WINDOW's node but never move to previous
+    node. */
+ DECLARE_INFO_COMMAND (info_scroll_backward_page_only, _("Scroll backward in this window staying within node"))
+ {
+   _scroll_backward (window, count, key, IS_PageOnly);
+ }
+ 
+ /* Like info_scroll_backward_page_only, but sets default_window_size as a side
+    effect.  */
+ DECLARE_INFO_COMMAND (info_scroll_backward_page_only_set_window,
+                       _("Scroll backward in this window staying within node and set default window size"))
+ {
+   if (info_explicit_arg)
+     default_window_size = count;
+   _scroll_backward (window, count, key, IS_PageOnly);
+ }
+ 
+ /* Move to the beginning of the node. */
+ DECLARE_INFO_COMMAND (info_beginning_of_node, _("Move to the start of this node"))
+ {
+   window->pagetop = window->point = 0;
+   window->flags |= W_UpdateWindow;
+ }
+ 
+ /* Move to the end of the node. */
+ DECLARE_INFO_COMMAND (info_end_of_node, _("Move to the end of this node"))
+ {
+   window->point = window->node->nodelen - 1;
+   info_show_point (window);
+ }
+ 
+ /* Scroll the window forward by N lines.  */
+ DECLARE_INFO_COMMAND (info_down_line, _("Scroll down by lines"))
+ {
+   if (count < 0)
+     info_up_line (window, -count, key);
+   else
+     {
+       int desired_top = window->pagetop + count;
+ 
+       if (desired_top >= window->line_count)
+         desired_top = window->line_count - 2;
+ 
+       if (window->pagetop <= desired_top)
+         set_window_pagetop (window, desired_top);
+     }
+ }
+ 
+ /* Scroll the window backward by N lines.  */
+ DECLARE_INFO_COMMAND (info_up_line, _("Scroll up by lines"))
+ {
+   if (count < 0)
+     info_down_line (window, -count, key);
+   else
+     {
+       int desired_top = window->pagetop - count;
+ 
+       if (desired_top < 0)
+         desired_top = 0;
+ 
+       set_window_pagetop (window, desired_top);
+     }
+ }
+ 
+ /* Scroll the window forward by N lines and remember N as default for
+    subsequent commands.  */
+ DECLARE_INFO_COMMAND (info_scroll_half_screen_down,
+                       _("Scroll down by half screen size"))
+ {
+   if (count < 0)
+     info_scroll_half_screen_up (window, -count, key);
+   else
+     {
+       int scroll_size = (the_screen->height + 1) / 2;
+       int desired_top;
+ 
+       if (info_explicit_arg)
+         default_scroll_size = count;
+       if (default_scroll_size > 0)
+         scroll_size = default_scroll_size;
+ 
+       desired_top = window->pagetop + scroll_size;
+       if (desired_top >= window->line_count)
+         desired_top = window->line_count - 2;
+ 
+       if (window->pagetop <= desired_top)
+         set_window_pagetop (window, desired_top);
+     }
+ }
+ 
+ /* Scroll the window backward by N lines and remember N as default for
+    subsequent commands.  */
+ DECLARE_INFO_COMMAND (info_scroll_half_screen_up,
+                       _("Scroll up by half screen size"))
+ {
+   if (count < 0)
+     info_scroll_half_screen_down (window, -count, key);
+   else
+     {
+       int scroll_size = (the_screen->height + 1) / 2;
+       int desired_top;
+ 
+       if (info_explicit_arg)
+         default_scroll_size = count;
+       if (default_scroll_size > 0)
+         scroll_size = default_scroll_size;
+ 
+       desired_top = window->pagetop - scroll_size;
+       if (desired_top < 0)
+         desired_top = 0;
+ 
+       set_window_pagetop (window, desired_top);
+     }
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                 Commands for Manipulating Windows                */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Make the next window in the chain be the active window. */
+ DECLARE_INFO_COMMAND (info_next_window, _("Select the next window"))
+ {
+   if (count < 0)
+     {
+       info_prev_window (window, -count, key);
+       return;
+     }
+ 
+   /* If no other window, error now. */
+   if (!windows->next && !echo_area_is_active)
+     {
+       info_error (msg_one_window, NULL, NULL);
+       return;
+     }
+ 
+   while (count--)
+     {
+       if (window->next)
+         window = window->next;
+       else
+         {
+           if (window == the_echo_area || !echo_area_is_active)
+             window = windows;
+           else
+             window = the_echo_area;
+         }
+     }
+ 
+   if (active_window != window)
+     {
+       if (auto_footnotes_p)
+         info_get_or_remove_footnotes (window);
+ 
+       window->flags |= W_UpdateWindow;
+       active_window = window;
+     }
+ }
+ 
+ /* Make the previous window in the chain be the active window. */
+ DECLARE_INFO_COMMAND (info_prev_window, _("Select the previous window"))
+ {
+   if (count < 0)
+     {
+       info_next_window (window, -count, key);
+       return;
+     }
+ 
+   /* Only one window? */
+ 
+   if (!windows->next && !echo_area_is_active)
+     {
+       info_error (msg_one_window, NULL, NULL);
+       return;
+     }
+ 
+   while (count--)
+     {
+       /* If we are in the echo area, or if the echo area isn't active and we
+          are in the first window, find the last window in the chain. */
+       if (window == the_echo_area ||
+           (window == windows && !echo_area_is_active))
+         {
+           register WINDOW *win, *last = NULL;
+ 
+           for (win = windows; win; win = win->next)
+             last = win;
+ 
+           window = last;
+         }
+       else
+         {
+           if (window == windows)
+             window = the_echo_area;
+           else
+             window = window->prev;
+         }
+     }
+ 
+   if (active_window != window)
+     {
+       if (auto_footnotes_p)
+         info_get_or_remove_footnotes (window);
+ 
+       window->flags |= W_UpdateWindow;
+       active_window = window;
+     }
+ }
+ 
+ /* Split WINDOW into two windows, both showing the same node.  If we
+    are automatically tiling windows, re-tile after the split. */
+ DECLARE_INFO_COMMAND (info_split_window, _("Split the current window"))
+ {
+   WINDOW *split, *old_active;
+   int pagetop;
+ 
+   /* Remember the current pagetop of the window being split.  If it doesn't
+      change, we can scroll its contents around after the split. */
+   pagetop = window->pagetop;
+ 
+   /* Make the new window. */
+   old_active = active_window;
+   active_window = window;
+   split = window_make_window (window->node);
+   active_window = old_active;
+ 
+   if (!split)
+     {
+       info_error (msg_win_too_small, NULL, NULL);
+     }
+   else
+     {
+ #if defined (SPLIT_BEFORE_ACTIVE)
+       /* Try to scroll the old window into its new postion. */
+       if (pagetop == window->pagetop)
+         {
+           int start, end, amount;
+ 
+           start = split->first_row;
+           end = start + window->height;
+           amount = split->height + 1;
+           display_scroll_display (start, end, amount);
+         }
+ #else /* !SPLIT_BEFORE_ACTIVE */
+       /* Make sure point still appears in the active window. */
+       info_show_point (window);
+ #endif /* !SPLIT_BEFORE_ACTIVE */
+ 
+       /* If the window just split was one internal to Info, try to display
+          something else in it. */
+       if (internal_info_node_p (split->node))
+         {
+           register int i, j;
+           INFO_WINDOW *iw;
+           NODE *node = NULL;
+           char *filename;
+ 
+           for (i = 0; (iw = info_windows[i]); i++)
+             {
+               for (j = 0; j < iw->nodes_index; j++)
+                 if (!internal_info_node_p (iw->nodes[j]))
+                   {
+                     if (iw->nodes[j]->parent)
+                       filename = iw->nodes[j]->parent;
+                     else
+                       filename = iw->nodes[j]->filename;
+ 
+                     node = info_get_node (filename, iw->nodes[j]->nodename);
+                     if (node)
+                       {
+                         window_set_node_of_window (split, node);
+                         i = info_windows_index - 1;
+                         break;
+                       }
+                   }
+             }
+         }
+       split->pagetop = window->pagetop;
+ 
+       if (auto_tiling_p)
+         window_tile_windows (DONT_TILE_INTERNALS);
+       else
+         window_adjust_pagetop (split);
+ 
+       remember_window_and_node (split, split->node);
+     }
+ }
+ 
+ /* Delete WINDOW, forgetting the list of last visited nodes.  If we are
+    automatically displaying footnotes, show or remove the footnotes
+    window.  If we are automatically tiling windows, re-tile after the
+    deletion. */
+ DECLARE_INFO_COMMAND (info_delete_window, _("Delete the current window"))
+ {
+   if (!windows->next)
+     {
+       info_error (msg_cant_kill_last, NULL, NULL);
+     }
+   else if (window->flags & W_WindowIsPerm)
+     {
+       info_error (_("Cannot delete a permanent window"), NULL, NULL);
+     }
+   else
+     {
+       info_delete_window_internal (window);
+ 
+       if (auto_footnotes_p)
+         info_get_or_remove_footnotes (active_window);
+ 
+       if (auto_tiling_p)
+         window_tile_windows (DONT_TILE_INTERNALS);
+     }
+ }
+ 
+ /* Do the physical deletion of WINDOW, and forget this window and
+    associated nodes. */
+ void
+ info_delete_window_internal (WINDOW *window)
+ {
+   if (windows->next && ((window->flags & W_WindowIsPerm) == 0))
+     {
+       /* We not only delete the window from the display, we forget it from
+          our list of remembered windows. */
+       forget_window_and_nodes (window);
+       window_delete_window (window);
+ 
+       if (echo_area_is_active)
+         echo_area_inform_of_deleted_window (window);
+     }
+ }
+ 
+ /* Just keep WINDOW, deleting all others. */
+ DECLARE_INFO_COMMAND (info_keep_one_window, _("Delete all other windows"))
+ {
+   int num_deleted;              /* The number of windows we deleted. */
+   int pagetop, start, end;
+ 
+   /* Remember a few things about this window.  We may be able to speed up
+      redisplay later by scrolling its contents. */
+   pagetop = window->pagetop;
+   start = window->first_row;
+   end = start + window->height;
+ 
+   num_deleted = 0;
+ 
+   while (1)
+     {
+       WINDOW *win;
+ 
+       /* Find an eligible window and delete it.  If no eligible windows
+          are found, we are done.  A window is eligible for deletion if
+          is it not permanent, and it is not WINDOW. */
+       for (win = windows; win; win = win->next)
+         if (win != window && ((win->flags & W_WindowIsPerm) == 0))
+           break;
+ 
+       if (!win)
+         break;
+ 
+       info_delete_window_internal (win);
+       num_deleted++;
+     }
+ 
+   /* Scroll the contents of this window into the right place so that the
+      user doesn't have to wait any longer than necessary for redisplay. */
+   if (num_deleted)
+     {
+       int amount;
+ 
+       amount = (window->first_row - start);
+       amount -= (window->pagetop - pagetop);
+       display_scroll_display (start, end, amount);
+     }
+ 
+   window->flags |= W_UpdateWindow;
+ }
+ 
+ /* Scroll the "other" window of WINDOW. */
+ DECLARE_INFO_COMMAND (info_scroll_other_window, _("Scroll the other window"))
+ {
+   WINDOW *other;
+ 
+   /* If only one window, give up. */
+   if (!windows->next)
+     {
+       info_error (msg_one_window, NULL, NULL);
+       return;
+     }
+ 
+   other = window->next;
+ 
+   if (!other)
+     other = window->prev;
+ 
+   info_scroll_forward (other, count, key);
+ }
+ 
+ /* Scroll the "other" window of WINDOW. */
+ DECLARE_INFO_COMMAND (info_scroll_other_window_backward,
+                       _("Scroll the other window backward"))
+ {
+   info_scroll_other_window (window, -count, key);
+ }
+ 
+ /* Change the size of WINDOW by AMOUNT. */
+ DECLARE_INFO_COMMAND (info_grow_window, _("Grow (or shrink) this window"))
+ {
+   window_change_window_height (window, count);
+ }
+ 
+ /* When non-zero, tiling takes place automatically when info_split_window
+    is called. */
+ int auto_tiling_p = 0;
+ 
+ /* Tile all of the visible windows. */
+ DECLARE_INFO_COMMAND (info_tile_windows,
+     _("Divide the available screen space among the visible windows"))
+ {
+   window_tile_windows (TILE_INTERNALS);
+ }
+ 
+ /* Toggle the state of this window's wrapping of lines. */
+ DECLARE_INFO_COMMAND (info_toggle_wrap,
+               _("Toggle the state of line wrapping in the current window"))
+ {
+   window_toggle_wrap (window);
+ }
+ 
+ /* Toggle the usage of regular expressions in searches. */
+ DECLARE_INFO_COMMAND (info_toggle_regexp,
+               _("Toggle the usage of regular expressions in searches"))
+ {
+   use_regex = 1 - use_regex;
+   window_message_in_echo_area (use_regex
+                                ? _("Using regular expressions for searches.")
+                                : _("Using literal strings for searches."),
+                                NULL, NULL);
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                      Info Node Commands                          */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Return (FILENAME)NODENAME for NODE, or just NODENAME if NODE's
+    filename is not set. */
+ char *
+ node_printed_rep (NODE *node)
+ {
+   char *rep;
+ 
+   if (node->filename)
+     {
+       char *filename
+        = filename_non_directory (node->parent ? node->parent : node->filename);
+       rep = xmalloc (1 + strlen (filename) + 1 + strlen (node->nodename) + 1);
+       sprintf (rep, "(%s)%s", filename, node->nodename);
+     }
+   else
+     rep = node->nodename;
+ 
+   return rep;
+ }
+ 
+ 
+ /* Using WINDOW for various defaults, select the node referenced by ENTRY
+    in it.  If the node is selected, the window and node are remembered. */
+ void
+ info_select_reference (WINDOW *window, REFERENCE *entry)
+ {
+   NODE *node;
+   char *filename, *nodename, *file_system_error;
+ 
+   file_system_error = NULL;
+ 
+   filename = entry->filename;
+   if (!filename)
+     filename = window->node->parent;
+   if (!filename)
+     filename = window->node->filename;
+ 
+   if (filename)
+     filename = xstrdup (filename);
+ 
+   if (entry->nodename)
+     nodename = xstrdup (entry->nodename);
+   else
+     nodename = xstrdup ("Top");
+ 
+   node = info_get_node (filename, nodename);
+ 
+   /* Try something a little weird.  If the node couldn't be found, and the
+      reference was of the form "foo::", see if the entry->label can be found
+      as a file, with a node of "Top". */
+   if (!node)
+     {
+       if (info_recent_file_error)
+         file_system_error = xstrdup (info_recent_file_error);
+ 
+       if (entry->nodename && (strcmp (entry->nodename, entry->label) == 0))
+         {
+           node = info_get_node (entry->label, "Top");
+           if (!node && info_recent_file_error)
+             {
+               maybe_free (file_system_error);
+               file_system_error = xstrdup (info_recent_file_error);
+             }
+         }
+     }
+ 
+   if (!node)
+     {
+       if (file_system_error)
+         info_error (file_system_error, NULL, NULL);
+       else
+         info_error (msg_cant_find_node, nodename, NULL);
+     }
+ 
+   maybe_free (file_system_error);
+   maybe_free (filename);
+   maybe_free (nodename);
+ 
+   if (node)
+     info_set_node_of_window (1, window, node);
+ }
+ 
+ /* Parse the node specification in LINE using WINDOW to default the filename.
+    Select the parsed node in WINDOW and remember it, or error if the node
+    couldn't be found. */
+ static void
+ info_parse_and_select (char *line, WINDOW *window)
+ {
+   REFERENCE entry;
+ 
+   info_parse_node (line, DONT_SKIP_NEWLINES);
+ 
+   entry.nodename = info_parsed_nodename;
+   entry.filename = info_parsed_filename;
+   entry.label = "*info-parse-and-select*";
+ 
+   info_select_reference (window, &entry);
+ }
+ 
+ /* Given that the values of INFO_PARSED_FILENAME and INFO_PARSED_NODENAME
+    are previously filled, try to get the node represented by them into
+    WINDOW.  The node should have been pointed to by the LABEL pointer of
+    WINDOW->node. */
+ static void
+ info_handle_pointer (char *label, WINDOW *window)
+ {
+   if (info_parsed_filename || info_parsed_nodename)
+     {
+       char *filename, *nodename;
+       NODE *node;
+ 
+       filename = nodename = NULL;
+ 
+       if (info_parsed_filename)
+         filename = xstrdup (info_parsed_filename);
+       else
+         {
+           if (window->node->parent)
+             filename = xstrdup (window->node->parent);
+           else if (window->node->filename)
+             filename = xstrdup (window->node->filename);
+         }
+ 
+       if (info_parsed_nodename)
+         nodename = xstrdup (info_parsed_nodename);
+       else
+         nodename = xstrdup ("Top");
+ 
+       node = info_get_node (filename, nodename);
+ 
+       if (node)
+         {
+           INFO_WINDOW *info_win;
+ 
+           info_win = get_info_window_of_window (window);
+           if (info_win)
+             {
+               info_win->pagetops[info_win->current] = window->pagetop;
+               info_win->points[info_win->current] = window->point;
+             }
+           info_set_node_of_window (1, window, node);
+         }
+       else
+         {
+           if (info_recent_file_error)
+             info_error (info_recent_file_error, NULL, NULL);
+           else
+             info_error (msg_cant_file_node, filename, nodename);
+         }
+ 
+       free (filename);
+       free (nodename);
+     }
+   else
+     {
+       info_error (msg_no_pointer, label, NULL);
+     }
+ }
+ 
+ /* Make WINDOW display the "Next:" node of the node currently being
+    displayed. */
+ DECLARE_INFO_COMMAND (info_next_node, _("Select the Next node"))
+ {
+   info_next_label_of_node (window->node);
+   info_handle_pointer ("Next", window);
+ }
+ 
+ /* Make WINDOW display the "Prev:" node of the node currently being
+    displayed. */
+ DECLARE_INFO_COMMAND (info_prev_node, _("Select the Prev node"))
+ {
+   info_prev_label_of_node (window->node);
+   info_handle_pointer ("Prev", window);
+ }
+ 
+ /* Make WINDOW display the "Up:" node of the node currently being
+    displayed. */
+ DECLARE_INFO_COMMAND (info_up_node, _("Select the Up node"))
+ {
+   info_up_label_of_node (window->node);
+   info_handle_pointer ("Up", window);
+ }
+ 
+ /* Make WINDOW display the last node of this info file. */
+ DECLARE_INFO_COMMAND (info_last_node, _("Select the last node in this file"))
+ {
+   register int i;
+   FILE_BUFFER *fb = file_buffer_of_window (window);
+   NODE *node = NULL;
+ 
+   if (fb && fb->tags)
+     {
+       int last_node_tag_idx = -1;
+ 
+       /* If no explicit argument, or argument of zero, default to the
+          last node.  */
+       if (count == 0 || (count == 1 && !info_explicit_arg))
+         count = -1;
+       for (i = 0; count && fb->tags[i]; i++)
+         if (fb->tags[i]->nodelen != 0) /* don't count anchor tags */
+           {
+             count--;
+             last_node_tag_idx = i;
+           }
+       if (count > 0)
+         i = last_node_tag_idx + 1;
+       if (i > 0)
+         node = info_get_node (fb->filename, fb->tags[i - 1]->nodename);
+     }
+ 
+   if (!node)
+     info_error (_("This window has no additional nodes"), NULL, NULL);
+   else
+     info_set_node_of_window (1, window, node);
+ }
+ 
+ /* Make WINDOW display the first node of this info file. */
+ DECLARE_INFO_COMMAND (info_first_node, _("Select the first node in this file"))
+ {
+   FILE_BUFFER *fb = file_buffer_of_window (window);
+   NODE *node = NULL;
+ 
+   /* If no explicit argument, or argument of zero, default to the
+      first node.  */
+   if (count == 0)
+     count = 1;
+   if (fb && fb->tags)
+     {
+       register int i;
+       int last_node_tag_idx = -1;
+ 
+       for (i = 0; count && fb->tags[i]; i++)
+         if (fb->tags[i]->nodelen != 0) /* don't count anchor tags */
+           {
+             count--;
+             last_node_tag_idx = i;
+           }
+       if (count > 0)
+         i = last_node_tag_idx + 1;
+       if (i > 0)
+         node = info_get_node (fb->filename, fb->tags[i - 1]->nodename);
+     }
+ 
+   if (!node)
+     info_error (_("This window has no additional nodes"), NULL, NULL);
+   else
+     info_set_node_of_window (1, window, node);
+ }
+ 
+ /* Select the last menu item in WINDOW->node. */
+ DECLARE_INFO_COMMAND (info_last_menu_item,
+    _("Select the last item in this node's menu"))
+ {
+   info_menu_digit (window, 1, '0');
+ }
+ 
+ /* Use KEY (a digit) to select the Nth menu item in WINDOW->node. */
+ DECLARE_INFO_COMMAND (info_menu_digit, _("Select this menu item"))
+ {
+   register int i, item;
+   register REFERENCE **menu;
+ 
+   menu = info_menu_of_node (window->node);
+ 
+   if (!menu)
+     {
+       info_error (msg_no_menu_node, NULL, NULL);
+       return;
+     }
+ 
+   /* We have the menu.  See if there are this many items in it. */
+   item = key - '0';
+ 
+   /* Special case.  Item "0" is the last item in this menu. */
+   if (item == 0)
+     for (i = 0; menu[i + 1]; i++);
+   else
+     {
+       for (i = 0; menu[i]; i++)
+         if (i == item - 1)
+           break;
+     }
+ 
+   if (menu[i])
+     {
+       info_select_reference (window, menu[i]);
+       if (menu[i]->line_number > 0)
+         info_next_line (window, menu[i]->line_number - 1, key);
+     }
+   else
+     info_error (_("There aren't %d items in this menu."),
+                 (void *) (long) item, NULL);
+ 
+   info_free_references (menu);
+   return;
+ }
+ 
+ 
+ 
+ /* Return a pointer to the xref in XREF_LIST that is nearest to POS, or
+    NULL if XREF_LIST is empty.  That is, if POS is within any of the
+    given xrefs, return that one.  Otherwise, return the one with the
+    nearest beginning or end.  If there are two that are equidistant,
+    prefer the one forward.  The return is in newly-allocated memory,
+    since the caller frees it.
+    
+    This is called from info_menu_or_ref_item with XREF_LIST being all
+    the xrefs in the node, and POS being point.  The ui function that
+    starts it all off is select-reference-this-line.
+ 
+    This is not the same logic as in info.el.  Info-get-token prefers
+    searching backwards to searching forwards, and has a hardwired search
+    limit of 200 chars (in Emacs 21.2).  */
+ 
+ static REFERENCE **
+ nearest_xref (REFERENCE **xref_list, long int pos)
+ {
+   int this_xref;
+   int nearest = -1;
+   long best_delta = -1;
+   
+   for (this_xref = 0; xref_list[this_xref]; this_xref++)
+     {
+       long delta;
+       REFERENCE *xref = xref_list[this_xref];
+       if (xref->start <= pos && pos <= xref->end)
+         { /* POS is within this xref, we're done */
+           nearest = this_xref;
+           break;
+         }
+       
+       /* See how far POS is from this xref.  Take into account the
+          `*Note' that begins the xref, since as far as the user is
+          concerned, that's where it starts.  */
+       delta = MIN (labs (pos - (xref->start - strlen (INFO_XREF_LABEL))),
+                    labs (pos - xref->end));
+       
+       /* It's the <= instead of < that makes us choose the forward xref
+          of POS if two are equidistant.  Of course, because of all the
+          punctuation surrounding xrefs, it's not necessarily obvious
+          where one ends.  */
+       if (delta <= best_delta || best_delta < 0)
+         {
+           nearest = this_xref;
+           best_delta = delta;
+         }
+     }
+   
+   /* Maybe there was no list to search through.  */
+   if (nearest < 0)
+     return NULL;
+   
+   /* Ok, we have a nearest xref, make a list of it.  */
+   {
+     REFERENCE **ret = xmalloc (sizeof (REFERENCE *) * 2);
+     ret[0] = info_copy_reference (xref_list[nearest]);
+     ret[1] = NULL;
+     return ret;
+   }
+ }
+ 
+ 
+ /* Read a menu or followed reference from the user defaulting to the
+    reference found on the current line, and select that node.  The
+    reading is done with completion.  BUILDER is the function used
+    to build the list of references.  ASK_P is non-zero if the user
+    should be prompted, or zero to select the default item. */
+ static void
+ info_menu_or_ref_item (WINDOW *window, int count,
+     unsigned char key, REFERENCE **(*builder) (NODE *node), int ask_p)
+ {
+   char *line;
+   REFERENCE *entry;
+   REFERENCE *defentry = NULL;
+   REFERENCE **menu = (*builder) (window->node);
+ 
+   if (!menu)
+     {
+       if (builder == info_menu_of_node)
+         info_error (msg_no_menu_node, NULL, NULL);
+       else
+         info_error (msg_no_xref_node, NULL, NULL);
+       return;
+     }
+ 
+   /* Default the selected reference to the one which is on the line that
+      point is in.  */
+   {
+     REFERENCE **refs = NULL;
+     int point_line = window_line_of_point (window);
+ 
+     if (point_line != -1)
+       {
+         SEARCH_BINDING binding;
+ 
+         binding.buffer = window->node->contents;
+         binding.start = window->line_starts[point_line] - binding.buffer;
+         if (window->line_starts[point_line + 1])
+           binding.end = window->line_starts[point_line + 1] - binding.buffer;
+         else
+           binding.end = window->node->nodelen;
+         binding.flags = 0;
+ 
+         if (builder == info_menu_of_node)
+           {
+             if (point_line)
+               {
+                 binding.start--;
+                 refs = info_menu_items (&binding);
+               }
+           }
+         else
+           {
+ #if defined (HANDLE_MAN_PAGES)
+             if (window->node->flags & N_IsManPage)
+               refs = manpage_xrefs_in_binding (window->node, &binding);
+             else
+ #endif /* HANDLE_MAN_PAGES */
+               refs = nearest_xref (menu, window->point);
+           }
+ 
+         if (refs && refs[0])
+           {
+             if (strcmp (refs[0]->label, "Menu") != 0
+                 || builder == info_xrefs_of_node)
+               {
+                 int which = 0;
+ 
+                 /* For xrefs, find the closest reference to point,
+                    unless we only have one reference (as we will if
+                    we've called nearest_xref above).  It would be better
+                    to have only one piece of code, but the conditions
+                    when we call this are tangled.  */
+                 if (builder == info_xrefs_of_node && refs[1])
+                   {
+                     int closest = -1;
+ 
+                     for (; refs[which]; which++)
+                       {
+                         if (window->point >= refs[which]->start
+                             && window->point <= refs[which]->end)
+                           {
+                             closest = which;
+                             break;
+                           }
+                         else if (window->point < refs[which]->start)
+                           break;
+                       }
+                     if (which > 0)
+                       {
+                         if (closest == -1)
+                           which--;
+                         else
+                           which = closest;
+                       }
+                   }
+ 
+                 defentry = xmalloc (sizeof (REFERENCE));
+                 defentry->label = xstrdup (refs[which]->label);
+                 defentry->filename = refs[which]->filename;
+                 defentry->nodename = refs[which]->nodename;
+                 defentry->line_number = refs[which]->line_number;
+ 
+                 if (defentry->filename)
+                   defentry->filename = xstrdup (defentry->filename);
+                 if (defentry->nodename)
+                   defentry->nodename = xstrdup (defentry->nodename);
+               }
+             info_free_references (refs);
+           }
+       }
+   }
+ 
+   /* If we are going to ask the user a question, do it now. */
+   if (ask_p)
+     {
+       char *prompt;
+ 
+       /* Build the prompt string. */
+       if (builder == info_menu_of_node)
+         {
+           if (defentry)
+             {
+               prompt = xmalloc (strlen (defentry->label)
+                                 + strlen (_("Menu item (%s): ")));
+               sprintf (prompt, _("Menu item (%s): "), defentry->label);
+             }
+           else
+             prompt = xstrdup (_("Menu item: "));
+         }
+       else
+         {
+           if (defentry)
+             {
+               prompt = xmalloc (strlen (defentry->label)
+                                 + strlen (_("Follow xref (%s): ")));
+               sprintf (prompt, _("Follow xref (%s): "), defentry->label);
+             }
+           else
+             prompt = xstrdup (_("Follow xref: "));
+         }
+ 
+       line = info_read_completing_in_echo_area (window, prompt, menu);
+       free (prompt);
+ 
+       window = active_window;
+ 
+       /* User aborts, just quit. */
+       if (!line)
+         {
+           maybe_free (defentry);
+           info_free_references (menu);
+           info_abort_key (window, 0, 0);
+           return;
+         }
+ 
+       /* If we had a default and the user accepted it, use that. */
+       if (!*line)
+         {
+           free (line);
+           if (defentry)
+             line = xstrdup (defentry->label);
+           else
+             line = NULL;
+         }
+     }
+   else
+     {
+       /* Not going to ask any questions.  If we have a default entry, use
+          that, otherwise return. */
+       if (!defentry)
+         return;
+       else
+         line = xstrdup (defentry->label);
+     }
+ 
+   if (line)
+     {
+       /* It is possible that the references have more than a single
+          entry with the same label, and also LINE is down-cased, which
+          complicates matters even more.  Try to be as accurate as we
+          can: if they've chosen the default, use defentry directly. */
+       if (defentry && strcmp (line, defentry->label) == 0)
+         entry = defentry;
+       else
+         /* Find the selected label in the references.  If there are
+            more than one label which matches, find the one that's
+            closest to point.  */
+         {
+           register int i;
+           int best = -1, min_dist = window->node->nodelen;
+           REFERENCE *ref;
+ 
+           for (i = 0; menu && (ref = menu[i]); i++)
+             {
+               /* Need to use mbscasecmp because LINE is downcased
+                  inside info_read_completing_in_echo_area.  */
+               if (mbscasecmp (line, ref->label) == 0)
+                 {
+                   /* ref->end is more accurate estimate of position
+                      for menus than ref->start.  Go figure.  */
+                   int dist = abs (window->point - ref->end);
+ 
+                   if (dist < min_dist)
+                     {
+                       min_dist = dist;
+                       best = i;
+                     }
+                 }
+             }
+           if (best != -1)
+             entry = menu[best];
+           else
+             entry = NULL;
+         }
+ 
+       if (!entry && defentry)
+         info_error (_("The reference disappeared! (%s)."), line, NULL);
+       else
+         {
+           NODE *orig = window->node;
+           info_select_reference (window, entry);
+ 
+           if (builder == info_xrefs_of_node && window->node != orig
+               && !(window->node->flags & N_FromAnchor))
+             { /* Search for this reference in the node.  */
+               long offset;
+               long start;
+ 
+               if (window->line_count > 0)
+                 start = window->line_starts[1] - window->node->contents;
+               else
+                 start = 0;
+ 
+               offset =
+                 info_target_search_node (window->node, entry->label, start);
+ 
+               if (offset != -1)
+                 {
+                   window->point = offset;
+                   window_adjust_pagetop (window);
+                 }
+             }
+ 
+             if (entry->line_number > 0)
+               /* next_line starts at line 1?  Anyway, the -1 makes it
+                  move to the right line.  */
+               info_next_line (window, entry->line_number - 1, key);
+         }
+ 
+       free (line);
+       if (defentry)
+         {
+           free (defentry->label);
+           maybe_free (defentry->filename);
+           maybe_free (defentry->nodename);
+           free (defentry);
+         }
+     }
+ 
+   info_free_references (menu);
+ 
+   if (!info_error_was_printed)
+     window_clear_echo_area ();
+ }
+ 
+ /* Read a line (with completion) which is the name of a menu item,
+    and select that item. */
+ DECLARE_INFO_COMMAND (info_menu_item, _("Read a menu item and select its node"))
+ {
+   info_menu_or_ref_item (window, count, key, info_menu_of_node, 1);
+ }
+ 
+ /* Read a line (with completion) which is the name of a reference to
+    follow, and select the node. */
+ DECLARE_INFO_COMMAND
+   (info_xref_item, _("Read a footnote or cross reference and select its node"))
+ {
+   info_menu_or_ref_item (window, count, key, info_xrefs_of_node, 1);
+ }
+ 
+ /* Position the cursor at the start of this node's menu. */
+ DECLARE_INFO_COMMAND (info_find_menu, _("Move to the start of this node's menu"))
+ {
+   SEARCH_BINDING binding;
+   long position;
+ 
+   binding.buffer = window->node->contents;
+   binding.start  = 0;
+   binding.end = window->node->nodelen;
+   binding.flags = S_FoldCase | S_SkipDest;
+ 
+   position = search (INFO_MENU_LABEL, &binding);
+ 
+   if (position == -1)
+     info_error (msg_no_menu_node, NULL, NULL);
+   else
+     {
+       window->point = position;
+       window_adjust_pagetop (window);
+       window->flags |= W_UpdateWindow;
+     }
+ }
+ 
+ /* Visit as many menu items as is possible, each in a separate window. */
+ DECLARE_INFO_COMMAND (info_visit_menu,
+   _("Visit as many menu items at once as possible"))
+ {
+   register int i;
+   REFERENCE *entry, **menu;
+ 
+   menu = info_menu_of_node (window->node);
+ 
+   if (!menu)
+     info_error (msg_no_menu_node, NULL, NULL);
+ 
+   for (i = 0; (!info_error_was_printed) && (entry = menu[i]); i++)
+     {
+       WINDOW *new;
+ 
+       new = window_make_window (window->node);
+       window_tile_windows (TILE_INTERNALS);
+ 
+       if (!new)
+         info_error (msg_win_too_small, NULL, NULL);
+       else
+         {
+           active_window = new;
+           info_select_reference (new, entry);
+         }
+     }
+ }
+ 
+ /* Read a line of input which is a node name, and go to that node. */
+ DECLARE_INFO_COMMAND (info_goto_node, _("Read a node name and select it"))
+ {
+   char *line;
+ 
+ #define GOTO_COMPLETES
+ #if defined (GOTO_COMPLETES)
+   /* Build a completion list of all of the known nodes. */
+   {
+     register int fbi, i;
+     FILE_BUFFER *current;
+     REFERENCE **items = NULL;
+     int items_index = 0;
+     int items_slots = 0;
+ 
+     current = file_buffer_of_window (window);
+ 
+     for (fbi = 0; info_loaded_files && info_loaded_files[fbi]; fbi++)
+       {
+         FILE_BUFFER *fb;
+         REFERENCE *entry;
+         int this_is_the_current_fb;
+ 
+         fb = info_loaded_files[fbi];
+         this_is_the_current_fb = (current == fb);
+ 
+         entry = xmalloc (sizeof (REFERENCE));
+         entry->filename = entry->nodename = NULL;
+         entry->label = xmalloc (4 + strlen (fb->filename));
+         sprintf (entry->label, "(%s)*", fb->filename);
+ 
+         add_pointer_to_array
+           (entry, items_index, items, items_slots, 10, REFERENCE *);
+ 
+         if (fb->tags)
+           {
+             for (i = 0; fb->tags[i]; i++)
+               {
+                 entry = xmalloc (sizeof (REFERENCE));
+                 entry->filename = entry->nodename = NULL;
+                 if (this_is_the_current_fb)
+                   entry->label = xstrdup (fb->tags[i]->nodename);
+                 else
+                   {
+                     entry->label = xmalloc
+                       (4 + strlen (fb->filename) +
+                        strlen (fb->tags[i]->nodename));
+                     sprintf (entry->label, "(%s)%s",
+                              fb->filename, fb->tags[i]->nodename);
+                   }
+ 
+                 add_pointer_to_array
+                   (entry, items_index, items, items_slots, 100, REFERENCE *);
+               }
+           }
+       }
+     line = info_read_maybe_completing (window, _("Goto node: "),
+         items);
+     info_free_references (items);
+   }
+ #else /* !GOTO_COMPLETES */
+   line = info_read_in_echo_area (window, _("Goto node: "));
+ #endif /* !GOTO_COMPLETES */
+ 
+   /* If the user aborted, quit now. */
+   if (!line)
+     {
+       info_abort_key (window, 0, 0);
+       return;
+     }
+ 
+   canonicalize_whitespace (line);
+ 
+   if (*line)
+     info_parse_and_select (line, window);
+ 
+   free (line);
+   if (!info_error_was_printed)
+     window_clear_echo_area ();
+ }
+ 
+ /* Follow the menu list in MENUS (list of strings terminated by a NULL
+    entry) from INITIAL_NODE.  If can't continue at any point (no menu or
+    no menu entry for the next item), return the node so far -- that
+    might be INITIAL_NODE itself.  If error, *ERRSTR and *ERRARG[12] will
+    be set to the error message and argument for message, otherwise they
+    will be NULL.  */
+ 
+ NODE *
+ info_follow_menus (NODE *initial_node, char **menus,
+     const char **errstr, char **errarg1, char **errarg2)
+ {
+   NODE *node = NULL;
+   *errstr = *errarg1 = *errarg2 = NULL;
+ 
+   for (; *menus; menus++)
+     {
+       static char *first_arg = NULL;
+       REFERENCE **menu;
+       REFERENCE *entry;
+       char *arg = *menus; /* Remember the name of the menu entry we want. */
+ 
+       /* A leading space is certainly NOT part of a node name.  Most
+          probably, they typed a space after the separating comma.  The
+          strings in menus[] have their whitespace canonicalized, so
+          there's at most one space to ignore.  */
+       if (*arg == ' ')
+         arg++;
+       if (!first_arg)
+         first_arg = arg;
+ 
+       /* Build and return a list of the menu items in this node. */
+       menu = info_menu_of_node (initial_node);
+ 
+       /* If no menu item in this node, stop here, but let the user
+          continue to use Info.  Perhaps they wanted this node and didn't
+          realize it. */
+       if (!menu)
+         {
+           if (arg == first_arg)
+             {
+               node = make_manpage_node (first_arg);
+               if (node)
+                 goto maybe_got_node;
+             }
+           *errstr = _("No menu in node `%s'.");
+           *errarg1 = node_printed_rep (initial_node);
+           return initial_node;
+         }
+ 
+       /* Find the specified menu item. */
+       entry = info_get_labeled_reference (arg, menu);
+ 
+       /* If the item wasn't found, search the list sloppily.  Perhaps this
+          user typed "buffer" when they really meant "Buffers". */
+       if (!entry)
+         {
+           int i;
+           int best_guess = -1;
+ 
+           for (i = 0; (entry = menu[i]); i++)
+             {
+               if (mbscasecmp (entry->label, arg) == 0)
+                 break;
+               else
+                 if ((best_guess == -1)
+                     && (mbsncasecmp (entry->label, arg, strlen (arg)) == 0))
+                   best_guess = i;
+             }
+ 
+           if (!entry && best_guess != -1)
+             entry = menu[best_guess];
+         }
+ 
+       /* If we still failed to find the reference, start Info with the current
+          node anyway.  It is probably a misspelling. */
+       if (!entry)
+         {
+           if (arg == first_arg)
+             {
+               /* Maybe they typed "info foo" instead of "info -f foo".  */
+               node = info_get_node (first_arg, 0);
+               if (node)
+                 add_file_directory_to_path (first_arg);
+               else
+                 node = make_manpage_node (first_arg);
+               if (node)
+                 goto maybe_got_node;
+             }
+ 
+           info_free_references (menu);
+           *errstr = _("No menu item `%s' in node `%s'.");
+           *errarg1 = arg;
+           *errarg2 = node_printed_rep (initial_node);
+           return initial_node;
+         }
+ 
+       /* We have found the reference that the user specified.  If no
+          filename in this reference, define it. */
+       if (!entry->filename)
+         entry->filename = xstrdup (initial_node->parent ? initial_node->parent
+                                                      : initial_node->filename);
+ 
+       /* Try to find this node.  */
+       node = info_get_node (entry->filename, entry->nodename);
+       if (!node && arg == first_arg)
+         {
+           node = make_manpage_node (first_arg);
+           if (node)
+             goto maybe_got_node;
+         }
+ 
+       /* Since we cannot find it, try using the label of the entry as a
+          file, i.e., "(LABEL)Top".  */
+       if (!node && entry->nodename
+           && strcmp (entry->label, entry->nodename) == 0)
+         node = info_get_node (entry->label, "Top");
+ 
+     maybe_got_node:
+       if (!node)
+         {
+           *errstr = _("Unable to find node referenced by `%s' in `%s'.");
+           *errarg1 = xstrdup (entry->label);
+           *errarg2 = node_printed_rep (initial_node);
+           info_free_references (menu);
+           return initial_node;
+         }
+ 
+       info_free_references (menu);
+ 
+       /* Success.  Go round the loop again.  */
+       free (initial_node);
+       initial_node = node;
+     }
+ 
+   return initial_node;
+ }
+ 
+ /* Split STR into individual node names by writing null bytes in wherever
+    there are commas and constructing a list of the resulting pointers.
+    (We can do this since STR has had canonicalize_whitespace called on it.)
+    Return array terminated with NULL.  */
+ 
+ static char **
+ split_list_of_nodenames (char *str)
+ {
+   unsigned len = 2;
+   char **nodes = xmalloc (len * sizeof (char *));
+ 
+   nodes[len - 2] = str;
+ 
+   while (*str++)
+     {
+       if (*str == ',')
+         {
+           *str++ = 0;           /* get past the null byte */
+           len++;
+           nodes = xrealloc (nodes, len * sizeof (char *));
+           nodes[len - 2] = str;
+         }
+     }
+ 
+   nodes[len - 1] = NULL;
+ 
+   return nodes;
+ }
+ 
+ 
+ /* Read a line of input which is a sequence of menus (starting from
+    dir), and follow them.  */
+ DECLARE_INFO_COMMAND (info_menu_sequence,
+    _("Read a list of menus starting from dir and follow them"))
+ {
+   char *line = info_read_in_echo_area (window, _("Follow menus: "));
+ 
+   /* If the user aborted, quit now. */
+   if (!line)
+     {
+       info_abort_key (window, 0, 0);
+       return;
+     }
+ 
+   canonicalize_whitespace (line);
+ 
+   if (*line)
+     {
+       const char *errstr;
+       char *errarg1, *errarg2;
+       NODE *dir_node = info_get_node (NULL, NULL);
+       char **nodes = split_list_of_nodenames (line);
+       NODE *node = NULL;
+ 
+       /* If DIR_NODE is NULL, they might be reading a file directly,
+          like in "info -d . -f ./foo".  Try using "Top" instead.  */
+       if (!dir_node)
+         {
+           char *file_name = window->node->parent;
+ 
+           if (!file_name)
+             file_name = window->node->filename;
+           dir_node = info_get_node (file_name, NULL);
+         }
+ 
+       /* If we still cannot find the starting point, give up.
+          We cannot allow a NULL pointer inside info_follow_menus.  */
+       if (!dir_node)
+         info_error (msg_cant_find_node, "Top", NULL);
+       else
+         node = info_follow_menus (dir_node, nodes, &errstr, &errarg1, &errarg2);
+ 
+       free (nodes);
+       if (!errstr)
+         info_set_node_of_window (1, window, node);
+       else
+         info_error (errstr, errarg1, errarg2);
+     }
+ 
+   free (line);
+   if (!info_error_was_printed)
+     window_clear_echo_area ();
+ }
+ 
+ /* Search the menu MENU for a (possibly mis-spelled) entry ARG.
+    Return the menu entry, or the best guess for what they meant by ARG,
+    or NULL if there's nothing in this menu seems to fit the bill.
+    If EXACT is non-zero, allow only exact matches.  */
+ static REFERENCE *
+ entry_in_menu (char *arg, REFERENCE **menu, int exact)
+ {
+   REFERENCE *entry;
+ 
+   /* First, try to find the specified menu item verbatim.  */
+   entry = info_get_labeled_reference (arg, menu);
+ 
+   /* If the item wasn't found, search the list sloppily.  Perhaps we
+      have "Option Summary", but ARG is "option".  */
+   if (!entry && !exact)
+     {
+       int i;
+       int best_guess = -1;
+ 
+       for (i = 0; (entry = menu[i]); i++)
+         {
+           if (mbscasecmp (entry->label, arg) == 0)
+             break;
+           else
+             if (mbsncasecmp (entry->label, arg, strlen (arg)) == 0)
+               best_guess = i;
+         }
+ 
+       if (!entry && best_guess != -1)
+         entry = menu[best_guess];
+     }
+ 
+   return entry;
+ }
+ 
+ /* Find the node that is the best candidate to list the PROGRAM's
+    invocation info and its command-line options, by looking for menu
+    items and chains of menu items with characteristic names.  */
+ void
+ info_intuit_options_node (WINDOW *window, NODE *initial_node, char *program)
+ {
+   /* The list of node names typical for GNU manuals where the program
+      usage and specifically the command-line arguments are described.
+      This is pure heuristics.  I gathered these node names by looking
+      at all the Info files I could put my hands on.  If you are
+      looking for evidence to complain to the GNU project about
+      non-uniform style of documentation, here you have your case!  */
+   static const char *invocation_nodes[] = {
+     "%s invocation",
+     "Invoking %s",
+     "Preliminaries",    /* m4 has Invoking under Preliminaries! */
+     "Invocation",
+     "Command Arguments",/* Emacs */
+     "Invoking `%s'",
+     "%s options",
+     "Options",
+     "Option ",          /* e.g. "Option Summary" */
+     "Invoking",
+     "All options",      /* tar, paxutils */
+     "Arguments",
+     "%s cmdline",       /* ar */
+     "%s",               /* last resort */
+     (const char *)0
+   };
+   NODE *node = NULL;
+   REFERENCE **menu;
+   const char **try_node;
+ 
+   /* We keep looking deeper and deeper in the menu structure until
+      there are no more menus or no menu items from the above list.
+      Some manuals have the invocation node sitting 3 or 4 levels deep
+      in the menu hierarchy...  */
+   for (node = initial_node; node; initial_node = node)
+     {
+       REFERENCE *entry = NULL;
+ 
+       /* Build and return a list of the menu items in this node. */
+       menu = info_menu_of_node (initial_node);
+ 
+       /* If no menu item in this node, stop here.  Perhaps this node
+          is the one they need.  */
+       if (!menu)
+         break;
+ 
+       /* Look for node names typical for usage nodes in this menu.  */
+       for (try_node = invocation_nodes; *try_node; try_node++)
+         {
+           char *nodename;
+ 
+           nodename = xmalloc (strlen (program) + strlen (*try_node));
+           sprintf (nodename, *try_node, program);
+           /* The last resort "%s" is dangerous, so we restrict it
+              to exact matches here.  */
+           entry = entry_in_menu (nodename, menu,
+                                  strcmp (*try_node, "%s") == 0);
+           free (nodename);
+           if (entry)
+             break;
+         }
+ 
+       if (!entry)
+         break;
+ 
+       if (!entry->filename)
+         entry->filename = xstrdup (initial_node->parent ? initial_node->parent
+                                    : initial_node->filename);
+       /* Try to find this node.  */
+       node = info_get_node (entry->filename, entry->nodename);
+       info_free_references (menu);
+       if (!node)
+         break;
+     }
+ 
+   /* We've got our best shot at the invocation node.  Now select it.  */
+   if (initial_node)
+     info_set_node_of_window (1, window, initial_node);
+   if (!info_error_was_printed)
+     window_clear_echo_area ();
+ }
+ 
+ /* Given a name of an Info file, find the name of the package it
+    describes by removing the leading directories and extensions.  */
+ char *
+ program_name_from_file_name (char *file_name)
+ {
+   int i;
+   char *program_name = xstrdup (filename_non_directory (file_name));
+ 
+   for (i = strlen (program_name) - 1; i > 0; i--)
+     if (program_name[i] == '.'
+         && (FILENAME_CMPN (program_name + i, ".info", 5) == 0
+             || FILENAME_CMPN (program_name + i, ".inf", 4) == 0
+ #ifdef __MSDOS__
+             || FILENAME_CMPN (program_name + i, ".i", 2) == 0
+ #endif
+             || isdigit (program_name[i + 1]))) /* a man page foo.1 */
+       {
+         program_name[i] = 0;
+         break;
+       }
+   return program_name;
+ }
+ 
+ DECLARE_INFO_COMMAND (info_goto_invocation_node,
+                       _("Find the node describing program invocation"))
+ {
+   const char *invocation_prompt = _("Find Invocation node of [%s]: ");
+   char *program_name, *line;
+   char *default_program_name, *prompt, *file_name;
+   NODE *top_node;
+ 
+   /* Intuit the name of the program they are likely to want.
+      We use the file name of the current Info file as a hint.  */
+   file_name = window->node->parent ? window->node->parent
+                                    : window->node->filename;
+   default_program_name = program_name_from_file_name (file_name);
+ 
+   prompt = xmalloc (strlen (default_program_name) +
+ 		    strlen (invocation_prompt));
+   sprintf (prompt, invocation_prompt, default_program_name);
+   line = info_read_in_echo_area (window, prompt);
+   free (prompt);
+   if (!line)
+     {
+       info_abort_key (window, 0, 0);
+       return;
+     }
+   if (*line)
+     program_name = line;
+   else
+     program_name = default_program_name;
+ 
+   /* In interactive usage they'd probably expect us to begin looking
+      from the Top node.  */
+   top_node = info_get_node (file_name, NULL);
+   if (!top_node)
+     info_error (msg_cant_find_node, "Top", NULL);
+ 
+   info_intuit_options_node (window, top_node, program_name);
+   free (line);
+   free (default_program_name);
+ }
+ 
+ #if defined (HANDLE_MAN_PAGES)
+ DECLARE_INFO_COMMAND (info_man, _("Read a manpage reference and select it"))
+ {
+   char *line;
+ 
+   line = info_read_in_echo_area (window, _("Get Manpage: "));
+ 
+   if (!line)
+     {
+       info_abort_key (window, 0, 0);
+       return;
+     }
+ 
+   canonicalize_whitespace (line);
+ 
+   if (*line)
+     {
+       char *goto_command;
+ 
+       goto_command = xmalloc
+         (4 + strlen (MANPAGE_FILE_BUFFER_NAME) + strlen (line));
+ 
+       sprintf (goto_command, "(%s)%s", MANPAGE_FILE_BUFFER_NAME, line);
+ 
+       info_parse_and_select (goto_command, window);
+       free (goto_command);
+     }
+ 
+   free (line);
+   if (!info_error_was_printed)
+     window_clear_echo_area ();
+ }
+ #endif /* HANDLE_MAN_PAGES */
+ 
+ /* Move to the "Top" node in this file. */
+ DECLARE_INFO_COMMAND (info_top_node, _("Select the node `Top' in this file"))
+ {
+   info_parse_and_select ("Top", window);
+ }
+ 
+ /* Move to the node "(dir)Top". */
+ DECLARE_INFO_COMMAND (info_dir_node, _("Select the node `(dir)'"))
+ {
+   info_parse_and_select ("(dir)Top", window);
+ }
+ 
+ 
+ /* Read the name of a node to kill.  The list of available nodes comes
+    from the nodes appearing in the current window configuration. */
+ static char *
+ read_nodename_to_kill (WINDOW *window)
+ {
+   int iw;
+   char *nodename;
+   INFO_WINDOW *info_win;
+   REFERENCE **menu = NULL;
+   int menu_index = 0, menu_slots = 0;
+   char *default_nodename = xstrdup (active_window->node->nodename);
+   char *prompt = xmalloc (strlen (_("Kill node (%s): ")) + strlen (default_nodename));
+ 
+   sprintf (prompt, _("Kill node (%s): "), default_nodename);
+ 
+   for (iw = 0; (info_win = info_windows[iw]); iw++)
+     {
+       REFERENCE *entry = xmalloc (sizeof (REFERENCE));
+       entry->label = xstrdup (info_win->window->node->nodename);
+       entry->filename = entry->nodename = NULL;
+ 
+       add_pointer_to_array (entry, menu_index, menu, menu_slots, 10,
+                             REFERENCE *);
+     }
+ 
+   nodename = info_read_completing_in_echo_area (window, prompt, menu);
+   free (prompt);
+   info_free_references (menu);
+   if (nodename && !*nodename)
+     {
+       free (nodename);
+       nodename = default_nodename;
+     }
+   else
+     free (default_nodename);
+ 
+   return nodename;
+ }
+ 
+ 
+ /* Delete NODENAME from this window, showing the most
+    recently selected node in this window. */
+ static void
+ kill_node (WINDOW *window, char *nodename)
+ {
+   int iw, i;
+   INFO_WINDOW *info_win;
+   NODE *temp;
+ 
+   /* If there is no nodename to kill, quit now. */
+   if (!nodename)
+     {
+       info_abort_key (window, 0, 0);
+       return;
+     }
+ 
+   /* If there is a nodename, find it in our window list. */
+   for (iw = 0; (info_win = info_windows[iw]); iw++)
+     if (strcmp (nodename, info_win->nodes[info_win->current]->nodename) == 0
+         && info_win->window == window)
+       break;
+ 
+   if (!info_win)
+     {
+       if (*nodename)
+         info_error (_("Cannot kill node `%s'"), nodename, NULL);
+       else
+         window_clear_echo_area ();
+ 
+       return;
+     }
+ 
+   /* If there are no more nodes left anywhere to view, complain and exit. */
+   if (info_windows_index == 1 && info_windows[0]->nodes_index == 1)
+     {
+       info_error (_("Cannot kill the last node"), NULL, NULL);
+       return;
+     }
+ 
+   /* INFO_WIN contains the node that the user wants to stop viewing.  Delete
+      this node from the list of nodes previously shown in this window. */
+   for (i = info_win->current; i < info_win->nodes_index; i++)
+     info_win->nodes[i] = info_win->nodes[i + 1];
+ 
+   /* There is one less node in this window's history list. */
+   info_win->nodes_index--;
+ 
+   /* Make this window show the most recent history node. */
+   info_win->current = info_win->nodes_index - 1;
+ 
+   /* If there aren't any nodes left in this window, steal one from the
+      next window. */
+   if (info_win->current < 0)
+     {
+       INFO_WINDOW *stealer;
+       int which, pagetop;
+       long point;
+ 
+       if (info_windows[iw + 1])
+         stealer = info_windows[iw + 1];
+       else
+         stealer = info_windows[0];
+ 
+       /* If the node being displayed in the next window is not the most
+          recently loaded one, get the most recently loaded one. */
+       if ((stealer->nodes_index - 1) != stealer->current)
+         which = stealer->nodes_index - 1;
+ 
+       /* Else, if there is another node behind the stealers current node,
+          use that one. */
+       else if (stealer->current > 0)
+         which = stealer->current - 1;
+ 
+       /* Else, just use the node appearing in STEALER's window. */
+       else
+         which = stealer->current;
+ 
+       /* Copy this node. */
+       {
+         NODE *copy = xmalloc (sizeof (NODE));
+ 
+         temp = stealer->nodes[which];
+         point = stealer->points[which];
+         pagetop = stealer->pagetops[which];
+ 
+         copy->filename = temp->filename;
+         copy->parent = temp->parent;
+         copy->nodename = temp->nodename;
+         copy->contents = temp->contents;
+         copy->nodelen = temp->nodelen;
+         copy->flags = temp->flags;
+         copy->display_pos = temp->display_pos;
+ 
+         temp = copy;
+       }
+ 
+       window_set_node_of_window (info_win->window, temp);
+       window->point = point;
+       window->pagetop = pagetop;
+       remember_window_and_node (info_win->window, temp);
+     }
+   else
+     {
+       temp = info_win->nodes[info_win->current];
+       temp->display_pos = info_win->points[info_win->current];
+       window_set_node_of_window (info_win->window, temp);
+     }
+ 
+   if (!info_error_was_printed)
+     window_clear_echo_area ();
+ 
+   if (auto_footnotes_p)
+     info_get_or_remove_footnotes (window);
+ }
+ 
+ /* Kill current node, thus going back one in the node history.  I (karl)
+    do not think this is completely correct yet, because of the
+    window-changing stuff in kill_node, but it's a lot better than the
+    previous implementation, which did not account for nodes being
+    visited twice at all.  */
+ DECLARE_INFO_COMMAND (info_history_node,
+                       _("Select the most recently selected node"))
+ {
+   kill_node (window, active_window->node->nodename);
+ }
+ 
+ /* Kill named node.  */
+ DECLARE_INFO_COMMAND (info_kill_node, _("Kill this node"))
+ {
+   char *nodename = read_nodename_to_kill (window);
+   kill_node (window, nodename);
+ }
+ 
+ 
+ /* Read the name of a file and select the entire file. */
+ DECLARE_INFO_COMMAND (info_view_file, _("Read the name of a file and select it"))
+ {
+   char *line;
+ 
+   line = info_read_in_echo_area (window, _("Find file: "));
+   if (!line)
+     {
+       info_abort_key (active_window, 1, 0);
+       return;
+     }
+ 
+   if (*line)
+     {
+       NODE *node;
+ 
+       node = info_get_node (line, "*");
+       if (!node)
+         {
+           if (info_recent_file_error)
+             info_error (info_recent_file_error, NULL, NULL);
+           else
+             info_error (_("Cannot find `%s'."), line, NULL);
+         }
+       else
+         info_set_node_of_window (1, window, node);
+ 
+       free (line);
+     }
+ 
+   if (!info_error_was_printed)
+     window_clear_echo_area ();
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                 Dumping and Printing Nodes                       */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ #define VERBOSE_NODE_DUMPING
+ static void write_node_to_stream (NODE *node, FILE *stream);
+ static void dump_node_to_stream (char *filename, char *nodename,
+     FILE *stream, int dump_subnodes);
+ static void initialize_dumping (void);
+ 
+ /* Dump the nodes specified by FILENAME and NODENAMES to the file named
+    in OUTPUT_FILENAME.  If DUMP_SUBNODES is non-zero, recursively dump
+    the nodes which appear in the menu of each node dumped. */
+ void
+ dump_nodes_to_file (char *filename, char **nodenames,
+     char *output_filename, int dump_subnodes)
+ {
+   register int i;
+   FILE *output_stream;
+ 
+   /* Get the stream to print the nodes to.  Special case of an output
+      filename of "-" means to dump the nodes to stdout. */
+   if (strcmp (output_filename, "-") == 0)
+     output_stream = stdout;
+   else
+     output_stream = fopen (output_filename, "w");
+ 
+   if (!output_stream)
+     {
+       info_error (_("Could not create output file `%s'."),
+           output_filename, NULL);
+       return;
+     }
+ 
+   /* Print each node to stream. */
+   initialize_dumping ();
+   for (i = 0; nodenames[i]; i++)
+     dump_node_to_stream (filename, nodenames[i], output_stream, dump_subnodes);
+ 
+   if (output_stream != stdout)
+     fclose (output_stream);
+ 
+ #if defined (VERBOSE_NODE_DUMPING)
+   info_error (_("Done."), NULL, NULL);
+ #endif /* VERBOSE_NODE_DUMPING */
+ }
+ 
+ /* A place to remember already dumped nodes. */
+ static char **dumped_already = NULL;
+ static int dumped_already_index = 0;
+ static int dumped_already_slots = 0;
+ 
+ static void
+ initialize_dumping (void)
+ {
+   dumped_already_index = 0;
+ }
+ 
+ /* Get and print the node specified by FILENAME and NODENAME to STREAM.
+    If DUMP_SUBNODES is non-zero, recursively dump the nodes which appear
+    in the menu of each node dumped. */
+ static void
+ dump_node_to_stream (char *filename, char *nodename,
+     FILE *stream, int dump_subnodes)
+ {
+   register int i;
+   NODE *node;
+ 
+   node = info_get_node (filename, nodename);
+ 
+   if (!node)
+     {
+       if (info_recent_file_error)
+         info_error (info_recent_file_error, NULL, NULL);
+       else
+         {
+           if (filename && *nodename != '(')
+             info_error (msg_cant_file_node,
+                 filename_non_directory (filename),
+                 nodename);
+           else
+             info_error (msg_cant_find_node, nodename, NULL);
+         }
+       return;
+     }
+ 
+   /* If we have already dumped this node, don't dump it again. */
+   for (i = 0; i < dumped_already_index; i++)
+     if (strcmp (node->nodename, dumped_already[i]) == 0)
+       {
+         free (node);
+         return;
+       }
+   add_pointer_to_array (node->nodename, dumped_already_index, dumped_already,
+                         dumped_already_slots, 50, char *);
+ 
+ #if defined (VERBOSE_NODE_DUMPING)
+   /* Maybe we should print some information about the node being output. */
+   info_error (_("Writing node %s..."), node_printed_rep (node), NULL);
+ #endif /* VERBOSE_NODE_DUMPING */
+ 
+   write_node_to_stream (node, stream);
+ 
+   /* If we are dumping subnodes, get the list of menu items in this node,
+      and dump each one recursively. */
+   if (dump_subnodes)
+     {
+       REFERENCE **menu = NULL;
+ 
+       /* If this node is an Index, do not dump the menu references. */
+       if (string_in_line ("Index", node->nodename) == -1)
+         menu = info_menu_of_node (node);
+ 
+       if (menu)
+         {
+           for (i = 0; menu[i]; i++)
+             {
+               /* We don't dump Info files which are different than the
+                  current one. */
+               if (!menu[i]->filename)
+                 dump_node_to_stream
+                   (filename, menu[i]->nodename, stream, dump_subnodes);
+             }
+           info_free_references (menu);
+         }
+     }
+ 
+   free (node);
+ }
+ 
+ /* Dump NODE to FILENAME.  If DUMP_SUBNODES is non-zero, recursively dump
+    the nodes which appear in the menu of each node dumped. */
+ void
+ dump_node_to_file (NODE *node, char *filename, int dump_subnodes)
+ {
+   FILE *output_stream;
+   char *nodes_filename;
+ 
+   /* Get the stream to print this node to.  Special case of an output
+      filename of "-" means to dump the nodes to stdout. */
+   if (strcmp (filename, "-") == 0)
+     output_stream = stdout;
+   else
+     output_stream = fopen (filename, "w");
+ 
+   if (!output_stream)
+     {
+       info_error (_("Could not create output file `%s'."), filename,
+           NULL);
+       return;
+     }
+ 
+   if (node->parent)
+     nodes_filename = node->parent;
+   else
+     nodes_filename = node->filename;
+ 
+   initialize_dumping ();
+   dump_node_to_stream
+     (nodes_filename, node->nodename, output_stream, dump_subnodes);
+ 
+   if (output_stream != stdout)
+     fclose (output_stream);
+ 
+ #if defined (VERBOSE_NODE_DUMPING)
+   info_error (_("Done."), NULL, NULL);
+ #endif /* VERBOSE_NODE_DUMPING */
+ }
+ 
+ #if !defined (DEFAULT_INFO_PRINT_COMMAND)
+ #  define DEFAULT_INFO_PRINT_COMMAND "lpr"
+ #endif /* !DEFAULT_INFO_PRINT_COMMAND */
+ 
+ DECLARE_INFO_COMMAND (info_print_node,
+  _("Pipe the contents of this node through INFO_PRINT_COMMAND"))
+ {
+   print_node (window->node);
+ }
+ 
+ /* Print NODE on a printer piping it into INFO_PRINT_COMMAND. */
+ void
+ print_node (NODE *node)
+ {
+   FILE *printer_pipe;
+   char *print_command = getenv ("INFO_PRINT_COMMAND");
+   int piping = 0;
+ 
+   if (!print_command || !*print_command)
+     print_command = DEFAULT_INFO_PRINT_COMMAND;
+ 
+   /* Note that on MS-DOS/MS-Windows, this MUST open the pipe in the
+      (default) text mode, since the printer drivers there need to see
+      DOS-style CRLF pairs at the end of each line.
+ 
+      FIXME: if we are to support Mac-style text files, we might need
+      to convert the text here.  */
+ 
+   /* INFO_PRINT_COMMAND which says ">file" means write to that file.
+      Presumably, the name of the file is the local printer device.  */
+   if (*print_command == '>')
+     printer_pipe = fopen (++print_command, "w");
+   else
+     {
+       printer_pipe = popen (print_command, "w");
+       piping = 1;
+     }
+ 
+   if (!printer_pipe)
+     {
+       info_error (_("Cannot open pipe to `%s'."), print_command, NULL);
+       return;
+     }
+ 
+ #if defined (VERBOSE_NODE_DUMPING)
+   /* Maybe we should print some information about the node being output. */
+   info_error (_("Printing node %s..."), node_printed_rep (node), NULL);
+ #endif /* VERBOSE_NODE_DUMPING */
+ 
+   write_node_to_stream (node, printer_pipe);
+   if (piping)
+     pclose (printer_pipe);
+   else
+     fclose (printer_pipe);
+ 
+ #if defined (VERBOSE_NODE_DUMPING)
+   info_error (_("Done."), NULL, NULL);
+ #endif /* VERBOSE_NODE_DUMPING */
+ }
+ 
+ static void
+ write_node_to_stream (NODE *node, FILE *stream)
+ {
+   fwrite (node->contents, 1, node->nodelen, stream);
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                    Info Searching Commands                       */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Variable controlling the garbage collection of files briefly visited
+    during searches.  Such files are normally gc'ed, unless they were
+    compressed to begin with.  If this variable is non-zero, it says
+    to gc even those file buffer contents which had to be uncompressed. */
+ int gc_compressed_files = 0;
+ 
+ static void info_gc_file_buffers (void);
+ static void info_search_1 (WINDOW *window, int count,
+     unsigned char key, int case_sensitive, int ask_for_string);
+ 
+ static char *search_string = NULL;
+ static int search_string_size = 0;
+ static int isearch_is_active = 0;
+ 
+ static int last_search_direction = 0;
+ static int last_search_case_sensitive = 0;
+ 
+ /* Return the file buffer which belongs to WINDOW's node. */
+ FILE_BUFFER *
+ file_buffer_of_window (WINDOW *window)
+ {
+   /* If this window has no node, then it has no file buffer. */
+   if (!window->node)
+     return NULL;
+ 
+   if (window->node->parent)
+     return info_find_file (window->node->parent);
+ 
+   if (window->node->filename)
+     return info_find_file (window->node->filename);
+ 
+   return NULL;
+ }
+ 
+ /* Search for STRING in NODE starting at START.  Return -1 if the string
+    was not found, or the location of the string if it was.  If WINDOW is
+    passed as non-null, set the window's node to be NODE, its point to be
+    the found string, and readjust the window's pagetop.  The DIR argument
+    says which direction to search in.  If it is positive, search
+    forward, else backwards.
+ 
+    The last argument, RESBND, makes sense only when USE_REGEX is set.
+    If the regexp search succeeds, RESBND is filled with the final state
+    of the search binding.  In particular, its START and END fields contain
+    bounds of the found string instance.
+ */
+ static long
+ info_search_in_node_internal (char *string, NODE *node, long int start,
+ 			      WINDOW *window, int dir, int case_sensitive,
+ 			      SEARCH_BINDING *resbnd)
+ {
+   SEARCH_BINDING binding;
+   long offset;
+ 
+   binding.buffer = node->contents;
+   binding.start = start;
+   binding.end = node->nodelen;
+   binding.flags = 0;
+   if (!case_sensitive)
+     binding.flags |= S_FoldCase;
+ 
+   if (dir < 0)
+     {
+       binding.end = 0;
+       binding.flags |= S_SkipDest;
+     }
+ 
+   if (binding.start < 0)
+     return -1;
+ 
+   /* For incremental searches, we always wish to skip past the string. */
+   if (isearch_is_active)
+     binding.flags |= S_SkipDest;
+ 
+   offset = (use_regex ? 
+             regexp_search (string, &binding, node->nodelen, resbnd):
+             search (string, &binding));
+ 
+   if (offset != -1 && window)
+     {
+       set_remembered_pagetop_and_point (window);
+       if (window->node != node)
+         window_set_node_of_window (window, node);
+       window->point = offset;
+       window_adjust_pagetop (window);
+     }
+   return offset;
+ }
+ 
+ long
+ info_search_in_node (char *string, NODE *node, long int start,
+ 		     WINDOW *window, int dir, int case_sensitive)
+ {
+   return info_search_in_node_internal (string, node, start,
+ 				       window, dir, case_sensitive, NULL);
+ }
+ 
+ /* Search NODE, looking for the largest possible match of STRING.  Start the
+    search at START.  Return the absolute position of the match, or -1, if
+    no part of the string could be found. */
+ long
+ info_target_search_node (NODE *node, char *string, long int start)
+ {
+   register int i;
+   long offset = 0;
+   char *target;
+ 
+   target = xstrdup (string);
+   i = strlen (target);
+ 
+   /* Try repeatedly searching for this string while removing words from
+      the end of it. */
+   while (i)
+     {
+       target[i] = '\0';
+       offset = info_search_in_node (target, node, start, NULL, 1, 0);
+ 
+       if (offset != -1)
+         break;
+ 
+       /* Delete the last word from TARGET. */
+       for (; i && (!whitespace (target[i]) && (target[i] != ',')); i--);
+     }
+   free (target);
+   return offset;
+ }
+ 
+ /* Search for STRING starting in WINDOW.  The starting position is determined
+    by DIR and RESBND argument.  If the latter is given, and its START field
+    is not -1, it gives starting position.  Otherwise, the search begins at
+    window point + DIR.
+ 
+    If the string is found in this node, set point to that position.
+    Otherwise, get the file buffer associated with WINDOW's node, and search
+    through each node in that file.
+ 
+    If the search succeeds and RESBND is given, its START and END fields
+    contain bounds of the found string instance (only for regexp searches).
+    
+    If the search fails, return non-zero, else zero.  Side-effect window
+    leaving the node and point where the string was found current. */
+ static int
+ info_search_internal (char *string, WINDOW *window,
+ 		      int dir, int case_sensitive,
+ 		      SEARCH_BINDING *resbnd)
+ {
+   register int i;
+   FILE_BUFFER *file_buffer;
+   char *initial_nodename;
+   long ret, start;
+ 
+   file_buffer = file_buffer_of_window (window);
+   initial_nodename = window->node->nodename;
+ 
+   if (resbnd && resbnd->start != -1)
+     start = resbnd->start;
+   else
+     /* This used to begin from window->point, unless this was a repeated
+        search command.  But invoking search with an argument loses with
+        that logic, since info_last_executed_command is then set to
+        info_add_digit_to_numeric_arg.  I think there's no sense in
+        ``finding'' a string that is already under the cursor, anyway.  */
+     start = window->point + dir;
+   
+   ret = info_search_in_node_internal
+         (string, window->node, start, window, dir,
+          case_sensitive, resbnd);
+   
+   if (ret != -1)
+     {
+       /* We won! */
+       if (!echo_area_is_active && !isearch_is_active)
+         window_clear_echo_area ();
+       return 0;
+     }
+   
+   start = 0;
+   
+   /* The string wasn't found in the current node.  Search through the
+      window's file buffer, iff the current node is not "*". */
+   if (!file_buffer || (strcmp (initial_nodename, "*") == 0))
+     return -1;
+ 
+   /* If this file has tags, search through every subfile, starting at
+      this node's subfile and node.  Otherwise, search through the
+      file's node list. */
+   if (file_buffer->tags)
+     {
+       register int current_tag = 0, number_of_tags;
+       char *last_subfile;
+       TAG *tag;
+       char *msg = NULL;
+ 
+       /* Find number of tags and current tag. */
+       last_subfile = NULL;
+       for (i = 0; file_buffer->tags[i]; i++)
+         if (strcmp (initial_nodename, file_buffer->tags[i]->nodename) == 0)
+           {
+             current_tag = i;
+             last_subfile = file_buffer->tags[i]->filename;
+           }
+ 
+       number_of_tags = i;
+ 
+       /* If there is no last_subfile, our tag wasn't found. */
+       if (!last_subfile)
+         return -1;
+ 
+       /* Search through subsequent nodes, wrapping around to the top
+          of the info file until we find the string or return to this
+          window's node and point. */
+       while (1)
+         {
+           NODE *node;
+ 	  
+           /* Allow C-g to quit the search, failing it if pressed. */
+           return_if_control_g (-1);
+ 
+           /* Find the next tag that isn't an anchor.  */
+           for (i = current_tag + dir; i != current_tag; i += dir)
+             {
+               if (i < 0)
+ 		{
+ 		  msg = N_("Search continued from the end of the document.");
+ 		  i = number_of_tags - 1;
+ 		}
+               else if (i == number_of_tags)
+ 		{
+ 		  msg = N_("Search continued from the beginning of the document.");
+ 		  i = 0;
+ 		}
+ 	      
+               tag = file_buffer->tags[i];
+               if (tag->nodelen != 0)
+                 break;
+             }
+ 
+           /* If we got past out starting point, bail out.  */
+           if (i == current_tag)
+             return -1;
+           current_tag = i;
+ 
+           if (!echo_area_is_active && (last_subfile != tag->filename))
+             {
+               window_message_in_echo_area
+                 (_("Searching subfile %s ..."),
+                  filename_non_directory (tag->filename), NULL);
+ 
+               last_subfile = tag->filename;
+             }
+ 
+           node = info_get_node (file_buffer->filename, tag->nodename);
+ 
+           if (!node)
+             {
+               /* If not doing i-search... */
+               if (!echo_area_is_active)
+                 {
+                   if (info_recent_file_error)
+                     info_error (info_recent_file_error, NULL, NULL);
+                   else
+                     info_error (msg_cant_file_node,
+                                 filename_non_directory (file_buffer->filename),
+                                 tag->nodename);
+                 }
+               return -1;
+             }
+ 
+           if (dir < 0)
+             start = tag->nodelen;
+ 
+           ret =
+             info_search_in_node_internal (string, node, start, window, dir,
+ 					  case_sensitive, resbnd);
+ 
+           /* Did we find the string in this node? */
+           if (ret != -1)
+             {
+               /* Yes!  We win. */
+               remember_window_and_node (window, node);
+               if (!echo_area_is_active)
+ 		{
+ 		  if (msg)
+ 		    window_message_in_echo_area ("%s", (char *) _(msg), NULL);
+ 		  else
+ 		    window_clear_echo_area ();
+ 		}
+               return 0;
+             }
+ 
+           /* No.  Free this node, and make sure that we haven't passed
+              our starting point. */
+           free (node);
+ 
+           if (strcmp (initial_nodename, tag->nodename) == 0)
+             return -1;
+         }
+     }
+   return -1;
+ }
+ 
+ DECLARE_INFO_COMMAND (info_search_case_sensitively,
+                       _("Read a string and search for it case-sensitively"))
+ {
+   last_search_direction = count > 0 ? 1 : -1;
+   last_search_case_sensitive = 1;
+   info_search_1 (window, count, key, 1, 1);
+ }
+ 
+ DECLARE_INFO_COMMAND (info_search, _("Read a string and search for it"))
+ {
+   last_search_direction = count > 0 ? 1 : -1;
+   last_search_case_sensitive = 0;
+   info_search_1 (window, count, key, 0, 1);
+ }
+ 
+ DECLARE_INFO_COMMAND (info_search_backward,
+                       _("Read a string and search backward for it"))
+ {
+   last_search_direction = count > 0 ? -1 : 1;
+   last_search_case_sensitive = 0;
+   info_search_1 (window, -count, key, 0, 1);
+ }
+ 
+ static void
+ info_search_1 (WINDOW *window, int count, unsigned char key,
+     int case_sensitive, int ask_for_string)
+ {
+   char *line, *prompt;
+   int result, old_pagetop;
+   int direction;
+ 
+   if (count < 0)
+     {
+       direction = -1;
+       count = -count;
+     }
+   else
+     {
+       direction = 1;
+       if (count == 0)
+         count = 1;      /* for backward compatibility */
+     }
+ 
+   /* Read a string from the user, defaulting the search to SEARCH_STRING. */
+   if (!search_string)
+     {
+       search_string = xmalloc (search_string_size = 100);
+       search_string[0] = '\0';
+     }
+ 
+   if (ask_for_string)
+     {
+       prompt = xmalloc (strlen (_("%s%s%s [%s]: "))
+ 			+ strlen (_("Regexp search"))
+ 			+ strlen (_(" case-sensitively"))
+ 			+ strlen (_(" backward"))
+ 			+ strlen (search_string));
+ 
+       sprintf (prompt, _("%s%s%s [%s]: "),
+                use_regex ? _("Regexp search") : _("Search"),
+                case_sensitive ? _(" case-sensitively") : "",
+                direction < 0 ? _(" backward") : "",
+                search_string);
+ 
+       line = info_read_in_echo_area (window, prompt);
+       free (prompt);
+ 
+       if (!line)
+         {
+           info_abort_key (window, 0, 0);
+           return;
+         }
+ 
+       if (*line)
+         {
+           if (strlen (line) + 1 > (unsigned int) search_string_size)
+             search_string = xrealloc
+               (search_string, (search_string_size += 50 + strlen (line)));
+ 
+           strcpy (search_string, line);
+           free (line);
+         }
+     }
+ 
+   /* If the search string includes upper-case letters, make the search
+      case-sensitive.  */
+   if (case_sensitive == 0)
+     for (line = search_string; *line; line++)
+       if (isupper (*line))
+         {
+           case_sensitive = 1;
+           break;
+         }
+ 
+   old_pagetop = active_window->pagetop;
+   for (result = 0; result == 0 && count--; )
+     result = info_search_internal (search_string,
+                                    active_window, direction, case_sensitive,
+ 				   NULL);
+ 
+   if (result != 0 && !info_error_was_printed)
+     info_error (_("Search failed."), NULL, NULL);
+   else if (old_pagetop != active_window->pagetop)
+     {
+       int new_pagetop;
+ 
+       new_pagetop = active_window->pagetop;
+       active_window->pagetop = old_pagetop;
+       set_window_pagetop (active_window, new_pagetop);
+       if (auto_footnotes_p)
+         info_get_or_remove_footnotes (active_window);
+     }
+ 
+   /* Perhaps free the unreferenced file buffers that were searched, but
+      not retained. */
+   info_gc_file_buffers ();
+ }
+ 
+ DECLARE_INFO_COMMAND (info_search_next,
+                       _("Repeat last search in the same direction"))
+ {
+   if (!last_search_direction)
+     info_error (_("No previous search string"), NULL, NULL);
+   else
+     info_search_1 (window, last_search_direction * count,
+                    key, last_search_case_sensitive, 0);
+ }
+ 
+ DECLARE_INFO_COMMAND (info_search_previous,
+                       _("Repeat last search in the reverse direction"))
+ {
+   if (!last_search_direction)
+     info_error (_("No previous search string"), NULL, NULL);
+   else
+     info_search_1 (window, -last_search_direction * count,
+                    key, last_search_case_sensitive, 0);
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                      Incremental Searching                       */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ static void incremental_search (WINDOW *window, int count,
+     unsigned char ignore);
+ 
+ DECLARE_INFO_COMMAND (isearch_forward,
+                       _("Search interactively for a string as you type it"))
+ {
+   incremental_search (window, count, key);
+ }
+ 
+ DECLARE_INFO_COMMAND (isearch_backward,
+                       _("Search interactively for a string as you type it"))
+ {
+   incremental_search (window, -count, key);
+ }
+ 
+ /* Incrementally search for a string as it is typed. */
+ /* The last accepted incremental search string. */
+ static char *last_isearch_accepted = NULL;
+ 
+ /* The current incremental search string. */
+ static char *isearch_string = NULL;
+ static int isearch_string_index = 0;
+ static int isearch_string_size = 0;
+ static unsigned char isearch_terminate_search_key = ESC;
+ 
+ /* Array of search states. */
+ static SEARCH_STATE **isearch_states = NULL;
+ static int isearch_states_index = 0;
+ static int isearch_states_slots = 0;
+ 
+ /* Push the state of this search. */
+ static void
+ push_isearch (WINDOW *window, int search_index, int direction, int failing)
+ {
+   SEARCH_STATE *state;
+ 
+   state = xmalloc (sizeof (SEARCH_STATE));
+   window_get_state (window, state);
+   state->search_index = search_index;
+   state->direction = direction;
+   state->failing = failing;
+ 
+   add_pointer_to_array (state, isearch_states_index, isearch_states,
+                         isearch_states_slots, 20, SEARCH_STATE *);
+ }
+ 
+ /* Pop the state of this search to WINDOW, SEARCH_INDEX, and DIRECTION. */
+ static void
+ pop_isearch (WINDOW *window, int *search_index, int *direction, int *failing)
+ {
+   SEARCH_STATE *state;
+ 
+   if (isearch_states_index)
+     {
+       isearch_states_index--;
+       state = isearch_states[isearch_states_index];
+       window_set_state (window, state);
+       *search_index = state->search_index;
+       *direction = state->direction;
+       *failing = state->failing;
+ 
+       free (state);
+       isearch_states[isearch_states_index] = NULL;
+     }
+ }
+ 
+ /* Free the memory used by isearch_states. */
+ static void
+ free_isearch_states (void)
+ {
+   register int i;
+ 
+   for (i = 0; i < isearch_states_index; i++)
+     {
+       free (isearch_states[i]);
+       isearch_states[i] = NULL;
+     }
+   isearch_states_index = 0;
+ }
+ 
+ /* Display the current search in the echo area. */
+ static void
+ show_isearch_prompt (int dir, unsigned char *string, int failing_p)
+ {
+   register int i;
+   const char *prefix;
+   char *prompt, *p_rep;
+   unsigned int prompt_len, p_rep_index, p_rep_size;
+ 
+   if (dir < 0)
+     prefix = use_regex ? _("Regexp I-search backward: ")
+                        : _("I-search backward: ");
+   else
+     prefix = use_regex ? _("Regexp I-search: ")
+                        : _("I-search: ");
+ 
+   p_rep_index = p_rep_size = 0;
+   p_rep = NULL;
+   for (i = 0; string[i]; i++)
+     {
+       char *rep;
+ 
+       switch (string[i])
+         {
+         case ' ': rep = " "; break;
+         case LFD: rep = "\\n"; break;
+         case TAB: rep = "\\t"; break;
+         default:
+           rep = pretty_keyname (string[i]);
+         }
+       if ((p_rep_index + strlen (rep) + 1) >= p_rep_size)
+         p_rep = xrealloc (p_rep, p_rep_size += 100);
+ 
+       strcpy (p_rep + p_rep_index, rep);
+       p_rep_index += strlen (rep);
+     }
+ 
+   prompt_len = strlen (prefix) + p_rep_index + 1;
+   if (failing_p)
+     prompt_len += strlen (_("Failing "));
+   prompt = xmalloc (prompt_len);
+   sprintf (prompt, "%s%s%s", failing_p ? _("Failing ") : "", prefix,
+            p_rep ? p_rep : "");
+ 
+   window_message_in_echo_area ("%s", prompt, NULL);
+   maybe_free (p_rep);
+   free (prompt);
+   display_cursor_at_point (active_window);
+ }
+ 
+ static void
+ incremental_search (WINDOW *window, int count, unsigned char ignore)
+ {
+   unsigned char key;
+   int last_search_result, search_result, dir;
+   SEARCH_STATE mystate, orig_state;
+   char *p;
+   int case_sensitive = 0;
+   SEARCH_BINDING bnd;
+ 
+   bnd.start = -1;
+ 
+   if (count < 0)
+     dir = -1;
+   else
+     dir = 1;
+ 
+   last_search_result = search_result = 0;
+ 
+   window_get_state (window, &orig_state);
+ 
+   isearch_string_index = 0;
+   if (!isearch_string_size)
+     isearch_string = xmalloc (isearch_string_size = 50);
+ 
+   /* Show the search string in the echo area. */
+   isearch_string[isearch_string_index] = '\0';
+   show_isearch_prompt (dir, (unsigned char *) isearch_string, search_result);
+ 
+   isearch_is_active = 1;
+ 
+   while (isearch_is_active)
+     {
+       VFunction *func = NULL;
+       int quoted = 0;
+ 
+       /* If a recent display was interrupted, then do the redisplay now if
+          it is convenient. */
+       if (!info_any_buffered_input_p () && display_was_interrupted_p)
+         {
+           display_update_one_window (window);
+           display_cursor_at_point (active_window);
+         }
+ 
+       /* Read a character and dispatch on it. */
+       key = info_get_input_char ();
+       window_get_state (window, &mystate);
+ 
+       if (key == DEL || key == Control ('h'))
+         {
+           /* User wants to delete one level of search? */
+           if (!isearch_states_index)
+             {
+               terminal_ring_bell ();
+               continue;
+             }
+           else
+             {
+               pop_isearch
+                 (window, &isearch_string_index, &dir, &search_result);
+               isearch_string[isearch_string_index] = '\0';
+               show_isearch_prompt (dir, (unsigned char *) isearch_string,
+                   search_result);
+               goto after_search;
+             }
+         }
+       else if (key == Control ('q'))
+         {
+           key = info_get_input_char ();
+           quoted = 1;
+         }
+ 
+       /* We are about to search again, or quit.  Save the current search. */
+       push_isearch (window, isearch_string_index, dir, search_result);
+ 
+       if (quoted)
+         goto insert_and_search;
+ 
+       if (!Meta_p (key) || key > 32)
+         {
+           /* If this key is not a keymap, get its associated function,
+              if any.  If it is a keymap, then it's probably ESC from an
+              arrow key, and we handle that case below.  */
+           char type = window->keymap[key].type;
+           func = type == ISFUNC
+                  ? InfoFunction(window->keymap[key].function)
+                  : NULL;  /* function member is a Keymap if ISKMAP */
+ 
+           if (isprint (key) || (type == ISFUNC && func == NULL))
+             {
+             insert_and_search:
+ 
+               if (isearch_string_index + 2 >= isearch_string_size)
+                 isearch_string = xrealloc
+                   (isearch_string, isearch_string_size += 100);
+ 
+               isearch_string[isearch_string_index++] = key;
+               isearch_string[isearch_string_index] = '\0';
+               goto search_now;
+             }
+           else if (func == (VFunction *) isearch_forward
+               || func == (VFunction *) isearch_backward)
+             {
+               /* If this key invokes an incremental search, then this
+                  means that we will either search again in the same
+                  direction, search again in the reverse direction, or
+                  insert the last search string that was accepted through
+                  incremental searching. */
+               if ((func == (VFunction *) isearch_forward && dir > 0) ||
+                   (func == (VFunction *) isearch_backward && dir < 0))
+                 {
+                   /* If the user has typed no characters, then insert the
+                      last successful search into the current search string. */
+                   if (isearch_string_index == 0)
+                     {
+                       /* Of course, there must be something to insert. */
+                       if (last_isearch_accepted)
+                         {
+                           if (strlen ((char *) last_isearch_accepted) + 1
+                               >= (unsigned int) isearch_string_size)
+                             isearch_string = (char *)
+                               xrealloc (isearch_string,
+                                         isearch_string_size += 10 +
+                                         strlen (last_isearch_accepted));
+                           strcpy (isearch_string, last_isearch_accepted);
+                           isearch_string_index = strlen (isearch_string);
+                           goto search_now;
+                         }
+                       else
+                         continue;
+                     }
+                   else
+                     {
+                       /* Search again in the same direction.  This means start
+                          from a new place if the last search was successful. */
+                       if (search_result == 0)
+ 			{
+ 			  window->point += dir;
+ 			  bnd.start = -1;
+ 			}
+                     }
+                 }
+               else
+                 {
+                   /* Reverse the direction of the search. */
+                   dir = -dir;
+                 }
+             }
+           else if (func == (VFunction *) info_abort_key)
+             {
+               /* If C-g pressed, and the search is failing, pop the search
+                  stack back to the last unfailed search. */
+               if (isearch_states_index && (search_result != 0))
+                 {
+                   terminal_ring_bell ();
+                   while (isearch_states_index && (search_result != 0))
+                     pop_isearch
+                       (window, &isearch_string_index, &dir, &search_result);
+                   isearch_string[isearch_string_index] = '\0';
+                   show_isearch_prompt (dir, (unsigned char *) isearch_string,
+                       search_result);
+                   continue;
+                 }
+               else
+                 goto exit_search;
+             }
+           else
+             goto exit_search;
+         }
+       else
+         {
+         exit_search:
+           /* The character is not printable, or it has a function which is
+              non-null.  Exit the search, remembering the search string.  If
+              the key is not the same as the isearch_terminate_search_key,
+              then push it into pending input. */
+           if (isearch_string_index && func != (VFunction *) info_abort_key)
+             {
+               maybe_free (last_isearch_accepted);
+               last_isearch_accepted = xstrdup (isearch_string);
+             }
+ 
+           /* If the key is the isearch_terminate_search_key, but some buffered
+              input is pending, it is almost invariably because the ESC key is
+              actually the beginning of an escape sequence, like in case they
+              pressed an arrow key.  So don't gobble the ESC key, push it back
+              into pending input.  */
+           /* FIXME: this seems like a kludge!  We need a more reliable
+              mechanism to know when ESC is a separate key and when it is
+              part of an escape sequence.  */
+           if (key != RET  /* Emacs addicts want RET to get lost */
+               && (key != isearch_terminate_search_key
+                   || info_any_buffered_input_p ()))
+             info_set_pending_input (key);
+ 
+           if (func == (VFunction *) info_abort_key)
+             {
+               if (isearch_states_index)
+                 window_set_state (window, &orig_state);
+             }
+ 
+           if (!echo_area_is_active)
+             window_clear_echo_area ();
+ 
+           if (auto_footnotes_p)
+             info_get_or_remove_footnotes (active_window);
+ 
+           isearch_is_active = 0;
+           continue;
+         }
+ 
+       /* Search for the contents of isearch_string. */
+     search_now:
+       show_isearch_prompt (dir, (unsigned char *) isearch_string, search_result);
+ 
+       /* If the search string includes upper-case letters, make the
+          search case-sensitive.  */
+       for (p = isearch_string; *p; p++)
+         if (isupper (*p))
+           {
+             case_sensitive = 1;
+             break;
+           }
+       
+       /* Regex isearch means we better search again every time.  We
+          might have had a failed search for "\", for example, but now we
+          have "\.".  */
+       if (use_regex)
+         {
+           search_result = info_search_internal (isearch_string,
+                                                 window, dir, case_sensitive,
+ 						&bnd);
+         }
+       else if (search_result == 0)
+         { /* We test for search_result being zero because a non-zero
+ 	     value means the string was not found in entire document. */
+           /* Check to see if the current search string is right here.  If
+              we are looking at it, then don't bother calling the search
+              function. */
+           if (((dir < 0) &&
+                ((case_sensitive ? strncmp : mbsncasecmp)
+                             (window->node->contents + window->point,
+                              isearch_string, isearch_string_index) == 0)) ||
+               ((dir > 0) &&
+                ((window->point - isearch_string_index) >= 0) &&
+                ((case_sensitive ? strncmp : mbsncasecmp)
+                             (window->node->contents +
+                              (window->point - (isearch_string_index - 1)),
+                              isearch_string, isearch_string_index) == 0)))
+             {
+               if (dir > 0)
+                 window->point++;
+             }
+           else
+             search_result = info_search_internal (isearch_string,
+                                                   window, dir, case_sensitive,
+ 						  NULL);
+         }
+ 
+       /* If this search failed, and we didn't already have a failed search,
+          then ring the terminal bell. */
+       if (search_result != 0 && last_search_result == 0)
+         terminal_ring_bell ();
+ 
+     after_search:
+       show_isearch_prompt (dir, (unsigned char *) isearch_string, search_result);
+ 
+       if (search_result == 0)
+         {
+           if ((mystate.node == window->node) &&
+               (mystate.pagetop != window->pagetop))
+             {
+               int newtop = window->pagetop;
+               window->pagetop = mystate.pagetop;
+               set_window_pagetop (window, newtop);
+             }
+           display_update_one_window (window);
+           display_cursor_at_point (window);
+         }
+ 
+       last_search_result = search_result;
+     }
+ 
+   /* Free the memory used to remember each search state. */
+   free_isearch_states ();
+ 
+   /* Perhaps GC some file buffers. */
+   info_gc_file_buffers ();
+ 
+   /* After searching, leave the window in the correct state. */
+   if (!echo_area_is_active)
+     window_clear_echo_area ();
+ }
+ 
+ /* GC some file buffers.  A file buffer can be gc-ed if there we have
+    no nodes in INFO_WINDOWS that reference this file buffer's contents.
+    Garbage collecting a file buffer means to free the file buffers
+    contents. */
+ static void
+ info_gc_file_buffers (void)
+ {
+   register int fb_index, iw_index, i;
+   register FILE_BUFFER *fb;
+   register INFO_WINDOW *iw;
+ 
+   if (!info_loaded_files)
+     return;
+ 
+   for (fb_index = 0; (fb = info_loaded_files[fb_index]); fb_index++)
+     {
+       int fb_referenced_p = 0;
+ 
+       /* If already gc-ed, do nothing. */
+       if (!fb->contents)
+         continue;
+ 
+       /* If this file had to be uncompressed, check to see if we should
+          gc it.  This means that the user-variable "gc-compressed-files"
+          is non-zero. */
+       if ((fb->flags & N_IsCompressed) && !gc_compressed_files)
+         continue;
+ 
+       /* If this file's contents are not gc-able, move on. */
+       if (fb->flags & N_CannotGC)
+         continue;
+ 
+       /* Check each INFO_WINDOW to see if it has any nodes which reference
+          this file. */
+       for (iw_index = 0; (iw = info_windows[iw_index]); iw_index++)
+         {
+           for (i = 0; iw->nodes && iw->nodes[i]; i++)
+             {
+               if ((FILENAME_CMP (fb->fullpath, iw->nodes[i]->filename) == 0) ||
+                   (FILENAME_CMP (fb->filename, iw->nodes[i]->filename) == 0))
+                 {
+                   fb_referenced_p = 1;
+                   break;
+                 }
+             }
+         }
+ 
+       /* If this file buffer wasn't referenced, free its contents. */
+       if (!fb_referenced_p)
+         {
+           free (fb->contents);
+           fb->contents = NULL;
+         }
+     }
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                Traversing and Selecting References               */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Move to the next or previous cross reference in this node. */
+ static int
+ info_move_to_xref (WINDOW *window, int count, unsigned char key, int dir)
+ {
+   long firstmenu, firstxref;
+   long nextmenu, nextxref;
+   long placement = -1;
+   long start = 0;
+   NODE *node = window->node;
+   int save_use_regex = use_regex;
+ 
+   /* Most of our keywords contain * characters; don't use regexes.  */
+   use_regex = 0;
+ 
+   if (dir < 0)
+     start = node->nodelen;
+ 
+   /* This search is only allowed to fail if there is no menu or cross
+      reference in the current node.  Otherwise, the first menu or xref
+      found is moved to. */
+ 
+   firstmenu = info_search_in_node
+     (INFO_MENU_ENTRY_LABEL, node, start, NULL, dir, 0);
+ 
+   /* FIRSTMENU may point directly to the line defining the menu.  Skip that
+      and go directly to the first item. */
+ 
+   if (firstmenu != -1)
+     {
+       char *text = node->contents + firstmenu;
+ 
+       if (strncmp (text, INFO_MENU_LABEL, strlen (INFO_MENU_LABEL)) == 0)
+         firstmenu = info_search_in_node
+           (INFO_MENU_ENTRY_LABEL, node, firstmenu + dir, NULL, dir, 0);
+     }
+ 
+   firstxref =
+     info_search_in_node (INFO_XREF_LABEL, node, start, NULL, dir, 0);
+ 
+ #if defined (HANDLE_MAN_PAGES)
+   if ((firstxref == -1) && (node->flags & N_IsManPage))
+     {
+       firstxref = locate_manpage_xref (node, start, dir);
+     }
+ #endif /* HANDLE_MAN_PAGES */
+ 
+   if (firstmenu == -1 && firstxref == -1)
+     {
+       if (!cursor_movement_scrolls_p)
+         info_error (msg_no_xref_node, NULL, NULL);
+       use_regex = save_use_regex;
+       return cursor_movement_scrolls_p;
+     }
+ 
+   /* There is at least one cross reference or menu entry in this node.
+      Try hard to find the next available one. */
+ 
+   nextmenu = info_search_in_node
+     (INFO_MENU_ENTRY_LABEL, node, window->point + dir, NULL, dir, 0);
+ 
+   nextxref = info_search_in_node
+     (INFO_XREF_LABEL, node, window->point + dir, NULL, dir, 0);
+ 
+ #if defined (HANDLE_MAN_PAGES)
+   if ((nextxref == -1) && (node->flags & N_IsManPage) && (firstxref != -1))
+     nextxref = locate_manpage_xref (node, window->point + dir, dir);
+ #endif /* HANDLE_MAN_PAGES */
+ 
+   /* Ignore "Menu:" as a menu item. */
+   if (nextmenu != -1)
+     {
+       char *text = node->contents + nextmenu;
+ 
+       if (strncmp (text, INFO_MENU_LABEL, strlen (INFO_MENU_LABEL)) == 0)
+         nextmenu = info_search_in_node
+           (INFO_MENU_ENTRY_LABEL, node, nextmenu + dir, NULL, dir, 0);
+     }
+ 
+   /* No more searches, back to whatever the user wanted.  */
+   use_regex = save_use_regex;
+ 
+   /* If there is both a next menu entry, and a next xref entry, choose the
+      one which occurs first.  Otherwise, select the one which actually
+      appears in this node following point. */
+   if (nextmenu != -1 && nextxref != -1)
+     {
+       if (((dir == 1) && (nextmenu < nextxref)) ||
+           ((dir == -1) && (nextmenu > nextxref)))
+         placement = nextmenu + 1;
+       else
+         placement = nextxref;
+     }
+   else if (nextmenu != -1)
+     placement = nextmenu + 1;
+   else if (nextxref != -1)
+     placement = nextxref;
+ 
+   /* If there was neither a menu or xref entry appearing in this node after
+      point, choose the first menu or xref entry appearing in this node. */
+   if (placement == -1)
+     {
+       if (cursor_movement_scrolls_p)
+         return 1;
+       else
+         {
+           if (firstmenu != -1 && firstxref != -1)
+             {
+               if (((dir == 1) && (firstmenu < firstxref)) ||
+                   ((dir == -1) && (firstmenu > firstxref)))
+                 placement = firstmenu + 1;
+               else
+                 placement = firstxref;
+             }
+           else if (firstmenu != -1)
+             placement = firstmenu + 1;
+           else
+             placement = firstxref;
+         }
+     }
+   window->point = placement;
+   window_adjust_pagetop (window);
+   window->flags |= W_UpdateWindow;
+   return 0;
+ }
+ 
+ DECLARE_INFO_COMMAND (info_move_to_prev_xref,
+                       _("Move to the previous cross reference"))
+ {
+   if (count < 0)
+     info_move_to_prev_xref (window, -count, key);
+   else
+     {
+       while (info_move_to_xref (window, count, key, -1))
+         {
+           info_error_was_printed = 0;
+           if (backward_move_node_structure (window, info_scroll_behaviour))
+             break;
+           move_to_new_line (window->line_count, window->line_count - 1,
+                             window);
+         }
+     }
+ }
+ 
+ DECLARE_INFO_COMMAND (info_move_to_next_xref,
+                       _("Move to the next cross reference"))
+ {
+   if (count < 0)
+     info_move_to_next_xref (window, -count, key);
+   else
+     {
+       /* Note: This can cause some blinking when the next cross reference is
+          located several nodes further. This effect can be easily suppressed
+          by setting display_inhibited to 1, however this will also make
+          error messages to be dumped on stderr, instead on the echo area. */ 
+       while (info_move_to_xref (window, count, key, 1))
+         {
+           info_error_was_printed = 0;
+           if (forward_move_node_structure (window, info_scroll_behaviour))
+             break;
+           move_to_new_line (0, 0, window);
+         }
+     }
+ }
+ 
+ /* Select the menu item or reference that appears on this line. */
+ DECLARE_INFO_COMMAND (info_select_reference_this_line,
+                       _("Select reference or menu item appearing on this line"))
+ {
+   char *line;
+ 
+   if (window->line_starts)
+     line = window->line_starts[window_line_of_point (window)];
+   else
+     line = "";
+ 
+   /* If this line contains a menu item, select that one. */
+   if (strncmp ("* ", line, 2) == 0)
+     info_menu_or_ref_item (window, count, key, info_menu_of_node, 0);
+   else
+     info_menu_or_ref_item (window, count, key, info_xrefs_of_node, 0);
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                  Miscellaneous Info Commands                     */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* What to do when C-g is pressed in a window. */
+ DECLARE_INFO_COMMAND (info_abort_key, _("Cancel current operation"))
+ {
+   /* If error printing doesn't oridinarily ring the bell, do it now,
+      since C-g always rings the bell.  Otherwise, let the error printer
+      do it. */
+   if (!info_error_rings_bell_p)
+     terminal_ring_bell ();
+   info_error (_("Quit"), NULL, NULL);
+ 
+   info_initialize_numeric_arg ();
+   info_clear_pending_input ();
+   info_last_executed_command = NULL;
+ }
+ 
+ /* Move the cursor to the desired line of the window. */
+ DECLARE_INFO_COMMAND (info_move_to_window_line,
+    _("Move the cursor to a specific line of the window"))
+ {
+   int line;
+ 
+   /* With no numeric argument of any kind, default to the center line. */
+   if (!info_explicit_arg && count == 1)
+     line = (window->height / 2) + window->pagetop;
+   else
+     {
+       if (count < 0)
+         line = (window->height + count) + window->pagetop;
+       else
+         line = window->pagetop + count;
+     }
+ 
+   /* If the line doesn't appear in this window, make it do so. */
+   if ((line - window->pagetop) >= window->height)
+     line = window->pagetop + (window->height - 1);
+ 
+   /* If the line is too small, make it fit. */
+   if (line < window->pagetop)
+     line = window->pagetop;
+ 
+   /* If the selected line is past the bottom of the node, force it back. */
+   if (line >= window->line_count)
+     line = window->line_count - 1;
+ 
+   window->point = (window->line_starts[line] - window->node->contents);
+ }
+ 
+ /* Clear the screen and redraw its contents.  Given a numeric argument,
+    move the line the cursor is on to the COUNT'th line of the window. */
+ DECLARE_INFO_COMMAND (info_redraw_display, _("Redraw the display"))
+ {
+   if ((!info_explicit_arg && count == 1) || echo_area_is_active)
+     {
+       terminal_clear_screen ();
+       display_clear_display (the_display);
+       window_mark_chain (windows, W_UpdateWindow);
+       display_update_display (windows);
+     }
+   else
+     {
+       int desired_line, point_line;
+       int new_pagetop;
+ 
+       point_line = window_line_of_point (window) - window->pagetop;
+ 
+       if (count < 0)
+         desired_line = window->height + count;
+       else
+         desired_line = count;
+ 
+       if (desired_line < 0)
+         desired_line = 0;
+ 
+       if (desired_line >= window->height)
+         desired_line = window->height - 1;
+ 
+       if (desired_line == point_line)
+         return;
+ 
+       new_pagetop = window->pagetop + (point_line - desired_line);
+ 
+       set_window_pagetop (window, new_pagetop);
+     }
+ }
+ /* This command does nothing.  It is the fact that a key is bound to it
+    that has meaning.  See the code at the top of info_session (). */
+ DECLARE_INFO_COMMAND (info_quit, _("Quit using Info"))
+ {}
+ 
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*               Reading Keys and Dispatching on Them               */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Declaration only.  Special cased in info_dispatch_on_key ().
+    Doc string is to avoid ugly results with describe_key etc.  */
+ DECLARE_INFO_COMMAND (info_do_lowercase_version,
+                       _("Run command bound to this key's lowercase variant"))
+ {}
+ 
+ static void
+ dispatch_error (char *keyseq)
+ {
+   char *rep;
+ 
+   rep = pretty_keyseq (keyseq);
+ 
+   if (!echo_area_is_active)
+     info_error (_("Unknown command (%s)."), rep, NULL);
+   else
+     {
+       char *temp = xmalloc (1 + strlen (rep) + strlen (_("\"%s\" is invalid")));
+       sprintf (temp, _("`%s' is invalid"), rep);
+       terminal_ring_bell ();
+       inform_in_echo_area (temp);
+       free (temp);
+     }
+ }
+ 
+ /* Keeping track of key sequences. */
+ static char *info_keyseq = NULL;
+ static int info_keyseq_index = 0;
+ static int info_keyseq_size = 0;
+ static int info_keyseq_displayed_p = 0;
+ 
+ /* Initialize the length of the current key sequence. */
+ void
+ initialize_keyseq (void)
+ {
+   info_keyseq_index = 0;
+   info_keyseq_displayed_p = 0;
+ }
+ 
+ /* Add CHARACTER to the current key sequence. */
+ void
+ add_char_to_keyseq (char character)
+ {
+   if (info_keyseq_index + 2 >= info_keyseq_size)
+     info_keyseq = (char *)xrealloc (info_keyseq, info_keyseq_size += 10);
+ 
+   info_keyseq[info_keyseq_index++] = character;
+   info_keyseq[info_keyseq_index] = '\0';
+ }
+ 
+ /* Display the current value of info_keyseq.  If argument EXPECTING is
+    non-zero, input is expected to be read after the key sequence is
+    displayed, so add an additional prompting character to the sequence. */
+ static void
+ display_info_keyseq (int expecting_future_input)
+ {
+   char *rep;
+ 
+   rep = pretty_keyseq (info_keyseq);
+   if (expecting_future_input)
+     strcat (rep, "-");
+ 
+   if (echo_area_is_active)
+     inform_in_echo_area (rep);
+   else
+     {
+       window_message_in_echo_area (rep, NULL, NULL);
+       display_cursor_at_point (active_window);
+     }
+   info_keyseq_displayed_p = 1;
+ }
+ 
+ /* Called by interactive commands to read a keystroke. */
+ unsigned char
+ info_get_another_input_char (void)
+ {
+   int ready = !info_keyseq_displayed_p; /* ready if new and pending key */
+ 
+   /* If there isn't any input currently available, then wait a
+      moment looking for input.  If we don't get it fast enough,
+      prompt a little bit with the current key sequence. */
+   if (!info_keyseq_displayed_p)
+     {
+       ready = 1;
+       if (!info_any_buffered_input_p () &&
+           !info_input_pending_p ())
+         {
+ #if defined (FD_SET)
+           struct timeval timer;
+           fd_set readfds;
+ 
+           FD_ZERO (&readfds);
+           FD_SET (fileno (info_input_stream), &readfds);
+           timer.tv_sec = 1;
+           timer.tv_usec = 750;
+           ready = select (fileno(info_input_stream)+1, &readfds,
+ 			  NULL, NULL, &timer);
+ #else
+           ready = 0;
+ #endif /* FD_SET */
+       }
+     }
+ 
+   if (!ready)
+     display_info_keyseq (1);
+ 
+   return info_get_input_char ();
+ }
+ 
+ /* Do the command associated with KEY in MAP.  If the associated command is
+    really a keymap, then read another key, and dispatch into that map. */
+ void
+ info_dispatch_on_key (unsigned char key, Keymap map)
+ {
+ #if !defined(INFOKEY)
+   if (Meta_p (key) && (!ISO_Latin_p || map[key].function != ea_insert))
+     {
+       if (map[ESC].type == ISKMAP)
+         {
+           map = (Keymap)map[ESC].function;
+           add_char_to_keyseq (ESC);
+           key = UnMeta (key);
+           info_dispatch_on_key (key, map);
+         }
+       else
+         {
+           dispatch_error (info_keyseq);
+         }
+       return;
+     }
+ #endif /* INFOKEY */
+ 
+   switch (map[key].type)
+     {
+     case ISFUNC:
+       {
+         VFunction *func;
+ 
+         func = InfoFunction(map[key].function);
+         if (func != NULL)
+           {
+             /* Special case info_do_lowercase_version (). */
+             if (func == (VFunction *) info_do_lowercase_version)
+               {
+ #if defined(INFOKEY)
+                 unsigned char lowerkey;
+ 
+                 lowerkey = Meta_p(key) ? Meta (tolower (UnMeta (key))) : tolower (key);
+                 if (lowerkey == key)
+                   {
+                     add_char_to_keyseq (key);
+                     dispatch_error (info_keyseq);
+                     return;
+                   }
+                 info_dispatch_on_key (lowerkey, map);
+ #else /* !INFOKEY */
+                 info_dispatch_on_key (tolower (key), map);
+ #endif /* INFOKEY */
+                 return;
+               }
+ 
+             add_char_to_keyseq (key);
+ 
+             if (info_keyseq_displayed_p)
+               display_info_keyseq (0);
+ 
+             {
+               WINDOW *where;
+ 
+               where = active_window;
+               (*InfoFunction(map[key].function))
+                 (active_window, info_numeric_arg * info_numeric_arg_sign, key);
+ 
+               /* If we have input pending, then the last command was a prefix
+                  command.  Don't change the value of the last function vars.
+                  Otherwise, remember the last command executed in the var
+                  appropriate to the window in which it was executed. */
+               if (!info_input_pending_p ())
+                 {
+                   if (where == the_echo_area)
+                     ea_last_executed_command = InfoFunction(map[key].function);
+                   else
+                     info_last_executed_command = InfoFunction(map[key].function);
+                 }
+             }
+           }
+         else
+           {
+             add_char_to_keyseq (key);
+             dispatch_error (info_keyseq);
+             return;
+           }
+       }
+       break;
+ 
+     case ISKMAP:
+       add_char_to_keyseq (key);
+       if (map[key].function != NULL)
+         {
+           unsigned char newkey;
+ 
+           newkey = info_get_another_input_char ();
+           info_dispatch_on_key (newkey, (Keymap)map[key].function);
+         }
+       else
+         {
+           dispatch_error (info_keyseq);
+           return;
+         }
+       break;
+     }
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                      Numeric Arguments                           */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Handle C-u style numeric args, as well as M--, and M-digits. */
+ 
+ /* Non-zero means that an explicit argument has been passed to this
+    command, as in C-u C-v. */
+ int info_explicit_arg = 0;
+ 
+ /* The sign of the numeric argument. */
+ int info_numeric_arg_sign = 1;
+ 
+ /* The value of the argument itself. */
+ int info_numeric_arg = 1;
+ 
+ /* Add the current digit to the argument in progress. */
+ DECLARE_INFO_COMMAND (info_add_digit_to_numeric_arg,
+                       _("Add this digit to the current numeric argument"))
+ {
+   info_numeric_arg_digit_loop (window, 0, key);
+ }
+ 
+ /* C-u, universal argument.  Multiply the current argument by 4.
+    Read a key.  If the key has nothing to do with arguments, then
+    dispatch on it.  If the key is the abort character then abort. */
+ DECLARE_INFO_COMMAND (info_universal_argument,
+                       _("Start (or multiply by 4) the current numeric argument"))
+ {
+   info_numeric_arg *= 4;
+   info_numeric_arg_digit_loop (window, 0, 0);
+ }
+ 
+ /* Create a default argument. */
+ void
+ info_initialize_numeric_arg (void)
+ {
+   info_numeric_arg = info_numeric_arg_sign = 1;
+   info_explicit_arg = 0;
+ }
+ 
+ DECLARE_INFO_COMMAND (info_numeric_arg_digit_loop,
+                       _("Internally used by \\[universal-argument]"))
+ {
+   unsigned char pure_key;
+   Keymap keymap = window->keymap;
+ 
+   while (1)
+     {
+       if (key)
+         pure_key = key;
+       else
+         {
+           if (display_was_interrupted_p && !info_any_buffered_input_p ())
+             display_update_display (windows);
+ 
+           if (active_window != the_echo_area)
+             display_cursor_at_point (active_window);
+ 
+           pure_key = key = info_get_another_input_char ();
+ 
+ #if !defined(INFOKEY)
+           if (Meta_p (key))
+             add_char_to_keyseq (ESC);
+ 
+           add_char_to_keyseq (UnMeta (key));
+ #else /* defined(INFOKEY) */
+           add_char_to_keyseq (key);
+ #endif /* defined(INFOKEY) */
+         }
+ 
+ #if !defined(INFOKEY)
+       if (Meta_p (key))
+         key = UnMeta (key);
+ #endif /* !defined(INFOKEY) */
+ 
+       if (keymap[key].type == ISFUNC
+           && InfoFunction(keymap[key].function)
+               == (VFunction *) info_universal_argument)
+         {
+           info_numeric_arg *= 4;
+           key = 0;
+           continue;
+         }
+ 
+ #if defined(INFOKEY)
+       if (Meta_p (key))
+         key = UnMeta (key);
+ #endif /* !defined(INFOKEY) */
+ 
+ 
+       if (isdigit (key))
+         {
+           if (info_explicit_arg)
+             info_numeric_arg = (info_numeric_arg * 10) + (key - '0');
+           else
+             info_numeric_arg = (key - '0');
+           info_explicit_arg = 1;
+         }
+       else
+         {
+           if (key == '-' && !info_explicit_arg)
+             {
+               info_numeric_arg_sign = -1;
+               info_numeric_arg = 1;
+             }
+           else
+             {
+               info_keyseq_index--;
+               info_dispatch_on_key (pure_key, keymap);
+               return;
+             }
+         }
+       key = 0;
+     }
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                      Input Character Buffering                   */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Character waiting to be read next. */
+ static int pending_input_character = 0;
+ 
+ /* How to make there be no pending input. */
+ static void
+ info_clear_pending_input (void)
+ {
+   pending_input_character = 0;
+ }
+ 
+ /* How to set the pending input character. */
+ static void
+ info_set_pending_input (unsigned char key)
+ {
+   pending_input_character = key;
+ }
+ 
+ /* How to see if there is any pending input. */
+ unsigned char
+ info_input_pending_p (void)
+ {
+   return pending_input_character;
+ }
+ 
+ /* Largest number of characters that we can read in advance. */
+ #define MAX_INFO_INPUT_BUFFERING 512
+ 
+ static int pop_index = 0, push_index = 0;
+ static unsigned char info_input_buffer[MAX_INFO_INPUT_BUFFERING];
+ 
+ /* Add KEY to the buffer of characters to be read. */
+ static void
+ info_push_typeahead (unsigned char key)
+ {
+   /* Flush all pending input in the case of C-g pressed. */
+   if (key == Control ('g'))
+     {
+       push_index = pop_index;
+       info_set_pending_input (Control ('g'));
+     }
+   else
+     {
+       info_input_buffer[push_index++] = key;
+       if ((unsigned int) push_index >= sizeof (info_input_buffer))
+         push_index = 0;
+     }
+ }
+ 
+ /* Return the amount of space available in INFO_INPUT_BUFFER for new chars. */
+ static int
+ info_input_buffer_space_available (void)
+ {
+   if (pop_index > push_index)
+     return pop_index - push_index;
+   else
+     return sizeof (info_input_buffer) - (push_index - pop_index);
+ }
+ 
+ /* Get a key from the buffer of characters to be read.
+    Return the key in KEY.
+    Result is non-zero if there was a key, or 0 if there wasn't. */
+ static int
+ info_get_key_from_typeahead (unsigned char *key)
+ {
+   if (push_index == pop_index)
+     return 0;
+ 
+   *key = info_input_buffer[pop_index++];
+ 
+   if ((unsigned int) pop_index >= sizeof (info_input_buffer))
+     pop_index = 0;
+ 
+   return 1;
+ }
+ 
+ int
+ info_any_buffered_input_p (void)
+ {
+   info_gather_typeahead ();
+   return push_index != pop_index;
+ }
+ 
+ /* If characters are available to be read, then read them and stuff them into
+    info_input_buffer.  Otherwise, do nothing. */
+ void
+ info_gather_typeahead (void)
+ {
+   register int i = 0;
+   int tty, space_avail;
+   long chars_avail;
+   unsigned char input[MAX_INFO_INPUT_BUFFERING];
+ 
+   tty = fileno (info_input_stream);
+   chars_avail = 0;
+ 
+   space_avail = info_input_buffer_space_available ();
+ 
+   /* If we can just find out how many characters there are to read, do so. */
+ #if defined (FIONREAD)
+   {
+     ioctl (tty, FIONREAD, &chars_avail);
+ 
+     if (chars_avail > space_avail)
+       chars_avail = space_avail;
+ 
+     if (chars_avail)
+       chars_avail = read (tty, &input[0], chars_avail);
+   }
+ #else /* !FIONREAD */
+ #  if defined (O_NDELAY)
+   {
+     int flags;
+ 
+     flags = fcntl (tty, F_GETFL, 0);
+ 
+     fcntl (tty, F_SETFL, (flags | O_NDELAY));
+       chars_avail = read (tty, &input[0], space_avail);
+     fcntl (tty, F_SETFL, flags);
+ 
+     if (chars_avail == -1)
+       chars_avail = 0;
+   }
+ #  else  /* !O_NDELAY */
+ #   ifdef __DJGPP__
+   {
+     extern long pc_term_chars_avail (void);
+ 
+     if (isatty (tty))
+       chars_avail = pc_term_chars_avail ();
+     else
+       {
+         /* We could be more accurate by calling ltell, but we have no idea
+            whether tty is buffered by stdio functions, and if so, how many
+            characters are already waiting in the buffer.  So we punt.  */
+         struct stat st;
+ 
+         if (fstat (tty, &st) < 0)
+           chars_avail = 1;
+         else
+           chars_avail = st.st_size;
+       }
+     if (chars_avail > space_avail)
+       chars_avail = space_avail;
+     if (chars_avail)
+       chars_avail = read (tty, &input[0], chars_avail);
+   }
+ #   endif/* __DJGPP__ */
+ #  endif /* O_NDELAY */
+ #endif /* !FIONREAD */
+ 
+   while (i < chars_avail)
+     {
+       info_push_typeahead (input[i]);
+       i++;
+     }
+ }
+ 
+ /* How to read a single character. */
+ unsigned char
+ info_get_input_char (void)
+ {
+   unsigned char keystroke;
+ 
+   info_gather_typeahead ();
+ 
+   if (pending_input_character)
+     {
+       keystroke = pending_input_character;
+       pending_input_character = 0;
+     }
+   else if (info_get_key_from_typeahead (&keystroke) == 0)
+     {
+       int rawkey;
+       unsigned char c;
+       int tty = fileno (info_input_stream);
+ 
+       /* Using stream I/O causes FIONREAD etc to fail to work
+          so unless someone can find a portable way of finding
+          out how many characters are currently buffered, we
+          should stay with away from stream I/O.
+          --Egil Kvaleberg <egilk@sn.no>, January 1997.  */
+ #ifdef EINTR
+       /* Keep reading if we got EINTR, so that we don't just exit.
+          --Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>,
+          22 Dec 1997.  */
+       {
+         int n;
+         do
+           n = read (tty, &c, 1);
+         while (n == -1 && errno == EINTR);
+         rawkey = n == 1 ? c : EOF;
+       }
+ #else
+       rawkey = (read (tty, &c, 1) == 1) ? c : EOF;
+ #endif
+ 
+       keystroke = rawkey;
+ 
+       if (rawkey == EOF)
+         {
+           if (info_input_stream != stdin)
+             {
+               fclose (info_input_stream);
+               info_input_stream = stdin;
+               tty = fileno (info_input_stream);
+               display_inhibited = 0;
+               display_update_display (windows);
+               display_cursor_at_point (active_window);
+               rawkey = (read (tty, &c, 1) == 1) ? c : EOF;
+               keystroke = rawkey;
+             }
+ 
+           if (rawkey == EOF)
+             {
+               terminal_unprep_terminal ();
+               close_dribble_file ();
+               xexit (0);
+             }
+         }
+     }
+ 
+   if (info_dribble_file)
+     dribble (keystroke);
+ 
+   return keystroke;
+ }
diff -Nrc2 texinfo-4.12/info/session.h texinfo-4.13/info/session.h
*** texinfo-4.12/info/session.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/session.h	Sat Mar  8 06:31:57 2008
***************
*** 0 ****
--- 1,249 ----
+ /* session.h -- Functions found in session.c.
+    $Id: session.h,v 1.10 2008/03/04 09:44:57 gray Exp $
+ 
+    Copyright (C) 1993, 1998, 1999, 2001, 2002, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef SESSION_H
+ #define SESSION_H
+ 
+ #include "info.h"
+ #include "dribble.h"
+ 
+ /* All commands that can be invoked from within info_session () receive
+    arguments in the same way.  This simple define declares the header
+    of a function named NAME, with associated documentation DOC.  The
+    documentation string is groveled out of the source files by the
+    utility program `makedoc', which is also responsible for making
+    the documentation/function-pointer maps. */
+ #define DECLARE_INFO_COMMAND(name, doc) \
+ void name (WINDOW *window, int count, unsigned char key)
+ 
+ /* Variables found in session.h. */
+ extern VFunction *info_last_executed_command;
+ 
+ /* Variable controlling the garbage collection of files briefly visited
+    during searches.  Such files are normally gc'ed, unless they were
+    compressed to begin with.  If this variable is non-zero, it says
+    to gc even those file buffer contents which had to be uncompressed. */
+ extern int gc_compressed_files;
+ 
+ /* When non-zero, tiling takes place automatically when info_split_window
+    is called. */
+ extern int auto_tiling_p;
+ 
+ /* Variable controlling the behaviour of default scrolling when you are
+    already at the bottom of a node. */
+ extern int info_scroll_behaviour;
+ extern char *info_scroll_choices[];
+ 
+ /* Values for info_scroll_behaviour. */
+ #define IS_Continuous 0 /* Try to get first menu item, or failing that, the
+                            "Next:" pointer, or failing that, the "Up:" and
+                            "Next:" of the up. */
+ #define IS_NextOnly   1 /* Try to get "Next:" menu item. */
+ #define IS_PageOnly   2 /* Simply give up at the bottom of a node. */
+ 
+ extern int cursor_movement_scrolls_p;
+ 
+ /* Values for scroll_last_node */
+ #define SLN_Stop   0 /* Stop at the last node */
+ #define SLN_Scroll 1 /* Do usual scrolling */
+ #define SLN_Top    2 /* Go to the top node */
+ 
+ extern char *scroll_last_node_choices[];
+ /* Controls what to do when a scrolling command is issued at the end of the
+    last node. */
+ extern int scroll_last_node;
+ 
+ /* Utility functions found in session.c */
+ extern void info_dispatch_on_key (unsigned char key, Keymap map);
+ extern unsigned char info_get_input_char (void);
+ extern unsigned char info_get_another_input_char (void);
+ extern unsigned char info_input_pending_p (void);
+ extern void remember_window_and_node (WINDOW *window, NODE *node);
+ extern void set_remembered_pagetop_and_point (WINDOW *window);
+ extern void set_window_pagetop (WINDOW *window, int desired_top);
+ extern void info_set_node_of_window (int remember, WINDOW *window,
+     NODE *node);
+ extern void initialize_keyseq (void);
+ extern void add_char_to_keyseq (char character);
+ extern void info_gather_typeahead (void);
+ extern FILE_BUFFER *file_buffer_of_window (WINDOW *window);
+ extern long info_search_in_node (char *string, NODE *node,
+     long int start, WINDOW *window, int dir, int case_sensitive);
+ extern long info_target_search_node (NODE *node, char *string,
+     long int start);
+ extern void info_select_reference (WINDOW *window, REFERENCE *entry);
+ extern int info_any_buffered_input_p (void);
+ extern void print_node (NODE *node);
+ extern void dump_node_to_file (NODE *node, char *filename,
+     int dump_subnodes);
+ extern void dump_nodes_to_file (char *filename, char **nodenames,
+     char *output_filename, int dump_subnodes);
+ extern char *program_name_from_file_name (char *file_name);
+ 
+ /* Do the physical deletion of WINDOW, and forget this window and
+    associated nodes. */
+ extern void info_delete_window_internal (WINDOW *window);
+ 
+ /* Tell Info that input is coming from the file FILENAME. */
+ extern void info_set_input_from_file (char *filename);
+ 
+ #define return_if_control_g(val) \
+   do { \
+     info_gather_typeahead (); \
+     if (info_input_pending_p () == Control ('g')) \
+       return (val); \
+   } while (0)
+ 
+ /* The names of the functions that run an info session. */
+ 
+ /* Starting an info session. */
+ extern void begin_multiple_window_info_session (char *filename,
+     char **nodenames);
+ extern void begin_info_session (NODE *initial_node);
+ extern void begin_info_session_with_error (NODE *initial_node,
+     const char *format, void *arg1, void *arg2);
+ extern void info_session (void);
+ extern void initialize_info_session (NODE *node, int clear_screen);
+ extern void info_read_and_dispatch (void);
+ extern void info_intuit_options_node (WINDOW *window,
+     NODE *initial_node, char *program);
+ 
+ /* Moving the point within a node. */
+ extern void info_next_line (WINDOW *window, int count, unsigned char key);
+ extern void info_prev_line (WINDOW *window, int count, unsigned char key);
+ extern void info_end_of_line (WINDOW *window, int count, unsigned char key);
+ extern void info_beginning_of_line (WINDOW *window, int count, unsigned char key);
+ extern void info_forward_char (WINDOW *window, int count, unsigned char key);
+ extern void info_backward_char (WINDOW *window, int count, unsigned char key);
+ extern void info_forward_word (WINDOW *window, int count, unsigned char key);
+ extern void info_backward_word (WINDOW *window, int count, unsigned char key);
+ extern void info_beginning_of_node (WINDOW *window, int count, unsigned char key);
+ extern void info_end_of_node (WINDOW *window, int count, unsigned char key);
+ extern void info_move_to_prev_xref (WINDOW *window, int count, unsigned char key);
+ extern void info_move_to_next_xref (WINDOW *window, int count, unsigned char key);
+ 
+ /* Scrolling text within a window. */
+ extern void info_scroll_forward (WINDOW *window, int count, unsigned char key);
+ extern void info_scroll_backward (WINDOW *window, int count, unsigned char key);
+ extern void info_redraw_display (WINDOW *window, int count, unsigned char key);
+ extern void info_toggle_wrap (WINDOW *window, int count, unsigned char key);
+ extern void info_toggle_regexp (WINDOW *window, int count, unsigned char key);
+ extern void info_move_to_window_line (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_up_line (WINDOW *window, int count, unsigned char key);
+ extern void info_down_line (WINDOW *window, int count, unsigned char key);
+ extern void info_scroll_half_screen_down (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_scroll_half_screen_up (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_scroll_forward_set_window (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_scroll_forward_page_only (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_scroll_forward_page_only_set_window (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_scroll_backward_set_window (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_scroll_backward_page_only (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_scroll_backward_page_only_set_window (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_scroll_other_window_backward (WINDOW *window, int count,
+     unsigned char key);
+ 
+ /* Manipulating multiple windows. */
+ extern void info_split_window (WINDOW *window, int count, unsigned char key);
+ extern void info_delete_window (WINDOW *window, int count, unsigned char key);
+ extern void info_keep_one_window (WINDOW *window, int count, unsigned char key);
+ extern void info_grow_window (WINDOW *window, int count, unsigned char key);
+ extern void info_scroll_other_window (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_tile_windows (WINDOW *window, int count, unsigned char key);
+ extern void info_next_window (WINDOW *window, int count, unsigned char key);
+ extern void info_prev_window (WINDOW *window, int count, unsigned char key);
+ 
+ /* Selecting nodes. */
+ extern void info_next_node (WINDOW *window, int count, unsigned char key);
+ extern void info_prev_node (WINDOW *window, int count, unsigned char key);
+ extern void info_up_node (WINDOW *window, int count, unsigned char key);
+ extern void info_last_node (WINDOW *window, int count, unsigned char key);
+ extern void info_first_node (WINDOW *window, int count, unsigned char key);
+ extern void info_history_node (WINDOW *window, int count, unsigned char key);
+ extern void info_goto_node (WINDOW *window, int count, unsigned char key);
+ extern void info_goto_invocation_node (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_top_node (WINDOW *window, int count, unsigned char key);
+ extern void info_dir_node (WINDOW *window, int count, unsigned char key);
+ extern void info_global_next_node (WINDOW *window, int count, unsigned char key);
+ extern void info_global_prev_node (WINDOW *window, int count, unsigned char key);
+ extern void info_kill_node (WINDOW *window, int count, unsigned char key);
+ extern void info_view_file (WINDOW *window, int count, unsigned char key);
+ extern void info_menu_sequence (WINDOW *window, int count, unsigned char key);
+ extern NODE *info_follow_menus (NODE *initial_node, char **menus,
+     const char **errstr, char **errarg1, char **errarg2);
+ extern void info_man (WINDOW *window, int count, unsigned char key);
+ extern void list_visited_nodes (WINDOW *window, int count, unsigned char key);
+ extern void select_visited_node (WINDOW *window, int count, unsigned char key);
+ 
+ /* Selecting cross references. */
+ extern void info_menu_digit (WINDOW *window, int count, unsigned char key);
+ extern void info_menu_item (WINDOW *window, int count, unsigned char key);
+ extern void info_xref_item (WINDOW *window, int count, unsigned char key);
+ extern void info_find_menu (WINDOW *window, int count, unsigned char key);
+ extern void info_select_reference_this_line (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_last_menu_item (WINDOW *window, int count, unsigned char key);
+ extern void info_visit_menu (WINDOW *window, int count, unsigned char key);
+ 
+ /* Hacking numeric arguments. */
+ extern int info_explicit_arg, info_numeric_arg, info_numeric_arg_sign;
+ 
+ extern void info_add_digit_to_numeric_arg (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_universal_argument (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_initialize_numeric_arg (void);
+ extern void info_numeric_arg_digit_loop (WINDOW *window, int count,
+     unsigned char key);
+ 
+ /* Searching commands. */
+ extern void info_search (WINDOW *window, int count, unsigned char key);
+ extern void isearch_forward (WINDOW *window, int count, unsigned char key);
+ extern void isearch_backward (WINDOW *window, int count, unsigned char key);
+ extern void info_search_case_sensitively (WINDOW *window, int count,
+     unsigned char key);
+ extern void info_search_backward (WINDOW *window, int count, unsigned char key);
+ extern void info_search_next (WINDOW *window, int count, unsigned char key);
+ extern void info_search_previous (WINDOW *window, int count, unsigned char key);
+ 
+ /* Dumping and printing nodes. */
+ extern void info_print_node (WINDOW *window, int count, unsigned char key);
+ 
+ /* Footnotes.  */
+ extern void info_show_footnotes (WINDOW *window, int count, unsigned char key);
+ 
+ /* Miscellaneous commands. */
+ extern void info_abort_key (WINDOW *window, int count, unsigned char key);
+ extern void info_quit (WINDOW *window, int count, unsigned char key);
+ extern void info_do_lowercase_version (WINDOW *window, int count,
+     unsigned char key);
+ 
+ #endif /* not SESSION_H */
diff -Nrc2 texinfo-4.12/info/signals.c texinfo-4.13/info/signals.c
*** texinfo-4.12/info/signals.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/signals.c	Sun Jul  1 14:20:31 2007
***************
*** 0 ****
--- 1,294 ----
+ /* signals.c -- install and maintain signal handlers.
+    $Id: signals.c,v 1.10 2007/07/01 21:20:31 karl Exp $
+ 
+    Copyright (C) 1993, 1994, 1995, 1998, 2002, 2003, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "signals.h"
+ 
+ void initialize_info_signal_handler (void);
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*              Pretending That We Have POSIX Signals               */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ #if !defined (HAVE_SIGPROCMASK) && defined (HAVE_SIGSETMASK)
+ /* Perform OPERATION on NEWSET, perhaps leaving information in OLDSET. */
+ static void
+ sigprocmask (int operation, int *newset, int *oldset)
+ {
+   switch (operation)
+     {
+     case SIG_UNBLOCK:
+       sigsetmask (sigblock (0) & ~(*newset));
+       break;
+ 
+     case SIG_BLOCK:
+       *oldset = sigblock (*newset);
+       break;
+ 
+     case SIG_SETMASK:
+       sigsetmask (*newset);
+       break;
+ 
+     default:
+       abort ();
+     }
+ }
+ #endif /* !HAVE_SIGPROCMASK && HAVE_SIGSETMASK */
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                  Signal Handling for Info                        */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ #if defined (HAVE_SIGACTION) || defined (HAVE_SIGPROCMASK) ||\
+   defined (HAVE_SIGSETMASK)
+ static void
+ mask_termsig (sigset_t *set)
+ {
+ # if defined (SIGTSTP)
+   sigaddset (set, SIGTSTP);
+   sigaddset (set, SIGTTOU);
+   sigaddset (set, SIGTTIN);
+ # endif
+ # if defined (SIGWINCH)
+   sigaddset (set, SIGWINCH);
+ # endif
+ #if defined (SIGQUIT)
+   sigaddset (set, SIGQUIT);
+ #endif
+ #if defined (SIGINT)
+   sigaddset (set, SIGINT);
+ #endif
+ # if defined (SIGUSR1)
+   sigaddset (set, SIGUSR1);
+ # endif
+ }
+ #endif /* HAVE_SIGACTION || HAVE_SIGPROCMASK || HAVE_SIGSETMASK */
+ 
+ static RETSIGTYPE info_signal_proc (int sig);
+ #if defined (HAVE_SIGACTION)
+ typedef struct sigaction signal_info;
+ signal_info info_signal_handler;
+ 
+ static void
+ set_termsig (int sig, signal_info *old)
+ {
+   sigaction (sig, &info_signal_handler, old);
+ }
+ 
+ static void
+ restore_termsig (int sig, const signal_info *saved)
+ {
+   sigaction (sig, saved, NULL);
+ }
+ #else /* !HAVE_SIGACTION */
+ typedef RETSIGTYPE (*signal_info) ();
+ #define set_termsig(sig, old) (void)(*(old) = signal (sig, info_signal_proc))
+ #define restore_termsig(sig, saved) (void)signal (sig, *(saved))
+ #define info_signal_handler info_signal_proc
+ static int term_conf_busy = 0;
+ #endif /* !HAVE_SIGACTION */
+ 
+ static signal_info old_TSTP, old_TTOU, old_TTIN;
+ static signal_info old_WINCH, old_INT, old_USR1;
+ static signal_info old_QUIT;
+ 
+ void
+ initialize_info_signal_handler (void)
+ {
+ #ifdef SA_NOCLDSTOP
+   /* (Based on info from Paul Eggert found in coreutils.)  Don't use
+      HAVE_SIGACTION to decide whether to use the sa_handler, sa_flags,
+      sa_mask members, as some systems (Solaris 7+) don't define them.  Use
+      SA_NOCLDSTOP instead; it's been part of POSIX.1 since day 1 (in 1988).  */
+   info_signal_handler.sa_handler = info_signal_proc;
+   info_signal_handler.sa_flags = 0;
+   mask_termsig (&info_signal_handler.sa_mask);
+ #endif /* SA_NOCLDSTOP */
+ 
+ #if defined (SIGTSTP)
+   set_termsig (SIGTSTP, &old_TSTP);
+   set_termsig (SIGTTOU, &old_TTOU);
+   set_termsig (SIGTTIN, &old_TTIN);
+ #endif /* SIGTSTP */
+ 
+ #if defined (SIGWINCH)
+   set_termsig (SIGWINCH, &old_WINCH);
+ #endif
+ 
+ #if defined (SIGQUIT)
+   set_termsig (SIGQUIT, &old_QUIT);
+ #endif
+ 
+ #if defined (SIGINT)
+   set_termsig (SIGINT, &old_INT);
+ #endif
+ 
+ #if defined (SIGUSR1)
+   /* Used by DJGPP to simulate SIGTSTP on Ctrl-Z.  */
+   set_termsig (SIGUSR1, &old_USR1);
+ #endif
+ }
+ 
+ static void
+ redisplay_after_signal (void)
+ {
+   terminal_clear_screen ();
+   display_clear_display (the_display);
+   window_mark_chain (windows, W_UpdateWindow);
+   display_update_display (windows);
+   display_cursor_at_point (active_window);
+   fflush (stdout);
+ }
+ 
+ static void
+ reset_info_window_sizes (void)
+ {
+   terminal_goto_xy (0, 0);
+   fflush (stdout);
+   terminal_unprep_terminal ();
+   terminal_get_screen_size ();
+   terminal_prep_terminal ();
+   display_initialize_display (screenwidth, screenheight);
+   window_new_screen_size (screenwidth, screenheight);
+   redisplay_after_signal ();
+ }
+ 
+ static RETSIGTYPE
+ info_signal_proc (int sig)
+ {
+   signal_info *old_signal_handler = NULL;
+ 
+ #if !defined (HAVE_SIGACTION)
+   /* best effort: first increment this counter and later block signals */
+   if (term_conf_busy)
+     return;
+   term_conf_busy++;
+ #if defined (HAVE_SIGPROCMASK) || defined (HAVE_SIGSETMASK)
+     {
+       sigset_t nvar, ovar;
+       sigemptyset (&nvar);
+       mask_termsig (&nvar);
+       sigprocmask (SIG_BLOCK, &nvar, &ovar);
+     }
+ #endif /* HAVE_SIGPROCMASK || HAVE_SIGSETMASK */
+ #endif /* !HAVE_SIGACTION */
+   switch (sig)
+     {
+ #if defined (SIGTSTP)
+     case SIGTSTP:
+     case SIGTTOU:
+     case SIGTTIN:
+ #endif
+ #if defined (SIGQUIT)
+     case SIGQUIT:
+ #endif
+ #if defined (SIGINT)
+     case SIGINT:
+ #endif
+       {
+ #if defined (SIGTSTP)
+         if (sig == SIGTSTP)
+           old_signal_handler = &old_TSTP;
+         if (sig == SIGTTOU)
+           old_signal_handler = &old_TTOU;
+         if (sig == SIGTTIN)
+           old_signal_handler = &old_TTIN;
+ #endif /* SIGTSTP */
+ #if defined (SIGQUIT)
+         if (sig == SIGQUIT)
+           old_signal_handler = &old_QUIT;
+ #endif /* SIGQUIT */
+ #if defined (SIGINT)
+         if (sig == SIGINT)
+           old_signal_handler = &old_INT;
+ #endif /* SIGINT */
+ 
+         /* For stop signals, restore the terminal IO, leave the cursor
+            at the bottom of the window, and stop us. */
+         terminal_goto_xy (0, screenheight - 1);
+         terminal_clear_to_eol ();
+         fflush (stdout);
+         terminal_unprep_terminal ();
+ 	restore_termsig (sig, old_signal_handler);
+ 	UNBLOCK_SIGNAL (sig);
+ 	kill (getpid (), sig);
+ 
+         /* The program is returning now.  Restore our signal handler,
+            turn on terminal handling, redraw the screen, and place the
+            cursor where it belongs. */
+         terminal_prep_terminal ();
+ 	set_termsig (sig, old_signal_handler);
+ 	/* window size might be changed while sleeping */
+ 	reset_info_window_sizes ();
+       }
+       break;
+ 
+ #if defined (SIGWINCH) || defined (SIGUSR1)
+ #ifdef SIGWINCH
+     case SIGWINCH:
+ #endif
+ #ifdef SIGUSR1
+     case SIGUSR1:
+ #endif
+       {
+ 	/* Turn off terminal IO, tell our parent that the window has changed,
+ 	   then reinitialize the terminal and rebuild our windows. */
+ #ifdef SIGWINCH
+ 	if (sig == SIGWINCH)
+ 	  old_signal_handler = &old_WINCH;
+ #endif
+ #ifdef SIGUSR1
+ 	if (sig == SIGUSR1)
+ 	  old_signal_handler = &old_USR1;
+ #endif
+ 	terminal_goto_xy (0, 0);
+ 	fflush (stdout);
+ 	terminal_unprep_terminal (); /* needless? */
+ 	restore_termsig (sig, old_signal_handler);
+ 	UNBLOCK_SIGNAL (sig);
+ 	kill (getpid (), sig);
+ 
+ 	/* After our old signal handler returns... */
+ 	set_termsig (sig, old_signal_handler); /* needless? */
+ 	terminal_prep_terminal ();
+ 	reset_info_window_sizes ();
+       }
+       break;
+ #endif /* SIGWINCH || SIGUSR1 */
+     }
+ #if !defined (HAVE_SIGACTION)
+   /* at this time it is safer to perform unblock after decrement */
+   term_conf_busy--;
+ #if defined (HAVE_SIGPROCMASK) || defined (HAVE_SIGSETMASK)
+     {
+       sigset_t nvar, ovar;
+       sigemptyset (&nvar);
+       mask_termsig (&nvar);
+       sigprocmask (SIG_UNBLOCK, &nvar, &ovar);
+     }
+ #endif /* HAVE_SIGPROCMASK || HAVE_SIGSETMASK */
+ #endif /* !HAVE_SIGACTION */
+ }
+ /* vim: set sw=2 cino={1s>2sn-s^-se-s: */
diff -Nrc2 texinfo-4.12/info/signals.h texinfo-4.13/info/signals.h
*** texinfo-4.12/info/signals.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/signals.h	Sun Jul  1 14:20:31 2007
***************
*** 0 ****
--- 1,96 ----
+ /* signals.h -- header to include system dependent signal definitions.
+    $Id: signals.h,v 1.5 2007/07/01 21:20:31 karl Exp $
+ 
+    Copyright (C) 1993, 1994, 1995, 1997, 2002, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_SIGNALS_H
+ #define INFO_SIGNALS_H
+ 
+ #include <sys/types.h>
+ #include <signal.h>
+ 
+ /* For sysV68 --phdm@info.ucl.ac.be.  */
+ #if !defined (SIGCHLD) && defined (SIGCLD)
+ #define SIGCHLD SIGCLD
+ #endif
+ 
+ #if !defined (HAVE_SIGPROCMASK) && !defined (sigmask)
+ #  define sigmask(x) (1 << ((x)-1))
+ #endif /* !HAVE_SIGPROCMASK && !sigmask */
+ 
+ /* Without SA_NOCLDSTOP, sigset_t might end up being undefined even
+    though we have sigprocmask, on older systems, according to Nelson
+    Beebe.  The test is from coreutils/sort.c, via Paul Eggert.  */
+ #if !defined (HAVE_SIGPROCMASK) || !defined (SA_NOCLDSTOP)
+ #  if !defined (SIG_BLOCK)
+ #    define SIG_UNBLOCK 1
+ #    define SIG_BLOCK   2
+ #    define SIG_SETMASK 3
+ #  endif /* SIG_BLOCK */
+ 
+ /* Type of a signal set. */
+ #  define sigset_t int
+ 
+ /* Make SET have no signals in it. */
+ #  define sigemptyset(set) (*(set) = (sigset_t)0x0)
+ 
+ /* Make SET have the full range of signal specifications possible. */
+ #  define sigfillset(set) (*(set) = (sigset_t)0xffffffffff)
+ 
+ /* Add SIG to the contents of SET. */
+ #  define sigaddset(set, sig) *(set) |= sigmask (sig)
+ 
+ /* Delete SIG from the contents of SET. */
+ #  define sigdelset(set, sig) *(set) &= ~(sigmask (sig))
+ 
+ /* Tell if SET contains SIG. */
+ #  define sigismember(set, sig) (*(set) & (sigmask (sig)))
+ 
+ /* Suspend the process until the reception of one of the signals
+    not present in SET. */
+ #  define sigsuspend(set) sigpause (*(set))
+ #endif /* !HAVE_SIGPROCMASK */
+ 
+ #if defined (HAVE_SIGPROCMASK) || defined (HAVE_SIGSETMASK)
+ /* These definitions are used both in POSIX and non-POSIX implementations. */
+ 
+ #define BLOCK_SIGNAL(sig) \
+   do { \
+     sigset_t nvar, ovar; \
+     sigemptyset (&nvar); \
+     sigemptyset (&ovar); \
+     sigaddset (&nvar, sig); \
+     sigprocmask (SIG_BLOCK, &nvar, &ovar); \
+   } while (0)
+ 
+ #define UNBLOCK_SIGNAL(sig) \
+   do { \
+     sigset_t nvar, ovar; \
+     sigemptyset (&ovar); \
+     sigemptyset (&nvar); \
+     sigaddset (&nvar, sig); \
+     sigprocmask (SIG_UNBLOCK, &nvar, &ovar); \
+   } while (0)
+ 
+ #else /* !HAVE_SIGPROCMASK && !HAVE_SIGSETMASK */
+ #  define BLOCK_SIGNAL(sig)
+ #  define UNBLOCK_SIGNAL(sig)
+ #endif /* !HAVE_SIGPROCMASK && !HAVE_SIGSETMASK */
+ 
+ #endif /* not INFO_SIGNALS_H */
diff -Nrc2 texinfo-4.12/info/termdep.h texinfo-4.13/info/termdep.h
*** texinfo-4.12/info/termdep.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/termdep.h	Sun Jul  1 14:20:31 2007
***************
*** 0 ****
--- 1,58 ----
+ /* termdep.h -- system things that terminal.c depends on.
+    $Id: termdep.h,v 1.5 2007/07/01 21:20:31 karl Exp $
+ 
+    Copyright (C) 1993, 1996, 1997, 1998, 2001, 2002, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_TERMDEP_H
+ #define INFO_TERMDEP_H
+ 
+ /* NeXT supplies <termios.h> but it is broken.  Probably Autoconf should
+    have a separate test, but anyway ... */
+ #ifdef NeXT
+ #undef HAVE_TERMIOS_H
+ #endif
+ 
+ #ifdef HAVE_TERMIOS_H
+ #  include <termios.h>
+ #else
+ #  if defined (HAVE_TERMIO_H)
+ #    include <termio.h>
+ #    if defined (HAVE_SYS_PTEM_H)
+ #      if defined (M_UNIX) || !defined (M_XENIX)
+ #        include <sys/stream.h>
+ #        include <sys/ptem.h>
+ #        undef TIOCGETC
+ #      else /* M_XENIX */
+ #        define tchars tc
+ #      endif /* M_XENIX */
+ #    endif /* HAVE_SYS_PTEM_H */
+ #  else /* !HAVE_TERMIO_H */
+ #    include <sgtty.h>
+ #  endif /* !HAVE_TERMIO_H */
+ #endif /* !HAVE_TERMIOS_H */
+ 
+ #ifdef GWINSZ_IN_SYS_IOCTL
+ #  include <sys/ioctl.h>
+ #endif
+ 
+ #ifdef HAVE_SYS_TTOLD_H
+ #  include <sys/ttold.h>
+ #endif /* HAVE_SYS_TTOLD_H */
+ 
+ #endif /* not INFO_TERMDEP_H */
diff -Nrc2 texinfo-4.12/info/terminal.c texinfo-4.13/info/terminal.c
*** texinfo-4.12/info/terminal.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/terminal.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,872 ----
+ /* terminal.c -- how to handle the physical terminal for Info.
+    $Id: terminal.c,v 1.7 2008/06/11 09:55:43 gray Exp $
+ 
+    Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1996, 1997, 1998,
+    1999, 2001, 2002, 2004, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "terminal.h"
+ #include "termdep.h"
+ 
+ #include <sys/types.h>
+ #include <signal.h>
+ 
+ /* The Unix termcap interface code. */
+ #ifdef HAVE_NCURSES_TERMCAP_H
+ #include <ncurses/termcap.h>
+ #else
+ #ifdef HAVE_TERMCAP_H
+ #include <termcap.h>
+ #else
+ /* On Solaris2, sys/types.h #includes sys/reg.h, which #defines PC.
+    Unfortunately, PC is a global variable used by the termcap library. */
+ #undef PC
+ 
+ /* Termcap requires these variables, whether we access them or not. */
+ char *BC, *UP;
+ char PC;      /* Pad character */
+ short ospeed; /* Terminal output baud rate */
+ extern int tgetnum (), tgetflag (), tgetent ();
+ extern char *tgetstr (), *tgoto ();
+ extern void tputs ();
+ #endif /* not HAVE_TERMCAP_H */
+ #endif /* not HAVE_NCURSES_TERMCAP_H */
+ 
+ /* Function "hooks".  If you make one of these point to a function, that
+    function is called when appropriate instead of its namesake.  Your
+    function is called with exactly the same arguments that were passed
+    to the namesake function. */
+ VFunction *terminal_begin_inverse_hook = NULL;
+ VFunction *terminal_end_inverse_hook = NULL;
+ VFunction *terminal_prep_terminal_hook = NULL;
+ VFunction *terminal_unprep_terminal_hook = NULL;
+ VFunction *terminal_up_line_hook = NULL;
+ VFunction *terminal_down_line_hook = NULL;
+ VFunction *terminal_clear_screen_hook = NULL;
+ VFunction *terminal_clear_to_eol_hook = NULL;
+ VFunction *terminal_get_screen_size_hook = NULL;
+ VFunction *terminal_goto_xy_hook = NULL;
+ VFunction *terminal_initialize_terminal_hook = NULL;
+ VFunction *terminal_new_terminal_hook = NULL;
+ VFunction *terminal_put_text_hook = NULL;
+ VFunction *terminal_ring_bell_hook = NULL;
+ VFunction *terminal_write_chars_hook = NULL;
+ VFunction *terminal_scroll_terminal_hook = NULL;
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                      Terminal and Termcap                        */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* A buffer which holds onto the current terminal description, and a pointer
+    used to float within it.  And the name of the terminal.  */
+ static char *term_buffer = NULL;
+ static char *term_string_buffer = NULL;
+ static char *term_name;
+ 
+ /* Some strings to control terminal actions.  These are output by tputs (). */
+ static char *term_goto, *term_clreol, *term_cr, *term_clrpag;
+ static char *term_begin_use, *term_end_use;
+ static char *term_AL, *term_DL, *term_al, *term_dl;
+ 
+ static char *term_keypad_on, *term_keypad_off;
+ 
+ /* How to go up a line. */
+ static char *term_up;
+ 
+ /* How to go down a line. */
+ static char *term_dn;
+ 
+ /* An audible bell, if the terminal can be made to make noise. */
+ static char *audible_bell;
+ 
+ /* A visible bell, if the terminal can be made to flash the screen. */
+ static char *visible_bell;
+ 
+ /* The string to write to turn on the meta key, if this term has one. */
+ static char *term_mm;
+ 
+ /* The string to turn on inverse mode, if this term has one. */
+ static char *term_invbeg;
+ 
+ /* The string to turn off inverse mode, if this term has one. */
+ static char *term_invend;
+ 
+ /* Although I can't find any documentation that says this is supposed to
+    return its argument, all the code I've looked at (termutils, less)
+    does so, so fine.  */
+ static int
+ output_character_function (int c)
+ {
+   putc (c, stdout);
+   return c;
+ }
+ 
+ /* Macro to send STRING to the terminal. */
+ #define send_to_terminal(string) \
+   do { \
+     if (string) \
+       tputs (string, 1, output_character_function); \
+      } while (0)
+ 
+ /* Tell the terminal that we will be doing cursor addressable motion.  */
+ static void
+ terminal_begin_using_terminal (void)
+ {
+   RETSIGTYPE (*sigsave) (int signum);
+ 
+   if (term_keypad_on)
+       send_to_terminal (term_keypad_on);
+   
+   if (!term_begin_use || !*term_begin_use)
+     return;
+ 
+ #ifdef SIGWINCH
+   sigsave = signal (SIGWINCH, SIG_IGN); 
+ #endif
+ 
+   send_to_terminal (term_begin_use);
+   fflush (stdout);
+   if (STREQ (term_name, "sun-cmd"))
+     /* Without this fflush and sleep, running info in a shelltool or
+        cmdtool (TERM=sun-cmd) with scrollbars loses -- the scrollbars are
+        not restored properly.
+        From: strube@physik3.gwdg.de (Hans Werner Strube).  */
+     sleep (1);
+ 
+ #ifdef SIGWINCH
+   signal (SIGWINCH, sigsave);
+ #endif
+ }
+ 
+ /* Tell the terminal that we will not be doing any more cursor
+    addressable motion. */
+ static void
+ terminal_end_using_terminal (void)
+ {
+   RETSIGTYPE (*sigsave) (int signum);
+ 
+   if (term_keypad_off)
+       send_to_terminal (term_keypad_off);
+   
+   if (!term_end_use || !*term_end_use)
+     return;
+ 
+ #ifdef SIGWINCH
+   sigsave = signal (SIGWINCH, SIG_IGN);
+ #endif
+ 
+   send_to_terminal (term_end_use);
+   fflush (stdout);
+   if (STREQ (term_name, "sun-cmd"))
+     /* See comments at other sleep.  */
+     sleep (1);
+ 
+ #ifdef SIGWINCH
+   signal (SIGWINCH, sigsave);
+ #endif
+ }
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                   Necessary Terminal Functions                   */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* The functions and variables on this page implement the user visible
+    portion of the terminal interface. */
+ 
+ /* The width and height of the terminal. */
+ int screenwidth, screenheight;
+ 
+ /* Non-zero means this terminal can't really do anything. */
+ int terminal_is_dumb_p = 0;
+ 
+ /* Non-zero means that this terminal has a meta key. */
+ int terminal_has_meta_p = 0;
+ 
+ /* Non-zero means that this terminal can produce a visible bell. */
+ int terminal_has_visible_bell_p = 0;
+ 
+ /* Non-zero means to use that visible bell if at all possible. */
+ int terminal_use_visible_bell_p = 0;
+ 
+ /* Non-zero means that the terminal can do scrolling. */
+ int terminal_can_scroll = 0;
+ 
+ /* The key sequences output by the arrow keys, if this terminal has any. */
+ char *term_ku = NULL;
+ char *term_kd = NULL;
+ char *term_kr = NULL;
+ char *term_kl = NULL;
+ char *term_kP = NULL;   /* page-up */
+ char *term_kN = NULL;   /* page-down */
+ char *term_kh = NULL;	/* home */
+ char *term_ke = NULL;	/* end */
+ char *term_kD = NULL;	/* delete */
+ char *term_ki = NULL;	/* ins */
+ char *term_kx = NULL;	/* del */
+ 
+ /* Move the cursor to the terminal location of X and Y. */
+ void
+ terminal_goto_xy (int x, int y)
+ {
+   if (terminal_goto_xy_hook)
+     (*terminal_goto_xy_hook) (x, y);
+   else
+     {
+       if (term_goto)
+         tputs (tgoto (term_goto, x, y), 1, output_character_function);
+     }
+ }
+ 
+ /* Print STRING to the terminal at the current position. */
+ void
+ terminal_put_text (char *string)
+ {
+   if (terminal_put_text_hook)
+     (*terminal_put_text_hook) (string);
+   else
+     {
+       printf ("%s", string);
+     }
+ }
+ 
+ /* Print NCHARS from STRING to the terminal at the current position. */
+ void
+ terminal_write_chars (char *string, int nchars)
+ {
+   if (terminal_write_chars_hook)
+     (*terminal_write_chars_hook) (string, nchars);
+   else
+     {
+       if (nchars)
+         fwrite (string, 1, nchars, stdout);
+     }
+ }
+ 
+ /* Clear from the current position of the cursor to the end of the line. */
+ void
+ terminal_clear_to_eol (void)
+ {
+   if (terminal_clear_to_eol_hook)
+     (*terminal_clear_to_eol_hook) ();
+   else
+     {
+       send_to_terminal (term_clreol);
+     }
+ }
+ 
+ /* Clear the entire terminal screen. */
+ void
+ terminal_clear_screen (void)
+ {
+   if (terminal_clear_screen_hook)
+     (*terminal_clear_screen_hook) ();
+   else
+     {
+       send_to_terminal (term_clrpag);
+     }
+ }
+ 
+ /* Move the cursor up one line. */
+ void
+ terminal_up_line (void)
+ {
+   if (terminal_up_line_hook)
+     (*terminal_up_line_hook) ();
+   else
+     {
+       send_to_terminal (term_up);
+     }
+ }
+ 
+ /* Move the cursor down one line. */
+ void
+ terminal_down_line (void)
+ {
+   if (terminal_down_line_hook)
+     (*terminal_down_line_hook) ();
+   else
+     {
+       send_to_terminal (term_dn);
+     }
+ }
+ 
+ /* Turn on reverse video if possible. */
+ void
+ terminal_begin_inverse (void)
+ {
+   if (terminal_begin_inverse_hook)
+     (*terminal_begin_inverse_hook) ();
+   else
+     {
+       send_to_terminal (term_invbeg);
+     }
+ }
+ 
+ /* Turn off reverse video if possible. */
+ void
+ terminal_end_inverse (void)
+ {
+   if (terminal_end_inverse_hook)
+     (*terminal_end_inverse_hook) ();
+   else
+     {
+       send_to_terminal (term_invend);
+     }
+ }
+ 
+ /* Ring the terminal bell.  The bell is run visibly if it both has one and
+    terminal_use_visible_bell_p is non-zero. */
+ void
+ terminal_ring_bell (void)
+ {
+   if (terminal_ring_bell_hook)
+     (*terminal_ring_bell_hook) ();
+   else
+     {
+       if (terminal_has_visible_bell_p && terminal_use_visible_bell_p)
+         send_to_terminal (visible_bell);
+       else
+         send_to_terminal (audible_bell);
+     }
+ }
+ 
+ /* At the line START, delete COUNT lines from the terminal display. */
+ static void
+ terminal_delete_lines (int start, int count)
+ {
+   int lines;
+ 
+   /* Normalize arguments. */
+   if (start < 0)
+     start = 0;
+ 
+   lines = screenheight - start;
+   terminal_goto_xy (0, start);
+   if (term_DL)
+     tputs (tgoto (term_DL, 0, count), lines, output_character_function);
+   else
+     {
+       while (count--)
+         tputs (term_dl, lines, output_character_function);
+     }
+ 
+   fflush (stdout);
+ }
+ 
+ /* At the line START, insert COUNT lines in the terminal display. */
+ static void
+ terminal_insert_lines (int start, int count)
+ {
+   int lines;
+ 
+   /* Normalize arguments. */
+   if (start < 0)
+     start = 0;
+ 
+   lines = screenheight - start;
+   terminal_goto_xy (0, start);
+ 
+   if (term_AL)
+     tputs (tgoto (term_AL, 0, count), lines, output_character_function);
+   else
+     {
+       while (count--)
+         tputs (term_al, lines, output_character_function);
+     }
+ 
+   fflush (stdout);
+ }
+ 
+ /* Scroll an area of the terminal, starting with the region from START
+    to END, AMOUNT lines.  If AMOUNT is negative, the lines are scrolled
+    towards the top of the screen, else they are scrolled towards the
+    bottom of the screen. */
+ void
+ terminal_scroll_terminal (int start, int end, int amount)
+ {
+   if (!terminal_can_scroll)
+     return;
+ 
+   /* Any scrolling at all? */
+   if (amount == 0)
+     return;
+ 
+   if (terminal_scroll_terminal_hook)
+     (*terminal_scroll_terminal_hook) (start, end, amount);
+   else
+     {
+       /* If we are scrolling down, delete AMOUNT lines at END.  Then insert
+          AMOUNT lines at START. */
+       if (amount > 0)
+         {
+           terminal_delete_lines (end, amount);
+           terminal_insert_lines (start, amount);
+         }
+ 
+       /* If we are scrolling up, delete AMOUNT lines before START.  This
+          actually does the upwards scroll.  Then, insert AMOUNT lines
+          after the already scrolled region (i.e., END - AMOUNT). */
+       if (amount < 0)
+         {
+           int abs_amount = -amount;
+           terminal_delete_lines (start - abs_amount, abs_amount);
+           terminal_insert_lines (end - abs_amount, abs_amount);
+         }
+     }
+ }
+ 
+ /* Re-initialize the terminal considering that the TERM/TERMCAP variable
+    has changed. */
+ void
+ terminal_new_terminal (char *terminal_name)
+ {
+   if (terminal_new_terminal_hook)
+     (*terminal_new_terminal_hook) (terminal_name);
+   else
+     {
+       terminal_initialize_terminal (terminal_name);
+     }
+ }
+ 
+ /* Set the global variables SCREENWIDTH and SCREENHEIGHT. */
+ void
+ terminal_get_screen_size (void)
+ {
+   if (terminal_get_screen_size_hook)
+     (*terminal_get_screen_size_hook) ();
+   else
+     {
+       screenwidth = screenheight = 0;
+ 
+ #if defined (TIOCGWINSZ)
+       {
+         struct winsize window_size;
+ 
+         if (ioctl (fileno (stdout), TIOCGWINSZ, &window_size) == 0)
+           {
+             screenwidth = (int) window_size.ws_col;
+             screenheight = (int) window_size.ws_row;
+           }
+       }
+ #endif                          /* TIOCGWINSZ */
+ 
+       /* Environment variable COLUMNS overrides setting of "co". */
+       if (screenwidth <= 0)
+         {
+           char *sw = getenv ("COLUMNS");
+ 
+           if (sw)
+             screenwidth = atoi (sw);
+ 
+           if (screenwidth <= 0)
+             screenwidth = tgetnum ("co");
+         }
+ 
+       /* Environment variable LINES overrides setting of "li". */
+       if (screenheight <= 0)
+         {
+           char *sh = getenv ("LINES");
+ 
+           if (sh)
+             screenheight = atoi (sh);
+ 
+           if (screenheight <= 0)
+             screenheight = tgetnum ("li");
+         }
+ 
+       /* If all else fails, default to 80x24 terminal. */
+       if (screenwidth <= 0)
+         screenwidth = 80;
+ 
+       if (screenheight <= 0)
+         screenheight = 24;
+     }
+ }
+ 
+ /* Initialize the terminal which is known as TERMINAL_NAME.  If this
+    terminal doesn't have cursor addressability, `terminal_is_dumb_p'
+    becomes nonzero.  The variables SCREENHEIGHT and SCREENWIDTH are set
+    to the dimensions that this terminal actually has.  The variable
+    TERMINAL_HAS_META_P becomes nonzero if this terminal supports a Meta
+    key.  Finally, the terminal screen is cleared. */
+ void
+ terminal_initialize_terminal (char *terminal_name)
+ {
+   char *buffer;
+ 
+   terminal_is_dumb_p = 0;
+ 
+   if (terminal_initialize_terminal_hook)
+     {
+       (*terminal_initialize_terminal_hook) (terminal_name);
+       return;
+     }
+ 
+   term_name = terminal_name ? terminal_name : getenv ("TERM");
+   if (!term_name)
+     term_name = "dumb";
+ 
+   if (!term_string_buffer)
+     term_string_buffer = xmalloc (2048);
+ 
+   if (!term_buffer)
+     term_buffer = xmalloc (2048);
+ 
+   buffer = term_string_buffer;
+ 
+   term_clrpag = term_cr = term_clreol = NULL;
+ 
+   /* HP-UX 11.x returns 0 for OK --jeff.hull@state.co.us.  */
+   if (tgetent (term_buffer, term_name) < 0)
+     {
+       terminal_is_dumb_p = 1;
+       screenwidth = 80;
+       screenheight = 24;
+       term_cr = "\r";
+       term_up = term_dn = audible_bell = visible_bell = NULL;
+       term_ku = term_kd = term_kl = term_kr = NULL;
+       term_kP = term_kN = NULL;
+       term_kh = term_ke = NULL;
+       term_kD = NULL;
+       return;
+     }
+ 
+   BC = tgetstr ("pc", &buffer);
+   PC = BC ? *BC : 0;
+ 
+ #if defined (HAVE_TERMIOS_H)
+   {
+     struct termios ti;
+     if (tcgetattr (fileno(stdout), &ti) != -1)
+       ospeed = cfgetospeed (&ti);
+     else
+       ospeed = B9600;
+   }
+ #else
+ # if defined (TIOCGETP)
+   {
+     struct sgttyb sg;
+ 
+     if (ioctl (fileno (stdout), TIOCGETP, &sg) != -1)
+       ospeed = sg.sg_ospeed;
+     else
+       ospeed = B9600;
+   }
+ # else
+   ospeed = B9600;
+ # endif /* !TIOCGETP */
+ #endif
+ 
+   term_cr = tgetstr ("cr", &buffer);
+   term_clreol = tgetstr ("ce", &buffer);
+   term_clrpag = tgetstr ("cl", &buffer);
+   term_goto = tgetstr ("cm", &buffer);
+ 
+   /* Find out about this terminal's scrolling capability. */
+   term_AL = tgetstr ("AL", &buffer);
+   term_DL = tgetstr ("DL", &buffer);
+   term_al = tgetstr ("al", &buffer);
+   term_dl = tgetstr ("dl", &buffer);
+ 
+   terminal_can_scroll = ((term_AL || term_al) && (term_DL || term_dl));
+ 
+   term_invbeg = tgetstr ("mr", &buffer);
+   if (term_invbeg)
+     term_invend = tgetstr ("me", &buffer);
+   else
+     term_invend = NULL;
+ 
+   if (!term_cr)
+     term_cr =  "\r";
+ 
+   terminal_get_screen_size ();
+ 
+   term_up = tgetstr ("up", &buffer);
+   term_dn = tgetstr ("dn", &buffer);
+   visible_bell = tgetstr ("vb", &buffer);
+   terminal_has_visible_bell_p = (visible_bell != NULL);
+   audible_bell = tgetstr ("bl", &buffer);
+   if (!audible_bell)
+     audible_bell = "\007";
+   term_begin_use = tgetstr ("ti", &buffer);
+   term_end_use = tgetstr ("te", &buffer);
+ 
+   term_keypad_on = tgetstr ("ks", &buffer);
+   term_keypad_off = tgetstr ("ke", &buffer);
+ 
+   /* Check to see if this terminal has a meta key. */
+   terminal_has_meta_p = (tgetflag ("km") || tgetflag ("MT"));
+   if (terminal_has_meta_p)
+     {
+       term_mm = tgetstr ("mm", &buffer);
+     }
+   else
+     {
+       term_mm = NULL;
+     }
+ 
+   /* Attempt to find the arrow keys.  */
+   term_ku = tgetstr ("ku", &buffer);
+   term_kd = tgetstr ("kd", &buffer);
+   term_kr = tgetstr ("kr", &buffer);
+   term_kl = tgetstr ("kl", &buffer);
+ 
+   term_kP = tgetstr ("kP", &buffer);
+   term_kN = tgetstr ("kN", &buffer);
+ 
+ #if defined(INFOKEY)
+   term_kh = tgetstr ("kh", &buffer);
+   term_ke = tgetstr ("@7", &buffer);
+   term_ki = tgetstr ("kI", &buffer);
+   term_kx = tgetstr ("kD", &buffer);
+ #endif /* defined(INFOKEY) */
+ 
+   /* Home and end keys. */
+   term_kh = tgetstr ("kh", &buffer);
+   term_ke = tgetstr ("@7", &buffer);
+ 
+   term_kD = tgetstr ("kD", &buffer);
+ 
+   /* If this terminal is not cursor addressable, then it is really dumb. */
+   if (!term_goto)
+     terminal_is_dumb_p = 1;
+ }
+ 
+ /* How to read characters from the terminal.  */
+ 
+ #if defined (HAVE_TERMIOS_H)
+ struct termios original_termios, ttybuff;
+ #else
+ #  if defined (HAVE_TERMIO_H)
+ /* A buffer containing the terminal mode flags upon entry to info. */
+ struct termio original_termio, ttybuff;
+ #  else /* !HAVE_TERMIO_H */
+ /* Buffers containing the terminal mode flags upon entry to info. */
+ int original_tty_flags = 0;
+ int original_lmode;
+ struct sgttyb ttybuff;
+ 
+ #    if defined(TIOCGETC) && defined(M_XENIX)
+ /* SCO 3.2v5.0.2 defines but does not support TIOCGETC.  Gak.  Maybe
+    better fix would be to use Posix termios in preference.  --gildea,
+    1jul99.  */
+ #      undef TIOCGETC
+ #    endif
+ 
+ #    if defined (TIOCGETC)
+ /* A buffer containing the terminal interrupt characters upon entry
+    to Info. */
+ struct tchars original_tchars;
+ #    endif
+ 
+ #    if defined (TIOCGLTC)
+ /* A buffer containing the local terminal mode characters upon entry
+    to Info. */
+ struct ltchars original_ltchars;
+ #    endif
+ #  endif /* !HAVE_TERMIO_H */
+ #endif /* !HAVE_TERMIOS_H */
+ 
+ /* Prepare to start using the terminal to read characters singly. */
+ void
+ terminal_prep_terminal (void)
+ {
+   int tty;
+ 
+   if (terminal_prep_terminal_hook)
+     {
+       (*terminal_prep_terminal_hook) ();
+       return;
+     }
+ 
+   terminal_begin_using_terminal ();
+ 
+   tty = fileno (stdin);
+ 
+ #if defined (HAVE_TERMIOS_H)
+   tcgetattr (tty, &original_termios);
+   tcgetattr (tty, &ttybuff);
+ #else
+ #  if defined (HAVE_TERMIO_H)
+   ioctl (tty, TCGETA, &original_termio);
+   ioctl (tty, TCGETA, &ttybuff);
+ #  endif
+ #endif
+ 
+ #if defined (HAVE_TERMIOS_H) || defined (HAVE_TERMIO_H)
+   ttybuff.c_iflag &= (~ISTRIP & ~INLCR & ~IGNCR & ~ICRNL & ~IXON);
+ /* These output flags are not part of POSIX, so only use them if they
+    are defined.  */
+ #ifdef ONLCR
+   ttybuff.c_oflag &= ~ONLCR ;
+ #endif
+ #ifdef OCRNL
+   ttybuff.c_oflag &= ~OCRNL;
+ #endif
+   ttybuff.c_lflag &= (~ICANON & ~ECHO);
+ 
+   ttybuff.c_cc[VMIN] = 1;
+   ttybuff.c_cc[VTIME] = 0;
+ 
+   if (ttybuff.c_cc[VINTR] == '\177')
+     ttybuff.c_cc[VINTR] = -1;
+ 
+   if (ttybuff.c_cc[VQUIT] == '\177')
+     ttybuff.c_cc[VQUIT] = -1;
+ 
+ #ifdef VLNEXT
+   if (ttybuff.c_cc[VLNEXT] == '\026')
+     ttybuff.c_cc[VLNEXT] = -1;
+ #endif /* VLNEXT */
+ #endif /* TERMIOS or TERMIO */
+ 
+ /* cf. emacs/src/sysdep.c for being sure output is on. */
+ #if defined (HAVE_TERMIOS_H)
+   /* linux kernel 2.2.x needs a TCOFF followed by a TCOON to turn output
+      back on if the user presses ^S at the very beginning; just a TCOON
+      doesn't work.  --Kevin Ryde <user42@zip.com.au>, 16jun2000.  */
+   tcsetattr (tty, TCSANOW, &ttybuff);
+ #  ifdef TCOON
+   tcflow (tty, TCOOFF);
+   tcflow (tty, TCOON);
+ #  endif
+ #else
+ #  if defined (HAVE_TERMIO_H)
+   ioctl (tty, TCSETA, &ttybuff);
+ #    ifdef TCXONC
+   ioctl (tty, TCXONC, 1);
+ #    endif
+ #  endif
+ #endif
+ 
+ #if !defined (HAVE_TERMIOS_H) && !defined (HAVE_TERMIO_H)
+   ioctl (tty, TIOCGETP, &ttybuff);
+ 
+   if (!original_tty_flags)
+     original_tty_flags = ttybuff.sg_flags;
+ 
+   /* Make this terminal pass 8 bits around while we are using it. */
+ #  if defined (PASS8)
+   ttybuff.sg_flags |= PASS8;
+ #  endif /* PASS8 */
+ 
+ #  if defined (TIOCLGET) && defined (LPASS8)
+   {
+     int flags;
+     ioctl (tty, TIOCLGET, &flags);
+     original_lmode = flags;
+     flags |= LPASS8;
+     ioctl (tty, TIOCLSET, &flags);
+   }
+ #  endif /* TIOCLGET && LPASS8 */
+ 
+ #  if defined (TIOCGETC)
+   {
+     struct tchars temp;
+ 
+     ioctl (tty, TIOCGETC, &original_tchars);
+     temp = original_tchars;
+ 
+     /* C-s and C-q. */
+     temp.t_startc = temp.t_stopc = -1;
+ 
+     /* Often set to C-d. */
+     temp.t_eofc = -1;
+ 
+     /* If the a quit or interrupt character conflicts with one of our
+        commands, then make it go away. */
+     if (temp.t_intrc == '\177')
+       temp.t_intrc = -1;
+ 
+     if (temp.t_quitc == '\177')
+       temp.t_quitc = -1;
+ 
+     ioctl (tty, TIOCSETC, &temp);
+   }
+ #  endif /* TIOCGETC */
+ 
+ #  if defined (TIOCGLTC)
+   {
+     struct ltchars temp;
+ 
+     ioctl (tty, TIOCGLTC, &original_ltchars);
+     temp = original_ltchars;
+ 
+     /* Make the interrupt keys go away.  Just enough to make people happy. */
+     temp.t_lnextc = -1;         /* C-v. */
+     temp.t_dsuspc = -1;         /* C-y. */
+     temp.t_flushc = -1;         /* C-o. */
+     ioctl (tty, TIOCSLTC, &temp);
+   }
+ #  endif /* TIOCGLTC */
+ 
+   ttybuff.sg_flags &= ~ECHO;
+   ttybuff.sg_flags |= CBREAK;
+   ioctl (tty, TIOCSETN, &ttybuff);
+ #endif /* !HAVE_TERMIOS_H && !HAVE_TERMIO_H */
+ }
+ 
+ /* Restore the tty settings back to what they were before we started using
+    this terminal. */
+ void
+ terminal_unprep_terminal (void)
+ {
+   int tty;
+ 
+   if (terminal_unprep_terminal_hook)
+     {
+       (*terminal_unprep_terminal_hook) ();
+       return;
+     }
+ 
+   tty = fileno (stdin);
+ 
+ #if defined (HAVE_TERMIOS_H)
+   tcsetattr (tty, TCSANOW, &original_termios);
+ #else
+ #  if defined (HAVE_TERMIO_H)
+   ioctl (tty, TCSETA, &original_termio);
+ #  else /* !HAVE_TERMIO_H */
+   ioctl (tty, TIOCGETP, &ttybuff);
+   ttybuff.sg_flags = original_tty_flags;
+   ioctl (tty, TIOCSETN, &ttybuff);
+ 
+ #  if defined (TIOCGETC)
+   ioctl (tty, TIOCSETC, &original_tchars);
+ #  endif /* TIOCGETC */
+ 
+ #  if defined (TIOCGLTC)
+   ioctl (tty, TIOCSLTC, &original_ltchars);
+ #  endif /* TIOCGLTC */
+ 
+ #  if defined (TIOCLGET) && defined (LPASS8)
+   ioctl (tty, TIOCLSET, &original_lmode);
+ #  endif /* TIOCLGET && LPASS8 */
+ 
+ #  endif /* !HAVE_TERMIO_H */
+ #endif /* !HAVE_TERMIOS_H */
+   terminal_end_using_terminal ();
+ }
+ 
+ #ifdef __MSDOS__
+ # include "pcterm.c"
+ #endif
diff -Nrc2 texinfo-4.12/info/terminal.h texinfo-4.13/info/terminal.h
*** texinfo-4.12/info/terminal.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/terminal.h	Sun Jul  1 14:20:31 2007
***************
*** 0 ****
--- 1,129 ----
+ /* terminal.h -- The external interface to terminal I/O.
+    $Id: terminal.h,v 1.6 2007/07/01 21:20:31 karl Exp $
+ 
+    Copyright (C) 1993, 1996, 1997, 2001, 2002, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #if !defined (TERMINAL_H)
+ #define TERMINAL_H
+ 
+ #include "info.h"
+ 
+ /* For almost every function externally visible from terminal.c, there is
+    a corresponding "hook" function which can be bound in order to replace
+    the functionality of the one found in terminal.c.  This is how we go
+    about implemented X window display. */
+ 
+ /* The width and height of the terminal. */
+ extern int screenwidth, screenheight;
+ 
+ /* Non-zero means this terminal can't really do anything. */
+ extern int terminal_is_dumb_p;
+ 
+ /* Non-zero means that this terminal has a meta key. */
+ extern int terminal_has_meta_p;
+ 
+ /* Non-zero means that this terminal can produce a visible bell. */
+ extern int terminal_has_visible_bell_p;
+ 
+ /* Non-zero means to use that visible bell if at all possible. */
+ extern int terminal_use_visible_bell_p;
+ 
+ /* Non-zero means that this terminal can scroll lines up and down. */
+ extern int terminal_can_scroll;
+ 
+ /* Initialize the terminal which is known as TERMINAL_NAME.  If this terminal
+    doesn't have cursor addressability, TERMINAL_IS_DUMB_P becomes non-zero.
+    The variables SCREENHEIGHT and SCREENWIDTH are set to the dimensions that
+    this terminal actually has.  The variable TERMINAL_HAS_META_P becomes non-
+    zero if this terminal supports a Meta key. */
+ extern void terminal_initialize_terminal (char *terminal_name);
+ extern VFunction *terminal_initialize_terminal_hook;
+ 
+ /* Return the current screen width and height in the variables
+    SCREENWIDTH and SCREENHEIGHT. */
+ extern void terminal_get_screen_size (void);
+ extern VFunction *terminal_get_screen_size_hook;
+ 
+ /* Save and restore tty settings. */
+ extern void terminal_prep_terminal (void);
+ extern void terminal_unprep_terminal (void);
+ 
+ extern VFunction *terminal_prep_terminal_hook;
+ extern VFunction *terminal_unprep_terminal_hook;
+ 
+ /* Re-initialize the terminal to TERMINAL_NAME. */
+ extern void terminal_new_terminal (char *terminal_name);
+ extern VFunction *terminal_new_terminal_hook;
+ 
+ /* Move the cursor to the terminal location of X and Y. */
+ extern void terminal_goto_xy (int x, int y);
+ extern VFunction *terminal_goto_xy_hook;
+ 
+ /* Print STRING to the terminal at the current position. */
+ extern void terminal_put_text (char *string);
+ extern VFunction *terminal_put_text_hook;
+ 
+ /* Print NCHARS from STRING to the terminal at the current position. */
+ extern void terminal_write_chars (char *string, int nchars);
+ extern VFunction *terminal_write_chars_hook;
+ 
+ /* Clear from the current position of the cursor to the end of the line. */
+ extern void terminal_clear_to_eol (void);
+ extern VFunction *terminal_clear_to_eol_hook;
+ 
+ /* Clear the entire terminal screen. */
+ extern void terminal_clear_screen (void);
+ extern VFunction *terminal_clear_screen_hook;
+ 
+ /* Move the cursor up one line. */
+ extern void terminal_up_line (void);
+ extern VFunction *terminal_up_line_hook;
+ 
+ /* Move the cursor down one line. */
+ extern void terminal_down_line (void);
+ extern VFunction *terminal_down_line_hook;
+ 
+ /* Turn on reverse video if possible. */
+ extern void terminal_begin_inverse (void);
+ extern VFunction *terminal_begin_inverse_hook;
+ 
+ /* Turn off reverse video if possible. */
+ extern void terminal_end_inverse (void);
+ extern VFunction *terminal_end_inverse_hook;
+ 
+ /* Scroll an area of the terminal, starting with the region from START
+    to END, AMOUNT lines.  If AMOUNT is negative, the lines are scrolled
+    towards the top of the screen, else they are scrolled towards the
+    bottom of the screen. */
+ extern void terminal_scroll_terminal (int start, int end, int amount);
+ extern VFunction *terminal_scroll_terminal_hook;
+ 
+ /* Ring the terminal bell.  The bell is run visibly if it both has one and
+    terminal_use_visible_bell_p is non-zero. */
+ extern void terminal_ring_bell (void);
+ extern VFunction *terminal_ring_bell_hook;
+ 
+ /* The key sequences output by special keys, if this terminal has any. */
+ extern char *term_ku, *term_kd, *term_kr, *term_kl;
+ extern char *term_kP, *term_kN;
+ extern char *term_ke, *term_kh;
+ extern char *term_kx, *term_ki;
+ extern char *term_kD;
+ 
+ #endif /* !TERMINAL_H */
diff -Nrc2 texinfo-4.12/info/tilde.c texinfo-4.13/info/tilde.c
*** texinfo-4.12/info/tilde.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/tilde.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,340 ----
+ /* tilde.c -- tilde expansion code (~/foo := $HOME/foo).
+    $Id: tilde.c,v 1.8 2008/06/11 09:55:43 gray Exp $
+ 
+    Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1996, 1998, 1999,
+    2002, 2004, 2006, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "tilde.h"
+ 
+ #if defined (TEST) || defined (STATIC_MALLOC)
+ static void *xmalloc (), *xrealloc ();
+ #endif /* TEST || STATIC_MALLOC */
+ 
+ /* The default value of tilde_additional_prefixes.  This is set to
+    whitespace preceding a tilde so that simple programs which do not
+    perform any word separation get desired behaviour. */
+ static char *default_prefixes[] =
+   { " ~", "\t~", NULL };
+ 
+ /* The default value of tilde_additional_suffixes.  This is set to
+    whitespace or newline so that simple programs which do not
+    perform any word separation get desired behaviour. */
+ static char *default_suffixes[] =
+   { " ", "\n", NULL };
+ 
+ /* If non-null, this contains the address of a function to call if the
+    standard meaning for expanding a tilde fails.  The function is called
+    with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
+    which is the expansion, or a NULL pointer if there is no expansion. */
+ CFunction *tilde_expansion_failure_hook = NULL;
+ 
+ /* When non-null, this is a NULL terminated array of strings which
+    are duplicates for a tilde prefix.  Bash uses this to expand
+    `=~' and `:~'. */
+ char **tilde_additional_prefixes = default_prefixes;
+ 
+ /* When non-null, this is a NULL terminated array of strings which match
+    the end of a username, instead of just "/".  Bash sets this to
+    `:' and `=~'. */
+ char **tilde_additional_suffixes = default_suffixes;
+ 
+ /* Find the start of a tilde expansion in STRING, and return the index of
+    the tilde which starts the expansion.  Place the length of the text
+    which identified this tilde starter in LEN, excluding the tilde itself. */
+ static int
+ tilde_find_prefix (char *string, int *len)
+ {
+   register int i, j, string_len;
+   register char **prefixes = tilde_additional_prefixes;
+ 
+   string_len = strlen (string);
+   *len = 0;
+ 
+   if (!*string || *string == '~')
+     return 0;
+ 
+   if (prefixes)
+     {
+       for (i = 0; i < string_len; i++)
+         {
+           for (j = 0; prefixes[j]; j++)
+             {
+               if (strncmp (string + i, prefixes[j], strlen (prefixes[j])) == 0)
+                 {
+                   *len = strlen (prefixes[j]) - 1;
+                   return i + *len;
+                 }
+             }
+         }
+     }
+   return string_len;
+ }
+ 
+ /* Find the end of a tilde expansion in STRING, and return the index of
+    the character which ends the tilde definition.  */
+ static int
+ tilde_find_suffix (char *string)
+ {
+   register int i, j, string_len;
+   register char **suffixes = tilde_additional_suffixes;
+ 
+   string_len = strlen (string);
+ 
+   for (i = 0; i < string_len; i++)
+     {
+       if (IS_SLASH (string[i]) || !string[i])
+         break;
+ 
+       for (j = 0; suffixes && suffixes[j]; j++)
+         {
+           if (strncmp (string + i, suffixes[j], strlen (suffixes[j])) == 0)
+             return i;
+         }
+     }
+   return i;
+ }
+ 
+ /* Return a new string which is the result of tilde expanding STRING. */
+ char *
+ tilde_expand (char *string)
+ {
+   char *result;
+   int result_size, result_index;
+ 
+   result_size = result_index = 0;
+   result = NULL;
+ 
+   /* Scan through STRING expanding tildes as we come to them. */
+   while (1)
+     {
+       register int start, end;
+       char *tilde_word, *expansion;
+       int len;
+ 
+       /* Make START point to the tilde which starts the expansion. */
+       start = tilde_find_prefix (string, &len);
+ 
+       /* Copy the skipped text into the result. */
+       if ((result_index + start + 1) > result_size)
+         result = xrealloc (result, 1 + (result_size += (start + 20)));
+ 
+       strncpy (result + result_index, string, start);
+       result_index += start;
+ 
+       /* Advance STRING to the starting tilde. */
+       string += start;
+ 
+       /* Make END be the index of one after the last character of the
+          username. */
+       end = tilde_find_suffix (string);
+ 
+       /* If both START and END are zero, we are all done. */
+       if (!start && !end)
+         break;
+ 
+       /* Expand the entire tilde word, and copy it into RESULT. */
+       tilde_word = xmalloc (1 + end);
+       strncpy (tilde_word, string, end);
+       tilde_word[end] = '\0';
+       string += end;
+ 
+       expansion = tilde_expand_word (tilde_word);
+       free (tilde_word);
+ 
+       len = strlen (expansion);
+       if ((result_index + len + 1) > result_size)
+         result = xrealloc (result, 1 + (result_size += (len + 20)));
+ 
+       strcpy (result + result_index, expansion);
+       result_index += len;
+       free (expansion);
+     }
+ 
+   result[result_index] = '\0';
+ 
+   return result;
+ }
+ 
+ /* Do the work of tilde expansion on FILENAME.  FILENAME starts with a
+    tilde.  If there is no expansion, call tilde_expansion_failure_hook. */
+ char *
+ tilde_expand_word (char *filename)
+ {
+   char *dirname = filename ? xstrdup (filename) : NULL;
+ 
+   if (dirname && *dirname == '~')
+     {
+       char *temp_name;
+       if (!dirname[1] || IS_SLASH (dirname[1]))
+         {
+           /* Prepend $HOME to the rest of the string. */
+           char *temp_home = getenv ("HOME");
+ 
+           /* If there is no HOME variable, look up the directory in
+              the password database. */
+           if (!temp_home)
+             {
+               struct passwd *entry;
+ 
+               entry = (struct passwd *) getpwuid (getuid ());
+               if (entry)
+                 temp_home = entry->pw_dir;
+             }
+ 
+           temp_name = xmalloc (1 + strlen (&dirname[1])
+                                + (temp_home ? strlen (temp_home) : 0));
+           if (temp_home)
+             strcpy (temp_name, temp_home);
+           else
+             temp_name[0] = 0;
+           strcat (temp_name, &dirname[1]);
+           free (dirname);
+           dirname = xstrdup (temp_name);
+           free (temp_name);
+         }
+       else
+         {
+           struct passwd *user_entry;
+           char *username = xmalloc (257);
+           int i, c;
+ 
+           for (i = 1; (c = dirname[i]); i++)
+             {
+               if (IS_SLASH (c))
+                 break;
+               else
+                 username[i - 1] = c;
+             }
+           username[i - 1] = 0;
+ 
+           if (!(user_entry = (struct passwd *) getpwnam (username)))
+             {
+               /* If the calling program has a special syntax for
+                  expanding tildes, and we couldn't find a standard
+                  expansion, then let them try. */
+               if (tilde_expansion_failure_hook)
+                 {
+                   char *expansion = (*tilde_expansion_failure_hook) (username);
+ 
+                   if (expansion)
+                     {
+                       temp_name = xmalloc (1 + strlen (expansion)
+                                            + strlen (&dirname[i])); 
+                       strcpy (temp_name, expansion);
+                       strcat (temp_name, &dirname[i]);
+                       free (expansion);
+                       goto return_name;
+                     }
+                 }
+               /* We shouldn't report errors. */
+             }
+           else
+             {
+               temp_name = xmalloc (1 + strlen (user_entry->pw_dir)
+                                    + strlen (&dirname[i])); 
+               strcpy (temp_name, user_entry->pw_dir);
+               strcat (temp_name, &dirname[i]);
+ 
+             return_name:
+               free (dirname);
+               dirname = xstrdup (temp_name);
+               free (temp_name);
+             }
+ 
+           endpwent ();
+           free (username);
+         }
+     }
+   return dirname;
+ }
+ 
+ 
+ #if defined (TEST)
+ #undef NULL
+ #include <stdio.h>
+ 
+ main (argc, argv)
+      int argc;
+      char **argv;
+ {
+   char *result, line[512];
+   int done = 0;
+ 
+   while (!done)
+     {
+       printf ("~expand: ");
+       fflush (stdout);
+ 
+       if (!gets (line))
+         strcpy (line, "done");
+ 
+       if ((strcmp (line, "done") == 0) ||
+           (strcmp (line, "quit") == 0) ||
+           (strcmp (line, "exit") == 0))
+         {
+           done = 1;
+           break;
+         }
+ 
+       result = tilde_expand (line);
+       printf ("  --> %s\n", result);
+       free (result);
+     }
+   xexit (0);
+ }
+ 
+ static void memory_error_and_abort ();
+ 
+ static void *
+ xmalloc (bytes)
+      int bytes;
+ {
+   void *temp = (void *)malloc (bytes);
+ 
+   if (!temp)
+     memory_error_and_abort ();
+   return temp;
+ }
+ 
+ static void *
+ xrealloc (pointer, bytes)
+      void *pointer;
+      int bytes;
+ {
+   void *temp;
+ 
+   if (!pointer)
+     temp = (char *)malloc (bytes);
+   else
+     temp = (char *)realloc (pointer, bytes);
+ 
+   if (!temp)
+     memory_error_and_abort ();
+ 
+   return temp;
+ }
+ 
+ static void
+ memory_error_and_abort ()
+ {
+   fprintf (stderr, _("readline: Out of virtual memory!\n"));
+   abort ();
+ }
+ #endif /* TEST */
+ 
diff -Nrc2 texinfo-4.12/info/tilde.h texinfo-4.13/info/tilde.h
*** texinfo-4.12/info/tilde.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/tilde.h	Sun Jul  1 14:20:31 2007
***************
*** 0 ****
--- 1,53 ----
+ /* tilde.h: Externally available variables and function in libtilde.a.
+    $Id: tilde.h,v 1.6 2007/07/01 21:20:31 karl Exp $
+ 
+    This file has appeared in prior works by the Free Software Foundation;
+    thus it carries copyright dates from 1988 through 1993.
+ 
+    Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef TILDE_H
+ #define TILDE_H
+ 
+ #include "info.h"
+ 
+ /* If non-null, this contains the address of a function to call if the
+    standard meaning for expanding a tilde fails.  The function is called
+    with the text (sans tilde, as in "foo"), and returns a malloc()'ed string
+    which is the expansion, or a NULL pointer if there is no expansion. */
+ extern CFunction *tilde_expansion_failure_hook;
+ 
+ /* When non-null, this is a NULL terminated array of strings which
+    are duplicates for a tilde prefix.  Bash uses this to expand
+    `=~' and `:~'. */
+ extern char **tilde_additional_prefixes;
+ 
+ /* When non-null, this is a NULL terminated array of strings which match
+    the end of a username, instead of just "/".  Bash sets this to
+    `:' and `=~'. */
+ extern char **tilde_additional_suffixes;
+ 
+ /* Return a new string which is the result of tilde expanding STRING. */
+ extern char *tilde_expand (char *string);
+ 
+ /* Do the work of tilde expansion on FILENAME.  FILENAME starts with a
+    tilde.  If there is no expansion, call tilde_expansion_failure_hook. */
+ extern char *tilde_expand_word (char *filename);
+ 
+ #endif /* not TILDE_H */
diff -Nrc2 texinfo-4.12/info/variables.c texinfo-4.13/info/variables.c
*** texinfo-4.12/info/variables.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/variables.c	Thu Jun 12 05:39:21 2008
***************
*** 0 ****
--- 1,319 ----
+ /* variables.c -- how to manipulate user visible variables in Info.
+    $Id: variables.c,v 1.10 2008/06/11 09:55:43 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 2001, 2002, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "variables.h"
+ 
+ /* **************************************************************** */
+ /*                                                                  */
+ /*                  User Visible Variables in Info                  */
+ /*                                                                  */
+ /* **************************************************************** */
+ 
+ /* Choices used by the completer when reading a zero/non-zero value for
+    a variable. */
+ static char *on_off_choices[] = { "Off", "On", NULL };
+ 
+ VARIABLE_ALIST info_variables[] = {
+   { "automatic-footnotes",
+       N_("When \"On\", footnotes appear and disappear automatically"),
+       &auto_footnotes_p, (char **)on_off_choices },
+ 
+   { "automatic-tiling",
+       N_("When \"On\", creating or deleting a window resizes other windows"),
+       &auto_tiling_p, (char **)on_off_choices },
+ 
+   { "visible-bell",
+       N_("When \"On\", flash the screen instead of ringing the bell"),
+       &terminal_use_visible_bell_p, (char **)on_off_choices },
+ 
+   { "errors-ring-bell",
+       N_("When \"On\", errors cause the bell to ring"),
+       &info_error_rings_bell_p, (char **)on_off_choices },
+ 
+   { "gc-compressed-files",
+       N_("When \"On\", Info garbage collects files which had to be uncompressed"),
+       &gc_compressed_files, (char **)on_off_choices },
+   { "show-index-match",
+       N_("When \"On\", the portion of the matched search string is highlighted"),
+       &show_index_match, (char **)on_off_choices },
+ 
+   { "scroll-behaviour",
+       N_("Controls what happens when scrolling is requested at the end of a node"),
+       &info_scroll_behaviour, (char **)info_scroll_choices },
+ 
+   /* Alternate spelling */
+   { "scroll-behavior",
+       N_("Same as scroll-behaviour"),
+       &info_scroll_behaviour, (char **)info_scroll_choices },
+ 
+   { "scroll-step",
+       N_("The number lines to scroll when the cursor moves out of the window"),
+       &window_scroll_step, NULL },
+ 
+   { "cursor-movement-scrolls",
+     N_("Controls whether scroll-behavior affects cursor movement commands"),
+     &cursor_movement_scrolls_p, (char **)on_off_choices },
+   
+   { "ISO-Latin",
+       N_("When \"On\", Info accepts and displays ISO Latin characters"),
+       &ISO_Latin_p, (char **)on_off_choices },
+ 
+   { "scroll-last-node",
+     N_("What to do when a scrolling command is issued at the end of the "
+        "last node"),
+     &scroll_last_node, (char**)scroll_last_node_choices },
+   
+   { NULL }
+ };
+ 
+ DECLARE_INFO_COMMAND (describe_variable, _("Explain the use of a variable"))
+ {
+   VARIABLE_ALIST *var;
+   char *description;
+ 
+   /* Get the variable's name. */
+   var = read_variable_name (_("Describe variable: "), window);
+ 
+   if (!var)
+     return;
+ 
+   description = xmalloc (20 + strlen (var->name)
+ 			 + strlen (_(var->doc)));
+ 
+   if (var->choices)
+     sprintf (description, "%s (%s): %s.",
+              var->name, var->choices[*(var->value)], _(var->doc));
+   else
+     sprintf (description, "%s (%d): %s.",
+ 	     var->name, *(var->value), _(var->doc));
+ 
+   window_message_in_echo_area ("%s", description, NULL);
+   free (description);
+ }
+ 
+ DECLARE_INFO_COMMAND (set_variable, _("Set the value of an Info variable"))
+ {
+   VARIABLE_ALIST *var;
+   char *line;
+ 
+   /* Get the variable's name and value. */
+   var = read_variable_name (_("Set variable: "), window);
+ 
+   if (!var)
+     return;
+ 
+   /* Read a new value for this variable. */
+   {
+     char prompt[100];
+ 
+     if (!var->choices)
+       {
+         int potential_value;
+ 
+         if (info_explicit_arg || count != 1)
+           potential_value = count;
+         else
+           potential_value = *(var->value);
+ 
+         sprintf (prompt, _("Set %s to value (%d): "),
+                  var->name, potential_value);
+         line = info_read_in_echo_area (active_window, prompt);
+ 
+         /* If no error was printed, clear the echo area. */
+         if (!info_error_was_printed)
+           window_clear_echo_area ();
+ 
+         /* User aborted? */
+         if (!line)
+           return;
+ 
+         /* If the user specified a value, get that, otherwise, we are done. */
+         canonicalize_whitespace (line);
+         if (*line)
+           *(var->value) = atoi (line);
+         else
+           *(var->value) = potential_value;
+ 
+         free (line);
+       }
+     else
+       {
+         register int i;
+         REFERENCE **array = NULL;
+         int array_index = 0;
+         int array_slots = 0;
+ 
+         for (i = 0; var->choices[i]; i++)
+           {
+             REFERENCE *entry;
+ 
+             entry = xmalloc (sizeof (REFERENCE));
+             entry->label = xstrdup (var->choices[i]);
+             entry->nodename = NULL;
+             entry->filename = NULL;
+ 
+             add_pointer_to_array
+               (entry, array_index, array, array_slots, 10, REFERENCE *);
+           }
+ 
+         sprintf (prompt, _("Set %s to value (%s): "),
+                  var->name, var->choices[*(var->value)]);
+ 
+         /* Ask the completer to read a variable value for us. */
+         line = info_read_completing_in_echo_area (window, prompt, array);
+ 
+         info_free_references (array);
+ 
+         if (!echo_area_is_active)
+           window_clear_echo_area ();
+ 
+         /* User aborted? */
+         if (!line)
+           {
+             info_abort_key (active_window, 0, 0);
+             return;
+           }
+ 
+         /* User accepted default choice?  If so, no change. */
+         if (!*line)
+           {
+             free (line);
+             return;
+           }
+ 
+         /* Find the choice in our list of choices. */
+         for (i = 0; var->choices[i]; i++)
+           if (strcmp (var->choices[i], line) == 0)
+             break;
+ 
+         if (var->choices[i])
+           *(var->value) = i;
+       }
+   }
+ }
+ 
+ /* Read the name of an Info variable in the echo area and return the
+    address of a VARIABLE_ALIST member.  A return value of NULL indicates
+    that no variable could be read. */
+ VARIABLE_ALIST *
+ read_variable_name (const char *prompt, WINDOW *window)
+ {
+   register int i;
+   char *line;
+   REFERENCE **variables;
+ 
+   /* Get the completion array of variable names. */
+   variables = make_variable_completions_array ();
+ 
+   /* Ask the completer to read a variable for us. */
+   line =
+     info_read_completing_in_echo_area (window, prompt, variables);
+ 
+   info_free_references (variables);
+ 
+   if (!echo_area_is_active)
+     window_clear_echo_area ();
+ 
+   /* User aborted? */
+   if (!line)
+     {
+       info_abort_key (active_window, 0, 0);
+       return NULL;
+     }
+ 
+   /* User accepted "default"?  (There is none.) */
+   if (!*line)
+     {
+       free (line);
+       return NULL;
+     }
+ 
+   /* Find the variable in our list of variables. */
+   for (i = 0; info_variables[i].name; i++)
+     if (strcmp (info_variables[i].name, line) == 0)
+       break;
+ 
+   if (!info_variables[i].name)
+     return NULL;
+   else
+     return &info_variables[i];
+ }
+ 
+ /* Make an array of REFERENCE which actually contains the names of the
+    variables available in Info. */
+ REFERENCE **
+ make_variable_completions_array (void)
+ {
+   register int i;
+   REFERENCE **array = NULL;
+   int array_index = 0, array_slots = 0;
+ 
+   for (i = 0; info_variables[i].name; i++)
+     {
+       REFERENCE *entry;
+ 
+       entry = xmalloc (sizeof (REFERENCE));
+       entry->label = xstrdup (info_variables[i].name);
+       entry->nodename = NULL;
+       entry->filename = NULL;
+ 
+       add_pointer_to_array
+         (entry, array_index, array, array_slots, 200, REFERENCE *);
+     }
+ 
+   return array;
+ }
+ 
+ #if defined(INFOKEY)
+ 
+ void
+ set_variable_to_value(char *name, char *value)
+ {
+ 	register int i;
+ 
+ 	/* Find the variable in our list of variables. */
+ 	for (i = 0; info_variables[i].name; i++)
+ 		if (strcmp(info_variables[i].name, name) == 0)
+ 			break;
+ 
+ 	if (!info_variables[i].name)
+ 		return;
+ 
+ 	if (info_variables[i].choices)
+ 	{
+ 		register int j;
+ 
+ 		/* Find the choice in our list of choices. */
+ 		for (j = 0; info_variables[i].choices[j]; j++)
+ 			if (strcmp (info_variables[i].choices[j], value) == 0)
+ 				break;
+ 
+ 		if (info_variables[i].choices[j])
+ 			*info_variables[i].value = j;
+ 	}
+ 	else
+ 	{
+ 		*info_variables[i].value = atoi(value);
+ 	}
+ }
+ 
+ #endif /* INFOKEY */
diff -Nrc2 texinfo-4.12/info/variables.h texinfo-4.13/info/variables.h
*** texinfo-4.12/info/variables.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/variables.h	Sat Mar  8 06:31:57 2008
***************
*** 0 ****
--- 1,67 ----
+ /* variables.h -- Description of user visible variables in Info.
+    $Id: variables.h,v 1.9 2008/03/04 09:45:27 gray Exp $
+ 
+    This file is part of GNU Info, a program for reading online documentation
+    stored in Info format.
+ 
+    Copyright (C) 1993, 1997, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_VARIABLES_H
+ #define INFO_VARIABLES_H
+ 
+ /* A variable (in the Info sense) is an integer value with a user-visible
+    name.  You may supply an array of strings to complete over when the
+    variable is set; in that case, the variable is set to the index of the
+    string that the user chose.  If you supply a null list, the user can
+    set the variable to a numeric value. */
+ 
+ /* Structure describing a user visible variable. */
+ typedef struct {
+   char *name;                   /* Polite name. */
+   char *doc;                    /* Documentation string. */
+   int *value;                   /* Address of value. */
+   char **choices;               /* Array of strings or NULL if numeric only. */
+ } VARIABLE_ALIST;
+ 
+ /* Read the name of an Info variable in the echo area and return the
+    address of a VARIABLE_ALIST member.  A return value of NULL indicates
+    that no variable could be read. */
+ extern VARIABLE_ALIST *read_variable_name (const char *prompt, WINDOW *window);
+ 
+ /* Make an array of REFERENCE which actually contains the names of the
+    variables available in Info. */
+ extern REFERENCE **make_variable_completions_array (void);
+ 
+ /* Set the value of an info variable. */
+ extern void set_variable (WINDOW *window, int count, unsigned char key);
+ extern void describe_variable (WINDOW *window, int count, unsigned char key);
+ 
+ /* The list of user-visible variables. */
+ extern int auto_footnotes_p;
+ extern int auto_tiling_p;
+ extern int terminal_use_visible_bell_p;
+ extern int info_error_rings_bell_p;
+ extern int gc_compressed_files;
+ extern int show_index_match;
+ extern int info_scroll_behaviour;
+ extern int window_scroll_step;
+ extern int cursor_movement_scrolls_p;
+ extern int ISO_Latin_p;
+ extern int scroll_last_node;
+ 
+ #endif /* not INFO_VARIABLES_H */
diff -Nrc2 texinfo-4.12/info/window.c texinfo-4.13/info/window.c
*** texinfo-4.12/info/window.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/window.c	Thu Sep 18 11:31:59 2008
***************
*** 0 ****
--- 1,1958 ----
+ /* window.c -- windows in Info.
+    $Id: window.c,v 1.17 2008/09/13 10:01:31 gray Exp $
+ 
+    Copyright (C) 1993, 1997, 1998, 2001, 2002, 2003, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #include "info.h"
+ #include "nodes.h"
+ #include "window.h"
+ #include "display.h"
+ #include "info-utils.h"
+ #include "infomap.h"
+ 
+ /* The window which describes the screen. */
+ WINDOW *the_screen = NULL;
+ 
+ /* The window which describes the echo area. */
+ WINDOW *the_echo_area = NULL;
+ 
+ /* The list of windows in Info. */
+ WINDOW *windows = NULL;
+ 
+ /* Pointer to the active window in WINDOW_LIST. */
+ WINDOW *active_window = NULL;
+ 
+ /* The size of the echo area in Info.  It never changes, irregardless of the
+    size of the screen. */
+ #define ECHO_AREA_HEIGHT 1
+ 
+ /* Macro returns the amount of space that the echo area truly requires relative
+    to the entire screen. */
+ #define echo_area_required (1 + the_echo_area->height)
+ 
+ /* Show malformed multibyte sequences */
+ int show_malformed_multibyte_p = 0;
+ 
+ /* Initalize the window system by creating THE_SCREEN and THE_ECHO_AREA.
+    Create the first window ever.
+    You pass the dimensions of the total screen size. */
+ void
+ window_initialize_windows (int width, int height)
+ {
+   the_screen = xmalloc (sizeof (WINDOW));
+   the_echo_area = xmalloc (sizeof (WINDOW));
+   windows = xmalloc (sizeof (WINDOW));
+   active_window = windows;
+ 
+   zero_mem (the_screen, sizeof (WINDOW));
+   zero_mem (the_echo_area, sizeof (WINDOW));
+   zero_mem (active_window, sizeof (WINDOW));
+ 
+   /* None of these windows has a goal column yet. */
+   the_echo_area->goal_column = -1;
+   active_window->goal_column = -1;
+   the_screen->goal_column = -1;
+ 
+   /* The active and echo_area windows are visible.
+      The echo_area is permanent.
+      The screen is permanent. */
+   active_window->flags = W_WindowVisible;
+   the_echo_area->flags = W_WindowIsPerm | W_InhibitMode | W_WindowVisible;
+   the_screen->flags    = W_WindowIsPerm;
+ 
+   /* The height of the echo area never changes.  It is statically set right
+      here, and it must be at least 1 line for display.  The size of the
+      initial window cannot be the same size as the screen, since the screen
+      includes the echo area.  So, we make the height of the initial window
+      equal to the screen's displayable region minus the height of the echo
+      area. */
+   the_echo_area->height = ECHO_AREA_HEIGHT;
+   active_window->height = the_screen->height - 1 - the_echo_area->height;
+   window_new_screen_size (width, height);
+ 
+   /* The echo area uses a different keymap than normal info windows. */
+   the_echo_area->keymap = echo_area_keymap;
+   active_window->keymap = info_keymap;
+ }
+ 
+ /* Given that the size of the screen has changed to WIDTH and HEIGHT
+    from whatever it was before (found in the_screen->height, ->width),
+    change the size (and possibly location) of each window in the screen.
+    If a window would become too small, call the function DELETER on it,
+    after deleting the window from our chain of windows.  If DELETER is NULL,
+    nothing extra is done.  The last window can never be deleted, but it can
+    become invisible. */
+ 
+ /* If non-null, a function to call with WINDOW as argument when the function
+    window_new_screen_size () has deleted WINDOW. */
+ VFunction *window_deletion_notifier = NULL;
+ 
+ void
+ window_new_screen_size (int width, int height)
+ {
+   register WINDOW *win;
+   int delta_height, delta_each, delta_leftover;
+   int numwins;
+ 
+   /* If no change, do nothing. */
+   if (width == the_screen->width && height == the_screen->height)
+     return;
+ 
+   /* If the new window height is too small, make it be zero. */
+   if (height < (WINDOW_MIN_SIZE + the_echo_area->height))
+     height = 0;
+   if (width < 0)
+     width = 0;
+ 
+   /* Find out how many windows will change. */
+   for (numwins = 0, win = windows; win; win = win->next, numwins++);
+ 
+   /* See if some windows will need to be deleted.  This is the case if
+      the screen is getting smaller, and the available space divided by
+      the number of windows is less than WINDOW_MIN_SIZE.  In that case,
+      delete some windows and try again until there is either enough
+      space to divy up among the windows, or until there is only one
+      window left. */
+   while ((height - echo_area_required) / numwins <= WINDOW_MIN_SIZE)
+     {
+       /* If only one window, make the size of it be zero, and return
+          immediately. */
+       if (!windows->next)
+         {
+           windows->height = 0;
+           maybe_free (windows->line_starts);
+           windows->line_starts = NULL;
+           windows->line_count = 0;
+           break;
+         }
+ 
+       /* If we have some temporary windows, delete one of them. */
+       for (win = windows; win; win = win->next)
+         if (win->flags & W_TempWindow)
+           break;
+ 
+       /* Otherwise, delete the first window, and try again. */
+       if (!win)
+         win = windows;
+ 
+       if (window_deletion_notifier)
+         (*window_deletion_notifier) (win);
+ 
+       window_delete_window (win);
+       numwins--;
+     }
+ 
+   /* The screen has changed height and width. */
+   delta_height = height - the_screen->height;   /* This is how much. */
+   the_screen->height = height;                  /* This is the new height. */
+   the_screen->width = width;                    /* This is the new width. */
+ 
+   /* Set the start of the echo area. */
+   the_echo_area->first_row = height - the_echo_area->height;
+   the_echo_area->width = width;
+ 
+   /* Check to see if the screen can really be changed this way. */
+   if ((!windows->next) && ((windows->height == 0) && (delta_height < 0)))
+     return;
+ 
+   /* Divide the change in height among the available windows. */
+   delta_each = delta_height / numwins;
+   delta_leftover = delta_height - (delta_each * numwins);
+ 
+   /* Change the height of each window in the chain by delta_each.  Change
+      the height of the last window in the chain by delta_each and by the
+      leftover amount of change.  Change the width of each window to be
+      WIDTH. */
+   for (win = windows; win; win = win->next)
+     {
+       if ((win->width != width) && ((win->flags & W_InhibitMode) == 0))
+         {
+           win->width = width;
+           maybe_free (win->modeline);
+           win->modeline = xmalloc (1 + width);
+         }
+ 
+       win->height += delta_each;
+ 
+       /* If the previous height of this window was zero, it was the only
+          window, and it was not visible.  Thus we need to compensate for
+          the echo_area. */
+       if (win->height == delta_each)
+         win->height -= (1 + the_echo_area->height);
+ 
+       /* If this is not the first window in the chain, then change the
+          first row of it.  We cannot just add delta_each to the first row,
+          since this window's first row is the sum of the collective increases
+          that have gone before it.  So we just add one to the location of the
+          previous window's modeline. */
+       if (win->prev)
+         win->first_row = (win->prev->first_row + win->prev->height) + 1;
+ 
+       /* The last window in the chain gets the extra space (or shrinkage). */
+       if (!win->next)
+         win->height += delta_leftover;
+ 
+       if (win->node)
+         recalculate_line_starts (win);
+ 
+       win->flags |= W_UpdateWindow;
+     }
+ 
+   /* If the screen got smaller, check over the windows just shrunk to
+      keep them within bounds.  Some of the windows may have gotten smaller
+      than WINDOW_MIN_HEIGHT in which case some of the other windows are
+      larger than the available display space in the screen.  Because of our
+      intial test above, we know that there is enough space for all of the
+      windows. */
+   if ((delta_each < 0) && ((windows->height != 0) && windows->next))
+     {
+       int avail;
+ 
+       avail = the_screen->height - (numwins + the_echo_area->height);
+       win = windows;
+ 
+       while (win)
+         {
+           if ((win->height < WINDOW_MIN_HEIGHT) ||
+               (win->height > avail))
+             {
+               WINDOW *lastwin = NULL;
+ 
+               /* Split the space among the available windows. */
+               delta_each = avail / numwins;
+               delta_leftover = avail - (delta_each * numwins);
+ 
+               for (win = windows; win; win = win->next)
+                 {
+                   lastwin = win;
+                   if (win->prev)
+                     win->first_row =
+                       (win->prev->first_row + win->prev->height) + 1;
+                   win->height = delta_each;
+                 }
+ 
+               /* Give the leftover space (if any) to the last window. */
+               lastwin->height += delta_leftover;
+               break;
+             }
+           else
+             win = win->next;
+         }
+     }
+ 
+   /* One more loop.  If any heights or widths have become negative,
+      set them to zero.  This can apparently happen with resizing down to
+      very small sizes.  Sadly, it is not apparent to me where in the
+      above calculations it goes wrong.  */
+   for (win = windows; win; win = win->next)
+     {
+       if (win->height < 0)
+         win->height = 0;
+ 
+       if (win->width < 0)
+         win->width = 0;
+     }
+ }
+ 
+ /* Make a new window showing NODE, and return that window structure.
+    If NODE is passed as NULL, then show the node showing in the active
+    window.  If the window could not be made return a NULL pointer.  The
+    active window is not changed.*/
+ WINDOW *
+ window_make_window (NODE *node)
+ {
+   WINDOW *window;
+ 
+   if (!node)
+     node = active_window->node;
+ 
+   /* If there isn't enough room to make another window, return now. */
+   if ((active_window->height / 2) < WINDOW_MIN_SIZE)
+     return NULL;
+ 
+   /* Make and initialize the new window.
+      The fudging about with -1 and +1 is because the following window in the
+      chain cannot start at window->height, since that is where the modeline
+      for the previous window is displayed.  The inverse adjustment is made
+      in window_delete_window (). */
+   window = xmalloc (sizeof (WINDOW));
+   window->width = the_screen->width;
+   window->height = (active_window->height / 2) - 1;
+ #if defined (SPLIT_BEFORE_ACTIVE)
+   window->first_row = active_window->first_row;
+ #else
+   window->first_row = active_window->first_row +
+     (active_window->height - window->height);
+ #endif
+   window->keymap = info_keymap;
+   window->goal_column = -1;
+   memset (&window->line_map, 0, sizeof (window->line_map));
+   window->modeline = xmalloc (1 + window->width);
+   window->line_starts = NULL;
+   window->flags = W_UpdateWindow | W_WindowVisible;
+   window_set_node_of_window (window, node);
+ 
+   /* Adjust the height of the old active window. */
+   active_window->height -= (window->height + 1);
+ #if defined (SPLIT_BEFORE_ACTIVE)
+   active_window->first_row += (window->height + 1);
+ #endif
+   active_window->flags |= W_UpdateWindow;
+ 
+   /* Readjust the new and old windows so that their modelines and contents
+      will be displayed correctly. */
+ #if defined (NOTDEF)
+   /* We don't have to do this for WINDOW since window_set_node_of_window ()
+      already did. */
+   window_adjust_pagetop (window);
+   window_make_modeline (window);
+ #endif /* NOTDEF */
+ 
+   /* We do have to readjust the existing active window. */
+   window_adjust_pagetop (active_window);
+   window_make_modeline (active_window);
+ 
+ #if defined (SPLIT_BEFORE_ACTIVE)
+   /* This window is just before the active one.  The active window gets
+      bumped down one.  The active window is not changed. */
+   window->next = active_window;
+ 
+   window->prev = active_window->prev;
+   active_window->prev = window;
+ 
+   if (window->prev)
+     window->prev->next = window;
+   else
+     windows = window;
+ #else
+   /* This window is just after the active one.  Which window is active is
+      not changed. */
+   window->prev = active_window;
+   window->next = active_window->next;
+   active_window->next = window;
+   if (window->next)
+     window->next->prev = window;
+ #endif /* !SPLIT_BEFORE_ACTIVE */
+   return window;
+ }
+ 
+ /* These useful macros make it possible to read the code in
+    window_change_window_height (). */
+ #define grow_me_shrinking_next(me, next, diff) \
+   do { \
+     me->height += diff; \
+     next->height -= diff; \
+     next->first_row += diff; \
+     window_adjust_pagetop (next); \
+   } while (0)
+ 
+ #define grow_me_shrinking_prev(me, prev, diff) \
+   do { \
+     me->height += diff; \
+     prev->height -= diff; \
+     me->first_row -=diff; \
+     window_adjust_pagetop (prev); \
+   } while (0)
+ 
+ #define shrink_me_growing_next(me, next, diff) \
+   do { \
+     me->height -= diff; \
+     next->height += diff; \
+     next->first_row -= diff; \
+     window_adjust_pagetop (next); \
+   } while (0)
+ 
+ #define shrink_me_growing_prev(me, prev, diff) \
+   do { \
+     me->height -= diff; \
+     prev->height += diff; \
+     me->first_row += diff; \
+     window_adjust_pagetop (prev);		\
+   } while (0)
+ 
+ /* Change the height of WINDOW by AMOUNT.  This also automagically adjusts
+    the previous and next windows in the chain.  If there is only one user
+    window, then no change takes place. */
+ void
+ window_change_window_height (WINDOW *window, int amount)
+ {
+   register WINDOW *win, *prev, *next;
+ 
+   /* If there is only one window, or if the amount of change is zero,
+      return immediately. */
+   if (!windows->next || amount == 0)
+     return;
+ 
+   /* Find this window in our chain. */
+   for (win = windows; win; win = win->next)
+     if (win == window)
+       break;
+ 
+   /* If the window is isolated (i.e., doesn't appear in our window list,
+      then quit now. */
+   if (!win)
+     return;
+ 
+   /* Change the height of this window by AMOUNT, if that is possible.
+      It can be impossible if there isn't enough available room on the
+      screen, or if the resultant window would be too small. */
+ 
+     prev = window->prev;
+     next = window->next;
+ 
+   /* WINDOW decreasing in size? */
+   if (amount < 0)
+     {
+       int abs_amount = -amount; /* It is easier to deal with this way. */
+ 
+       /* If the resultant window would be too small, stop here. */
+       if ((window->height - abs_amount) < WINDOW_MIN_HEIGHT)
+         return;
+ 
+       /* If we have two neighboring windows, choose the smaller one to get
+          larger. */
+       if (next && prev)
+         {
+           if (prev->height < next->height)
+             shrink_me_growing_prev (window, prev, abs_amount);
+           else
+             shrink_me_growing_next (window, next, abs_amount);
+         }
+       else if (next)
+         shrink_me_growing_next (window, next, abs_amount);
+       else
+         shrink_me_growing_prev (window, prev, abs_amount);
+     }
+ 
+   /* WINDOW increasing in size? */
+   if (amount > 0)
+     {
+       int total_avail, next_avail = 0, prev_avail = 0;
+ 
+       if (next)
+         next_avail = next->height - WINDOW_MIN_SIZE;
+ 
+       if (prev)
+         prev_avail = prev->height - WINDOW_MIN_SIZE;
+ 
+       total_avail = next_avail + prev_avail;
+ 
+       /* If there isn't enough space available to grow this window, give up. */
+       if (amount > total_avail)
+         return;
+ 
+       /* If there aren't two neighboring windows, or if one of the neighbors
+          is larger than the other one by at least AMOUNT, grow that one. */
+       if ((next && !prev) || ((next_avail - amount) >= prev_avail))
+         grow_me_shrinking_next (window, next, amount);
+       else if ((prev && !next) || ((prev_avail - amount) >= next_avail))
+         grow_me_shrinking_prev (window, prev, amount);
+       else
+         {
+           int change;
+ 
+           /* This window has two neighbors.  They both must be shrunk in to
+              make enough space for WINDOW to grow.  Make them both the same
+              size. */
+           if (prev_avail > next_avail)
+             {
+               change = prev_avail - next_avail;
+               grow_me_shrinking_prev (window, prev, change);
+               amount -= change;
+             }
+           else
+             {
+               change = next_avail - prev_avail;
+               grow_me_shrinking_next (window, next, change);
+               amount -= change;
+             }
+ 
+           /* Both neighbors are the same size.  Split the difference in
+              AMOUNT between them. */
+           while (amount)
+             {
+               window->height++;
+               amount--;
+ 
+               /* Odd numbers grow next, even grow prev. */
+               if (amount & 1)
+                 {
+                   prev->height--;
+                   window->first_row--;
+                 }
+               else
+                 {
+                   next->height--;
+                   next->first_row++;
+                 }
+             }
+           window_adjust_pagetop (prev);
+           window_adjust_pagetop (next);
+         }
+     }
+   if (prev)
+     prev->flags |= W_UpdateWindow;
+ 
+   if (next)
+     next->flags |= W_UpdateWindow;
+ 
+   window->flags |= W_UpdateWindow;
+   window_adjust_pagetop (window);
+ }
+ 
+ /* Tile all of the windows currently displayed in the global variable
+    WINDOWS.  If argument STYLE is TILE_INTERNALS, tile windows displaying
+    internal nodes as well, otherwise do not change the height of such
+    windows. */
+ void
+ window_tile_windows (int style)
+ {
+   WINDOW *win, *last_adjusted;
+   int numwins, avail, per_win_height, leftover;
+   int do_internals;
+ 
+   numwins = avail = 0;
+   do_internals = (style == TILE_INTERNALS);
+ 
+   for (win = windows; win; win = win->next)
+     if (do_internals || !win->node ||
+         (win->node->flags & N_IsInternal) == 0)
+       {
+         avail += win->height;
+         numwins++;
+       }
+ 
+   if (numwins <= 1 || !the_screen->height)
+     return;
+ 
+   /* Find the size for each window.  Divide the size of the usable portion
+      of the screen by the number of windows. */
+   per_win_height = avail / numwins;
+   leftover = avail - (per_win_height * numwins);
+ 
+   last_adjusted = NULL;
+   for (win = windows; win; win = win->next)
+     {
+       if (do_internals || !win->node ||
+           (win->node->flags & N_IsInternal) == 0)
+         {
+           last_adjusted = win;
+           win->height = per_win_height;
+         }
+     }
+ 
+   if (last_adjusted)
+     last_adjusted->height += leftover;
+ 
+   /* Readjust the first_row of every window in the chain. */
+   for (win = windows; win; win = win->next)
+     {
+       if (win->prev)
+         win->first_row = win->prev->first_row + win->prev->height + 1;
+ 
+       window_adjust_pagetop (win);
+       win->flags |= W_UpdateWindow;
+     }
+ }
+ 
+ /* Toggle the state of line wrapping in WINDOW.  This can do a bit of fancy
+    redisplay. */
+ void
+ window_toggle_wrap (WINDOW *window)
+ {
+   if (window->flags & W_NoWrap)
+     window->flags &= ~W_NoWrap;
+   else
+     window->flags |= W_NoWrap;
+ 
+   if (window != the_echo_area)
+     {
+       char **old_starts;
+       int old_lines, old_pagetop;
+ 
+       old_starts = window->line_starts;
+       old_lines = window->line_count;
+       old_pagetop = window->pagetop;
+ 
+       calculate_line_starts (window);
+ 
+       /* Make sure that point appears within this window. */
+       window_adjust_pagetop (window);
+ 
+       /* If the pagetop hasn't changed maybe we can do some scrolling now
+          to speed up the display.  Many of the line starts will be the same,
+          so scrolling here is a very good optimization.*/
+       if (old_pagetop == window->pagetop)
+         display_scroll_line_starts
+           (window, old_pagetop, old_starts, old_lines);
+       maybe_free (old_starts);
+     }
+   window->flags |= W_UpdateWindow;
+ }
+ 
+ /* Set WINDOW to display NODE. */
+ void
+ window_set_node_of_window (WINDOW *window, NODE *node)
+ {
+   window->node = node;
+   window->pagetop = 0;
+   window->point = 0;
+   recalculate_line_starts (window);
+   window->flags |= W_UpdateWindow;
+   /* The display_pos member is nonzero if we're displaying an anchor.  */
+   window->point = node ? node->display_pos : 0;
+   window_adjust_pagetop (window);
+   window_make_modeline (window);
+ }
+ 
+ /* Delete WINDOW from the list of known windows.  If this window was the
+    active window, make the next window in the chain be the active window.
+    If the active window is the next or previous window, choose that window
+    as the recipient of the extra space.  Otherwise, prefer the next window. */
+ void
+ window_delete_window (WINDOW *window)
+ {
+   WINDOW *next, *prev, *window_to_fix;
+ 
+   next = window->next;
+   prev = window->prev;
+ 
+   /* You cannot delete the only window or a permanent window. */
+   if ((!next && !prev) || (window->flags & W_WindowIsPerm))
+     return;
+ 
+   if (next)
+     next->prev = prev;
+ 
+   if (!prev)
+     windows = next;
+   else
+     prev->next = next;
+ 
+   if (window->line_starts)
+     free (window->line_starts);
+ 
+   if (window->modeline)
+     free (window->modeline);
+ 
+   if (window == active_window)
+     {
+       /* If there isn't a next window, then there must be a previous one,
+          since we cannot delete the last window.  If there is a next window,
+          prefer to use that as the active window. */
+       if (next)
+         active_window = next;
+       else
+         active_window = prev;
+     }
+ 
+   if (next && active_window == next)
+     window_to_fix = next;
+   else if (prev && active_window == prev)
+     window_to_fix = prev;
+   else if (next)
+     window_to_fix = next;
+   else if (prev)
+     window_to_fix = prev;
+   else
+     window_to_fix = windows;
+     
+   if (window_to_fix->first_row > window->first_row)
+     {
+       int diff;
+ 
+       /* Try to adjust the visible part of the node so that as little
+          text as possible has to move. */
+       diff = window_to_fix->first_row - window->first_row;
+       window_to_fix->first_row = window->first_row;
+ 
+       window_to_fix->pagetop -= diff;
+       if (window_to_fix->pagetop < 0)
+         window_to_fix->pagetop = 0;
+     }
+ 
+   /* The `+ 1' is to offset the difference between the first_row locations.
+      See the code in window_make_window (). */
+   window_to_fix->height += window->height + 1;
+   window_to_fix->flags |= W_UpdateWindow;
+ 
+   free (window);
+ }
+ 
+ /* For every window in CHAIN, set the flags member to have FLAG set. */
+ void
+ window_mark_chain (WINDOW *chain, int flag)
+ {
+   register WINDOW *win;
+ 
+   for (win = chain; win; win = win->next)
+     win->flags |= flag;
+ }
+ 
+ /* For every window in CHAIN, clear the flags member of FLAG. */
+ void
+ window_unmark_chain (WINDOW *chain, int flag)
+ {
+   register WINDOW *win;
+ 
+   for (win = chain; win; win = win->next)
+     win->flags &= ~flag;
+ }
+ 
+ /* Return the number of characters it takes to display CHARACTER on the
+    screen at HPOS. */
+ int
+ character_width (int character, int hpos)
+ {
+   int printable_limit = 127;
+   int width = 1;
+ 
+   if (ISO_Latin_p)
+     printable_limit = 255;
+ 
+   if (character > printable_limit)
+     width = 3;
+   else if (iscntrl (character))
+     {
+       switch (character)
+         {
+         case '\r':
+         case '\n':
+           width = the_screen->width - hpos;
+           break;
+         case '\t':
+           width = ((hpos + 8) & 0xf8) - hpos;
+           break;
+         default:
+           width = 2;
+         }
+     }
+   else if (character == DEL)
+     width = 2;
+ 
+   return width;
+ }
+ 
+ /* Return the number of characters it takes to display STRING on the screen
+    at HPOS. */
+ int
+ string_width (char *string, int hpos)
+ {
+   register int i, width, this_char_width;
+ 
+   for (width = 0, i = 0; string[i]; i++)
+     {
+       /* Support ANSI escape sequences for -R.  */
+       if (raw_escapes_p
+ 	  && string[i] == '\033'
+ 	  && string[i+1] == '['
+ 	  && isdigit (string[i+2])
+ 	  && (string[i+3] == 'm'
+ 	      || (isdigit (string[i+3]) && string[i+4] == 'm')))
+ 	{
+ 	  while (string[i] != 'm')
+ 	    i++;
+ 	  this_char_width = 0;
+ 	}
+       else
+ 	this_char_width = character_width (string[i], hpos);
+       width += this_char_width;
+       hpos += this_char_width;
+     }
+   return width;
+ }
+ 
+ /* Quickly guess the approximate number of lines that NODE would
+    take to display.  This really only counts carriage returns. */
+ int
+ window_physical_lines (NODE *node)
+ {
+   register int i, lines;
+   char *contents;
+ 
+   if (!node)
+     return 0;
+ 
+   contents = node->contents;
+   for (i = 0, lines = 1; i < node->nodelen; i++)
+     if (contents[i] == '\n')
+       lines++;
+ 
+   return lines;
+ }
+ 
+ 
+ struct calc_closure {
+   WINDOW *win;
+   int line_starts_slots; /* FIXME: size_t */
+ };
+ 
+ static int
+ _calc_line_starts (void *closure, size_t line_index,
+ 		   const char *src_line,
+ 		   char *printed_line, size_t pl_index, size_t pl_count)
+ {
+   struct calc_closure *cp = closure;
+   add_pointer_to_array (src_line,
+ 			cp->win->line_count, cp->win->line_starts,
+ 			cp->line_starts_slots, 100, char *);
+   return 0;
+ }
+ 
+ void
+ calculate_line_starts (WINDOW *window)
+ {
+   struct calc_closure closure;
+ 
+   window->line_starts = NULL;
+   window->line_count = 0;
+ 
+   if (!window->node)
+     return;
+   
+   closure.win = window;
+   closure.line_starts_slots = 0;
+   process_node_text (window, window->node->contents, 0,
+ 		     _calc_line_starts, &closure);
+ }
+ 
+ /* Given WINDOW, recalculate the line starts for the node it displays. */
+ void
+ recalculate_line_starts (WINDOW *window)
+ {
+   maybe_free (window->line_starts);
+   calculate_line_starts (window);
+ }
+ 
+ 
+ /* Global variable control redisplay of scrolled windows.  If non-zero,
+    it is the desired number of lines to scroll the window in order to
+    make point visible.  A value of 1 produces smooth scrolling.  If set
+    to zero, the line containing point is centered within the window. */
+ int window_scroll_step = 1;
+ 
+ /* Adjust the pagetop of WINDOW such that the cursor point will be visible. */
+ void
+ window_adjust_pagetop (WINDOW *window)
+ {
+   register int line = 0;
+   char *contents;
+ 
+   if (!window->node)
+     return;
+ 
+   contents = window->node->contents;
+ 
+   /* Find the first printed line start which is after WINDOW->point. */
+   for (line = 0; line < window->line_count; line++)
+     {
+       char *line_start;
+ 
+       line_start = window->line_starts[line];
+ 
+       if ((line_start - contents) > window->point)
+         break;
+     }
+ 
+   /* The line index preceding the line start which is past point is the
+      one containing point. */
+   line--;
+ 
+   /* If this line appears in the current displayable page, do nothing.
+      Otherwise, adjust the top of the page to make this line visible. */
+   if ((line < window->pagetop) ||
+       (line - window->pagetop > (window->height - 1)))
+     {
+       /* The user-settable variable "scroll-step" is used to attempt
+          to make point visible, iff it is non-zero.  If that variable
+          is zero, then the line containing point is centered within
+          the window. */
+       if (window_scroll_step < window->height)
+         {
+           if ((line < window->pagetop) &&
+               ((window->pagetop - window_scroll_step) <= line))
+             window->pagetop -= window_scroll_step;
+           else if ((line - window->pagetop > (window->height - 1)) &&
+                    ((line - (window->pagetop + window_scroll_step)
+                      < window->height)))
+             window->pagetop += window_scroll_step;
+           else
+             window->pagetop = line - ((window->height - 1) / 2);
+         }
+       else
+         window->pagetop = line - ((window->height - 1) / 2);
+ 
+       if (window->pagetop < 0)
+         window->pagetop = 0;
+       window->flags |= W_UpdateWindow;
+     }
+ }
+ 
+ /* Return the index of the line containing point. */
+ int
+ window_line_of_point (WINDOW *window)
+ {
+   register int i, start = 0;
+ 
+   /* Try to optimize.  Check to see if point is past the pagetop for
+      this window, and if so, start searching forward from there. */
+   if ((window->pagetop > -1 && window->pagetop < window->line_count) &&
+       (window->line_starts[window->pagetop] - window->node->contents)
+       <= window->point)
+     start = window->pagetop;
+ 
+   for (i = start; i < window->line_count; i++)
+     {
+       if ((window->line_starts[i] - window->node->contents) > window->point)
+         break;
+     }
+ 
+   return i - 1;
+ }
+ 
+ /* Get and return the goal column for this window. */
+ int
+ window_get_goal_column (WINDOW *window)
+ {
+   if (!window->node)
+     return -1;
+ 
+   if (window->goal_column != -1)
+     return window->goal_column;
+ 
+   /* Okay, do the work.  Find the printed offset of the cursor
+      in this window. */
+   return window_get_cursor_column (window);
+ }
+ 
+ /* Get and return the printed column offset of the cursor in this window. */
+ int
+ window_get_cursor_column (WINDOW *window)
+ {
+   return window_point_to_column (window, window->point, &window->point);
+ }
+ 
+ /* Count the number of characters in LINE that precede the printed column
+    offset of GOAL. */
+ int
+ window_chars_to_goal (WINDOW *win, int goal)
+ {
+   window_compute_line_map (win);
+   if (goal >= win->line_map.used)
+     goal = win->line_map.used - 1;
+   return win->line_map.map[goal] - win->line_map.map[0];
+ }
+ 
+ /* Create a modeline for WINDOW, and store it in window->modeline. */
+ void
+ window_make_modeline (WINDOW *window)
+ {
+   register int i;
+   char *modeline;
+   char location_indicator[4];
+   int lines_remaining;
+ 
+   /* Only make modelines for those windows which have one. */
+   if (window->flags & W_InhibitMode)
+     return;
+ 
+   /* Find the number of lines actually displayed in this window. */
+   lines_remaining = window->line_count - window->pagetop;
+ 
+   if (window->pagetop == 0)
+     {
+       if (lines_remaining <= window->height)
+         strcpy (location_indicator, "All");
+       else
+         strcpy (location_indicator, "Top");
+     }
+   else
+     {
+       if (lines_remaining <= window->height)
+         strcpy (location_indicator, "Bot");
+       else
+         {
+           float pt, lc;
+           int percentage;
+ 
+           pt = (float)window->pagetop;
+           lc = (float)window->line_count;
+ 
+           percentage = 100 * (pt / lc);
+ 
+           sprintf (location_indicator, "%2d%%", percentage);
+         }
+     }
+ 
+   /* Calculate the maximum size of the information to stick in MODELINE. */
+   {
+     int modeline_len = 0;
+     char *parent = NULL, *filename = "*no file*";
+     char *nodename = "*no node*";
+     const char *update_message = NULL;
+     NODE *node = window->node;
+ 
+     if (node)
+       {
+         if (node->nodename)
+           nodename = node->nodename;
+ 
+         if (node->parent)
+           {
+             parent = filename_non_directory (node->parent);
+             modeline_len += strlen ("Subfile: ") + strlen (node->filename);
+           }
+ 
+         if (node->filename)
+           filename = filename_non_directory (node->filename);
+ 
+         if (node->flags & N_UpdateTags)
+           update_message = _("--*** Tags out of Date ***");
+       }
+ 
+     if (update_message)
+       modeline_len += strlen (update_message);
+     modeline_len += strlen (filename);
+     modeline_len += strlen (nodename);
+     modeline_len += 4;          /* strlen (location_indicator). */
+ 
+     /* 10 for the decimal representation of the number of lines in this
+        node, and the remainder of the text that can appear in the line. */
+     modeline_len += 10 + strlen (_("-----Info: (), lines ----, "));
+     modeline_len += window->width;
+ 
+     modeline = xmalloc (1 + modeline_len);
+ 
+     /* Special internal windows have no filename. */
+     if (!parent && !*filename)
+       sprintf (modeline, _("-%s---Info: %s, %d lines --%s--"),
+                (window->flags & W_NoWrap) ? "$" : "-",
+                nodename, window->line_count, location_indicator);
+     else
+       sprintf (modeline, _("-%s%s-Info: (%s)%s, %d lines --%s--"),
+                (window->flags & W_NoWrap) ? "$" : "-",
+                (node && (node->flags & N_IsCompressed)) ? "zz" : "--",
+                parent ? parent : filename,
+                nodename, window->line_count, location_indicator);
+ 
+     if (parent)
+       sprintf (modeline + strlen (modeline), _(" Subfile: %s"), filename);
+ 
+     if (update_message)
+       sprintf (modeline + strlen (modeline), "%s", update_message);
+ 
+     i = strlen (modeline);
+ 
+     if (i >= window->width)
+       modeline[window->width] = '\0';
+     else
+       {
+         while (i < window->width)
+           modeline[i++] = '-';
+         modeline[i] = '\0';
+       }
+ 
+     strcpy (window->modeline, modeline);
+     free (modeline);
+   }
+ }
+ 
+ /* Make WINDOW start displaying at PERCENT percentage of its node. */
+ void
+ window_goto_percentage (WINDOW *window, int percent)
+ {
+   int desired_line;
+ 
+   if (!percent)
+     desired_line = 0;
+   else
+     desired_line =
+       (int) ((float)window->line_count * ((float)percent / 100.0));
+ 
+   window->pagetop = desired_line;
+   window->point =
+     window->line_starts[window->pagetop] - window->node->contents;
+   window->flags |= W_UpdateWindow;
+   window_make_modeline (window);
+ }
+ 
+ /* Get the state of WINDOW, and save it in STATE. */
+ void
+ window_get_state (WINDOW *window, SEARCH_STATE *state)
+ {
+   state->node = window->node;
+   state->pagetop = window->pagetop;
+   state->point = window->point;
+ }
+ 
+ /* Set the node, pagetop, and point of WINDOW. */
+ void
+ window_set_state (WINDOW *window, SEARCH_STATE *state)
+ {
+   if (window->node != state->node)
+     window_set_node_of_window (window, state->node);
+   window->pagetop = state->pagetop;
+   window->point = state->point;
+ }
+ 
+ 
+ /* Manipulating home-made nodes.  */
+ 
+ /* A place to buffer echo area messages. */
+ static NODE *echo_area_node = NULL;
+ 
+ /* Make the node of the_echo_area be an empty one. */
+ static void
+ free_echo_area (void)
+ {
+   if (echo_area_node)
+     {
+       maybe_free (echo_area_node->contents);
+       free (echo_area_node);
+     }
+ 
+   echo_area_node = NULL;
+   window_set_node_of_window (the_echo_area, echo_area_node);
+ }
+   
+ /* Clear the echo area, removing any message that is already present.
+    The echo area is cleared immediately. */
+ void
+ window_clear_echo_area (void)
+ {
+   free_echo_area ();
+   display_update_one_window (the_echo_area);
+ }
+ 
+ /* Make a message appear in the echo area, built from FORMAT, ARG1 and ARG2.
+    The arguments are treated similar to printf () arguments, but not all of
+    printf () hair is present.  The message appears immediately.  If there was
+    already a message appearing in the echo area, it is removed. */
+ void
+ window_message_in_echo_area (const char *format, void *arg1, void *arg2)
+ {
+   free_echo_area ();
+   echo_area_node = build_message_node (format, arg1, arg2);
+   window_set_node_of_window (the_echo_area, echo_area_node);
+   display_update_one_window (the_echo_area);
+ }
+ 
+ /* Place a temporary message in the echo area built from FORMAT, ARG1
+    and ARG2.  The message appears immediately, but does not destroy
+    any existing message.  A future call to unmessage_in_echo_area ()
+    restores the old contents. */
+ static NODE **old_echo_area_nodes = NULL;
+ static int old_echo_area_nodes_index = 0;
+ static int old_echo_area_nodes_slots = 0;
+ 
+ void
+ message_in_echo_area (const char *format, void *arg1, void *arg2)
+ {
+   if (echo_area_node)
+     {
+       add_pointer_to_array (echo_area_node, old_echo_area_nodes_index,
+                             old_echo_area_nodes, old_echo_area_nodes_slots,
+                             4, NODE *);
+     }
+   echo_area_node = NULL;
+   window_message_in_echo_area (format, arg1, arg2);
+ }
+ 
+ void
+ unmessage_in_echo_area (void)
+ {
+   free_echo_area ();
+ 
+   if (old_echo_area_nodes_index)
+     echo_area_node = old_echo_area_nodes[--old_echo_area_nodes_index];
+ 
+   window_set_node_of_window (the_echo_area, echo_area_node);
+   display_update_one_window (the_echo_area);
+ }
+ 
+ /* A place to build a message. */
+ static char *message_buffer = NULL;
+ static int message_buffer_index = 0;
+ static int message_buffer_size = 0;
+ 
+ /* Ensure that there is enough space to stuff LENGTH characters into
+    MESSAGE_BUFFER. */
+ static void
+ message_buffer_resize (int length)
+ {
+   if (!message_buffer)
+     {
+       message_buffer_size = length + 1;
+       message_buffer = xmalloc (message_buffer_size);
+       message_buffer_index = 0;
+     }
+ 
+   while (message_buffer_size <= message_buffer_index + length)
+     message_buffer = (char *)
+       xrealloc (message_buffer,
+                 message_buffer_size += 100 + (2 * length));
+ }
+ 
+ /* Format MESSAGE_BUFFER with the results of printing FORMAT with ARG1 and
+    ARG2. */
+ static void
+ build_message_buffer (const char *format, void *arg1, void *arg2, void *arg3)
+ {
+   register int i, len;
+   void *args[3];
+   int arg_index = 0;
+ 
+   args[0] = arg1;
+   args[1] = arg2;
+   args[2] = arg3;
+ 
+   len = strlen (format);
+ 
+   message_buffer_resize (len);
+ 
+   for (i = 0; format[i]; i++)
+     {
+       if (format[i] != '%')
+         {
+           message_buffer[message_buffer_index++] = format[i];
+           len--;
+         }
+       else
+         {
+           char c;
+           const char *fmt_start = format + i;
+           char *fmt;
+           int fmt_len, formatted_len;
+ 	  int paramed = 0;
+ 
+ 	format_again:
+           i++;
+           while (format[i] && strchr ("-. +0123456789", format[i]))
+             i++;
+           c = format[i];
+ 
+           if (c == '\0')
+             abort ();
+ 
+ 	  if (c == '$') {
+ 	    /* position parameter parameter */
+ 	    /* better to use bprintf from bfox's metahtml? */
+ 	    arg_index = atoi(fmt_start + 1) - 1;
+ 	    if (arg_index < 0)
+ 	      arg_index = 0;
+ 	    if (arg_index >= 2)
+ 	      arg_index = 1;
+ 	    paramed = 1;
+ 	    goto format_again;
+ 	  }
+ 
+           fmt_len = format + i - fmt_start + 1;
+           fmt = xmalloc (fmt_len + 1);
+           strncpy (fmt, fmt_start, fmt_len);
+           fmt[fmt_len] = '\0';
+ 
+ 	  if (paramed) {
+ 	    /* removed positioned parameter */
+ 	    char *p;
+ 	    for (p = fmt + 1; *p && *p != '$'; p++) {
+ 	      ;
+ 	    }
+ 	    strcpy(fmt + 1, p + 1);
+ 	  }
+ 
+           /* If we have "%-98s", maybe 98 calls for a longer string.  */
+           if (fmt_len > 2)
+             {
+               int j;
+ 
+               for (j = fmt_len - 2; j >= 0; j--)
+                 if (isdigit (fmt[j]) || fmt[j] == '$')
+                   break;
+ 
+               formatted_len = atoi (fmt + j);
+             }
+           else
+             formatted_len = c == 's' ? 0 : 1; /* %s can produce empty string */
+ 
+           switch (c)
+             {
+             case '%':           /* Insert a percent sign. */
+               message_buffer_resize (len + formatted_len);
+               sprintf
+                 (message_buffer + message_buffer_index, fmt, "%");
+               message_buffer_index += formatted_len;
+               break;
+ 
+             case 's':           /* Insert the current arg as a string. */
+               {
+                 char *string;
+                 int string_len;
+ 
+                 string = (char *)args[arg_index++];
+                 string_len = strlen (string);
+ 
+                 if (formatted_len > string_len)
+                   string_len = formatted_len;
+                 message_buffer_resize (len + string_len);
+                 sprintf
+                   (message_buffer + message_buffer_index, fmt, string);
+                 message_buffer_index += string_len;
+               }
+               break;
+ 
+             case 'd':           /* Insert the current arg as an integer. */
+               {
+                 long long_val;
+                 int integer;
+ 
+                 long_val = (long)args[arg_index++];
+                 integer = (int)long_val;
+ 
+                 message_buffer_resize (len + formatted_len > 32
+                                        ? formatted_len : 32);
+                 sprintf
+                   (message_buffer + message_buffer_index, fmt, integer);
+                 message_buffer_index = strlen (message_buffer);
+               }
+               break;
+ 
+             case 'c':           /* Insert the current arg as a character. */
+               {
+                 long long_val;
+                 int character;
+ 
+                 long_val = (long)args[arg_index++];
+                 character = (int)long_val;
+ 
+                 message_buffer_resize (len + formatted_len);
+                 sprintf
+                   (message_buffer + message_buffer_index, fmt, character);
+                 message_buffer_index += formatted_len;
+               }
+               break;
+ 
+             default:
+               abort ();
+             }
+           free (fmt);
+         }
+     }
+   message_buffer[message_buffer_index] = '\0';
+ }
+ 
+ /* Build a new node which has FORMAT printed with ARG1 and ARG2 as the
+    contents. */
+ NODE *
+ build_message_node (const char *format, void *arg1, void *arg2)
+ {
+   NODE *node;
+ 
+   message_buffer_index = 0;
+   build_message_buffer (format, arg1, arg2, 0);
+ 
+   node = message_buffer_to_node ();
+   return node;
+ }
+ 
+ /* Convert the contents of the message buffer to a node. */
+ NODE *
+ message_buffer_to_node (void)
+ {
+   NODE *node;
+ 
+   node = xmalloc (sizeof (NODE));
+   node->filename = NULL;
+   node->parent = NULL;
+   node->nodename = NULL;
+   node->flags = 0;
+   node->display_pos =0;
+ 
+   /* Make sure that this buffer ends with a newline. */
+   node->nodelen = 1 + strlen (message_buffer);
+   node->contents = xmalloc (1 + node->nodelen);
+   strcpy (node->contents, message_buffer);
+   node->contents[node->nodelen - 1] = '\n';
+   node->contents[node->nodelen] = '\0';
+   return node;
+ }
+ 
+ /* Useful functions can be called from outside of window.c. */
+ void
+ initialize_message_buffer (void)
+ {
+   message_buffer_index = 0;
+ }
+ 
+ /* Print FORMAT with ARG1,2 to the end of the current message buffer. */
+ void
+ printf_to_message_buffer (const char *format, void *arg1, void *arg2, void *arg3)
+ {
+   build_message_buffer (format, arg1, arg2, arg3);
+ }
+ 
+ /* Return the current horizontal position of the "cursor" on the most
+    recently output message buffer line. */
+ int
+ message_buffer_length_this_line (void)
+ {
+   register int i;
+ 
+   if (!message_buffer_index)
+     return 0;
+ 
+   for (i = message_buffer_index; i && message_buffer[i - 1] != '\n'; i--);
+ 
+   return string_width (message_buffer + i, 0);
+ }
+ 
+ /* Pad STRING to COUNT characters by inserting blanks. */
+ int
+ pad_to (int count, char *string)
+ {
+   register int i;
+ 
+   i = strlen (string);
+ 
+   if (i >= count)
+     string[i++] = ' ';
+   else
+     {
+       while (i < count)
+         string[i++] = ' ';
+     }
+   string[i] = '\0';
+ 
+   return i;
+ }
+ 
+ 
+ #define ITER_SETBYTES(iter,n) ((iter).cur.bytes = n)
+ #define ITER_LIMIT(iter) ((iter).limit - (iter).cur.ptr)
+ 
+ /* If ITER points to an ANSI escape sequence, process it, set PLEN to its
+    length in bytes, and return 1.
+    Otherwise, return 0.
+  */
+ static int
+ ansi_escape (mbi_iterator_t iter, size_t *plen)
+ {
+   if (raw_escapes_p && *mbi_cur_ptr (iter) == '\033' && mbi_avail (iter))
+     {
+       mbi_advance (iter);
+       if (*mbi_cur_ptr (iter) == '[' &&  mbi_avail (iter))
+ 	{
+ 	  ITER_SETBYTES (iter, 1);
+ 	  mbi_advance (iter);
+ 	  if (isdigit (*mbi_cur_ptr (iter)) && mbi_avail (iter))
+ 	    {	
+ 	      ITER_SETBYTES (iter, 1);
+ 	      mbi_advance (iter);
+ 	      if (*mbi_cur_ptr (iter) == 'm')
+ 		{
+ 		  *plen = 4;
+ 		  return 1;
+ 		}
+ 	      else if (isdigit (*mbi_cur_ptr (iter)) && mbi_avail (iter))
+ 		{
+ 		  ITER_SETBYTES (iter, 1);
+ 		  mbi_advance (iter);
+ 		  if (*mbi_cur_ptr (iter) == 'm')
+ 		    {
+ 		      *plen = 5;
+ 		      return 1;
+ 		    }
+ 		}
+ 	    }
+ 	}
+     }
+ 		
+   return 0;
+ }
+ 
+ /* If ITER points to an info tag, process it, set PLEN to its
+    length in bytes, and return 1.
+    Otherwise, return 0.
+ 
+    Collected tag is processed if HANDLE!=0.
+ */
+ static int
+ info_tag (mbi_iterator_t iter, int handle, size_t *plen)
+ {
+   if (*mbi_cur_ptr (iter) == '\0' && mbi_avail (iter))
+     {
+       mbi_advance (iter);
+       if (*mbi_cur_ptr (iter) == '\b' && mbi_avail (iter))
+ 	{
+ 	  mbi_advance (iter);
+ 	  if (*mbi_cur_ptr (iter) == '[' && mbi_avail (iter))
+ 	    {
+ 	      const char *ptr, *end;
+ 	      mbi_advance (iter);
+ 	      ptr = mbi_cur_ptr (iter);
+ 	      end = memmem (ptr, ITER_LIMIT (iter), "\0\b]", 3);
+ 	      if (end)
+ 		{
+ 		  size_t len = end - ptr;
+ 
+ 		  if (handle)
+ 		    {
+ 		      char *elt = xmalloc (len + 1);
+ 		      memcpy (elt, ptr, len);
+ 		      elt[len] = 0;
+ 		      handle_tag (elt);
+ 		      free (elt);
+ 		    }
+ 		  *plen = len + 6;
+ 		  return 1;
+ 		}
+ 	    }
+ 	}
+     }
+ 
+   return 0;
+ }
+ 
+ /* Process contents of the current node from WIN, beginning from START, using
+    callback function FUN.
+ 
+    FUN is called for every line collected from the node. Its arguments:
+ 
+      int (*fun) (void *closure, size_t line_no,
+                   const char *src_line, char *prt_line,
+ 		  size_t prt_bytes, size_t prt_chars)
+ 
+      closure  -- An opaque pointer passed as 5th parameter to process_node_text;
+      line_no  -- Number of processed line (starts from 0);
+      src_line -- Pointer to the source line (unmodified);
+      prt_line -- Collected line contents, ready for output;
+      prt_bytes -- Number of bytes in prt_line;
+      prt_chars -- Number of characters in prt_line.
+ 
+    If FUN returns non zero, process_node_text stops processing and returns
+    immediately.
+ 
+    If DO_TAGS is not zero, process info tags, otherwise ignore them.
+ 
+    Return value: number of lines processed.
+ */
+    
+ size_t
+ process_node_text (WINDOW *win, char *start,
+ 		   int do_tags,
+ 		   int (*fun) (void *, size_t, const char *, char *, size_t, size_t),
+ 		   void *closure)
+ {
+   char *printed_line;      /* Buffer for a printed line. */
+   size_t pl_count = 0;     /* Number of *characters* written to PRINTED_LINE */
+   size_t pl_index = 0;     /* Index into PRINTED_LINE. */
+   size_t in_index = 0;
+   size_t line_index = 0;   /* Number of lines done so far. */
+   size_t allocated_win_width;
+   mbi_iterator_t iter;
+   
+   /* Print each line in the window into our local buffer, and then
+      check the contents of that buffer against the display.  If they
+      differ, update the display. */
+   allocated_win_width = win->width + 1;
+   printed_line = xmalloc (allocated_win_width);
+ 
+   for (mbi_init (iter, start, 
+ 		 win->node->contents + win->node->nodelen - start),
+ 	 pl_count = 0;
+        mbi_avail (iter);
+        mbi_advance (iter))
+     {
+       const char *carried_over_ptr;
+       size_t carried_over_len, carried_over_count;
+       const char *cur_ptr = mbi_cur_ptr (iter);
+       int cur_len = mb_len (mbi_cur (iter));
+       int replen;
+       int delim = 0;
+       int rc;
+ 
+       if (mb_isprint (mbi_cur (iter)))
+ 	{
+ 	  replen = 1;
+ 	}
+       else if (cur_len == 1)
+ 	{
+           if (*cur_ptr == '\r' || *cur_ptr == '\n')
+             {
+               replen = win->width - pl_count;
+ 	      delim = 1;
+             }
+ 	  else if (ansi_escape (iter, &cur_len))
+ 	    {
+ 	      replen = 0;
+ 	      ITER_SETBYTES (iter, cur_len);
+ 	    }
+ 	  else if (info_tag (iter, do_tags, &cur_len)) 
+ 	    {
+ 	      ITER_SETBYTES (iter, cur_len);
+ 	      continue;
+ 	    }
+ 	  else
+ 	    {
+ 	      if (*cur_ptr == '\t')
+ 		delim = 1;
+               cur_ptr = printed_representation (cur_ptr, cur_len, pl_count,
+ 						&cur_len);
+ 	      replen = cur_len;
+             }
+         }
+       else if (show_malformed_multibyte_p || mbi_cur (iter).wc_valid)
+ 	{
+ 	  /* FIXME: I'm not sure it's the best way to deal with unprintable
+ 	     multibyte characters */
+ 	  cur_ptr = printed_representation (cur_ptr, cur_len, pl_count,
+ 					    &cur_len);
+ 	  replen = cur_len;
+ 	}
+ 
+       /* Ensure there is enough space in the buffer */
+       while (pl_index + cur_len + 2 > allocated_win_width - 1)
+ 	printed_line = x2realloc (printed_line, &allocated_win_width);
+ 
+       /* If this character can be printed without passing the width of
+          the line, then stuff it into the line. */
+       if (pl_count + replen < win->width)
+         {
+ 	  int i;
+ 	  
+ 	  for (i = 0; i < cur_len; i++)
+ 	    printed_line[pl_index++] = cur_ptr[i];
+ 	  pl_count += replen;
+ 	  in_index += mb_len (mbi_cur (iter));
+         }
+       else
+ 	{
+           /* If this character cannot be printed in this line, we have
+              found the end of this line as it would appear on the screen.
+              Carefully print the end of the line, and then compare. */
+           if (delim)
+             {
+               printed_line[pl_index] = '\0';
+               carried_over_ptr = NULL;
+             }
+ 	  else
+ 	    {
+               /* The printed representation of this character extends into
+                  the next line. */
+ 
+ 	      carried_over_count = replen;
+ 	      if (replen == 1)
+ 		{
+ 		  /* It is a single (possibly multibyte) character */
+ 		  /* FIXME? */
+ 		  carried_over_ptr = cur_ptr;
+ 		  carried_over_len = cur_len;
+ 		}
+ 	      else
+ 		{
+ 		  int i;
+ 		  
+ 		  /* Remember the offset of the last character printed out of
+ 		     REP so that we can carry the character over to the next
+ 		     line. */
+ 		  for (i = 0; pl_count < (win->width - 1);
+ 		       pl_count++)
+ 		    printed_line[pl_index++] = cur_ptr[i++];
+ 
+ 		  carried_over_ptr = cur_ptr + i;
+ 		  carried_over_len = cur_len;
+ 		}
+ 
+               /* If printing the last character in this window couldn't
+                  possibly cause the screen to scroll, place a backslash
+                  in the rightmost column. */
+               if (1 + line_index + win->first_row < the_screen->height)
+                 {
+                   if (win->flags & W_NoWrap)
+                     printed_line[pl_index++] = '$';
+                   else
+                     printed_line[pl_index++] = '\\';
+ 		  pl_count++;
+                 }
+               printed_line[pl_index] = '\0';
+             }
+ 
+ 	  rc = fun (closure, line_index, mbi_cur_ptr (iter) - in_index,
+ 		    printed_line, pl_index, pl_count);
+ 
+           ++line_index;
+ 
+ 	  /* Reset all data to the start of the line. */
+ 	  pl_index = 0;
+ 	  pl_count = 0;
+ 	  in_index = 0;
+ 
+ 	  if (rc)
+ 	    break;
+ 	  
+           /* If there are bytes carried over, stuff them
+              into the buffer now. */
+           if (carried_over_ptr)
+ 	    {
+ 	      for (; carried_over_len;
+ 		   carried_over_len--, carried_over_ptr++, pl_index++)
+ 		printed_line[pl_index] = *carried_over_ptr;
+ 	      pl_count += carried_over_count;
+ 	    }
+ 	
+           /* If this window has chosen not to wrap lines, skip to the end
+              of the physical line in the buffer, and start a new line here. */
+           if (pl_index && win->flags & W_NoWrap)
+             {
+ 	      for (; mbi_avail (iter); mbi_advance (iter))
+ 		if (mb_len (mbi_cur (iter)) == 1
+ 		    && *mbi_cur_ptr (iter) == '\n')
+ 		  break;
+ 
+ 	      pl_index = 0;
+ 	      pl_count = 0;
+ 	      in_index = 0;
+ 	      printed_line[0] = 0;
+ 	    }
+ 	}
+     }
+ 
+   if (pl_count)
+     fun (closure, line_index, mbi_cur_ptr (iter) - in_index,
+ 	 printed_line, pl_index, pl_count);
+ 
+   free (printed_line);
+   return line_index;
+ }
+ 
+ void
+ clean_manpage (char *manpage)
+ {
+   mbi_iterator_t iter;
+   size_t len = strlen (manpage);
+   char *newpage = xmalloc (len + 1);
+   char *np = newpage;
+   int prev_len = 0;
+   
+   for (mbi_init (iter, manpage, len);
+        mbi_avail (iter);
+        mbi_advance (iter))
+     {
+       const char *cur_ptr = mbi_cur_ptr (iter);
+       int cur_len = mb_len (mbi_cur (iter));
+ 
+       if (cur_len == 1)
+ 	{
+ 	  if (*cur_ptr == '\b' || *cur_ptr == '\f')
+ 	    {
+ 	      if (np >= newpage + prev_len)
+ 		np -= prev_len;
+ 	    }
+ 	  else if (ansi_escape (iter, &cur_len))
+ 	    {
+ 	      memcpy (np, cur_ptr, cur_len);
+ 	      np += cur_len;
+ 	      ITER_SETBYTES (iter, cur_len);
+ 	    }
+ 	  else if (show_malformed_multibyte_p || mbi_cur (iter).wc_valid)
+ 	    *np++ = *cur_ptr;
+ 	}
+       else
+ 	{
+ 	  memcpy (np, cur_ptr, cur_len);
+ 	  np += cur_len;
+ 	}
+       prev_len = cur_len;
+     }
+   *np = 0;
+   
+   strcpy (manpage, newpage);
+   free (newpage);
+ }
+ 
+ static void
+ line_map_init (LINE_MAP *map, NODE *node, int line)
+ {
+   map->node = node;
+   map->nline = line;
+   map->used = 0;
+ }
+ 
+ static void
+ line_map_add (LINE_MAP *map, long pos)
+ {
+   if (map->used == map->size)
+     {
+       if (map->size == 0)				       
+ 	map->size = 80; /* Initial allocation */	       
+       map->map = x2nrealloc (map->map,
+ 			     &map->size,
+ 			     sizeof (map->map[0]));
+     }
+ 
+   map->map[map->used++] = pos;
+ }
+ 
+ /* Initialize (clear) WIN's line map. */
+ void
+ window_line_map_init (WINDOW *win)
+ {
+   win->line_map.used = 0;
+ }
+ 
+ /* Scan the line number LINE in WIN.  If PHYS is true, stop scanning at
+    the end of physical line, i.e. at the newline character.  Otherwise,
+    stop it at the end of logical line.
+ 
+    If FUN is supplied, call it for each processed multibyte character.
+    Arguments of FUN are
+ 
+      closure  -  Function-specific data passed as 5th argument to
+                  window_scan_line;
+      cpos     -  Current point value;
+      replen   -  Size of screen representation of this character, in
+                  columns.  This value may be 0 (for ANSI sequences and
+ 		 info tags), or > 1 (for tabs).
+  */
+ int
+ window_scan_line (WINDOW *win, int line, int phys,
+ 		  void (*fun) (void *closure, long cpos, int replen),
+ 		  void *closure)
+ {
+   mbi_iterator_t iter;
+   long cpos = win->line_starts[line] - win->node->contents;
+   int delim = 0;
+   char *endp;
+   
+   if (!phys && line + 1 < win->line_count)
+     endp = win->line_starts[line + 1];
+   else
+     endp = win->node->contents + win->node->nodelen;
+   
+   for (mbi_init (iter,
+ 		 win->line_starts[line], 
+ 		 win->node->contents + win->node->nodelen -
+ 		   win->line_starts[line]);
+        !delim && mbi_avail (iter);
+        mbi_advance (iter))
+     {
+       const char *cur_ptr = mbi_cur_ptr (iter);
+       int cur_len = mb_len (mbi_cur (iter));
+       int replen;
+ 
+       if (cur_ptr >= endp)
+ 	break;
+       
+       if (mb_isprint (mbi_cur (iter)))
+ 	{
+ 	  replen = 1;
+ 	}
+       else if (cur_len == 1)
+ 	{
+           if (*cur_ptr == '\r' || *cur_ptr == '\n')
+             {
+               replen = 1;
+ 	      delim = 1;
+             }
+ 	  else if (ansi_escape (iter, &cur_len))
+ 	    {
+ 	      ITER_SETBYTES (iter, cur_len);
+ 	      replen = 0;
+ 	    }
+ 	  else if (info_tag (iter, 0, &cur_len)) 
+ 	    {
+ 	      ITER_SETBYTES (iter, cur_len);
+ 	      cpos += cur_len;
+ 	      replen = 0;
+ 	    }
+ 	  else
+ 	    {
+               printed_representation (cur_ptr, cur_len,
+ 				      win->line_map.used,
+ 				      &replen);
+             }
+         }
+       else
+ 	{
+ 	  /* FIXME: I'm not sure it's the best way to deal with unprintable
+ 	     multibyte characters */
+ 	  printed_representation (cur_ptr, cur_len, win->line_map.used,
+ 				  &replen);
+ 	}
+ 
+       if (fun)
+ 	fun (closure, cpos, replen);
+       cpos += cur_len;
+     }
+   return cpos;
+ }
+ 
+ static void
+ add_line_map (void *closure, long cpos, int replen)
+ {
+   WINDOW *win = closure;
+ 
+   while (replen--)
+     line_map_add (&win->line_map, cpos);
+ }
+ 
+ /* Compute the line map for the current line in WIN. */
+ void
+ window_compute_line_map (WINDOW *win)
+ {
+   int line = window_line_of_point (win);
+ 
+   if (win->line_map.node == win->node && win->line_map.nline == line
+       && win->line_map.used)
+     return;
+   line_map_init (&win->line_map, win->node, line);
+   if (win->node)
+     window_scan_line (win, line, 0, add_line_map, win);
+ }
+ 
+ /* Return offset of the end of current physical line.
+  */
+ long
+ window_end_of_line (WINDOW *win)
+ {
+   int line = window_line_of_point (win);
+   if (win->node)
+     return window_scan_line (win, line, 1, NULL, NULL) - 1;
+   return 0;
+ }
+ 
+ /* Translate the value of POINT into a column number.  If NP is given
+    store there the value of point corresponding to the beginning of a
+    multibyte character in this column.
+  */
+ int
+ window_point_to_column (WINDOW *win, long point, long *np)
+ {
+   int i;
+   
+   window_compute_line_map (win);
+   if (!win->line_map.map || point < win->line_map.map[0])
+     return 0;
+   for (i = 0; i < win->line_map.used; i++)
+     if (win->line_map.map[i] > point)
+       break;
+   if (np)
+     *np = win->line_map.map[i-1];
+   return i - 1;
+ }
+       
diff -Nrc2 texinfo-4.12/info/window.h texinfo-4.13/info/window.h
*** texinfo-4.12/info/window.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/info/window.h	Thu Sep 18 11:31:59 2008
***************
*** 0 ****
--- 1,270 ----
+ /* window.h -- Structure and flags used in manipulating Info windows.
+    $Id: window.h,v 1.12 2008/09/13 10:02:01 gray Exp $
+ 
+    This file is part of GNU Info, a program for reading online documentation
+    stored in Info format.
+ 
+    Copyright (C) 1993, 1997, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef INFO_WINDOW_H
+ #define INFO_WINDOW_H
+ 
+ #include "infomap.h"
+ #include "nodes.h"
+ 
+ /* Smallest number of visible lines in a window.  The actual height is
+    always one more than this number because each window has a modeline. */
+ #define WINDOW_MIN_HEIGHT 2
+ 
+ /* Smallest number of screen lines that can be used to fully present a
+    window.  This number includes the modeline of the window. */
+ #define WINDOW_MIN_SIZE (WINDOW_MIN_HEIGHT + 1)
+ 
+ /* A line map structure keeps a table of point values corresponding to
+    column offsets within the current line.  It is used to convert
+    point values into columns on screen and vice versa. */
+ typedef struct line_map_struct
+ {
+   NODE *node;      /* Node to which this line pertains */
+   size_t nline;    /* Line number for which the map is computed. */
+   size_t size;     /* Number of elements map can accomodate */
+   size_t used;     /* Number of used map slots */
+   long *map;       /* The map itself */
+ } LINE_MAP;
+ 
+ /* The exact same elements are used within the WINDOW_STATE structure and a
+    subsection of the WINDOW structure.  We could define a structure which
+    contains this elements, and include that structure in each of WINDOW_STATE
+    and WINDOW.  But that would lead references in the code such as
+    window->state->node which we would like to avoid.  Instead, we #define the
+    elements here, and simply include the define in both data structures. Thus,
+    if you need to change window state information, here is where you would
+    do it.  NB> The last element does NOT end with a semi-colon. */
+ #define WINDOW_STATE_DECL \
+    NODE *node;          /* The node displayed in this window. */ \
+    int pagetop;         /* LINE_STARTS[PAGETOP] is first line in WINDOW. */ \
+    long point           /* Offset within NODE of the cursor position. */
+ 
+ /* Structure which defines a window.  Windows are doubly linked, next
+    and prev. The list of windows is kept on WINDOWS.  The structure member
+    window->height is the total height of the window.  The position location
+    (0, window->height + window->first_row) is the first character of this
+    windows modeline.  The number of lines that can be displayed in a window
+    is equal to window->height - 1. */
+ typedef struct window_struct
+ {
+   struct window_struct *next;      /* Next window in this chain. */
+   struct window_struct *prev;      /* Previous window in this chain. */
+   int width;            /* Width of this window. */
+   int height;           /* Height of this window. */
+   int first_row;        /* Offset of the first line in the_screen. */
+   int goal_column;      /* The column we would like the cursor to appear in. */
+   Keymap keymap;        /* Keymap used to read commands in this window. */
+   WINDOW_STATE_DECL;    /* Node, pagetop and point. */
+   LINE_MAP line_map;    /* Current line map */
+   char *modeline;       /* Calculated text of the modeline for this window. */
+   char **line_starts;   /* Array of printed line starts for this node. */
+   int line_count;       /* Number of lines appearing in LINE_STARTS. */
+   int flags;            /* See below for details. */
+ } WINDOW;
+ 
+ typedef struct {
+   WINDOW_STATE_DECL;            /* What gets saved. */
+ } WINDOW_STATE;
+ 
+ /* Structure defining the current state of an incremental search. */
+ typedef struct {
+   WINDOW_STATE_DECL;    /* The node, pagetop and point. */
+   int search_index;     /* Offset of the last char in the search string. */
+   int direction;        /* The direction that this search is heading in. */
+   int failing;          /* Whether or not this search failed. */
+ } SEARCH_STATE;
+ 
+ #define W_UpdateWindow  0x01    /* WINDOW needs updating. */
+ #define W_WindowIsPerm  0x02    /* This WINDOW is a permanent object. */
+ #define W_WindowVisible 0x04    /* This WINDOW is currently visible. */
+ #define W_InhibitMode   0x08    /* This WINDOW has no modeline. */
+ #define W_NoWrap        0x10    /* Lines do not wrap in this window. */
+ #define W_InputWindow   0x20    /* Window accepts input. */
+ #define W_TempWindow    0x40    /* Window is less important. */
+ 
+ extern WINDOW *windows;         /* List of visible Info windows. */
+ extern WINDOW *active_window;   /* The currently active window. */
+ extern WINDOW *the_screen;      /* The Info screen is just another window. */
+ extern WINDOW *the_echo_area;   /* THE_ECHO_AREA is a window in THE_SCREEN. */
+ 
+ extern int show_malformed_multibyte_p; /* Show malformed multibyte sequences */
+ 
+ /* Global variable control redisplay of scrolled windows.  If non-zero, it
+    is the desired number of lines to scroll the window in order to make
+    point visible.  A user might set this to 1 for smooth scrolling.  If
+    set to zero, the line containing point is centered within the window. */
+ extern int window_scroll_step;
+ 
+  /* Make the modeline member for WINDOW. */
+ extern void window_make_modeline (WINDOW *window);
+ 
+ /* Initalize the window system by creating THE_SCREEN and THE_ECHO_AREA.
+    Create the first window ever, and make it permanent.
+    You pass WIDTH and HEIGHT; the dimensions of the total screen size. */
+ extern void window_initialize_windows (int width, int height);
+ 
+ /* Make a new window showing NODE, and return that window structure.
+    The new window is made to be the active window.  If NODE is passed
+    as NULL, then show the node showing in the active window.  If the
+    window could not be made return a NULL pointer.  The active window
+    is not changed.*/
+ extern WINDOW *window_make_window (NODE *node);
+ 
+ /* Delete WINDOW from the list of known windows.  If this window was the
+    active window, make the next window in the chain be the active window,
+    or the previous window in the chain if there is no next window. */
+ extern void window_delete_window (WINDOW *window);
+ 
+ /* A function to call when the screen changes size, and some windows have
+    to get deleted.  The function is called with the window to be deleted
+    as an argument, and it can't do anything about the window getting deleted;
+    it can only clean up dangling references to that window. */
+ extern VFunction *window_deletion_notifier;
+ 
+ /* Set WINDOW to display NODE. */
+ extern void window_set_node_of_window (WINDOW *window, NODE *node);
+ 
+ /* Tell the window system that the size of the screen has changed.  This
+    causes lots of interesting things to happen.  The permanent windows
+    are resized, as well as every visible window.  You pass WIDTH and HEIGHT;
+    the dimensions of the total screen size. */
+ extern void window_new_screen_size (int width, int height);
+ 
+ /* Change the height of WINDOW by AMOUNT.  This also automagically adjusts
+    the previous and next windows in the chain.  If there is only one user
+    window, then no change takes place. */
+ extern void window_change_window_height (WINDOW *window, int amount);
+ 
+ /* Adjust the pagetop of WINDOW such that the cursor point will be visible. */
+ extern void window_adjust_pagetop (WINDOW *window);
+ 
+ /* Tile all of the windows currently displayed in the global variable
+    WINDOWS.  If argument DO_INTERNALS is non-zero, tile windows displaying
+    internal nodes as well. */
+ #define DONT_TILE_INTERNALS 0
+ #define TILE_INTERNALS      1
+ extern void window_tile_windows (int style);
+ 
+ /* Toggle the state of line wrapping in WINDOW.  This can do a bit of fancy
+    redisplay. */
+ extern void window_toggle_wrap (WINDOW *window);
+ 
+ /* For every window in CHAIN, set the flags member to have FLAG set. */
+ extern void window_mark_chain (WINDOW *chain, int flag);
+ 
+ /* For every window in CHAIN, clear the flags member of FLAG. */
+ extern void window_unmark_chain (WINDOW *chain, int flag);
+ 
+ /* Make WINDOW start displaying at PERCENT percentage of its node. */
+ extern void window_goto_percentage (WINDOW *window, int percent);
+ 
+ /* Build a new node which has FORMAT printed with ARG1 and ARG2 as the
+    contents. */
+ extern NODE *build_message_node (const char *format, void *arg1, void *arg2);
+ 
+ /* Useful functions can be called from outside of window.c. */
+ extern void initialize_message_buffer (void);
+ 
+ /* Print FORMAT with ARG1,2 to the end of the current message buffer. */
+ extern void printf_to_message_buffer (const char *format, void *arg1, void *arg2,
+     void *arg3);
+ 
+ /* Convert the contents of the message buffer to a node. */
+ extern NODE *message_buffer_to_node (void);
+ 
+ /* Return the length of the most recently printed line in message buffer. */
+ extern int message_buffer_length_this_line (void);
+ 
+ /* Pad STRING to COUNT characters by inserting blanks. */
+ extern int pad_to (int count, char *string);
+ 
+ /* Make a message appear in the echo area, built from FORMAT, ARG1 and ARG2.
+    The arguments are treated similar to printf () arguments, but not all of
+    printf () hair is present.  The message appears immediately.  If there was
+    already a message appearing in the echo area, it is removed. */
+ extern void window_message_in_echo_area (const char *format, void *arg1, void *arg2);
+ 
+ /* Place a temporary message in the echo area built from FORMAT, ARG1
+    and ARG2.  The message appears immediately, but does not destroy
+    any existing message.  A future call to unmessage_in_echo_area ()
+    restores the old contents. */
+ extern void message_in_echo_area (const char *format, void *arg1, void *arg2);
+ extern void unmessage_in_echo_area (void);
+ 
+ /* Clear the echo area, removing any message that is already present.
+    The echo area is cleared immediately. */
+ extern void window_clear_echo_area (void);
+ 
+ /* Quickly guess the approximate number of lines to that NODE would
+    take to display.  This really only counts carriage returns. */
+ extern int window_physical_lines (NODE *node);
+ 
+ /* Calculate a list of line starts for the node belonging to WINDOW.  The line
+    starts are pointers to the actual text within WINDOW->NODE. */
+ extern void calculate_line_starts (WINDOW *window);
+ 
+ /* Given WINDOW, recalculate the line starts for the node it displays. */
+ extern void recalculate_line_starts (WINDOW *window);
+ 
+ /* Return the number of characters it takes to display CHARACTER on the
+    screen at HPOS. */
+ extern int character_width (int character, int hpos);
+ 
+ /* Return the number of characters it takes to display STRING on the
+    screen at HPOS. */
+ extern int string_width (char *string, int hpos);
+ 
+ /* Return the index of the line containing point. */
+ extern int window_line_of_point (WINDOW *window);
+ 
+ /* Get and return the goal column for this window. */
+ extern int window_get_goal_column (WINDOW *window);
+ 
+ /* Get and return the printed column offset of the cursor in this window. */
+ extern int window_get_cursor_column (WINDOW *window);
+ 
+ /* Get and Set the node, pagetop, and point of WINDOW. */
+ extern void window_get_state (WINDOW *window, SEARCH_STATE *state);
+ extern void window_set_state (WINDOW *window, SEARCH_STATE *state);
+ 
+ /* Count the number of characters in current line of WIN that precede
+    the printed column offset of GOAL. */
+ extern int window_chars_to_goal (WINDOW *win, int goal);
+ 
+ extern size_t process_node_text
+         (WINDOW *win, char *start, int do_tags,
+          int (*fun) (void *, size_t, const char *, char *, size_t, size_t),
+ 	 void *closure);
+ 
+ void clean_manpage (char *manpage);
+ 
+ extern void window_compute_line_map (WINDOW *win);
+ 
+ int window_point_to_column (WINDOW *win, long point, long *np);
+ 
+ void window_line_map_init (WINDOW *win);
+ 
+ long window_end_of_line (WINDOW *win);
+ 
+ #endif /* not INFO_WINDOW_H */
diff -Nrc2 texinfo-4.12/install-info/Makefile.am texinfo-4.13/install-info/Makefile.am
*** texinfo-4.12/install-info/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/Makefile.am	Tue Jan  1 17:36:16 2008
***************
*** 0 ****
--- 1,31 ----
+ # $Id: Makefile.am,v 1.1 2008/01/02 01:36:16 karl Exp $
+ # Makefile.am for texinfo/install-info.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ SUBDIRS = tests
+ bin_PROGRAMS = ginstall-info
+ 
+ # Use `ginstall-info' in the definition of PROGRAMS and in dependencies
+ # because automake generates an install-info target in every Makefile
+ # (this is easier than changing Automake.)
+ ginstall_info_SOURCES = install-info.c
+ 
+ # Transform `ginstall-info' to `install-info' before applying any
+ # user-specified name transformations.
+ transform = s/ginstall-info/install-info/; $(program_transform_name)
+ 
+ localedir = $(datadir)/locale
+ AM_CPPFLAGS = 					\
+   -I$(top_srcdir)				\
+   -I$(top_srcdir)/gnulib/lib			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\"
+ LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL)
diff -Nrc2 texinfo-4.12/install-info/Makefile.in texinfo-4.13/install-info/Makefile.in
*** texinfo-4.12/install-info/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/Makefile.in	Thu Sep 18 11:46:24 2008
***************
*** 0 ****
--- 1,816 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # $Id: Makefile.am,v 1.1 2008/01/02 01:36:16 karl Exp $
+ # Makefile.am for texinfo/install-info.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ bin_PROGRAMS = ginstall-info$(EXEEXT)
+ subdir = install-info
+ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ am__installdirs = "$(DESTDIR)$(bindir)"
+ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+ PROGRAMS = $(bin_PROGRAMS)
+ am_ginstall_info_OBJECTS = install-info.$(OBJEXT)
+ ginstall_info_OBJECTS = $(am_ginstall_info_OBJECTS)
+ ginstall_info_LDADD = $(LDADD)
+ am__DEPENDENCIES_1 =
+ ginstall_info_DEPENDENCIES = ../lib/libtxi.a \
+ 	$(top_builddir)/gnulib/lib/libgnu.a $(am__DEPENDENCIES_1)
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(ginstall_info_SOURCES)
+ DIST_SOURCES = $(ginstall_info_SOURCES)
+ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ 	html-recursive info-recursive install-data-recursive \
+ 	install-dvi-recursive install-exec-recursive \
+ 	install-html-recursive install-info-recursive \
+ 	install-pdf-recursive install-ps-recursive install-recursive \
+ 	installcheck-recursive installdirs-recursive pdf-recursive \
+ 	ps-recursive uninstall-recursive
+ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+   distclean-recursive maintainer-clean-recursive
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = $(SUBDIRS)
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ 
+ # Transform `ginstall-info' to `install-info' before applying any
+ # user-specified name transformations.
+ transform = s/ginstall-info/install-info/; $(program_transform_name)
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = $(datadir)/locale
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ SUBDIRS = tests
+ 
+ # Use `ginstall-info' in the definition of PROGRAMS and in dependencies
+ # because automake generates an install-info target in every Makefile
+ # (this is easier than changing Automake.)
+ ginstall_info_SOURCES = install-info.c
+ AM_CPPFLAGS = \
+   -I$(top_srcdir)				\
+   -I$(top_srcdir)/gnulib/lib			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\"
+ 
+ LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL)
+ all: all-recursive
+ 
+ .SUFFIXES:
+ .SUFFIXES: .c .o .obj
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  install-info/Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnu  install-info/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+ 	  ; then \
+ 	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ 	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ 	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ 	  else :; fi; \
+ 	done
+ 
+ uninstall-binPROGRAMS:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ 	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ 	done
+ 
+ clean-binPROGRAMS:
+ 	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+ ginstall-info$(EXEEXT): $(ginstall_info_OBJECTS) $(ginstall_info_DEPENDENCIES) 
+ 	@rm -f ginstall-info$(EXEEXT)
+ 	$(LINK) $(ginstall_info_OBJECTS) $(ginstall_info_LDADD) $(LIBS)
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+ 
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/install-info.Po@am__quote@
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ 
+ # This directory's subdirectories are mostly independent; you can cd
+ # into them and run `make' without going through this Makefile.
+ # To change the values of `make' variables: instead of editing Makefiles,
+ # (1) if the variable is set in `config.status', edit `config.status'
+ #     (which will cause the Makefiles to be regenerated when you run `make');
+ # (2) otherwise, pass the desired values on the `make' command line.
+ $(RECURSIVE_TARGETS):
+ 	@failcom='exit 1'; \
+ 	for f in x $$MAKEFLAGS; do \
+ 	  case $$f in \
+ 	    *=* | --[!k]*);; \
+ 	    *k*) failcom='fail=yes';; \
+ 	  esac; \
+ 	done; \
+ 	dot_seen=no; \
+ 	target=`echo $@ | sed s/-recursive//`; \
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  echo "Making $$target in $$subdir"; \
+ 	  if test "$$subdir" = "."; then \
+ 	    dot_seen=yes; \
+ 	    local_target="$$target-am"; \
+ 	  else \
+ 	    local_target="$$target"; \
+ 	  fi; \
+ 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ 	  || eval $$failcom; \
+ 	done; \
+ 	if test "$$dot_seen" = "no"; then \
+ 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ 	fi; test -z "$$fail"
+ 
+ $(RECURSIVE_CLEAN_TARGETS):
+ 	@failcom='exit 1'; \
+ 	for f in x $$MAKEFLAGS; do \
+ 	  case $$f in \
+ 	    *=* | --[!k]*);; \
+ 	    *k*) failcom='fail=yes';; \
+ 	  esac; \
+ 	done; \
+ 	dot_seen=no; \
+ 	case "$@" in \
+ 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ 	  *) list='$(SUBDIRS)' ;; \
+ 	esac; \
+ 	rev=''; for subdir in $$list; do \
+ 	  if test "$$subdir" = "."; then :; else \
+ 	    rev="$$subdir $$rev"; \
+ 	  fi; \
+ 	done; \
+ 	rev="$$rev ."; \
+ 	target=`echo $@ | sed s/-recursive//`; \
+ 	for subdir in $$rev; do \
+ 	  echo "Making $$target in $$subdir"; \
+ 	  if test "$$subdir" = "."; then \
+ 	    local_target="$$target-am"; \
+ 	  else \
+ 	    local_target="$$target"; \
+ 	  fi; \
+ 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ 	  || eval $$failcom; \
+ 	done && test -z "$$fail"
+ tags-recursive:
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ 	done
+ ctags-recursive:
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ 	done
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	mkid -fID $$unique
+ tags: TAGS
+ 
+ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	here=`pwd`; \
+ 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ 	  include_option=--etags-include; \
+ 	  empty_fix=.; \
+ 	else \
+ 	  include_option=--include; \
+ 	  empty_fix=; \
+ 	fi; \
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  if test "$$subdir" = .; then :; else \
+ 	    test ! -f $$subdir/TAGS || \
+ 	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ 	  fi; \
+ 	done; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ 	  test -n "$$unique" || unique=$$empty_fix; \
+ 	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ 	    $$tags $$unique; \
+ 	fi
+ ctags: CTAGS
+ CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ 	     $$tags $$unique
+ 
+ GTAGS:
+ 	here=`$(am__cd) $(top_builddir) && pwd` \
+ 	  && cd $(top_srcdir) \
+ 	  && gtags -i $(GTAGS_ARGS) $$here
+ 
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ 	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ 	  if test "$$subdir" = .; then :; else \
+ 	    test -d "$(distdir)/$$subdir" \
+ 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+ 	    || exit 1; \
+ 	    distdir=`$(am__cd) $(distdir) && pwd`; \
+ 	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ 	    (cd $$subdir && \
+ 	      $(MAKE) $(AM_MAKEFLAGS) \
+ 	        top_distdir="$$top_distdir" \
+ 	        distdir="$$distdir/$$subdir" \
+ 		am__remove_distdir=: \
+ 		am__skip_length_check=: \
+ 	        distdir) \
+ 	      || exit 1; \
+ 	  fi; \
+ 	done
+ check-am: all-am
+ check: check-recursive
+ all-am: Makefile $(PROGRAMS)
+ installdirs: installdirs-recursive
+ installdirs-am:
+ 	for dir in "$(DESTDIR)$(bindir)"; do \
+ 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: install-recursive
+ install-exec: install-exec-recursive
+ install-data: install-data-recursive
+ uninstall: uninstall-recursive
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-recursive
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ clean: clean-recursive
+ 
+ clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+ 
+ distclean: distclean-recursive
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-compile distclean-generic \
+ 	distclean-tags
+ 
+ dvi: dvi-recursive
+ 
+ dvi-am:
+ 
+ html: html-recursive
+ 
+ info: info-recursive
+ 
+ info-am:
+ 
+ install-data-am:
+ 
+ install-dvi: install-dvi-recursive
+ 
+ install-exec-am: install-binPROGRAMS
+ 
+ install-html: install-html-recursive
+ 
+ install-info: install-info-recursive
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-recursive
+ 
+ install-ps: install-ps-recursive
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-recursive
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-recursive
+ 
+ mostlyclean-am: mostlyclean-compile mostlyclean-generic
+ 
+ pdf: pdf-recursive
+ 
+ pdf-am:
+ 
+ ps: ps-recursive
+ 
+ ps-am:
+ 
+ uninstall-am: uninstall-binPROGRAMS
+ 
+ .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ 	install-strip
+ 
+ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ 	all all-am check check-am clean clean-binPROGRAMS \
+ 	clean-generic ctags ctags-recursive distclean \
+ 	distclean-compile distclean-generic distclean-tags distdir dvi \
+ 	dvi-am html html-am info info-am install install-am \
+ 	install-binPROGRAMS install-data install-data-am install-dvi \
+ 	install-dvi-am install-exec install-exec-am install-html \
+ 	install-html-am install-info install-info-am install-man \
+ 	install-pdf install-pdf-am install-ps install-ps-am \
+ 	install-strip installcheck installcheck-am installdirs \
+ 	installdirs-am maintainer-clean maintainer-clean-generic \
+ 	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+ 	ps ps-am tags tags-recursive uninstall uninstall-am \
+ 	uninstall-binPROGRAMS
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/install-info/README texinfo-4.13/install-info/README
*** texinfo-4.12/install-info/README	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/README	Tue Jan  1 17:36:16 2008
***************
*** 0 ****
--- 1,15 ----
+ $Id: README,v 1.1 2008/01/02 01:36:16 karl Exp $
+ texinfo/install-info/README
+ 
+   Copyright (C) 2008 Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ install-info updates the top-level dir file in the Info tree.
+ (It does not actually install files into the Info directory, oddly enough.)
+ 
+ Debian has a completely different implementation (in Perl) of
+ install-info.  This has been a point of great confusion.  We are trying
+ to reconcile the two.  Bug reports and help are welcome, as always.
diff -Nrc2 texinfo-4.12/install-info/install-info.c texinfo-4.13/install-info/install-info.c
*** texinfo-4.12/install-info/install-info.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/install-info.c	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,2685 ----
+ /* install-info -- create Info directory entry(ies) for an Info file.
+    $Id: install-info.c,v 1.13 2008/05/18 16:54:02 karl Exp $
+ 
+    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+    2005, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include <getopt.h>
+ #include <regex.h>
+ #include <argz.h>
+ 
+ #define TAB_WIDTH 8
+ 
+ static char *progname = "install-info";
+ 
+ struct spec_entry;
+ struct spec_section;
+ 
+ struct line_data *findlines (char *data, int size, int *nlinesp);
+ void insert_entry_here (struct spec_entry *entry, int line_number,
+                         struct line_data *dir_lines, int n_entries); 
+ int compare_section_names (const void *s1, const void *s2);
+ int compare_entries_text (const void *e1, const void *e2); 
+ 
+ /* Data structures.  */
+ 
+ 
+ /* Record info about a single line from a file as read into core.  */
+ struct line_data
+ {
+   /* The start of the line.  */
+   char *start;
+   /* The number of characters in the line,
+      excluding the terminating newline.  */
+   int size;
+   /* Vector containing pointers to the entries to add before this line.
+      The vector is null-terminated.  */
+   struct spec_entry **add_entries_before;
+   /* Vector containing pointers to the sections to add before this line.
+      The vector is not null-terminated.  */
+   struct spec_section **add_sections_before;
+   /* The vector ADD_SECTIONS_BEFORE_HERE contains exactly this many
+      pointers to sections. */
+   int num_sections_to_add;
+   /* 1 means don't output this line.  */
+   int delete;
+ };
+ 
+ 
+ /* This is used for a list of the specified menu section names
+    in which entries should be added.  */
+ struct spec_section
+ {
+   struct spec_section *next;
+   char *name;
+   /* 1 means we have not yet found an existing section with this name
+      in the dir file--so we will need to add a new section.  */
+   int missing;
+ };
+ 
+ 
+ /* This is used for a list of the entries specified to be added.  */
+ struct spec_entry
+ {
+   struct spec_entry *next;
+   char *text;
+   size_t text_len;
+   /* A pointer to the list of sections to which this entry should be
+      added.  */
+   struct spec_section *entry_sections;
+   /* A pointer to a section that is beyond the end of the chain whose
+      head is pointed to by entry_sections.  */
+   struct spec_section *entry_sections_tail;
+   /* Non-zero means that the entry doesn't have a name specified.  This
+      can only happen if a --description preceeds a --name option. */
+   int missing_name;
+   /* Non-zero means that the entry doesn't have a description.  This
+      happens when a --name option is given prior to a --description 
+      option. */
+   int missing_description;
+   /* Non-zero means that the entry doesn't have an Info file specified.  
+      This means that the entry was taken from the command-line but it
+      only contains the name, and not the info file's basename, which
+      we get later on.  This only happens on entries that originate
+      from --name options. */
+   int missing_basename;
+ };
+ 
+ 
+ /* This is used for a list of nodes found by parsing the dir file.  */
+ struct node
+ {
+   struct node *next;
+   /* The node name.  */
+   char *name;
+   /* The line number of the line where the node starts.
+      This is the line that contains control-underscore.  */
+   int start_line;
+   /* The line number of the line where the node ends,
+      which is the end of the file or where the next line starts.  */
+   int end_line;
+   /* Start of first line in this node's menu
+      (the line after the * Menu: line).  */
+   char *menu_start;
+   /* The start of the chain of sections in this node's menu.  */
+   struct menu_section *sections;
+   /* The last menu section in the chain.  */
+   struct menu_section *last_section;
+ };
+ 
+ 
+ /* This is used for a list of sections found in a node's menu.
+    Each  struct node  has such a list in the  sections  field.  */
+ struct menu_section
+ {
+   struct menu_section *next;
+   char *name;
+   /* Line number of start of section.  */
+   int start_line;
+   /* Line number of end of section.  */
+   int end_line;
+ };
+ 
+ /* This table defines all the long-named options, says whether they
+    use an argument, and maps them into equivalent single-letter options.  */
+ 
+ struct option longopts[] =
+ {
+   { "add-once",  no_argument, NULL, '1'},
+   { "align",     required_argument, NULL, 'A'},
+   { "append-new-sections", no_argument, NULL, 'a'},
+   { "calign",    required_argument, NULL, 'C'},
+   { "debug",     no_argument, NULL, 'g' },
+   { "delete",    no_argument, NULL, 'r' },
+   { "dir-file",  required_argument, NULL, 'd' },
+   { "entry",     required_argument, NULL, 'e' },
+   { "name",      required_argument, NULL, 't' },
+   { "menuentry", required_argument, NULL, 't' },
+   { "description", required_argument, NULL, 'c' },
+   { "help",      no_argument, NULL, 'h' },
+   { "no-indent", no_argument, NULL, 'I' },
+   { "infodir",   required_argument, NULL, 'D' },
+   { "info-dir",  required_argument, NULL, 'D' },
+   { "info-file", required_argument, NULL, 'i' },
+   { "item",      required_argument, NULL, 'e' },
+   { "keep-old",  no_argument, NULL, 'k' },
+   { "maxwidth",  required_argument, NULL, 'W'},
+   { "max-width", required_argument, NULL, 'W'},
+   { "quiet",     no_argument, NULL, 'q' },
+   { "remove",    no_argument, NULL, 'r' },
+   { "remove-exactly",    no_argument, NULL, 'x' },
+   { "section",           required_argument, NULL, 's' },
+   { "regex",     required_argument, NULL, 'R' },
+   { "silent",    no_argument, NULL, 'q' },
+   { "test",      no_argument, NULL, 'n' },
+   { "dry-run",   no_argument, NULL, 'n' },
+   { "version",   no_argument, NULL, 'V' },
+   { 0 }
+ };
+ 
+ regex_t *psecreg = NULL;
+ 
+ /* Nonzero means that the name specified for the Info file will be used
+    (without removing .gz, .info extension or leading path) to match the
+    entries that must be removed.  */
+ int remove_exactly = 0;
+ 
+ /* Nonzero means that sections that don't have entries in them will be
+    deleted. */
+ int remove_empty_sections = 1;
+ 
+ /* Nonzero means that new Info entries into the DIR file will go into all 
+    sections that match with --section-regex or --section.  Zero means 
+    that new entries wil go into the first section that matches.*/
+ int add_entries_into_all_matching_sections = 1;
+ 
+ /* Nonzero means we do not replace same-named info entries. */
+ int keep_old_flag = 0;
+ 
+ /* Nonzero means --test was specified, to inhibit updating the dir file.  */
+ int chicken_flag = 0;
+ 
+ /* Zero means that entries will not be formatted when they are either 
+    added or replaced. */
+ int indent_flag = 1;
+ 
+ /* Zero means that new sections will be added at the end of the DIR file. */
+ int order_new_sections_alphabetically_flag = 1;
+ 
+ 
+ /* Error message functions.  */
+ 
+ /* Print error message.  S1 is printf control string, S2 and S3 args for it. */
+ 
+ /* VARARGS1 */
+ void
+ error (const char *s1, const char *s2, const char *s3)
+ {
+   fprintf (stderr, "%s: ", progname);
+   fprintf (stderr, s1, s2, s3);
+   putc ('\n', stderr);
+ }
+ 
+ /* VARARGS1 */
+ void
+ warning (const char *s1, const char *s2, const char *s3)
+ {
+   fprintf (stderr, _("%s: warning: "), progname);
+   fprintf (stderr, s1, s2, s3);
+   putc ('\n', stderr);
+ }
+ 
+ /* Print error message and exit.  */
+ 
+ void
+ fatal (const char *s1, const char *s2, const char *s3)
+ {
+   error (s1, s2, s3);
+   xexit (1);
+ }
+ 
+ /* Return a newly-allocated string
+    whose contents concatenate those of S1, S2, S3.  */
+ char *
+ concat (const char *s1, const char *s2, const char *s3)
+ {
+   int len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3);
+   char *result = (char *) xmalloc (len1 + len2 + len3 + 1);
+ 
+   strcpy (result, s1);
+   strcpy (result + len1, s2);
+   strcpy (result + len1 + len2, s3);
+   *(result + len1 + len2 + len3) = 0;
+ 
+   return result;
+ }
+ 
+ /* Return a string containing SIZE characters
+    copied from starting at STRING.  */
+ 
+ char *
+ copy_string (const char *string, int size)
+ {
+   int i;
+   char *copy = (char *) xmalloc (size + 1);
+   for (i = 0; i < size; i++)
+     copy[i] = string[i];
+   copy[size] = 0;
+   return copy;
+ }
+ 
+ /* Print fatal error message based on errno, with file name NAME.  */
+ 
+ void
+ pfatal_with_name (const char *name)
+ {
+   char *s = concat ("", strerror (errno), _(" for %s"));
+   fatal (s, name, 0);
+ }
+ 
+ /* Compare the menu item names in LINE1 (line length LEN1)
+    and LINE2 (line length LEN2).  Return 1 if the item name
+    in LINE1 is less, 0 otherwise.  */
+ 
+ static int
+ menu_line_lessp (char *line1, int len1, char *line2, int len2)
+ {
+   int minlen = (len1 < len2 ? len1 : len2);
+   int i;
+ 
+   for (i = 0; i < minlen; i++)
+     {
+       /* If one item name is a prefix of the other,
+          the former one is less.  */
+       if (line1[i] == ':' && line2[i] != ':')
+         return 1;
+       if (line2[i] == ':' && line1[i] != ':')
+         return 0;
+       /* If they both continue and differ, one is less.  */
+       if (line1[i] < line2[i])
+         return 1;
+       if (line1[i] > line2[i])
+         return 0;
+     }
+   /* With a properly formatted dir file,
+      we can only get here if the item names are equal.  */
+   return 0;
+ }
+ 
+ /* Compare the menu item names in LINE1 (line length LEN1)
+    and LINE2 (line length LEN2).  Return 1 if the item names are equal,
+    0 otherwise.  */
+ 
+ static int
+ menu_line_equal (char *line1, int len1, char *line2, int len2)
+ {
+   int minlen = (len1 < len2 ? len1 : len2);
+   int i;
+ 
+   for (i = 0; i < minlen; i++)
+     {
+       /* If both item names end here, they are equal.  */
+       if (line1[i] == ':' && line2[i] == ':')
+         return 1;
+       /* If they both continue and differ, one is less.  */
+       if (line1[i] != line2[i])
+         return 0;
+     }
+   /* With a properly formatted dir file,
+      we can only get here if the item names are equal.  */
+   return 1;
+ }
+ 
+ 
+ /* Given the full text of a menu entry, null terminated,
+    return just the menu item name (copied).  */
+ 
+ char *
+ extract_menu_item_name (char *item_text)
+ {
+   char *p;
+ 
+   if (*item_text == '*')
+     item_text++;
+   while (*item_text == ' ')
+     item_text++;
+ 
+   p = item_text;
+   while (*p && *p != ':') p++;
+   return copy_string (item_text, p - item_text);
+ }
+ 
+ /* Given the full text of a menu entry, terminated by null or newline,
+    return just the menu item file (copied).  */
+ 
+ char *
+ extract_menu_file_name (char *item_text)
+ {
+   char *p = item_text;
+ 
+   /* If we have text that looks like * ITEM: (FILE)NODE...,
+      extract just FILE.  Otherwise return "(none)".  */
+ 
+   if (*p == '*')
+     p++;
+   while (*p == ' ')
+     p++;
+ 
+   /* Skip to and past the colon.  */
+   while (*p && *p != '\n' && *p != ':') p++;
+   if (*p == ':') p++;
+ 
+   /* Skip past the open-paren.  */
+   while (1)
+     {
+       if (*p == '(')
+         break;
+       else if (*p == ' ' || *p == '\t')
+         p++;
+       else
+         return "(none)";
+     }
+   p++;
+ 
+   item_text = p;
+ 
+   /* File name ends just before the close-paren.  */
+   while (*p && *p != '\n' && *p != ')') p++;
+   if (*p != ')')
+     return "(none)";
+ 
+   return copy_string (item_text, p - item_text);
+ }
+ 
+ 
+ 
+ /* Return FNAME with any [.info][.gz] suffix removed.  */
+ 
+ static char *
+ strip_info_suffix (char *fname)
+ {
+   char *ret = xstrdup (fname);
+   unsigned len = strlen (ret);
+ 
+   if (len > 3 && FILENAME_CMP (ret + len - 3, ".gz") == 0)
+     {
+       len -= 3;
+       ret[len] = 0;
+     }
+   else if (len > 4 && FILENAME_CMP (ret + len - 4, ".bz2") == 0)
+     {
+       len -= 4;
+       ret[len] = 0;
+     }
+   else if (len > 5 && FILENAME_CMP (ret + len - 5, ".lzma") == 0)
+    {
+       len -= 5;
+       ret[len] =0;
+    }
+ 
+   if (len > 5 && FILENAME_CMP (ret + len - 5, ".info") == 0)
+     {
+       len -= 5;
+       ret[len] = 0;
+     }
+   else if (len > 4 && FILENAME_CMP (ret + len - 4, ".inf") == 0)
+     {
+       len -= 4;
+       ret[len] = 0;
+     }
+ #ifdef __MSDOS__
+   else if (len > 4 && (FILENAME_CMP (ret + len - 4, ".inz") == 0
+                        || FILENAME_CMP (ret + len - 4, ".igz") == 0))
+     {
+       len -= 4;
+       ret[len] = 0;
+     }
+ #endif /* __MSDOS__ */
+ 
+   return ret;
+ }
+ 
+ 
+ /* Return true if ITEM matches NAME and is followed by TERM_CHAR.  ITEM
+    can also be followed by `.gz', `.info.gz', or `.info' (and then
+    TERM_CHAR) and still match.  */
+ 
+ static int
+ menu_item_equal (const char *item, char term_char, const char *name)
+ {
+   int ret;
+   const char *item_basename = item;
+   unsigned name_len = strlen (name);
+ 
+   /* We must compare the basename in ITEM, since we are passed the
+      basename of the original info file.  Otherwise, a new entry like
+      "lilypond/lilypond" won't match "lilypond".
+      
+      Actually, it seems to me that we should really compare the whole
+      name, and not just the basename.  Couldn't there be dir1/foo.info
+      and dir2/foo.info?  Also, it seems like we should be using the
+      filename from the new dir entries, not the filename on the command
+      line.  Not worrying about those things right now, though.  --karl,
+      26mar04.  */
+   if (!remove_exactly) {
+   while (*item_basename && !IS_SLASH (*item_basename)
+          && *item_basename != term_char)
+     item_basename++;
+   if (! *item_basename || *item_basename == term_char)
+     item_basename = item;  /* no /, use original */
+   else
+     item_basename++;       /* have /, move past it */
+   }
+     
+   /* First, ITEM must actually match NAME (usually it won't).  */
+   ret = mbsncasecmp (item_basename, name, name_len) == 0;
+   if (ret)
+     {
+       /* Then, `foobar' doesn't match `foo', so be sure we've got all of
+          ITEM.  The various suffixes should never actually appear in the
+          dir file, but sometimes people put them in.  */
+       static char *suffixes[]
+         = { "", ".info.gz", ".info", ".inf", ".gz",
+ #ifdef __MSDOS__
+             ".inz", ".igz",
+ #endif
+             NULL };
+       unsigned i;
+       ret = 0;
+       for (i = 0; !ret && suffixes[i]; i++)
+         {
+           char *suffix = suffixes[i];
+           unsigned suffix_len = strlen (suffix);
+           ret = mbsncasecmp (item_basename + name_len, suffix, suffix_len) == 0
+                 && item_basename[name_len + suffix_len] == term_char;
+         }
+     }
+ 
+   return ret;
+ }
+ 
+ 
+ 
+ void
+ suggest_asking_for_help (void)
+ {
+   fprintf (stderr, _("\tTry `%s --help' for a complete list of options.\n"),
+            progname);
+   xexit (1);
+ }
+ 
+ void
+ print_help (void)
+ {
+   printf (_("Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"), progname);
+   puts ("");
+   puts (_("Add or remove entries in INFO-FILE from the Info directory DIR-FILE."));
+   puts ("");
+ 
+   puts (_("\
+ Options:\n\
+  --debug             report what is being done.\n\
+  --delete            delete existing entries for INFO-FILE from DIR-FILE;\n\
+                       don't insert any new entries.\n\
+  --description=TEXT  the description of the entry is TEXT; used with\n\
+                       the --name option to become synonymous with the\n\
+                       --entry option.\n\
+  --dir-file=NAME     specify file name of Info directory file;\n\
+                       equivalent to using the DIR-FILE argument.\n\
+  --dry-run           same as --test."));
+ 
+   puts (_("\
+  --entry=TEXT        insert TEXT as an Info directory entry.\n\
+                       TEXT is written as an Info menu item line followed\n\
+                        by zero or more extra lines starting with whitespace.\n\
+                       If you specify more than one entry, all are added.\n\
+                       If you don't specify any entries, they are determined\n\
+                        from information in the Info file itself.\n\
+                       When removing, TEXT specifies the entry to remove.\n\
+                       TEXT is only removed as a last resort, if the\n\
+                       entry as determined from the Info file is not present,\n\
+                       and the basename of the Info file isn't found either."));
+ 
+   puts (_("\
+  --help              display this help and exit.\n\
+  --info-dir=DIR      same as --dir-file=DIR/dir.\n\
+  --info-file=FILE    specify Info file to install in the directory;\n\
+                       equivalent to using the INFO-FILE argument.\n\
+  --item=TEXT         same as --entry=TEXT.\n\
+  --keep-old          do not replace entries, or remove empty sections.\n\
+  --menuentry=TEXT    same as --name=TEXT.\n\
+  --name=TEXT         the name of the entry is TEXT; used with --description\n\
+                       to become synonymous with the --entry option.\n\
+  --no-indent         do not format new entries in the DIR file.\n\
+  --quiet             suppress warnings."));
+ 
+   puts (_("\
+  --regex=R           put this file's entries in all sections that match the\n\
+                       regular expression R (ignoring case).\n\
+  --remove            same as --delete.\n\
+  --remove-exactly    only remove if the info file name matches exactly;\n\
+                       suffixes such as .info and .gz are not ignored.\n\
+  --section=SEC       put entries in section SEC of the directory.\n\
+                       If you specify more than one section, all the entries\n\
+                        are added in each of the sections.\n\
+                       If you don't specify any sections, they are determined\n\
+                        from information in the Info file itself.\n\
+  --section R SEC     equivalent to --regex=R --section=SEC --add-once."));
+ 
+   puts (_("\
+  --silent            suppress warnings.\n\
+  --test              suppress updating of DIR-FILE.\n\
+  --version           display version information and exit."));
+ 
+   puts ("");
+   
+   puts (_("\
+ Email bug reports to bug-texinfo@gnu.org,\n\
+ general questions and discussion to help-texinfo@gnu.org.\n\
+ Texinfo home page: http://www.gnu.org/software/texinfo/"));
+ }
+ 
+ 
+ /* If DIRFILE does not exist, and we are not in test mode, create a
+    minimal one (or abort).  If it already exists, do nothing.  */
+ 
+ static void
+ ensure_dirfile_exists (char *dirfile)
+ {
+   int desc;
+   
+   if (chicken_flag)
+     return;
+     
+   desc = open (dirfile, O_RDONLY);
+   if (desc < 0 && errno == ENOENT)
+     {
+       FILE *f;
+       char *readerr = strerror (errno);
+       close (desc);
+       f = fopen (dirfile, "w");
+       if (f)
+         {
+           fprintf (f, _("This is the file .../info/dir, which contains the\n\
+ topmost node of the Info hierarchy, called (dir)Top.\n\
+ The first time you invoke Info you start off looking at this node.\n\
+ \x1f\n\
+ %s\tThis is the top of the INFO tree\n\
+ \n\
+   This (the Directory node) gives a menu of major topics.\n\
+   Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n\
+   \"h\" gives a primer for first-timers,\n\
+   \"mEmacs<Return>\" visits the Emacs manual, etc.\n\
+ \n\
+   In Emacs, you can click mouse button 2 on a menu item or cross reference\n\
+   to select it.\n\
+ \n\
+ %s\n\
+ "), "File: dir,\tNode: Top",  /* These keywords must not be translated.  */
+     "* Menu:"
+ );
+           if (fclose (f) < 0)
+             pfatal_with_name (dirfile);
+         }
+       else
+         {
+           /* Didn't exist, but couldn't open for writing.  */
+           fprintf (stderr,
+                    _("%s: could not read (%s) and could not create (%s)\n"),
+                    dirfile, readerr, strerror (errno));
+           xexit (1);
+         }
+     }
+   else
+     close (desc); /* It already existed, so fine.  */
+ }
+ 
+ /* Open FILENAME and return the resulting stream pointer.  If it doesn't
+    exist, try FILENAME.gz.  If that doesn't exist either, call
+    CREATE_CALLBACK (with FILENAME as arg) to create it, if that is
+    non-NULL.  If still no luck, fatal error.
+ 
+    If we do open it, return the actual name of the file opened in
+    OPENED_FILENAME and the compress program to use to (de)compress it in
+    COMPRESSION_PROGRAM.  The compression program is determined by the
+    magic number, not the filename.  */
+ 
+ FILE *
+ open_possibly_compressed_file (char *filename,
+     void (*create_callback) (char *),
+     char **opened_filename, char **compression_program, int *is_pipe) 
+ {
+   char *local_opened_filename, *local_compression_program;
+   int nread;
+   char data[13];
+   FILE *f;
+ 
+   /* We let them pass NULL if they don't want this info, but it's easier
+      to always determine it.  */
+   if (!opened_filename)
+     opened_filename = &local_opened_filename;
+ 
+   *opened_filename = filename;
+   f = fopen (*opened_filename, FOPEN_RBIN);
+   if (!f)
+     {
+       *opened_filename = concat (filename, ".gz", "");
+       f = fopen (*opened_filename, FOPEN_RBIN);
+   if (!f)
+     {
+       free (*opened_filename);
+       *opened_filename = concat (filename, ".bz2", "");
+       f = fopen (*opened_filename, FOPEN_RBIN);
+     }
+   if (!f)
+     {
+      free (*opened_filename);
+      *opened_filename = concat (filename, ".lzma", "");
+      f = fopen (*opened_filename, FOPEN_RBIN);
+     }
+ 
+ #ifdef __MSDOS__
+       if (!f)
+         {
+           free (*opened_filename);
+           *opened_filename = concat (filename, ".igz", "");
+           f = fopen (*opened_filename, FOPEN_RBIN);
+         }
+       if (!f)
+         {
+           free (*opened_filename);
+           *opened_filename = concat (filename, ".inz", "");
+           f = fopen (*opened_filename, FOPEN_RBIN);
+         }
+ #endif
+       if (!f)
+         {
+           if (create_callback)
+             { /* That didn't work either.  Create the file if we can.  */
+               (*create_callback) (filename);
+ 
+               /* And try opening it again.  */
+               free (*opened_filename);
+               *opened_filename = filename;
+               f = fopen (*opened_filename, FOPEN_RBIN);
+               if (!f)
+                 pfatal_with_name (filename);
+             }
+           else
+             pfatal_with_name (filename);
+         }
+     }
+ 
+   /* Read first few bytes of file rather than relying on the filename.
+      If the file is shorter than this it can't be usable anyway.  */
+   nread = fread (data, sizeof (data), 1, f);
+   if (nread != 1)
+     {
+       /* Empty files don't set errno, so we get something like
+          "install-info: No error for foo", which is confusing.  */
+       if (nread == 0)
+         fatal (_("%s: empty file"), *opened_filename, 0);
+       pfatal_with_name (*opened_filename);
+     }
+ 
+   if (!compression_program)
+     compression_program = &local_compression_program;
+ 
+   if (data[0] == '\x1f' && data[1] == '\x8b')
+ #if STRIP_DOT_EXE
+     /* An explicit .exe yields a better diagnostics from popen below
+        if they don't have gzip installed.  */
+     *compression_program = "gzip.exe";
+ #else
+     *compression_program = "gzip";
+ #endif
+   else if (data[0] == 'B' && data[1] == 'Z' && data[2] == 'h')
+ #ifndef STRIP_DOT_EXE
+     *compression_program = "bzip2.exe";
+ #else
+     *compression_program = "bzip2";
+ #endif
+   else if (data[0] == 'B' && data[1] == 'Z' && data[2] == '0')
+ #ifndef STRIP_DOT_EXE
+     *compression_program = "bzip.exe";
+ #else
+     *compression_program = "bzip";
+ #endif
+     /* We (try to) match against old lzma format (which lacks proper
+        header, two first matches), as well as the new format (last match).  */
+   else if ((data[9] == 0x00 && data[10] == 0x00 && data[11] == 0x00
+             && data[12] == 0x00)
+            || (data[5] == '\xFF' && data[6] == '\xFF' && data[7] == '\xFF'
+                && data[8] == '\xFF' && data[9] == '\xFF' && data[10] == '\xFF'
+                && data[11] == '\xFF' && data[12] == '\xFF') 
+            || (data[0] == '\xFF' && data[1] == 'L' && data[2] == 'Z'
+                && data[3] == 'M' && data[4] == 'A' && data[5] == 0x00))
+ #ifndef STRIP_DOT_EXE
+     *compression_program = "lzma.exe";
+ #else
+     *compression_program = "lzma";
+ #endif
+   else
+     *compression_program = NULL;
+ 
+   if (*compression_program)
+     { /* It's compressed, so fclose the file and then open a pipe.  */
+       char *command = concat (*compression_program," -cd <", *opened_filename);
+       if (fclose (f) < 0)
+         pfatal_with_name (*opened_filename);
+       f = popen (command, "r");
+       if (f)
+         *is_pipe = 1;
+       else
+         pfatal_with_name (command);
+     }
+   else
+     { /* It's a plain file, seek back over the magic bytes.  */
+       if (fseek (f, 0, 0) < 0)
+         pfatal_with_name (*opened_filename);
+ #if O_BINARY
+       /* Since this is a text file, and we opened it in binary mode,
+          switch back to text mode.  */
+       f = freopen (*opened_filename, "r", f);
+ #endif
+       *is_pipe = 0;
+     }
+ 
+   return f;
+ }
+ 
+ /* Read all of file FILENAME into memory and return the address of the
+    data.  Store the size of the data into SIZEP.  If need be, uncompress
+    (i.e., try FILENAME.gz et al. if FILENAME does not exist) and store
+    the actual file name that was opened into OPENED_FILENAME (if it is
+    non-NULL), and the companion compression program (if any, else NULL)
+    into COMPRESSION_PROGRAM (if that is non-NULL).  If trouble, do
+    a fatal error.  */
+ 
+ char *
+ readfile (char *filename, int *sizep,
+     void (*create_callback) (char *), char **opened_filename,
+     char **compression_program)
+ {
+   char *real_name;
+   FILE *f;
+   int pipe_p;
+   int filled = 0;
+   int data_size = 8192;
+   char *data = xmalloc (data_size);
+ 
+   /* If they passed the space for the file name to return, use it.  */
+   f = open_possibly_compressed_file (filename, create_callback,
+                                      opened_filename ? opened_filename
+                                                      : &real_name,
+                                      compression_program, &pipe_p);
+ 
+   for (;;)
+     {
+       int nread = fread (data + filled, 1, data_size - filled, f);
+       if (nread < 0)
+         pfatal_with_name (real_name);
+       if (nread == 0)
+         break;
+ 
+       filled += nread;
+       if (filled == data_size)
+         {
+           data_size += 65536;
+           data = xrealloc (data, data_size);
+         }
+     }
+ 
+   /* We'll end up wasting space if we're not passing the filename back
+      and it is not just FILENAME, but so what.  */
+   /* We need to close the stream, since on some systems the pipe created
+      by popen is simulated by a temporary file which only gets removed
+      inside pclose.  */
+   if (pipe_p)
+     pclose (f);
+   else
+     fclose (f);
+ 
+   *sizep = filled;
+   return data;
+ }
+ 
+ /* Output the old dir file, interpolating the new sections
+    and/or new entries where appropriate.  If COMPRESSION_PROGRAM is not
+    null, pipe to it to create DIRFILE.  Thus if we read dir.gz on input,
+    we'll write dir.gz on output.  */
+ 
+ static void
+ output_dirfile (char *dirfile, int dir_nlines, struct line_data *dir_lines,
+                 int n_entries_to_add, struct spec_entry *entries_to_add,
+                 struct spec_section *input_sections, char *compression_program)
+ {
+   int n_entries_added = 0;
+   int i;
+   FILE *output;
+ 
+   if (compression_program)
+     {
+       char *command = concat (compression_program, ">", dirfile);
+       output = popen (command, "w");
+     }
+   else
+     output = fopen (dirfile, "w");
+ 
+   if (!output)
+     {
+       perror (dirfile);
+       xexit (1);
+     }
+ 
+   for (i = 0; i <= dir_nlines; i++)
+     {
+       int j;
+ 
+       /* If we decided to output some new entries before this line,
+          output them now.  */
+       if (dir_lines[i].add_entries_before)
+         for (j = 0; j < n_entries_to_add; j++)
+           {
+             struct spec_entry *this = dir_lines[i].add_entries_before[j];
+             if (this == 0)
+               break;
+             if (n_entries_added >= 1 && 
+                 !add_entries_into_all_matching_sections)
+               break;
+             fputs (this->text, output);
+             n_entries_added++;
+           }
+       /* If we decided to add some sections here
+          because there are no such sections in the file,
+          output them now.  
+          FIXME:  we add all sections here, but they should
+          be interspersed throughout the DIR file in 
+          alphabetic order. */
+       if (dir_lines[i].add_sections_before)
+         {
+           struct spec_section *spec;
+           struct spec_entry *entry;
+           struct spec_entry **entries;
+           int n_entries = 0;
+ 
+           /* If we specified --add-once, and we've added an entry, then
+              it's time to bail. */
+           if (n_entries_added >= 1 && 
+               !add_entries_into_all_matching_sections)
+             break;
+ 
+           qsort (dir_lines[i].add_sections_before, 
+                  dir_lines[i].num_sections_to_add, 
+                  sizeof (struct spec_section *), compare_section_names);
+ 
+           /* Count the entries and allocate a vector for all of them.  */
+           for (entry = entries_to_add; entry; entry = entry->next)
+             n_entries++;
+           entries = ((struct spec_entry **)
+                      xmalloc (n_entries * sizeof (struct spec_entry *)));
+ 
+           /* Fill the vector ENTRIES with pointers to all the sections,
+              and sort them.  */
+           j = 0;
+           for (entry = entries_to_add; entry; entry = entry->next)
+             entries[j++] = entry;
+           qsort (entries, n_entries, sizeof (struct spec_entry *),
+                  compare_entries_text);
+ 
+           /* Generate the new sections in alphabetical order.  In each
+              new section, output all of the entries that belong to that
+              section, in alphabetical order.  */
+           for (j = 0; j < dir_lines[i].num_sections_to_add; j++)
+             {
+               spec = dir_lines[i].add_sections_before[j];
+               if (spec->missing)
+                 {
+                   int k;
+ 
+                   putc ('\n', output);
+                   fputs (spec->name, output);
+                   putc ('\n', output);
+                   spec->missing = 0;
+                   for (k = 0; k < n_entries; k++)
+                     {
+                       struct spec_section *spec1;
+                       /* Did they at all want this entry to be put into
+                          this section?  */
+                       entry = entries[k];
+                       for (spec1 = entry->entry_sections;
+                            spec1 && spec1 != entry->entry_sections_tail;
+                            spec1 = spec1->next)
+                         {
+                           if (!strcmp (spec1->name, spec->name))
+                             break;
+                         }
+                       if (spec1 && spec1 != entry->entry_sections_tail)
+                         fputs (entry->text, output);
+                     }
+                 }
+             }
+ 
+           n_entries_added++;
+           free (entries);
+         }
+ 
+       /* Output the original dir lines unless marked for deletion.  */
+       if (i < dir_nlines && !dir_lines[i].delete)
+         {
+           fwrite (dir_lines[i].start, 1, dir_lines[i].size, output);
+           putc ('\n', output);
+         }
+     }
+ 
+   /* Some systems, such as MS-DOS, simulate pipes with temporary files.
+      On those systems, the compressor actually gets run inside pclose,
+      so we must call pclose.  */
+   if (compression_program)
+     pclose (output);
+   else
+     fclose (output);
+ }
+ 
+ /* Parse the input to find the section names and the entry names it
+    specifies.  Return the number of entries to add from this file.  */
+ int
+ parse_input (const struct line_data *lines, int nlines,
+              struct spec_section **sections, struct spec_entry **entries,
+              int delete_flag) 
+ {
+   int n_entries = 0;
+   int prefix_length = strlen ("INFO-DIR-SECTION ");
+   struct spec_section *head = *sections, *tail = NULL;
+   int reset_tail = 0;
+   char *start_of_this_entry = 0;
+   int ignore_sections = *sections != 0;
+   int ignore_entries  = delete_flag ? 0: *entries  != 0;
+ 
+   int i;
+ 
+   if (ignore_sections && ignore_entries)
+     return 0;
+ 
+   /* Loop here processing lines from the input file.  Each
+      INFO-DIR-SECTION entry is added to the SECTIONS linked list.
+      Each START-INFO-DIR-ENTRY block is added to the ENTRIES linked
+      list, and all its entries inherit the chain of SECTION entries
+      defined by the last group of INFO-DIR-SECTION entries we have
+      seen until that point.  */
+   for (i = 0; i < nlines; i++)
+     {
+       if (!ignore_sections
+           && !strncmp ("INFO-DIR-SECTION ", lines[i].start, prefix_length))
+         {
+           struct spec_section *next
+             = (struct spec_section *) xmalloc (sizeof (struct spec_section));
+           next->name = copy_string (lines[i].start + prefix_length,
+                                     lines[i].size - prefix_length);
+           next->next = *sections;
+           next->missing = 1;
+           if (reset_tail)
+             {
+               tail = *sections;
+               reset_tail = 0;
+             }
+           *sections = next;
+           head = *sections;
+         }
+       /* If entries were specified explicitly with command options,
+          ignore the entries in the input file.  */
+       else if (!ignore_entries)
+         {
+           if (!strncmp ("START-INFO-DIR-ENTRY", lines[i].start, lines[i].size)
+               && sizeof ("START-INFO-DIR-ENTRY") - 1 == lines[i].size)
+             {
+               if (!*sections)
+                 {
+                   /* We found an entry, but didn't yet see any sections
+                      specified.  Default to section "Miscellaneous".  */
+                   *sections = (struct spec_section *)
+                     xmalloc (sizeof (struct spec_section));
+                   (*sections)->name = "Miscellaneous";
+                   (*sections)->next = 0;
+                   (*sections)->missing = 1;
+                   head = *sections;
+                 }
+               /* Next time we see INFO-DIR-SECTION, we will reset the
+                  tail pointer.  */
+               reset_tail = 1;
+ 
+               if (start_of_this_entry != 0)
+                 fatal (_("START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"), 0, 0);
+               start_of_this_entry = lines[i + 1].start;
+             }
+           else if (start_of_this_entry)
+             {
+               if ((!strncmp ("* ", lines[i].start, 2)
+                    && lines[i].start > start_of_this_entry)
+                   || (!strncmp ("END-INFO-DIR-ENTRY",
+                                 lines[i].start, lines[i].size)
+                       && sizeof ("END-INFO-DIR-ENTRY") - 1 == lines[i].size))
+                 {
+                   /* We found an end of this entry.  Allocate another
+                      entry, fill its data, and add it to the linked
+                      list.  */
+                   struct spec_entry *next
+                     = (struct spec_entry *) xmalloc (sizeof (struct spec_entry));
+                   next->text
+                     = copy_string (start_of_this_entry,
+                                    lines[i].start - start_of_this_entry);
+                   next->text_len = lines[i].start - start_of_this_entry;
+                   next->entry_sections = head;
+                   next->entry_sections_tail = tail;
+                   next->next = *entries;
+                   *entries = next;
+                   n_entries++;
+                   if (!strncmp ("END-INFO-DIR-ENTRY",
+                                 lines[i].start, lines[i].size)
+                       && sizeof ("END-INFO-DIR-ENTRY") - 1 == lines[i].size)
+                     start_of_this_entry = 0;
+                   else
+                     start_of_this_entry = lines[i].start;
+                 }
+               else if (!strncmp ("END-INFO-DIR-ENTRY",
+                                  lines[i].start, lines[i].size)
+                        && sizeof ("END-INFO-DIR-ENTRY") - 1 == lines[i].size)
+                 fatal (_("END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"), 0, 0);
+             }
+         }
+     }
+   if (start_of_this_entry != 0)
+     fatal (_("START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"),
+            0, 0);
+ 
+   /* If we ignored the INFO-DIR-ENTRY directives, we need now go back
+      and plug the names of all the sections we found into every
+      element of the ENTRIES list.  */
+   if (ignore_entries && *entries)
+     {
+       struct spec_entry *entry;
+ 
+       for (entry = *entries; entry; entry = entry->next)
+         {
+           entry->entry_sections = head;
+           entry->entry_sections_tail = tail;
+         }
+     }
+ 
+   return n_entries;
+ }
+ 
+ 
+ /* Parse the dir file whose basename is BASE_NAME.  Find all the
+    nodes, and their menus, and the sections of their menus.  */
+ static void
+ parse_dir_file (struct line_data *lines, int nlines, struct node **nodes)
+ {
+   int node_header_flag = 0;
+   int i;
+ 
+   *nodes = 0;
+   for (i = 0; i < nlines; i++)
+     {
+       /* Parse node header lines.  */
+       if (node_header_flag)
+         {
+           int j, end;
+           for (j = 0; j < lines[i].size; j++)
+             /* Find the node name and store it in the `struct node'.  */
+             if (!strncmp ("Node:", lines[i].start + j, 5))
+               {
+                 char *line = lines[i].start;
+                 /* Find the start of the node name.  */
+                 j += 5;
+                 while (line[j] == ' ' || line[j] == '\t')
+                   j++;
+                 /* Find the end of the node name.  */
+                 end = j;
+                 while (line[end] != 0 && line[end] != ',' && line[end] != '\n'
+                        && line[end] != '\t')
+                   end++;
+                 (*nodes)->name = copy_string (line + j, end - j);
+               }
+           node_header_flag = 0;
+         }
+ 
+       /* Notice the start of a node.  */
+       if (*lines[i].start == 037)
+         {
+           struct node *next = (struct node *) xmalloc (sizeof (struct node));
+ 
+           next->next = *nodes;
+           next->name = NULL;
+           next->start_line = i;
+           next->end_line = 0;
+           next->menu_start = NULL;
+           next->sections = NULL;
+           next->last_section = NULL;
+ 
+           if (*nodes != 0)
+             (*nodes)->end_line = i;
+           /* Fill in the end of the last menu section
+              of the previous node.  */
+           if (*nodes != 0 && (*nodes)->last_section != 0)
+             (*nodes)->last_section->end_line = i;
+ 
+           *nodes = next;
+ 
+           /* The following line is the header of this node;
+              parse it.  */
+           node_header_flag = 1;
+         }
+ 
+       /* Notice the lines that start menus.  */
+       if (*nodes != 0 && !strncmp ("* Menu:", lines[i].start, 7))
+         (*nodes)->menu_start = lines[i + 1].start;
+ 
+       /* Notice sections in menus.  */
+       if (*nodes != 0
+           && (*nodes)->menu_start != 0
+           && *lines[i].start != '\n'
+           && *lines[i].start != '*'
+           && *lines[i].start != ' '
+           && *lines[i].start != '\t')
+         {
+           /* Add this menu section to the node's list.
+              This list grows in forward order.  */
+           struct menu_section *next
+             = (struct menu_section *) xmalloc (sizeof (struct menu_section));
+ 
+           next->start_line = i + 1;
+           next->next = 0;
+           next->end_line = 0;
+           next->name = copy_string (lines[i].start, lines[i].size);
+           if ((*nodes)->sections)
+             {
+               (*nodes)->last_section->next = next;
+               (*nodes)->last_section->end_line = i;
+             }
+           else
+             (*nodes)->sections = next;
+           (*nodes)->last_section = next;
+         }
+ 
+     }
+ 
+   /* Finish the info about the end of the last node.  */
+   if (*nodes != 0)
+     {
+       (*nodes)->end_line = nlines;
+       if ((*nodes)->last_section != 0)
+         (*nodes)->last_section->end_line = nlines;
+     }
+ }
+ 
+ 
+ /* Iterate through NLINES LINES looking for an entry that has a name
+    that matches NAME.  If such an entry is found, flag the entry for 
+    deletion later on. */
+ 
+ int
+ mark_entry_for_deletion (struct line_data *lines, int nlines, char *name)
+ {
+   int something_deleted = 0;
+   int i;
+   for (i = 0; i < nlines; i++)
+     {
+       /* Check for an existing entry that should be deleted.
+          Delete all entries which specify this file name.  */
+       if (*lines[i].start == '*')
+         {
+           char *q;
+           char *p = lines[i].start;
+ 
+           p++; /* skip * */
+           while (*p == ' ') p++; /* ignore following spaces */
+           q = p; /* remember this, it's the beginning of the menu item.  */
+ 
+           /* Read menu item.  */
+           while (*p != 0 && *p != ':')
+             p++;
+           p++; /* skip : */
+ 
+           if (*p == ':')
+             { /* XEmacs-style entry, as in * Mew::Messaging.  */
+               if (menu_item_equal (q, ':', name))
+                 {
+                   lines[i].delete = 1;
+                   something_deleted = 1;
+                 }
+             }
+           else
+             { /* Emacs-style entry, as in * Emacs: (emacs).  */
+               while (*p == ' ') p++; /* skip spaces after : */
+               if (*p == '(')         /* if at parenthesized (FILENAME) */
+                 {
+                   p++;
+                   if (menu_item_equal (p, ')', name))
+                     {
+                       lines[i].delete = 1;
+                       something_deleted = 1;
+                     }
+                 }
+             }
+         }
+ 
+       /* Treat lines that start with whitespace
+          as continuations; if we are deleting an entry,
+          delete all its continuations as well.  */
+       else if (i > 0 && (*lines[i].start == ' ' || *lines[i].start == '\t'))
+         {
+           lines[i].delete = lines[i - 1].delete;
+         }
+     }
+   return something_deleted;
+ }
+ 
+ 
+ /* Assuming the current column is COLUMN, return the column that
+    printing C will move the cursor to.
+    The first column is 0.
+    This function is used to assist in indenting of entries. */
+ 
+ static size_t
+ adjust_column (size_t column, char c)
+ {
+   if (c == '\b')
+     {
+       if (column > 0)
+         column--;
+     }
+   else if (c == '\r')
+     column = 0;
+   else if (c == '\t')
+     column += TAB_WIDTH - column % TAB_WIDTH;
+   else                          /* if (isprint (c)) */
+     column++;
+   return column;
+ }
+ 
+ /* Indent the Info entry's NAME and DESCRIPTION.  Lines are wrapped at the
+    WIDTH column.  The description on first line is indented at the CALIGN-th 
+    column, and all subsequent lines are indented at the ALIGN-th column.  
+    The resulting Info entry is put into OUTSTR.
+    NAME is of the form "* TEXT (TEXT)[:TEXT].".
+  */
+ static int
+ format_entry (char *name, size_t name_len, char *desc, size_t desc_len, 
+               int calign, int align, size_t width, 
+               char **outstr, size_t *outstr_len)
+ {
+   int i, j;
+   char c;
+   size_t column = 0;            /* Screen column where next char will go */
+   size_t offset_out = 0;        /* Index in `line_out' for next char. */
+   static char *line_out = NULL;
+   static size_t allocated_out = 0;
+   int saved_errno;
+   if (!desc || !name)
+     return 1;
+ 
+   *outstr = malloc (width  + 
+                     (((desc_len  + width) / (width - align)) * width) * 2 
+                     * sizeof (char));
+   *outstr[0] = '\0';
+ 
+   strncat (*outstr, name, name_len);
+ 
+   column = name_len;
+ 
+   if (name_len > calign - 2)
+     {
+       /* Name is too long to have description on the same line. */
+       if (desc_len > 1)
+         {
+           strncat (*outstr, "\n", 1);
+           column = 0;
+           for (j = 0; j < calign - 1; j++)
+             {
+               column = adjust_column (column, ' ');
+               strncat (*outstr, " ", 1);
+             }
+         }
+     }
+   else
+     for (j = 0; j < calign - name_len - 1; j++)
+       {
+         if (desc_len <= 2)
+           break;
+         column = adjust_column (column, ' ');
+         strncat (*outstr, " ", 1);
+       }
+ 
+   for (i = 0; i < desc_len; i++)
+     {
+       if (desc_len <= 2)
+         break;
+       c = desc[i];
+       if (offset_out + 1 >= allocated_out)
+         {
+           allocated_out = offset_out + 1;
+           line_out = (char *) realloc ((void *)line_out, allocated_out);
+         }
+ 
+       if (c == '\n')
+         {
+           line_out[offset_out++] = c;
+           strncat (*outstr, line_out, offset_out);
+           column = offset_out = 0;
+           continue;
+         }
+ 
+     rescan:
+       column = adjust_column (column, c);
+ 
+       if (column > width)
+         {
+           /* This character would make the line too long.
+              Print the line plus a newline, and make this character
+              start the next line. */
+ 
+           int found_blank = 0;
+           size_t logical_end = offset_out;
+ 
+           /* Look for the last blank. */
+           while (logical_end)
+             {
+               --logical_end;
+               if (line_out[logical_end] == ' '
+                   || line_out[logical_end] == '\t')
+                 {
+                   found_blank = 1;
+                   break;
+                 }
+             }
+ 
+           if (found_blank)
+             {
+               size_t i;
+ 
+               /* Found a blank.  Don't output the part after it. */
+               logical_end++;
+               strncat (*outstr, line_out, logical_end);
+               strncat (*outstr, "\n", 1);
+               for (j = 0; j < align - 1; j++)
+                 {
+                   column = adjust_column (column, ' ');
+                   strncat (*outstr, " ", 1);
+                 }
+ 
+               /* Move the remainder to the beginning of the next 
+                  line.
+                  The areas being copied here might overlap. */
+               memmove (line_out, line_out + logical_end,
+                        offset_out - logical_end);
+               offset_out -= logical_end;
+               for (column = i = 0; i < offset_out; i++)
+                 column = adjust_column (column, line_out[i]);
+               goto rescan;
+             }
+ 
+           if (offset_out == 0)
+             {
+               line_out[offset_out++] = c;
+               continue;
+             }
+ 
+           line_out[offset_out++] = '\n';
+           strncat (*outstr, line_out, offset_out);
+           column = offset_out = 0;
+           goto rescan;
+         }
+ 
+       line_out[offset_out++] = c;
+     }
+ 
+   saved_errno = errno;
+ 
+   if (desc_len <= 2)
+     strncat (*outstr, "\n", 1);
+ 
+   if (offset_out)
+     strncat (*outstr, line_out, offset_out);
+ 
+   *outstr_len = strlen (*outstr);
+   return 1;
+ }
+ 
+ 
+ /* Extract the NAME and DESCRIPTION from ENTRY.  NAME and DESCRIPTION must be
+    free'd.
+  */
+ static void
+ split_entry (const char *entry, char **name, size_t *name_len,
+              char **description, size_t *description_len)
+ {
+   char *endptr;
+ 
+   /* on the first line, the description starts after the first ". ";
+      that's a period and space -- our heuristic to handle item names like
+      "config.status", and node names like "config.status Invocation".
+      Also accept period-tab and period-newline.  */
+   char *ptr = strchr (entry, '.');
+   while (ptr && ptr[1] != ' ' && ptr[1] != '\t' && ptr[1] != '\n') {
+     ptr = strchr (ptr + 1, '.');
+   }
+   
+   /* Maybe there's no period, and no description */
+   if (!ptr)
+     {
+       size_t length = strlen (entry);
+       if (length == 0)
+         return;
+       *name = strdup (entry);
+       *name_len = length + 1;
+       return;
+     }
+ 
+   /* The name is everything up to and including the period. */
+   *name_len = (size_t) (ptr - entry + 1);
+   *name = xmalloc (*name_len + 1);
+   (*name)[0] = '\0';
+   strncat (*name, entry, *name_len);
+ 
+   ptr++;
+   *description = xmalloc (strlen (entry));
+   (*description)[0] = '\0';
+ 
+   while (ptr[0] != '\0')
+     {
+       /* Eat up the whitespace after the name, and at the start of a line. */
+       while (isspace(ptr[0]))
+         ptr++;
+ 
+       /* Okay, we're at the start of the description. */
+       if (ptr[0] == '\0')
+         continue;
+ 
+       /* See how far the description goes... */
+       endptr = strchr (ptr, '\n');
+       /* Either the description continues up to the next newline. */
+       if (endptr)
+         {
+           size_t length  = (size_t) (endptr - ptr) / sizeof (char);
+           strncat (*description, ptr, length);
+           ptr = endptr;
+           /* First of all, we eat the newline here.  But then what?
+              Sometimes the newline separates 2 sentences, so we
+              end up with the next word starting directly after the period,
+              instead of after the customary 2 spaces in english. 
+              If the previous character was a `.', then we should add 2
+              spaces if there is anything on the next line.
+              if it's a comma, then we should put one space.
+              If it's neither, we just put a space.
+              If it's some other whitespace, we shouldn't do anything. */
+           ptr++;
+           if (length > 1 && strlen (ptr) > 0)
+             {
+               endptr--;
+               /* *ENDPTR is the 2nd last character */
+               if (*endptr == '.')
+                 strncat (*description, "  ", 2);
+               else if (!isspace (*endptr))
+                 strncat (*description, " ", 1);
+             }
+         }
+       /* Or the description continues to the end of the string. */
+       else
+         {
+           /* Just show the rest when there's no newline. */
+           size_t length = strlen (ptr);
+           strncat (*description, ptr, length);
+           ptr += length;
+         }
+     }
+   /* Descriptions end in a new line. */
+   strncat (*description, "\n", 1);
+   *description_len = strlen (*description);
+ }
+ 
+ 
+ /* Indent all ENTRIES according to some formatting options. 
+    CALIGN_CLI is the starting column for the first line of the description.
+    ALIGN_CLI is the starting column for all subsequent lines of the 
+    description.  MAXWIDTH_CLI is the number of columns in the line. 
+    When CALIGN_CLI, ALIGN_CLI, or MAXWIDTH_CLI is -1, choose a sane default. */
+ 
+ static void
+ reformat_new_entries (struct spec_entry *entries, int calign_cli, int align_cli, 
+                       int maxwidth_cli)
+ {
+   struct spec_entry *entry;
+   for (entry = entries; entry; entry = entry->next)
+     {
+       int calign = -1, align = -1, maxwidth = -1;
+       char *name = NULL, *desc = NULL;
+       size_t name_len = 0, desc_len = 0;
+       split_entry (entry->text, &name, &name_len, &desc, &desc_len);
+       free (entry->text);
+ 
+       /* Specify sane defaults if we need to */
+       if (calign_cli == -1 || align_cli == -1)
+         {
+           struct spec_section *section;
+           calign = calign_cli;
+           align = align_cli;
+           for (section = entry->entry_sections; 
+                section && section != entry->entry_sections_tail;
+                section = section->next)
+             {
+               if (!strcmp (section->name, "Individual utilities"))
+                 {
+                   if (calign == -1)
+                     calign = 48 + 1;
+                   if (align == -1)
+                     align = 50 + 1;
+                   break;
+                 }
+             }
+           if (calign == -1)
+             calign = 32 + 1;
+           if (align == -1)
+             align = 34 + 1;
+         }
+       else
+         {
+           calign = calign_cli;
+           align = align_cli;
+         }
+ 
+       if (maxwidth_cli == -1)
+         maxwidth = 79;
+ 
+       format_entry (name, name_len, desc, desc_len, calign, align, 
+                     maxwidth, &entry->text, &entry->text_len);
+     }
+ }
+ 
+ /* Insert NAME into every entry in ENTRIES that requires it. 
+    NAME is the basename of the Info file being installed. 
+    The idea here is that there was a --name on the command-line
+    and we need to put the basename in the empty parentheses. */
+ void
+ add_missing_basenames (struct spec_entry *entries, char *name)
+ {
+   struct spec_entry *entry;
+   for (entry = entries; entry; entry = entry->next)
+     {
+       if (entry->missing_basename)
+         {
+           /* Insert NAME into the right place in ENTRY->TEXT. */
+           char *info, *rest, *text;
+           size_t name_len = strlen (name);
+           char *ptr = strstr (entry->text, ": (). ");
+           if (!ptr)
+             return;
+           ptr[0] = '\0';
+           rest = ptr += strlen (": (). ");
+ 
+           info = xmalloc (name_len + 7);
+           snprintf (info, name_len + 7, ": (%s). ", name);
+           text = concat (entry->text, info, rest);
+           free (info);
+           if (entry->text)
+             free (entry->text);
+           entry->text = text;
+           entry->text_len = strlen (entry->text);
+           entry->missing_name = 0;
+           entry->missing_basename = 0;
+         }
+     }
+ }
+ 
+ 
+ /* Add NAME to the start of any entry in ENTRIES that is missing a name 
+    component.  If NAME doesn't start with `*', it is formatted to look 
+    like an Info entry.  */
+ void
+ add_missing_names (struct spec_entry *entries, char *name)
+ {
+   struct spec_entry *entry;
+   for (entry = entries; entry; entry = entry->next)
+     {
+       if (entry->missing_name)
+         {
+           char *text;
+           /* Prepend NAME onto ENTRY->TEXT. */
+           int add_nl = 1;
+           if (entry->text)
+             if (entry->text[entry->text_len - 1] == '\n')
+               add_nl = 0;
+ 
+           if (name[0] == '*')
+             text = concat (name, entry->text == NULL ? "" : entry->text, 
+                            add_nl ? "\n" : "");
+           else
+             {
+               size_t full_name_len = strlen (name) * 2 + 9;
+               char *full_name = xmalloc (full_name_len);
+               snprintf (full_name, full_name_len, "* %s: (%s).", name, name);
+               text = concat (full_name, 
+                              entry->text == NULL ? "" : entry->text, 
+                              add_nl ? "\n" : "");
+               free (full_name);
+             }
+           if (entry->text)
+             free (entry->text);
+           entry->text = text;
+           entry->text_len = strlen (entry->text);
+           entry->missing_name = 0;
+           entry->missing_basename = 0;
+         }
+     }
+ }
+ 
+ /* Append DESC to every entry in ENTRIES that needs it. */
+ 
+ void
+ add_missing_descriptions (struct spec_entry *entries, char *desc)
+ {
+   struct spec_entry *entry;
+   for (entry = entries; entry; entry = entry->next)
+     {
+       if (entry->missing_description)
+         {
+           char *text;
+           int add_nl = 1;
+           if (strlen (desc) > 1)
+             if (desc[strlen (desc) - 1] == '\n')
+               add_nl = 0;
+           /* Append DESC onto ENTRY->TEXT. */
+           text = concat (entry->text == NULL ? "" : entry->text, desc,
+                                add_nl ? "\n" : "");
+           if (entry->text)
+             free (entry->text);
+           entry->text = text;
+           entry->text_len = strlen (entry->text);
+         }
+     }
+ }
+ 
+ 
+ /* Detect old-style Debian `--section REGEX TITLE' semantics in ARGV.
+    When detected the options are munged to look like:
+      `--regex REGEX --section TITLE --add-once'
+    Return 1 if munging took place, return 0 if not.
+    Otherwise return a negative number if something went wrong.
+    NEW_ARGC, and NEW_ARGV are filled with the newly munged options
+    when munging took place.
+  */
+ static int
+ munge_old_style_debian_options (int argc, char **argv, 
+                                 int *new_argc, char ***new_argv)
+ {
+   char *opt = NULL;
+   int i, err;
+   char *argz = NULL;
+   size_t argz_len = 0;
+   const char *regex, *title;
+   int munge = 0;
+ 
+   /* Flip through the options to detect the old `--section REGEX TITLE' 
+      syntax */
+   for (i = 0; i < argc; i++)
+     {
+       if (strcmp (argv[i], "--section") == 0)
+         {
+           FILE *fileptr;
+           /* Go forward one arg and obtain the REGEX. */
+           if (i + 1 < argc)
+             i++;
+           else
+             return -1;
+           regex = argv[i];
+           /* Go forward another arg and obtain the TITLE. */
+           if (i + 1 < argc)
+             i++;
+           else
+             return -1;
+           title = argv[i];
+           /* When the title starts with a `-' it's probably an option,
+              and not a title. */
+           if (title[0] == '-')
+             break;
+           /* When the title is a filename it's probably an Info file, or
+              a dir file, and not a title. */
+           fileptr = fopen (title, "r");
+           if (fileptr)
+             {
+               fclose (fileptr);
+               break;
+             }
+           /* Okay, it looks like we're using the old debian syntax 
+              for --section. */
+           munge = 1;
+         
+           /* Okay, we munge the options to look like this:
+              --regex=REGEX --section=TITLE --add-once */
+           opt = xmalloc (strlen (regex) + sizeof ("--regex="));
+           if (sprintf (opt, "--regex=%s", regex) == -1)
+             err = 1;
+           if (!err)
+             err = argz_add (&argz, &argz_len, opt);
+           free (opt); opt = NULL;
+ 
+           opt = xmalloc (strlen (regex) + sizeof ("--section="));
+           if (sprintf (opt, "--section=%s", title) == -1)
+             err = 1;
+           if (!err)
+             err = argz_add (&argz, &argz_len, opt);
+           free (opt); opt = NULL;
+ 
+           if (!err)
+             err = argz_add (&argz, &argz_len, "--add-once");
+         }
+       else
+         err = argz_add (&argz, &argz_len, argv[i]); 
+       if (err)
+         return -1;
+     }
+ 
+   if (munge)
+     {
+       *new_argc = argz_count (argz, argz_len);
+       *new_argv = xmalloc ((*new_argc + 1) * sizeof (char *));
+ 
+       opt = NULL; i = 0;
+       while ((opt = argz_next (argz, argz_len, opt)))
+         {
+           (*new_argv)[i] = xstrdup (opt);
+           i++;
+         }
+       (*new_argv)[*new_argc] = NULL;
+     }
+   free (argz);
+   return munge;
+ }
+ 
+ 
+ int
+ main (int argc, char *argv[])
+ {
+   char *opened_dirfilename;
+   char *compression_program;
+   char *infile_sans_info;
+   char *infile = 0, *dirfile = 0;
+   int calign = -1;
+   int align  = -1;
+   int maxwidth = -1;
+ 
+   /* Record the text of the Info file, as a sequence of characters
+      and as a sequence of lines.  */
+   char *input_data = NULL;
+   int input_size = 0;
+   struct line_data *input_lines = NULL;
+   int input_nlines = 0;
+ 
+   /* Record here the specified section names and directory entries.  */
+   struct spec_section *input_sections = NULL;
+   struct spec_entry *entries_to_add = NULL;
+   struct spec_entry *entries_to_add_from_file = NULL;
+   int n_entries_to_add = 0;
+ 
+   /* Record the old text of the dir file, as plain characters,
+      as lines, and as nodes.  */
+   char *dir_data;
+   int dir_size;
+   int dir_nlines;
+   struct line_data *dir_lines;
+   struct node *dir_nodes;
+ 
+   /* Nonzero means --delete was specified (just delete existing entries).  */
+   int delete_flag = 0;
+   int something_deleted = 0;
+ 
+   /* Nonzero means -quiet/--silent was specified.  */
+   int quiet_flag = 0;
+ 
+   /* Nonzero means --debug was specified.  */
+   int debug_flag = 0;
+ 
+   int i;
+ 
+ #ifdef HAVE_SETLOCALE
+   /* Set locale via LC_ALL.  */
+   setlocale (LC_ALL, "");
+ #endif
+ 
+   /* Set the text message domain.  */
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   textdomain (PACKAGE);
+ 
+   munge_old_style_debian_options (argc, argv, &argc, &argv);
+ 
+   while (1)
+     {
+       int opt = getopt_long (argc, argv, 
+                              "i:d:e:s:t:E:c:C:W:A:hHrk1Ia", longopts, 0);
+ 
+       if (opt == EOF)
+         break;
+ 
+       switch (opt)
+         {
+         case 0:
+           /* If getopt returns 0, then it has already processed a
+              long-named option.  We should do nothing.  */
+           break;
+ 
+         case 1:
+           abort ();
+ 
+         case '1':
+           add_entries_into_all_matching_sections = 0;
+           break;
+ 
+         case 'a':
+           order_new_sections_alphabetically_flag = 0;
+           break;
+ 
+         case 'A':
+           {
+             char *end = NULL;
+             unsigned long int val;
+             val = strtoul (optarg, &end, 0);
+             if (end == NULL || end == optarg || *end != '\0')
+               suggest_asking_for_help ();
+             align = val;
+             if (align <= 0)
+               suggest_asking_for_help ();
+           }
+           break;
+ 
+         case 'c':
+         
+           {
+             struct spec_entry *next;
+             size_t length = strlen (optarg);
+ 
+             if (!entries_to_add)
+               {
+                 next = 
+                   (struct spec_entry *) xmalloc (sizeof (struct spec_entry));
+             
+                 next->text = NULL;
+                 next->text_len = 0;
+                 next->entry_sections = NULL;
+                 next->entry_sections_tail = NULL;
+                 next->missing_name = 1;
+                 next->missing_basename = 1;
+                 next->next = entries_to_add;
+                 entries_to_add = next;
+                 n_entries_to_add++;
+               }
+             else
+               next = entries_to_add;
+                 
+             next->missing_description = 0;
+             if (next->text)
+               {
+                 char *nl = strrchr (next->text, '\n');
+                 if (nl)
+                   nl[0] = '\0';
+               }
+             /* Concat the description onto the current entry, adding a 
+                newline if we need one.  Prepend a space if we have no
+                previous text, since eventually we will be adding the
+                "* foo ()." and we want to end up with a ". " for parsing.  */
+             next->text = concat (next->text ? next->text : " ",
+                                  optarg, 
+                                  optarg[length - 1] == '\n' ? "" : "\n");
+             next->text_len = strlen (next->text);
+           }
+           break;
+ 
+         case 'C':
+           {
+             char *end = NULL;
+             unsigned long int val;
+             val = strtoul (optarg, &end, 0);
+             if (end == NULL || end == optarg || *end != '\0')
+               suggest_asking_for_help ();
+             calign = val;
+             if (calign <= 0)
+               suggest_asking_for_help ();
+           }
+           break;
+ 
+         case 'd':
+           if (dirfile)
+             {
+               fprintf (stderr, _("%s: already have dir file: %s\n"),
+                        progname, dirfile);
+               suggest_asking_for_help ();
+             }
+           dirfile = optarg;
+           break;
+ 
+         case 'D':
+           if (dirfile)
+             {
+               fprintf (stderr, _("%s: already have dir file: %s\n"),
+                        progname, dirfile);
+               suggest_asking_for_help ();
+             }
+           dirfile = concat (optarg, "", "/dir");
+           break;
+ 
+         case 't':
+           {
+             struct spec_entry *next
+               = (struct spec_entry *) xmalloc (sizeof (struct spec_entry));
+ 
+             size_t length;
+             if (optarg[0] != '*')
+               {
+                 /* Make enough space for "* foo: (). ". */
+                 length = strlen (optarg) + 9;
+                 next->text = xmalloc (length);
+                 snprintf (next->text, length, "* %s: (). ", optarg);
+                 next->missing_basename = 1;
+                 /* The basename will be inserted in between the parentheses
+                    at a later time.  See add_missing_basenames. */
+               }
+             else
+               {
+                 /* Make enough space for "foo ". */
+                 length = strlen (optarg) + 2;
+                 next->text = xmalloc (length);
+                 snprintf (next->text, length, "%s ", optarg);
+                 next->missing_basename = 0;
+                 /* FIXME: check for info entry correctness in TEXT. 
+                    e.g. `* Aaa: (bbb).' */
+               }
+ 
+             next->text_len = length - 1;
+             next->entry_sections = NULL;
+             next->entry_sections_tail = NULL;
+             next->next = entries_to_add;
+             next->missing_name = 0;
+             next->missing_description = 1;
+             entries_to_add = next;
+             n_entries_to_add++;
+           }
+           break;
+ 
+         case 'e':
+           {
+             struct spec_entry *next
+               = (struct spec_entry *) xmalloc (sizeof (struct spec_entry));
+             int olen = strlen (optarg);
+             if (! (*optarg != 0 && optarg[olen - 1] == '\n'))
+               {
+                 optarg = concat (optarg, "\n", "");
+                 olen++;
+               }
+             next->text = optarg;
+             next->text_len = olen;
+             next->entry_sections = NULL;
+             next->entry_sections_tail = NULL;
+             next->next = entries_to_add;
+             next->missing_name = 0;
+             next->missing_basename = 0;
+             next->missing_description = 0;
+             entries_to_add = next;
+             n_entries_to_add++;
+           }
+           break;
+ 
+         case 'g':
+           debug_flag = 1;
+           break;
+ 
+         case 'h':
+         case 'H':
+           print_help ();
+           xexit (0);
+ 
+         case 'i':
+           if (infile)
+             {
+               fprintf (stderr, _("%s: Specify the Info file only once.\n"),
+                        progname);
+               suggest_asking_for_help ();
+             }
+           infile = optarg;
+           break;
+ 
+         case 'I':
+           indent_flag = 0;
+           break;
+ 
+         case 'k':
+           keep_old_flag = 1;
+           break;
+ 
+         case 'n':
+           chicken_flag = 1;
+           break;
+ 
+         case 'q':
+           quiet_flag = 1;
+           break;
+ 
+         case 'r':
+           delete_flag = 1;
+           break;
+ 
+         case 'R':
+           {
+             int error;
+             if (psecreg)
+               {
+                 warning 
+                   (_("Extra regular expression specified, ignoring `%s'"),
+                    optarg, 0);
+                 break;
+               }
+             psecreg = (regex_t *) xmalloc (sizeof (regex_t));
+ 
+             error = regcomp (psecreg, optarg, REG_ICASE|REG_NOSUB);
+             if (error != 0)
+               {
+                 int errbuf_size = regerror (error, psecreg, NULL, 0);
+                 char *errbuf = (char *) xmalloc (errbuf_size);
+                 regerror (error, psecreg, errbuf, errbuf_size);
+                 fatal (_("Error in regular expression `%s': %s"),
+                        optarg, errbuf);
+               };
+           }
+           break;
+ 
+         case 's':
+           {
+             struct spec_section *next
+               = (struct spec_section *) xmalloc (sizeof (struct spec_section));
+             next->name = optarg;
+             next->next = input_sections;
+             next->missing = 1;
+             input_sections = next;
+           }
+           break;
+ 
+         case 'V':
+           printf ("install-info (GNU %s) %s\n", PACKAGE, VERSION);
+           puts ("");
+           printf (_("Copyright (C) %s Free Software Foundation, Inc.\n\
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
+ This is free software: you are free to change and redistribute it.\n\
+ There is NO WARRANTY, to the extent permitted by law.\n"),
+               "2008");
+           xexit (0);
+ 
+         case 'W':
+           {
+             char *end = NULL;
+             unsigned long int val;
+             val = strtoul (optarg, &end, 0);
+             if (end == NULL || end == optarg || *end != '\0')
+               suggest_asking_for_help ();
+             maxwidth = val;
+             if (maxwidth <= 0)
+               suggest_asking_for_help ();
+           }
+           break;
+ 
+         case 'x':
+           delete_flag = 1;
+           remove_exactly = 1;
+           break;
+ 
+         default:
+           suggest_asking_for_help ();
+         }
+     }
+ 
+   /* Interpret the non-option arguments as file names.  */
+   for (; optind < argc; ++optind)
+     {
+       if (infile == 0)
+         infile = argv[optind];
+       else if (dirfile == 0)
+         dirfile = argv[optind];
+       else
+         error (_("excess command line argument `%s'"), argv[optind], 0);
+     }
+ 
+   if (!infile)
+     fatal (_("No input file specified; try --help for more information."),
+            0, 0);
+   if (!dirfile)
+     fatal (_("No dir file specified; try --help for more information."), 0, 0);
+ 
+   /* Now read in the Info dir file.  */
+   if (debug_flag)
+     printf ("debug: reading dir file %s\n", dirfile);
+   dir_data = readfile (dirfile, &dir_size, ensure_dirfile_exists,
+                        &opened_dirfilename, &compression_program);
+   dir_lines = findlines (dir_data, dir_size, &dir_nlines);
+ 
+   parse_dir_file (dir_lines, dir_nlines, &dir_nodes);
+ 
+   if (!delete_flag)
+     {
+       /* Find which sections match our regular expression. */
+       if (psecreg)
+         {
+           struct node *node;
+           struct menu_section *section;
+           for (node = dir_nodes; node ; node = node->next)
+             for (section = node->sections; section ; section = section->next)
+               if (regexec (psecreg, section->name, 0, NULL, 0) == 0)
+                 {
+                   /* we have a match! */
+                   struct spec_section *next = 
+                     (struct spec_section *) xmalloc 
+                     (sizeof (struct spec_section));
+                   next->name = section->name;
+                   next->next = input_sections;
+                   next->missing = 0;
+                   input_sections = next;
+                 }
+         }
+ 
+     }
+ 
+   /* We will be comparing the entries in the dir file against the
+      current filename, so need to strip off any directory prefix and/or
+      [.info][.gz] suffix.  */
+   if (!remove_exactly) {
+     char *infile_basename = infile + strlen (infile);
+ 
+     if (HAVE_DRIVE (infile))
+       infile += 2;      /* get past the drive spec X: */
+ 
+     while (infile_basename > infile && !IS_SLASH (infile_basename[-1]))
+       infile_basename--;
+ 
+     infile_sans_info = strip_info_suffix (infile_basename);
+   } else
+     infile_sans_info = xstrdup(infile);
+ 
+   /* Now Read the Info file and parse it into lines, unless we're 
+      removing exactly.  */
+   if (!remove_exactly)
+     {
+       if (debug_flag)
+         printf ("debug: reading input file %s\n", infile);
+       input_data = readfile (infile, &input_size, NULL, NULL, NULL);
+       input_lines = findlines (input_data, input_size, &input_nlines);
+     }
+ 
+   i = parse_input (input_lines, input_nlines,
+                    &input_sections, &entries_to_add_from_file, delete_flag);
+   if (!delete_flag)
+     {
+       /* If there are no entries on the command-line at all, so we use the 
+          entries found in the Info file itself (if any). */
+       if (entries_to_add == NULL)
+         {
+           entries_to_add = entries_to_add_from_file;
+           n_entries_to_add = i;
+         }
+       /* There are entries on the command-line, and they override the entries
+          found in the Info file. */
+       else if (entries_to_add)
+         {
+           if (entries_to_add_from_file == NULL)
+             {
+               /* No entries found in the file anyway.  Fill in any 
+                  missing names with the info file's basename.  We're out
+                  of luck for any missing descriptions. */
+               add_missing_names (entries_to_add, infile_sans_info);
+               /* add_missing_descriptions (entries_to_add, "\n"); */
+             }
+           else
+             {
+               /* Fill in any missing names or descriptions with what was
+                  found in the Info file. */
+               char *desc = NULL;
+               size_t desc_len = 0;
+               char *name = NULL;
+               size_t name_len = 0;
+               split_entry (entries_to_add_from_file->text, &name, &name_len,
+                            &desc, &desc_len);
+               if (name)
+                 {
+                   /* If the name doesn't look right, bail and use the 
+                      name based on the Info file. */
+                   if (name[0] != '*')
+                     add_missing_names (entries_to_add, infile_sans_info);
+                   else
+                     add_missing_names (entries_to_add, name);
+                   free (name);
+                 }
+ 
+               if (desc)
+                 {
+                   add_missing_descriptions (entries_to_add, desc);
+                   free (desc);
+                 }
+             }
+         }
+             
+       /* Lastly, fill in any missing basenames that might still be hanging
+          around from --name options on the command-line. */
+       add_missing_basenames (entries_to_add, infile_sans_info);
+ 
+       /* Reformat the new entries if we're doing that. */
+       if (indent_flag)
+         {
+           char *no_indent = getenv ("INSTALL_INFO_NO_INDENT");
+           if (!no_indent)
+             reformat_new_entries (entries_to_add, calign, align, maxwidth);
+         }
+ 
+       /* If we got no sections, default to "Miscellaneous".  */
+       if (input_sections == NULL)
+         {
+           input_sections = (struct spec_section *)
+             xmalloc (sizeof (struct spec_section));
+           input_sections->name = "Miscellaneous";
+           input_sections->next = NULL;
+           input_sections->missing = 1;
+         }
+ 
+       if (entries_to_add == 0)
+         { /* No need to abort here, the original info file may not
+              have the requisite Texinfo commands.  This is not
+              something an installer should have to correct (it's a
+              problem for the maintainer), and there's no need to cause
+              subsequent parts of `make install' to fail.  */
+           if (!quiet_flag)
+             warning (_("no info dir entry in `%s'"), infile, 0);
+           xexit (0);
+         }
+ 
+       /* If the entries came from the command-line arguments, their
+          entry_sections pointers are not yet set.  Walk the chain of
+          the entries and for each entry update entry_sections to point
+          to the head of the list of sections where this entry should
+          be put.  Note that all the entries specified on the command
+          line get put into ALL the sections we've got, either from the
+          Info file, or (under --section) from the command line,
+          because in the loop below every entry inherits the entire
+          chain of sections.  */
+       if (n_entries_to_add > 0 && entries_to_add->entry_sections == NULL)
+         {
+           struct spec_entry *ep;
+ 
+           for (ep = entries_to_add; ep; ep = ep->next)
+             ep->entry_sections = input_sections;
+         }
+     }
+ 
+   if (delete_flag)
+     {
+       something_deleted = mark_entry_for_deletion (dir_lines, dir_nlines, 
+                                                    infile_sans_info);
+       if (!something_deleted && !remove_exactly)
+         {
+           struct spec_entry *entry;
+           for (entry = entries_to_add; entry; entry = entry->next)
+             {
+               /* If the entry came from the info file... */
+               if (entry->entry_sections != NULL)
+                 {
+                   char *name = extract_menu_item_name (entry->text);
+                   something_deleted = 
+                     mark_entry_for_deletion (dir_lines, dir_nlines, name);
+                   free (name);
+                 }
+             }
+       
+           if (!something_deleted)
+             {
+               struct spec_entry *entry;
+               for (entry = entries_to_add; entry; entry = entry->next)
+                 {
+                   /* If the entry came from the command-line... */
+                   if (entry->entry_sections == NULL)
+                     something_deleted = 
+                       mark_entry_for_deletion (dir_lines, dir_nlines, 
+                                                entry->text);
+                 }
+             }
+         }
+     }
+     
+   /* Check for sections with zero entries and mark them for deletion. */
+   if (delete_flag && something_deleted && !keep_old_flag)
+     {
+       struct node *node;
+       struct menu_section *section;
+       int section_empty;
+ 
+       for (node = dir_nodes; node ; node = node->next)
+         for (section = node->sections; section ; section = section->next)
+           {
+             section_empty = 1;
+             for (i = section->end_line; i > section->start_line; i--)
+               {
+                 if (dir_lines[i - 1].delete == 0 && 
+                     dir_lines[i - 1].size != 0)
+                   {
+                     section_empty = 0;
+                     break;
+                   }
+               }
+ 
+             if (section_empty)
+               {
+                 /* This gets rid of any trailing empty lines at the end  
+                    of the section, and the title too. */
+                 for (i = section->end_line; i >= section->start_line; i--)
+                   dir_lines[i - 1].delete = 1;
+               }
+           }
+     }
+ 
+   /* Decide where to add the new entries (unless --delete was used).
+      Find the menu sections to add them in.
+      In each section, find the proper alphabetical place to add
+      each of the entries.  */
+   if (!delete_flag)
+     {
+       struct node *node;
+       struct menu_section *section;
+       struct spec_section *spec;
+ 
+       for (node = dir_nodes; node; node = node->next)
+         for (section = node->sections; section; section = section->next)
+           {
+             for (i = section->end_line; i > section->start_line; i--)
+               if (dir_lines[i - 1].size != 0)
+                 break;
+             section->end_line = i;
+ 
+             for (spec = input_sections; spec; spec = spec->next)
+               if (!strcmp (spec->name, section->name))
+                 break;
+             if (spec)
+               {
+                 int add_at_line = section->end_line;
+                 struct spec_entry *entry;
+                 /* Say we have found at least one section with this name,
+                    so we need not add such a section.  */
+                 spec->missing = 0;
+                 /* For each entry, find the right place in this section
+                    to add it.  */
+                 for (entry = entries_to_add; entry; entry = entry->next)
+                   {
+                     /* Did they at all want this entry to be put into
+                        this section?  */
+                     for (spec = entry->entry_sections;
+                          spec && spec != entry->entry_sections_tail;
+                          spec = spec->next)
+                       {
+                         if (!strcmp (spec->name, section->name))
+                           break;
+                       }
+                     if (!spec || spec == entry->entry_sections_tail)
+                       continue;
+ 
+                     /* Subtract one because dir_lines is zero-based,
+                        but the `end_line' and `start_line' members are
+                        one-based.  */
+                     for (i = section->end_line - 1;
+                          i >= section->start_line - 1; i--)
+                       {
+                         /* If an entry exists with the same name,
+                            and was not marked for deletion
+                            (which means it is for some other file),
+                            we are in trouble.  */
+                         if (dir_lines[i].start[0] == '*'
+                             && menu_line_equal (entry->text, entry->text_len,
+                                                 dir_lines[i].start,
+                                                 dir_lines[i].size)
+                             && !dir_lines[i].delete)
+                           {
+                             if (keep_old_flag)
+                               {
+                                 add_at_line = -1;
+                                 break;
+                               }
+                             else
+                               {
+                                 int j;
+                                 dir_lines[i].delete = 1;
+                                 for (j = i + 1; j < section->end_line; j++)
+                                   {
+                                     if (dir_lines[j].start[0] == '*')
+                                       break;
+                                     dir_lines[j].delete = 1;
+                                   }
+                               }
+                           }
+                         if (dir_lines[i].start[0] == '*'
+                             && menu_line_lessp (entry->text, entry->text_len,
+                                                 dir_lines[i].start,
+                                                 dir_lines[i].size))
+                           add_at_line = i;
+                       }
+                     if (add_at_line < 0)
+                       continue;
+                     insert_entry_here (entry, add_at_line,
+                                        dir_lines, n_entries_to_add);
+                   }
+               }
+           }
+ 
+     }
+   /* Decide where to add the new sections (unless --delete was used).
+      Alphabetically find the menu sections to add them before.  */
+   if (!delete_flag)
+     {
+       struct node *node;
+       struct node *top = NULL;
+ 
+       /* Find the `Top' node. */
+       for (node = dir_nodes; node; node = node->next)
+         if (node->name && strcmp (node->name, "Top") == 0)
+           top = node;
+ 
+       if (top)
+         {
+           struct spec_section *spec;
+           int found = 0;
+           struct line_data *target_line = NULL;
+           for (spec = input_sections; spec; spec = spec->next)
+             {
+               found = 0;
+               target_line = NULL;
+               if (!spec->missing)
+                 continue;
+               if (order_new_sections_alphabetically_flag)
+                 {
+                   struct menu_section *section;
+                   struct menu_section *prev_section = NULL;
+               
+                   /* Look for the first section name that 
+                      exceeds SPEC->NAME. */
+                   for (section = top->sections; section ; 
+                        section = section->next)
+                     {
+                       found = (mbscasecmp (spec->name, section->name) < 0);
+                       if (found)
+                         {
+                           /* Mark the section for addition at this point. */
+                           if (prev_section)
+                             target_line = &dir_lines[prev_section->end_line];
+                           else
+                             target_line = 
+                               &dir_lines[top->sections->start_line - 2];
+ 
+                           break;
+                         }
+                       prev_section = section;
+                     }
+                 }
+                   
+               /* When we can't put a section anywhere, we put it at the 
+                  bottom of the file. */
+               if (!found)
+                 target_line = &dir_lines[top->end_line];
+ 
+               /* Add the section to our list of sections being added
+                  at this point of the DIR file. */
+               target_line->num_sections_to_add++;
+               target_line->add_sections_before = 
+                 (struct spec_section **) xrealloc 
+                 (target_line->add_sections_before, 
+                  (target_line->num_sections_to_add *
+                   sizeof (struct spec_section *)));
+               i = target_line->num_sections_to_add - 1;
+               target_line->add_sections_before[i] = spec;
+             }
+         }
+     }
+ 
+   if (delete_flag && !something_deleted && !quiet_flag)
+     warning (_("no entries found for `%s'; nothing deleted"), infile, 0);
+ 
+   if (debug_flag)
+     printf ("debug: writing dir file %s\n", opened_dirfilename);
+   if (chicken_flag)
+     printf ("test mode, not updating dir file %s\n", opened_dirfilename);
+   else
+     output_dirfile (opened_dirfilename, dir_nlines, dir_lines,
+                     n_entries_to_add, entries_to_add,
+                     input_sections, compression_program);
+ 
+   xexit (0);
+   return 0; /* Avoid bogus warnings.  */
+ }
+ 
+ /* Divide the text at DATA (of SIZE bytes) into lines.
+    Return a vector of struct line_data describing the lines.
+    Store the length of that vector into *NLINESP.  */
+ 
+ struct line_data *
+ findlines (char *data, int size, int *nlinesp)
+ {
+   int i;
+   int lineflag = 1;
+   int lines_allocated = 511;
+   int filled = 0;
+   struct line_data *lines
+     = xmalloc ((lines_allocated + 1) * sizeof (struct line_data));
+ 
+   for (i = 0; i < size; i++)
+     {
+       if (lineflag)
+         {
+           if (filled == lines_allocated)
+             {
+               /* try to keep things somewhat page-aligned */
+               lines_allocated = ((lines_allocated + 1) * 2) - 1;
+               lines = xrealloc (lines, (lines_allocated + 1)
+                                        * sizeof (struct line_data));
+             }
+           lines[filled].start = &data[i];
+           lines[filled].add_entries_before = 0;
+           lines[filled].add_sections_before = NULL;
+           lines[filled].num_sections_to_add = 0;
+           lines[filled].delete = 0;
+           if (filled > 0)
+             lines[filled - 1].size
+               = lines[filled].start - lines[filled - 1].start - 1;
+           filled++;
+         }
+       lineflag = (data[i] == '\n');
+     }
+   if (filled > 0)
+     lines[filled - 1].size = &data[i] - lines[filled - 1].start - lineflag;
+ 
+   /* Do not leave garbage in the last element.  */
+   lines[filled].start = NULL;
+   lines[filled].add_entries_before = NULL;
+   lines[filled].add_sections_before = NULL;
+   lines[filled].num_sections_to_add = 0;
+   lines[filled].delete = 0;
+   lines[filled].size = 0;
+ 
+   *nlinesp = filled;
+   return lines;
+ }
+ 
+ /* This is the comparison function for qsort for a vector of pointers to
+    struct spec_section.  (Have to use const void * as the parameter type
+    to avoid incompatible-with-qsort warnings.)
+    Compare the section names.  */
+ 
+ int
+ compare_section_names (const void *p1, const void *p2)
+ {
+   struct spec_section **sec1 = (struct spec_section **) p1;
+   struct spec_section **sec2 = (struct spec_section **) p2;
+   char *name1 = (*sec1)->name;
+   char *name2 = (*sec2)->name;
+   return strcmp (name1, name2);
+ }
+ 
+ /* This is the comparison function for qsort
+    for a vector of pointers to struct spec_entry.
+    Compare the entries' text.  */
+ 
+ int
+ compare_entries_text (const void *p1, const void *p2)
+ {
+   struct spec_entry **entry1 = (struct spec_entry **) p1;
+   struct spec_entry **entry2 = (struct spec_entry **) p2;
+   char *text1 = (*entry1)->text;
+   char *text2 = (*entry2)->text;
+   char *colon1 = strchr (text1, ':');
+   char *colon2 = strchr (text2, ':');
+   int len1, len2;
+ 
+   if (!colon1)
+     len1 = strlen (text1);
+   else
+     len1 = colon1 - text1;
+   if (!colon2)
+     len2 = strlen (text2);
+   else
+     len2 = colon2 - text2;
+   return mbsncasecmp (text1, text2, len1 <= len2 ? len1 : len2);
+ }
+ 
+ /* Insert ENTRY into the add_entries_before vector
+    for line number LINE_NUMBER of the dir file.
+    DIR_LINES and N_ENTRIES carry information from like-named variables
+    in main.  */
+ 
+ void
+ insert_entry_here (struct spec_entry *entry, int line_number,
+                    struct line_data *dir_lines, int n_entries)
+ {
+   int i, j;
+ 
+   if (dir_lines[line_number].add_entries_before == 0)
+     {
+       dir_lines[line_number].add_entries_before
+         = (struct spec_entry **) xmalloc (n_entries * sizeof (struct spec_entry *));
+       for (i = 0; i < n_entries; i++)
+         dir_lines[line_number].add_entries_before[i] = 0;
+     }
+ 
+   /* Find the place where this entry belongs.  If there are already
+      several entries to add before LINE_NUMBER, make sure they are in
+      alphabetical order.  */
+   for (i = 0; i < n_entries; i++)
+     if (dir_lines[line_number].add_entries_before[i] == 0
+         || menu_line_lessp (entry->text, strlen (entry->text),
+                             dir_lines[line_number].add_entries_before[i]->text,
+                             strlen (dir_lines[line_number].add_entries_before[i]->text)))
+       break;
+ 
+   if (i == n_entries)
+     abort ();
+ 
+   /* If we need to plug ENTRY into the middle of the
+      ADD_ENTRIES_BEFORE array, move the entries which should be output
+      after this one down one notch, before adding a new one.  */
+   if (dir_lines[line_number].add_entries_before[i] != 0)
+     for (j = n_entries - 1; j > i; j--)
+       dir_lines[line_number].add_entries_before[j]
+         = dir_lines[line_number].add_entries_before[j - 1];
+ 
+   dir_lines[line_number].add_entries_before[i] = entry;
+ }
diff -Nrc2 texinfo-4.12/install-info/tests/Makefile.am texinfo-4.13/install-info/tests/Makefile.am
*** texinfo-4.12/install-info/tests/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/Makefile.am	Thu May 22 09:31:54 2008
***************
*** 0 ****
--- 1,237 ----
+ # $Id: Makefile.am,v 1.5 2008/05/22 16:31:54 karl Exp $
+ # Makefile.am for texinfo/util/tests/install-info.
+ # Run automake in ../../../ to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ TESTS=ii-0001-test ii-0002-test ii-0003-test ii-0004-test ii-0005-test \
+ ii-0006-test ii-0007-test ii-0008-test ii-0009-test ii-0010-test \
+ ii-0011-test ii-0012-test ii-0013-test ii-0014-test ii-0015-test \
+ ii-0016-test ii-0017-test ii-0018-test ii-0019-test ii-0020-test \
+ ii-0021-test ii-0022-test ii-0023-test ii-0024-test ii-0025-test \
+ ii-0026-test ii-0027-test ii-0028-test ii-0029-test ii-0030-test \
+ ii-0031-test ii-0032-test ii-0033-test ii-0034-test ii-0035-test \
+ ii-0036-test ii-0037-test ii-0038-test ii-0039-test ii-0040-test \
+ ii-0041-test ii-0042-test ii-0043-test ii-0044-test ii-0045-test \
+ ii-0046-test ii-0047-test ii-0048-test ii-0049-test ii-0050-test \
+ ii-0051-test ii-0052-test ii-0053-test
+ 
+ noinst_SCRIPTS=$(TESTS)
+ 
+ EXTRA_DIST=\
+ ii-0001-input-dir-file \
+ ii-0001-input-info-file \
+ ii-0001-expected-dir-file \
+ ii-0001-test \
+ ii-0002-input-dir-file \
+ ii-0002-input-info-file \
+ ii-0002-expected-dir-file \
+ ii-0002-test \
+ ii-0003-input-dir-file \
+ ii-0003-input-info-file \
+ ii-0003-expected-dir-file \
+ ii-0003-test \
+ ii-0004-input-dir-file \
+ ii-0004-input-info-file \
+ ii-0004-expected-dir-file \
+ ii-0004-test \
+ ii-0005-input-dir-file \
+ ii-0005-input-info-file \
+ ii-0005-expected-dir-file \
+ ii-0005-test \
+ ii-0006-input-dir-file \
+ ii-0006-input-info-file \
+ ii-0006-expected-dir-file \
+ ii-0006-test \
+ ii-0007-input-dir-file \
+ ii-0007-input-info-file \
+ ii-0007-expected-dir-file \
+ ii-0007-test \
+ ii-0008-input-dir-file \
+ ii-0008-input-info-file \
+ ii-0008-expected-dir-file \
+ ii-0008-test \
+ ii-0009-input-dir-file \
+ ii-0009-input-info-file \
+ ii-0009-expected-dir-file \
+ ii-0009-test \
+ ii-0010-input-dir-file \
+ ii-0010-input-info-file \
+ ii-0010-expected-dir-file \
+ ii-0010-test \
+ ii-0011-input-dir-file \
+ ii-0011-input-info-file \
+ ii-0011-expected-dir-file \
+ ii-0011-test \
+ ii-0012-input-dir-file \
+ ii-0012-input-info-file \
+ ii-0012-expected-dir-file \
+ ii-0012-test \
+ ii-0013-input-dir-file \
+ ii-0013-input-info-file \
+ ii-0013-expected-dir-file \
+ ii-0013-test \
+ ii-0014-input-dir-file \
+ ii-0014-input-info-file \
+ ii-0014-expected-dir-file \
+ ii-0014-test \
+ ii-0015-input-dir-file \
+ ii-0015-input-info-file \
+ ii-0015-expected-dir-file \
+ ii-0015-test \
+ ii-0016-input-dir-file \
+ ii-0016-input-info-file \
+ ii-0016-expected-dir-file \
+ ii-0016-test \
+ ii-0017-input-dir-file \
+ ii-0017-input-info-file \
+ ii-0017-expected-dir-file \
+ ii-0017-test \
+ ii-0018-input-dir-file \
+ ii-0018-input-info-file \
+ ii-0018-test \
+ ii-0019-input-dir-file \
+ ii-0019-input-info-file \
+ ii-0019-test \
+ ii-0020-input-dir-file \
+ ii-0020-input-info-file \
+ ii-0020-expected-dir-file \
+ ii-0020-test \
+ ii-0021-input-dir-file \
+ ii-0021-input-info-file \
+ ii-0021-expected-dir-file \
+ ii-0021-test \
+ ii-0022-input-dir-file \
+ ii-0022-input-info-file \
+ ii-0022-expected-dir-file \
+ ii-0022-test \
+ ii-0023-input-dir-file \
+ ii-0023-input-info-file \
+ ii-0023-expected-dir-file \
+ ii-0023-test \
+ ii-0024-input-dir-file \
+ ii-0024-input-info-file \
+ ii-0024-expected-dir-file \
+ ii-0024-test \
+ ii-0025-input-dir-file \
+ ii-0025-input-info-file \
+ ii-0025-expected-dir-file \
+ ii-0025-test \
+ ii-0026-input-dir-file \
+ ii-0026-input-info-file \
+ ii-0026-expected-dir-file \
+ ii-0026-test \
+ ii-0027-input-dir-file \
+ ii-0027-input-info-file \
+ ii-0027-expected-dir-file \
+ ii-0027-test \
+ ii-0028-input-dir-file \
+ ii-0028-input-info-file \
+ ii-0028-expected-dir-file \
+ ii-0028-test \
+ ii-0029-input-dir-file \
+ ii-0029-input-info-file \
+ ii-0029-expected-dir-file \
+ ii-0029-test \
+ ii-0030-input-dir-file \
+ ii-0030-input-info-file \
+ ii-0030-expected-dir-file \
+ ii-0030-test \
+ ii-0031-input-dir-file \
+ ii-0031-input-info-file \
+ ii-0031-expected-dir-file \
+ ii-0031-test \
+ ii-0032-input-dir-file \
+ ii-0032-input-info-file \
+ ii-0032-expected-dir-file \
+ ii-0032-test \
+ ii-0033-input-dir-file \
+ ii-0033-input-info-file \
+ ii-0033-expected-dir-file \
+ ii-0033-test \
+ ii-0034-input-dir-file \
+ ii-0034-input-info-file \
+ ii-0034-expected-dir-file \
+ ii-0034-test \
+ ii-0035-input-dir-file \
+ ii-0035-input-info-file \
+ ii-0035-expected-dir-file \
+ ii-0035-test \
+ ii-0036-input-dir-file \
+ ii-0036-input-info-file \
+ ii-0036-expected-dir-file \
+ ii-0036-test \
+ ii-0037-input-dir-file \
+ ii-0037-input-info-file \
+ ii-0037-expected-dir-file \
+ ii-0037-test \
+ ii-0038-input-dir-file \
+ ii-0038-input-info-file \
+ ii-0038-expected-dir-file \
+ ii-0038-test \
+ ii-0039-input-dir-file \
+ ii-0039-input-info-file \
+ ii-0039-expected-dir-file \
+ ii-0039-test \
+ ii-0040-input-dir-file \
+ ii-0040-input-info-file \
+ ii-0040-expected-dir-file \
+ ii-0040-test \
+ ii-0041-input-dir-file.gz \
+ ii-0041-input-info-file \
+ ii-0041-expected-dir-file.gz \
+ ii-0041-test \
+ ii-0042-input-dir-file \
+ ii-0042-input-info-file \
+ ii-0042-expected-dir-file \
+ ii-0042-test \
+ ii-0043-input-dir-file \
+ ii-0043-input-info-file \
+ ii-0043-expected-dir-file \
+ ii-0043-test \
+ ii-0044-input-dir-file \
+ ii-0044-input-info-file \
+ ii-0044-expected-dir-file \
+ ii-0044-test \
+ ii-0045-input-dir-file \
+ ii-0045-input-info-file \
+ ii-0045-expected-dir-file \
+ ii-0045-test \
+ ii-0046-input-dir-file \
+ ii-0046-expected-dir-file \
+ ii-0046-test \
+ ii-0047-input-dir-file \
+ ii-0047-input-info-file \
+ ii-0047-expected-dir-file \
+ ii-0047-test \
+ ii-0048-input-dir-file \
+ ii-0048-input-info-file \
+ ii-0048-expected-dir-file \
+ ii-0048-test \
+ ii-0049-input-dir-file \
+ ii-0049-input-info-file \
+ ii-0049-expected-dir-file \
+ ii-0049-test \
+ ii-0050-input-dir-file.gz \
+ ii-0050-input-info-file \
+ ii-0050-expected-dir-file.gz \
+ ii-0050-test \
+ ii-0051-input-dir-file \
+ ii-0051-input-info-file \
+ ii-0051-expected-dir-file \
+ ii-0051-test \
+ ii-0052-input-dir-file \
+ ii-0052-input-info-file \
+ ii-0052-expected-dir-file \
+ ii-0052-test \
+ ii-0053-input-dir-file \
+ ii-0053-input-info-file \
+ ii-0053-expected-dir-file \
+ ii-0053-test \
+ README
diff -Nrc2 texinfo-4.12/install-info/tests/Makefile.in texinfo-4.13/install-info/tests/Makefile.in
*** texinfo-4.12/install-info/tests/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/Makefile.in	Thu Sep 18 11:46:24 2008
***************
*** 0 ****
--- 1,872 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # $Id: Makefile.am,v 1.5 2008/05/22 16:31:54 karl Exp $
+ # Makefile.am for texinfo/util/tests/install-info.
+ # Run automake in ../../../ to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ subdir = install-info/tests
+ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ 	$(srcdir)/defs.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES = defs
+ SCRIPTS = $(noinst_SCRIPTS)
+ SOURCES =
+ DIST_SOURCES =
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ TESTS = ii-0001-test ii-0002-test ii-0003-test ii-0004-test ii-0005-test \
+ ii-0006-test ii-0007-test ii-0008-test ii-0009-test ii-0010-test \
+ ii-0011-test ii-0012-test ii-0013-test ii-0014-test ii-0015-test \
+ ii-0016-test ii-0017-test ii-0018-test ii-0019-test ii-0020-test \
+ ii-0021-test ii-0022-test ii-0023-test ii-0024-test ii-0025-test \
+ ii-0026-test ii-0027-test ii-0028-test ii-0029-test ii-0030-test \
+ ii-0031-test ii-0032-test ii-0033-test ii-0034-test ii-0035-test \
+ ii-0036-test ii-0037-test ii-0038-test ii-0039-test ii-0040-test \
+ ii-0041-test ii-0042-test ii-0043-test ii-0044-test ii-0045-test \
+ ii-0046-test ii-0047-test ii-0048-test ii-0049-test ii-0050-test \
+ ii-0051-test ii-0052-test ii-0053-test
+ 
+ noinst_SCRIPTS = $(TESTS)
+ EXTRA_DIST = \
+ ii-0001-input-dir-file \
+ ii-0001-input-info-file \
+ ii-0001-expected-dir-file \
+ ii-0001-test \
+ ii-0002-input-dir-file \
+ ii-0002-input-info-file \
+ ii-0002-expected-dir-file \
+ ii-0002-test \
+ ii-0003-input-dir-file \
+ ii-0003-input-info-file \
+ ii-0003-expected-dir-file \
+ ii-0003-test \
+ ii-0004-input-dir-file \
+ ii-0004-input-info-file \
+ ii-0004-expected-dir-file \
+ ii-0004-test \
+ ii-0005-input-dir-file \
+ ii-0005-input-info-file \
+ ii-0005-expected-dir-file \
+ ii-0005-test \
+ ii-0006-input-dir-file \
+ ii-0006-input-info-file \
+ ii-0006-expected-dir-file \
+ ii-0006-test \
+ ii-0007-input-dir-file \
+ ii-0007-input-info-file \
+ ii-0007-expected-dir-file \
+ ii-0007-test \
+ ii-0008-input-dir-file \
+ ii-0008-input-info-file \
+ ii-0008-expected-dir-file \
+ ii-0008-test \
+ ii-0009-input-dir-file \
+ ii-0009-input-info-file \
+ ii-0009-expected-dir-file \
+ ii-0009-test \
+ ii-0010-input-dir-file \
+ ii-0010-input-info-file \
+ ii-0010-expected-dir-file \
+ ii-0010-test \
+ ii-0011-input-dir-file \
+ ii-0011-input-info-file \
+ ii-0011-expected-dir-file \
+ ii-0011-test \
+ ii-0012-input-dir-file \
+ ii-0012-input-info-file \
+ ii-0012-expected-dir-file \
+ ii-0012-test \
+ ii-0013-input-dir-file \
+ ii-0013-input-info-file \
+ ii-0013-expected-dir-file \
+ ii-0013-test \
+ ii-0014-input-dir-file \
+ ii-0014-input-info-file \
+ ii-0014-expected-dir-file \
+ ii-0014-test \
+ ii-0015-input-dir-file \
+ ii-0015-input-info-file \
+ ii-0015-expected-dir-file \
+ ii-0015-test \
+ ii-0016-input-dir-file \
+ ii-0016-input-info-file \
+ ii-0016-expected-dir-file \
+ ii-0016-test \
+ ii-0017-input-dir-file \
+ ii-0017-input-info-file \
+ ii-0017-expected-dir-file \
+ ii-0017-test \
+ ii-0018-input-dir-file \
+ ii-0018-input-info-file \
+ ii-0018-test \
+ ii-0019-input-dir-file \
+ ii-0019-input-info-file \
+ ii-0019-test \
+ ii-0020-input-dir-file \
+ ii-0020-input-info-file \
+ ii-0020-expected-dir-file \
+ ii-0020-test \
+ ii-0021-input-dir-file \
+ ii-0021-input-info-file \
+ ii-0021-expected-dir-file \
+ ii-0021-test \
+ ii-0022-input-dir-file \
+ ii-0022-input-info-file \
+ ii-0022-expected-dir-file \
+ ii-0022-test \
+ ii-0023-input-dir-file \
+ ii-0023-input-info-file \
+ ii-0023-expected-dir-file \
+ ii-0023-test \
+ ii-0024-input-dir-file \
+ ii-0024-input-info-file \
+ ii-0024-expected-dir-file \
+ ii-0024-test \
+ ii-0025-input-dir-file \
+ ii-0025-input-info-file \
+ ii-0025-expected-dir-file \
+ ii-0025-test \
+ ii-0026-input-dir-file \
+ ii-0026-input-info-file \
+ ii-0026-expected-dir-file \
+ ii-0026-test \
+ ii-0027-input-dir-file \
+ ii-0027-input-info-file \
+ ii-0027-expected-dir-file \
+ ii-0027-test \
+ ii-0028-input-dir-file \
+ ii-0028-input-info-file \
+ ii-0028-expected-dir-file \
+ ii-0028-test \
+ ii-0029-input-dir-file \
+ ii-0029-input-info-file \
+ ii-0029-expected-dir-file \
+ ii-0029-test \
+ ii-0030-input-dir-file \
+ ii-0030-input-info-file \
+ ii-0030-expected-dir-file \
+ ii-0030-test \
+ ii-0031-input-dir-file \
+ ii-0031-input-info-file \
+ ii-0031-expected-dir-file \
+ ii-0031-test \
+ ii-0032-input-dir-file \
+ ii-0032-input-info-file \
+ ii-0032-expected-dir-file \
+ ii-0032-test \
+ ii-0033-input-dir-file \
+ ii-0033-input-info-file \
+ ii-0033-expected-dir-file \
+ ii-0033-test \
+ ii-0034-input-dir-file \
+ ii-0034-input-info-file \
+ ii-0034-expected-dir-file \
+ ii-0034-test \
+ ii-0035-input-dir-file \
+ ii-0035-input-info-file \
+ ii-0035-expected-dir-file \
+ ii-0035-test \
+ ii-0036-input-dir-file \
+ ii-0036-input-info-file \
+ ii-0036-expected-dir-file \
+ ii-0036-test \
+ ii-0037-input-dir-file \
+ ii-0037-input-info-file \
+ ii-0037-expected-dir-file \
+ ii-0037-test \
+ ii-0038-input-dir-file \
+ ii-0038-input-info-file \
+ ii-0038-expected-dir-file \
+ ii-0038-test \
+ ii-0039-input-dir-file \
+ ii-0039-input-info-file \
+ ii-0039-expected-dir-file \
+ ii-0039-test \
+ ii-0040-input-dir-file \
+ ii-0040-input-info-file \
+ ii-0040-expected-dir-file \
+ ii-0040-test \
+ ii-0041-input-dir-file.gz \
+ ii-0041-input-info-file \
+ ii-0041-expected-dir-file.gz \
+ ii-0041-test \
+ ii-0042-input-dir-file \
+ ii-0042-input-info-file \
+ ii-0042-expected-dir-file \
+ ii-0042-test \
+ ii-0043-input-dir-file \
+ ii-0043-input-info-file \
+ ii-0043-expected-dir-file \
+ ii-0043-test \
+ ii-0044-input-dir-file \
+ ii-0044-input-info-file \
+ ii-0044-expected-dir-file \
+ ii-0044-test \
+ ii-0045-input-dir-file \
+ ii-0045-input-info-file \
+ ii-0045-expected-dir-file \
+ ii-0045-test \
+ ii-0046-input-dir-file \
+ ii-0046-expected-dir-file \
+ ii-0046-test \
+ ii-0047-input-dir-file \
+ ii-0047-input-info-file \
+ ii-0047-expected-dir-file \
+ ii-0047-test \
+ ii-0048-input-dir-file \
+ ii-0048-input-info-file \
+ ii-0048-expected-dir-file \
+ ii-0048-test \
+ ii-0049-input-dir-file \
+ ii-0049-input-info-file \
+ ii-0049-expected-dir-file \
+ ii-0049-test \
+ ii-0050-input-dir-file.gz \
+ ii-0050-input-info-file \
+ ii-0050-expected-dir-file.gz \
+ ii-0050-test \
+ ii-0051-input-dir-file \
+ ii-0051-input-info-file \
+ ii-0051-expected-dir-file \
+ ii-0051-test \
+ ii-0052-input-dir-file \
+ ii-0052-input-info-file \
+ ii-0052-expected-dir-file \
+ ii-0052-test \
+ ii-0053-input-dir-file \
+ ii-0053-input-info-file \
+ ii-0053-expected-dir-file \
+ ii-0053-test \
+ README
+ 
+ all: all-am
+ 
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  install-info/tests/Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnu  install-info/tests/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ defs: $(top_builddir)/config.status $(srcdir)/defs.in
+ 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ tags: TAGS
+ TAGS:
+ 
+ ctags: CTAGS
+ CTAGS:
+ 
+ 
+ check-TESTS: $(TESTS)
+ 	@failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[	 ]'; \
+ 	srcdir=$(srcdir); export srcdir; \
+ 	list=' $(TESTS) '; \
+ 	if test -n "$$list"; then \
+ 	  for tst in $$list; do \
+ 	    if test -f ./$$tst; then dir=./; \
+ 	    elif test -f $$tst; then dir=; \
+ 	    else dir="$(srcdir)/"; fi; \
+ 	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ 	      all=`expr $$all + 1`; \
+ 	      case " $(XFAIL_TESTS) " in \
+ 	      *$$ws$$tst$$ws*) \
+ 		xpass=`expr $$xpass + 1`; \
+ 		failed=`expr $$failed + 1`; \
+ 		echo "XPASS: $$tst"; \
+ 	      ;; \
+ 	      *) \
+ 		echo "PASS: $$tst"; \
+ 	      ;; \
+ 	      esac; \
+ 	    elif test $$? -ne 77; then \
+ 	      all=`expr $$all + 1`; \
+ 	      case " $(XFAIL_TESTS) " in \
+ 	      *$$ws$$tst$$ws*) \
+ 		xfail=`expr $$xfail + 1`; \
+ 		echo "XFAIL: $$tst"; \
+ 	      ;; \
+ 	      *) \
+ 		failed=`expr $$failed + 1`; \
+ 		echo "FAIL: $$tst"; \
+ 	      ;; \
+ 	      esac; \
+ 	    else \
+ 	      skip=`expr $$skip + 1`; \
+ 	      echo "SKIP: $$tst"; \
+ 	    fi; \
+ 	  done; \
+ 	  if test "$$failed" -eq 0; then \
+ 	    if test "$$xfail" -eq 0; then \
+ 	      banner="All $$all tests passed"; \
+ 	    else \
+ 	      banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+ 	    fi; \
+ 	  else \
+ 	    if test "$$xpass" -eq 0; then \
+ 	      banner="$$failed of $$all tests failed"; \
+ 	    else \
+ 	      banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+ 	    fi; \
+ 	  fi; \
+ 	  dashes="$$banner"; \
+ 	  skipped=""; \
+ 	  if test "$$skip" -ne 0; then \
+ 	    skipped="($$skip tests were not run)"; \
+ 	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ 	      dashes="$$skipped"; \
+ 	  fi; \
+ 	  report=""; \
+ 	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ 	    report="Please report to $(PACKAGE_BUGREPORT)"; \
+ 	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ 	      dashes="$$report"; \
+ 	  fi; \
+ 	  dashes=`echo "$$dashes" | sed s/./=/g`; \
+ 	  echo "$$dashes"; \
+ 	  echo "$$banner"; \
+ 	  test -z "$$skipped" || echo "$$skipped"; \
+ 	  test -z "$$report" || echo "$$report"; \
+ 	  echo "$$dashes"; \
+ 	  test "$$failed" -eq 0; \
+ 	else :; fi
+ 
+ distdir: $(DISTFILES)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ check-am: all-am
+ 	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+ check: check-am
+ all-am: Makefile $(SCRIPTS)
+ installdirs:
+ install: install-am
+ install-exec: install-exec-am
+ install-data: install-data-am
+ uninstall: uninstall-am
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-am
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ clean: clean-am
+ 
+ clean-am: clean-generic mostlyclean-am
+ 
+ distclean: distclean-am
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-generic
+ 
+ dvi: dvi-am
+ 
+ dvi-am:
+ 
+ html: html-am
+ 
+ info: info-am
+ 
+ info-am:
+ 
+ install-data-am:
+ 
+ install-dvi: install-dvi-am
+ 
+ install-exec-am:
+ 
+ install-html: install-html-am
+ 
+ install-info: install-info-am
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-am
+ 
+ install-ps: install-ps-am
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+ 
+ mostlyclean-am: mostlyclean-generic
+ 
+ pdf: pdf-am
+ 
+ pdf-am:
+ 
+ ps: ps-am
+ 
+ ps-am:
+ 
+ uninstall-am:
+ 
+ .MAKE: install-am install-strip
+ 
+ .PHONY: all all-am check check-TESTS check-am clean clean-generic \
+ 	distclean distclean-generic distdir dvi dvi-am html html-am \
+ 	info info-am install install-am install-data install-data-am \
+ 	install-dvi install-dvi-am install-exec install-exec-am \
+ 	install-html install-html-am install-info install-info-am \
+ 	install-man install-pdf install-pdf-am install-ps \
+ 	install-ps-am install-strip installcheck installcheck-am \
+ 	installdirs maintainer-clean maintainer-clean-generic \
+ 	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+ 	uninstall-am
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/install-info/tests/README texinfo-4.13/install-info/tests/README
*** texinfo-4.12/install-info/tests/README	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/README	Tue Jan  1 17:36:16 2008
***************
*** 0 ****
--- 1,172 ----
+ $Id: README,v 1.1 2008/01/02 01:36:16 karl Exp $
+ install-info/tests/README
+ 
+   Copyright (C) 2008 Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ This file describes each of the numbered install-info tests.
+ 
+ 0001: The 99% case. Installing an Info file.  Take a single entry from the 
+       Info file and put it into a pre-existing section in the DIR file.
+ 0002: Installing an Info file.  Take two entries from the Info file and put 
+       it into a pre-existing section in the DIR file.
+ 0003: Installing an Info file.  Take two entries from the Info file and put 
+       it into a pre-existing section in the DIR file.  The entries are 
+       described in two different `START-INFO-DIR-ENTRY' declarations.
+ 0004: Installing an Info file.  Take two entries from the Info file and put 
+       it into two pre-existing sections in the DIR file.  The entries are 
+       described in two different `INFO-DIR-SECTION' and `START-INFO-DIR-ENTRY' 
+       declarations.
+ 0005: Installing an Info file.  Take two entries from the Info file and put 
+       it into one pre-existing section and one non-existing section in the 
+       DIR file.  The entries are described in two different `INFO-DIR-SECTION' 
+       and `START-INFO-DIR-ENTRY' declarations.
+ 0006: The 99% case, try 2.  Installing an Info file.  Take a single entry 
+       from the Info file and put it into a pre-existing section in the DIR 
+       file, but this time the name is not capitalized.
+ 0007: The 99% case, try 3.  Installing an Info file.  Take a single entry 
+       from the Info file and put it into a pre-existing section in the DIR 
+       file, but this time the entry is not the final entry in the section.
+ 0008: The 99% case, try 4.  Installing an Info file.  Take a single entry 
+       from the Info file and put it into a pre-existing section in the DIR 
+       file, but this time the entry's description spans more than one line.
+ 0009: The 99% case, try 5.  Installing an Info file.  Take a single entry 
+       from the Info file and put it into a pre-existing section in the DIR 
+       file, but this time the entry's description does not start on the 
+       33rd column and requires indentation.
+ 0010: The 99% case, try 6.  Installing an Info file.  Take a single entry 
+       from the Info file and put it into a pre-existing section in the DIR 
+       file, but this time the entry's one line description requires 
+       multi-line indentation.
+ 0011: Installing an Info file.  Take a single entry from the Info file and 
+       put it into a pre-existing section in the DIR file, but this time do 
+       not indent the description.
+ 0012: Installing an Info file.  Take a single entry from the Info file and 
+       put it into a pre-existing section in the DIR file, but this time the 
+       entry already exists and will be replaced.
+ 0013: Installing an Info file.  Take a single entry from the Info file and 
+       put it into a pre-existing section in the DIR file, but this time the 
+       entry already exists and the --keep-old option is used to override the 
+       replacement.
+ 0014: Installing an Info file.  Take a single entry from the Info file and 
+       put it into a pre-existing section in the DIR file, but this time the 
+       entry already exists with a multi-line description and will be 
+       replaced with a single-line description.
+ 0015: Installing an Info file.  Take a single entry from the Info file and 
+       put it into a pre-existing section in the DIR file, but this time the 
+       entry already exists with a single-line description and will be 
+       replaced with a multi-line description.
+ 0016: Installing an Info file.  The Info file does not contain section or
+       entry hints, and neither a section nor an entry is specified on the 
+       command-line.  Installation does not occur, but is not an error.
+ 0017: Installing an initial Info file into a minimal DIR file.
+ 0018: Installing an initial Info file into an empty (0 byte) DIR file.  
+       Installation does not occur, and is an error.
+ 0019: Installing an initial Info file into an empty (2 byte) DIR file.  
+       Installation does not occur, and is an error.
+ 0020: Installing an Info file.  The Info file does not contain section or
+       entry hints, and a section is not specified on the command-line, but
+       a --description is.
+ 0021: Installing an Info file.  The Info file does not contain section or
+       entry hints, and a pre-existing --section is stated on the command-line
+       along with a --description.
+ 0022: Installing an Info file.  The Info file does not contain section or
+       entry hints, and a --name is specified on the command-line.  The NAME
+       starts with *, so the whole name (up to the period) is replaced.
+ 0023: Installing an Info file.  The Info file does not contain section or
+       entry hints, and a --name is specified on the command-line.  The NAME
+       does not start with a *, so just the name (up to the colon) is replaced.
+ 0024: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the section with a non-existing one from the 
+       command-line.
+ 0025: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the section with an existing one from the 
+       command-line.
+ 0026: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the entry with an --entry on the command-line.
+ 0027: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the entry with an --entry on the command-line,
+       and we also override the section with a --section on the command-line.
+ 0028: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the name portion of the entry with a --name 
+       on the command-line.  The NAME starts with a `*' so it replaces the
+       entire name, up to the period.
+ 0029: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the name portion of the entry with a --name 
+       on the command-line.  The NAME does not start with a `*' so it 
+       replaces the name, up to the colon and presumes the basename.
+ 0030: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the description portion of the entry with a
+       --description on the command-line.
+ 0031: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the description and the name with
+       --description and --name options on the command-line.  The NAME starts
+       with a `*' so it replaces the entire name, up to the period.
+ 0032: Installing an Info file.  The Info file contains section and entry
+       hints, but we try to override the section with a regular expression 
+       that does not match any existing sections in the DIR file.  The 
+       overriding cannot take place, and the entry is installed in the section
+       specified in the Info file.
+ 0033: Installing an Info file.  The Info file contains an entry hint, but no
+       section hint.  We try to specify the section with a --regex option on
+       the command-line, but the regular expression does not match any 
+       existing sections in the DIR file.
+ 0034: Installing an Info file.  The Info file contains an entry hint, but
+       no section hint, and we try to specify the section with a regular 
+       expression that does not match any existing sections in the DIR file.  
+       We also specify a --section on the command-line to ensure that the 
+       entry will be installed in a section that we explicitly name.
+ 0035: Installing an Info file.  The Info file contains section and entry 
+       hints, but we try to specify the section with a regular expression 
+       that does not match any existing sections in the DIR file.  We also 
+       specify a --section on the command-line to ensure that the entry will 
+       be installed in a section that we explicitly name.
+ 0036: Installing an Info file.  The Info file contains entry and section
+       hints, but try to specify the section with a --regex option on
+       the command-line, and the regular expression matches an existing 
+       section in the DIR file.
+ 0037: Installing an Info file.  The Info file contains section and entry 
+       hints, but we try to specify the section with a regular expression 
+       that does not match any existing sections in the DIR file.  We also 
+       specify a --section on the command-line to ensure that the entry will 
+       be installed in a section that we explicitly name.  We use the 
+       alternative Debian --section REGEX TITLE syntax instead of the normal
+       GNU syntax.
+ 0038: Installing an Info file.  The Info file does not contain section or
+       entry hints, and we specify that two entries go into two sections on
+       the command-line.  One section already exists, and the other doesn't.
+ 0039: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the entry with an --entry option on the 
+       command-line.  The entry has a multi-line description and is not 
+       indented.
+ 0040: Installing an Info file.  The Info file contains section and entry
+       hints, but we override the entry with --name and --description options
+       on the command-line.  The entry is not indented.
+ 0041: Installing an Info file.  The Info file contains section and entry
+       hints, and we're installing the entry into a gzipped DIR file.
+ 0042: Installing an Info file.  The Info file contains section and entry
+       hints for two entries in two sections.  Both of the sections do not 
+       already exist in the DIR file.  The sections will be added prior to 
+       all other sections due to the alphabetic ordering of section names.
+ 0043: Installing an Info file.  The Info file contains section and entry 
+       hints, and we're going to install the new section admist many other 
+       sections.  E.g. instead of always at the very bottom or at the very 
+       top.
+ 0044: The 99% case.  Removing an Info file.  The Info file is responsible
+       for a single entry in the DIR file.
+ 0045: Removing an Info file.  The Info file is responsible for many entries 
+       in the DIR file.
+ 0046: Removing an Info file.  We no longer have the Info file, so we 
+       specify --remove-exactly to remove it instead.
+ 0047: Removing an Info file.  The Info file is responsible for the final
+       entry in the DIR file.  The section also gets removed.
+ 0048: Removing an Info file.  The Info file is responsible for the final
+       entry in the DIR file, but we want to keep the section heading, so
+       we specify --keep-old.
+ 0049: Removing an Info file.  The Info file is not responsible for any
+       entries in the DIR file.  A warning is issued, but it isn't an error.
+ 0050: Removing an Info file.  The Info file is responsible for a single
+       entry in the gzipped DIR file.
diff -Nrc2 texinfo-4.12/install-info/tests/defs.in texinfo-4.13/install-info/tests/defs.in
*** texinfo-4.12/install-info/tests/defs.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/defs.in	Thu Apr 17 10:54:17 2008
***************
*** 0 ****
--- 1,48 ----
+ # @configure_input@
+ # $Id: defs.in,v 1.1 2008/04/17 17:54:17 karl Exp $
+ # 
+ # Copyright 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+ # (Some snippets copied from Autoconf and/or util/defs.in.)
+ # Make sure we override the user shell.
+ SHELL='@SHELL@'
+ export SHELL
+ 
+ unset CDPATH
+ 
+ # Ensure we are running from the right directory.
+ if test ! -f ./defs; then
+    echo "defs: not found in current directory" 1>&2
+    exit 1
+ fi
+ 
+ # If srcdir is not set, then we are not running from `make check'.
+ if test -z "$srcdir"; then
+    VERBOSE=x
+    # compute $srcdir.
+    srcdir=`echo "$0" | sed -e 's,/[^\\/]*$,,'`
+    test $srcdir = $0 && srcdir=.
+ fi
+ 
+ # The two variables we use in the test scripts.
+ 
+ top_builddir=@top_builddir@
+ install_info=${top_builddir}/install-info/ginstall-info
+ export install_info
+ 
+ top_srcdir=@top_srcdir@
+ testdir=${top_srcdir}/install-info/tests
+ export testdir
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0001-expected-dir-file texinfo-4.13/install-info/tests/ii-0001-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0001-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0001-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0001-input-dir-file texinfo-4.13/install-info/tests/ii-0001-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0001-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0001-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0001-input-info-file texinfo-4.13/install-info/tests/ii-0001-input-info-file
*** texinfo-4.12/install-info/tests/ii-0001-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0001-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0001-test texinfo-4.13/install-info/tests/ii-0001-test
*** texinfo-4.12/install-info/tests/ii-0001-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0001-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii01-XXXXXXXX`
+ cp ${testdir}/ii-0001-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0001-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0001-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0002-expected-dir-file texinfo-4.13/install-info/tests/ii-0002-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0002-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0002-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ * Wildebeest: (gnu).            Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0002-input-dir-file texinfo-4.13/install-info/tests/ii-0002-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0002-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0002-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0002-input-info-file texinfo-4.13/install-info/tests/ii-0002-input-info-file
*** texinfo-4.12/install-info/tests/ii-0002-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0002-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,12 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Wildebeest: (gnu).             Wildebeest native to Africa.
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0002-test texinfo-4.13/install-info/tests/ii-0002-test
*** texinfo-4.12/install-info/tests/ii-0002-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0002-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii02-XXXXXXXX`
+ cp ${testdir}/ii-0002-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0002-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0002-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0003-expected-dir-file texinfo-4.13/install-info/tests/ii-0003-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0003-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0003-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ * Wildebeest: (gnu).            Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0003-input-dir-file texinfo-4.13/install-info/tests/ii-0003-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0003-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0003-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0003-input-info-file texinfo-4.13/install-info/tests/ii-0003-input-info-file
*** texinfo-4.12/install-info/tests/ii-0003-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0003-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,15 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ START-INFO-DIR-ENTRY
+ * Wildebeest: (gnu).             Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0003-test texinfo-4.13/install-info/tests/ii-0003-test
*** texinfo-4.12/install-info/tests/ii-0003-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0003-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii03-XXXXXXXX`
+ cp ${testdir}/ii-0003-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0003-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0003-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0004-expected-dir-file texinfo-4.13/install-info/tests/ii-0004-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0004-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0004-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,28 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ 
+ Antlered Animals
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Wildebeest: (gnu).            Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0004-input-dir-file texinfo-4.13/install-info/tests/ii-0004-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0004-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0004-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,26 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ 
+ Antlered Animals
+ * Deer: (deer).                 Ruminent antlered mammal.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0004-input-info-file texinfo-4.13/install-info/tests/ii-0004-input-info-file
*** texinfo-4.12/install-info/tests/ii-0004-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0004-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,16 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ INFO-DIR-SECTION Antlered Animals
+ START-INFO-DIR-ENTRY
+ * Wildebeest: (gnu).             Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0004-test texinfo-4.13/install-info/tests/ii-0004-test
*** texinfo-4.12/install-info/tests/ii-0004-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0004-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii04-XXXXXXXX`
+ cp ${testdir}/ii-0004-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0004-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0004-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0005-expected-dir-file texinfo-4.13/install-info/tests/ii-0005-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0005-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0005-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,27 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ 
+ Antlered Animals
+ * Wildebeest: (gnu).            Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0005-input-dir-file texinfo-4.13/install-info/tests/ii-0005-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0005-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0005-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0005-input-info-file texinfo-4.13/install-info/tests/ii-0005-input-info-file
*** texinfo-4.12/install-info/tests/ii-0005-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0005-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,16 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ INFO-DIR-SECTION Antlered Animals
+ START-INFO-DIR-ENTRY
+ * Wildebeest: (gnu).             Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0005-test texinfo-4.13/install-info/tests/ii-0005-test
*** texinfo-4.12/install-info/tests/ii-0005-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0005-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii05-XXXXXXXX`
+ cp ${testdir}/ii-0005-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0005-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0005-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0006-expected-dir-file texinfo-4.13/install-info/tests/ii-0006-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0006-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0006-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0006-input-dir-file texinfo-4.13/install-info/tests/ii-0006-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0006-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0006-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0006-input-info-file texinfo-4.13/install-info/tests/ii-0006-input-info-file
*** texinfo-4.12/install-info/tests/ii-0006-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0006-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0006-test texinfo-4.13/install-info/tests/ii-0006-test
*** texinfo-4.12/install-info/tests/ii-0006-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0006-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii06-XXXXXXXX`
+ cp ${testdir}/ii-0006-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0006-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0006-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0007-expected-dir-file texinfo-4.13/install-info/tests/ii-0007-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0007-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0007-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ * Hippopotamus: (hippo).        A large semi-aquatic African mammal.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0007-input-dir-file texinfo-4.13/install-info/tests/ii-0007-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0007-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0007-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Hippopotamus: (hippo).        A large semi-aquatic African mammal.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0007-input-info-file texinfo-4.13/install-info/tests/ii-0007-input-info-file
*** texinfo-4.12/install-info/tests/ii-0007-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0007-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0007-test texinfo-4.13/install-info/tests/ii-0007-test
*** texinfo-4.12/install-info/tests/ii-0007-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0007-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii07-XXXXXXXX`
+ cp ${testdir}/ii-0007-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0007-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0007-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0008-expected-dir-file texinfo-4.13/install-info/tests/ii-0008-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0008-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0008-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Large hooved animal native to the African 
+                                   savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0008-input-dir-file texinfo-4.13/install-info/tests/ii-0008-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0008-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0008-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0008-input-info-file texinfo-4.13/install-info/tests/ii-0008-input-info-file
*** texinfo-4.12/install-info/tests/ii-0008-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0008-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,12 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                   Large hooved animal native to the African 
+                                   savannah.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0008-test texinfo-4.13/install-info/tests/ii-0008-test
*** texinfo-4.12/install-info/tests/ii-0008-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0008-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii08-XXXXXXXX`
+ cp ${testdir}/ii-0008-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0008-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0008-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0009-expected-dir-file texinfo-4.13/install-info/tests/ii-0009-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0009-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0009-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0009-input-dir-file texinfo-4.13/install-info/tests/ii-0009-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0009-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0009-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0009-input-info-file texinfo-4.13/install-info/tests/ii-0009-input-info-file
*** texinfo-4.12/install-info/tests/ii-0009-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0009-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).  Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0009-test texinfo-4.13/install-info/tests/ii-0009-test
*** texinfo-4.12/install-info/tests/ii-0009-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0009-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii09-XXXXXXXX`
+ cp ${testdir}/ii-0009-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0009-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0009-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0010-expected-dir-file texinfo-4.13/install-info/tests/ii-0010-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0010-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0010-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Large hooved animal native to the African 
+                                   savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0010-input-dir-file texinfo-4.13/install-info/tests/ii-0010-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0010-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0010-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0010-input-info-file texinfo-4.13/install-info/tests/ii-0010-input-info-file
*** texinfo-4.12/install-info/tests/ii-0010-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0010-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).              Large hooved animal native to the African savannah.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0010-test texinfo-4.13/install-info/tests/ii-0010-test
*** texinfo-4.12/install-info/tests/ii-0010-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0010-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii10-XXXXXXXX`
+ cp ${testdir}/ii-0010-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0010-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0010-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0011-expected-dir-file texinfo-4.13/install-info/tests/ii-0011-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0011-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0011-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).              Large hooved animal native to the African savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0011-input-dir-file texinfo-4.13/install-info/tests/ii-0011-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0011-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0011-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0011-input-info-file texinfo-4.13/install-info/tests/ii-0011-input-info-file
*** texinfo-4.12/install-info/tests/ii-0011-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0011-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).              Large hooved animal native to the African savannah.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0011-test texinfo-4.13/install-info/tests/ii-0011-test
*** texinfo-4.12/install-info/tests/ii-0011-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0011-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii11-XXXXXXXX`
+ cp ${testdir}/ii-0011-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --no-indent ${testdir}/ii-0011-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0011-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0012-expected-dir-file texinfo-4.13/install-info/tests/ii-0012-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0012-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0012-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Large hooved animal native to the African 
+                                   savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0012-input-dir-file texinfo-4.13/install-info/tests/ii-0012-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0012-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0012-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Large hooved Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0012-input-info-file texinfo-4.13/install-info/tests/ii-0012-input-info-file
*** texinfo-4.12/install-info/tests/ii-0012-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0012-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).              Large hooved animal native to the African savannah.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0012-test texinfo-4.13/install-info/tests/ii-0012-test
*** texinfo-4.12/install-info/tests/ii-0012-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0012-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii12-XXXXXXXX`
+ cp ${testdir}/ii-0012-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0012-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0012-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0013-expected-dir-file texinfo-4.13/install-info/tests/ii-0013-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0013-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0013-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Large hooved Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0013-input-dir-file texinfo-4.13/install-info/tests/ii-0013-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0013-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0013-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Large hooved Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0013-input-info-file texinfo-4.13/install-info/tests/ii-0013-input-info-file
*** texinfo-4.12/install-info/tests/ii-0013-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0013-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0013-test texinfo-4.13/install-info/tests/ii-0013-test
*** texinfo-4.12/install-info/tests/ii-0013-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0013-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii13-XXXXXXXX`
+ cp ${testdir}/ii-0013-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --keep-old ${testdir}/ii-0013-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0013-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0014-expected-dir-file texinfo-4.13/install-info/tests/ii-0014-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0014-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0014-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Large hooved animal native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0014-input-dir-file texinfo-4.13/install-info/tests/ii-0014-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0014-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0014-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   A large hooved Wildebeest native to the 
+                                   African savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0014-input-info-file texinfo-4.13/install-info/tests/ii-0014-input-info-file
*** texinfo-4.12/install-info/tests/ii-0014-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0014-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                   Large hooved animal native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0014-test texinfo-4.13/install-info/tests/ii-0014-test
*** texinfo-4.12/install-info/tests/ii-0014-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0014-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii14-XXXXXXXX`
+ cp ${testdir}/ii-0014-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0014-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0014-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0015-expected-dir-file texinfo-4.13/install-info/tests/ii-0015-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0015-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0015-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Large hooved animal native to the African 
+                                   savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0015-input-dir-file texinfo-4.13/install-info/tests/ii-0015-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0015-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0015-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0015-input-info-file texinfo-4.13/install-info/tests/ii-0015-input-info-file
*** texinfo-4.12/install-info/tests/ii-0015-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0015-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,12 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                   Large hooved animal native to the African
+                                   savannah.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0015-test texinfo-4.13/install-info/tests/ii-0015-test
*** texinfo-4.12/install-info/tests/ii-0015-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0015-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii15-XXXXXXXX`
+ cp ${testdir}/ii-0015-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0015-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0015-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0016-expected-dir-file texinfo-4.13/install-info/tests/ii-0016-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0016-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0016-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0016-input-dir-file texinfo-4.13/install-info/tests/ii-0016-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0016-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0016-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0016-input-info-file texinfo-4.13/install-info/tests/ii-0016-input-info-file
*** texinfo-4.12/install-info/tests/ii-0016-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0016-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,7 ----
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0016-test texinfo-4.13/install-info/tests/ii-0016-test
*** texinfo-4.12/install-info/tests/ii-0016-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0016-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii16-XXXXXXXX`
+ cp ${testdir}/ii-0016-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --silent ${testdir}/ii-0016-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0016-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0017-expected-dir-file texinfo-4.13/install-info/tests/ii-0017-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0017-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0017-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,18 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0017-input-dir-file texinfo-4.13/install-info/tests/ii-0017-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0017-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0017-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,15 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0017-input-info-file texinfo-4.13/install-info/tests/ii-0017-input-info-file
*** texinfo-4.12/install-info/tests/ii-0017-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0017-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0017-test texinfo-4.13/install-info/tests/ii-0017-test
*** texinfo-4.12/install-info/tests/ii-0017-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0017-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii17-XXXXXXXX`
+ cp ${testdir}/ii-0017-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0017-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0017-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0018-input-info-file texinfo-4.13/install-info/tests/ii-0018-input-info-file
*** texinfo-4.12/install-info/tests/ii-0018-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0018-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0018-test texinfo-4.13/install-info/tests/ii-0018-test
*** texinfo-4.12/install-info/tests/ii-0018-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0018-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,25 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii18-XXXXXXXX`
+ cp ${testdir}/ii-0018-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0018-input-info-file $outputdirfile 2>/dev/null
+ retval=$?
+ if [ "x$retval" != "x1" ]; then
+   exit $retval
+ fi
+ 
+ rm -f $outputdirfile
+ exit 0
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0019-input-dir-file texinfo-4.13/install-info/tests/ii-0019-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0019-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0019-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,2 ----
+ 
+ 
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0019-input-info-file texinfo-4.13/install-info/tests/ii-0019-input-info-file
*** texinfo-4.12/install-info/tests/ii-0019-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0019-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0019-test texinfo-4.13/install-info/tests/ii-0019-test
*** texinfo-4.12/install-info/tests/ii-0019-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0019-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,25 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii19-XXXXXXXX`
+ cp ${testdir}/ii-0019-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0019-input-info-file $outputdirfile 2>/dev/null
+ retval=$?
+ if [ "x$retval" != "x1" ]; then
+   exit $retval
+ fi
+ 
+ rm -f $outputdirfile
+ exit 0
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0020-expected-dir-file texinfo-4.13/install-info/tests/ii-0020-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0020-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0020-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,27 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ 
+ Miscellaneous
+ * ii-0020-input-info-file: (ii-0020-input-info-file).
+                                 Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0020-input-dir-file texinfo-4.13/install-info/tests/ii-0020-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0020-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0020-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0020-input-info-file texinfo-4.13/install-info/tests/ii-0020-input-info-file
*** texinfo-4.12/install-info/tests/ii-0020-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0020-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,7 ----
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0020-test texinfo-4.13/install-info/tests/ii-0020-test
*** texinfo-4.12/install-info/tests/ii-0020-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0020-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,27 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii20-XXXXXXXX`
+ cp ${testdir}/ii-0020-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ ${install_info} --description='Wildebeest native to Africa.' ${testdir}/ii-0020-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0020-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0021-expected-dir-file texinfo-4.13/install-info/tests/ii-0021-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0021-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0021-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * ii-0021-input-info-file: (ii-0021-input-info-file).
+                                 Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0021-input-dir-file texinfo-4.13/install-info/tests/ii-0021-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0021-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0021-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0021-input-info-file texinfo-4.13/install-info/tests/ii-0021-input-info-file
*** texinfo-4.12/install-info/tests/ii-0021-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0021-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,7 ----
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0021-test texinfo-4.13/install-info/tests/ii-0021-test
*** texinfo-4.12/install-info/tests/ii-0021-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0021-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,27 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii21-XXXXXXXX`
+ cp ${testdir}/ii-0021-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ ${install_info} --section="Animals" --description='Wildebeest native to Africa.' ${testdir}/ii-0021-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0021-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0022-expected-dir-file texinfo-4.13/install-info/tests/ii-0022-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0022-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0022-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,27 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Hippopotamus: (hippo).        A large semi-aquatic African mammal.
+ 
+ Miscellaneous
+ * Gnu: (gnu).
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0022-input-dir-file texinfo-4.13/install-info/tests/ii-0022-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0022-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0022-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Hippopotamus: (hippo).        A large semi-aquatic African mammal.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0022-input-info-file texinfo-4.13/install-info/tests/ii-0022-input-info-file
*** texinfo-4.12/install-info/tests/ii-0022-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0022-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,7 ----
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0022-test texinfo-4.13/install-info/tests/ii-0022-test
*** texinfo-4.12/install-info/tests/ii-0022-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0022-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii22-XXXXXXXX`
+ cp ${testdir}/ii-0022-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --name='* Gnu: (gnu).' ${testdir}/ii-0022-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0022-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0023-expected-dir-file texinfo-4.13/install-info/tests/ii-0023-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0023-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0023-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,26 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ 
+ Miscellaneous
+ * Gnu: (ii-0023-input-info-file).
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0023-input-dir-file texinfo-4.13/install-info/tests/ii-0023-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0023-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0023-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0023-input-info-file texinfo-4.13/install-info/tests/ii-0023-input-info-file
*** texinfo-4.12/install-info/tests/ii-0023-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0023-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,7 ----
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0023-test texinfo-4.13/install-info/tests/ii-0023-test
*** texinfo-4.12/install-info/tests/ii-0023-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0023-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii23-XXXXXXXX`
+ cp ${testdir}/ii-0023-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --name="Gnu" ${testdir}/ii-0023-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0023-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0024-expected-dir-file texinfo-4.13/install-info/tests/ii-0024-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0024-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0024-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,26 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ 
+ Antlered Animals
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0024-input-dir-file texinfo-4.13/install-info/tests/ii-0024-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0024-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0024-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0024-input-info-file texinfo-4.13/install-info/tests/ii-0024-input-info-file
*** texinfo-4.12/install-info/tests/ii-0024-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0024-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0024-test texinfo-4.13/install-info/tests/ii-0024-test
*** texinfo-4.12/install-info/tests/ii-0024-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0024-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii24-XXXXXXXX`
+ cp ${testdir}/ii-0024-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --section="Antlered Animals" ${testdir}/ii-0024-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0024-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0025-expected-dir-file texinfo-4.13/install-info/tests/ii-0025-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0025-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0025-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0025-input-dir-file texinfo-4.13/install-info/tests/ii-0025-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0025-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0025-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0025-input-info-file texinfo-4.13/install-info/tests/ii-0025-input-info-file
*** texinfo-4.12/install-info/tests/ii-0025-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0025-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Antlered Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0025-test texinfo-4.13/install-info/tests/ii-0025-test
*** texinfo-4.12/install-info/tests/ii-0025-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0025-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii25-XXXXXXXX`
+ cp ${testdir}/ii-0025-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --section="Animals" ${testdir}/ii-0025-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0025-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0026-expected-dir-file texinfo-4.13/install-info/tests/ii-0026-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0026-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0026-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to the African savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0026-input-dir-file texinfo-4.13/install-info/tests/ii-0026-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0026-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0026-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0026-input-info-file texinfo-4.13/install-info/tests/ii-0026-input-info-file
*** texinfo-4.12/install-info/tests/ii-0026-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0026-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0026-test texinfo-4.13/install-info/tests/ii-0026-test
*** texinfo-4.12/install-info/tests/ii-0026-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0026-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii26-XXXXXXXX`
+ cp ${testdir}/ii-0026-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --entry="* Gnu: (gnu).             Wildebeest native to the African savannah." ${testdir}/ii-0026-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0026-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0027-expected-dir-file texinfo-4.13/install-info/tests/ii-0027-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0027-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0027-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,26 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ 
+ Antlered Animals
+ * Gnu: (gnu).                   Wildebeest native to the African savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0027-input-dir-file texinfo-4.13/install-info/tests/ii-0027-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0027-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0027-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0027-input-info-file texinfo-4.13/install-info/tests/ii-0027-input-info-file
*** texinfo-4.12/install-info/tests/ii-0027-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0027-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0027-test texinfo-4.13/install-info/tests/ii-0027-test
*** texinfo-4.12/install-info/tests/ii-0027-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0027-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii27-XXXXXXXX`
+ cp ${testdir}/ii-0027-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --entry="* Gnu: (gnu).             Wildebeest native to the African savannah." --section="Antlered Animals" ${testdir}/ii-0027-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0027-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0028-expected-dir-file texinfo-4.13/install-info/tests/ii-0028-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0028-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0028-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Wildebeest: (gnu).            Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0028-input-dir-file texinfo-4.13/install-info/tests/ii-0028-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0028-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0028-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0028-input-info-file texinfo-4.13/install-info/tests/ii-0028-input-info-file
*** texinfo-4.12/install-info/tests/ii-0028-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0028-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0028-test texinfo-4.13/install-info/tests/ii-0028-test
*** texinfo-4.12/install-info/tests/ii-0028-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0028-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii28-XXXXXXXX`
+ cp ${testdir}/ii-0028-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --name="* Wildebeest: (gnu)." ${testdir}/ii-0028-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0028-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0029-expected-dir-file texinfo-4.13/install-info/tests/ii-0029-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0029-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0029-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Wildebeest: (ii-0029-input-info-file).
+                                 Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0029-input-dir-file texinfo-4.13/install-info/tests/ii-0029-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0029-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0029-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0029-input-info-file texinfo-4.13/install-info/tests/ii-0029-input-info-file
*** texinfo-4.12/install-info/tests/ii-0029-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0029-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0029-test texinfo-4.13/install-info/tests/ii-0029-test
*** texinfo-4.12/install-info/tests/ii-0029-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0029-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii29-XXXXXXXX`
+ cp ${testdir}/ii-0029-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --name="Wildebeest" ${testdir}/ii-0029-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0029-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0030-expected-dir-file texinfo-4.13/install-info/tests/ii-0030-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0030-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0030-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to the African savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0030-input-dir-file texinfo-4.13/install-info/tests/ii-0030-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0030-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0030-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0030-input-info-file texinfo-4.13/install-info/tests/ii-0030-input-info-file
*** texinfo-4.12/install-info/tests/ii-0030-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0030-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0030-test texinfo-4.13/install-info/tests/ii-0030-test
*** texinfo-4.12/install-info/tests/ii-0030-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0030-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii30-XXXXXXXX`
+ cp ${testdir}/ii-0030-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --description="Wildebeest native to the African savannah." ${testdir}/ii-0030-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0030-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0031-expected-dir-file texinfo-4.13/install-info/tests/ii-0031-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0031-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0031-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Wildebeest: (gnu).            Wildebeest native to the African savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0031-input-dir-file texinfo-4.13/install-info/tests/ii-0031-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0031-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0031-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0031-input-info-file texinfo-4.13/install-info/tests/ii-0031-input-info-file
*** texinfo-4.12/install-info/tests/ii-0031-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0031-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0031-test texinfo-4.13/install-info/tests/ii-0031-test
*** texinfo-4.12/install-info/tests/ii-0031-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0031-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii31-XXXXXXXX`
+ cp ${testdir}/ii-0031-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --name="* Wildebeest: (gnu)." --description="Wildebeest native to the African savannah." ${testdir}/ii-0031-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0031-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0032-expected-dir-file texinfo-4.13/install-info/tests/ii-0032-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0032-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0032-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0032-input-dir-file texinfo-4.13/install-info/tests/ii-0032-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0032-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0032-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0032-input-info-file texinfo-4.13/install-info/tests/ii-0032-input-info-file
*** texinfo-4.12/install-info/tests/ii-0032-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0032-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0032-test texinfo-4.13/install-info/tests/ii-0032-test
*** texinfo-4.12/install-info/tests/ii-0032-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0032-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii32-XXXXXXXX`
+ cp ${testdir}/ii-0032-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --regex='^Antlered Animals$' ${testdir}/ii-0032-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0032-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0033-expected-dir-file texinfo-4.13/install-info/tests/ii-0033-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0033-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0033-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,26 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ 
+ Miscellaneous
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0033-input-dir-file texinfo-4.13/install-info/tests/ii-0033-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0033-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0033-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0033-input-info-file texinfo-4.13/install-info/tests/ii-0033-input-info-file
*** texinfo-4.12/install-info/tests/ii-0033-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0033-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,10 ----
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0033-test texinfo-4.13/install-info/tests/ii-0033-test
*** texinfo-4.12/install-info/tests/ii-0033-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0033-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii33-XXXXXXXX`
+ cp ${testdir}/ii-0033-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --regex='^Antlered Animals$' ${testdir}/ii-0033-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0033-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0034-expected-dir-file texinfo-4.13/install-info/tests/ii-0034-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0034-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0034-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0034-input-dir-file texinfo-4.13/install-info/tests/ii-0034-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0034-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0034-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0034-input-info-file texinfo-4.13/install-info/tests/ii-0034-input-info-file
*** texinfo-4.12/install-info/tests/ii-0034-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0034-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,10 ----
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0034-test texinfo-4.13/install-info/tests/ii-0034-test
*** texinfo-4.12/install-info/tests/ii-0034-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0034-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii34-XXXXXXXX`
+ cp ${testdir}/ii-0034-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --regex='^Antlered Animals$' --section="Animals" ${testdir}/ii-0034-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0034-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0035-expected-dir-file texinfo-4.13/install-info/tests/ii-0035-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0035-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0035-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0035-input-dir-file texinfo-4.13/install-info/tests/ii-0035-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0035-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0035-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0035-input-info-file texinfo-4.13/install-info/tests/ii-0035-input-info-file
*** texinfo-4.12/install-info/tests/ii-0035-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0035-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Antlered Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0035-test texinfo-4.13/install-info/tests/ii-0035-test
*** texinfo-4.12/install-info/tests/ii-0035-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0035-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii35-XXXXXXXX`
+ cp ${testdir}/ii-0035-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --regex='^Antlered Animals$' --section="Animals" ${testdir}/ii-0035-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0035-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0036-expected-dir-file texinfo-4.13/install-info/tests/ii-0036-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0036-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0036-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0036-input-dir-file texinfo-4.13/install-info/tests/ii-0036-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0036-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0036-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0036-input-info-file texinfo-4.13/install-info/tests/ii-0036-input-info-file
*** texinfo-4.12/install-info/tests/ii-0036-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0036-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Antlered Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0036-test texinfo-4.13/install-info/tests/ii-0036-test
*** texinfo-4.12/install-info/tests/ii-0036-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0036-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii36-XXXXXXXX`
+ cp ${testdir}/ii-0036-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --regex='[Aa]nimal[s]' ${testdir}/ii-0036-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0036-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0037-expected-dir-file texinfo-4.13/install-info/tests/ii-0037-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0037-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0037-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0037-input-dir-file texinfo-4.13/install-info/tests/ii-0037-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0037-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0037-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0037-input-info-file texinfo-4.13/install-info/tests/ii-0037-input-info-file
*** texinfo-4.12/install-info/tests/ii-0037-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0037-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Antlered Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0037-test texinfo-4.13/install-info/tests/ii-0037-test
*** texinfo-4.12/install-info/tests/ii-0037-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0037-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii37-XXXXXXXX`
+ cp ${testdir}/ii-0037-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --section '^Antlered Animals$' Animals ${testdir}/ii-0037-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0037-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0038-expected-dir-file texinfo-4.13/install-info/tests/ii-0038-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0038-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0038-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,29 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ * Wildebeest: (gnu).            Wildebeest native to the African savannah.
+ 
+ Antlered Animals
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ * Wildebeest: (gnu).            Wildebeest native to the African savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0038-input-dir-file texinfo-4.13/install-info/tests/ii-0038-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0038-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0038-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0038-input-info-file texinfo-4.13/install-info/tests/ii-0038-input-info-file
*** texinfo-4.12/install-info/tests/ii-0038-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0038-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,7 ----
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0038-test texinfo-4.13/install-info/tests/ii-0038-test
*** texinfo-4.12/install-info/tests/ii-0038-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0038-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii38-XXXXXXXX`
+ cp ${testdir}/ii-0038-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --section="Animals" --section="Antlered Animals" --entry="* Gnu: (gnu).  Wildebeest native to Africa." --entry="* Wildebeest: (gnu).  Wildebeest native to the African savannah." ${testdir}/ii-0038-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0038-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0039-expected-dir-file texinfo-4.13/install-info/tests/ii-0039-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0039-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0039-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).  Wildebeest native to the African continent.
+                (this item contains disputed material).
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0039-input-dir-file texinfo-4.13/install-info/tests/ii-0039-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0039-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0039-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0039-input-info-file texinfo-4.13/install-info/tests/ii-0039-input-info-file
*** texinfo-4.12/install-info/tests/ii-0039-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0039-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0039-test texinfo-4.13/install-info/tests/ii-0039-test
*** texinfo-4.12/install-info/tests/ii-0039-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0039-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,29 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii39-XXXXXXXX`
+ cp ${testdir}/ii-0039-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --entry="* Gnu: (gnu).  Wildebeest native to the African continent.
+                (this item contains disputed material)."  --no-indent ${testdir}/ii-0039-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0039-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0040-expected-dir-file texinfo-4.13/install-info/tests/ii-0040-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0040-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0040-expected-dir-file	Thu May 22 05:11:33 2008
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu). A wildebeest native to the African savannah.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0040-input-dir-file texinfo-4.13/install-info/tests/ii-0040-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0040-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0040-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0040-input-info-file texinfo-4.13/install-info/tests/ii-0040-input-info-file
*** texinfo-4.12/install-info/tests/ii-0040-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0040-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0040-test texinfo-4.13/install-info/tests/ii-0040-test
*** texinfo-4.12/install-info/tests/ii-0040-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0040-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii40-XXXXXXXX`
+ cp ${testdir}/ii-0040-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --name="* Gnu: (gnu)." --description="A wildebeest native to the African savannah." --no-indent ${testdir}/ii-0040-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0040-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
Files texinfo-4.12/install-info/tests/ii-0041-expected-dir-file.gz and texinfo-4.13/install-info/tests/ii-0041-expected-dir-file.gz differ
Files texinfo-4.12/install-info/tests/ii-0041-input-dir-file.gz and texinfo-4.13/install-info/tests/ii-0041-input-dir-file.gz differ
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0041-input-info-file texinfo-4.13/install-info/tests/ii-0041-input-info-file
*** texinfo-4.12/install-info/tests/ii-0041-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0041-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0041-test texinfo-4.13/install-info/tests/ii-0041-test
*** texinfo-4.12/install-info/tests/ii-0041-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0041-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,32 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ tempfile=`mktemp ii41-XXXXXXXX`
+ outputdirfile=$tempfile.gz
+ cp ${testdir}/ii-0041-input-dir-file.gz $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ # when copying in distcheck, source will be readonly.
+ chmod u+rw $outputdirfile || exit $?
+ 
+ ${install_info} ${testdir}/ii-0041-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ zdiff ${testdir}/ii-0041-expected-dir-file.gz $outputdirfile
+ retval=$?
+ 
+ rm -f $tempfile $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0042-expected-dir-file texinfo-4.13/install-info/tests/ii-0042-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0042-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0042-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,29 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animal Kingdom
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ 
+ Animalia
+ * Gnu: (gnu).                   Wildebeest native to Africa.
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0042-input-dir-file texinfo-4.13/install-info/tests/ii-0042-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0042-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0042-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0042-input-info-file texinfo-4.13/install-info/tests/ii-0042-input-info-file
*** texinfo-4.12/install-info/tests/ii-0042-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0042-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,15 ----
+ INFO-DIR-SECTION Animalia
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ INFO-DIR-SECTION Animal Kingdom
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0042-test texinfo-4.13/install-info/tests/ii-0042-test
*** texinfo-4.12/install-info/tests/ii-0042-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0042-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii42-XXXXXXXX`
+ cp ${testdir}/ii-0042-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0042-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0042-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0043-expected-dir-file texinfo-4.13/install-info/tests/ii-0043-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0043-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0043-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,46 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Astronomy
+ * Mars: (mars).                 Postcards from the Red Planet.
+ 
+ Biology
+ * Alien Autopsy: (mars).        A biological account of an alien autopsy.
+ 
+ Chemistry
+ * Making Gold: (gold).          How to turn lead into gold.
+ 
+ Dentistry
+ * On the Cheap: (dentistry).    Do it yourself dentistry made easy.
+ 
+ Education
+ * Dog Training: (dogs).         Teaching old dogs new tricks.
+ 
+ Forestry
+ * The Last Tree: (forest).      Clear cutting practises in North America.
+ 
+ Geography
+ * The Dark Continent (africa).  A complete and total history.
+ 
+ History
+ * The Fall of Proprietary Software: (gnu).
+                                 How the world came to reject slavery.
+ 
+ Immunology
+ * Beating the flu: (flu).       Three simple steps to beating influenza.
+ 
+ Jekyllism
+ * Science Gone Mad (hyde).      A personal account of self-medication.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0043-input-dir-file texinfo-4.13/install-info/tests/ii-0043-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0043-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0043-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,43 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Astronomy
+ * Mars: (mars).                 Postcards from the Red Planet.
+ 
+ Biology
+ * Alien Autopsy: (mars).        A biological account of an alien autopsy.
+ 
+ Chemistry
+ * Making Gold: (gold).          How to turn lead into gold.
+ 
+ Dentistry
+ * On the Cheap: (dentistry).    Do it yourself dentistry made easy.
+ 
+ Education
+ * Dog Training: (dogs).         Teaching old dogs new tricks.
+ 
+ Forestry
+ * The Last Tree: (forest).      Clear cutting practises in North America.
+ 
+ History
+ * The Fall of Proprietary Software: (gnu).
+                                 How the world came to reject slavery.
+ 
+ Immunology
+ * Beating the flu: (flu).       Three simple steps to beating influenza.
+ 
+ Jekyllism
+ * Science Gone Mad (hyde).      A personal account of self-medication.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0043-input-info-file texinfo-4.13/install-info/tests/ii-0043-input-info-file
*** texinfo-4.12/install-info/tests/ii-0043-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0043-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Geography
+ START-INFO-DIR-ENTRY
+ * The Dark Continent (africa).   A complete and total history.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0043-test texinfo-4.13/install-info/tests/ii-0043-test
*** texinfo-4.12/install-info/tests/ii-0043-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0043-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii43-XXXXXXXX`
+ cp ${testdir}/ii-0043-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} ${testdir}/ii-0043-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0043-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0044-expected-dir-file texinfo-4.13/install-info/tests/ii-0044-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0044-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0044-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0044-input-dir-file texinfo-4.13/install-info/tests/ii-0044-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0044-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0044-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,25 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (ii-0044-input-info-file).
+                                 Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0044-input-info-file texinfo-4.13/install-info/tests/ii-0044-input-info-file
*** texinfo-4.12/install-info/tests/ii-0044-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0044-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0044-test texinfo-4.13/install-info/tests/ii-0044-test
*** texinfo-4.12/install-info/tests/ii-0044-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0044-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii44-XXXXXXXX`
+ cp ${testdir}/ii-0044-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --remove ${testdir}/ii-0044-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0044-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0045-expected-dir-file texinfo-4.13/install-info/tests/ii-0045-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0045-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0045-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0045-input-dir-file texinfo-4.13/install-info/tests/ii-0045-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0045-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0045-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,27 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (ii-0045-input-info-file).
+                                 Wildebeest native to Africa.
+ * Wildebesst: (ii-0045-input-info-file).
+                                 Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0045-input-info-file texinfo-4.13/install-info/tests/ii-0045-input-info-file
*** texinfo-4.12/install-info/tests/ii-0045-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0045-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,12 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ * Wildebeest: (gnu).             Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0045-test texinfo-4.13/install-info/tests/ii-0045-test
*** texinfo-4.12/install-info/tests/ii-0045-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0045-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii45-XXXXXXXX`
+ cp ${testdir}/ii-0045-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --remove ${testdir}/ii-0045-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0045-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0046-expected-dir-file texinfo-4.13/install-info/tests/ii-0046-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0046-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0046-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0046-input-dir-file texinfo-4.13/install-info/tests/ii-0046-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0046-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0046-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,24 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
+ * Gnu: (gnu).                   Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0046-test texinfo-4.13/install-info/tests/ii-0046-test
*** texinfo-4.12/install-info/tests/ii-0046-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0046-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii46-XXXXXXXX`
+ cp ${testdir}/ii-0046-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --remove-exactly gnu $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0046-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0047-expected-dir-file texinfo-4.13/install-info/tests/ii-0047-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0047-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0047-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,16 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0047-input-dir-file texinfo-4.13/install-info/tests/ii-0047-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0047-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0047-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,19 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Gnu: (ii-0047-input-info-file).
+                                 Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0047-input-info-file texinfo-4.13/install-info/tests/ii-0047-input-info-file
*** texinfo-4.12/install-info/tests/ii-0047-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0047-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0047-test texinfo-4.13/install-info/tests/ii-0047-test
*** texinfo-4.12/install-info/tests/ii-0047-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0047-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii47-XXXXXXXX`
+ cp ${testdir}/ii-0047-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --remove ${testdir}/ii-0047-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0047-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0048-expected-dir-file texinfo-4.13/install-info/tests/ii-0048-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0048-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0048-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,17 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0048-input-dir-file texinfo-4.13/install-info/tests/ii-0048-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0048-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0048-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,19 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Gnu: (ii-0048-input-info-file).
+                                 Wildebeest native to Africa.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0048-input-info-file texinfo-4.13/install-info/tests/ii-0048-input-info-file
*** texinfo-4.12/install-info/tests/ii-0048-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0048-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0048-test texinfo-4.13/install-info/tests/ii-0048-test
*** texinfo-4.12/install-info/tests/ii-0048-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0048-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii48-XXXXXXXX`
+ cp ${testdir}/ii-0048-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --remove --keep-old ${testdir}/ii-0048-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0048-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0049-expected-dir-file texinfo-4.13/install-info/tests/ii-0049-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0049-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0049-expected-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0049-input-dir-file texinfo-4.13/install-info/tests/ii-0049-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0049-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0049-input-dir-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,23 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * Aardvark: (aardvark).         Medium-sized African mammal.
+ * Baboon: (baboon).             A monkey from Africa.
+ * Chameleon: (chameleon).       A lizard from Africa.
+ * Deer: (deer).                 Ruminent antlered mammal.
+ * Emu: (emu).                   A flightless bird from Australia.
+ * Fisher: (fisher).             A marten from North America.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0049-input-info-file texinfo-4.13/install-info/tests/ii-0049-input-info-file
*** texinfo-4.12/install-info/tests/ii-0049-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0049-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0049-test texinfo-4.13/install-info/tests/ii-0049-test
*** texinfo-4.12/install-info/tests/ii-0049-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0049-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,28 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii49-XXXXXXXX`
+ cp ${testdir}/ii-0049-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ ${install_info} --remove ${testdir}/ii-0049-input-info-file $outputdirfile 2>/dev/null
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0049-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
Files texinfo-4.12/install-info/tests/ii-0050-expected-dir-file.gz and texinfo-4.13/install-info/tests/ii-0050-expected-dir-file.gz differ
Files texinfo-4.12/install-info/tests/ii-0050-input-dir-file.gz and texinfo-4.13/install-info/tests/ii-0050-input-dir-file.gz differ
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0050-input-info-file texinfo-4.13/install-info/tests/ii-0050-input-info-file
*** texinfo-4.12/install-info/tests/ii-0050-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0050-input-info-file	Tue Dec 25 16:28:33 2007
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * Gnu: (gnu).                    Wildebeest native to Africa.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest (plural, wildebeest or wildebeests), also called the gnu (pronounced /ËˆnuË�/ or /ËˆnjuË�/), is an antelope of the genus Connochaetes. It is a hooved (ungulate) mammal.  (Taken from wikepedia.)
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0050-test texinfo-4.13/install-info/tests/ii-0050-test
*** texinfo-4.12/install-info/tests/ii-0050-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0050-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,33 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ tempfile=`mktemp ii50-XXXXXXXX`
+ outputdirfile=$tempfile.gz
+ cp ${testdir}/ii-0050-input-dir-file.gz $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ 
+ # when copying in distcheck, source will be readonly.
+ chmod u+rw $outputdirfile || exit $?
+ 
+ ${install_info} --remove ${testdir}/ii-0050-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ zdiff ${testdir}/ii-0050-expected-dir-file.gz $outputdirfile
+ retval=$?
+ 
+ rm -f $tempfile $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0051-expected-dir-file texinfo-4.13/install-info/tests/ii-0051-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0051-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0051-expected-dir-file	Sun May 11 11:16:48 2008
***************
*** 0 ****
--- 1,18 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * config.status: (gnu).         Following text.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0051-input-dir-file texinfo-4.13/install-info/tests/ii-0051-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0051-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0051-input-dir-file	Sun May 11 11:15:25 2008
***************
*** 0 ****
--- 1,15 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0051-input-info-file texinfo-4.13/install-info/tests/ii-0051-input-info-file
*** texinfo-4.12/install-info/tests/ii-0051-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0051-input-info-file	Sun May 11 11:15:26 2008
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * config.status: (gnu).  Following text.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0051-test texinfo-4.13/install-info/tests/ii-0051-test
*** texinfo-4.12/install-info/tests/ii-0051-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0051-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,30 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii51-XXXXXXXX`
+ cp ${testdir}/ii-0051-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ # Allow periods in the menu item name, e.g., config.status.
+ # Report from Ulrich Mueller, 7 May 2008 01:56:38.
+ ${install_info} ${testdir}/ii-0051-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0051-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0052-expected-dir-file texinfo-4.13/install-info/tests/ii-0052-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0052-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0052-expected-dir-file	Mon May 12 05:31:04 2008
***************
*** 0 ****
--- 1,19 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * config.status: (gnu)config.status Invocation.
+                                 Following text.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0052-input-dir-file texinfo-4.13/install-info/tests/ii-0052-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0052-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0052-input-dir-file	Mon May 12 05:31:04 2008
***************
*** 0 ****
--- 1,15 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0052-input-info-file texinfo-4.13/install-info/tests/ii-0052-input-info-file
*** texinfo-4.12/install-info/tests/ii-0052-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0052-input-info-file	Mon May 12 05:31:04 2008
***************
*** 0 ****
--- 1,11 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * config.status: (gnu)config.status Invocation.  Following text.
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0052-test texinfo-4.13/install-info/tests/ii-0052-test
*** texinfo-4.12/install-info/tests/ii-0052-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0052-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,30 ----
+ #!/bin/sh
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs || exit 1
+ 
+ outputdirfile=`mktemp ii52-XXXXXXXX`
+ cp ${testdir}/ii-0052-input-dir-file $outputdirfile
+ if [ "x$?" != "x0" ]; then
+   exit 1
+ fi
+ 
+ # Allow periods in the node name too, e.g., "config.status Invocation".
+ # Report from Ulrich Mueller, 7 May 2008 01:56:38.
+ ${install_info} ${testdir}/ii-0052-input-info-file $outputdirfile
+ retval=$?
+ if [ "x$retval" != "x0" ]; then
+   exit $retval
+ fi
+ 
+ diff ${testdir}/ii-0052-expected-dir-file $outputdirfile
+ retval=$?
+ 
+ rm -f $outputdirfile
+ exit $retval
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0053-expected-dir-file texinfo-4.13/install-info/tests/ii-0053-expected-dir-file
*** texinfo-4.12/install-info/tests/ii-0053-expected-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0053-expected-dir-file	Sun May 18 09:54:02 2008
***************
*** 0 ****
--- 1,19 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
+ 
+ Animals
+ * autoupdate: (autoconf)autoupdate Invocation.
+                                 Automatic update of `configure.ac'
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0053-input-dir-file texinfo-4.13/install-info/tests/ii-0053-input-dir-file
*** texinfo-4.12/install-info/tests/ii-0053-input-dir-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0053-input-dir-file	Sun May 18 09:54:02 2008
***************
*** 0 ****
--- 1,15 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ 
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ * Menu:
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0053-input-info-file texinfo-4.13/install-info/tests/ii-0053-input-info-file
*** texinfo-4.12/install-info/tests/ii-0053-input-info-file	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0053-input-info-file	Sun May 18 09:54:02 2008
***************
*** 0 ****
--- 1,12 ----
+ INFO-DIR-SECTION Animals
+ START-INFO-DIR-ENTRY
+ * autoupdate: (autoconf)autoupdate Invocation.
+                                 Automatic update of `configure.ac'
+ END-INFO-DIR-ENTRY
+ 
+ File: gnu,  Node: Top,  Next: Top,  Up: (dir)
+ 
+ Gnu
+ ***
+ 
+ The wildebeest.
diff -Nrc2 texinfo-4.12/install-info/tests/ii-0053-test texinfo-4.13/install-info/tests/ii-0053-test
*** texinfo-4.12/install-info/tests/ii-0053-test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/install-info/tests/ii-0053-test	Sat Jul 26 15:54:55 2008
***************
*** 0 ****
--- 1,20 ----
+ #!/bin/sh -e
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ . ./defs
+ 
+ outputdirfile=`mktemp ii53-XXXXXXXX`
+ cp ${testdir}/ii-0053-input-dir-file $outputdirfile
+ 
+ # Have to handle newlines in input dir entries, too.
+ ${install_info} ${testdir}/ii-0053-input-info-file $outputdirfile
+ diff ${testdir}/ii-0053-expected-dir-file $outputdirfile
+ 
+ rm -f $outputdirfile
+ exit 0
diff -Nrc2 texinfo-4.12/lib/Makefile.am texinfo-4.13/lib/Makefile.am
*** texinfo-4.12/lib/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/lib/Makefile.am	Sun Jul  1 11:07:36 2007
***************
*** 0 ****
--- 1,22 ----
+ # $Id: Makefile.am,v 1.11 2007/07/01 18:07:36 karl Exp $
+ # Makefile.am for texinfo/lib.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ noinst_LIBRARIES = libtxi.a
+ 
+ AM_CPPFLAGS = -I$(top_srcdir)			\
+   -I$(top_srcdir)/gnulib/lib			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\"
+ 
+ libtxi_a_SOURCES = substring.c xexit.c
+ 
+ EXTRA_DIST = README
diff -Nrc2 texinfo-4.12/lib/Makefile.in texinfo-4.13/lib/Makefile.in
*** texinfo-4.12/lib/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/lib/Makefile.in	Thu Sep 18 11:46:24 2008
***************
*** 0 ****
--- 1,670 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # $Id: Makefile.am,v 1.11 2007/07/01 18:07:36 karl Exp $
+ # Makefile.am for texinfo/lib.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ subdir = lib
+ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ LIBRARIES = $(noinst_LIBRARIES)
+ AR = ar
+ ARFLAGS = cru
+ libtxi_a_AR = $(AR) $(ARFLAGS)
+ libtxi_a_LIBADD =
+ am_libtxi_a_OBJECTS = substring.$(OBJEXT) xexit.$(OBJEXT)
+ libtxi_a_OBJECTS = $(am_libtxi_a_OBJECTS)
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(libtxi_a_SOURCES)
+ DIST_SOURCES = $(libtxi_a_SOURCES)
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ noinst_LIBRARIES = libtxi.a
+ AM_CPPFLAGS = -I$(top_srcdir)			\
+   -I$(top_srcdir)/gnulib/lib			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\"
+ 
+ libtxi_a_SOURCES = substring.c xexit.c
+ EXTRA_DIST = README
+ all: all-am
+ 
+ .SUFFIXES:
+ .SUFFIXES: .c .o .obj
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  lib/Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnu  lib/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ clean-noinstLIBRARIES:
+ 	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+ libtxi.a: $(libtxi_a_OBJECTS) $(libtxi_a_DEPENDENCIES) 
+ 	-rm -f libtxi.a
+ 	$(libtxi_a_AR) libtxi.a $(libtxi_a_OBJECTS) $(libtxi_a_LIBADD)
+ 	$(RANLIB) libtxi.a
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+ 
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/substring.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xexit.Po@am__quote@
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	mkid -fID $$unique
+ tags: TAGS
+ 
+ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	here=`pwd`; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ 	  test -n "$$unique" || unique=$$empty_fix; \
+ 	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ 	    $$tags $$unique; \
+ 	fi
+ ctags: CTAGS
+ CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ 	     $$tags $$unique
+ 
+ GTAGS:
+ 	here=`$(am__cd) $(top_builddir) && pwd` \
+ 	  && cd $(top_srcdir) \
+ 	  && gtags -i $(GTAGS_ARGS) $$here
+ 
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ check-am: all-am
+ check: check-am
+ all-am: Makefile $(LIBRARIES)
+ installdirs:
+ install: install-am
+ install-exec: install-exec-am
+ install-data: install-data-am
+ uninstall: uninstall-am
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-am
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ clean: clean-am
+ 
+ clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+ 
+ distclean: distclean-am
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-compile distclean-generic \
+ 	distclean-tags
+ 
+ dvi: dvi-am
+ 
+ dvi-am:
+ 
+ html: html-am
+ 
+ info: info-am
+ 
+ info-am:
+ 
+ install-data-am:
+ 
+ install-dvi: install-dvi-am
+ 
+ install-exec-am:
+ 
+ install-html: install-html-am
+ 
+ install-info: install-info-am
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-am
+ 
+ install-ps: install-ps-am
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+ 
+ mostlyclean-am: mostlyclean-compile mostlyclean-generic
+ 
+ pdf: pdf-am
+ 
+ pdf-am:
+ 
+ ps: ps-am
+ 
+ ps-am:
+ 
+ uninstall-am:
+ 
+ .MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ 	clean-noinstLIBRARIES ctags distclean distclean-compile \
+ 	distclean-generic distclean-tags distdir dvi dvi-am html \
+ 	html-am info info-am install install-am install-data \
+ 	install-data-am install-dvi install-dvi-am install-exec \
+ 	install-exec-am install-html install-html-am install-info \
+ 	install-info-am install-man install-pdf install-pdf-am \
+ 	install-ps install-ps-am install-strip installcheck \
+ 	installcheck-am installdirs maintainer-clean \
+ 	maintainer-clean-generic mostlyclean mostlyclean-compile \
+ 	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+ 	uninstall-am
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/lib/README texinfo-4.13/lib/README
*** texinfo-4.12/lib/README	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/lib/README	Sun Apr 11 10:56:46 2004
***************
*** 0 ****
--- 1,13 ----
+ $Id: README,v 1.3 2004/04/11 17:56:46 karl Exp $
+ texinfo/lib/README
+ 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ Common routines for the Texinfo programs.
+ 
+ Many are common to other GNU packages as well.
+ See the gnulib project at savannah: http://savannah.gnu.org/projects/gnulib
diff -Nrc2 texinfo-4.12/lib/substring.c texinfo-4.13/lib/substring.c
*** texinfo-4.12/lib/substring.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/lib/substring.c	Sun Jul  1 14:20:31 2007
***************
*** 0 ****
--- 1,34 ----
+ /* substring.c -- extract substring.
+    $Id: substring.c,v 1.5 2007/07/01 21:20:31 karl Exp $
+ 
+    Copyright (C) 1999, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ 
+ char *
+ substring (const char *start, const char *end)
+ {
+   char *result = xmalloc (end - start + 1);
+   char *scan_result = result;
+   const char *scan = start;
+ 
+   while (scan < end)
+     *scan_result++ = *scan++;
+ 
+   *scan_result = 0;
+   return result;
+ }
+ 
diff -Nrc2 texinfo-4.12/lib/xexit.c texinfo-4.13/lib/xexit.c
*** texinfo-4.12/lib/xexit.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/lib/xexit.c	Sun Jul  1 14:20:31 2007
***************
*** 0 ****
--- 1,87 ----
+ /* xexit.c -- exit with attention to return values and closing stdout.
+    $Id: xexit.c,v 1.8 2007/07/01 21:20:31 karl Exp $
+ 
+    Copyright (C) 1999, 2003, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ 
+ #include "system.h"
+ 
+ /* SunOS 4.1.1 gets STDC_HEADERS defined, but it doesn't provide
+    EXIT_FAILURE.  So far no system has defined one of EXIT_FAILURE and
+    EXIT_SUCCESS without the other.  */
+ #ifdef EXIT_SUCCESS
+  /* The following test is to work around the gross typo in
+     systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE
+     is defined to 0, not 1.  */
+ # if !EXIT_FAILURE
+ #  undef EXIT_FAILURE
+ #  define EXIT_FAILURE 1
+ # endif
+ #else /* not EXIT_SUCCESS */
+ # ifdef VMS /* these values suppress some messages; from gnuplot */
+ #   define EXIT_SUCCESS 1
+ #   define EXIT_FAILURE 0x10000002
+ # else /* not VMS */
+ #  define EXIT_SUCCESS 0
+ #  define EXIT_FAILURE 1
+ # endif /* not VMS */
+ #endif /* not EXIT_SUCCESS */
+ 
+ 
+ /* Flush stdout first, exit if failure (therefore, xexit should be
+    called to exit every program, not just `return' from main).
+    Otherwise, if EXIT_STATUS is zero, exit successfully, else
+    unsuccessfully.  */
+ 
+ void
+ xexit (int exit_status)
+ {
+   if (ferror (stdout))
+     {
+       fputs (_("ferror on stdout\n"), stderr);
+       exit_status = 1;
+     }
+   else if (fflush (stdout) != 0)
+     {
+       fputs (_("fflush error on stdout\n"), stderr);
+       exit_status = 1;
+     }
+ 
+   exit_status = exit_status == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
+ 
+   exit (exit_status);
+ }
+ 
+ 
+ /* Why do we care about stdout you may ask?  Here's why, from Jim
+    Meyering in the lib/closeout.c file.  */
+ 
+ /* If a program writes *anything* to stdout, that program should close
+    stdout and make sure that the close succeeds.  Otherwise, suppose that
+    you go to the extreme of checking the return status of every function
+    that does an explicit write to stdout.  The last printf can succeed in
+    writing to the internal stream buffer, and yet the fclose(stdout) could
+    still fail (due e.g., to a disk full error) when it tries to write
+    out that buffered data.  Thus, you would be left with an incomplete
+    output file and the offending program would exit successfully.
+ 
+    Besides, it's wasteful to check the return value from every call
+    that writes to stdout -- just let the internal stream state record
+    the failure.  That's what the ferror test is checking below.
+ 
+    It's important to detect such failures and exit nonzero because many
+    tools (most notably `make' and other build-management systems) depend
+    on being able to detect failure in other tools via their exit status.  */
diff -Nrc2 texinfo-4.12/makeinfo/Makefile.am texinfo-4.13/makeinfo/Makefile.am
*** texinfo-4.12/makeinfo/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/Makefile.am	Wed Jun 21 01:08:48 2006
***************
*** 0 ****
--- 1,32 ----
+ # $Id: Makefile.am,v 1.9 2006/06/21 08:08:48 akim Exp $
+ # Makefile.am for texinfo/makeinfo.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ bin_PROGRAMS = makeinfo
+ 
+ localedir = $(datadir)/locale
+ AM_CPPFLAGS = 					\
+   -I$(top_srcdir)				\
+   -I$(top_srcdir)/gnulib/lib 			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\"
+ LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL)
+ 
+ makeinfo_SOURCES = \
+   cmds.c cmds.h defun.c defun.h \
+   files.c files.h float.c float.h footnote.c footnote.h \
+   html.c html.h index.c index.h insertion.c insertion.h lang.c lang.h \
+   macro.c macro.h makeinfo.c makeinfo.h multi.c multi.h node.c node.h \
+   sectioning.c sectioning.h toc.c toc.h xml.c xml.h xref.c xref.h
+ 
+ EXTRA_DIST = README
+ 
+ SUBDIRS = tests
diff -Nrc2 texinfo-4.12/makeinfo/Makefile.in texinfo-4.13/makeinfo/Makefile.in
*** texinfo-4.12/makeinfo/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/Makefile.in	Thu Sep 18 11:46:24 2008
***************
*** 0 ****
--- 1,837 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # $Id: Makefile.am,v 1.9 2006/06/21 08:08:48 akim Exp $
+ # Makefile.am for texinfo/makeinfo.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ bin_PROGRAMS = makeinfo$(EXEEXT)
+ subdir = makeinfo
+ DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ am__installdirs = "$(DESTDIR)$(bindir)"
+ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+ PROGRAMS = $(bin_PROGRAMS)
+ am_makeinfo_OBJECTS = cmds.$(OBJEXT) defun.$(OBJEXT) files.$(OBJEXT) \
+ 	float.$(OBJEXT) footnote.$(OBJEXT) html.$(OBJEXT) \
+ 	index.$(OBJEXT) insertion.$(OBJEXT) lang.$(OBJEXT) \
+ 	macro.$(OBJEXT) makeinfo.$(OBJEXT) multi.$(OBJEXT) \
+ 	node.$(OBJEXT) sectioning.$(OBJEXT) toc.$(OBJEXT) \
+ 	xml.$(OBJEXT) xref.$(OBJEXT)
+ makeinfo_OBJECTS = $(am_makeinfo_OBJECTS)
+ makeinfo_LDADD = $(LDADD)
+ am__DEPENDENCIES_1 =
+ makeinfo_DEPENDENCIES = ../lib/libtxi.a \
+ 	$(top_builddir)/gnulib/lib/libgnu.a $(am__DEPENDENCIES_1)
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(makeinfo_SOURCES)
+ DIST_SOURCES = $(makeinfo_SOURCES)
+ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ 	html-recursive info-recursive install-data-recursive \
+ 	install-dvi-recursive install-exec-recursive \
+ 	install-html-recursive install-info-recursive \
+ 	install-pdf-recursive install-ps-recursive install-recursive \
+ 	installcheck-recursive installdirs-recursive pdf-recursive \
+ 	ps-recursive uninstall-recursive
+ RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
+   distclean-recursive maintainer-clean-recursive
+ ETAGS = etags
+ CTAGS = ctags
+ DIST_SUBDIRS = $(SUBDIRS)
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = $(datadir)/locale
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ AM_CPPFLAGS = \
+   -I$(top_srcdir)				\
+   -I$(top_srcdir)/gnulib/lib 			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\"
+ 
+ LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL)
+ makeinfo_SOURCES = \
+   cmds.c cmds.h defun.c defun.h \
+   files.c files.h float.c float.h footnote.c footnote.h \
+   html.c html.h index.c index.h insertion.c insertion.h lang.c lang.h \
+   macro.c macro.h makeinfo.c makeinfo.h multi.c multi.h node.c node.h \
+   sectioning.c sectioning.h toc.c toc.h xml.c xml.h xref.c xref.h
+ 
+ EXTRA_DIST = README
+ SUBDIRS = tests
+ all: all-recursive
+ 
+ .SUFFIXES:
+ .SUFFIXES: .c .o .obj
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  makeinfo/Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnu  makeinfo/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+ 	  ; then \
+ 	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ 	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ 	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ 	  else :; fi; \
+ 	done
+ 
+ uninstall-binPROGRAMS:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ 	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ 	done
+ 
+ clean-binPROGRAMS:
+ 	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+ makeinfo$(EXEEXT): $(makeinfo_OBJECTS) $(makeinfo_DEPENDENCIES) 
+ 	@rm -f makeinfo$(EXEEXT)
+ 	$(LINK) $(makeinfo_OBJECTS) $(makeinfo_LDADD) $(LIBS)
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+ 
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmds.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/defun.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/files.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/footnote.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/html.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/index.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/insertion.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lang.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/macro.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/makeinfo.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/multi.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/node.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sectioning.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/toc.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xml.Po@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xref.Po@am__quote@
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ 
+ # This directory's subdirectories are mostly independent; you can cd
+ # into them and run `make' without going through this Makefile.
+ # To change the values of `make' variables: instead of editing Makefiles,
+ # (1) if the variable is set in `config.status', edit `config.status'
+ #     (which will cause the Makefiles to be regenerated when you run `make');
+ # (2) otherwise, pass the desired values on the `make' command line.
+ $(RECURSIVE_TARGETS):
+ 	@failcom='exit 1'; \
+ 	for f in x $$MAKEFLAGS; do \
+ 	  case $$f in \
+ 	    *=* | --[!k]*);; \
+ 	    *k*) failcom='fail=yes';; \
+ 	  esac; \
+ 	done; \
+ 	dot_seen=no; \
+ 	target=`echo $@ | sed s/-recursive//`; \
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  echo "Making $$target in $$subdir"; \
+ 	  if test "$$subdir" = "."; then \
+ 	    dot_seen=yes; \
+ 	    local_target="$$target-am"; \
+ 	  else \
+ 	    local_target="$$target"; \
+ 	  fi; \
+ 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ 	  || eval $$failcom; \
+ 	done; \
+ 	if test "$$dot_seen" = "no"; then \
+ 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ 	fi; test -z "$$fail"
+ 
+ $(RECURSIVE_CLEAN_TARGETS):
+ 	@failcom='exit 1'; \
+ 	for f in x $$MAKEFLAGS; do \
+ 	  case $$f in \
+ 	    *=* | --[!k]*);; \
+ 	    *k*) failcom='fail=yes';; \
+ 	  esac; \
+ 	done; \
+ 	dot_seen=no; \
+ 	case "$@" in \
+ 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ 	  *) list='$(SUBDIRS)' ;; \
+ 	esac; \
+ 	rev=''; for subdir in $$list; do \
+ 	  if test "$$subdir" = "."; then :; else \
+ 	    rev="$$subdir $$rev"; \
+ 	  fi; \
+ 	done; \
+ 	rev="$$rev ."; \
+ 	target=`echo $@ | sed s/-recursive//`; \
+ 	for subdir in $$rev; do \
+ 	  echo "Making $$target in $$subdir"; \
+ 	  if test "$$subdir" = "."; then \
+ 	    local_target="$$target-am"; \
+ 	  else \
+ 	    local_target="$$target"; \
+ 	  fi; \
+ 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ 	  || eval $$failcom; \
+ 	done && test -z "$$fail"
+ tags-recursive:
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ 	done
+ ctags-recursive:
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ 	done
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	mkid -fID $$unique
+ tags: TAGS
+ 
+ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	here=`pwd`; \
+ 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ 	  include_option=--etags-include; \
+ 	  empty_fix=.; \
+ 	else \
+ 	  include_option=--include; \
+ 	  empty_fix=; \
+ 	fi; \
+ 	list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  if test "$$subdir" = .; then :; else \
+ 	    test ! -f $$subdir/TAGS || \
+ 	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+ 	  fi; \
+ 	done; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ 	  test -n "$$unique" || unique=$$empty_fix; \
+ 	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ 	    $$tags $$unique; \
+ 	fi
+ ctags: CTAGS
+ CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ 	     $$tags $$unique
+ 
+ GTAGS:
+ 	here=`$(am__cd) $(top_builddir) && pwd` \
+ 	  && cd $(top_srcdir) \
+ 	  && gtags -i $(GTAGS_ARGS) $$here
+ 
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ distdir: $(DISTFILES)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ 	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ 	  if test "$$subdir" = .; then :; else \
+ 	    test -d "$(distdir)/$$subdir" \
+ 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
+ 	    || exit 1; \
+ 	    distdir=`$(am__cd) $(distdir) && pwd`; \
+ 	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+ 	    (cd $$subdir && \
+ 	      $(MAKE) $(AM_MAKEFLAGS) \
+ 	        top_distdir="$$top_distdir" \
+ 	        distdir="$$distdir/$$subdir" \
+ 		am__remove_distdir=: \
+ 		am__skip_length_check=: \
+ 	        distdir) \
+ 	      || exit 1; \
+ 	  fi; \
+ 	done
+ check-am: all-am
+ check: check-recursive
+ all-am: Makefile $(PROGRAMS)
+ installdirs: installdirs-recursive
+ installdirs-am:
+ 	for dir in "$(DESTDIR)$(bindir)"; do \
+ 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: install-recursive
+ install-exec: install-exec-recursive
+ install-data: install-data-recursive
+ uninstall: uninstall-recursive
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-recursive
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ clean: clean-recursive
+ 
+ clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+ 
+ distclean: distclean-recursive
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-compile distclean-generic \
+ 	distclean-tags
+ 
+ dvi: dvi-recursive
+ 
+ dvi-am:
+ 
+ html: html-recursive
+ 
+ info: info-recursive
+ 
+ info-am:
+ 
+ install-data-am:
+ 
+ install-dvi: install-dvi-recursive
+ 
+ install-exec-am: install-binPROGRAMS
+ 
+ install-html: install-html-recursive
+ 
+ install-info: install-info-recursive
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-recursive
+ 
+ install-ps: install-ps-recursive
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-recursive
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-recursive
+ 
+ mostlyclean-am: mostlyclean-compile mostlyclean-generic
+ 
+ pdf: pdf-recursive
+ 
+ pdf-am:
+ 
+ ps: ps-recursive
+ 
+ ps-am:
+ 
+ uninstall-am: uninstall-binPROGRAMS
+ 
+ .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+ 	install-strip
+ 
+ .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ 	all all-am check check-am clean clean-binPROGRAMS \
+ 	clean-generic ctags ctags-recursive distclean \
+ 	distclean-compile distclean-generic distclean-tags distdir dvi \
+ 	dvi-am html html-am info info-am install install-am \
+ 	install-binPROGRAMS install-data install-data-am install-dvi \
+ 	install-dvi-am install-exec install-exec-am install-html \
+ 	install-html-am install-info install-info-am install-man \
+ 	install-pdf install-pdf-am install-ps install-ps-am \
+ 	install-strip installcheck installcheck-am installdirs \
+ 	installdirs-am maintainer-clean maintainer-clean-generic \
+ 	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+ 	ps ps-am tags tags-recursive uninstall uninstall-am \
+ 	uninstall-binPROGRAMS
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/makeinfo/README texinfo-4.13/makeinfo/README
*** texinfo-4.12/makeinfo/README	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/README	Sun Apr 11 10:56:46 2004
***************
*** 0 ****
--- 1,17 ----
+ $Id: README,v 1.3 2004/04/11 17:56:46 karl Exp $
+ texinfo/makeinfo/README
+ 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ makeinfo is a standalone program to convert Texinfo source into Info
+ files readable with standalone info or M-x info in Emacs.
+ 
+ makeinfo can also output other formats: plain ASCII (with --no-headers)
+ or HTML (with --html) or XML (with --xml).
+ 
+ The Emacs function M-x texinfo-format-buffer does more or less the same
+ job, but makeinfo is faster and gives better error messages.
diff -Nrc2 texinfo-4.12/makeinfo/cmds.c texinfo-4.13/makeinfo/cmds.c
*** texinfo-4.12/makeinfo/cmds.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/cmds.c	Thu May 22 05:11:34 2008
***************
*** 0 ****
--- 1,2184 ----
+ /* cmds.c -- Texinfo commands.
+    $Id: cmds.c,v 1.83 2008/04/09 17:07:31 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+    2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "mbswidth.h"
+ #include "cmds.h"
+ #include "defun.h"
+ #include "files.h"
+ #include "footnote.h"
+ #include "html.h"
+ #include "index.h"
+ #include "insertion.h"
+ #include "lang.h"
+ #include "macro.h"
+ #include "makeinfo.h"
+ #include "node.h"
+ #include "sectioning.h"
+ #include "toc.h"
+ #include "xml.h"
+ 
+ #ifdef TM_IN_SYS_TIME
+ #include <sys/time.h>
+ #else
+ #include <time.h>
+ #endif
+ 
+ /* Simple commands defined and only called here. */
+ static void cm_exampleindent (void),
+      cm_firstparagraphindent (void),
+      cm_fonttextsize (void),
+      cm_frenchspacing (void),
+      cm_geq (int arg),
+      cm_leq (int arg),
+      cm_minus (int arg),
+      cm_novalidate (void),
+      cm_paragraphindent (void);
+ 
+ /* Internals. */
+ static void cm_obsolete (int arg, int start, int end),
+      not_fixed_width (int arg);
+ 
+ /* The dispatch table.  */
+ COMMAND command_table[] = {
+   { "\t", insert_space, NO_BRACE_ARGS },
+   { "\n", insert_space, NO_BRACE_ARGS },
+   { " ", insert_space, NO_BRACE_ARGS },
+   { "!", cm_punct, NO_BRACE_ARGS },
+   { "\"", cm_accent_umlaut, MAYBE_BRACE_ARGS },
+   { "'", cm_accent_acute, MAYBE_BRACE_ARGS },
+   { "*", cm_asterisk, NO_BRACE_ARGS },
+   { ",", cm_accent_cedilla, MAYBE_BRACE_ARGS },
+   { "-", cm_no_op, NO_BRACE_ARGS },
+   { ".", cm_punct, NO_BRACE_ARGS },
+   { "/", cm_no_op, NO_BRACE_ARGS },
+   { ":", cm_colon, NO_BRACE_ARGS },
+   { "=", cm_accent, MAYBE_BRACE_ARGS },
+   { "?", cm_punct, NO_BRACE_ARGS },
+   { "@", insert_self, NO_BRACE_ARGS },
+   { "\\", insert_self, NO_BRACE_ARGS },
+   { "^", cm_accent_hat, MAYBE_BRACE_ARGS },
+   { "`", cm_accent_grave, MAYBE_BRACE_ARGS },
+   { "{", insert_self, NO_BRACE_ARGS },
+   { "|", cm_no_op, NO_BRACE_ARGS },
+   { "}", insert_self, NO_BRACE_ARGS },
+   { "~", cm_accent_tilde, MAYBE_BRACE_ARGS },
+   { "AA", cm_special_char, BRACE_ARGS },
+   { "AE", cm_special_char, BRACE_ARGS },
+   { "H", cm_accent, MAYBE_BRACE_ARGS },
+   { "L", cm_special_char, BRACE_ARGS },
+   { "LaTeX", cm_LaTeX, BRACE_ARGS },
+   { "O", cm_special_char, BRACE_ARGS },
+   { "OE", cm_special_char, BRACE_ARGS },
+   { "TeX", cm_TeX, BRACE_ARGS },
+   { "aa", cm_special_char, BRACE_ARGS },
+   { "abbr", cm_abbr, BRACE_ARGS },
+   { "acronym", cm_acronym, BRACE_ARGS },
+   { "ae", cm_special_char, BRACE_ARGS },
+   { "afivepaper", cm_ignore_line, NO_BRACE_ARGS },
+   { "afourlatex", cm_ignore_line, NO_BRACE_ARGS },
+   { "afourpaper", cm_ignore_line, NO_BRACE_ARGS },
+   { "afourwide", cm_ignore_line, NO_BRACE_ARGS },
+   { "alias", cm_alias, NO_BRACE_ARGS },
+   { "allowcodebreaks", cm_ignore_line, NO_BRACE_ARGS },
+   { "anchor", cm_anchor, BRACE_ARGS },
+   { "appendix", cm_appendix, NO_BRACE_ARGS },
+   { "appendixsection", cm_appendixsec, NO_BRACE_ARGS },
+   { "appendixsec", cm_appendixsec, NO_BRACE_ARGS },
+   { "appendixsubsec", cm_appendixsubsec, NO_BRACE_ARGS },
+   { "appendixsubsubsec", cm_appendixsubsubsec, NO_BRACE_ARGS },
+   { "arrow", cm_arrow, BRACE_ARGS },
+   { "asis", cm_no_op, BRACE_ARGS },
+   { "author", cm_author, NO_BRACE_ARGS },
+   { "b", cm_b, BRACE_ARGS },
+   { "bullet", cm_bullet, BRACE_ARGS },
+   { "bye", cm_bye, NO_BRACE_ARGS },
+   { "c", cm_comment, NO_BRACE_ARGS },
+   { "caption", cm_caption, BRACE_ARGS },
+   { "cartouche", cm_cartouche, NO_BRACE_ARGS },
+   { "center", cm_center, NO_BRACE_ARGS },
+   { "centerchap", cm_unnumbered, NO_BRACE_ARGS },
+   { "chapheading", cm_chapheading, NO_BRACE_ARGS },
+   { "chapter", cm_chapter, NO_BRACE_ARGS },
+   { "cindex", cm_cindex, NO_BRACE_ARGS },
+   { "cite", cm_cite, BRACE_ARGS },
+   { "clear", cm_clear, NO_BRACE_ARGS },
+   { "click", cm_click, BRACE_ARGS },
+   { "clicksequence", cm_clicksequence, BRACE_ARGS },
+   { "clickstyle", cm_clickstyle, NO_BRACE_ARGS },
+   { "code", cm_code, BRACE_ARGS },
+   { "comma", cm_comma, BRACE_ARGS },
+   { "command", cm_code, BRACE_ARGS },
+   { "comment", cm_comment, NO_BRACE_ARGS },
+   { "contents", cm_contents, NO_BRACE_ARGS },
+   { "copying", cm_copying, NO_BRACE_ARGS },
+   { "copyright", cm_copyright, BRACE_ARGS },
+   { "ctrl", cm_obsolete, BRACE_ARGS },
+   { "defcodeindex", cm_defcodeindex, NO_BRACE_ARGS },
+   { "defcv", cm_defun, NO_BRACE_ARGS },
+   { "defcvx", cm_defun, NO_BRACE_ARGS },
+   { "deffn", cm_defun, NO_BRACE_ARGS },
+   { "deffnx", cm_defun, NO_BRACE_ARGS },
+   { "defindex", cm_defindex, NO_BRACE_ARGS },
+   { "definfoenclose", cm_definfoenclose, NO_BRACE_ARGS },
+   { "defivar", cm_defun, NO_BRACE_ARGS },
+   { "defivarx", cm_defun, NO_BRACE_ARGS },
+   { "defmac", cm_defun, NO_BRACE_ARGS },
+   { "defmacx", cm_defun, NO_BRACE_ARGS },
+   { "defmethod", cm_defun, NO_BRACE_ARGS },
+   { "defmethodx", cm_defun, NO_BRACE_ARGS },
+   { "defop", cm_defun, NO_BRACE_ARGS },
+   { "defopt", cm_defun, NO_BRACE_ARGS },
+   { "defoptx", cm_defun, NO_BRACE_ARGS },
+   { "defopx", cm_defun, NO_BRACE_ARGS },
+   { "defspec", cm_defun, NO_BRACE_ARGS },
+   { "defspecx", cm_defun, NO_BRACE_ARGS },
+   { "deftp", cm_defun, NO_BRACE_ARGS },
+   { "deftpx", cm_defun, NO_BRACE_ARGS },
+   { "deftypecv", cm_defun, NO_BRACE_ARGS },
+   { "deftypecvx", cm_defun, NO_BRACE_ARGS },
+   { "deftypefn", cm_defun, NO_BRACE_ARGS },
+   { "deftypefnx", cm_defun, NO_BRACE_ARGS },
+   { "deftypefun", cm_defun, NO_BRACE_ARGS },
+   { "deftypefunx", cm_defun, NO_BRACE_ARGS },
+   { "deftypeivar", cm_defun, NO_BRACE_ARGS },
+   { "deftypeivarx", cm_defun, NO_BRACE_ARGS },
+   { "deftypemethod", cm_defun, NO_BRACE_ARGS },
+   { "deftypemethodx", cm_defun, NO_BRACE_ARGS },
+   { "deftypeop", cm_defun, NO_BRACE_ARGS },
+   { "deftypeopx", cm_defun, NO_BRACE_ARGS },
+   { "deftypevar", cm_defun, NO_BRACE_ARGS },
+   { "deftypevarx", cm_defun, NO_BRACE_ARGS },
+   { "deftypevr", cm_defun, NO_BRACE_ARGS },
+   { "deftypevrx", cm_defun, NO_BRACE_ARGS },
+   { "defun", cm_defun, NO_BRACE_ARGS },
+   { "defunx", cm_defun, NO_BRACE_ARGS },
+   { "defvar", cm_defun, NO_BRACE_ARGS },
+   { "defvarx", cm_defun, NO_BRACE_ARGS },
+   { "defvr", cm_defun, NO_BRACE_ARGS },
+   { "defvrx", cm_defun, NO_BRACE_ARGS },
+   { "detailmenu", cm_detailmenu, NO_BRACE_ARGS },
+   { "dfn", cm_dfn, BRACE_ARGS },
+   { "dircategory", cm_dircategory, NO_BRACE_ARGS },
+   { "direntry", cm_direntry, NO_BRACE_ARGS },
+   { "display", cm_display, NO_BRACE_ARGS },
+   { "dmn", cm_dmn, BRACE_ARGS },
+   { "docbook", cm_docbook, NO_BRACE_ARGS },
+   { "documentdescription", cm_documentdescription, NO_BRACE_ARGS },
+   { "documentencoding", cm_documentencoding, NO_BRACE_ARGS },
+   { "documentlanguage", cm_documentlanguage, NO_BRACE_ARGS },
+   { "dotaccent", cm_accent, MAYBE_BRACE_ARGS },
+   { "dotless", cm_dotless, BRACE_ARGS },
+   { "dots", cm_dots, BRACE_ARGS },
+   { "email", cm_email, BRACE_ARGS },
+   { "emph", cm_emph, BRACE_ARGS },
+   { "end", cm_end, NO_BRACE_ARGS },
+   { "enddots", cm_enddots, BRACE_ARGS },
+   { "enumerate", cm_enumerate, NO_BRACE_ARGS },
+   { "env", cm_code, BRACE_ARGS },
+   { "equiv", cm_equiv, BRACE_ARGS },
+   { "error", cm_error, BRACE_ARGS },
+   { "euro", cm_special_char, BRACE_ARGS },
+   { "evenfooting", cm_ignore_line, NO_BRACE_ARGS },
+   { "evenfootingmarks", cm_ignore_line, NO_BRACE_ARGS },
+   { "evenheading", cm_ignore_line, NO_BRACE_ARGS },
+   { "evenheadingmarks", cm_ignore_line, NO_BRACE_ARGS },
+   { "everyfooting", cm_ignore_line, NO_BRACE_ARGS },
+   { "everyfootingmarks", cm_ignore_line, NO_BRACE_ARGS },
+   { "everyheading", cm_ignore_line, NO_BRACE_ARGS },
+   { "everyheadingmarks", cm_ignore_line, NO_BRACE_ARGS },
+   { "example", cm_example, NO_BRACE_ARGS },
+   { "exampleindent", cm_exampleindent, NO_BRACE_ARGS },
+   { "exclamdown", cm_special_char, BRACE_ARGS },
+   { "exdent", cm_exdent, NO_BRACE_ARGS },
+   { "expansion", cm_expansion, BRACE_ARGS },
+   { "file", cm_code, BRACE_ARGS },
+   { "finalout", cm_no_op, NO_BRACE_ARGS },
+   { "findex", cm_findex, NO_BRACE_ARGS },
+   { "firstparagraphindent", cm_firstparagraphindent, NO_BRACE_ARGS },
+   { "float", cm_float, NO_BRACE_ARGS },
+   { "flushleft", cm_flushleft, NO_BRACE_ARGS },
+   { "flushright", cm_flushright, NO_BRACE_ARGS },
+   { "fonttextsize", cm_fonttextsize, NO_BRACE_ARGS },
+   { "footnote", cm_footnote, NO_BRACE_ARGS}, /* self-arg eater */
+   { "footnotestyle", cm_footnotestyle, NO_BRACE_ARGS },
+   { "format", cm_format, NO_BRACE_ARGS },
+   { "frenchspacing", cm_frenchspacing, NO_BRACE_ARGS },
+   { "ftable", cm_ftable, NO_BRACE_ARGS },
+   { "geq", cm_geq, BRACE_ARGS },
+   { "group", cm_group, NO_BRACE_ARGS },
+   { "guillemetleft", cm_special_char, BRACE_ARGS },
+   { "guillemetright", cm_special_char, BRACE_ARGS },
+   { "guillemotleft", cm_special_char, BRACE_ARGS },
+   { "guillemotright", cm_special_char, BRACE_ARGS },
+   { "guilsinglleft", cm_guilsinglleft, BRACE_ARGS },
+   { "guilsinglright", cm_guilsinglright, BRACE_ARGS },
+   { "heading", cm_heading, NO_BRACE_ARGS },
+   { "headings", cm_ignore_line, NO_BRACE_ARGS },
+   { "headitem", cm_headitem, NO_BRACE_ARGS },
+   { "html", cm_html, NO_BRACE_ARGS },
+   { "hyphenation", cm_ignore_arg, BRACE_ARGS },
+   { "i", cm_i, BRACE_ARGS },
+   { "ifclear", cm_ifclear, NO_BRACE_ARGS },
+   { "ifeq", cm_ifeq, NO_BRACE_ARGS },
+   { "ifdocbook", cm_ifdocbook, NO_BRACE_ARGS },
+   { "ifhtml", cm_ifhtml, NO_BRACE_ARGS },
+   { "ifinfo", cm_ifinfo, NO_BRACE_ARGS },
+   { "ifnotdocbook", cm_ifnotdocbook, NO_BRACE_ARGS },
+   { "ifnothtml", cm_ifnothtml, NO_BRACE_ARGS },
+   { "ifnotinfo", cm_ifnotinfo, NO_BRACE_ARGS },
+   { "ifnotplaintext", cm_ifnotplaintext, NO_BRACE_ARGS },
+   { "ifnottex", cm_ifnottex, NO_BRACE_ARGS },
+   { "ifnotxml", cm_ifnotxml, NO_BRACE_ARGS },
+   { "ifplaintext", cm_ifplaintext, NO_BRACE_ARGS },
+   { "ifset", cm_ifset, NO_BRACE_ARGS },
+   { "iftex", cm_iftex, NO_BRACE_ARGS },
+   { "ifxml", cm_ifxml, NO_BRACE_ARGS },
+   { "ignore", command_name_condition, NO_BRACE_ARGS },
+   { "image", cm_image, BRACE_ARGS },
+   { "include", cm_include, NO_BRACE_ARGS },
+   { "indent", cm_indent, NO_BRACE_ARGS },
+   { "indicateurl", cm_indicate_url, BRACE_ARGS },
+   { "inforef", cm_inforef, BRACE_ARGS },
+   { "insertcopying", cm_insert_copying, NO_BRACE_ARGS },
+   { "item", cm_item, NO_BRACE_ARGS },
+   { "itemize", cm_itemize, NO_BRACE_ARGS },
+   { "itemx", cm_itemx, NO_BRACE_ARGS },
+   { "kbd", cm_kbd, BRACE_ARGS },
+   { "kbdinputstyle", cm_ignore_line, NO_BRACE_ARGS },
+   { "key", cm_key, BRACE_ARGS },
+   { "kindex", cm_kindex, NO_BRACE_ARGS },
+   { "l", cm_special_char, BRACE_ARGS },
+   { "leq", cm_leq, BRACE_ARGS },
+   { "lisp", cm_lisp, NO_BRACE_ARGS },
+   { "listoffloats", cm_listoffloats, NO_BRACE_ARGS },
+   { "lowersections", cm_lowersections, NO_BRACE_ARGS },
+   { "macro", cm_macro, NO_BRACE_ARGS },
+   { "majorheading", cm_majorheading, NO_BRACE_ARGS },
+   { "math", cm_math, BRACE_ARGS },
+   { "menu", cm_menu, NO_BRACE_ARGS },
+   { "minus", cm_minus, BRACE_ARGS },
+   { "multitable", cm_multitable, NO_BRACE_ARGS },
+   { "need", cm_ignore_line, NO_BRACE_ARGS },
+   { "node", cm_node, NO_BRACE_ARGS },
+   { "noindent", cm_noindent_cmd, NO_BRACE_ARGS },
+   { "novalidate", cm_novalidate, NO_BRACE_ARGS },
+   { "nwnode", cm_node, NO_BRACE_ARGS },
+   { "o", cm_special_char, BRACE_ARGS },
+   { "oddfooting", cm_ignore_line, NO_BRACE_ARGS },
+   { "oddfootingmarks", cm_ignore_line, NO_BRACE_ARGS },
+   { "oddheading", cm_ignore_line, NO_BRACE_ARGS },
+   { "oddheadingmarks", cm_ignore_line, NO_BRACE_ARGS },
+   { "oe", cm_special_char, BRACE_ARGS },
+   { "option", cm_code, BRACE_ARGS },
+   { "ordf", cm_special_char, BRACE_ARGS },
+   { "ordm", cm_special_char, BRACE_ARGS },
+   { "page", cm_no_op, NO_BRACE_ARGS },
+   { "pagesizes", cm_ignore_line, NO_BRACE_ARGS },
+   { "paragraphindent", cm_paragraphindent, NO_BRACE_ARGS },
+   { "pindex", cm_pindex, NO_BRACE_ARGS },
+   { "point", cm_point, BRACE_ARGS },
+   { "pounds", cm_special_char, BRACE_ARGS },
+   { "print", cm_print, BRACE_ARGS },
+   { "printindex", cm_printindex, NO_BRACE_ARGS },
+   { "pxref", cm_pxref, BRACE_ARGS },
+   { "questiondown", cm_special_char, BRACE_ARGS },
+   { "quotation", cm_quotation, NO_BRACE_ARGS },
+   { "quotedblbase", cm_quotedblbase, BRACE_ARGS },
+   { "quotedblleft", cm_quotedblleft, BRACE_ARGS },
+   { "quotedblright", cm_quotedblright, BRACE_ARGS },
+   { "quoteleft", cm_quoteleft, BRACE_ARGS },
+   { "quoteright", cm_quoteright, BRACE_ARGS },
+   { "quotesinglbase", cm_quotesinglbase, BRACE_ARGS },
+   { "r", cm_r, BRACE_ARGS },
+   { "raisesections", cm_raisesections, NO_BRACE_ARGS },
+   { "ref", cm_ref, BRACE_ARGS },
+   { "refill", cm_no_op, NO_BRACE_ARGS },
+   { "registeredsymbol", cm_registeredsymbol, BRACE_ARGS },
+   { "result", cm_result, BRACE_ARGS },
+   { "ringaccent", cm_accent, MAYBE_BRACE_ARGS },
+   { "rmacro", cm_rmacro, NO_BRACE_ARGS },
+   { "samp", cm_code, BRACE_ARGS },
+   { "sansserif", cm_sansserif, BRACE_ARGS },
+   { "sc", cm_sc, BRACE_ARGS },
+   { "section", cm_section, NO_BRACE_ARGS },
+   { "set", cm_set, NO_BRACE_ARGS },
+   { "setchapternewpage", cm_ignore_line, NO_BRACE_ARGS },
+   { "setchapterstyle", cm_obsolete, NO_BRACE_ARGS },
+   { "setcontentsaftertitlepage", cm_no_op, NO_BRACE_ARGS },
+   { "setfilename", cm_setfilename, NO_BRACE_ARGS },
+   { "setshortcontentsaftertitlepage", cm_no_op, NO_BRACE_ARGS },
+   { "settitle", cm_settitle, NO_BRACE_ARGS },
+   { "shortcaption", cm_caption, BRACE_ARGS },
+   { "shortcontents", cm_contents, NO_BRACE_ARGS },
+   { "shorttitlepage", cm_ignore_line, NO_BRACE_ARGS },
+   { "slanted", cm_slanted, BRACE_ARGS },
+   { "smallbook", cm_ignore_line, NO_BRACE_ARGS },
+   { "smalldisplay", cm_smalldisplay, NO_BRACE_ARGS },
+   { "smallexample", cm_smallexample, NO_BRACE_ARGS },
+   { "smallformat", cm_smallformat, NO_BRACE_ARGS },
+   { "smalllisp", cm_smalllisp, NO_BRACE_ARGS },
+   { "sp", cm_sp, NO_BRACE_ARGS },
+   { "ss", cm_special_char, BRACE_ARGS },
+   { "strong", cm_strong, BRACE_ARGS },
+   { "subheading", cm_subheading, NO_BRACE_ARGS },
+   { "subsection", cm_subsection, NO_BRACE_ARGS },
+   { "subsubheading", cm_subsubheading, NO_BRACE_ARGS },
+   { "subsubsection", cm_subsubsection, NO_BRACE_ARGS },
+   { "subtitle", cm_titlepage_cmds, NO_BRACE_ARGS },
+   { "summarycontents", cm_contents, NO_BRACE_ARGS },
+   { "syncodeindex", cm_synindex, NO_BRACE_ARGS },
+   { "synindex", cm_synindex, NO_BRACE_ARGS },
+   { "t", cm_tt, BRACE_ARGS },
+   { "tab", cm_tab, NO_BRACE_ARGS },
+   { "table", cm_table, NO_BRACE_ARGS },
+   { "tex", cm_tex, NO_BRACE_ARGS },
+   { "textdegree", cm_special_char, BRACE_ARGS },
+   { "tie", cm_tie, BRACE_ARGS },
+   { "tieaccent", cm_accent, MAYBE_BRACE_ARGS },
+   { "tindex", cm_tindex, NO_BRACE_ARGS },
+   { "title", cm_titlepage_cmds, NO_BRACE_ARGS },
+   { "titlefont", cm_titlefont, BRACE_ARGS },
+   { "titlepage", cm_titlepage, NO_BRACE_ARGS },
+   { "today", cm_today, BRACE_ARGS },
+   { "top", cm_top, NO_BRACE_ARGS  },
+   { "u", cm_accent, MAYBE_BRACE_ARGS },
+   { "ubaraccent", cm_accent, MAYBE_BRACE_ARGS },
+   { "udotaccent", cm_accent, MAYBE_BRACE_ARGS },
+   { "unmacro", cm_unmacro, NO_BRACE_ARGS },
+   { "unnumbered", cm_unnumbered, NO_BRACE_ARGS },
+   { "unnumberedsec", cm_unnumberedsec, NO_BRACE_ARGS },
+   { "unnumberedsubsec", cm_unnumberedsubsec, NO_BRACE_ARGS },
+   { "unnumberedsubsubsec", cm_unnumberedsubsubsec, NO_BRACE_ARGS },
+   { "uref", cm_uref, BRACE_ARGS },
+   { "url", cm_uref, BRACE_ARGS },
+   { "v", cm_accent, MAYBE_BRACE_ARGS },
+   { "value", cm_value, BRACE_ARGS },
+   { "var", cm_var, BRACE_ARGS },
+   { "verb", cm_verb, NO_BRACE_ARGS },
+   { "verbatim", cm_verbatim, NO_BRACE_ARGS },
+   { "verbatiminclude", cm_verbatiminclude, NO_BRACE_ARGS },
+   { "vindex", cm_vindex, NO_BRACE_ARGS },
+   { "vtable", cm_vtable, NO_BRACE_ARGS },
+   { "vskip", cm_ignore_line, NO_BRACE_ARGS },
+   { "w", cm_w, BRACE_ARGS },
+   { "xml", cm_xml, NO_BRACE_ARGS },
+   { "xref", cm_xref, BRACE_ARGS },
+ 
+   /* Deprecated commands.  These used to be for italics.  */
+   { "iappendix", cm_ideprecated, NO_BRACE_ARGS },
+   { "iappendixsec", cm_ideprecated, NO_BRACE_ARGS },
+   { "iappendixsection", cm_ideprecated, NO_BRACE_ARGS },
+   { "iappendixsubsec", cm_ideprecated, NO_BRACE_ARGS },
+   { "iappendixsubsubsec", cm_ideprecated, NO_BRACE_ARGS },
+   { "ichapter", cm_ideprecated, NO_BRACE_ARGS },
+   { "isection", cm_ideprecated, NO_BRACE_ARGS },
+   { "isubsection", cm_ideprecated, NO_BRACE_ARGS },
+   { "isubsubsection", cm_ideprecated, NO_BRACE_ARGS },
+   { "iunnumbered", cm_ideprecated, NO_BRACE_ARGS },
+   { "iunnumberedsec", cm_ideprecated, NO_BRACE_ARGS },
+   { "iunnumberedsubsec", cm_ideprecated, NO_BRACE_ARGS },
+   { "iunnumberedsubsubsec", cm_ideprecated, NO_BRACE_ARGS },
+ 
+   /* Now @include does what this was used to. */
+   { "infoinclude", cm_obsolete, NO_BRACE_ARGS },
+   { "titlespec", cm_obsolete, NO_BRACE_ARGS },
+ 
+   { NULL, NULL, NO_BRACE_ARGS }
+ };
+ 
+ /* The bulk of the Texinfo commands. */
+ 
+ /* Commands which insert their own names. */
+ void
+ insert_self (int arg)
+ {
+   if (arg == START)
+     add_word (command);
+ }
+ 
+ void
+ insert_space (int arg)
+ {
+   if (arg == START)
+     {
+       if (xml && !docbook)
+         xml_insert_entity ("space");
+       else
+         add_char (' ');
+     }
+ }
+ 
+ /* Insert a comma.  Useful when a literal , would break our parsing of
+    multiple arguments.  */
+ void
+ cm_comma (int arg)
+ {
+   if (arg == START)
+     add_char (',');
+ }
+ 
+ 
+ /* Force a line break in the output. */
+ void
+ cm_asterisk (void)
+ {
+   if (html)
+     add_word ("<br>");
+   else if (xml && !docbook)
+     xml_insert_entity ("linebreak");
+   else if (docbook) 
+     xml_asterisk ();
+   else
+     {
+       close_single_paragraph ();
+       cm_noindent ();
+     }
+ }
+ 
+ /* Insert ellipsis. */
+ void
+ cm_dots (int arg)
+ {
+   if (arg == START)
+     {
+       if (xml && !docbook)
+         xml_insert_entity ("dots");
+       else if (docbook)
+         xml_insert_entity ("hellip");
+       else
+ 	if (html && !in_fixed_width_font)
+ 	  insert_string ("<small class=\"dots\">...</small>");
+ 	else
+ 	  add_word ("...");
+     }
+ }
+ 
+ /* Insert ellipsis for sentence end. */
+ void
+ cm_enddots (int arg)
+ {
+   if (arg == START)
+     {
+       if (xml && !docbook)
+ 	xml_insert_entity ("enddots");
+       else if (docbook)
+ 	{
+ 	  xml_insert_entity ("hellip");
+ 	  add_char ('.');
+ 	}
+       else
+ 	if (html && !in_fixed_width_font)
+ 	  insert_string ("<small class=\"enddots\">...</small>");
+ 	else
+ 	  add_word ("...");
+     }
+ }
+ 
+ void
+ cm_bullet (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&bull;");
+       else if (xml && !docbook)
+ 	xml_insert_entity ("bullet");
+       else if (docbook)
+ 	xml_insert_entity ("bull");
+       else
+         add_char ('*');
+     }
+ }
+ 
+ static void
+ cm_geq (int arg)
+ {
+   if (arg == START)
+     {
+       if (xml)
+         xml_insert_entity ("ge");
+       else if (html)
+         add_word ("&ge;");
+       else
+         insert_string (">=");
+     }
+ }
+ 
+ static void
+ cm_leq (int arg)
+ {
+   if (arg == START)
+     {
+       if (xml)
+         xml_insert_entity ("le");
+       else if (html)
+         add_word ("&le;");
+       else
+         insert_string ("<=");
+     }
+ }
+ 
+ static void
+ cm_minus (int arg)
+ {
+   if (arg == START)
+     {
+       if (xml)
+ 	xml_insert_entity ("minus");
+       else if (html)
+         add_word ("&minus;");
+       else
+ 	add_char ('-');
+     }
+ }
+ 
+ /* Formatting a dimension unit.  */
+ void
+ cm_dmn (int arg)
+ {
+   if (html)
+     insert_html_tag_with_attribute (arg, "span", "class=\"dmn\"");
+   else if (docbook)
+     /* No units in docbook yet.  */
+     ;
+   else if (xml)
+     xml_insert_element (DIMENSION, arg);
+ }
+ 
+ /* Insert "TeX". */
+ void
+ cm_TeX (int arg)
+ {
+   static int last_position;
+ 
+   if (arg == START)
+     {
+       if (xml)
+ 	xml_insert_entity ("tex");
+       else
+ 	add_word ("TeX");
+ 
+       last_position = output_paragraph_offset;
+     }
+   else if (last_position != output_paragraph_offset)
+     {
+       warning (_("arguments to @%s ignored"), command);
+       output_paragraph_offset = last_position;
+     }
+ }
+ 
+ /* Insert "LaTeX".  */
+ void
+ cm_LaTeX (int arg)
+ {
+   static int last_position;
+ 
+   if (arg == START)
+     {
+       if (xml)
+         xml_insert_entity ("latex");
+       else
+         add_word ("LaTeX");
+ 
+       last_position = output_paragraph_offset;
+     }
+   else if (last_position != output_paragraph_offset)
+     {
+       warning (_("arguments to @%s ignored"), command);
+       output_paragraph_offset = last_position;
+     }
+ }
+ 
+ /* Copyright symbol.  */
+ void
+ cm_copyright (int arg)
+ {
+   if (arg == START)
+     {
+     if (html)
+       add_word ("&copy;");
+     else if (xml && !docbook)
+       xml_insert_entity ("copyright");
+     else if (docbook)
+       xml_insert_entity ("copy");
+     else
+       add_word ("(C)");
+     }
+ }
+ 
+ /* Registered symbol.  */
+ void
+ cm_registeredsymbol (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&reg;");
+       else if (docbook)
+         xml_insert_entity ("reg");
+       else if (xml && !docbook)
+         xml_insert_entity ("registered");
+       else
+         add_word ("(R)");
+     }
+ }
+ 
+ /* Left single guillemet (single left-pointing angle quotation mark). */
+ void
+ cm_guilsinglleft (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&lsaquo;");
+       else if (xml && !docbook)
+         xml_insert_entity ("lsaquo");
+       else
+         add_word ("<");
+     }
+ }
+ 
+ /* Right single guillemet (single right-pointing angle quotation mark). */
+ void
+ cm_guilsinglright (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&rsaquo;");
+       else if (xml && !docbook)
+         xml_insert_entity ("rsaquo");
+       else
+         add_word (">");
+     }
+ }
+ 
+ /* Double low-9 quotation mark. */
+ void
+ cm_quotedblbase (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&bdquo;");
+       else if (docbook)
+         xml_insert_entity ("ldquor");
+       else if (xml && !docbook)
+         xml_insert_entity ("bdquo");
+       else
+         add_word ("\"");
+     }
+ }
+ 
+ /* Left double quotation mark. */
+ void
+ cm_quotedblleft (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&ldquo;");
+       else if (docbook)
+         xml_insert_entity ("ldquo");
+       else if (xml && !docbook)
+         xml_insert_entity ("ldquo");
+       else
+         add_word ("\"");
+     }
+ }
+ 
+ /* Right double quotation mark. */
+ void
+ cm_quotedblright (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&rdquo;");
+       else if (docbook)
+         xml_insert_entity ("rdquo");
+       else if (xml && !docbook)
+         xml_insert_entity ("rdquo");
+       else
+         add_word ("\"");
+     }
+ }
+ 
+ /* Left single quotation mark. */
+ void
+ cm_quoteleft (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&lsquo;");
+       else if (docbook)
+         xml_insert_entity ("lsquo");
+       else if (xml && !docbook)
+         xml_insert_entity ("lsquo");
+       else
+         add_word ("`");
+     }
+ }
+ 
+ /* Right single quotation mark. */
+ void
+ cm_quoteright (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&rsquo;");
+       else if (docbook)
+         xml_insert_entity ("rsquo");
+       else if (xml && !docbook)
+         xml_insert_entity ("rsquo");
+       else
+         add_word ("'");
+     }
+ }
+ 
+ /* Single low-9 quotation mark. */
+ void
+ cm_quotesinglbase (int arg)
+ {
+   if (arg == START)
+     {
+       if (html)
+         add_word ("&sbquo;");
+       else if (docbook)
+         xml_insert_entity ("lsquor");
+       else if (xml && !docbook)
+         xml_insert_entity ("sbquo");
+       else
+         add_word (",");
+     }
+ }
+ 
+ void
+ cm_today (int arg)
+ {
+   static char *months[12] =
+     { N_("January"), N_("February"), N_("March"), N_("April"), N_("May"),
+       N_("June"), N_("July"), N_("August"), N_("September"), N_("October"),
+       N_("November"), N_("December") };
+   if (arg == START)
+     {
+       time_t timer = time (0);
+       struct tm *ts = localtime (&timer);
+       add_word_args ("%d %s %d", ts->tm_mday, _(months[ts->tm_mon]),
+                      ts->tm_year + 1900);
+     }
+ }
+ 
+ void
+ cm_comment (void)
+ {
+   /* For HTML, do not output comments before HTML header is written,
+      otherwise comments before @settitle cause an empty <title> in the
+      header.  */
+   if ((html && output_head_p) || xml)
+     {
+       char *line;
+       get_rest_of_line (0, &line);
+ 
+       if (strlen (line) > 0)
+         {
+           int save_inhibit_indentation = inhibit_paragraph_indentation;
+           int save_paragraph_is_open = paragraph_is_open;
+           int save_escape_html = escape_html;
+           int save_xml_no_para = xml_no_para;
+           int i;
+ 
+           inhibit_paragraph_indentation = 1;
+           escape_html = 0;
+           xml_no_para = 1;
+ 
+           /* @c and @comment can appear between @item and @itemx,
+              @deffn and @deffnx.  */
+           xml_dont_touch_items_defs++;
+ 
+           /* Use insert for HTML, and XML when indentation is enabled.
+              For Docbook, use add_char.  */
+           if (xml && xml_indentation_increment > 0
+ 	      && output_paragraph_offset > 0
+               && output_paragraph[output_paragraph_offset-1] != '\n')
+             insert ('\n');
+ 
+           /* Crunch double hyphens in comments.  */
+           add_html_block_elt ("<!-- ");
+           for (i = 0; i < strlen (line); i++)
+             if (line[i] != '-' || (i && line[i-1] != '-'))
+               add_char (line[i]);
+           add_word (" -->");
+ 
+           if (html)
+             add_char ('\n');
+ 
+           inhibit_paragraph_indentation = save_inhibit_indentation;
+           paragraph_is_open = save_paragraph_is_open;
+           escape_html = save_escape_html;
+           xml_no_para = save_xml_no_para;
+           xml_dont_touch_items_defs--;
+         }
+ 
+       free (line);
+     }
+   else
+     cm_ignore_line ();
+ }
+ 
+ 
+ 
+ /* We keep acronyms with two arguments around, to be able to refer to them
+    later with only one argument.  */
+ static ACRONYM_DESC *acronyms_stack = NULL;
+ 
+ static void
+ cm_acronym_or_abbr (int arg, int is_abbr)
+ {
+   char *aa, *description;
+   unsigned len;
+ 
+   /* We do everything at START.  */
+   if (arg == END)
+     return;
+ 
+   get_until_in_braces (",", &aa);
+   if (input_text[input_text_offset] == ',')
+     input_text_offset++;
+   get_until_in_braces ("}", &description);
+ 
+   canon_white (aa);
+   canon_white (description);
+ 
+   /* If not enclosed in braces, strip after comma to be compatible
+      with texinfo.tex.  */
+   if (description[0] != '{' && strchr (description, ',') != NULL)
+     {
+       int i = 0;
+       while (description[i] != ',')
+         i++;
+       /* For now, just terminate the string at comma.  */
+       description[i] = 0;
+     }
+ 
+   /* Get description out of braces.  */
+   if (description[0] == '{')
+     description++;
+ 
+   len = strlen (description);
+   if (len && description[len-1] == '}')
+     description[len-1] = 0;
+ 
+   /* Save new description.  */
+   if (strlen (description) > 0)
+     {
+       ACRONYM_DESC *new = xmalloc (sizeof (ACRONYM_DESC));
+ 
+       new->acronym = xstrdup (aa);
+       new->description = xstrdup (description);
+       new->next = acronyms_stack;
+       acronyms_stack = new;
+     }
+ 
+   if (html)
+     {
+       add_word (is_abbr ? "<abbr" : "<acronym");
+ 
+       if (strlen (description) > 0)
+         add_word_args (" title=\"%s\"", text_expansion (description));
+       else if (acronyms_stack)
+         {
+           /* No second argument, get from previous.  Search order is from
+              last to first defined, so we get the most recent version of
+              the description.  */
+           ACRONYM_DESC *temp = acronyms_stack;
+ 
+           while (temp)
+             {
+               if (STREQ (aa, temp->acronym)
+                   && strlen (temp->description) > 0)
+                 {
+                   add_word_args (" title=\"%s\"",
+                                  text_expansion (temp->description));
+                   break;
+                 }
+               temp = temp->next;
+             }
+         }
+ 
+       add_char ('>');
+       execute_string ("%s", aa);
+       add_word (is_abbr ? "</abbr>" : "</acronym>");
+     }
+   else if (docbook)
+     {
+       xml_insert_element (is_abbr ? ABBREV : ACRONYM, START);
+       execute_string ("%s", aa);
+       xml_insert_element (is_abbr ? ABBREV : ACRONYM, END);
+     }
+   else if (xml)
+     {
+       xml_insert_element (is_abbr ? ABBREV : ACRONYM, START);
+ 
+       xml_insert_element (is_abbr ? ABBREVWORD : ACRONYMWORD, START);
+       execute_string ("%s", aa);
+       xml_insert_element (is_abbr ? ABBREVWORD : ACRONYMWORD, END);
+ 
+       if (strlen (description) > 0)
+         {
+           xml_insert_element (is_abbr ? ABBREVDESC : ACRONYMDESC, START);
+           execute_string ("%s", description);
+           xml_insert_element (is_abbr ? ABBREVDESC : ACRONYMDESC, END);
+         }
+ 
+       xml_insert_element (is_abbr ? ABBREV : ACRONYM, END);
+     }
+   else
+     execute_string ("%s", aa);
+ 
+   /* Put description into parenthesis after the acronym for all outputs
+      except XML.  */
+   if (strlen (description) > 0 && (!xml || docbook))
+     add_word_args (" (%s)", description);
+ }
+ 
+ void
+ cm_acronym (int arg)
+ {
+   cm_acronym_or_abbr (arg, 0);
+ }
+ 
+ void
+ cm_abbr (int arg)
+ {
+   cm_acronym_or_abbr (arg, 1);
+ }
+ 
+ void
+ cm_tt (int arg)
+ {
+   /* @t{} is a no-op in Info.  */
+   if (html)
+     insert_html_tag (arg, "tt");
+   else if (xml)
+     xml_insert_element (TT, arg);
+ }
+ 
+ void
+ cm_code (int arg)
+ {
+   if (arg == START)
+     in_fixed_width_font++;
+ 
+   if (xml)
+     {
+       if (STREQ (command, "command"))
+ 	xml_insert_element (COMMAND_TAG, arg);
+       else if (STREQ (command, "env"))
+ 	xml_insert_element (ENV, arg);
+       else if (STREQ (command, "file"))
+ 	xml_insert_element (FILE_TAG, arg);
+       else if (STREQ (command, "option"))
+ 	xml_insert_element (OPTION, arg);
+       else if (STREQ (command, "samp"))
+         {
+           if (docbook && arg == START)
+             {
+               /* Even though @samp is in_fixed_width_font, it
+                  should always start a paragraph.  Unfortunately,
+                  in_fixed_width_font inhibits that.  */
+               xml_start_para ();
+               xml_insert_entity ("lsquo");
+             }
+           xml_insert_element (SAMP, arg);
+           if (docbook && arg == END)
+             xml_insert_entity ("rsquo");
+         }
+       else
+ 	xml_insert_element (CODE, arg);
+     }
+   else if (html)
+     {
+       if (STREQ (command, "code"))
+         insert_html_tag (arg, "code");
+       else
+         { /* Use <samp> tag in general to get typewriter.  */
+           if (arg == START)
+             { /* If @samp specifically, add quotes a la TeX output.  */
+               if (STREQ (command, "samp"))
+ 		add_word ("&lsquo;");
+ 	      insert_html_tag (arg, "samp");
+             }
+           insert_html_tag_with_attribute (arg, "span", "class=\"%s\"",command);
+           if (arg == END)
+             {
+ 	      insert_html_tag (arg, "samp");
+               if (STREQ (command, "samp"))
+ 		add_word ("&rsquo;");
+             }
+         }
+     }
+   else
+     {
+       if (!printing_index)
+         {
+           if (arg == START)
+             add_char ('`');
+           else
+             add_meta_char ('\'');
+         }
+     }
+ }
+ 
+ void
+ cm_kbd (int arg)
+ {
+   if (xml)
+     xml_insert_element (KBD, arg);
+   else if (html)
+     { /* Seems like we should increment in_fixed_width_font for Info
+          format too, but then the quote-omitting special case gets
+          confused.  Punt.  */
+       if (arg == START)
+         in_fixed_width_font++;
+       insert_html_tag (arg, "kbd");
+     }
+   else
+     { /* People use @kbd in an example to get the "user input" font.
+          We don't want quotes in that case.  */
+       if (!in_fixed_width_font)
+         cm_code (arg);
+     }
+ }
+ 
+ /* Just show a url (http://example.org/..., for example), don't link to it.  */
+ void
+ cm_indicate_url (int arg, int start, int end)
+ {
+   if (xml)
+     xml_insert_element (URL, arg);
+   else if (html)
+     {
+       if (arg == START)
+         add_word ("&lt;");
+       insert_html_tag (arg, "code");
+       if (arg != START)
+         add_word ("&gt;");
+     }
+   else
+     if (arg == START)
+       add_word ("<");
+     else
+       add_word (">");
+ }
+ 
+ void
+ cm_key (int arg)
+ {
+   if (xml)
+     xml_insert_element (KEY, arg);
+   else if (html)
+     add_word (arg == START ? "&lt;" : "&gt;");
+   else
+     add_char (arg == START ? '<' : '>');
+ }
+ 
+ /* Handle a command that switches to a non-fixed-width font.  */
+ void
+ not_fixed_width (int arg)
+ {
+   if (arg == START)
+     in_fixed_width_font = 0;
+ }
+ 
+ /* @var in makeinfo just uppercases the text. */
+ void
+ cm_var (int arg, int start_pos, int end_pos)
+ {
+   if (xml)
+     xml_insert_element (VAR, arg);
+   else
+     {
+   not_fixed_width (arg);
+ 
+   if (html)
+     insert_html_tag (arg, "var");
+   else if (arg == END)
+     {
+       while (start_pos < end_pos)
+         {
+           unsigned char c = output_paragraph[start_pos];
+           if (strchr ("[](),", c))
+             warning (_("unlikely character %c in @var"), c);
+           output_paragraph[start_pos] = coerce_to_upper (c);
+           start_pos++;
+         }
+     }
+     }
+ }
+ 
+ void
+ cm_sc (int arg, int start_pos, int end_pos)
+ {
+   if (xml)
+     xml_insert_element (SC, arg);
+   else
+     {
+       not_fixed_width (arg);
+ 
+       if (arg == START)
+         {
+           if (html)
+             insert_html_tag_with_attribute (arg, "span", "class=\"sc\"");
+         }
+       else
+         {
+           int all_upper;
+ 
+           if (html)
+             start_pos += sizeof ("<span class=\"sc\">") - 1; /* skip <span> */
+ 
+           /* Avoid the warning below if there's no text inside @sc{}, or
+              when processing menus under --no-headers.  */
+           all_upper = start_pos < end_pos;
+ 
+           while (start_pos < end_pos)
+             {
+               unsigned char c = output_paragraph[start_pos];
+               if (!isupper (c))
+                 all_upper = 0;
+               if (!html)
+                 output_paragraph[start_pos] = coerce_to_upper (c);
+               start_pos++;
+             }
+           if (all_upper)
+             warning (_("@sc argument all uppercase, thus no effect"));
+ 
+           if (html)
+             insert_html_tag (arg, "span");
+         }
+     }
+ }
+ 
+ void
+ cm_dfn (int arg, int position)
+ {
+   if (xml)
+     xml_insert_element (DFN, arg);
+   else
+     {
+   if (html)
+     insert_html_tag (arg, "dfn");
+   else if (arg == START)
+     add_char ('"');
+   else
+     add_meta_char ('"');
+     }
+ }
+ 
+ void
+ cm_emph (int arg)
+ {
+   if (xml)
+     xml_insert_element (EMPH, arg);
+   else if (html)
+     insert_html_tag (arg, "em");
+   else
+     add_char ('_');
+ }
+ 
+ void
+ cm_verb (int arg)
+ {
+   int character;
+   int delimiter = 0; /* avoid warning */
+   int seen_end = 0;
+ 
+   in_fixed_width_font++;
+   /* are these necessary ? */
+   last_char_was_newline = 0;
+ 
+   if (html)
+     add_word ("<tt>");
+ 
+   if (input_text_offset < input_text_length)
+     {
+       character = curchar ();
+       if (character == '{')
+ 	input_text_offset++;
+       else
+ 	line_error (_("`{' expected, but saw `%c'"), character);
+     }
+     
+   if (input_text_offset < input_text_length)
+     {
+       delimiter = curchar ();
+       input_text_offset++;
+     }
+ 
+   while (input_text_offset < input_text_length)
+     {
+       character = curchar ();
+ 
+       if (character == '\n')
+         {
+           line_number++;
+           if (html)
+             add_word ("<br>\n");
+         }
+ 
+       else if (html && character == '<')
+         add_word ("&lt;");
+ 
+       else if (html && character == '&')
+         add_word ("&amp;");
+ 
+       else if (character == delimiter && input_text[input_text_offset+1] == '}')
+ 	{ /* Assume no newlines in END_VERBATIM. */
+ 	  seen_end = 1;
+ 	  input_text_offset++;
+ 	  break;
+ 	}
+ 
+       else
+         add_char (character);
+ 
+       input_text_offset++;
+     }
+ 
+   if (!seen_end)
+     warning (_("end of file inside verb block"));
+   
+   if (input_text_offset < input_text_length)
+     {
+       character = curchar ();
+       if (character == '}')
+ 	input_text_offset++;
+       else
+ 	line_error (_("`}' expected, but saw `%c'"), character);
+     }
+ 
+   if (html)
+     add_word ("</tt>");
+ 
+   in_fixed_width_font--;
+ }
+ 
+ 
+ void
+ cm_strong (int arg, int start_pos, int end_pos)
+ {
+   if (docbook && arg == START)
+     xml_insert_element_with_attribute (B, arg, "role=\"bold\"");
+   else if (xml)
+     xml_insert_element (STRONG, arg);
+   else if (html)
+     insert_html_tag (arg, "strong");
+   else
+     add_char ('*');
+ 
+   if (!xml && !html && !docbook && !no_headers
+       && arg == END
+       && end_pos - start_pos >= 6
+       && (STRNCASEEQ ((char *) output_paragraph + start_pos, "*Note:", 6)
+           || STRNCASEEQ ((char *) output_paragraph + start_pos, "*Note ", 6))
+           )
+     {
+       /* Translators: "Note:" is literal here and should not be
+          translated.  A document with @strong{Nota}, say, is fine.  */
+       warning (_("@strong{Note...} produces a spurious cross-reference in Info; reword to avoid that"));
+       /* Adjust the output to avoid writing the bad xref.  */
+       output_paragraph[start_pos + 5] = '_';
+     }
+ }
+ 
+ void
+ cm_cite (int arg, int position)
+ {
+   if (xml)
+     xml_insert_element (CITE, arg);        
+   else if (html)
+     insert_html_tag (arg, "cite");
+   else
+     {
+       if (arg == START)
+         add_char ('`');
+       else if (!looking_at ("}'"))
+         /* In the simple case of, e.g.,  ... @cite{Foo}'s ...
+            don't output a double ''.  */
+         add_char ('\'');
+     }
+ }
+ 
+ /* No highlighting, but argument switches fonts.  */
+ void
+ cm_not_fixed_width (int arg, int start, int end)
+ {
+   if (xml)
+     xml_insert_element (NOTFIXEDWIDTH, arg);
+   not_fixed_width (arg);
+ }
+ 
+ void
+ cm_i (int arg)
+ {
+   /* Make use of <lineannotation> of Docbook, if we are
+      inside an @example or similar.  */
+   if (docbook && !filling_enabled && !printing_index)
+     xml_insert_element (LINEANNOTATION, arg);
+   else if (xml)
+     xml_insert_element (I, arg);
+   else if (html)
+     insert_html_tag (arg, "i");
+   else
+     not_fixed_width (arg);
+ }
+ 
+ void
+ cm_slanted (int arg)
+ {
+   /* Make use of <lineannotation> of Docbook, if we are
+      inside an @example or similar.  */
+   if (docbook && !filling_enabled && !printing_index)
+     xml_insert_element (LINEANNOTATION, arg);
+   else if (xml)
+     xml_insert_element (SLANTED, arg);
+   else if (html)
+     insert_html_tag (arg, "i");
+   else
+     not_fixed_width (arg);
+ }
+ 
+ void
+ cm_b (int arg)
+ {
+   /* See cm_i comments.  */
+   if (docbook && !filling_enabled && !printing_index)
+     xml_insert_element (LINEANNOTATION, arg);
+   else if (docbook && arg == START)
+     xml_insert_element_with_attribute (B, arg, "role=\"bold\"");
+   else if (xml)
+     xml_insert_element (B, arg);
+   else if (html)
+     insert_html_tag (arg, "b");
+   else
+     not_fixed_width (arg);
+ }
+ 
+ void
+ cm_r (int arg)
+ {
+   /* See cm_i comments.  */
+   if (docbook && !filling_enabled && !printing_index)
+     xml_insert_element (LINEANNOTATION, arg);
+   else if (xml)
+     xml_insert_element (R, arg);
+   else if (html)
+     insert_html_tag_with_attribute (arg, "span", "class=\"roman\"");
+   else
+     not_fixed_width (arg);
+ }
+ 
+ void
+ cm_sansserif (int arg)
+ {
+   /* See cm_i comments.  */
+   if (docbook && !filling_enabled && !printing_index)
+     xml_insert_element (LINEANNOTATION, arg);
+   else if (xml)
+     xml_insert_element (SANSSERIF, arg);
+   else if (html)
+     insert_html_tag_with_attribute (arg, "span", "class=\"sansserif\"");
+   else
+     not_fixed_width (arg);
+ }
+ 
+ void
+ cm_titlefont (int arg)
+ {
+   if (xml)
+     xml_insert_element (TITLEFONT, arg);
+   else
+    {
+      not_fixed_width (arg);
+      if (html)
+ 	{
+ 	  html_title_written = 1; /* suppress title from @settitle */
+ 	  if (arg == START)
+ 	    add_word ("<h1 class=\"titlefont\">");
+ 	  else
+ 	    add_word ("</h1>\n");
+ 	}
+    }
+ }
+ 
+ 
+ /* Unfortunately, we cannot interpret @math{} contents like TeX does.  We just
+    pass them through.  */
+ void
+ cm_math (int arg)
+ {
+   if (xml && !docbook)
+     xml_insert_element (MATH, arg);
+ }
+ 
+ /* Various commands are no-op's. */
+ void
+ cm_no_op (void)
+ {
+ }
+ 
+ 
+ /* For proofing single chapters, etc.  */
+ void
+ cm_novalidate (void)
+ {
+   validating = 0;
+ }
+ 
+ 
+ /* Prevent the argument from being split across two lines. */
+ void
+ cm_w (int arg)
+ {
+   if (arg == START)
+     non_splitting_words++;
+   else
+     {
+       if (docbook || html || xml)
+         /* This is so @w{$}Log$ doesn't end up as <dollar>Log<dollar>
+            in the output.  */
+         insert_string ("<!-- /@w -->");
+         
+       non_splitting_words--;
+     }
+ }
+ 
+ 
+ /* An unbreakable word space.  Same as @w{ } for makeinfo, but different
+    for TeX (the space stretches and stretches, and does not inhibit
+    hyphenation).  For XML and HTML, insert the non-breaking-space
+    character and entity, respectively */
+ void
+ cm_tie (int arg)
+ {
+   if (arg == START)
+     if (html)
+       insert_string ("&nbsp;");
+     else if (xml)
+       insert_string ("&#xa0;");
+     else
+     {
+       cm_w (START);
+       add_char (' ');
+     }
+   else
+     if (!html && !xml) cm_w (END);
+ }
+ 
+ /* Explain that this command is obsolete, thus the user shouldn't
+    do anything with it. */
+ static void
+ cm_obsolete (int arg, int start, int end)
+ {
+   if (arg == START)
+     warning (_("%c%s is obsolete"), COMMAND_PREFIX, command);
+ }
+ 
+ 
+ /* Inhibit the indentation of the next paragraph, but not of following
+    paragraphs.  */
+ void
+ cm_noindent (void)
+ {
+   if (!inhibit_paragraph_indentation)
+     inhibit_paragraph_indentation = -1;
+ }
+ 
+ void
+ cm_noindent_cmd (void)
+ {
+   cm_noindent ();
+   xml_no_indent = 1;
+   skip_whitespace_and_newlines();
+ 
+   if (xml)
+     xml_start_para ();
+   else if (html && !paragraph_is_open)
+     add_html_block_elt ("<p class=\"noindent\">");
+   else
+     {
+       paragraph_is_open = 0;
+       start_paragraph ();
+     }
+ }
+ 
+ /* Force indentation of the next paragraph. */
+ void
+ cm_indent (void)
+ {
+   inhibit_paragraph_indentation = 0;
+   xml_no_indent = 0;
+   skip_whitespace_and_newlines();
+   
+   if (xml)
+     xml_start_para ();
+   else if (html && !paragraph_is_open)
+     add_html_block_elt ("<p class=\"indent\">");
+   else
+     start_paragraph ();
+ }
+ 
+ /* I don't know exactly what to do with this.  Should I allow
+    someone to switch filenames in the middle of output?  Since the
+    file could be partially written, this doesn't seem to make sense.
+    Another option: ignore it, since they don't really want to
+    switch files.  Finally, complain, or at least warn.  It doesn't
+    really matter, anyway, since this doesn't get executed.  */
+ void
+ cm_setfilename (void)
+ {
+   char *filename;
+   get_rest_of_line (1, &filename);
+   /* warning ("`@%s %s' encountered and ignored", command, filename); */
+   if (xml)
+     add_word_args ("<setfilename>%s</setfilename>", filename);
+   free (filename);
+ }
+ 
+ void
+ cm_settitle (void)
+ {
+   if (xml)
+     {
+       xml_insert_element (SETTITLE, START);
+       xml_in_book_title = 1;
+       get_rest_of_line (0, &title);
+       execute_string ("%s", title);
+       xml_in_book_title = 0;
+       xml_insert_element (SETTITLE, END);
+     }
+   else
+     get_rest_of_line (0, &title);
+ }
+ 
+ 
+ /* Ignore argument in braces.  */
+ void
+ cm_ignore_arg (int arg, int start_pos, int end_pos)
+ {
+   if (arg == END)
+     output_paragraph_offset = start_pos;
+ }
+ 
+ /* Ignore argument on rest of line.  */
+ void
+ cm_ignore_line (void)
+ {
+   discard_until ("\n");
+ }
+ 
+ /* Insert the number of blank lines passed as argument. */
+ void
+ cm_sp (void)
+ {
+   int lines;
+   char *line;
+ 
+   /* Due to tricky stuff in execute_string(), @value{} can't be expanded.
+      So there is really no reason to enable expansion for @sp parameters.  */
+   get_rest_of_line (0, &line);
+ 
+   if (sscanf (line, "%d", &lines) != 1 || lines <= 0)
+     line_error (_("@sp requires a positive numeric argument, not `%s'"), line);
+   else
+     {
+       if (xml)
+ 	{
+           /* @sp can appear between @item and @itemx, @deffn and @deffnx.  */
+           xml_dont_touch_items_defs++;
+ 	  xml_insert_element_with_attribute (SP, START, "lines=\"%s\"", line);
+ 	  /*	  insert_string (line);*/
+ 	  xml_insert_element (SP, END);
+           xml_dont_touch_items_defs--;
+ 	}
+       else
+         {
+           /* Must disable filling since otherwise multiple newlines is like
+              multiple spaces.  Must close paragraph since that's what the
+              manual says and that's what TeX does.  */
+           int save_filling_enabled = filling_enabled;
+           filling_enabled = 0;
+ 
+           /* close_paragraph generates an extra blank line.  */
+           close_single_paragraph ();
+ 
+           if (html)
+             add_html_block_elt ("<pre class=\"sp\">\n");
+ 
+           while (lines--)
+             add_char ('\n');
+ 
+           if (html)
+             add_html_block_elt ("</pre>\n");
+ 
+           filling_enabled = save_filling_enabled;
+         }
+     }
+   free (line);
+ }
+ 
+ /* @dircategory LINE outputs INFO-DIR-SECTION LINE, unless --no-headers.  */ 
+ void
+ cm_dircategory (void)
+ {
+   char *line;
+ 
+   if (html || docbook)
+     cm_ignore_line ();
+   else if (xml)
+     {
+       xml_insert_element (DIRCATEGORY, START);
+       get_rest_of_line (1, &line);
+       insert_string (line);
+       free (line);
+       xml_insert_element (DIRCATEGORY, END);
+     }
+   else
+     {
+       get_rest_of_line (1, &line);
+ 
+       if (!no_headers && !html)
+         {
+           /* use add_* instead of insert_* because otherwise the
+              file header ("This is ...") will end up inside the
+              dir section markers.  */
+           kill_self_indent (-1); /* make sure there's no indentation */
+           cm_noindent (); /* make sure again */
+           add_word ("INFO-DIR-SECTION ");
+           add_word (line);
+           close_single_paragraph ();  /* newline */
+         }
+ 
+       free (line);
+     }
+ }
+ 
+ /* Start a new line with just this text on it.
+    Then center the line of text.
+    */
+ void
+ cm_center (void)
+ {
+   if (xml)
+     {
+       char *line;
+       xml_insert_element (CENTER, START);
+       get_rest_of_line (0, &line);
+       execute_string ("%s", line);
+       free (line);
+       xml_insert_element (CENTER, END);
+     }
+   else
+     {
+       int i, start, length, width;
+       char *line;
+       int save_indented_fill = indented_fill;
+       int save_filling_enabled = filling_enabled;
+       int fudge_factor = 1;
+ 
+       filling_enabled = indented_fill = 0;
+       cm_noindent ();
+       start = output_paragraph_offset;
+ 
+       if (html)
+         add_html_block_elt ("<div align=\"center\">");
+ 
+       inhibit_output_flushing ();
+       get_rest_of_line (0, &line);
+       execute_string ("%s", line);
+       free (line);
+       uninhibit_output_flushing ();
+       if (html)
+         add_html_block_elt ("</div>");
+ 
+        else
+          {
+            i = output_paragraph_offset - 1;
+            while (i > (start - 1) && output_paragraph[i] == '\n')
+              i--;
+ 
+            output_paragraph_offset = ++i;
+            length = output_paragraph_offset - start;
+ 	   width = mbsnwidth ((char *)(output_paragraph + start), length, 0);
+ 
+            if (width < (fill_column - fudge_factor))
+              {
+                line = xmalloc (1 + length);
+                memcpy (line, (char *)(output_paragraph + start), length);
+ 
+                i = (fill_column - fudge_factor - width) / 2;
+                output_paragraph_offset = start;
+ 
+                while (i--)
+                  insert (' ');
+ 
+                for (i = 0; i < length; i++)
+                  insert (line[i]);
+ 
+                free (line);
+              }
+          }
+ 
+       insert ('\n');
+       filling_enabled = save_filling_enabled;
+       indented_fill = save_indented_fill;
+       close_single_paragraph ();
+       if (looking_at ("\n"))
+         insert ('\n');
+     }
+ }
+ 
+ 
+ /* Define what @click{} does.  */
+ static char *click_command = "@arrow";
+ 
+ void
+ cm_clickstyle (void)
+ {
+   click_command = get_item_function ();
+ 
+   if (looking_at ("\n"))
+     {
+       input_text_offset++;
+       line_number++;
+     }
+ }
+ 
+ /* @clicksequence{File @click{} Open} */
+ void
+ cm_clicksequence (int arg)
+ {
+   if (xml)
+     xml_insert_element (CLICKSEQUENCE, arg);
+ }
+ 
+ void
+ cm_click (int arg)
+ {
+   if (xml)
+     xml_insert_element (CLICK, arg);
+   else if (arg == END)
+     execute_string ("%s{}", click_command);
+ }
+ 
+ 
+ /* Generic right arrow, default clickstyle.  */
+ void
+ cm_arrow (int arg)
+ {
+   if (arg == END)
+     if (html || xml)
+       xml_insert_entity ("rarr");
+     else
+       add_word ("->");
+ }
+ 
+ /* Show what an expression returns. */
+ void
+ cm_result (int arg)
+ {
+   if (arg == END)
+     if (html || xml)
+       xml_insert_entity ("rArr");
+     else
+       add_word ("=>");
+ }
+ 
+ /* What an expression expands to. */
+ void
+ cm_expansion (int arg)
+ {
+   if (arg == END)
+     add_word (html ? "==&gt;" : "==>");
+ }
+ 
+ /* Indicates two expressions are equivalent. */
+ void
+ cm_equiv (int arg)
+ {
+   if (arg == END)
+     add_word ("==");
+ }
+ 
+ /* What an expression may print. */
+ void
+ cm_print (int arg)
+ {
+   if (arg == END)
+     add_word ("-|");
+ }
+ 
+ /* An error signaled. */
+ void
+ cm_error (int arg)
+ {
+   if (arg == END)
+     add_word (html ? "error--&gt;" : "error-->");
+ }
+ 
+ /* The location of point in an example of a buffer. */
+ void
+ cm_point (int arg)
+ {
+   if (arg == END)
+     add_word ("-!-");
+ }
+ 
+ /* @exdent: Start a new line with just this text on it.
+    The text is outdented one level if possible. */
+ void
+ cm_exdent (void)
+ {
+   char *line;
+   int save_indent = current_indent;
+   int save_in_fixed_width_font = in_fixed_width_font;
+ 
+   /* Read argument.  */
+   get_rest_of_line (0, &line);
+ 
+   /* Exdent the output.  Actually this may be a no-op.   */
+   if (current_indent)
+     current_indent -= default_indentation_increment;
+ 
+   /* @exdent arg is supposed to be in roman.  */
+   in_fixed_width_font = 0;
+   
+   /* The preceding newline already inserted the `current_indent'.
+      Remove one level's worth.  */
+   kill_self_indent (default_indentation_increment);
+ 
+   if (html)
+     add_word ("<br>");
+   else if (docbook)
+     xml_insert_element (LINEANNOTATION, START);
+   else if (xml)
+     xml_insert_element (EXDENT, START);
+ 
+   /* Can't close_single_paragraph, then we lose preceding blank lines.  */
+   flush_output ();
+   execute_string ("%s", line);
+   free (line);
+ 
+   if (html)
+     add_word ("<br>");
+   else if (xml)
+     {
+       xml_insert_element (docbook ? LINEANNOTATION : EXDENT, END);
+       insert ('\n');
+     }
+ 
+   close_single_paragraph ();
+ 
+   current_indent = save_indent;
+   in_fixed_width_font = save_in_fixed_width_font;
+   if (!xml)
+     start_paragraph ();
+ }
+ 
+ /* 
+   Read include-filename, process the include-file:
+     verbatim_include == 0: process through reader_loop
+     verbatim_include != 0: process through handle_verbatim_environment
+  */
+ static void
+ handle_include (int verbatim_include)
+ {
+   char *arg, *filename;
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     me_append_before_this_command ();
+ 
+   if (!insertion_stack)
+     close_paragraph ();  /* No blank lines etc. if not at outer level.  */
+     
+   if (macro_expansion_output_stream && verbatim_include)
+     {
+       me_append_before_this_command ();
+       return;
+     }
+     
+   get_rest_of_line (0, &arg);
+   /* We really only want to expand @value, but it's easier to just do
+      everything.  TeX will only work with @value.  */
+   {
+     int save_in_fixed_width_font = in_fixed_width_font;
+     in_fixed_width_font = 1;  /* do not change -- to -, etc.  */
+     filename = text_expansion (arg);
+     in_fixed_width_font = save_in_fixed_width_font;    
+   }
+ 
+   free (arg);
+   
+   if (macro_expansion_output_stream && !executing_string)
+     remember_itext (input_text, input_text_offset);
+   
+   pushfile ();
+ 
+   /* In verbose mode we print info about including another file. */
+   if (verbose_mode)
+     {
+       int i = 0;
+       FSTACK *stack = filestack;
+ 
+       for (i = 0, stack = filestack; stack; stack = stack->next, i++);
+ 
+       i *= 2;
+ 
+       printf ("%*s", i, "");
+       printf ("%c%s `%s'\n", COMMAND_PREFIX, command, filename);
+       fflush (stdout);
+     }
+ 
+   if (!find_and_load (filename, 1))
+     {
+       popfile ();
+       line_number--;
+ 
+       /* /wh/bar:5: @include/@verbatiminclude `foo': No such file or dir */
+       line_error ("%c%s `%s': %s", COMMAND_PREFIX, command, filename,
+                   strerror (errno));
+ 
+       free (filename);
+       return;
+     }
+   else
+     {
+       if (macro_expansion_output_stream && !executing_string)
+ 	remember_itext (input_text, input_text_offset);
+ 
+       if (!verbatim_include)
+ 	reader_loop ();
+       else
+ 	handle_verbatim_environment (0);
+     }
+   free (filename);
+   popfile ();
+ }
+ 
+ 
+ /* Include file as if put in @verbatim environment */
+ void
+ cm_verbatiminclude (void)
+ {
+   handle_include (1); 
+ }
+ 
+ 
+ /* Remember this file, and move onto the next. */
+ void
+ cm_include (void)
+ {
+   handle_include (0); 
+ }
+ 
+ 
+ /* @bye: Signals end of processing.  Easy to make this happen. */
+ 
+ void
+ cm_bye (void)
+ {
+   discard_braces (); /* should not have any unclosed braces left */
+   input_text_offset = input_text_length;
+ }
+ 
+ /* @paragraphindent */
+ 
+ static void
+ cm_paragraphindent (void)
+ {
+   char *arg;
+ 
+   get_rest_of_line (1, &arg);
+   if (set_paragraph_indent (arg) != 0)
+     line_error (_("Bad argument to %c%s"), COMMAND_PREFIX, command);
+ 
+   free (arg);
+ }
+ 
+ 
+ /* @exampleindent: change indentation of example-like environments.   */
+ static int
+ set_example_indentation_increment (char *string)
+ {
+   if (strcmp (string, "asis") == 0 || strcmp (string, _("asis")) == 0)
+     ;
+   else if (strcmp (string, "none") == 0 || strcmp (string, _("none")) == 0)
+     example_indentation_increment = 0;
+   else if (sscanf (string, "%d", &example_indentation_increment) != 1)
+     return -1;
+   return 0;
+ }
+ 
+ static void
+ cm_exampleindent (void)
+ {
+   char *arg;
+   
+   get_rest_of_line (1, &arg);
+   if (set_example_indentation_increment (arg) != 0)
+     line_error (_("Bad argument to @%s"), command);
+ 
+   if (input_text[input_text_offset] == '\n')
+     close_single_paragraph ();
+ 
+   free (arg);
+ }
+ 
+ 
+ /* @firstparagraphindent: suppress indentation in first paragraphs after
+    headings. */
+ static int
+ set_firstparagraphindent (char *string)
+ {
+   if (STREQ (string, "insert") || STREQ (string, _("insert")))
+     do_first_par_indent = 1;
+   else if (STREQ (string, "none") || STREQ (string, _("none")))
+     do_first_par_indent = 0;
+   else
+     return -1;
+   return 0;
+ }
+ 
+ static void
+ cm_firstparagraphindent (void)
+ {
+   char *arg;
+ 
+   get_rest_of_line (1, &arg);
+   if (set_firstparagraphindent (arg) != 0)
+     line_error (_("Bad argument to @%s: %s"), command, arg);
+ 
+   free (arg);
+ }
+ 
+ /* For DocBook and XML, produce &period; for `.@:'. This gives the processing
+    software a fighting chance to treat it specially by not adding extra space.
+   
+    Do this also for ?, !, and :.  */
+ void
+ cm_colon (void)
+ {
+   if (xml)
+     {
+       if (strchr (".?!:", input_text[input_text_offset-3]) != NULL)
+         {
+           /* Erase literal character that's there, except `>', which is
+              part of the XML tag.  */
+           if (output_paragraph_offset > 0
+ 	      && output_paragraph[output_paragraph_offset-1] != '>')
+             output_paragraph_offset--;
+ 
+           switch (input_text[input_text_offset-3])
+             {
+             case '.':
+               xml_insert_entity ("period");
+               break;
+             case '?':
+               xml_insert_entity ("quest");
+               break;
+             case '!':
+               xml_insert_entity ("excl");
+               break;
+             case ':':
+               xml_insert_entity ("colon");
+               break;
+             }
+         }
+     }
+ }
+ 
+ /* Ending sentences explicitly.  Currently, only outputs entities for XML
+    output, for other formats it calls insert_self.  */
+ void
+ cm_punct (int arg)
+ {
+   if (xml && !docbook && input_text_offset > 0)
+     {
+       switch (input_text[input_text_offset-1])
+         {
+         case '.':
+           xml_insert_entity ("eosperiod");
+           break;
+         case '?':
+           xml_insert_entity ("eosquest");
+           break;
+         case '!':
+           xml_insert_entity ("eosexcl");
+           break;
+         }
+     }
+   else
+     {
+       insert_self (arg);
+     }
+ }
+ 
+ 
+ /* If @frenchspacing is in effect, avoid outputting extra spaces after
+    sentence-ending periods.  Actually, we explicitly do this only in one
+    tiny case (see add_char in makeinfo.c).  Usually we just output
+    whatever the user gives us.  */
+ void
+ cm_frenchspacing (void)
+ {
+   char *val;
+   get_rest_of_line (1, &val);
+ 
+   if (STREQ (val, "on")) {
+     french_spacing = 1;
+   } else if (STREQ (val, "off")) {
+     french_spacing = 0;
+   } else {
+     line_error (_("Expected @%s on or off, not `%s'"), command, val);
+   }
+   
+   if (xml && !docbook) {
+     xml_insert_element_with_attribute (FRENCHSPACING, START,
+                                        "val=\"%s\"", val);
+     xml_insert_element (FRENCHSPACING, END);
+   }
+ }
+ 
+ 
+ /* Body font size.  This is only for TeX, so we're just checking
+    validity here.  Don't think we should even pass it on to XML.  */
+ void
+ cm_fonttextsize (void)
+ {
+   char *val;
+   get_rest_of_line (1, &val);
+ 
+   if (! (STREQ (val, "10") || STREQ (val, "off"))) {
+     line_error (_("Only @%s 10 or 11 is supported, not `%s'"), command, val);
+   }
+ }
diff -Nrc2 texinfo-4.12/makeinfo/cmds.h texinfo-4.13/makeinfo/cmds.h
*** texinfo-4.12/makeinfo/cmds.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/cmds.h	Thu May 22 05:11:34 2008
***************
*** 0 ****
--- 1,223 ----
+ /* cmds.h -- declarations for cmds.c.
+    $Id: cmds.h,v 1.15 2008/04/09 17:07:31 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2002, 2003, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef CMDS_H
+ #define CMDS_H
+ 
+ /* The three arguments a command can get are a flag saying whether it is
+    before argument parsing (START) or after (END), the starting position
+    of the arguments, and the ending position.  */
+ typedef void COMMAND_FUNCTION (); /* So we can say COMMAND_FUNCTION *foo; */
+ 
+ /* Each command has an associated function.  When the command is
+    encountered in the text, the associated function is called with START
+    as the argument.  If the function expects arguments in braces, it
+    remembers itself on the stack.  When the corresponding close brace is
+    encountered, the function is called with END as the argument. */
+ #define START 0
+ #define END 1
+ 
+ /* Does the command expect braces?  */
+ #define NO_BRACE_ARGS 0
+ #define BRACE_ARGS 1
+ #define MAYBE_BRACE_ARGS 2
+ 
+ typedef struct
+ {
+   char *name;
+   COMMAND_FUNCTION *proc;
+   int argument_in_braces;
+ } COMMAND;
+ 
+ extern COMMAND command_table[];
+ 
+ typedef struct acronym_desc
+ {
+   struct acronym_desc *next;
+   char *acronym;
+   char *description;
+ } ACRONYM_DESC;
+ 
+ /* Texinfo commands.  */
+ extern void insert_self (int arg),
+   insert_space (int arg),
+   cm_ignore_line (void),
+   cm_ignore_arg (int arg, int start_pos, int end_pos),
+   cm_comment (void),
+   cm_no_op (void);
+ 
+ /* Document structure and meta information.  */
+ extern void cm_setfilename (void),
+   cm_settitle (void),
+   cm_documentdescription (void),
+   cm_node (void),
+   cm_menu (void),
+   cm_detailmenu (void),
+   cm_dircategory (void),
+   cm_direntry (void),
+   cm_bye (void);
+ 
+ /* File inclusion.  */
+ extern void cm_include (void),
+   cm_verbatiminclude (void);
+ 
+ /* Cross referencing commands.  */
+ extern void cm_anchor (int arg),
+   cm_xref (int arg),
+   cm_pxref (int arg),
+   cm_ref (int arg),
+   cm_inforef (int arg),
+   cm_uref (int arg);
+ 
+ /* Special insertions.  */
+ extern void cm_LaTeX (int arg),
+   cm_TeX (int arg),
+   cm_arrow (int arg),
+   cm_bullet (int arg),
+   cm_click (int arg),
+   cm_clicksequence (int arg),
+   cm_clickstyle (void),
+   cm_colon (void),
+   cm_comma (int arg),
+   cm_copyright (int arg),
+   cm_dots (int arg),
+   cm_enddots (int arg),
+   cm_equiv (int arg),
+   cm_error (int arg),
+   cm_expansion (int arg),
+   cm_image (int arg),
+   cm_insert_copying (void),
+   cm_guilsinglleft (int arg),
+   cm_guilsinglright (int arg),
+   cm_point (int arg),
+   cm_print (int arg),
+   cm_punct (int arg),
+   cm_quotedblbase (int arg),
+   cm_quotedblleft (int arg),
+   cm_quotedblright (int arg),
+   cm_quoteleft (int arg),
+   cm_quoteright (int arg),
+   cm_quotesinglbase (int arg),
+   cm_registeredsymbol (int arg),
+   cm_result (int arg);
+ 
+ /* Emphasis and markup.  */
+ extern void cm_acronym (int arg),
+   cm_abbr (int arg),
+   cm_b (int arg),
+   cm_cite (int arg, int position),
+   cm_code (int arg),
+   cm_dfn (int arg, int position),
+   cm_dmn (int arg),
+   cm_email (int arg),
+   cm_emph (int arg),
+   cm_i (int arg),
+   cm_kbd (int arg),
+   cm_key (int arg),
+   cm_math (int arg),
+   cm_not_fixed_width (int arg, int start, int end),
+   cm_r (int arg),
+   cm_sansserif (int arg),
+   cm_sc (int arg, int start_pos, int end_pos),
+   cm_slanted (int arg),
+   cm_strong (int arg, int start_pos, int end_pos),
+   cm_tt (int arg),
+   cm_indicate_url (int arg, int start, int end),
+   cm_var (int arg, int start_pos, int end_pos),
+   cm_verb (int arg);
+ 
+ /* Block environments.  */
+ extern void cm_cartouche (void),
+   cm_group (void),
+   cm_display (void),
+   cm_smalldisplay (void),
+   cm_example (void),
+   cm_smallexample (void),
+   cm_smalllisp (void),
+   cm_lisp (void),
+   cm_format (void),
+   cm_smallformat (void),
+   cm_quotation (void),
+   cm_copying (void),
+   cm_flushleft (void),
+   cm_flushright (void),
+   cm_verbatim (void),
+   cm_end (void);
+ 
+ /* Tables, lists, enumerations.  */
+ extern void cm_table (void),
+   cm_ftable (void),
+   cm_vtable (void),
+   cm_itemize (void),
+   cm_enumerate (void),
+   cm_multitable (void),
+   cm_headitem (void),
+   cm_item (void),
+   cm_itemx (void),
+   cm_tab (void);
+ 
+ extern void cm_center (void),
+   cm_exdent (void),
+   cm_indent (void),
+   cm_noindent (void),
+   cm_noindent_cmd (void);
+ 
+ /* Line and page breaks.  */
+ extern void cm_asterisk (void),
+   cm_sp (void),
+   cm_page (void);
+ 
+ /* Non breaking words.  */
+ extern void cm_tie (int arg),
+   cm_w (int arg);
+ 
+ /* Title page creation.  */
+ extern void cm_titlepage (void),
+   cm_author (void),
+   cm_titlepage_cmds (void),
+   cm_titlefont (int arg),
+   cm_today (int arg);
+ 
+ /* Floats.  */
+ extern void cm_float (void),
+   cm_caption (int arg),
+   cm_shortcaption (void),
+   cm_listoffloats (void);
+ 
+ /* Indices.  */
+ extern void cm_kindex (void),
+   cm_cindex (void),
+   cm_findex (void),
+   cm_pindex (void),
+   cm_vindex (void),
+   cm_tindex (void),
+   cm_defindex (void),
+   cm_defcodeindex (void),
+   cm_synindex (void),
+   cm_printindex (void);
+ 
+ /* Conditionals. */
+ extern void cm_set (void),
+   cm_clear (void),
+   cm_ifset (void),
+   cm_ifclear (void),
+   cm_ifeq (void),
+   cm_value (int arg, int start_pos, int end_pos);
+ 
+ #endif /* !CMDS_H */
diff -Nrc2 texinfo-4.12/makeinfo/defun.c texinfo-4.13/makeinfo/defun.c
*** texinfo-4.12/makeinfo/defun.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/defun.c	Tue Dec 25 15:57:20 2007
***************
*** 0 ****
--- 1,720 ----
+ /* defun.c -- @defun and friends.
+    $Id: defun.c,v 1.18 2007/09/15 23:48:45 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "defun.h"
+ #include "xml.h"
+ #include "insertion.h"
+ #include "makeinfo.h"
+ #include "cmds.h"
+ #include "html.h"
+ 
+ 
+ #define DEFUN_SELF_DELIMITING(c) \
+   ((c) == '(' || (c) == ')' || (c) == '[' || (c) == ']')
+ 
+ struct token_accumulator
+ {
+   unsigned int length;
+   unsigned int index;
+   char **tokens;
+ };
+ 
+ static void
+ initialize_token_accumulator (struct token_accumulator *accumulator)
+ {
+   accumulator->length = 0;
+   accumulator->index = 0;
+   accumulator->tokens = NULL;
+ }
+ 
+ static void
+ accumulate_token (struct token_accumulator *accumulator, char *token)
+ {
+   if (accumulator->index >= accumulator->length)
+     {
+       accumulator->length += 10;
+       accumulator->tokens = xrealloc (accumulator->tokens,
+                                       (accumulator->length * sizeof (char *)));
+     }
+   accumulator->tokens[accumulator->index] = token;
+   accumulator->index += 1;
+ }
+ 
+ /* Given STRING_POINTER pointing at an open brace, skip forward and return a
+    pointer to just past the matching close brace. */
+ static int
+ scan_group_in_string (char **string_pointer)
+ {
+   char *scan_string = (*string_pointer) + 1;
+   unsigned int level = 1;
+   int started_command = 0;
+ 
+   for (;;)
+     {
+       int c;
+       if (level == 0)
+         {
+           *string_pointer = scan_string;
+           return 1;
+         }
+       c = *scan_string++;
+       if (c == 0)
+         {
+           /* Tweak line_number to compensate for fact that
+              we gobbled the whole line before coming here. */
+           line_number--;
+           line_error (_("Missing `}' in @def arg"));
+           line_number++;
+           *string_pointer = scan_string - 1;
+           return 0;
+         }
+ 
+       if (c == '{' && !started_command)
+         level++;
+       if (c == '}' && !started_command)
+         level--;
+ 
+       /* remember if at @.  */
+       started_command = (c == '@' && !started_command);
+     }
+ }
+ 
+ /* Return a list of tokens from the contents of STRING.
+    Commands and brace-delimited groups count as single tokens.
+    Contiguous whitespace characters are converted to a token
+    consisting of a single space. */
+ static char **
+ args_from_string (char *string)
+ {
+   struct token_accumulator accumulator;
+   char *token_start, *token_end;
+   char *scan_string = string;
+ 
+   initialize_token_accumulator (&accumulator);
+ 
+   while (*scan_string)
+     { /* Replace arbitrary whitespace by a single space. */
+       if (whitespace (*scan_string))
+         {
+           scan_string += 1;
+           while (whitespace (*scan_string))
+             scan_string += 1;
+           accumulate_token ((&accumulator), (xstrdup (" ")));
+           continue;
+         }
+ 
+       /* Commands count as single tokens. */
+       if (*scan_string == COMMAND_PREFIX)
+         {
+           token_start = scan_string;
+           scan_string += 1;
+           if (self_delimiting (*scan_string))
+             scan_string += 1;
+           else
+             {
+               int c;
+               while (1)
+                 {
+                   c = *scan_string++;
+ 
+                   if ((c == 0) || (c == '{') || (whitespace (c)))
+                     {
+                       scan_string -= 1;
+                       break;
+                     }
+                 }
+ 
+               if (*scan_string == '{')
+                 {
+                   char *s = scan_string;
+                   (void) scan_group_in_string (&s);
+                   scan_string = s;
+                 }
+             }
+           token_end = scan_string;
+         }
+ 
+       /* Parentheses and brackets are self-delimiting. */
+       else if (DEFUN_SELF_DELIMITING (*scan_string))
+         {
+           token_start = scan_string;
+           scan_string += 1;
+           token_end = scan_string;
+         }
+ 
+       /* Open brace introduces a group that is a single token. */
+       else if (*scan_string == '{')
+         {
+           char *s = scan_string;
+           int balanced = scan_group_in_string (&s);
+ 
+           token_start = scan_string + 1;
+           scan_string = s;
+           token_end = balanced ? (scan_string - 1) : scan_string;
+         }
+ 
+       /* Make commas separate tokens so to differentiate them from
+          parameter types in XML output. */
+       else if (*scan_string == ',')
+ 	{
+           token_start = scan_string;
+           scan_string += 1;
+           token_end = scan_string;
+ 	}
+ 
+       /* Otherwise a token is delimited by whitespace, parentheses,
+          brackets, or braces.  A token is also ended by a command. */
+       else
+         {
+           token_start = scan_string;
+ 
+           for (;;)
+             {
+               int c;
+ 
+               c = *scan_string++;
+ 
+               /* Do not back up if we're looking at a }; since the only
+                  valid }'s are those matched with {'s, we want to give
+                  an error.  If we back up, we go into an infinite loop.  */
+               if (!c || whitespace (c) || DEFUN_SELF_DELIMITING (c)
+                   || c == '{')
+                 {
+                   scan_string--;
+                   break;
+                 }
+ 
+ 	      /* End token if we are looking at a comma, as commas are
+ 		 delimiters too. */
+ 	      if (c == ',')
+ 		{
+ 		  scan_string--;
+ 		  break;
+ 		}
+ 
+               /* If we encounter a command embedded within a token,
+                  then end the token. */
+               if (c == COMMAND_PREFIX)
+                 {
+                   scan_string--;
+                   break;
+                 }
+             }
+           token_end = scan_string;
+         }
+ 
+       accumulate_token (&accumulator, substring (token_start, token_end));
+     }
+   accumulate_token (&accumulator, NULL);
+   return accumulator.tokens;
+ }
+ 
+ static void
+ process_defun_args (char **defun_args, int auto_var_p)
+ {
+   int pending_space = 0;
+ 
+   if (xml)
+     {
+       xml_process_defun_args (defun_args, auto_var_p);
+       return;
+     }
+ 
+   for (;;)
+     {
+       char *defun_arg = *defun_args++;
+ 
+       if (defun_arg == NULL)
+         break;
+ 
+       if (defun_arg[0] == ' ')
+         {
+           pending_space = 1;
+           continue;
+         }
+ 
+       if (pending_space)
+         {
+           add_char (' ');
+           pending_space = 0;
+         }
+ 
+       if (DEFUN_SELF_DELIMITING (defun_arg[0]))
+         {
+           /* Within @deffn and friends, texinfo.tex makes parentheses
+              sans serif and brackets bold.  We use roman instead.  */
+           if (html)
+             insert_html_tag (START, "");
+             
+           add_char (defun_arg[0]);
+           
+           if (html)
+             insert_html_tag (END, "");
+         }
+       /* else if (defun_arg[0] == '&' || defun_arg[0] == COMMAND_PREFIX) */
+         /* execute_string ("%s", defun_arg); */
+       /* else if (auto_var_p) */
+         /* execute_string ("%s", defun_arg); */
+       else
+         execute_string ("%s", defun_arg);
+     }
+ }
+ 
+ static char *
+ next_nonwhite_defun_arg (char ***arg_pointer)
+ {
+   char **scan = (*arg_pointer);
+   char *arg = (*scan++);
+ 
+   if ((arg != 0) && (*arg == ' '))
+     arg = *scan++;
+ 
+   if (arg == 0)
+     scan -= 1;
+ 
+   *arg_pointer = scan;
+ 
+   return (arg == 0) ? "" : arg;
+ }
+ 
+ 
+ /* This is needed also in insertion.c.  */
+ 
+ enum insertion_type
+ get_base_type (enum insertion_type type)
+ {
+   enum insertion_type base_type;
+   switch (type)
+     {
+     case defivar:	base_type = defcv; break;
+     case defmac:	base_type = deffn; break;
+     case defmethod:	base_type = defop; break;
+     case defopt:	base_type = defvr; break;
+     case defspec:	base_type = deffn; break;
+     case deftypecv:	base_type = deftypecv; break;
+     case deftypefun:	base_type = deftypefn; break;
+     case deftypeivar:	base_type = deftypeivar; break;
+     case deftypemethod:	base_type = deftypemethod; break;
+     case deftypeop:	base_type = deftypeop; break;
+     case deftypevar:	base_type = deftypevr; break;
+     case defun:		base_type = deffn; break;
+     case defvar:	base_type = defvr; break;
+     default:
+       base_type = type;
+       break;
+     }
+ 
+   return base_type;
+ }
+ 
+ /* Make the defun type insertion.
+    TYPE says which insertion this is.
+    X_P, if nonzero, says not to start a new insertion. */
+ static void
+ defun_internal (enum insertion_type type, int x_p)
+ {
+   enum insertion_type base_type;
+   char **defun_args, **scan_args;
+   const char *category;
+   char *defined_name;
+   char *type_name = NULL;
+   char *type_name2 = NULL;
+ 
+   {
+     char *line;
+ 
+     /* The @def.. line is the only place in Texinfo where you are
+        allowed to use unquoted braces that don't delimit arguments of
+        a command or a macro; in any other place it will trigger an
+        error message from the reader loop.  The special handling of
+        this case inside `args_from_string' is an extra special hack
+        which allows this.  The side effect is that if we try to expand
+        the rest of the line below, the recursive reader loop will
+        signal an error if there are brace-delimited arguments on that line.
+ 
+        The best solution to this would be to change the syntax of
+        @def.. commands so that it doesn't violate Texinfo's own rules.
+        But it's probably too late for this now, as it will break a lot
+        of existing manuals.
+ 
+        Unfortunately, this means that you can't call macros, use @value, etc.
+        inside @def.. commands, sigh.  */
+     get_rest_of_line (0, &line);
+ 
+     /* Basic line continuation.  If a line ends with \s*@\s* concatanate
+        the next line. */
+     {
+       char *next_line, *new_line;
+       int i;
+ 
+       line_continuation:
+         i = strlen (line) - 1;
+ 
+         if (i > 0 && line[i] == '@' && line[i-1] != '@')
+           {
+             get_rest_of_line (0, &next_line);
+             new_line = (char *) xmalloc (i + strlen (next_line) + 2);
+             strncpy (new_line, line, i);
+             new_line[i] = '\0';
+             free (line);
+             strcat (new_line, " ");
+             strcat (new_line, next_line);
+             line = xstrdup (new_line);
+             free (next_line);
+             free (new_line);
+ 
+             goto line_continuation;
+           }
+     }
+ 
+     defun_args = (args_from_string (line));
+     free (line);
+   }
+ 
+   scan_args = defun_args;
+ 
+   /* Get base type and category string.  */
+   base_type = get_base_type (type);
+ 
+   /* xx all these const strings should be determined upon
+      documentlanguage argument and NOT via gettext  (kama).  */
+   switch (type)
+     {
+     case defun:
+     case deftypefun:
+       category = gdt("Function");
+       break;
+     case defmac:
+       category = gdt("Macro");
+       break;
+     case defspec:
+       category = gdt("Special Form");
+       break;
+     case defvar:
+     case deftypevar:
+       category = gdt("Variable");
+       break;
+     case defopt:
+       category = gdt("User Option");
+       break;
+     case defivar:
+     case deftypeivar:
+       category = gdt("Instance Variable");
+       break;
+     case defmethod:
+     case deftypemethod:
+       category = gdt("Method");
+       break;
+     default:
+       category = next_nonwhite_defun_arg (&scan_args);
+       break;
+     }
+ 
+   /* The class name.  */
+   if ((base_type == deftypecv)
+       || (base_type == deftypefn)
+       || (base_type == deftypevr)
+       || (base_type == defcv)
+       || (base_type == defop)
+       || (base_type == deftypeivar)
+       || (base_type == deftypemethod)
+       || (base_type == deftypeop)
+      )
+     type_name = next_nonwhite_defun_arg (&scan_args);
+ 
+   /* The type name for typed languages.  */
+   if ((base_type == deftypecv)
+       || (base_type == deftypeivar)
+       || (base_type == deftypemethod)
+       || (base_type == deftypeop)
+      )
+     type_name2 = next_nonwhite_defun_arg (&scan_args);
+ 
+   /* The function or whatever that's actually being defined.  */
+   defined_name = next_nonwhite_defun_arg (&scan_args);
+ 
+   /* This hack exists solely for the purposes of formatting the Texinfo
+      manual.  I couldn't think of a better way.  The token might be a
+      simple @@ followed immediately by more text.  If this is the case,
+      then the next defun arg is part of this one, and we should
+      concatenate them. */
+   if (*scan_args && **scan_args && !whitespace (**scan_args)
+        && STREQ (defined_name, "@@"))
+     {
+       char *tem = xmalloc (3 + strlen (scan_args[0]));
+ 
+       sprintf (tem, "@@%s", scan_args[0]);
+ 
+       free (scan_args[0]);
+       scan_args[0] = tem;
+       scan_args++;
+       defined_name = tem;
+     }
+ 
+   /* It's easy to write @defun foo(arg1 arg2), but a following ( is
+      misparsed by texinfo.tex and this is next to impossible to fix.
+      Warn about it.  */
+   if (*scan_args && **scan_args && **scan_args == '(')
+     warning ("`%c' follows defined name `%s' instead of whitespace",
+              **scan_args, defined_name);
+ 
+   if (!x_p)
+     begin_insertion (type);
+ 
+   /* Write the definition header line.
+      This should start at the normal indentation.  */
+   current_indent -= default_indentation_increment;
+   start_paragraph ();
+ 
+   if (!html && !xml)
+     switch (base_type)
+       {
+       case deffn:
+       case defvr:
+       case deftp:
+         execute_string (" --- %s: %s", category, defined_name);
+         break;
+       case deftypefn:
+       case deftypevr:
+         execute_string (" --- %s: %s %s", category, type_name, defined_name);
+         break;
+       case defcv:
+         execute_string (" --- %s %s %s: %s", category, gdt("of"), type_name,
+                         defined_name);
+         break;
+       case deftypecv:
+       case deftypeivar:
+         execute_string (" --- %s %s %s: %s %s", category, gdt("of"), type_name,
+                         type_name2, defined_name);
+         break;
+       case defop:
+         execute_string (" --- %s %s %s: %s", category, gdt("on"), type_name,
+                         defined_name);
+         break;
+       case deftypeop:
+         execute_string (" --- %s %s %s: %s %s", category, gdt("on"), type_name,
+                         type_name2, defined_name);
+         break;
+       case deftypemethod:
+         execute_string (" --- %s %s %s: %s %s", category, gdt("on"), type_name,
+                         type_name2, defined_name);
+         break;
+       }
+   else if (html)
+     {
+       /* If this is not a @def...x version, it could only
+          be a normal version @def.... So start the table here.  */
+       if (!x_p)
+         insert_string ("<div class=\"defun\">\n");
+       else
+         rollback_empty_tag ("blockquote");
+ 
+       /* xx The single words (on, off) used here, should depend on
+          documentlanguage and NOT on gettext  --kama.  */
+       switch (base_type)
+         {
+         case deffn:
+         case defvr:
+         case deftp:
+         case deftypefn:
+         case deftypevr:
+           execute_string ("--- %s: ", category);
+           break;
+ 
+         case defcv:
+         case deftypecv:
+         case deftypeivar:
+ 	  execute_string ("--- %s %s %s: ", category, gdt("of"), type_name);
+ 	  break;
+ 
+         case defop:
+         case deftypemethod:
+         case deftypeop:
+ 	  execute_string ("--- %s %s %s: ", category, gdt("on"), type_name);
+ 	  break;
+ 	} /* switch (base_type)... */
+ 
+       switch (base_type)
+         {
+         case deffn:
+         case defvr:
+         case deftp:
+           /* <var> is for the following function arguments.  */
+           insert_html_tag (START, "b");
+           execute_string ("%s", defined_name);
+           insert_html_tag (END, "b");
+           insert_html_tag (START, "var");
+           break;
+         case deftypefn:
+         case deftypevr:
+           execute_string ("%s ", type_name);
+           insert_html_tag (START, "b");
+           execute_string ("%s", defined_name);
+           insert_html_tag (END, "b");
+           insert_html_tag (START, "var");
+           break;
+         case defcv:
+         case defop:
+           insert_html_tag (START, "b");
+           execute_string ("%s", defined_name);
+           insert_html_tag (END, "b");
+           insert_html_tag (START, "var");
+           break;
+         case deftypecv:
+         case deftypeivar:
+         case deftypemethod:
+         case deftypeop:
+           execute_string ("%s ", type_name2);
+           insert_html_tag (START, "b");
+           execute_string ("%s", defined_name);
+           insert_html_tag (END, "b");
+           insert_html_tag (START, "var");
+           break;
+         }
+     }
+   else if (xml)
+     xml_begin_def_term (base_type, category, defined_name, type_name,
+ 	type_name2);
+ 
+   current_indent += default_indentation_increment;
+ 
+   /* Now process the function arguments, if any.  If these carry onto
+      the next line, they should be indented by two increments to
+      distinguish them from the body of the definition, which is indented
+      by one increment.  */
+   current_indent += default_indentation_increment;
+ 
+   switch (base_type)
+     {
+     case deffn:
+     case defop:
+       process_defun_args (scan_args, 1);
+       break;
+ 
+       /* Through Makeinfo 1.67 we processed remaining args only for deftp,
+          deftypefn, and deftypemethod.  But the libc manual, for example,
+          needs to say:
+             @deftypevar {char *} tzname[2]
+          And simply allowing the extra text seems far simpler than trying
+          to invent yet more defn commands.  In any case, we should either
+          output it or give an error, not silently ignore it.  */
+     default:
+       process_defun_args (scan_args, 0);
+       break;
+     }
+ 
+   current_indent -= default_indentation_increment;
+   if (!html)
+     close_single_paragraph ();
+ 
+   /* Make an entry in the appropriate index.  (XML and
+      Docbook already got their entries, so skip them.)  */
+   if (!xml)
+     switch (base_type)
+       {
+       case deffn:
+       case deftypefn:
+ 	execute_string ("@findex %s\n", defined_name);
+ 	break;
+       case defcv:
+       case deftypecv:
+       case deftypevr:
+       case defvr:
+ 	execute_string ("@vindex %s\n", defined_name);
+ 	break;
+       case deftypeivar:
+ 	execute_string ("@vindex %s %s %s\n", defined_name, gdt("of"),
+                         type_name);
+ 	break;
+       case defop:
+       case deftypeop:
+       case deftypemethod:
+ 	execute_string ("@findex %s %s %s\n", defined_name, gdt("on"),
+                         type_name);
+ 	break;
+       case deftp:
+ 	execute_string ("@tindex %s\n", defined_name);
+ 	break;
+       }
+ 
+   if (xml)
+     xml_end_def_term ();
+   else if (html)
+     {
+       inhibit_paragraph_indentation = 1;
+       no_indent = 1;
+       insert_html_tag (END, "var");
+       insert_string ("<br>\n");
+       /* Indent the definition a bit.  */
+       add_html_block_elt ("<blockquote>");
+       no_indent = 0;
+       inhibit_paragraph_indentation = 0;
+       paragraph_is_open = 0;
+     }
+ 
+   /* Deallocate the token list. */
+   scan_args = defun_args;
+   while (1)
+     {
+       char * arg = (*scan_args++);
+       if (arg == NULL)
+         break;
+       free (arg);
+     }
+   free (defun_args);
+ }
+ 
+ /* Add an entry for a function, macro, special form, variable, or option.
+    If the name of the calling command ends in `x', then this is an extra
+    entry included in the body of an insertion of the same type. */
+ void
+ cm_defun (void)
+ {
+   enum insertion_type type;
+   char *base_command = xstrdup (command);  /* command with any `x' removed */
+   /* FIXME: is strlen(command) allways > 0? */
+   int x_p = (command[strlen (command) - 1] == 'x');
+ 
+   if (x_p)
+     base_command[strlen (base_command) - 1] = 0;
+ 
+   type = find_type_from_name (base_command);
+ 
+   /* If we are adding to an already existing insertion, then make sure
+      that we are already in an insertion of type TYPE. */
+   if (x_p)
+     {
+       INSERTION_ELT *i = insertion_stack;
+       /* Skip over ifclear and ifset conditionals.  */
+       while (i && (i->insertion == ifset || i->insertion == ifclear))
+         i = i->next;
+         
+       if (!i || i->insertion != type)
+         {
+           line_error (_("Must be in `@%s' environment to use `@%s'"),
+                       base_command, command);
+           discard_until ("\n");
+           return;
+         }
+     }
+ 
+   defun_internal (type, x_p);
+   free (base_command);
+ }
diff -Nrc2 texinfo-4.12/makeinfo/defun.h texinfo-4.13/makeinfo/defun.h
*** texinfo-4.12/makeinfo/defun.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/defun.h	Sun Jul  1 14:20:32 2007
***************
*** 0 ****
--- 1,30 ----
+ /* defun.h -- declaration for defuns.
+    $Id: defun.h,v 1.6 2007/07/01 21:20:32 karl Exp $
+ 
+    Copyright (C) 1999, 2005, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Karl Heinz Marbaise <kama@hippo.fido.de>.  */
+ 
+ #ifndef DEFUN_H
+ #define DEFUN_H
+ 
+ #include "insertion.h"
+ 
+ extern enum insertion_type get_base_type (enum insertion_type);
+ extern void cm_defun (void);
+ 
+ #endif /* !DEFUN_H */
+ 
diff -Nrc2 texinfo-4.12/makeinfo/files.c texinfo-4.13/makeinfo/files.c
*** texinfo-4.12/makeinfo/files.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/files.c	Sun Jul  1 14:20:32 2007
***************
*** 0 ****
--- 1,783 ----
+ /* files.c -- file-related functions for makeinfo.
+    $Id: files.c,v 1.8 2007/07/01 21:20:32 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "files.h"
+ #include "html.h"
+ #include "index.h"
+ #include "macro.h"
+ #include "makeinfo.h"
+ #include "node.h"
+ 
+ FSTACK *filestack = NULL;
+ 
+ static int node_filename_stack_index = 0;
+ static int node_filename_stack_size = 0;
+ static char **node_filename_stack = NULL;
+ 
+ /* Looking for include files.  */
+ 
+ /* Given a string containing units of information separated by colons,
+    return the next one pointed to by INDEX, or NULL if there are no more.
+    Advance INDEX to the character after the colon. */
+ static char *
+ extract_colon_unit (char *string, int *index)
+ {
+   int start;
+   int path_sep_char = PATH_SEP[0];
+   int i = *index;
+ 
+   if (!string || (i >= strlen (string)))
+     return NULL;
+ 
+   /* Each call to this routine leaves the index pointing at a colon if
+      there is more to the path.  If i > 0, then increment past the
+      `:'.  If i == 0, then the path has a leading colon.  Trailing colons
+      are handled OK by the `else' part of the if statement; an empty
+      string is returned in that case. */
+   if (i && string[i] == path_sep_char)
+     i++;
+ 
+   start = i;
+   while (string[i] && string[i] != path_sep_char) i++;
+   *index = i;
+ 
+   if (i == start)
+     {
+       if (string[i])
+         (*index)++;
+ 
+       /* Return "" in the case of a trailing `:'. */
+       return xstrdup ("");
+     }
+   else
+     {
+       char *value;
+ 
+       value = xmalloc (1 + (i - start));
+       memcpy (value, &string[start], (i - start));
+       value [i - start] = 0;
+ 
+       return value;
+     }
+ }
+ 
+ /* Return the full pathname for FILENAME by searching along PATH.
+    When found, return the stat () info for FILENAME in FINFO.
+    If PATH is NULL, only the current directory is searched.
+    If the file could not be found, return a NULL pointer. */
+ char *
+ get_file_info_in_path (char *filename, char *path, struct stat *finfo)
+ {
+   char *dir;
+   int result, index = 0;
+ 
+   if (path == NULL)
+     path = ".";
+ 
+   /* Handle absolute pathnames.  */
+   if (IS_ABSOLUTE (filename)
+       || (*filename == '.'
+           && (IS_SLASH (filename[1])
+               || (filename[1] == '.' && IS_SLASH (filename[2])))))
+     {
+       if (stat (filename, finfo) == 0)
+         return xstrdup (filename);
+       else
+         return NULL;
+     }
+ 
+   while ((dir = extract_colon_unit (path, &index)))
+     {
+       char *fullpath;
+ 
+       if (!*dir)
+         {
+           free (dir);
+           dir = xstrdup (".");
+         }
+ 
+       fullpath = xmalloc (2 + strlen (dir) + strlen (filename));
+       sprintf (fullpath, "%s/%s", dir, filename);
+       free (dir);
+ 
+       result = stat (fullpath, finfo);
+ 
+       if (result == 0)
+         return fullpath;
+       else
+         free (fullpath);
+     }
+   return NULL;
+ }
+ 
+ /* Prepend and append new paths to include_files_path.  */
+ void
+ prepend_to_include_path (char *path)
+ {
+   if (!include_files_path)
+     {
+       include_files_path = xstrdup (path);
+       include_files_path = xrealloc (include_files_path,
+           strlen (include_files_path) + 3); /* 3 for ":.\0" */
+       strcat (strcat (include_files_path, PATH_SEP), ".");
+     }
+   else
+     {
+       char *tmp = xstrdup (include_files_path);
+       include_files_path = xrealloc (include_files_path,
+           strlen (include_files_path) + strlen (path) + 2); /* 2 for ":\0" */
+       strcpy (include_files_path, path);
+       strcat (include_files_path, PATH_SEP);
+       strcat (include_files_path, tmp);
+       free (tmp);
+     }
+ }
+ 
+ void
+ append_to_include_path (char *path)
+ {
+   if (!include_files_path)
+     include_files_path = xstrdup (".");
+ 
+   include_files_path = (char *) xrealloc (include_files_path,
+         2 + strlen (include_files_path) + strlen (path));
+   strcat (include_files_path, PATH_SEP);
+   strcat (include_files_path, path);
+ }
+ 
+ /* Remove the first path from the include_files_path.  */
+ void
+ pop_path_from_include_path (void)
+ {
+   int i = 0;
+   char *tmp;
+ 
+   if (include_files_path)
+     for (i = 0; i < strlen (include_files_path)
+         && include_files_path[i] != ':'; i++);
+ 
+   /* Advance include_files_path to the next char from ':'  */
+   tmp = (char *) xmalloc (strlen (include_files_path) - i);
+   strcpy (tmp, (char *) include_files_path + i + 1);
+ 
+   free (include_files_path);
+   include_files_path = tmp;
+ }
+ 
+ /* Find and load the file named FILENAME.  Return a pointer to
+    the loaded file, or NULL if it can't be loaded.  If USE_PATH is zero,
+    just look for the given file (this is used in handle_delayed_writes),
+    else search along include_files_path.   */
+ 
+ char *
+ find_and_load (char *filename, int use_path)
+ {
+   struct stat fileinfo;
+   long file_size;
+   int file = -1, count = 0;
+   char *fullpath, *result;
+   int n, bytes_to_read;
+ 
+   result = fullpath = NULL;
+ 
+   fullpath
+     = get_file_info_in_path (filename, use_path ? include_files_path : NULL, 
+                              &fileinfo);
+ 
+   if (!fullpath)
+     goto error_exit;
+ 
+   filename = fullpath;
+   file_size = (long) fileinfo.st_size;
+ 
+   file = open (filename, O_RDONLY);
+   if (file < 0)
+     goto error_exit;
+ 
+   /* Load the file, with enough room for a newline and a null. */
+   result = xmalloc (file_size + 2);
+ 
+   /* VMS stat lies about the st_size value.  The actual number of
+      readable bytes is always less than this value.  The arcane
+      mysteries of VMS/RMS are too much to probe, so this hack
+     suffices to make things work.  It's also needed on Cygwin.  And so
+     we might as well use it everywhere.  */
+   bytes_to_read = file_size;
+   while ((n = read (file, result + count, bytes_to_read)) > 0)
+     {
+       count += n;
+       bytes_to_read -= n;
+     }
+   if (0 < count && count < file_size)
+     result = xrealloc (result, count + 2); /* why waste the slack? */
+   else if (n == -1)
+ error_exit:
+     {
+       if (result)
+         free (result);
+ 
+       if (fullpath)
+         free (fullpath);
+ 
+       if (file != -1)
+         close (file);
+ 
+       return NULL;
+     }
+   close (file);
+ 
+   /* Set the globals to the new file. */
+   input_text = result;
+   input_text_length = count;
+   input_filename = fullpath;
+   node_filename = xstrdup (fullpath);
+   input_text_offset = 0;
+   line_number = 1;
+   /* Not strictly necessary.  This magic prevents read_token () from doing
+      extra unnecessary work each time it is called (that is a lot of times).
+      INPUT_TEXT_LENGTH is one past the actual end of the text. */
+   input_text[input_text_length] = '\n';
+   /* This, on the other hand, is always necessary.  */
+   input_text[input_text_length+1] = 0;
+   return result;
+ }
+ 
+ /* Pushing and popping files.  */
+ static void
+ push_node_filename (void)
+ {
+   if (node_filename_stack_index + 1 > node_filename_stack_size)
+     node_filename_stack = xrealloc
+     (node_filename_stack, (node_filename_stack_size += 10) * sizeof (char *));
+ 
+   node_filename_stack[node_filename_stack_index] = node_filename;
+   node_filename_stack_index++;
+ }
+ 
+ static void
+ pop_node_filename (void)
+ {
+   node_filename = node_filename_stack[--node_filename_stack_index];
+ }
+ 
+ /* Save the state of the current input file. */
+ void
+ pushfile (void)
+ {
+   FSTACK *newstack = xmalloc (sizeof (FSTACK));
+   newstack->filename = input_filename;
+   newstack->text = input_text;
+   newstack->size = input_text_length;
+   newstack->offset = input_text_offset;
+   newstack->line_number = line_number;
+   newstack->next = filestack;
+ 
+   filestack = newstack;
+   push_node_filename ();
+ }
+ 
+ /* Make the current file globals be what is on top of the file stack. */
+ void
+ popfile (void)
+ {
+   FSTACK *tos = filestack;
+ 
+   if (!tos)
+     abort ();                   /* My fault.  I wonder what I did? */
+ 
+   if (macro_expansion_output_stream)
+     {
+       maybe_write_itext (input_text, input_text_offset);
+       forget_itext (input_text);
+     }
+ 
+   /* Pop the stack. */
+   filestack = filestack->next;
+ 
+   /* Make sure that commands with braces have been satisfied. */
+   if (!executing_string && !me_executing_string)
+     discard_braces ();
+ 
+   /* Get the top of the stack into the globals. */
+   input_filename = tos->filename;
+   input_text = tos->text;
+   input_text_length = tos->size;
+   input_text_offset = tos->offset;
+   line_number = tos->line_number;
+   free (tos);
+ 
+   /* Go back to the (now) current node. */
+   pop_node_filename ();
+ }
+ 
+ /* Flush all open files on the file stack. */
+ void
+ flush_file_stack (void)
+ {
+   while (filestack)
+     {
+       char *fname = input_filename;
+       char *text = input_text;
+       popfile ();
+       free (fname);
+       free (text);
+     }
+ }
+ 
+ /* Return the index of the first character in the filename
+    which is past all the leading directory characters.  */
+ static int
+ skip_directory_part (char *filename)
+ {
+   int i = strlen (filename) - 1;
+ 
+   while (i && !IS_SLASH (filename[i]))
+     i--;
+   if (IS_SLASH (filename[i]))
+     i++;
+   else if (filename[i] && HAVE_DRIVE (filename))
+     i = 2;
+ 
+   return i;
+ }
+ 
+ static char *
+ filename_non_directory (char *name)
+ {
+   return xstrdup (name + skip_directory_part (name));
+ }
+ 
+ /* Return just the simple part of the filename; i.e. the
+    filename without the path information, or extensions.
+    This conses up a new string. */
+ char *
+ filename_part (char *filename)
+ {
+   char *basename = filename_non_directory (filename);
+ 
+ #ifdef REMOVE_OUTPUT_EXTENSIONS
+   /* See if there is an extension to remove.  If so, remove it. */
+   {
+     char *temp = strrchr (basename, '.');
+     if (temp)
+       *temp = 0;
+   }
+ #endif /* REMOVE_OUTPUT_EXTENSIONS */
+   return basename;
+ }
+ 
+ /* Return the pathname part of filename.  This can be NULL. */
+ char *
+ pathname_part (char *filename)
+ {
+   char *result = NULL;
+   int i;
+ 
+   filename = expand_filename (filename, "");
+ 
+   i = skip_directory_part (filename);
+   if (i)
+     {
+       result = xmalloc (1 + i);
+       strncpy (result, filename, i);
+       result[i] = 0;
+     }
+   free (filename);
+   return result;
+ }
+ 
+ /* Return the full path to FILENAME. */
+ static char *
+ full_pathname (char *filename)
+ {
+   int initial_character;
+   char *result;
+ 
+   /* No filename given? */
+   if (!filename || !*filename)
+     return xstrdup ("");
+   
+   /* Already absolute? */
+   if (IS_ABSOLUTE (filename) ||
+       (*filename == '.' &&
+        (IS_SLASH (filename[1]) ||
+         (filename[1] == '.' && IS_SLASH (filename[2])))))
+     return xstrdup (filename);
+ 
+   initial_character = *filename;
+   if (initial_character != '~')
+     {
+       char *localdir = xmalloc (1025);
+ #ifdef HAVE_GETCWD
+       if (!getcwd (localdir, 1024))
+ #else
+       if (!getwd (localdir))
+ #endif
+         {
+           fprintf (stderr, _("%s: getwd: %s, %s\n"),
+                    progname, filename, localdir);
+           xexit (1);
+         }
+ 
+       strcat (localdir, "/");
+       strcat (localdir, filename);
+       result = xstrdup (localdir);
+       free (localdir);
+     }
+   else
+     { /* Does anybody know why WIN32 doesn't want to support $HOME?
+          If the reason is they don't have getpwnam, they should
+          only disable the else clause below.  */
+ #ifndef WIN32
+       if (IS_SLASH (filename[1]))
+         {
+           /* Return the concatenation of the environment variable HOME
+              and the rest of the string. */
+           char *temp_home;
+ 
+           temp_home = (char *) getenv ("HOME");
+           result = xmalloc (strlen (&filename[1])
+                                     + 1
+                                     + temp_home ? strlen (temp_home)
+                                     : 0);
+           *result = 0;
+ 
+           if (temp_home)
+             strcpy (result, temp_home);
+ 
+           strcat (result, &filename[1]);
+         }
+       else
+         {
+           struct passwd *user_entry;
+           int i, c;
+           char *username = xmalloc (257);
+ 
+           for (i = 1; (c = filename[i]); i++)
+             {
+               if (IS_SLASH (c))
+                 break;
+               else
+                 username[i - 1] = c;
+             }
+           if (c)
+             username[i - 1] = 0;
+ 
+           user_entry = getpwnam (username);
+ 
+           if (!user_entry)
+             return xstrdup (filename);
+ 
+           result = xmalloc (1 + strlen (user_entry->pw_dir)
+                                     + strlen (&filename[i]));
+           strcpy (result, user_entry->pw_dir);
+           strcat (result, &filename[i]);
+         }
+ #endif /* not WIN32 */
+     }
+   return result;
+ }
+ 
+ /* Return the expansion of FILENAME. */
+ char *
+ expand_filename (char *filename, char *input_name)
+ {
+   int i;
+ 
+   if (filename)
+     {
+       filename = full_pathname (filename);
+       if (IS_ABSOLUTE (filename)
+ 	  || (*filename == '.' &&
+ 	      (IS_SLASH (filename[1]) ||
+ 	       (filename[1] == '.' && IS_SLASH (filename[2])))))
+ 	return filename;
+     }
+   else
+     {
+       filename = filename_non_directory (input_name);
+ 
+       if (!*filename)
+         {
+           free (filename);
+           filename = xstrdup ("noname.texi");
+         }
+ 
+       for (i = strlen (filename) - 1; i; i--)
+         if (filename[i] == '.')
+           break;
+ 
+       if (!i)
+         i = strlen (filename);
+ 
+       if (i + 6 > (strlen (filename)))
+         filename = xrealloc (filename, i + 6);
+       strcpy (filename + i, html ? ".html" : ".info");
+       return filename;
+     }
+ 
+   if (IS_ABSOLUTE (input_name))
+     {
+       /* Make it so that relative names work. */
+       char *result;
+       
+       i = strlen (input_name) - 1;
+ 
+       result = xmalloc (1 + strlen (input_name) + strlen (filename));
+       strcpy (result, input_name);
+ 
+       while (!IS_SLASH (result[i]) && i)
+         i--;
+       if (IS_SLASH (result[i]))
+         i++;
+ 
+       strcpy (&result[i], filename);
+       free (filename);
+       return result;
+     }
+   return filename;
+ }
+ 
+ char *
+ output_name_from_input_name (char *name)
+ {
+   return expand_filename (NULL, name);
+ }
+ 
+ 
+ /* Modify the file name FNAME so that it fits the limitations of the
+    underlying filesystem.  In particular, truncate the file name as it
+    would be truncated by the filesystem.  We assume the result can
+    never be longer than the original, otherwise we couldn't be sure we
+    have enough space in the original string to modify it in place.  */
+ char *
+ normalize_filename (char *fname)
+ {
+   int maxlen;
+   char orig[PATH_MAX + 1];
+   int i;
+   char *lastdot, *p;
+ 
+ #ifdef _PC_NAME_MAX
+   maxlen = pathconf (fname, _PC_NAME_MAX);
+   if (maxlen < 1)
+ #endif
+     maxlen = PATH_MAX;
+ 
+   i = skip_directory_part (fname);
+   if (fname[i] == '\0')
+     return fname;	/* only a directory name -- don't modify */
+   strcpy (orig, fname + i);
+ 
+   switch (maxlen)
+     {
+       case 12:	/* MS-DOS 8+3 filesystem */
+ 	if (orig[0] == '.')	/* leading dots are not allowed */
+ 	  orig[0] = '_';
+ 	lastdot = strrchr (orig, '.');
+ 	if (!lastdot)
+ 	  lastdot = orig + strlen (orig);
+ 	strncpy (fname + i, orig, lastdot - orig);
+ 	for (p = fname + i;
+ 	     p < fname + i + (lastdot - orig) && p < fname + i + 8;
+ 	     p++)
+ 	  if (*p == '.')
+ 	    *p = '_';
+ 	*p = '\0';
+ 	if (*lastdot == '.')
+ 	  strncat (fname + i, lastdot, 4);
+ 	break;
+       case 14:	/* old Unix systems with 14-char limitation */
+ 	strcpy (fname + i, orig);
+ 	if (strlen (fname + i) > 14)
+ 	  fname[i + 14] = '\0';
+ 	break;
+       default:
+ 	strcpy (fname + i, orig);
+ 	if (strlen (fname) > maxlen - 1)
+ 	  fname[maxlen - 1] = '\0';
+ 	break;
+     }
+ 
+   return fname;
+ }
+ 
+ /* Delayed writing functions.  A few of the commands
+    needs to be handled at the end, namely @contents,
+    @shortcontents, @printindex and @listoffloats.
+    These functions take care of that.  */
+ static DELAYED_WRITE *delayed_writes = NULL;
+ int handling_delayed_writes = 0;
+ 
+ void
+ register_delayed_write (char *delayed_command)
+ {
+   DELAYED_WRITE *new;
+ 
+   if (!current_output_filename || !*current_output_filename)
+     {
+       /* Cannot register if we don't know what the output file is.  */
+       warning (_("`%s' omitted before output filename"), delayed_command);
+       return;
+     }
+ 
+   if (STREQ (current_output_filename, "-"))
+     {
+       /* Do not register a new write if the output file is not seekable.
+          Let the user know about it first, though.  */
+       warning (_("`%s' omitted since writing to stdout"), delayed_command);
+       return;
+     }
+ 
+   /* Don't complain if the user is writing /dev/null, since surely they
+      don't care, but don't register the delayed write, either.  */
+   if (FILENAME_CMP (current_output_filename, NULL_DEVICE) == 0
+       || FILENAME_CMP (current_output_filename, ALSO_NULL_DEVICE) == 0)
+     return;
+     
+   /* We need the HTML header in the output,
+      to get a proper output_position.  */
+   if (!executing_string && html)
+     output_head ();
+   /* Get output_position updated.  */
+   flush_output ();
+ 
+   new = xmalloc (sizeof (DELAYED_WRITE));
+   new->command = xstrdup (delayed_command);
+   new->filename = xstrdup (current_output_filename);
+   new->input_filename = xstrdup (input_filename);
+   new->position = output_position;
+   new->calling_line = line_number;
+   new->node = current_node ? xstrdup (current_node): "";
+ 
+   new->node_order = node_order;
+   new->index_order = index_counter;
+ 
+   new->next = delayed_writes;
+   delayed_writes = new;
+ }
+ 
+ void
+ handle_delayed_writes (void)
+ {
+   DELAYED_WRITE *temp = (DELAYED_WRITE *) reverse_list
+     ((GENERIC_LIST *) delayed_writes);
+   int position_shift_amount, line_number_shift_amount;
+   char *delayed_buf;
+ 
+   handling_delayed_writes = 1;
+ 
+   while (temp)
+     {
+       delayed_buf = find_and_load (temp->filename, 0);
+ 
+       if (output_paragraph_offset > 0)
+         {
+           error (_("Output buffer not empty."));
+           return;
+         }
+ 
+       if (!delayed_buf)
+         {
+           fs_error (temp->filename);
+           return;
+         }
+ 
+       output_stream = fopen (temp->filename, "w");
+       if (!output_stream)
+         {
+           fs_error (temp->filename);
+           return;
+         }
+ 
+       if (fwrite (delayed_buf, 1, temp->position, output_stream) != temp->position)
+         {
+           fs_error (temp->filename);
+           return;
+         }
+ 
+       {
+         int output_position_at_start = output_position;
+         int line_number_at_start = output_line_number;
+ 
+         /* In order to make warnings and errors
+            refer to the correct line number.  */
+         input_filename = temp->input_filename;
+         line_number = temp->calling_line;
+ 
+         execute_string ("%s", temp->command);
+         flush_output ();
+ 
+         /* Since the output file is modified, following delayed writes
+            need to be updated by this amount.  */
+         position_shift_amount = output_position - output_position_at_start;
+         line_number_shift_amount = output_line_number - line_number_at_start;
+       }
+ 
+       if (fwrite (delayed_buf + temp->position, 1,
+             input_text_length - temp->position, output_stream)
+           != input_text_length - temp->position
+           || fclose (output_stream) != 0)
+         fs_error (temp->filename);
+ 
+       /* Done with the buffer.  */
+       free (delayed_buf);
+ 
+       /* Update positions in tag table for nodes that are defined after
+          the line this delayed write is registered.  */
+       if (!html && !xml)
+         {
+           TAG_ENTRY *node;
+           for (node = tag_table; node; node = node->next_ent)
+             if (node->order > temp->node_order)
+               node->position += position_shift_amount;
+         }
+ 
+       /* Something similar for the line numbers in all of the defined
+          indices.  */
+       {
+         int i;
+         for (i = 0; i < defined_indices; i++)
+           if (name_index_alist[i])
+             {
+               char *name = ((INDEX_ALIST *) name_index_alist[i])->name;
+               INDEX_ELT *index;
+               for (index = index_list (name); index; index = index->next)
+                 if ((no_headers || STREQ (index->node, temp->node))
+                     && index->entry_number > temp->index_order)
+                   index->output_line += line_number_shift_amount;
+             }
+       }
+ 
+       /* Shift remaining delayed positions
+          by the length of this write.  */
+       {
+         DELAYED_WRITE *future_write = temp->next;
+         while (future_write)
+           {
+             if (STREQ (temp->filename, future_write->filename))
+               future_write->position += position_shift_amount;
+             future_write = future_write->next;
+           }
+       }
+ 
+       temp = temp->next;
+     }
+ }
diff -Nrc2 texinfo-4.12/makeinfo/files.h texinfo-4.13/makeinfo/files.h
*** texinfo-4.12/makeinfo/files.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/files.h	Sun Jul  1 14:20:32 2007
***************
*** 0 ****
--- 1,68 ----
+ /* files.h -- declarations for files.c.
+    $Id: files.h,v 1.7 2007/07/01 21:20:32 karl Exp $
+ 
+    Copyright (C) 1998, 2002, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef FILES_H
+ #define FILES_H
+ 
+ /* A stack of file information records.  If a new file is read in with
+    "@input", we remember the old input file state on this stack. */
+ typedef struct fstack
+ {
+   struct fstack *next;
+   char *filename;
+   char *text;
+   int size;
+   int offset;
+   int line_number;
+ } FSTACK;
+ extern FSTACK *filestack;
+ 
+ extern void pushfile (void);
+ extern void popfile (void);
+ extern void flush_file_stack (void);
+ extern char *get_file_info_in_path (char *filename, char *path,
+     struct stat *finfo);
+ extern char *find_and_load (char *filename, int use_path);
+ extern char *output_name_from_input_name (char *name);
+ extern char *expand_filename (char *filename, char *input_name);
+ extern char *filename_part (char *filename);
+ extern char *pathname_part (char *filename);
+ extern char *normalize_filename (char *fname);
+ extern void append_to_include_path (char *path);
+ extern void prepend_to_include_path (char *path);
+ extern void pop_path_from_include_path (void);
+ extern void register_delayed_write (char *delayed_command);
+ extern void handle_delayed_writes (void);
+ 
+ typedef struct delayed_write
+ {
+   struct delayed_write *next;
+   char *command;
+   char *filename;
+   char *input_filename;
+   char *node;
+   int position;
+   int calling_line;
+ 
+   int node_order;
+   int index_order;
+ } DELAYED_WRITE;
+ 
+ extern int handling_delayed_writes;
+ 
+ #endif /* !FILES_H */
diff -Nrc2 texinfo-4.12/makeinfo/float.c texinfo-4.13/makeinfo/float.c
*** texinfo-4.12/makeinfo/float.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/float.c	Sun Jul  1 14:20:32 2007
***************
*** 0 ****
--- 1,430 ----
+ /* float.c -- float environment functions.
+    $Id: float.c,v 1.12 2007/07/01 21:20:32 karl Exp $
+ 
+    Copyright (C) 2003, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Alper Ersoy <dirt@gtk.org>.  */
+ 
+ #include "system.h"
+ #include "makeinfo.h"
+ #include "cmds.h"
+ #include "files.h"
+ #include "float.h"
+ #include "html.h"
+ #include "sectioning.h"
+ #include "xml.h"
+ 
+ static FLOAT_ELT *float_stack = NULL;
+ 
+ void
+ add_new_float (char *id, char *title, char *shorttitle,
+     char *type, char *position)
+ {
+   FLOAT_ELT *new = xmalloc (sizeof (FLOAT_ELT));
+   unsigned long num_len;
+ 
+   new->id = id;
+   new->type = type;
+   new->title = title;
+   new->shorttitle = shorttitle;
+   new->position = position;
+   new->title_used = 0;
+   new->defining_line = line_number - 1;
+ 
+   new->number = current_chapter_number ();
+   /* Append dot if not @unnumbered.  */
+   num_len = strlen (new->number);
+   if (num_len > 0)
+     {
+       new->number = xrealloc (new->number, num_len + 1 + 1);
+       new->number[num_len] = '.';
+       new->number[num_len+1] = '\0';
+     }
+ 
+   { /* Append the current float number.  */
+     unsigned len = strlen (new->number) + 21;  /* that's 64 bits */
+     char *s = xmalloc (len + 1);
+ 
+     sprintf (s, "%s%d", new->number,
+                 count_floats_of_type_in_chapter (text_expansion (type),
+                                                  new->number) + 1); 
+     free (new->number);
+     new->number = xstrdup (s);
+   }
+ 
+   /* Plain text output needs sectioning number and its title,
+      when listing floats.  */
+   if (!html && !xml && no_headers)
+     {
+       new->section = current_sectioning_number ();
+       if (strlen (new->section) == 0)
+         new->section_name = current_sectioning_name ();
+       else
+         new->section_name = "";
+     }
+ 
+   new->next = float_stack;
+   float_stack = new;
+ }
+ 
+ int
+ count_floats_of_type_in_chapter (char *type, char *chapter)
+ {
+   int i = 0;
+   int l = strlen (chapter);
+   FLOAT_ELT *temp = float_stack;
+ 
+   while (temp && strncmp (temp->number, chapter, l) == 0)
+     {
+       if (strlen (temp->id) > 0 && STREQ (text_expansion (temp->type), type))
+         i++;
+       temp = temp->next;
+     }
+ 
+   return i;
+ }
+ 
+ char *
+ current_float_title (void)
+ {
+   return float_stack->title;
+ }
+ 
+ char *
+ current_float_shorttitle (void)
+ {
+   return float_stack->shorttitle;
+ }
+ 
+ char *
+ current_float_type (void)
+ {
+   return float_stack->type;
+ }
+ 
+ char *
+ current_float_position (void)
+ {
+   return float_stack->position;
+ }
+ 
+ char *
+ current_float_number (void)
+ {
+   return float_stack->number;
+ }
+ 
+ char *
+ current_float_id (void)
+ {
+   return float_stack->id;
+ }
+ 
+ char *
+ get_float_ref (char *id)
+ {
+   FLOAT_ELT *temp = float_stack;
+ 
+   while (temp)
+     {
+       if (STREQ (id, temp->id))
+         {
+           char *s = xmalloc (strlen (temp->type) + strlen (temp->number) + 2);
+           sprintf (s, "%s %s", temp->type, temp->number);
+           return s;
+         }
+       temp = temp->next;
+     }
+ 
+   return NULL;
+ }
+ 
+ static int
+ float_type_exists (char *check_type)
+ {
+   /* Check if the requested float_type exists in the floats stack.  */
+   FLOAT_ELT *temp;
+ 
+   for (temp = float_stack; temp; temp = temp->next)
+     if (STREQ (temp->type, check_type) && temp->id && *temp->id)
+       return 1;
+ 
+   return 0;
+ }
+ 
+ void
+ cm_listoffloats (void)
+ {
+   char *float_type;
+   get_rest_of_line (1, &float_type);
+ 
+   /* get_rest_of_line increments the line number by one,
+      so to make warnings/errors point to the correct line,
+      we decrement the line_number again.  */
+   if (!handling_delayed_writes)
+     line_number--;
+ 
+   if (handling_delayed_writes && !float_type_exists (float_type))
+     warning (_("Requested float type `%s' not previously used"), float_type);
+ 
+   if (xml)
+     {
+       xml_insert_element_with_attribute (LISTOFFLOATS, START,
+           "type=\"%s\"", text_expansion (float_type));
+       xml_insert_element (LISTOFFLOATS, END);
+     }
+   else if (!handling_delayed_writes)
+     {
+       int command_len = sizeof ("@ ") + strlen (command) + strlen (float_type);
+       char *list_command = xmalloc (command_len + 1);
+ 
+       /* These are for the text following @listoffloats command.
+          Handling them with delayed writes is too late.  */
+       close_paragraph ();
+       cm_noindent ();
+ 
+       sprintf (list_command, "@%s %s", command, float_type);
+       register_delayed_write (list_command);
+       free (list_command);
+     }
+   else if (float_type_exists (float_type))
+     {
+       FLOAT_ELT *temp = (FLOAT_ELT *) reverse_list
+         ((GENERIC_LIST *) float_stack);
+       FLOAT_ELT *new_start = temp;
+ 
+       if (html)
+         insert_string ("<ul class=\"listoffloats\">\n");
+       else
+         {
+           if (!no_headers)
+             insert_string ("* Menu:\n\n");
+         }
+ 
+       while (temp)
+         {
+           if (strlen (temp->id) > 0 && STREQ (float_type, temp->type))
+             {
+               char *caption;
+               if (strlen (temp->shorttitle) > 0)
+                 caption = expansion (temp->shorttitle, 0);
+               else if (strlen (temp->title) > 0)
+                 caption = expansion (temp->title, 0);
+               else
+                 caption = "";
+                   
+               if (html)
+                 {
+                   /* A bit of space for HTML reabality.  */
+                   insert_string ("  ");
+                   add_html_block_elt ("<li>");
+ 
+                   /* Simply relying on @ref command doesn't work here, because
+                      commas in the caption may confuse the argument parsing.  */
+                   add_word ("<a href=\"");
+                   add_anchor_name (temp->id, 1);
+                   add_word ("\">");
+ 
+                   if (strlen (float_type) > 0)
+                     execute_string ("%s", float_type);
+ 
+                   if (strlen (temp->id) > 0)
+                     {
+                       if (strlen (float_type) > 0)
+                         add_char (' ');
+ 
+                       add_word (temp->number);
+                     }
+ 
+                   if (caption)
+                     {
+                       if (strlen (float_type) > 0 || strlen (temp->id) > 0)
+                         insert_string (": ");
+                       execute_string ("%s", caption);
+                     }
+ 
+                   add_word ("</a>");
+ 
+                   add_html_block_elt ("</li>\n");
+                 }
+               else
+                 {
+                   char *entry;
+                   char *raw_entry;
+ 
+                   int len;
+                   int aux_chars_len; /* these are asterisk, colon, etc.  */
+                   int column_width; /* width of the first column in menus.  */
+                   int number_len; /* length of Figure X.Y: etc.   */
+                   int i = 0;
+ 
+                   /* Chosen widths are to match what @printindex produces.  */
+                   if (no_headers)
+                     {
+                       column_width = 43;
+                       /* We have only one auxiliary character, NULL.  */
+                       aux_chars_len = sizeof ("");
+                     }
+                   else
+                     {
+                       column_width = 37;
+                       /* We'll be adding an asterisk, followed by a space
+                          and then a colon after the title, to construct a
+                          proper menu item.  */
+                       aux_chars_len = sizeof ("* :");
+                     }
+ 
+                   /* Allocate enough space for possible expansion later.  */
+                   raw_entry = (char *) xmalloc (strlen (float_type)
+                       + strlen (temp->number) + strlen (caption)
+                       + sizeof (":  "));
+ 
+                   sprintf (raw_entry, "%s %s", float_type, temp->number);
+ 
+                   if (strlen (caption) > 0)
+                     strcat (raw_entry, ": ");
+ 
+                   number_len = strlen (raw_entry);
+ 
+                   len = strlen (caption) + strlen (raw_entry);
+ 
+                   strcat (raw_entry, caption);
+                   len = strlen (raw_entry);
+ 
+                   if (len + aux_chars_len > column_width)
+                     { /* Shorten long titles by looking for a space before
+                          column_width - strlen (" ...").  */
+                       /* -1 is for NULL, which is already in aux_chars_len.  */
+                       aux_chars_len += sizeof ("...") - 1;
+                       len = column_width - aux_chars_len;
+                       while (raw_entry[len] != ' ' && len >= 0)
+                         len--;
+ 
+                       /* Advance to the whitespace.  */
+                       len++;
+ 
+                       /* If we are at the end of, say, Figure X.Y:, but
+                          we have a title, then this means title does not
+                          contain any whitespaces.  Or it may be that we
+                          went as far as the beginning.  Just print as much
+                          as possible of the title.  */
+                       if (len == 0
+                           || (len == number_len && strlen (caption) > 0))
+                         len = column_width - sizeof ("...");
+ 
+                       /* Break here.  */
+                       raw_entry[len] = 0;
+ 
+                       entry = xmalloc (len + aux_chars_len);
+ 
+                       if (!no_headers)
+                         strcpy (entry, "* ");
+                       else
+                         entry[0] = 0;
+ 
+                       strcat (entry, raw_entry);
+                       strcat (entry, "...");
+ 
+                       if (!no_headers)
+                         strcat (entry, ":");
+                     }
+                   else
+                     {
+                       entry = xmalloc (len + aux_chars_len);
+ 
+                       if (!no_headers)
+                         strcpy (entry, "* ");
+                       else
+                         entry[0] = 0;
+ 
+                       strcat (entry, raw_entry);
+ 
+                       if (!no_headers)
+                         strcat (entry, ":");
+                     }
+ 
+                   insert_string (entry);
+ 
+                   i = strlen (entry);
+                   /* We insert space chars until ``column_width + four spaces''
+                      is reached, to make the layout the same with what we produce
+                      for @printindex.  This is of course not obligatory, though
+                      easier on the eye.  -1 is for NULL.  */
+                   while (i < column_width + sizeof ("    ") - 1)
+                     {
+                       insert (' ');
+                       i++;
+                     }
+ 
+                   if (no_headers)
+                     {
+                       if (strlen (temp->section) > 0)
+                         { /* We got your number.  */
+                           insert_string ((char *) _("See "));
+                           insert_string (temp->section);
+                         }
+                       else
+                         { /* Sigh, @float in an @unnumbered. :-\  */
+                           insert_string ("\n          ");
+                           insert_string ((char *) _("See "));
+                           insert_string ("``");
+                           insert_string (expansion (temp->section_name, 0));
+                           insert_string ("''");
+                         }
+                     }
+                   else
+                     insert_string (temp->id);
+ 
+                   insert_string (".\n");
+ 
+                   free (entry);
+                 }
+               
+               if (strlen (caption) > 0)
+                 free (caption);
+             }
+           temp = temp->next;
+         }
+ 
+       if (html)
+         {
+           inhibit_paragraph_indentation = 1;
+           insert_string ("</ul>\n\n");
+         }
+       else
+         insert ('\n');
+ 
+       /* Retain the original order of float stack.  */
+       temp = new_start;
+       float_stack = (FLOAT_ELT *) reverse_list ((GENERIC_LIST *) temp);
+     }
+ 
+   free (float_type);
+   /* Re-increment the line number, because get_rest_of_line
+      left us looking at the next line after the command.  */
+   line_number++;
+ }
+ 
+ int
+ current_float_used_title (void)
+ {
+ 	return float_stack->title_used;
+ }
+ 
+ void current_float_set_title_used (void)
+ {
+ 	float_stack->title_used = 1;
+ }
diff -Nrc2 texinfo-4.12/makeinfo/float.h texinfo-4.13/makeinfo/float.h
*** texinfo-4.12/makeinfo/float.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/float.h	Sun Jul  1 14:20:32 2007
***************
*** 0 ****
--- 1,55 ----
+ /* float.h -- declarations for the float environment.
+    $Id: float.h,v 1.8 2007/07/01 21:20:32 karl Exp $
+ 
+    Copyright (C) 2003, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Alper Ersoy <dirt@gtk.org>.  */
+ 
+ #ifndef FLOAT_H
+ #define FLOAT_H
+ 
+ typedef struct float_elt
+ {
+   struct float_elt *next;
+   char *id;
+   char *type;
+   char *title;
+   char *shorttitle;
+   char *position;
+   char *number;
+   char *section;
+   char *section_name;
+   short title_used;
+   int defining_line;
+ } FLOAT_ELT;
+ 
+ extern void add_new_float (char *id, char *title, char *shorttitle,
+     char *type, char *position);
+ extern void current_float_set_title_used (void);
+ 
+ /* Information retrieval about the current float env.  */
+ extern char *current_float_id (void);
+ extern char *current_float_title (void);
+ extern char *current_float_shorttitle (void);
+ extern char *current_float_type (void);
+ extern char *current_float_position (void);
+ extern char *current_float_number (void);
+ extern char *get_float_ref (char *id);
+ 
+ extern int count_floats_of_type_in_chapter (char *type, char *chapter);
+ extern int current_float_used_title (void);
+ 
+ #endif /* not FLOAT_H */
diff -Nrc2 texinfo-4.12/makeinfo/footnote.c texinfo-4.13/makeinfo/footnote.c
*** texinfo-4.12/makeinfo/footnote.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/footnote.c	Tue Dec 25 15:57:20 2007
***************
*** 0 ****
--- 1,390 ----
+ /* footnote.c -- footnotes for Texinfo.
+    $Id: footnote.c,v 1.12 2007/12/03 01:38:43 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2002, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "footnote.h"
+ #include "macro.h"
+ #include "makeinfo.h"
+ #include "node.h"
+ #include "xml.h"
+ #include "xref.h"
+ 
+ /* Nonzero means that the footnote style for this document was set on
+    the command line, which overrides any other settings. */
+ int footnote_style_preset = 0;
+ 
+ /* The current footnote number in this node.  Each time a new node is
+    started this is reset to 1. */
+ int current_footnote_number = 1;
+ 
+ /* Nonzero means we automatically number footnotes with no specified marker. */
+ int number_footnotes = 1;
+ 
+ /* Nonzero means we are currently outputting footnotes. */
+ int already_outputting_pending_notes = 0;
+ 
+ 
+ /* Footnotes can be handled in one of two ways:
+ 
+    separate_node:
+         Make them look like followed references, with the reference
+         destinations in a makeinfo manufactured node or,
+    end_node:
+         Make them appear at the bottom of the node that they originally
+         appeared in. */
+ 
+ #define separate_node 0
+ #define end_node 1
+ 
+ int footnote_style = end_node;
+ int first_footnote_this_node = 1;
+ int footnote_count = 0;
+ 
+ /* Set the footnote style based on the style identifier in STRING. */
+ int
+ set_footnote_style (char *string)
+ {
+   if (mbscasecmp (string, "separate") == 0)
+     footnote_style = separate_node;
+   else if (mbscasecmp (string, "end") == 0)
+     footnote_style = end_node;
+   else
+     return -1;
+ 
+  return 0;
+ }
+ 
+ void
+ cm_footnotestyle (void)
+ {
+   char *arg;
+ 
+   get_rest_of_line (1, &arg);
+ 
+   /* If set on command line, do not change the footnote style.  */
+   if (!footnote_style_preset && set_footnote_style (arg) != 0)
+     line_error (_("Bad argument to %c%s"), COMMAND_PREFIX, command);
+ 
+   free (arg);
+ }
+ 
+ typedef struct fn
+ {
+   struct fn *next;
+   char *marker;
+   char *note;
+   int number;
+ }  FN;
+ 
+ FN *pending_notes = NULL;
+ 
+ /* A method for remembering footnotes.  Note that this list gets output
+    at the end of the current node. */
+ static void
+ remember_note (char *marker, char *note)
+ {
+   FN *temp = xmalloc (sizeof (FN));
+ 
+   temp->marker = xstrdup (marker);
+   temp->note = xstrdup (note);
+   temp->next = pending_notes;
+   temp->number = current_footnote_number;
+   pending_notes = temp;
+   footnote_count++;
+ }
+ 
+ /* How to get rid of existing footnotes. */
+ static void
+ free_pending_notes (void)
+ {
+   FN *temp;
+ 
+   while ((temp = pending_notes))
+     {
+       free (temp->marker);
+       free (temp->note);
+       pending_notes = pending_notes->next;
+       free (temp);
+     }
+   first_footnote_this_node = 1;
+   footnote_count = 0;
+   current_footnote_number = 1;	/* for html */
+ }
+ 
+ /* What to do when you see a @footnote construct. */
+ 
+  /* Handle a "footnote".
+     footnote *{this is a footnote}
+     where "*" is the (optional) marker character for this note. */
+ void
+ cm_footnote (void)
+ {
+   char *marker;
+   char *note;
+ 
+   get_until ("{", &marker);
+   canon_white (marker);
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     append_to_expansion_output (input_text_offset + 1); /* include the { */
+ 
+   /* Read the argument in braces. */
+   if (curchar () != '{')
+     {
+       line_error (_("`%c%s' needs an argument `{...}', not just `%s'"),
+                   COMMAND_PREFIX, command, marker);
+       free (marker);
+       return;
+     }
+   else
+     {
+       int len;
+       int braces = 1;
+       int loc = ++input_text_offset;
+ 
+       while (braces)
+         {
+           if (loc == input_text_length)
+             {
+               line_error (_("No closing brace for footnote `%s'"), marker);
+               return;
+             }
+ 
+           if (input_text[loc] == '{')
+             braces++;
+           else if (input_text[loc] == '}')
+             braces--;
+           else if (input_text[loc] == '\n')
+             line_number++;
+ 
+           loc++;
+         }
+ 
+       len = (loc - input_text_offset) - 1;
+       note = xmalloc (len + 1);
+       memcpy (note, &input_text[input_text_offset], len);
+       note[len] = 0;
+       input_text_offset = loc;
+     }
+ 
+   /* Must write the macro-expanded argument to the macro expansion
+      output stream.  This is like the case in index_add_arg.  */
+   if (macro_expansion_output_stream && !executing_string)
+     {
+       /* Calling me_execute_string on a lone } provokes an error, since
+          as far as the reader knows there is no matching {.  We wrote
+          the { above in the call to append_to_expansion_output. */
+       me_execute_string_keep_state (note, "}");
+     }
+ 
+   if (!current_node || !*current_node)
+     {
+       line_error (_("Footnote defined without parent node"));
+       free (marker);
+       free (note);
+       return;
+     }
+ 
+   /* output_pending_notes is non-reentrant (it uses a global data
+      structure pending_notes, which it frees before it returns), and
+      TeX doesn't grok footnotes inside footnotes anyway.  Disallow
+      that.  */
+   if (already_outputting_pending_notes)
+     {
+       line_error (_("Footnotes inside footnotes are not allowed"));
+       free (marker);
+       free (note);
+       return;
+     }
+ 
+   if (!*marker)
+     {
+       free (marker);
+ 
+       if (number_footnotes)
+         {
+           marker = xmalloc (10);
+           sprintf (marker, "%d", current_footnote_number);
+         }
+       else
+         marker = xstrdup ("*");
+     }
+ 
+   if (xml)
+     xml_insert_footnote (note);
+   else 
+     {
+   remember_note (marker, note);
+ 
+   /* fixme: html: footnote processing needs work; we currently ignore
+      the style requested; we could clash with a node name of the form
+      `fn-<n>', though that's unlikely. */
+   if (html)
+     {
+       /* Hyperlink also serves as an anchor (mnemonic: fnd is footnote
+          definition.)  */
+       add_html_elt ("<a rel=\"footnote\" href=");
+       add_word_args ("\"#fn-%d\" name=\"fnd-%d\"><sup>%s</sup></a>",
+ 		     current_footnote_number, current_footnote_number,
+                      marker);
+     }
+   else
+     /* Your method should at least insert MARKER. */
+     switch (footnote_style)
+       {
+       case separate_node:
+         add_word_args ("(%s)", marker);
+         execute_string (" (*note %s-Footnote-%d::)",
+                         current_node, current_footnote_number);
+         if (first_footnote_this_node)
+           {
+             char *temp_string, *expanded_ref;
+ 
+             temp_string = xmalloc (strlen (current_node)
+                                    + strlen ("-Footnotes") + 1);
+ 
+             strcpy (temp_string, current_node);
+             strcat (temp_string, "-Footnotes");
+             expanded_ref = expansion (temp_string, 0);
+             remember_node_reference (expanded_ref, line_number,
+                                      followed_reference);
+             free (temp_string);
+             free (expanded_ref);
+             first_footnote_this_node = 0;
+           }
+         break;
+ 
+       case end_node:
+         add_word_args ("(%s)", marker);
+         break;
+ 
+       default:
+         break;
+       }
+   current_footnote_number++;
+     }
+   free (marker);
+   free (note);
+ }
+ 
+ /* Output the footnotes.  We are at the end of the current node. */
+ void
+ output_pending_notes (void)
+ {
+   FN *footnote = pending_notes;
+ 
+   if (!pending_notes)
+     return;
+ 
+   if (html)
+     {
+       add_html_block_elt ("<div class=\"footnote\">\n<hr>\n");
+       /* We add an anchor here so @printindex can refer to this point
+          (as the node name) for entries defined in footnotes.  */
+       if (!splitting)
+         add_word ("<a name=\"texinfo-footnotes-in-document\"></a>");
+       add_word_args ("<h4>%s</h4>", (char *) _("Footnotes"));
+     }
+   else
+     switch (footnote_style)
+       {
+       case separate_node:
+         {
+           char *old_current_node = current_node;
+           char *old_command = xstrdup (command);
+ 
+           already_outputting_pending_notes++;
+           execute_string ("%cnode %s-Footnotes,,,%s\n",
+                           COMMAND_PREFIX, current_node, current_node);
+           already_outputting_pending_notes--;
+           current_node = old_current_node;
+           free (command);
+           command = old_command;
+         }
+       break;
+ 
+       case end_node:
+         close_paragraph ();
+         in_fixed_width_font++;
+         /* This string should be translated according to the
+            @documentlanguage, not the current LANG.  We can't do that
+            yet, so leave it in English.  */
+         execute_string ("---------- Footnotes ----------\n\n");
+         in_fixed_width_font--;
+         break;
+       }
+ 
+   /* Handle the footnotes in reverse order. */
+   {
+     int save_in_fixed_width_font = in_fixed_width_font;
+     FN **array = xmalloc ((footnote_count + 1) * sizeof (FN *));
+     array[footnote_count] = NULL;
+ 
+     while (--footnote_count > -1)
+       {
+         array[footnote_count] = footnote;
+         footnote = footnote->next;
+       }
+ 
+     filling_enabled = 1;
+     indented_fill = 1;
+     in_fixed_width_font = 0;
+ 
+     while ((footnote = array[++footnote_count]))
+       {
+         if (html)
+           {
+ 	    /* Make the text of every footnote begin a separate paragraph.  */
+             add_html_block_elt ("<p class=\"footnote\"><small>");
+             /* Make footnote number a link to its definition.  */
+             add_word_args ("[<a name=\"fn-%d\" href=\"#fnd-%d\">%d</a>]",
+ 			   footnote->number, footnote->number, footnote->number);
+             add_word ("</small> ");
+             already_outputting_pending_notes++;
+             execute_string ("%s", footnote->note);
+             already_outputting_pending_notes--;
+             add_word ("</p>\n");
+           }
+         else
+           {
+             char *old_current_node = current_node;
+             char *old_command = xstrdup (command);
+ 
+             already_outputting_pending_notes++;
+             execute_string ("%canchor{%s-Footnote-%d}(%s) %s",
+                             COMMAND_PREFIX, current_node, footnote->number,
+                             footnote->marker, footnote->note);
+             already_outputting_pending_notes--;
+             current_node = old_current_node;
+             free (command);
+             command = old_command;
+           }
+ 
+         close_paragraph ();
+       }
+ 
+     if (html)
+       add_html_block_elt ("<hr></div>");
+     close_paragraph ();
+     free (array);
+ 
+     in_fixed_width_font = save_in_fixed_width_font;
+   }
+ 
+   free_pending_notes ();
+ }
diff -Nrc2 texinfo-4.12/makeinfo/footnote.h texinfo-4.13/makeinfo/footnote.h
*** texinfo-4.12/makeinfo/footnote.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/footnote.h	Sun Jul  1 14:20:32 2007
***************
*** 0 ****
--- 1,36 ----
+ /* footnote.h -- declarations for footnote.c.
+    $Id: footnote.h,v 1.5 2007/07/01 21:20:32 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef FOOTNOTE_H
+ #define FOOTNOTE_H
+ 
+ extern int footnote_style_preset;
+ extern int current_footnote_number;
+ extern int number_footnotes;
+ extern int already_outputting_pending_notes;
+ 
+ /* The Texinfo @commands.  */
+ extern void cm_footnote (void);
+ extern void cm_footnotestyle (void);
+ 
+ extern int set_footnote_style (char *string);    /* called for -s option */
+ 
+ extern void output_pending_notes (void); /* called for output */
+ 
+ #endif /* !FOOTNOTE_H */
diff -Nrc2 texinfo-4.12/makeinfo/html.c texinfo-4.13/makeinfo/html.c
*** texinfo-4.12/makeinfo/html.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/html.c	Thu May 22 05:11:34 2008
***************
*** 0 ****
--- 1,870 ----
+ /* html.c -- html-related utilities.
+    $Id: html.c,v 1.42 2008/05/19 18:26:47 karl Exp $
+ 
+    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "cmds.h"
+ #include "files.h"
+ #include "html.h"
+ #include "lang.h"
+ #include "makeinfo.h"
+ #include "node.h"
+ #include "sectioning.h"
+ 
+ 
+ 
+ /* Filename to which to write list of index entries */
+ char *internal_links_filename = NULL;
+ FILE *internal_links_stream = NULL;
+ 
+ /* Append CHAR to BUFFER, (re)allocating as necessary.  We don't handle
+    null characters.  */
+ 
+ typedef struct
+ {
+   unsigned size;    /* allocated */
+   unsigned length;  /* used */
+   char *buffer;
+ } buffer_type;
+ 
+ static buffer_type *
+ init_buffer (void)
+ {
+   buffer_type *buf = xmalloc (sizeof (buffer_type));
+   buf->length = 0;
+   buf->size = 0;
+   buf->buffer = NULL;
+ 
+   return buf;
+ }
+ 
+ static void
+ append_char (buffer_type *buf, int c)
+ {
+   buf->length++;
+   if (buf->length >= buf->size)
+     {
+       buf->size += 100;
+       buf->buffer = xrealloc (buf->buffer, buf->size);
+     }
+   buf->buffer[buf->length - 1] = c;
+   buf->buffer[buf->length] = 0;
+ }
+ 
+ /* Read the cascading style-sheet file FILENAME.  Write out any @import
+    commands, which must come first, by the definition of css.  If the
+    file contains any actual css code following the @imports, return it;
+    else return NULL.  */
+ static char *
+ process_css_file (char *filename)
+ {
+   int c;
+   int lastchar = 0;
+   FILE *f;
+   buffer_type *import_text = init_buffer ();
+   buffer_type *inline_text = init_buffer ();
+   unsigned lineno = 1;
+   enum { null_state, comment_state, import_state, inline_state } state
+     = null_state, prev_state;
+ 
+   prev_state = null_state;
+ 
+   /* read from stdin if `-' is the filename.  */
+   f = STREQ (filename, "-") ? stdin : fopen (filename, "r");
+   if (!f)
+     {
+       error (_("%s: could not open --css-file: %s"), progname, filename);
+       return NULL;
+     }
+ 
+   /* Read the file.  The @import statements must come at the beginning,
+      with only whitespace and comments allowed before any inline css code.  */
+   while ((c = getc (f)) >= 0)
+     {
+       if (c == '\n')
+         lineno++;
+ 
+       switch (state)
+         {
+         case null_state: /* between things */
+           if (c == '@')
+             { /* Only @import and @charset should switch into
+                  import_state, other @-commands, such as @media, should
+                  put us into inline_state.  I don't think any other css
+                  @-commands start with `i' or `c', although of course
+                  this will break when such a command is defined.  */
+               int nextchar = getc (f);
+               if (nextchar == 'i' || nextchar == 'c')
+                 {
+                   append_char (import_text, c);
+                   append_char (import_text, nextchar);
+                   state = import_state;
+                 }
+               else
+                 {
+                   ungetc (nextchar, f);  /* wasn't an @import */
+                   state = inline_state;
+                 }
+             }
+           else if (c == '/')
+             { /* possible start of a comment */
+               int nextchar = getc (f);
+               if (nextchar == '*')
+                 state = comment_state;
+               else
+                 {
+                   ungetc (nextchar, f); /* wasn't a comment */
+                   state = inline_state;
+                 }
+             }
+           else if (isspace (c))
+             ; /* skip whitespace; maybe should use c_isspace?  */
+ 
+           else
+             /* not an @import, not a comment, not whitespace: we must
+                have started the inline text.  */
+             state = inline_state;
+ 
+           if (state == inline_state)
+             append_char (inline_text, c);
+ 
+           if (state != null_state)
+             prev_state = null_state;
+           break;
+ 
+         case comment_state:
+           if (c == '/' && lastchar == '*')
+             state = prev_state;  /* end of comment */
+           break;  /* else ignore this comment char */
+ 
+         case import_state:
+           append_char (import_text, c);  /* include this import char */
+           if (c == ';')
+             { /* done with @import */
+               append_char (import_text, '\n');  /* make the output nice */
+               state = null_state;
+               prev_state = import_state;
+             }
+           break;
+ 
+         case inline_state:
+           /* No harm in writing out comments, so don't bother parsing
+              them out, just append everything.  */
+           append_char (inline_text, c);
+           break;
+         }
+ 
+       lastchar = c;
+     }
+ 
+   fclose (f);  /* Even closing stdin should be ok, can't read it more
+                   than once?  */
+   
+   /* Reached the end of the file.  We should not be still in a comment.  */
+   if (state == comment_state)
+     warning (_("%s:%d: --css-file ended in comment"), filename, lineno);
+ 
+   /* Write the @import text, if any.  */
+   if (import_text->buffer)
+     {
+       add_word (import_text->buffer);
+       free (import_text->buffer);
+       free (import_text);
+     }
+ 
+   /* We're wasting the buffer struct memory, but so what.  */
+   return inline_text->buffer;
+ }
+ 
+ HSTACK *htmlstack = NULL;
+ 
+ /* See html.h.  */
+ int html_title_written = 0;
+ 
+ void
+ html_output_head (void)
+ {
+   static const char *html_title = NULL;
+   char *encoding = current_document_encoding ();
+ 
+   /* The <title> should not have markup, so use text_expansion.  */
+   if (!html_title)
+     html_title = escape_string (title ?
+         text_expansion (title) : (char *) gdt("Untitled"));
+ 
+   /* Make sure this is the very first string of the output document.  */
+   output_paragraph_offset = 0;
+ 
+   add_html_block_elt_args ("<html lang=\"%s\">\n<head>\n",
+       language_table[language_code].abbrev);
+ 
+   /* When splitting, add current node's name to title if it's available
+      and not Top.  */
+   if (splitting && current_node && !STREQ (current_node, "Top"))
+     add_word_args ("<title>%s - %s</title>\n",
+         escape_string (xstrdup (current_node)), html_title);
+   else
+     add_word_args ("<title>%s</title>\n",  html_title);
+ 
+   add_word ("<meta http-equiv=\"Content-Type\" content=\"text/html");
+   if (encoding && *encoding)
+     add_word_args ("; charset=%s", encoding);
+                    
+   add_word ("\">\n");
+ 
+   if (!document_description)
+     document_description = html_title;
+ 
+   add_word_args ("<meta name=\"description\" content=\"%s\">\n",
+                  document_description);
+   add_word_args ("<meta name=\"generator\" content=\"makeinfo %s\">\n",
+                  VERSION);
+ 
+   /* Navigation bar links.  */
+   if (!splitting)
+     add_word ("<link title=\"Top\" rel=\"top\" href=\"#Top\">\n");
+   else if (tag_table)
+     {
+       /* Always put a top link.  */
+       add_word ("<link title=\"Top\" rel=\"start\" href=\"index.html#Top\">\n");
+ 
+       /* We already have a top link, avoid duplication.  */
+       if (tag_table->up && !STREQ (tag_table->up, "Top"))
+         add_link (tag_table->up, "rel=\"up\"");
+ 
+       if (tag_table->prev)
+         add_link (tag_table->prev, "rel=\"prev\"");
+ 
+       if (tag_table->next)
+         add_link (tag_table->next, "rel=\"next\"");
+ 
+       /* fixxme: Look for a way to put links to various indices in the
+          document.  Also possible candidates to be added here are First and
+          Last links.  */
+     }
+   else
+     {
+       /* We are splitting, but we neither have a tag_table.  So this must be
+          index.html.  So put a link to Top. */
+       add_word ("<link title=\"Top\" rel=\"start\" href=\"#Top\">\n");
+     }
+ 
+   add_word ("<link href=\"http://www.gnu.org/software/texinfo/\" \
+ rel=\"generator-home\" title=\"Texinfo Homepage\">\n");
+ 
+   if (copying_text)
+     { /* It is not ideal that we include the html markup here within
+          <head>, so we use text_expansion.  */
+       insert_string ("<!--\n");
+       insert_string (text_expansion (copying_text));
+       insert_string ("-->\n");
+     }
+ 
+   /* Put the style definitions in a comment for the sake of browsers
+      that don't support <style>.  */
+   add_word ("<meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n");
+   add_word ("<style type=\"text/css\"><!--\n");
+ 
+   {
+     char *css_inline = NULL;
+ 
+     if (css_include)
+       /* This writes out any @import commands from the --css-file,
+          and returns any actual css code following the imports.  */
+       css_inline = process_css_file (css_include);
+ 
+     /* This seems cleaner than adding <br>'s at the end of each line for
+        these "roman" displays.  It's hardly the end of the world if the
+        browser doesn't do <style>s, in any case; they'll just come out in
+        typewriter.  */
+ #define CSS_FONT_INHERIT "font-family:inherit"
+     add_word_args ("  pre.display { %s }\n", CSS_FONT_INHERIT);
+     add_word_args ("  pre.format  { %s }\n", CSS_FONT_INHERIT);
+ 
+     /* Alternatively, we could do <font size=-1> in insertion.c, but this
+        way makes it easier to override.  */
+ #define CSS_FONT_SMALLER "font-size:smaller"
+     add_word_args ("  pre.smalldisplay { %s; %s }\n", CSS_FONT_INHERIT,
+                    CSS_FONT_SMALLER);
+     add_word_args ("  pre.smallformat  { %s; %s }\n", CSS_FONT_INHERIT,
+                    CSS_FONT_SMALLER);
+     add_word_args ("  pre.smallexample { %s }\n", CSS_FONT_SMALLER);
+     add_word_args ("  pre.smalllisp    { %s }\n", CSS_FONT_SMALLER);
+ 
+     /* Since HTML doesn't have a sc element, we use span with a bit of
+        CSS spice instead.  */
+ #define CSS_FONT_SMALL_CAPS "font-variant:small-caps"
+     add_word_args ("  span.sc    { %s }\n", CSS_FONT_SMALL_CAPS);
+ 
+     /* Roman (default) font class, closest we can come.  */
+ #define CSS_FONT_ROMAN "font-family:serif; font-weight:normal;"
+     add_word_args ("  span.roman { %s } \n", CSS_FONT_ROMAN);
+ 
+     /* Sans serif font class.  */
+ #define CSS_FONT_SANSSERIF "font-family:sans-serif; font-weight:normal;"
+     add_word_args ("  span.sansserif { %s } \n", CSS_FONT_SANSSERIF);
+ 
+     /* Write out any css code from the user's --css-file.  */
+     if (css_inline)
+       insert_string (css_inline);
+ 
+     add_word ("--></style>\n");
+   }
+   if (css_ref)
+     add_word_args ("<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\">\n",
+ 	            css_ref);
+   
+   add_word ("</head>\n<body>\n");
+ 
+   if (title && !html_title_written && titlepage_cmd_present)
+     {
+       add_word_args ("<h1 class=\"settitle\">%s</h1>\n", html_title);
+       html_title_written = 1;
+     }
+ 
+   free (encoding);
+ }
+ 
+ /* Escape HTML special characters in the string if necessary,
+    returning a pointer to a possibly newly-allocated one. */
+ char *
+ escape_string (char *string)
+ {
+   char *newstring;
+   int i = 0, newlen = 0;
+ 
+   do
+     {
+       /* Find how much to allocate. */
+       switch (string[i])
+         {
+         case '"':
+           newlen += 6;          /* `&quot;' */
+           break;
+         case '&':
+           newlen += 5;          /* `&amp;' */
+           break;
+         case '<':
+         case '>':
+           newlen += 4;          /* `&lt;', `&gt;' */
+           break;
+         default:
+           newlen++;
+         }
+     }
+   while (string[i++]);
+ 
+   if (newlen == i) return string; /* Already OK. */
+ 
+   newstring = xmalloc (newlen);
+   i = 0;
+   do
+     {
+       switch (string[i])
+         {
+         case '"':
+           strcpy (newstring, "&quot;");
+           newstring += 6;
+           break;
+         case '&':
+           strcpy (newstring, "&amp;");
+           newstring += 5;
+           break;
+         case '<':
+           strcpy (newstring, "&lt;");
+           newstring += 4;
+           break;
+         case '>':
+           strcpy (newstring, "&gt;");
+           newstring += 4;
+           break;
+         default:
+           newstring[0] = string[i];
+           newstring++;
+         }
+     }
+   while (string[i++]);
+ 
+   return newstring - newlen;
+ }
+ 
+ /* Save current tag.  */
+ static void
+ push_tag (char *tag, char *attribs)
+ {
+   HSTACK *newstack = xmalloc (sizeof (HSTACK));
+ 
+   newstack->tag = tag;
+   newstack->attribs = xstrdup (attribs);
+   newstack->next = htmlstack;
+   htmlstack = newstack;
+ }
+ 
+ /* Get last tag.  */
+ static void
+ pop_tag (void)
+ {
+   HSTACK *tos = htmlstack;
+ 
+   if (!tos)
+     {
+       line_error (_("[unexpected] no html tag to pop"));
+       return;
+     }
+ 
+   free (htmlstack->attribs);
+ 
+   htmlstack = htmlstack->next;
+   free (tos);
+ }
+ 
+ /* Check if tag is an empty or a whitespace only element.
+    If so, remove it, keeping whitespace intact.  */
+ int
+ rollback_empty_tag (char *tag)
+ {
+   int check_position = output_paragraph_offset;
+   int taglen = strlen (tag);
+   int rollback_happened = 0;
+   char *contents = "";			/* FIXME (ptr to constant, later
+   					   assigned to malloc'd address).
+ 					 */
+   char *contents_canon_white = "";
+ 
+   /* If output_paragraph is empty, we cannot rollback :-\  */
+   if (output_paragraph_offset <= 0)
+     return 0;
+ 
+   /* Find the end of the previous tag.  */
+   while (check_position > 0 && output_paragraph[check_position-1] != '>')
+     check_position--;
+ 
+   /* Save stuff between tag's end to output_paragraph's end.  */
+   if (check_position != output_paragraph_offset)
+     {
+       contents = xmalloc (output_paragraph_offset - check_position + 1);
+       memcpy (contents, output_paragraph + check_position,
+           output_paragraph_offset - check_position);
+ 
+       contents[output_paragraph_offset - check_position] = '\0';
+ 
+       contents_canon_white = xstrdup (contents);
+       canon_white (contents_canon_white);
+     }
+ 
+   /* Find the start of the previous tag.  */
+   while (check_position > 0 && output_paragraph[check_position-1] != '<')
+     check_position--;
+ 
+   /* Check to see if this is the tag.  */
+   if (strncmp ((char *) output_paragraph + check_position, tag, taglen) == 0
+       && (whitespace (output_paragraph[check_position + taglen])
+           || output_paragraph[check_position + taglen] == '>'))
+     {
+       if (!contents_canon_white || !*contents_canon_white)
+         {
+           /* Empty content after whitespace removal, so roll it back.  */
+           output_paragraph_offset = check_position - 1;
+           rollback_happened = 1;
+ 
+           /* Original contents may not be empty (whitespace.)  */
+           if (contents && *contents)
+             {
+               insert_string (contents);
+               free (contents);
+             }
+         }
+     }
+ 
+   return rollback_happened;
+ }
+ 
+ /* Open or close TAG according to START_OR_END. */
+ void
+ #if defined (VA_FPRINTF) && __STDC__
+ insert_html_tag_with_attribute (int start_or_end, char *tag, char *format, ...)
+ #else
+ insert_html_tag_with_attribute (start_or_end, tag, format, va_alist)
+      int start_or_end;
+      char *tag;
+      char *format;
+      va_dcl
+ #endif
+ {
+   char *old_tag = NULL;
+   char *old_attribs = NULL;
+   char formatted_attribs[2000]; /* xx no fixed limits */
+   int do_return = 0;
+   extern int in_html_elt;
+ 
+   if (start_or_end != START)
+     pop_tag ();
+ 
+   if (htmlstack)
+     {
+       old_tag = htmlstack->tag;
+       old_attribs = htmlstack->attribs;
+     }
+   
+   if (format)
+     {
+ #ifdef VA_SPRINTF
+       va_list ap;
+ #endif
+ 
+       VA_START (ap, format);
+ #ifdef VA_SPRINTF
+       VA_SPRINTF (formatted_attribs, format, ap);
+ #else
+       sprintf (formatted_attribs, format, a1, a2, a3, a4, a5, a6, a7, a8);
+ #endif
+       va_end (ap);
+     }
+   else
+     formatted_attribs[0] = '\0';
+ 
+   /* Exception: can nest multiple spans.  */
+   if (htmlstack
+       && STREQ (htmlstack->tag, tag)
+       && !(STREQ (tag, "span") && STREQ (old_attribs, formatted_attribs)))
+     do_return = 1;
+ 
+   if (start_or_end == START)
+     push_tag (tag, formatted_attribs);
+ 
+   if (do_return)
+     return;
+ 
+   in_html_elt++;
+ 
+   /* texinfo.tex doesn't support more than one font attribute
+      at the same time.  */
+   if ((start_or_end == START) && old_tag && *old_tag
+       && !STREQ (old_tag, "samp")
+       && !rollback_empty_tag (old_tag))
+     add_word_args ("</%s>", old_tag);
+ 
+   if (*tag)
+     {
+       if (start_or_end == START)
+         add_word_args (format ? "<%s %s>" : "<%s>", tag, formatted_attribs);
+       else if (STREQ (tag, "samp") || !rollback_empty_tag (tag))
+         /* Insert close tag only if we didn't rollback,
+            in which case the opening tag is removed.  */
+         add_word_args ("</%s>", tag);
+     }
+ 
+   if ((start_or_end != START) && old_tag && *old_tag && !STREQ (old_tag, "samp"))
+     add_word_args (strlen (old_attribs) > 0 ? "<%s %s>" : "<%s>",
+         old_tag, old_attribs);
+ 
+   in_html_elt--;
+ }
+ 
+ void
+ insert_html_tag (int start_or_end, char *tag)
+ {
+   insert_html_tag_with_attribute (start_or_end, tag, NULL);
+ }
+ 
+ /* Output an HTML <link> to the filename for NODE, including the
+    other string as extra attributes. */
+ 
+ void
+ add_link (char *nodename, char *attributes)
+ {
+   if (nodename)
+     {
+       char *escaped_nodename;
+       add_html_elt ("<link ");
+       add_word_args ("%s", attributes);
+       add_word_args (" href=\"");
+       add_anchor_name (nodename, 1);
+       escaped_nodename = escape_string (nodename);
+       add_word_args ("\" title=\"%s\">\n", escaped_nodename);
+       if (escaped_nodename != nodename)
+         free (escaped_nodename);
+     }
+ }
+ 
+ /* Copy a name with characters escaped as appropriate for an anchor
+    name, i.e., escape URL special characters with our _00hh convention.
+    (See the manual for details on the new scheme.) */
+    
+ char *
+ escaped_anchor_name (const char *name)
+ {
+   /* The factor 5 in the next allocation allows all chars to be expanded.  */
+   char *res = xmalloc (5 * strlen (name) + 1);
+   char *d = res;
+   
+   for (; *name; name++)
+     {
+       if (cr_or_whitespace (*name))
+         *d++ = '-';
+       else if (! URL_SAFE_CHAR (*name))
+         {
+           sprintf (d, "_00%x", (unsigned char) *name);
+           /* do this manually since sprintf returns char * on
+              SunOS 4 and other old systems.  */
+           while (*d)
+             d++;
+         }
+       else
+         *d++ = *name;
+     }
+   *d = 0;
+   return res;
+ }
+ 
+ /* Output NAME with characters escaped as appropriate for an anchor
+    name, i.e., escape URL special characters with our _00hh convention
+    if OLD is zero.  (See the manual for details on the new scheme.)
+    
+    If OLD is nonzero, generate the node name with the 4.6-and-earlier
+    convention of %hh (and more special characters output as-is, notably
+    - and *).  This is only so that external references to old names can
+    still work with HTML generated by the new makeinfo; the gcc folks
+    needed this.  Our own HTML does not refer to these names.  */
+ 
+ void
+ add_escaped_anchor_name (char *name, int old)
+ {
+   canon_white (name);
+ 
+   if (!old && !strchr ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
+                        *name))
+     { /* XHTML does not allow anything but an ASCII letter to start an
+          identifier.  Therefore kludge in this constant string if we
+          have a nonletter.  */
+       add_word ("g_t");
+     }
+   if (!old) 
+     {
+       char *expanded = escaped_anchor_name (name);
+       add_word (expanded);
+       free (expanded);
+     }
+   else for (; *name; name++)
+     {
+       if (cr_or_whitespace (*name))
+         add_char ('-');
+ 
+       else if (!URL_SAFE_CHAR (*name) && !OLD_URL_SAFE_CHAR (*name))
+         /* Cast so characters with the high bit set are treated as >128,
+            for example o-umlaut should be 246, not -10.  */ 
+         add_word_args ("%%%x", (unsigned char) *name);
+       else
+         add_char (*name);
+     }
+ }
+ 
+ /* Insert the text for the name of a reference in an HTML anchor
+    appropriate for NODENAME.
+    
+    If HREF is zero, generate text for name= in the new node name
+      conversion convention.
+    If HREF is negative, generate text for name= in the old convention.
+    If HREF is positive, generate the name for an href= attribute, i.e.,
+      including the `#' if it's an internal reference.   */
+ void
+ add_anchor_name (char *nodename, int href)
+ {
+   if (href > 0)
+     {
+       if (splitting)
+ 	add_url_name (nodename, href);
+       add_char ('#');
+     }
+   /* Always add NODENAME, so that the reference would pinpoint the
+      exact node on its file.  This is so several nodes could share the
+      same file, in case of file-name clashes, but also for more
+      accurate browser positioning.  */
+   if (mbscasecmp (nodename, "(dir)") == 0)
+     /* Strip the parens, but keep the original letter-case.  */
+     add_word_args ("%.3s", nodename + 1);
+   else if (mbscasecmp (nodename, "top") == 0)
+     add_word ("Top");
+   else
+     add_escaped_anchor_name (nodename, href < 0);
+ }
+ 
+ /* Insert the text for the name of a reference in an HTML url, aprropriate
+    for NODENAME */
+ void
+ add_url_name (char *nodename, int href)
+ {
+     add_nodename_to_filename (nodename, href);
+ }
+ 
+ /* Convert non [A-Za-z0-9] characters depending on the command line options given.
+    If --transliterate-file-names is specified, these are replaced with their ASCII
+    phonetic transliteration. Otherwise, _00xx notation is used, where xx means the
+    hexadecimal representation of the ASCII character.  Also convert spaces and
+    newlines to dashes.  */
+ static void
+ fix_filename (char *filename)
+ {
+   int i;
+   int len = strlen (filename);
+   char *oldname = xstrdup (filename);
+ 
+   *filename = '\0';
+ 
+   for (i = 0; i < len; i++)
+     {
+       const char *p = lang_transliterate_char (oldname[i]);
+ 
+       if (p)
+ 	strcat (filename, p);
+       else if (cr_or_whitespace (oldname[i]))
+         strcat (filename, "-");
+       else if (URL_SAFE_CHAR (oldname[i]))
+         strncat (filename, (char *) oldname + i, 1);
+       else
+         {
+           char *hexchar = xmalloc (6 * sizeof (char));
+           sprintf (hexchar, "_00%x", (unsigned char) oldname[i]);
+           strcat (filename, hexchar);
+           free (hexchar);
+         }
+ 
+       /* Check if we are nearing boundaries.  */
+       if (strlen (filename) >= PATH_MAX - 20)
+         break;
+     }
+ 
+   free (oldname);
+ }
+ 
+ /* As we can't look-up a (forward-referenced) nodes' html filename
+    from the tentry, we take the easy way out.  We assume that
+    nodenames are unique, and generate the html filename from the
+    nodename, that's always known.  */
+ static char *
+ nodename_to_filename_1 (char *nodename, int href)
+ {
+   char *p;
+   char *filename;
+   char dirname[PATH_MAX];
+ 
+   if (mbscasecmp (nodename, "Top") == 0)
+     {
+       /* We want to convert references to the Top node into
+ 	 "index.html#Top".  */
+       if (href)
+ 	filename = xstrdup ("index.html"); /* "#Top" is added by our callers */
+       else
+ 	filename = xstrdup ("Top");
+     }
+   else if (mbscasecmp (nodename, "(dir)") == 0)
+     /* We want to convert references to the (dir) node into
+        "../index.html".  */
+     filename = xstrdup ("../index.html");
+   else
+     {
+       filename = xmalloc (PATH_MAX);
+       dirname[0] = '\0';
+       *filename = '\0';
+ 
+       /* Check for external reference: ``(info-document)node-name''
+ 	 Assume this node lives at: ``../info-document/node-name.html''
+ 
+ 	 We need to handle the special case (sigh): ``(info-document)'',
+ 	 ie, an external top-node, which should translate to:
+ 	 ``../info-document/info-document.html'' */
+ 
+       p = nodename;
+       if (*nodename == '(')
+ 	{
+ 	  int length;
+ 
+ 	  p = strchr (nodename, ')');
+ 	  if (p == NULL)
+ 	    {
+ 	      line_error (_("[unexpected] invalid node name: `%s'"), nodename);
+ 	      xexit (1);
+ 	    }
+ 
+ 	  length = p - nodename - 1;
+ 	  if (length > 5 &&
+ 	      FILENAME_CMPN (p - 5, ".info", 5) == 0)
+ 	    length -= 5;
+ 	  /* This is for DOS, and also for Windows and GNU/Linux
+ 	     systems that might have Info files copied from a DOS 8+3
+ 	     filesystem.  */
+ 	  if (length > 4 &&
+ 	      FILENAME_CMPN (p - 4, ".inf", 4) == 0)
+ 	    length -= 4;
+ 	  strcpy (filename, "../");
+ 	  strncpy (dirname, nodename + 1, length);
+ 	  *(dirname + length) = '\0';
+ 	  fix_filename (dirname);
+ 	  strcat (filename, dirname);
+ 	  strcat (filename, "/");
+ 	  p++;
+ 	}
+ 
+       /* In the case of just (info-document), there will be nothing
+ 	 remaining, and we will refer to ../info-document/, which will
+ 	 work fine.  */
+       strcat (filename, p);
+       if (*p)
+ 	{
+ 	  /* Hmm */
+ 	  fix_filename (filename + strlen (filename) - strlen (p));
+ 	  strcat (filename, ".html");
+ 	}
+     }
+ 
+   /* Produce a file name suitable for the underlying filesystem.  */
+   normalize_filename (filename);
+ 
+ #if 0
+   /* We add ``#Nodified-filename'' anchor to external references to be
+      prepared for non-split HTML support.  Maybe drop this. */
+   if (href && *dirname)
+     {
+       strcat (filename, "#");
+       strcat (filename, p);
+       /* Hmm, again */
+       fix_filename (filename + strlen (filename) - strlen (p));
+     }
+ #endif
+ 
+   return filename;
+ }
+ 
+ /* If necessary, ie, if current filename != filename of node, output
+    the node name.  */
+ void
+ add_nodename_to_filename (char *nodename, int href)
+ {
+   /* for now, don't check: always output filename */
+   char *filename = nodename_to_filename_1 (nodename, href);
+   add_word (filename);
+   free (filename);
+ }
+ 
+ char *
+ nodename_to_filename (char *nodename)
+ {
+   /* The callers of nodename_to_filename use the result to produce
+      <a href=, so call nodename_to_filename_1 with last arg non-zero.  */
+   return nodename_to_filename_1 (nodename, 1);
+ }
diff -Nrc2 texinfo-4.12/makeinfo/html.h texinfo-4.13/makeinfo/html.h
*** texinfo-4.12/makeinfo/html.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/html.h	Thu May 22 05:11:34 2008
***************
*** 0 ****
--- 1,67 ----
+ /* html.h -- declarations for html-related utilities.
+    $Id: html.h,v 1.11 2008/05/19 18:26:48 karl Exp $
+ 
+    Copyright (C) 1999, 2000, 2002, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef HTML_H
+ #define HTML_H
+ 
+ /* A stack of font tags.  */
+ typedef struct hstack
+ {
+   struct hstack *next;
+   char *tag;
+   char *attribs;
+ } HSTACK;
+ 
+ /* Nonzero if we have output a title, from @titlefont or @settitle.  */
+ extern int html_title_written;
+ 
+ /* Filename to which to write list of index entries, and stream for them */
+ extern char *internal_links_filename;
+ extern FILE *internal_links_stream;
+ 
+ /* Perform the <head> output.  */
+ extern void html_output_head (void);
+ 
+ /* Escape &<>.  */
+ extern char *escape_string (char *);
+ 
+ /* Open or close TAG according to START_OR_END.  */
+ extern void insert_html_tag (int start_or_end, char *tag);
+ 
+ /* Output HTML <link> to NODE, plus extra ATTRIBUTES.  */
+ extern void add_link (char *nodename, char *attributes);
+ 
+ /* Escape URL-special characters.  */
+ extern char *escaped_anchor_name (const char *name);
+ extern void add_escaped_anchor_name (char *name, int old);
+ 
+ /* See html.c.  */
+ extern void add_anchor_name (char *nodename, int href);
+ extern void add_url_name (char *nodename, int href);
+ extern void add_nodename_to_filename (char *nodename, int href);
+ extern char *nodename_to_filename (char *nodename);
+ extern int rollback_empty_tag (char *tag);
+ 
+ #if defined (VA_FPRINTF) && __STDC__
+ extern void insert_html_tag_with_attribute (int start_or_end, char *tag, char *format, ...);
+ #else
+ extern void insert_html_tag_with_attribute ();
+ #endif
+ 
+ #endif /* !HTML_H */
diff -Nrc2 texinfo-4.12/makeinfo/index.c texinfo-4.13/makeinfo/index.c
*** texinfo-4.12/makeinfo/index.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/index.c	Thu May 22 05:11:34 2008
***************
*** 0 ****
--- 1,1004 ----
+ /* index.c -- indexing for Texinfo.
+    $Id: index.c,v 1.27 2008/05/19 18:26:48 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2002, 2003, 2004, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "mbswidth.h"
+ #include "files.h"
+ #include "footnote.h"
+ #include "html.h"
+ #include "index.h"
+ #include "lang.h"
+ #include "macro.h"
+ #include "sectioning.h"
+ #include "toc.h"
+ #include "xml.h"
+ 
+ /* Nonzero means that we are in the middle of printing an index. */
+ int printing_index = 0;
+ 
+ /* The number of defined indices. */
+ int defined_indices = 0;
+ 
+ /* This is the order of the index.  */
+ int index_counter = 0;
+ 
+ /* Stuff for defining commands on the fly. */
+ COMMAND **user_command_array = NULL;
+ int user_command_array_len = 0;
+ 
+ INDEX_ALIST **name_index_alist = NULL;
+ 
+ /* An array of pointers.  Each one is for a different index.  The @synindex
+    command changes which array slot is pointed to by a given index.  */
+ static INDEX_ELT **the_indices = NULL;
+ 
+ /* How to compare index entries for sorting.  May be set to strcoll.  */
+ static int (*index_compare_fn) (const char *a, const char *b) = mbscasecmp;
+ 
+ /* Find which element in the known list of indices has this name.
+    Returns -1 if NAME isn't found. */
+ static int
+ find_index_offset (char *name)
+ {
+   int i;
+   for (i = 0; i < defined_indices; i++)
+     if (name_index_alist[i] && STREQ (name, name_index_alist[i]->name))
+       return i;
+   return -1;
+ }
+ 
+ /* Return a pointer to the entry of (name . index) for this name.
+    Return NULL if the index doesn't exist. */
+ static INDEX_ALIST *
+ find_index (char *name)
+ {
+   int offset = find_index_offset (name);
+   if (offset > -1)
+     return name_index_alist[offset];
+   else
+     return NULL;
+ }
+ 
+ /* User-defined commands, which happens only from user-defined indexes.
+    Used to initialize the builtin indices, too.  */
+ static void
+ define_user_command (char *name, COMMAND_FUNCTION (*proc), int needs_braces_p)
+ {
+   int slot = user_command_array_len;
+   user_command_array_len++;
+ 
+   if (!user_command_array)
+     user_command_array = xmalloc (1 * sizeof (COMMAND *));
+ 
+   user_command_array = xrealloc (user_command_array,
+                             (1 + user_command_array_len) * sizeof (COMMAND *));
+ 
+   user_command_array[slot] = xmalloc (sizeof (COMMAND));
+   user_command_array[slot]->name = xstrdup (name);
+   user_command_array[slot]->proc = proc;
+   user_command_array[slot]->argument_in_braces = needs_braces_p;
+ }
+ 
+ /* Please release me, let me go... */
+ static void
+ free_index (INDEX_ELT *index)
+ {
+   INDEX_ELT *temp;
+ 
+   while ((temp = index))
+     {
+       free (temp->entry);
+       free (temp->entry_text);
+       /* Do not free the node, because we already freed the tag table,
+          which freed all the node names.  */
+       /* free (temp->node); */
+       index = index->next;
+       free (temp);
+     }
+ }
+ 
+ /* Flush an index by name.  This will delete the list of entries that
+    would be written by a @printindex command for this index. */
+ static void
+ undefindex (char *name)
+ {
+   int i;
+   int which = find_index_offset (name);
+ 
+   /* The index might have already been freed if this was the target of
+      an @synindex.  */
+   if (which < 0 || !name_index_alist[which])
+     return;
+ 
+   i = name_index_alist[which]->read_index;
+ 
+   free_index (the_indices[i]);
+   the_indices[i] = NULL;
+ 
+   free (name_index_alist[which]->name);
+   free (name_index_alist[which]);
+   name_index_alist[which] = NULL;
+ }
+ 
+ /* Add the arguments to the current index command to the index NAME.  */
+ static void
+ index_add_arg (char *name)
+ {
+   int which;
+   char *index_entry;
+   INDEX_ALIST *tem;
+ 
+   tem = find_index (name);
+ 
+   which = tem ? tem->write_index : -1;
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     append_to_expansion_output (input_text_offset + 1);
+ 
+   get_rest_of_line (0, &index_entry);
+   ignore_blank_line ();
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     {
+       char *index_line = xmalloc (strlen (index_entry) + 2);
+       sprintf (index_line, "%s\n", index_entry);
+       me_execute_string_keep_state (index_line, NULL);
+       free (index_line);
+     }
+ 
+   if (which < 0)
+     {
+       line_error (_("Unknown index `%s'"), name);
+       free (index_entry);
+     }
+   else
+     {
+       INDEX_ELT *new = xmalloc (sizeof (INDEX_ELT));
+ 
+       index_counter++;
+ 
+       /* Get output line number updated before doing anything.  */
+       if (!html && !xml)
+         flush_output ();
+ 
+       new->next = the_indices[which];
+       new->entry = NULL;
+       new->entry_text = index_entry;
+       /* Since footnotes are handled at the very end of the document,
+          node name in the non-split HTML outputs always show the last
+          node.  We artificially make it ``Footnotes''.  */
+       if (html && !splitting && already_outputting_pending_notes)
+         new->node = xstrdup (_("Footnotes"));
+       else
+         new->node = current_node ? current_node : xstrdup ("");
+       if (!html && !xml && no_headers)
+         {
+           new->section = current_sectioning_number ();
+           if (strlen (new->section) == 0)
+             new->section_name = current_sectioning_name ();
+           else
+             new->section_name = "";
+         }
+       else
+         {
+           new->section = NULL;
+           new->section_name = NULL;
+         }
+       new->code = tem->code;
+       new->defining_line = line_number - 1;
+       new->output_line = no_headers ? output_line_number : node_line_number;
+       /* We need to make a copy since input_filename may point to
+          something that goes away, for example, inside a macro.
+          (see the findexerr test).  */
+       new->defining_file = xstrdup (input_filename);
+ 
+       if (html && splitting)
+         {
+           if (current_output_filename && *current_output_filename)
+             new->output_file = filename_part (current_output_filename);
+           else
+             new->output_file = xstrdup ("");
+         }
+       else
+         new->output_file = NULL;        
+ 
+       new->entry_number = index_counter;
+       the_indices[which] = new;
+ 
+ #if 0
+       /* The index breaks if there are colons in the entry.
+          -- This is true, but it's too painful to force changing index
+          entries to use `colon', and too confusing for users.  The real
+          fix is to change Info support to support arbitrary characters
+          in node names, and we're not ready to do that.  --karl,
+          19mar02.  */
+       if (strchr (new->entry_text, ':'))
+         warning (_("Info cannot handle `:' in index entry `%s'"),
+                  new->entry_text);
+ #endif
+ 
+       if (html)
+         {
+           /* Anchor.  */
+           int removed_empty_elt = 0;
+ 
+           /* We must put the anchor outside the <dl> and <ul> blocks.  */
+           if (rollback_empty_tag ("dl"))
+             removed_empty_elt = 1;
+           else if (rollback_empty_tag ("ul"))
+             removed_empty_elt = 2;
+ 
+           add_word ("<a name=\"index-");
+           add_escaped_anchor_name (index_entry, 0);
+           add_word_args ("-%d\"></a>", index_counter);
+ 
+           if (removed_empty_elt == 1)
+             add_html_block_elt_args ("\n<dl>");
+           else if (removed_empty_elt == 2)
+             add_html_block_elt_args ("\n<ul>");
+         }
+     }
+ 
+   if (xml)
+     xml_insert_indexterm (index_entry, name);
+ }
+ 
+ /* The function which user defined index commands call. */
+ static void
+ gen_index (void)
+ {
+   char *name = xstrdup (command);
+   if (strlen (name) >= strlen ("index"))
+     name[strlen (name) - strlen ("index")] = 0;
+   index_add_arg (name);
+   free (name);
+ }
+ 
+ /* Define an index known as NAME.  We assign the slot number.
+    If CODE is nonzero, make this a code index. */
+ static void
+ defindex (char *name, int code)
+ {
+   int i, slot;
+ 
+   /* If it already exists, flush it. */
+   undefindex (name);
+ 
+   /* Try to find an empty slot. */
+   slot = -1;
+   for (i = 0; i < defined_indices; i++)
+     if (!name_index_alist[i])
+       {
+         slot = i;
+         break;
+       }
+ 
+   if (slot < 0)
+     { /* No such luck.  Make space for another index. */
+       slot = defined_indices;
+       defined_indices++;
+ 
+       name_index_alist = (INDEX_ALIST **)
+         xrealloc (name_index_alist, (1 + defined_indices)
+                                     * sizeof (INDEX_ALIST *));
+       the_indices = (INDEX_ELT **)
+         xrealloc (the_indices, (1 + defined_indices) * sizeof (INDEX_ELT *));
+     }
+ 
+   /* We have a slot.  Start assigning. */
+   name_index_alist[slot] = xmalloc (sizeof (INDEX_ALIST));
+   name_index_alist[slot]->name = xstrdup (name);
+   name_index_alist[slot]->read_index = slot;
+   name_index_alist[slot]->write_index = slot;
+   name_index_alist[slot]->code = code;
+ 
+   the_indices[slot] = NULL;
+ }
+ 
+ /* Define an index NAME, implicitly @code if CODE is nonzero.  */
+ static void
+ top_defindex (char *name, int code)
+ {
+   char *temp;
+ 
+   temp = xmalloc (1 + strlen (name) + strlen ("index"));
+   sprintf (temp, "%sindex", name);
+   define_user_command (temp, gen_index, 0);
+   defindex (name, code);
+   free (temp);
+ }
+ 
+ /* Set up predefined indices.  */
+ void
+ init_indices (void)
+ {
+   int i;
+ 
+   /* Create the default data structures. */
+ 
+   /* Initialize data space. */
+   if (!the_indices)
+     {
+       the_indices = xmalloc ((1 + defined_indices) * sizeof (INDEX_ELT *));
+       the_indices[defined_indices] = NULL;
+ 
+       name_index_alist = xmalloc ((1 + defined_indices)
+                                   * sizeof (INDEX_ALIST *));
+       name_index_alist[defined_indices] = NULL;
+     }
+ 
+   /* If there were existing indices, get rid of them now. */
+   for (i = 0; i < defined_indices; i++)
+     {
+       if (name_index_alist[i])
+         { /* Suppose we're called with two input files, and the first
+              does a @synindex pg cp.  Then, when we get here to start
+              the second file, the "pg" element won't get freed by
+              undefindex (because it's pointing to "cp").  So free it
+              here; otherwise, when we try to define the pg index again
+              just below, it will still point to cp.  */
+           undefindex (name_index_alist[i]->name);
+ 
+           /* undefindex sets all this to null in some cases.  */
+           if (name_index_alist[i])
+             {
+               free (name_index_alist[i]->name);
+               free (name_index_alist[i]);
+               name_index_alist[i] = NULL;
+             }
+         }
+     }
+ 
+   /* Add the default indices. */
+   top_defindex ("cp", 0);           /* cp is the only non-code index.  */
+   top_defindex ("fn", 1);
+   top_defindex ("ky", 1);
+   top_defindex ("pg", 1);
+   top_defindex ("tp", 1);
+   top_defindex ("vr", 1);
+ }
+ 
+ /* Given an index name, return the offset in the_indices of this index,
+    or -1 if there is no such index. */
+ static int
+ translate_index (char *name)
+ {
+   INDEX_ALIST *which = find_index (name);
+ 
+   if (which)
+     return which->read_index;
+   else
+     return -1;
+ }
+ 
+ /* Return the index list which belongs to NAME. */
+ INDEX_ELT *
+ index_list (char *name)
+ {
+   int which = translate_index (name);
+   if (which < 0)
+     return (INDEX_ELT *) -1;
+   else
+     return the_indices[which];
+ }
+ 
+ /* Define a new index command.  Arg is name of index. */
+ static void
+ gen_defindex (int code)
+ {
+   char *name;
+   get_rest_of_line (0, &name);
+ 
+   if (find_index (name))
+     {
+       line_error (_("Index `%s' already exists"), name);
+     }
+   else
+     {
+       char *temp = xmalloc (strlen (name) + sizeof ("index"));
+       sprintf (temp, "%sindex", name);
+       define_user_command (temp, gen_index, 0);
+       defindex (name, code);
+       free (temp);
+     }
+ 
+   free (name);
+ }
+ 
+ void
+ cm_defindex (void)
+ {
+   gen_defindex (0);
+ }
+ 
+ void
+ cm_defcodeindex (void)
+ {
+   gen_defindex (1);
+ }
+ 
+ /* Expects 2 args, on the same line.  Both are index abbreviations.
+    Make the first one be a synonym for the second one, i.e. make the
+    first one have the same index as the second one. */
+ void
+ cm_synindex (void)
+ {
+   int source, target;
+   char *abbrev1, *abbrev2;
+ 
+   skip_whitespace ();
+   get_until_in_line (0, " ", &abbrev1);
+   target = find_index_offset (abbrev1);
+   skip_whitespace ();
+   get_until_in_line (0, " ", &abbrev2);
+   source = find_index_offset (abbrev2);
+   if (source < 0 || target < 0)
+     {
+       line_error (_("Unknown index `%s' and/or `%s' in @synindex"),
+                   abbrev1, abbrev2);
+     }
+   else
+     {
+       if (xml && !docbook)
+         xml_synindex (abbrev1, abbrev2);
+       else
+         name_index_alist[target]->write_index
+           = name_index_alist[source]->write_index;
+     }
+ 
+   free (abbrev1);
+   free (abbrev2);
+ }
+ 
+ void
+ cm_pindex (void)                    /* Pinhead index. */
+ {
+   index_add_arg ("pg");
+ }
+ 
+ void
+ cm_vindex (void)                    /* Variable index. */
+ {
+   index_add_arg ("vr");
+ }
+ 
+ void
+ cm_kindex (void)                    /* Key index. */
+ {
+   index_add_arg ("ky");
+ }
+ 
+ void
+ cm_cindex (void)                    /* Concept index. */
+ {
+   index_add_arg ("cp");
+ }
+ 
+ void
+ cm_findex (void)                    /* Function index. */
+ {
+   index_add_arg ("fn");
+ }
+ 
+ void
+ cm_tindex (void)                    /* Data Type index. */
+ {
+   index_add_arg ("tp");
+ }
+ 
+ static int
+ index_element_compare (const void *element1, const void *element2)
+ {
+   INDEX_ELT **elt1 = (INDEX_ELT **) element1;
+   INDEX_ELT **elt2 = (INDEX_ELT **) element2;
+ 
+   return index_compare_fn ((*elt1)->entry, (*elt2)->entry);
+ }
+ 
+ /* Force all index entries to be unique. */
+ static void
+ make_index_entries_unique (INDEX_ELT **array, int count)
+ {
+   int i, j;
+   INDEX_ELT **copy;
+   int counter = 1;
+ 
+   copy = xmalloc ((1 + count) * sizeof (INDEX_ELT *));
+ 
+   for (i = 0, j = 0; i < count; i++)
+     {
+       if (i == (count - 1)
+           || array[i]->node != array[i + 1]->node
+           || !STREQ (array[i]->entry, array[i + 1]->entry))
+         copy[j++] = array[i];
+       else
+         {
+           free (array[i]->entry);
+           free (array[i]->entry_text);
+           free (array[i]);
+         }
+     }
+   copy[j] = NULL;
+ 
+   /* Now COPY contains only unique entries.  Duplicated entries in the
+      original array have been freed.  Replace the current array with
+      the copy, fixing the NEXT pointers. */
+   for (i = 0; copy[i]; i++)
+     {
+       copy[i]->next = copy[i + 1];
+ 
+       /* Fix entry names which are the same.  They point to different nodes,
+          so we make the entry name unique. */
+       if (copy[i+1]
+           && STREQ (copy[i]->entry, copy[i + 1]->entry)
+           && !html)
+         {
+           char *new_entry_name;
+ 
+           new_entry_name = xmalloc (10 + strlen (copy[i]->entry));
+           sprintf (new_entry_name, "%s <%d>", copy[i]->entry, counter);
+           free (copy[i]->entry);
+           copy[i]->entry = new_entry_name;
+           counter++;
+         }
+       else
+         counter = 1;
+ 
+       array[i] = copy[i];
+     }
+   array[i] = NULL;
+ 
+   /* Free the storage used only by COPY. */
+   free (copy);
+ }
+ 
+ 
+ /* Sort the index passed in INDEX, returning an array of pointers to
+    elements.  The array is terminated with a NULL pointer.  */
+ 
+ static INDEX_ELT **
+ sort_index (INDEX_ELT *index)
+ {
+   INDEX_ELT **array;
+   INDEX_ELT *temp;
+   int count = 0;
+   int save_line_number = line_number;
+   char *save_input_filename = input_filename;
+   int save_html = html;
+ 
+   /* Pretend we are in non-HTML mode, for the purpose of getting the
+      expanded index entry that lacks any markup and other HTML escape
+      characters which could produce a wrong sort order.  */
+   /* fixme: html: this still causes some markup, such as non-ASCII
+      characters @AE{} etc., to sort incorrectly.  */
+   html = 0;
+ 
+   for (temp = index, count = 0; temp; temp = temp->next, count++)
+     ;
+   /* We have the length, now we can allocate an array. */
+   array = xmalloc ((count + 1) * sizeof (INDEX_ELT *));
+ 
+   for (temp = index, count = 0; temp; temp = temp->next, count++)
+     {
+       /* Allocate new memory for the return array, since parts of the
+          original INDEX get freed.  Otherwise, if the document calls
+          @printindex twice on the same index, with duplicate entries,
+          we'll have garbage the second time.  There are cleaner ways to
+          deal, but this will suffice for now.  */
+       array[count] = xmalloc (sizeof (INDEX_ELT));
+       *(array[count]) = *(temp);  /* struct assignment, hope it's ok */
+ 
+       /* Adjust next pointers to use the new memory.  */
+       if (count > 0)
+         array[count-1]->next = array[count];
+ 
+       /* Set line number and input filename to the source line for this
+          index entry, as this expansion finds any errors.  */
+       line_number = array[count]->defining_line;
+       input_filename = array[count]->defining_file;
+ 
+       /* If this particular entry should be printed as a "code" index,
+          then expand it as @code{entry}, i.e., as in fixed-width font.  */
+       array[count]->entry = expansion (temp->entry_text, array[count]->code);
+     }
+   array[count] = NULL;    /* terminate the array. */
+ 
+   line_number = save_line_number;
+   input_filename = save_input_filename;
+   html = save_html;
+ 
+ #ifdef HAVE_STRCOLL
+   /* This is not perfect.  We should set (then restore) the locale to the
+      documentlanguage, so strcoll operates according to the document's
+      locale, not the user's.  For now, I'm just going to assume that
+      those few new documents which use @documentlanguage will be
+      processed in the appropriate locale.  In any case, don't use
+      strcoll in the C (aka POSIX) locale, that is the ASCII ordering.  */
+   if (language_code != en)
+     {
+       char *lang_env = getenv ("LANG");
+       if (lang_env && !STREQ (lang_env, "C") && !STREQ (lang_env, "POSIX"))
+         index_compare_fn = strcoll;
+     }
+ #endif /* HAVE_STRCOLL */
+ 
+   /* Sort the array. */
+   qsort (array, count, sizeof (INDEX_ELT *), index_element_compare);
+ 
+   /* Remove duplicate entries.  */
+   make_index_entries_unique (array, count);
+ 
+   /* Replace the original index with the sorted one, in case the
+      document wants to print it again.  If the index wasn't empty.  */
+   if (index)
+     *index = **array;
+ 
+   return array;
+ }
+ 
+ /* Return the number of times that the byte CH occurs in the LEN bytes
+    starting at STR.  Multibyte strings are not taken into account, which
+    is incorrect, but we need this for @tie; see more comments below.  */
+ 
+ static int
+ count_strn_chars (const char *str, int len, int ch)
+ {
+   int count = 0;
+   int i;
+   
+   for (i = 0; i < len; i++)
+     if (str[i] == ch)
+       count++;
+ 
+   return count;
+ }
+ 
+ static void
+ insert_index_output_line_no (int line_number, int output_line_number_len)
+ {
+   int last_column, out_line_no_width;
+   int str_size = output_line_number_len + strlen (_("(line )"))
+     + sizeof (NULL);
+   char *out_line_no_str = (char *) xmalloc (str_size + 1);
+ 
+   /* Do not translate ``(line NNN)'' below for !no_headers case (Info output),
+      because it's something like the ``* Menu'' strings.  For plaintext output
+      it should be translated though.  */
+   sprintf (out_line_no_str,
+       no_headers ? _("(line %*d)") : "(line %*d)",
+       output_line_number_len, line_number);
+ 
+   {
+     int i = output_paragraph_offset; 
+     while (0 < i && output_paragraph[i-1] != '\n')
+       i--;
+     last_column = mbsnwidth ((char *)(output_paragraph + i),
+ 			     output_paragraph_offset - i, 0);
+     last_column += count_strn_chars (output_paragraph + i,
+                               output_paragraph_offset - i, NON_BREAKING_SPACE);
+   }
+ 
+   out_line_no_width = mbswidth (out_line_no_str, 0);
+   if (last_column + out_line_no_width > fill_column)
+     {
+       insert ('\n');
+       last_column = 0;
+     }
+ 
+   while (last_column + out_line_no_width < fill_column)
+     {
+       insert (' ');
+       last_column++;
+     }
+ 
+   insert_string (out_line_no_str);
+   insert ('\n');
+ 
+   free (out_line_no_str);
+ }
+ 
+ /* Takes one arg, a short name of an index to print.
+    Outputs a menu of the sorted elements of the index. */
+ void
+ cm_printindex (void)
+ {
+   char *index_name;
+   get_rest_of_line (0, &index_name);
+ 
+   /* get_rest_of_line increments the line number by one,
+      so to make warnings/errors point to the correct line,
+      we decrement the line_number again.  */
+   if (!handling_delayed_writes)
+     line_number--;
+ 
+   if (xml)
+     {
+       xml_insert_element (PRINTINDEX, START);
+       if (! docbook)
+ 	insert_string (index_name);
+       xml_insert_element (PRINTINDEX, END);
+     }
+   else if (!handling_delayed_writes)
+     {
+       int command_len = sizeof ("@ ") + strlen (command) + strlen (index_name);
+       char *index_command = xmalloc (command_len + 1);
+ 
+       close_paragraph ();
+       sprintf (index_command, "@%s %s", command, index_name);
+       register_delayed_write (index_command);
+       free (index_command);
+     }
+   else
+     {
+       int item;
+       INDEX_ELT *index;
+       INDEX_ELT *last_index = 0;
+       INDEX_ELT **array;
+       unsigned line_length;
+       char *line;
+       int saved_inhibit_paragraph_indentation = inhibit_paragraph_indentation;
+       int saved_filling_enabled = filling_enabled;
+       int saved_line_number = line_number;
+       char *saved_input_filename = input_filename;
+       unsigned output_line_number_len;
+       FILE *saved_output_stream = output_stream;
+ 
+       index = index_list (index_name);
+       if (index == (INDEX_ELT *)-1)
+         {
+           line_error (_("Unknown index `%s' in @printindex"), index_name);
+           free (index_name);
+           return;
+         }
+ 
+       /* Do this before sorting, so execute_string is in the good environment */
+       if (xml && docbook)
+         xml_begin_index ();
+ 
+       /* Do this before sorting, so execute_string in index_element_compare
+          will give the same results as when we actually print.  */
+       printing_index = 1;
+       filling_enabled = 0;
+       inhibit_paragraph_indentation = 1;
+       xml_sort_index = 1;
+       array = sort_index (index);
+       xml_sort_index = 0;
+       close_paragraph ();
+       if (html)
+         add_html_block_elt_args ("<ul class=\"index-%s\" compact>",
+                                  index_name);
+       else if (!no_headers && !docbook)
+         { /* Info.  Add magic cookie for info readers (to treat this
+              menu differently), and the usual start-of-menu.  */
+           add_char ('\0');
+           add_word ("\010[index");
+           add_char ('\0');
+           add_word ("\010]\n");
+           add_word ("* Menu:\n\n");
+         }
+ 
+       me_inhibit_expansion++;
+ 
+       /* This will probably be enough.  */
+       line_length = 100;
+       line = xmalloc (line_length);
+ 
+       {
+         char *max_output_line_number = (char *) xmalloc (25 * sizeof (char));
+ 
+         if (no_headers)
+           sprintf (max_output_line_number, "%d", output_line_number);
+         else
+           {
+             INDEX_ELT *tmp_entry = index;
+             unsigned tmp = 0;
+             for (tmp_entry = index; tmp_entry; tmp_entry = tmp_entry->next)
+               tmp = tmp_entry->output_line > tmp ? tmp_entry->output_line : tmp;
+             sprintf (max_output_line_number, "%d", tmp);
+           }
+ 
+         output_line_number_len = strlen (max_output_line_number);
+         free (max_output_line_number);
+       }
+ 
+       for (item = 0; (index = array[item]); item++)
+         {
+           /* A pathological document might have an index entry outside of any
+              node.  Don't crash; try using the section name instead.  */
+           char *index_node = index->node;
+ 
+           line_number = index->defining_line;
+           input_filename = index->defining_file;
+ 
+           if ((!index_node || !*index_node) && html)
+             index_node = toc_find_section_of_node (index_node);
+ 
+           if (!index_node || !*index_node)
+             {
+               line_error (_("Entry for index `%s' outside of any node"),
+                           index_name);
+               if (html || !no_headers)
+                 index_node = (char *) _("(outside of any node)");
+             }
+ 
+           if (html)
+             {
+               /* For HTML, we need to expand and HTML-escape the
+                  original entry text, at the same time.  Consider
+                  @cindex J@"urgen.  We want J&uuml;urgen.  We can't
+                  expand and then escape since we'll end up with
+                  J&amp;uuml;rgen.  We can't escape and then expand
+                  because then `expansion' will see J@&quot;urgen, and
+                  @&quot;urgen is not a command.  */
+               char *html_entry =
+                 maybe_escaped_expansion (index->entry_text, index->code, 1);
+ 
+               add_html_block_elt_args ("\n<li><a href=\"%s#index-",
+                   (splitting && index->output_file) ? index->output_file : "");
+               add_escaped_anchor_name (index->entry_text, 0);
+               add_word_args ("-%d\">%s</a>: ", index->entry_number,
+                   html_entry);
+               free (html_entry);
+ 
+               add_word ("<a href=\"");
+               if (index->node && *index->node)
+                 {
+                   /* Ensure any non-macros in the node name are expanded.  */
+                   char *expanded_index;
+ 
+                   in_fixed_width_font++;
+                   expanded_index = expansion (index_node, 0);
+                   in_fixed_width_font--;
+                   add_anchor_name (expanded_index, 1);
+ 		  expanded_index = escape_string (expanded_index);
+                   add_word_args ("\">%s</a>", expanded_index);
+                   free (expanded_index);
+                 }
+               else if (STREQ (index_node, _("(outside of any node)")))
+                 {
+                   add_anchor_name (index_node, 1);
+                   add_word_args ("\">%s</a>", index_node);
+                 }
+               else
+                 /* If we use the section instead of the (missing) node, then
+                    index_node already includes all we need except the #.  */
+                 add_word_args ("#%s</a>", index_node);
+ 
+               add_html_block_elt ("</li>");
+ 
+               if (internal_links_stream)
+                 {
+                   char *escaped = escaped_anchor_name (index->entry_text);
+                   fprintf (internal_links_stream, "%s#index-%s-%d\t%s\t%s\n",
+                       (splitting && index->output_file) ? index->output_file : "",
+                       escaped, index->entry_number, index_name, 
+                       index->entry_text);
+                   free (escaped);
+                 }              
+             }
+           else if (xml && docbook)
+             {
+ 	      /* Let DocBook processor generate the index. */
+             }
+           else
+             {
+ #define MIN_ENTRY_COLUMNS 37
+ 	      /* Make sure there is enough space even if index->entry has zero
+ 		 width. */
+               unsigned new_length = strlen (index->entry) + MIN_ENTRY_COLUMNS;
+ 
+               if (new_length < 50) /* minimum length used below */
+                 new_length = 50;
+               new_length += strlen (index_node) + 7; /* * : .\n\0 */
+ 
+               if (new_length > line_length)
+                 {
+                   line_length = new_length;
+                   line = xrealloc (line, line_length);
+                 }
+               /* Print the entry, nicely formatted.  We've already
+                  expanded any commands in index->entry, including any
+                  implicit @code.  Thus, can't call execute_string, since
+                  @@ has turned into @. */
+               if (!no_headers)
+                 {
+                   int nspaces;
+ 		  int width = mbswidth (index->entry, 0);
+ 		  
+ 		  /* Unfortunately, our @tie{} / @w{ } magic is an
+                      unprintable character, and so mbswidth doesn't
+                      count it.  If that byte value occurs in a multibyte
+                      string, we'd lose, but at least it's only a
+                      question of minor formatting, not functionality.  */
+ 		  width += count_strn_chars (index->entry,
+                                     strlen (index->entry), NON_BREAKING_SPACE);
+ 		  
+ 		  nspaces = -(strlen (index->entry)
+                               + (MIN_ENTRY_COLUMNS - width));
+                   sprintf (line, "* %*s  ",
+                            width < MIN_ENTRY_COLUMNS ? nspaces : 0, 
+ 			   index->entry);
+                   line[2 + strlen (index->entry)] = ':';
+                   insert_string (line);
+                   /* Expand any non-macros in the node name.  */
+                   in_fixed_width_font++;
+                   execute_string ("%s. ", index_node);
+                   insert_index_output_line_no (index->output_line,
+                       output_line_number_len);
+                   in_fixed_width_font--;
+                 }
+               else
+                 {
+                   /* With --no-headers, the @node lines are gone, so
+                      there's little sense in referring to them in the
+                      index.  Instead, output the number or name of the
+                      section that corresponds to that node.  */
+                   sprintf (line, "%-*s ", number_sections ? 46 : 1,
+                            index->entry);
+                   line[strlen (index->entry)] = ':';
+                   insert_string (line);
+ 
+                   if (strlen (index->section) > 0)
+                     { /* We got your number.  */
+                       insert_string ((char *) _("See "));
+                       insert_string (index->section);
+                     }
+                   else
+                     { /* Sigh, index in an @unnumbered. :-\  */
+                       insert_string ("\n          ");
+                       insert_string ((char *) _("See "));
+                       insert_string ("``");
+                       insert_string (expansion (index->section_name, 0));
+                       insert_string ("''");
+                     }
+ 
+                   insert_string (". ");
+                   insert_index_output_line_no (index->output_line,
+                       output_line_number_len);
+                 }
+             }
+ 
+           /* Prevent `output_paragraph' from growing to the size of the
+              whole index.  */
+           flush_output ();
+           last_index = index;
+         }
+ 
+       free (line);
+ 
+       me_inhibit_expansion--;
+       printing_index = 0;
+ 
+       close_single_paragraph ();
+       filling_enabled = saved_filling_enabled;
+       inhibit_paragraph_indentation = saved_inhibit_paragraph_indentation;
+       input_filename = saved_input_filename;
+       line_number = saved_line_number;
+ 
+       if (html)
+         add_html_block_elt ("</ul>");
+       else if (xml && docbook)
+         xml_end_index ();
+     }
+ 
+   free (index_name);
+   /* Re-increment the line number, because get_rest_of_line
+      left us looking at the next line after the command.  */
+   line_number++;
+ }
diff -Nrc2 texinfo-4.12/makeinfo/index.h texinfo-4.13/makeinfo/index.h
*** texinfo-4.12/makeinfo/index.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/index.h	Tue Dec 25 15:57:20 2007
***************
*** 0 ****
--- 1,92 ----
+ /* index.h -- declarations for index.c.
+    $Id: index.h,v 1.6 2007/09/26 20:53:40 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef INDEX_H
+ #define INDEX_H
+ 
+ #include "makeinfo.h"
+ #include "cmds.h"
+ 
+ extern int printing_index;
+ extern int defined_indices;
+ extern int index_counter;
+ 
+ /* User commands are only new indices.  (Macros are handled separately.)  */
+ extern COMMAND **user_command_array;
+ extern int user_command_array_len;
+ 
+ /* An index element... */
+ typedef struct index_elt
+ {
+   struct index_elt *next;
+   char *entry;                  /* The index entry itself, after expansion. */
+   char *entry_text;             /* The original, non-expanded entry text. */
+   char *node;                   /* The node from whence it came. */
+   char *section;                /* Current section number we are in, */
+   char *section_name;           /* ... and its title.  */
+   int code;                     /* Nonzero means add `@code{...}' when
+                                    printing this element. */
+   int defining_line;            /* Line number where this entry was written. */
+   int output_line;              /* And line number where it is in the output. */
+   char *defining_file;          /* Source file for defining_line. */
+   char *output_file;            /* Output file for output_line. */
+   int entry_number;             /* Entry number.  */
+ } INDEX_ELT;
+ 
+ 
+ /* A list of short-names for each index.
+    There are two indices into the the_indices array.
+    * read_index is the index that points to the list of index
+      entries that we will find if we ask for the list of entries for
+      this name.
+    * write_index is the index that points to the list of index entries
+      that we will add new entries to.
+ 
+    Initially, read_index and write_index are the same, but the
+    @syncodeindex and @synindex commands can change the list we add
+    entries to.
+ 
+    For example, after the commands
+      @cindex foo
+      @defindex ii
+      @synindex cp ii
+      @cindex bar
+ 
+    the cp index will contain the entry `foo', and the new ii
+    index will contain the entry `bar'.  This is consistent with the
+    way texinfo.tex handles the same situation.
+ 
+    In addition, for each index, it is remembered whether that index is
+    a code index or not.  Code indices have @code{} inserted around the
+    first word when they are printed with printindex. */
+ typedef struct
+ {
+   char *name;
+   int read_index;   /* index entries for `name' */
+   int write_index;  /* store index entries here, @synindex can change it */
+   int code;
+ } INDEX_ALIST;
+ 
+ extern INDEX_ALIST **name_index_alist;
+ 
+ /* Initialize all indices.  */
+ extern void init_indices (void);
+ 
+ INDEX_ELT *index_list (char *name);
+ 
+ #endif /* !INDEX_H */
diff -Nrc2 texinfo-4.12/makeinfo/insertion.c texinfo-4.13/makeinfo/insertion.c
*** texinfo-4.12/makeinfo/insertion.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/insertion.c	Thu May 22 05:11:34 2008
***************
*** 0 ****
--- 1,2403 ----
+ /* insertion.c -- insertions for Texinfo.
+    $Id: insertion.c,v 1.71 2008/04/09 17:31:10 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+    2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "cmds.h"
+ #include "defun.h"
+ #include "float.h"
+ #include "html.h"
+ #include "insertion.h"
+ #include "macro.h"
+ #include "makeinfo.h"
+ #include "multi.h"
+ #include "xml.h"
+ 
+ /* Must match list in insertion.h.  */
+ static char *insertion_type_names[] =
+ { 
+   "cartouche", "copying", "defcv", "deffn", "defivar", "defmac",
+   "defmethod", "defop", "defopt", "defspec", "deftp", "deftypecv",
+   "deftypefn", "deftypefun", "deftypeivar", "deftypemethod",
+   "deftypeop", "deftypevar", "deftypevr", "defun", "defvar", "defvr",
+   "detailmenu", "direntry", "display", "documentdescription",
+   "enumerate", "example", "float", "flushleft", "flushright", "format",
+   "ftable", "group", "ifclear", "ifdocbook", "ifhtml", "ifinfo",
+   "ifnotdocbook", "ifnothtml", "ifnotinfo", "ifnotplaintext", "ifnottex",
+   "ifnotxml", "ifplaintext", "ifset", "iftex", "ifxml", "itemize", "lisp",
+   "menu", "multitable", "quotation", "rawdocbook", "rawhtml", "rawtex",
+   "rawxml", "smalldisplay", "smallexample", "smallformat", "smalllisp",
+   "verbatim", "table", "tex", "vtable", "titlepage", "bad_type"
+ };
+ 
+ /* All nested environments.  */
+ INSERTION_ELT *insertion_stack = NULL;
+ 
+ /* How deeply we're nested.  */
+ int insertion_level = 0;
+ 
+ /* Set to 1 if we've processed (commentary) text in a @menu that
+    wasn't part of a menu item.  */
+ int had_menu_commentary;
+ 
+ /* How to examine menu lines.  */
+ int in_detailmenu = 0;
+ 
+ /* Whether to examine menu lines.  */
+ int in_menu = 0;
+ 
+ /* Set to 1 if <p> is written in normal context. 
+    Used for menu and itemize. */
+ int in_paragraph = 0;
+ 
+ /* Since an insertion is already in the stack before we reach the switch
+    statement, we cannot use is_in_insertion_of_type (always returns true.) Also
+    making it return the level found, and comparing it with the current level is
+    no use, due to the order of stack.  */
+ static int float_active = 0;
+ 
+ /* Unsetting escape_html blindly causes text inside @html/etc. to be escaped if
+    used within a rmacro.  */
+ static int raw_output_block = 0;
+ 
+ /* Non-zero if a <dl> element has a <dt> element in it.  We use this when
+    deciding whether to insert a <br> or not.  */
+ static int html_deflist_has_term = 0;
+ 
+ const char default_item_function[] = { "@bullet" };
+ 
+ void
+ init_insertion_stack (void)
+ {
+   insertion_stack = NULL;
+ }
+ 
+ /* Return the type of the current insertion. */
+ static enum insertion_type
+ current_insertion_type (void)
+ {
+   return insertion_level ? insertion_stack->insertion : bad_type;
+ }
+ 
+ /* Return the string which is the function to wrap around items, or NULL
+    if we're not in an environment where @item is ok.  */
+ static char *
+ current_item_function (void)
+ {
+   int done = 0;
+   INSERTION_ELT *elt = insertion_stack;
+ 
+   /* Skip down through the stack until we find an insertion with an
+      itemize function defined, i.e., skip conditionals, @cartouche, etc.  */
+   while (!done && elt)
+     {
+       switch (elt->insertion)
+         {
+         /* This list should match the one in cm_item.  */
+         case ifclear:
+         case ifhtml:
+         case ifinfo:
+         case ifnothtml:
+         case ifnotinfo:
+         case ifnotplaintext:
+         case ifnottex:
+ 	case ifnotxml:
+         case ifplaintext:
+         case ifset:
+         case iftex:
+ 	case ifxml:
+         case rawdocbook:
+         case rawhtml:
+         case rawxml:
+         case rawtex:
+         case tex:
+         case cartouche:
+           elt = elt->next;
+           break;
+       
+         default:
+           done = 1;
+         }
+     }
+ 
+   /* item_function usually gets assigned the empty string.  */
+   return done && (*elt->item_function) ? elt->item_function : NULL;
+ }
+ 
+ /* Parse the item marker function off the input.  If result is just "@",
+    change it to "@ ", since "@" by itself is not a command.  This makes
+    "@ ", "@\t", and "@\n" all the same, but their default meanings are
+    the same anyway, and let's not worry about supporting redefining them.  */
+ char *
+ get_item_function (void)
+ {
+   char *item_function;
+   char *item_loc;
+   
+   get_rest_of_line (0, &item_function);
+ 
+   /* If the document erroneously says
+        @itemize @bullet @item foobar
+      it's nicer to give an error up front than repeat `@bullet expected
+      braces' until we get a segmentation fault.  */
+   item_loc = strstr (item_function, "@item");
+   if (item_loc)
+     {
+       line_error (_("@item not allowed in argument to @itemize"));
+       *item_loc = 0;
+     }
+ 
+   /* If we hit the end of text in get_rest_of_line, backing up
+      input pointer will cause the last character of the last line
+      be pushed back onto the input, which is wrong.  */
+   if (input_text_offset < input_text_length)
+     backup_input_pointer ();
+ 
+   if (STREQ (item_function, "@"))
+     {
+       free (item_function);
+       item_function = xstrdup ("@ ");
+     }
+ 
+   return item_function;
+ }
+ 
+  /* Push the state of the current insertion on the stack. */
+ static void
+ push_insertion (enum insertion_type type, char *item_function)
+ {
+   INSERTION_ELT *new = xmalloc (sizeof (INSERTION_ELT));
+ 
+   new->item_function = item_function;
+   new->filling_enabled = filling_enabled;
+   new->indented_fill = indented_fill;
+   new->insertion = type;
+   new->line_number = line_number;
+   new->filename = xstrdup (input_filename);
+   new->inhibited = inhibit_paragraph_indentation;
+   new->in_fixed_width_font = in_fixed_width_font;
+   new->next = insertion_stack;
+   insertion_stack = new;
+   insertion_level++;
+ }
+ 
+  /* Pop the value on top of the insertion stack into the
+     global variables. */
+ void
+ pop_insertion (void)
+ {
+   INSERTION_ELT *temp = insertion_stack;
+ 
+   if (temp == NULL)
+     return;
+ 
+   in_fixed_width_font = temp->in_fixed_width_font;
+   inhibit_paragraph_indentation = temp->inhibited;
+   filling_enabled = temp->filling_enabled;
+   indented_fill = temp->indented_fill;
+   if (temp->item_function == default_item_function)
+     temp->item_function = NULL;
+   else
+     free_and_clear (&(temp->item_function));
+   free_and_clear (&(temp->filename));
+   insertion_stack = insertion_stack->next;
+   free (temp);
+   insertion_level--;
+ }
+ 
+  /* Return a pointer to the print name of this
+     enumerated type. */
+ static const char *
+ insertion_type_pname (enum insertion_type type)
+ {
+   if ((int) type < (int) bad_type)
+   {
+     if (type == rawdocbook)
+       return "docbook";
+     else if (type == rawhtml)
+       return "html";
+     else if (type == rawxml)
+       return "xml";
+     else if (type == rawtex)
+       return "tex";
+     else
+       return insertion_type_names[(int) type];
+   }
+   else
+     return _("Broken-Type in insertion_type_pname");
+ }
+ 
+ /* Return the insertion_type associated with NAME.
+    If the type is not one of the known ones, return BAD_TYPE. */
+ enum insertion_type
+ find_type_from_name (char *name)
+ {
+   int index = 0;
+   while (index < (int) bad_type)
+     {
+       if (STREQ (name, insertion_type_names[index]))
+         return (enum insertion_type) index;
+       if (index == rawdocbook && STREQ (name, "docbook"))
+         return rawdocbook;
+       if (index == rawhtml && STREQ (name, "html"))
+         return rawhtml;
+       if (index == rawxml && STREQ (name, "xml"))
+         return rawxml;
+       if (index == rawtex && STREQ (name, "tex"))
+         return rawtex;
+       index++;
+     }
+   return bad_type;
+ }
+ 
+ /* Simple function to query insertion_stack to see if we are inside a given
+    insertion type. */
+ int
+ is_in_insertion_of_type (int type)
+ {
+   INSERTION_ELT *temp = insertion_stack;
+ 
+   if (!insertion_level)
+     return 0;
+ 
+   while (temp)
+     {
+       if (temp->insertion == type)
+         return 1;
+       temp = temp->next;
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ static int
+ defun_insertion (enum insertion_type type)
+ {
+   return 0
+      || (type == defcv)
+      || (type == deffn)
+      || (type == defivar)
+      || (type == defmac)
+      || (type == defmethod)
+      || (type == defop)
+      || (type == defopt)
+      || (type == defspec)
+      || (type == deftp)
+      || (type == deftypecv)
+      || (type == deftypefn)
+      || (type == deftypefun)
+      || (type == deftypeivar)
+      || (type == deftypemethod)
+      || (type == deftypeop)
+      || (type == deftypevar)
+      || (type == deftypevr)
+      || (type == defun)
+      || (type == defvar)
+      || (type == defvr)
+   ;
+ }
+ 
+ /* MAX_NS is the maximum nesting level for enumerations.  I picked 100
+    which seemed reasonable.  This doesn't control the number of items,
+    just the number of nested lists. */
+ #define max_stack_depth 100
+ #define ENUM_DIGITS 1
+ #define ENUM_ALPHA  2
+ typedef struct {
+   int enumtype;
+   int enumval;
+ } DIGIT_ALPHA;
+ 
+ DIGIT_ALPHA enumstack[max_stack_depth];
+ int enumstack_offset = 0;
+ int current_enumval = 1;
+ int current_enumtype = ENUM_DIGITS;
+ char *enumeration_arg = NULL;
+ 
+ static void
+ start_enumerating (int at, int type)
+ {
+   if ((enumstack_offset + 1) == max_stack_depth)
+     {
+       line_error (_("Enumeration stack overflow"));
+       return;
+     }
+   enumstack[enumstack_offset].enumtype = current_enumtype;
+   enumstack[enumstack_offset].enumval = current_enumval;
+   enumstack_offset++;
+   current_enumval = at;
+   current_enumtype = type;
+ }
+ 
+ static void
+ stop_enumerating (void)
+ {
+   --enumstack_offset;
+   if (enumstack_offset < 0)
+     enumstack_offset = 0;
+ 
+   current_enumval = enumstack[enumstack_offset].enumval;
+   current_enumtype = enumstack[enumstack_offset].enumtype;
+ }
+ 
+ /* Place a letter or digits into the output stream. */
+ static void
+ enumerate_item (void)
+ {
+   char temp[10];
+ 
+   if (current_enumtype == ENUM_ALPHA)
+     {
+       if (current_enumval == ('z' + 1) || current_enumval == ('Z' + 1))
+         {
+           current_enumval = ((current_enumval - 1) == 'z' ? 'a' : 'A');
+           warning (_("lettering overflow, restarting at %c"), current_enumval);
+         }
+       sprintf (temp, "%c. ", current_enumval);
+     }
+   else
+     sprintf (temp, "%d. ", current_enumval);
+ 
+   indent (current_output_column () + (current_indent - strlen (temp)));
+   add_word (temp);
+   current_enumval++;
+ }
+ 
+ static void
+ enum_html (void)
+ {
+   char type;
+   int start;
+ 
+   if (isdigit (*enumeration_arg))
+     {
+       type = '1';
+       start = atoi (enumeration_arg);
+     }
+   else if (isupper (*enumeration_arg))
+     {
+       type = 'A';
+       start = *enumeration_arg - 'A' + 1;
+     }
+   else
+     {
+       type = 'a';
+       start = *enumeration_arg - 'a' + 1;
+     }
+ 
+   add_html_block_elt_args ("<ol type=%c start=%d>\n", type, start);
+ }
+ 
+ /* Conditionally parse based on the current command name. */
+ void
+ command_name_condition (void)
+ {
+   char *discarder = xmalloc (8 + strlen (command));
+ 
+   sprintf (discarder, "\n%cend %s", COMMAND_PREFIX, command);
+   discard_until (discarder);
+   discard_until ("\n");
+ 
+   free (discarder);
+ }
+ 
+ /* This is where the work for all the "insertion" style
+    commands is done.  A huge switch statement handles the
+    various setups, and generic code is on both sides. */
+ void
+ begin_insertion (enum insertion_type type)
+ {
+   int no_discard = 0;
+ 
+   if (defun_insertion (type))
+     {
+       push_insertion (type, xstrdup (""));
+       no_discard++;
+     }
+   else
+     {
+       push_insertion (type, get_item_function ());
+     }
+ 
+   switch (type)
+     {
+     case menu:
+       if (!no_headers)
+         close_paragraph ();
+ 
+       filling_enabled = no_indent = 0;
+       inhibit_paragraph_indentation = 1;
+ 
+       if (html)
+         {
+           had_menu_commentary = 1;
+         }
+       else if (!no_headers && !xml)
+         add_word ("* Menu:\n");
+ 
+       if (xml)
+         xml_insert_element (MENU, START);
+       else
+         in_fixed_width_font++;
+ 
+       next_menu_item_number = 1;
+       in_menu++;
+       no_discard++;
+       break;
+ 
+     case detailmenu:
+       if (!in_menu)
+         {
+           if (!no_headers)
+             close_paragraph ();
+ 
+           filling_enabled = no_indent = 0;
+           inhibit_paragraph_indentation = 1;
+ 
+           no_discard++;
+         }
+ 
+       if (xml)
+         {
+           xml_insert_element (DETAILMENU, START);
+           skip_whitespace_and_newlines ();
+         }
+       else
+         in_fixed_width_font++;
+ 
+       in_detailmenu++;
+       break;
+ 
+     case direntry:
+       close_single_paragraph ();
+       filling_enabled = no_indent = 0;
+       inhibit_paragraph_indentation = 1;
+       add_word ("START-INFO-DIR-ENTRY\n");
+       
+       /* The zsh manual, maybe others, wrongly indents the * line of the
+          direntry in the source.  Ignore that whitespace.  */
+       skip_whitespace_and_newlines ();
+       no_discard++;
+       break;
+ 
+     case documentdescription:
+       {
+         char *desc;
+         int start_of_end;
+         int save_fixed_width;
+ 
+         discard_until ("\n"); /* ignore the @documentdescription line */
+         start_of_end = get_until ("\n@end documentdescription", &desc);
+         save_fixed_width = in_fixed_width_font;
+ 
+         in_fixed_width_font = 0;
+         document_description = expansion (desc, 0);
+         free (desc);
+ 
+         in_fixed_width_font = save_fixed_width;
+         input_text_offset = start_of_end; /* go back to the @end to match */
+       }
+       break;
+ 
+     case copying:
+         /* Save the copying text away for @insertcopying,
+            typically used on the back of the @titlepage (for TeX) and
+            the Top node (for info/html).  */
+       if (input_text[input_text_offset] != '\n')
+         discard_until ("\n"); /* ignore remainder of @copying line */
+ 
+         input_text_offset = get_until ("\n@end copying", &copying_text);
+         canon_white (copying_text);
+ 
+       /* For info, output the copying text right away, so it will end up
+          in the header of the Info file, before the first node, and thus
+          get copied automatically to all the split files.  For xml, also
+          output it right away since xml output is never split.
+          For html, we output it specifically in html_output_head. 
+          For plain text, there's no way to hide it, so the author must
+          use @insertcopying in the desired location.  */
+       if (docbook)
+ 	{
+ 	  if (!xml_in_bookinfo)
+ 	    {
+ 	      xml_insert_element (BOOKINFO, START);
+ 	      xml_in_bookinfo = 1;
+ 	    }
+           xml_insert_element (LEGALNOTICE, START);
+ 	}
+ 
+       if (!html && !no_headers)
+         cm_insert_copying ();
+ 
+       if (docbook)
+         xml_insert_element (LEGALNOTICE, END);
+       break;
+ 
+     case quotation:
+       /* @quotation does filling (@display doesn't).  */
+       if (html)
+         add_html_block_elt ("<blockquote>\n");
+       else
+         {
+           /* with close_single_paragraph, we get no blank line above
+              within @copying.  */
+           close_paragraph ();
+           last_char_was_newline = no_indent = 0;
+           indented_fill = filling_enabled = 1;
+           inhibit_paragraph_indentation = 1;
+           current_indent += default_indentation_increment;
+         }
+       if (xml)
+         xml_insert_quotation (insertion_stack->item_function, START);
+       else if (strlen(insertion_stack->item_function))
+         execute_string ("@b{%s:} ", insertion_stack->item_function);
+       break;
+ 
+     case example:
+     case smallexample:
+     case lisp:
+     case smalllisp:
+       in_fixed_width_font++;
+       /* fall through */
+ 
+       /* Like @example but no fixed width font. */
+     case display:
+     case smalldisplay:
+       /* Like @display but without indentation. */
+     case smallformat:
+     case format:
+       close_single_paragraph ();
+       inhibit_paragraph_indentation = 1;
+       filling_enabled = 0;
+       last_char_was_newline = 0;
+ 
+       if (html)
+         /* Kludge alert: if <pre> is followed by a newline, IE3,
+            mozilla, maybe others render an extra blank line before the
+            pre-formatted block.  So don't output a newline.  */
+         add_html_block_elt_args ("<pre class=\"%s\">", command);
+ 
+       if (type != format && type != smallformat)
+         {
+           current_indent += example_indentation_increment;
+           if (html)
+             {
+               /* Since we didn't put \n after <pre>, we need to insert
+                  the indentation by hand.  */
+               int i;
+               for (i = current_indent; i > 0; i--)
+                 add_char (' ');
+             }
+         }
+       break;
+ 
+     case multitable:
+       do_multitable ();
+       break;
+ 
+     case table:
+     case ftable:
+     case vtable:
+     case itemize:
+       close_single_paragraph ();
+       current_indent += default_indentation_increment;
+       filling_enabled = indented_fill = 1;
+ #if defined (INDENT_PARAGRAPHS_IN_TABLE)
+       inhibit_paragraph_indentation = 0;
+ #else
+       inhibit_paragraph_indentation = 1;
+ #endif /* !INDENT_PARAGRAPHS_IN_TABLE */
+ 
+       /* Make things work for losers who forget the itemize syntax. */
+       if (type == itemize)
+         {
+           if (!(*insertion_stack->item_function))
+             {
+               free (insertion_stack->item_function);
+               insertion_stack->item_function = (char *) default_item_function;
+             }
+         }
+ 
+       if (!*insertion_stack->item_function)
+         {
+           line_error (_("%s requires an argument: the formatter for %citem"),
+                       insertion_type_pname (type), COMMAND_PREFIX);
+         }
+ 
+       if (html)
+         {
+           if (type == itemize)
+             {
+               add_html_block_elt ("<ul>\n");
+               in_paragraph = 0;
+             }
+           else
+             { /* We are just starting, so this <dl>
+                  has no <dt> children yet.  */
+               html_deflist_has_term = 0;
+               add_html_block_elt ("<dl>\n");
+             }
+         }
+       if (xml)
+         xml_begin_table (type, insertion_stack->item_function);
+ 
+       while (input_text[input_text_offset] == '\n'
+           && input_text[input_text_offset+1] == '\n')
+         {
+           line_number++;
+           input_text_offset++;
+         }
+ 
+       break;
+ 
+     case enumerate:
+       close_single_paragraph ();
+       no_indent = 0;
+ #if defined (INDENT_PARAGRAPHS_IN_TABLE)
+       inhibit_paragraph_indentation = 0;
+ #else
+       inhibit_paragraph_indentation = 1;
+ #endif /* !INDENT_PARAGRAPHS_IN_TABLE */
+ 
+       current_indent += default_indentation_increment;
+       filling_enabled = indented_fill = 1;
+ 
+       if (html)
+         {
+           enum_html ();
+           in_paragraph = 0;
+         }
+ 
+       if (xml)
+         xml_begin_enumerate (enumeration_arg);
+       
+       if (isdigit (*enumeration_arg))
+         start_enumerating (atoi (enumeration_arg), ENUM_DIGITS);
+       else
+         start_enumerating (*enumeration_arg, ENUM_ALPHA);
+       break;
+ 
+       /* @group produces no output in info. */
+     case group:
+       /* Only close the paragraph if we are not inside of an
+          @example-like environment. */
+       if (xml)
+         xml_insert_element (GROUP, START);
+       else if (!insertion_stack->next
+           || (insertion_stack->next->insertion != display
+               && insertion_stack->next->insertion != smalldisplay
+               && insertion_stack->next->insertion != example
+               && insertion_stack->next->insertion != smallexample
+               && insertion_stack->next->insertion != lisp
+               && insertion_stack->next->insertion != smalllisp
+               && insertion_stack->next->insertion != format
+               && insertion_stack->next->insertion != smallformat
+               && insertion_stack->next->insertion != flushleft
+               && insertion_stack->next->insertion != flushright))
+         close_single_paragraph ();
+       break;
+ 
+     case cartouche:
+       if (html)
+ 	add_html_block_elt ("<p><table class=\"cartouche\" summary=\"cartouche\" border=\"1\"><tr><td>\n");
+       if (in_menu)
+         no_discard++;
+       break;
+ 
+     case floatenv:
+       /* Cannot nest floats, so complain.  */
+       if (float_active)
+         {
+           line_error (_("%cfloat environments cannot be nested"), COMMAND_PREFIX);
+           pop_insertion ();
+           break;
+         }
+ 
+       float_active++;
+ 
+       { /* Collect data about this float.  */
+         /* Example: @float [FLOATTYPE][,XREFLABEL][,POSITION] */
+         char floattype[200] = "";
+         char xreflabel[200] = "";
+         char position[200]  = "";
+         char *text;
+         char *caption;
+         char *shortcaption;
+         int start_of_end;
+         int save_line_number = line_number;
+         int save_input_text_offset = input_text_offset;
+         int i;
+ 
+         if (strlen (insertion_stack->item_function) > 0)
+           {
+             int i = 0, t = 0, c = 0;
+             while (insertion_stack->item_function[i])
+               {
+                 if (insertion_stack->item_function[i] == ',')
+                   {
+                     switch (t)
+                       {
+                       case 0:
+                         floattype[c] = '\0';
+                         break;
+                       case 1:
+                         xreflabel[c] = '\0';
+                         break;
+                       case 2:
+                         position[c] = '\0';
+                         break;
+                       }
+                     c = 0;
+                     t++;
+                     i++;
+                     continue;
+                   }
+ 
+                 switch (t)
+                   {
+                   case 0:
+                     floattype[c] = insertion_stack->item_function[i];
+                     break;
+                   case 1:
+                     xreflabel[c] = insertion_stack->item_function[i];
+                     break;
+                   case 2:
+                     position[c] = insertion_stack->item_function[i];
+                     break;
+                   }
+                 c++;
+                 i++;
+               }
+           }
+ 
+         skip_whitespace_and_newlines ();
+ 
+         start_of_end = get_until ("\n@end float", &text);
+ 
+         /* Get also the @caption.  */
+         i = search_forward_until_pos ("\n@caption{",
+             save_input_text_offset, start_of_end);
+         if (i > -1)
+           {
+             input_text_offset = i + sizeof ("\n@caption{") - 1;
+             get_until_in_braces ("\n@end float", &caption);
+             input_text_offset = save_input_text_offset;
+           }
+         else
+           caption = "";
+ 
+         /* ... and the @shortcaption.  */
+         i = search_forward_until_pos ("\n@shortcaption{",
+             save_input_text_offset, start_of_end);
+         if (i > -1)
+           {
+             input_text_offset = i + sizeof ("\n@shortcaption{") - 1;
+             get_until_in_braces ("\n@end float", &shortcaption);
+             input_text_offset = save_input_text_offset;
+           }
+         else
+           shortcaption = "";
+ 
+         canon_white (xreflabel);
+         canon_white (floattype);
+         canon_white (position);
+         canon_white (caption);
+         canon_white (shortcaption);
+ 
+         add_new_float (xstrdup (xreflabel),
+             xstrdup (caption), xstrdup (shortcaption),
+             xstrdup (floattype), xstrdup (position));
+ 
+         /* Move to the start of the @float so the contents get processed as
+            usual.  */
+         input_text_offset = save_input_text_offset;
+         line_number = save_line_number;
+       }
+ 
+       if (html)
+         add_html_block_elt ("<div class=\"float\">\n");
+       else if (docbook)
+         xml_insert_element (FLOAT, START);
+       else if (xml)
+         {
+           xml_insert_element_with_attribute (FLOAT, START,
+               "name=\"%s\"", current_float_id ());
+ 
+           xml_insert_element (FLOATTYPE, START);
+           execute_string ("%s", current_float_type ());
+           xml_insert_element (FLOATTYPE, END);
+ 
+           xml_insert_element (FLOATPOS, START);
+           execute_string ("%s", current_float_position ());
+           xml_insert_element (FLOATPOS, END);
+         }
+       else
+         { /* Info */
+           close_single_paragraph ();
+           inhibit_paragraph_indentation = 1;
+         }
+ 
+       /* Anchor now.  Note that XML documents get their
+          anchors with <float name="anchor"> tag.  */
+       if ((!xml || docbook) && strlen (current_float_id ()) > 0)
+         execute_string ("@anchor{%s}", current_float_id ());
+ 
+       break;
+ 
+       /* Insertions that are no-ops in info, but do something in TeX. */
+     case ifclear:
+     case ifdocbook:
+     case ifhtml:
+     case ifinfo:
+     case ifnotdocbook:
+     case ifnothtml:
+     case ifnotinfo:
+     case ifnotplaintext:
+     case ifnottex:
+     case ifnotxml:
+     case ifplaintext:
+     case ifset:
+     case iftex:
+     case ifxml:
+     case rawtex:
+       if (in_menu)
+         no_discard++;
+       break;
+ 
+     case rawdocbook:
+     case rawhtml:
+     case rawxml:
+       raw_output_block++;
+ 
+       if (raw_output_block > 0)
+         {
+           xml_no_para = 1;
+           escape_html = 0;
+           xml_keep_space++;
+         }
+ 
+       {
+         /* Some deuglification for improved readability.  */
+         extern int xml_in_para;
+         if (xml && !xml_in_para && xml_indentation_increment > 0)
+           add_char ('\n');
+       }
+ 
+       break;
+ 
+     case defcv:
+     case deffn:
+     case defivar:
+     case defmac:
+     case defmethod:
+     case defop:
+     case defopt:
+     case defspec:
+     case deftp:
+     case deftypecv:
+     case deftypefn:
+     case deftypefun:
+     case deftypeivar:
+     case deftypemethod:
+     case deftypeop:
+     case deftypevar:
+     case deftypevr:
+     case defun:
+     case defvar:
+     case defvr:
+       inhibit_paragraph_indentation = 1;
+       filling_enabled = indented_fill = 1;
+       current_indent += default_indentation_increment;
+       no_indent = 0;
+       if (xml)
+ 	xml_begin_definition ();
+       break;
+ 
+     case flushleft:
+       close_single_paragraph ();
+       inhibit_paragraph_indentation = 1;
+       filling_enabled = indented_fill = no_indent = 0;
+       if (html)
+         add_html_block_elt ("<div align=\"left\">");
+       break;
+ 
+     case flushright:
+       close_single_paragraph ();
+       filling_enabled = indented_fill = no_indent = 0;
+       inhibit_paragraph_indentation = 1;
+       force_flush_right++;
+       if (html)
+         add_html_block_elt ("<div align=\"right\">");
+       break;
+ 
+     case titlepage:
+       xml_insert_element (TITLEPAGE, START);
+       break;
+ 
+     default:
+       line_error ("begin_insertion internal error: type=%d", type);
+     }
+ 
+   if (!no_discard)
+     discard_until ("\n");
+ }
+ 
+ /* Try to end the insertion with the specified TYPE.  With a value of
+    `bad_type', TYPE gets translated to match the value currently on top
+    of the stack.  Otherwise, if TYPE doesn't match the top of the
+    insertion stack, give error. */
+ static void
+ end_insertion (enum insertion_type type)
+ {
+   enum insertion_type temp_type;
+ 
+   if (!insertion_level)
+     return;
+ 
+   temp_type = current_insertion_type ();
+ 
+   if (type == bad_type)
+     type = temp_type;
+ 
+   if (type != temp_type)
+     {
+       line_error
+         (_("`@end' expected `%s', but saw `%s'"),
+          insertion_type_pname (temp_type), insertion_type_pname (type));
+       return;
+     }
+ 
+   pop_insertion ();
+ 
+   if (xml)
+     {
+       switch (type)
+         {
+         case ifinfo:
+         case documentdescription:       
+           break;
+         case quotation:
+           xml_insert_quotation ("", END);
+           break;
+         case example:
+           xml_insert_element (EXAMPLE, END);
+           if (docbook && current_insertion_type () == floatenv)
+             xml_insert_element (FLOATEXAMPLE, END);
+           break;
+         case smallexample:
+           xml_insert_element (SMALLEXAMPLE, END);
+           if (docbook && current_insertion_type () == floatenv)
+             xml_insert_element (FLOATEXAMPLE, END);
+           break;
+         case lisp:
+           xml_insert_element (LISP, END);
+           if (docbook && current_insertion_type () == floatenv)
+             xml_insert_element (FLOATEXAMPLE, END);
+           break;
+         case smalllisp:
+           xml_insert_element (SMALLLISP, END);
+           if (docbook && current_insertion_type () == floatenv)
+             xml_insert_element (FLOATEXAMPLE, END);
+           break;
+         case cartouche:
+           xml_insert_element (CARTOUCHE, END);
+           break;
+         case format:
+ 	  if (docbook && xml_in_bookinfo && xml_in_abstract)
+ 	    {
+ 	      xml_insert_element (ABSTRACT, END);
+ 	      xml_in_abstract = 0;
+ 	    }
+ 	  else
+ 	    xml_insert_element (FORMAT, END);
+           break;
+         case smallformat:
+           xml_insert_element (SMALLFORMAT, END);
+           break;
+         case display:
+           xml_insert_element (DISPLAY, END);
+           break;
+         case smalldisplay:
+           xml_insert_element (SMALLDISPLAY, END);
+           break;
+         case table:
+         case ftable:
+         case vtable:      
+         case itemize:
+           xml_end_table (type);
+           break;
+         case enumerate:
+           xml_end_enumerate ();
+           break;
+         case group:
+           xml_insert_element (GROUP, END);
+           break;
+ 	case titlepage:
+ 	  xml_insert_element (TITLEPAGE, END);
+ 	  break;
+         }
+     }
+   switch (type)
+     {
+       /* Insertions which have no effect on paragraph formatting. */
+     case copying:
+       line_number--;
+       break;
+ 
+     case ifclear:
+     case ifdocbook:
+     case ifinfo:
+     case ifhtml:
+     case ifnotdocbook:
+     case ifnothtml:
+     case ifnotinfo:
+     case ifnotplaintext:
+     case ifnottex:
+     case ifnotxml:
+     case ifplaintext:
+     case ifset:
+     case iftex:
+     case ifxml:
+     case rawtex:
+     case titlepage:
+       break;
+ 
+     case rawdocbook:
+     case rawhtml:
+     case rawxml:
+       raw_output_block--;
+ 
+       if (raw_output_block <= 0)
+         {
+           xml_no_para = 0;
+           escape_html = 1;
+           xml_keep_space--;
+         }
+ 
+       if ((xml || html)
+ 	  && output_paragraph_offset > 0
+ 	  && output_paragraph[output_paragraph_offset-1] == '\n')
+         output_paragraph_offset--;
+       break;
+ 
+     case detailmenu:
+       if (xml)
+         xml_insert_element (DETAILMENU, END);
+ 
+       in_detailmenu--;          /* No longer hacking menus. */
+       if (!in_menu)
+         {
+           if (!no_headers)
+             close_insertion_paragraph ();
+         }
+       break;
+ 
+     case direntry:              /* Eaten if html. */
+       insert_string ("END-INFO-DIR-ENTRY\n\n");
+       close_insertion_paragraph ();
+       break;
+ 
+     case documentdescription:
+       if (xml)
+         insert_string (document_description);
+         xml_insert_element (DOCUMENTDESCRIPTION, END);
+       break;
+       
+     case menu:
+       in_menu--;                /* No longer hacking menus. */
+       if (html && !no_headers)
+         add_html_block_elt ("</ul>\n");
+       else if (!no_headers && !xml)
+         close_insertion_paragraph ();
+       break;
+ 
+     case multitable:
+       end_multitable ();
+       break;
+ 
+     case enumerate:
+       stop_enumerating ();
+       close_insertion_paragraph ();
+       current_indent -= default_indentation_increment;
+       if (html)
+         add_html_block_elt ("</ol>\n");
+       break;
+ 
+     case flushleft:
+       if (html)
+         add_html_block_elt ("</div>\n");
+       close_insertion_paragraph ();
+       break;
+ 
+     case cartouche:
+       if (html)
+ 	add_html_block_elt ("</td></tr></table>\n");
+       close_insertion_paragraph ();
+       break;
+ 
+     case group:
+       if (!xml || docbook)
+         close_insertion_paragraph ();
+       break;
+ 
+     case floatenv:
+       if (xml)
+         xml_insert_element (FLOAT, END);
+       else
+         {
+           if (html)
+             add_html_block_elt ("<p><strong class=\"float-caption\">");
+           else
+             close_paragraph ();
+ 
+           no_indent = 1;
+ 
+           /* Legend:
+                1) @float Foo,lbl & no caption:    Foo 1.1
+                2) @float Foo & no caption:        Foo
+                3) @float ,lbl & no caption:       1.1
+                4) @float & no caption:                    */
+ 
+           if (!xml && !html)
+             indent (current_indent);
+ 
+           if (strlen (current_float_type ()))
+             execute_string ("%s", current_float_type ());
+ 
+           if (strlen (current_float_id ()) > 0)
+             {
+               if (strlen (current_float_type ()) > 0)
+                 add_char (' ');
+ 
+               add_word (current_float_number ());
+             }
+ 
+           if (strlen (current_float_title ()) > 0)
+             {
+               if (strlen (current_float_type ()) > 0
+                   || strlen (current_float_id ()) > 0)
+                 insert_string (": ");
+ 
+               execute_string ("%s", current_float_title ());
+             }
+ 
+           /* Indent the following paragraph. */
+           inhibit_paragraph_indentation = 0;
+ 
+           if (html)
+             add_word ("</strong></p></div>\n");
+           else
+             close_paragraph ();
+         }
+       float_active--;
+       break;
+ 
+     case format:
+     case smallformat:
+     case display:
+     case smalldisplay:
+     case example:
+     case smallexample:
+     case lisp:
+     case smalllisp:
+     case quotation:
+       /* @format and @smallformat are the only fixed_width insertion
+          without a change in indentation. */
+       if (type != format && type != smallformat && type != quotation)
+         current_indent -= example_indentation_increment;
+       else if (type == quotation && !html)
+         current_indent -= default_indentation_increment;
+ 
+       if (html)
+         { /* The complex code in close_paragraph that kills whitespace
+              does not function here, since we've inserted non-whitespace
+              (the </whatever>) before it.  The indentation already got
+              inserted at the end of the last example line, so we have to
+              delete it, or browsers wind up showing an extra blank line.
+              Furthermore, if we're inside indented environments, we
+              might have arbitrarily much indentation, so remove it all.  */
+           kill_self_indent (-1);
+           add_html_block_elt (type == quotation
+               ? "</blockquote>\n" : "</pre>\n");
+         }
+ 
+       /* The ending of one of these insertions always marks the
+          start of a new paragraph, except for the XML output. */
+       if (!xml || docbook)
+         close_insertion_paragraph ();
+ 
+       /* </pre> closes paragraph without messing with </p>.  */
+       if (html && type != quotation)
+           paragraph_is_open = 0;
+       break;
+ 
+     case table:
+     case ftable:
+     case vtable:
+       current_indent -= default_indentation_increment;
+       if (html)
+         add_html_block_elt ("</dl>\n");
+       close_insertion_paragraph ();
+       break;
+ 
+     case itemize:
+       current_indent -= default_indentation_increment;
+       if (html)
+         add_html_block_elt ("</ul>\n");
+       close_insertion_paragraph ();
+       break;
+ 
+     case flushright:
+       force_flush_right--;
+       if (html)
+         add_html_block_elt ("</div>\n");
+       close_insertion_paragraph ();
+       break;
+ 
+     /* Handle the @defun insertions with this default clause. */
+     default:
+       {
+         int base_type;
+ 
+         if (type < defcv || type > defvr)
+           line_error ("end_insertion internal error: type=%d", type);
+   
+         base_type = get_base_type (type);
+         switch (base_type)
+           {
+           case deffn:
+           case defvr:
+           case deftp:
+           case deftypecv:
+           case deftypefn:
+           case deftypevr:
+           case defcv:
+           case defop:
+           case deftypemethod:
+           case deftypeop:
+           case deftypeivar:
+             if (html)
+               {
+                 if (paragraph_is_open)
+                   add_html_block_elt ("</p>");
+                 /* close the div and blockquote which has been opened in defun.c */
+                 if (!rollback_empty_tag ("blockquote"))
+                   add_html_block_elt ("</blockquote>");
+                 add_html_block_elt ("</div>\n");
+               }
+ 	    if (xml)
+ 	      xml_end_definition ();
+             break;
+           } /* switch (base_type)... */
+   
+         current_indent -= default_indentation_increment;
+         close_insertion_paragraph ();
+       }
+       break;
+       
+     }
+ 
+   if (current_indent < 0)
+     line_error ("end_insertion internal error: current indent=%d",
+                 current_indent);
+ }
+ 
+ /* Insertions cannot cross certain boundaries, such as node beginnings.  In
+    code that creates such boundaries, you should call `discard_insertions'
+    before doing anything else.  It prints the errors for you, and cleans up
+    the insertion stack.
+ 
+    With nonzero SPECIALS_OK argument, allows unmatched
+    @if... conditionals, otherwise not.  This is because conditionals can
+    cross node boundaries.  Always happens with the @top node, for example.  */
+ void
+ discard_insertions (int specials_ok)
+ {
+   int real_line_number = line_number;
+   while (insertion_stack)
+     {
+       if (specials_ok
+           && ((ifclear <= insertion_stack->insertion
+                && insertion_stack->insertion <= iftex)
+               || insertion_stack->insertion == rawdocbook
+               || insertion_stack->insertion == rawhtml
+               || insertion_stack->insertion == rawxml
+               || insertion_stack->insertion == rawtex))
+         break;
+       else
+         {
+           const char *offender = insertion_type_pname (insertion_stack->insertion);
+ 
+           file_line_error (insertion_stack->filename,
+                            insertion_stack->line_number,
+                            _("No matching `%cend %s'"), COMMAND_PREFIX,
+                            offender);
+           pop_insertion ();
+         }
+     }
+   line_number = real_line_number;
+ }
+ 
+ /* Insertion (environment) commands.  */
+ 
+ void
+ cm_quotation (void)
+ {
+   /* We start the blockquote element in the insertion.  */
+   begin_insertion (quotation);
+ }
+ 
+ void
+ cm_example (void)
+ {
+   if (docbook && current_insertion_type () == floatenv)
+     xml_begin_docbook_float (FLOATEXAMPLE);
+ 
+   if (xml)
+     {
+       /* Rollback previous newlines.  These occur between
+          </para> and <example>.  */
+       if (output_paragraph_offset > 0
+ 	  && output_paragraph[output_paragraph_offset-1] == '\n')
+         output_paragraph_offset--;
+ 
+       xml_insert_element (EXAMPLE, START);
+ 
+       /* Make sure example text is starting on a new line
+          for improved readability.  */
+       if (docbook)
+         add_char ('\n');
+     }
+ 
+   begin_insertion (example);
+ }
+ 
+ void
+ cm_smallexample (void)
+ {
+   if (docbook && current_insertion_type () == floatenv)
+     xml_begin_docbook_float (FLOATEXAMPLE);
+ 
+   if (xml)
+     {
+       /* See cm_example comments about newlines.  */
+       if (output_paragraph_offset > 0
+ 	  && output_paragraph[output_paragraph_offset-1] == '\n')
+         output_paragraph_offset--;
+       xml_insert_element (SMALLEXAMPLE, START);
+       if (docbook)
+         add_char ('\n');
+     }
+ 
+   begin_insertion (smallexample);
+ }
+ 
+ void
+ cm_lisp (void)
+ {
+   if (docbook && current_insertion_type () == floatenv)
+     xml_begin_docbook_float (FLOATEXAMPLE);
+ 
+   if (xml)
+     {
+       /* See cm_example comments about newlines.  */
+       if (output_paragraph_offset > 0
+ 	  && output_paragraph[output_paragraph_offset-1] == '\n')
+         output_paragraph_offset--;
+       xml_insert_element (LISP, START);
+       if (docbook)
+         add_char ('\n');
+     }
+ 
+   begin_insertion (lisp);
+ }
+ 
+ void
+ cm_smalllisp (void)
+ {
+   if (docbook && current_insertion_type () == floatenv)
+     xml_begin_docbook_float (FLOATEXAMPLE);
+ 
+   if (xml)
+     {
+       /* See cm_example comments about newlines.  */
+       if (output_paragraph_offset > 0
+ 	  && output_paragraph[output_paragraph_offset-1] == '\n')
+         output_paragraph_offset--;
+       xml_insert_element (SMALLLISP, START);
+       if (docbook)
+         add_char ('\n');
+     }
+ 
+   begin_insertion (smalllisp);
+ }
+ 
+ void
+ cm_cartouche (void)
+ {
+   if (docbook && current_insertion_type () == floatenv)
+     xml_begin_docbook_float (CARTOUCHE);
+ 
+   if (xml)
+     xml_insert_element (CARTOUCHE, START);
+   begin_insertion (cartouche);
+ }
+ 
+ void
+ cm_copying (void)
+ {
+   begin_insertion (copying);
+ }
+ 
+ /* Not an insertion, despite the name, but it goes with cm_copying.  */
+ void
+ cm_insert_copying (void)
+ {
+   if (!copying_text)
+     {
+       warning ("@copying not used before %s", command);
+       return;
+     }
+ 
+   /* It is desirable that @copying is set early in the input file.  For
+      Info output, we write the copying text out right away, and thus it
+      may well be the first thing in the output, and we want the file
+      header first.  The special case in add_char has to check for
+      executing_string, so it won't be effective.  Thus, do it explicitly.  */
+   output_head ();
+   execute_string ("%s", copying_text);
+ 
+   if (!xml && !html)
+     {
+       add_word ("\n\n");
+       /* Update output_position so that the node positions in the tag
+          tables will take account of the copying text.  */
+       flush_output ();
+     }
+ }
+ 
+ void
+ cm_format (void)
+ {
+   if (xml)
+     {
+       if (docbook && xml_in_bookinfo)
+ 	{
+ 	  xml_insert_element (ABSTRACT, START);
+ 	  xml_in_abstract = 1;
+ 	}
+       else
+         {
+           /* See cm_example comments about newlines.  */
+           if (output_paragraph_offset > 0
+ 	      && output_paragraph[output_paragraph_offset-1] == '\n')
+             output_paragraph_offset--;
+           xml_insert_element (FORMAT, START);
+           if (docbook)
+             add_char ('\n');
+         }
+     }
+   begin_insertion (format);
+ }
+ 
+ void
+ cm_smallformat (void)
+ {
+   if (xml)
+     {
+       /* See cm_example comments about newlines.  */
+       if (output_paragraph_offset > 0
+ 	  && output_paragraph[output_paragraph_offset-1] == '\n')
+         output_paragraph_offset--;
+       xml_insert_element (SMALLFORMAT, START);
+       if (docbook)
+         add_char ('\n');
+     }
+ 
+   begin_insertion (smallformat);
+ }
+ 
+ void
+ cm_display (void)
+ {
+   if (xml)
+     {
+       /* See cm_example comments about newlines.  */
+       if (output_paragraph_offset > 0
+ 	  && output_paragraph[output_paragraph_offset-1] == '\n')
+         output_paragraph_offset--;
+       xml_insert_element (DISPLAY, START);
+       if (docbook)
+         add_char ('\n');
+     }
+ 
+   begin_insertion (display);
+ }
+ 
+ void
+ cm_smalldisplay (void)
+ {
+   if (xml)
+     {
+       /* See cm_example comments about newlines.  */
+       if (output_paragraph_offset > 0
+ 	  && output_paragraph[output_paragraph_offset-1] == '\n')
+         output_paragraph_offset--;
+       xml_insert_element (SMALLDISPLAY, START);
+       if (docbook)
+         add_char ('\n');
+     }
+ 
+   begin_insertion (smalldisplay);
+ }
+ 
+ void
+ cm_direntry (void)
+ {
+   if (html || xml || no_headers)
+     command_name_condition ();
+   else
+     begin_insertion (direntry);
+ }
+ 
+ void
+ cm_documentdescription (void)
+ {
+   if (html)
+     begin_insertion (documentdescription);
+ 
+   else if (xml)
+     {
+       xml_insert_element (DOCUMENTDESCRIPTION, START);
+       begin_insertion (documentdescription);
+     }
+ 
+   else
+     command_name_condition ();
+ }
+ 
+ 
+ void
+ cm_itemize (void)
+ {
+   begin_insertion (itemize);
+ }
+ 
+ /* Start an enumeration insertion of type TYPE.  If the user supplied
+    no argument on the line, then use DEFAULT_STRING as the initial string. */
+ static void
+ do_enumeration (enum insertion_type type, char *default_string)
+ {
+   get_until_in_line (0, ".", &enumeration_arg);
+   canon_white (enumeration_arg);
+ 
+   if (!*enumeration_arg)
+     {
+       free (enumeration_arg);
+       enumeration_arg = xstrdup (default_string);
+     }
+ 
+   if (!isdigit (*enumeration_arg) && !isletter (*enumeration_arg))
+     {
+       warning (_("%s requires letter or digit"), insertion_type_pname (type));
+ 
+       switch (type)
+         {
+         case enumerate:
+           default_string = "1";
+           break;
+         }
+       enumeration_arg = xstrdup (default_string);
+     }
+   begin_insertion (type);
+ }
+ 
+ void
+ cm_enumerate (void)
+ {
+   do_enumeration (enumerate, "1");
+ }
+ 
+ 
+ 
+ /* Handle verbatim environment:
+     find_end_verbatim == 0:  process until end of file
+     find_end_verbatim != 0:  process until 'COMMAND_PREFIXend verbatim'
+                              or end of file
+ 
+    No indentation is inserted: this is verbatim after all.
+    If you want indentation, enclose @verbatim in @example.
+ 
+    Thus, we cannot simply copy the input to the output, since the
+    verbatim environment may be encapsulated in an @example environment,
+    for example. */
+ 
+ void
+ handle_verbatim_environment (int find_end_verbatim)
+ {
+   int character;
+   int seen_end = 0;
+   int save_filling_enabled = filling_enabled;
+   int save_inhibit_paragraph_indentation = inhibit_paragraph_indentation;
+ 
+   if (!insertion_stack)
+     close_single_paragraph (); /* no blank lines if not at outer level */
+   inhibit_paragraph_indentation = 1;
+   filling_enabled = 0;
+   in_fixed_width_font++;
+   last_char_was_newline = 0;
+ 
+   if (html)
+     { /* If inside @example, we'll be preceded by the indentation
+          already.  Browsers will ignore those spaces because we're about
+          to start another <pre> (don't ask me).  So, wipe them out for
+          cleanliness, and re-insert.  */
+       int i;
+       kill_self_indent (default_indentation_increment);
+       add_html_block_elt ("<pre class=\"verbatim\">");
+       for (i = current_indent; i > 0; i--)
+         add_char (' ');
+     }
+   else if (xml)
+     {
+       xml_insert_element (VERBATIM, START);
+     }
+ 
+   if (find_end_verbatim)
+     { /* Ignore the remainder of the @verbatim line.  */
+       char *junk;
+       get_rest_of_line (0, &junk);
+       free (junk);
+     }
+   
+   while (input_text_offset < input_text_length)
+     {
+       character = curchar ();
+ 
+       if (character == '\n')
+         line_number++;
+ 
+       /* Assume no newlines in END_VERBATIM. */
+       else if (find_end_verbatim && (character == COMMAND_PREFIX) /* @ */
+           && (input_text_length - input_text_offset > sizeof (END_VERBATIM))
+           && !strncmp (&input_text[input_text_offset+1], END_VERBATIM,
+                        sizeof (END_VERBATIM)-1))
+         {
+           input_text_offset += sizeof (END_VERBATIM);
+           seen_end = 1;
+           break;
+         }
+ 
+       if (html && character == '&' && escape_html)
+         add_word ("&amp;");
+       else if (html && character == '<' && escape_html)
+         add_word ("&lt;");
+       else
+         add_char (character);
+ 
+       input_text_offset++;
+     }
+ 
+   if (find_end_verbatim && !seen_end)
+     warning (_("end of file inside verbatim block"));
+ 
+   if (html)
+     { /* See comments in example case above.  */
+       kill_self_indent (default_indentation_increment);
+       add_word ("</pre>");
+     }
+   else if (xml)
+     {
+       xml_insert_element (VERBATIM, END);
+     }
+   
+   in_fixed_width_font--;
+   filling_enabled = save_filling_enabled;
+   inhibit_paragraph_indentation = save_inhibit_paragraph_indentation;
+ }
+ 
+ void
+ cm_verbatim (void)
+ {
+   handle_verbatim_environment (1);
+ }
+ 
+ void
+ cm_table (void)
+ {
+   begin_insertion (table);
+ }
+ 
+ void
+ cm_multitable (void)
+ {
+   begin_insertion (multitable); /* @@ */
+ }
+ 
+ void
+ cm_ftable (void)
+ {
+   begin_insertion (ftable);
+ }
+ 
+ void
+ cm_vtable (void)
+ {
+   begin_insertion (vtable);
+ }
+ 
+ void
+ cm_group (void)
+ {
+   begin_insertion (group);
+ }
+ 
+ /* Insert raw HTML (no escaping of `<' etc.). */
+ void
+ cm_html (int arg)
+ {
+   if (process_html)
+     begin_insertion (rawhtml);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_xml (int arg)
+ {
+   if (process_xml)
+     begin_insertion (rawxml);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_docbook (int arg)
+ {
+   if (process_docbook)
+     begin_insertion (rawdocbook);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_ifdocbook (void)
+ {
+   if (process_docbook)
+     begin_insertion (ifdocbook);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_ifnotdocbook (void)
+ {
+   if (!process_docbook)
+     begin_insertion (ifnotdocbook);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_ifhtml (void)
+ {
+   if (process_html)
+     begin_insertion (ifhtml);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_ifnothtml (void)
+ {
+   if (!process_html)
+     begin_insertion (ifnothtml);
+   else
+     command_name_condition ();
+ }
+ 
+ 
+ void
+ cm_ifinfo (void)
+ {
+   if (process_info)
+     begin_insertion (ifinfo);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_ifnotinfo (void)
+ {
+   if (!process_info)
+     begin_insertion (ifnotinfo);
+   else
+     command_name_condition ();
+ }
+ 
+ 
+ void
+ cm_ifplaintext (void)
+ {
+   if (process_plaintext)
+     begin_insertion (ifplaintext);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_ifnotplaintext (void)
+ {
+   if (!process_plaintext)
+     begin_insertion (ifnotplaintext);
+   else
+     command_name_condition ();
+ }
+ 
+ 
+ void
+ cm_tex (void)
+ {
+   if (process_tex)
+     begin_insertion (rawtex);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_iftex (void)
+ {
+   if (process_tex)
+     begin_insertion (iftex);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_ifnottex (void)
+ {
+   if (!process_tex)
+     begin_insertion (ifnottex);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_ifxml (void)
+ {
+   if (process_xml)
+     begin_insertion (ifxml);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_ifnotxml (void)
+ {
+   if (!process_xml)
+     begin_insertion (ifnotxml);
+   else
+     command_name_condition ();
+ }
+ 
+ 
+ /* Generic xrefable block with a caption.  */
+ void
+ cm_float (void)
+ {
+   begin_insertion (floatenv);
+ }
+ 
+ void
+ cm_caption (int arg)
+ {
+   char *temp;
+ 
+   /* This is a no_op command for most formats, as we handle it during @float
+      insertion.  For XML though, we handle it here to keep document structure
+      as close as possible, to the Texinfo source.  */
+ 
+   /* Everything is already handled at START.  */
+   if (arg == END)
+     return;
+ 
+   /* Check if it's mislocated.  */
+   if (current_insertion_type () != floatenv)
+     line_error (_("@%s not meaningful outside `@float' environment"), command);
+ 
+   get_until_in_braces ("\n@end float", &temp);
+ 
+   if (xml)
+     {
+       int elt = STREQ (command, "shortcaption") ? SHORTCAPTION : CAPTION;
+       xml_insert_element (elt, START);
+       if (!docbook)
+         execute_string ("%s", temp);
+       xml_insert_element (elt, END);
+     }
+ 
+   free (temp);
+ }
+ 
+ /* Begin an insertion where the lines are not filled or indented. */
+ void
+ cm_flushleft (void)
+ {
+   begin_insertion (flushleft);
+ }
+ 
+ /* Begin an insertion where the lines are not filled, and each line is
+    forced to the right-hand side of the page. */
+ void
+ cm_flushright (void)
+ {
+   begin_insertion (flushright);
+ }
+ 
+ void
+ cm_menu (void)
+ {
+   if (current_node == NULL && !macro_expansion_output_stream)
+     {
+       warning (_("@menu seen before first @node, creating `Top' node"));
+       warning (_("perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"));
+       /* Include @top command so we can construct the implicit node tree.  */
+       execute_string ("@node top\n@top Top\n");
+     }
+   begin_insertion (menu);
+ }
+ 
+ void
+ cm_detailmenu (void)
+ {
+   if (current_node == NULL && !macro_expansion_output_stream)
+     { /* Problems anyway, @detailmenu should always be inside @menu.  */
+       warning (_("@detailmenu seen before first node, creating `Top' node"));
+       execute_string ("@node top\n@top Top\n");
+     }
+   begin_insertion (detailmenu);
+ }
+ 
+ /* Title page commands. */
+ 
+ void
+ cm_titlepage (void)
+ {
+   titlepage_cmd_present = 1;
+   if (xml && !docbook)
+     begin_insertion (titlepage);
+   else
+     command_name_condition ();
+ }
+ 
+ void
+ cm_author (void)
+ {
+   char *rest;
+   get_rest_of_line (1, &rest);
+ 
+   if (is_in_insertion_of_type (quotation))
+     {
+       if (html)
+         add_word_args ("&mdash; %s", rest);
+       else if (docbook)
+         {
+           /* FIXME Ideally, we should use an attribution element,
+              but they are supposed to be at the start of quotation
+              blocks.  So to avoid looking ahead mess, let's just
+              use mdash like HTML for now.  */
+           xml_insert_entity ("mdash");
+           add_word (rest);
+         }
+       else if (xml)
+         {
+           xml_insert_element (AUTHOR, START);
+           add_word (rest);
+           xml_insert_element (AUTHOR, END);
+         }
+       else
+         add_word_args ("-- %s", rest);
+     }
+   else if (is_in_insertion_of_type (titlepage))
+     {
+       if (xml && !docbook)
+         {
+           xml_insert_element (AUTHOR, START);
+           add_word (rest);
+           xml_insert_element (AUTHOR, END);
+         }
+     }
+   else
+     line_error (_("@%s not meaningful outside `@titlepage' and `@quotation' environments"),
+         command);
+ 
+   free (rest);
+ }
+ 
+ void
+ cm_titlepage_cmds (void)
+ {
+   char *rest;
+ 
+   get_rest_of_line (1, &rest);
+ 
+   if (!is_in_insertion_of_type (titlepage))
+     line_error (_("@%s not meaningful outside `@titlepage' environment"),
+         command);
+ 
+   if (xml && !docbook)
+     {
+       int elt = 0;
+ 
+       if (STREQ (command, "title"))
+         elt = BOOKTITLE;
+       else if (STREQ (command, "subtitle"))
+         elt = BOOKSUBTITLE;
+ 
+       xml_insert_element (elt, START);
+       add_word (rest);
+       xml_insert_element (elt, END);
+     }
+ 
+     free (rest);
+ }
+ 
+ /* End existing insertion block. */
+ void
+ cm_end (void)
+ {
+   char *temp;
+   enum insertion_type type;
+ 
+   get_rest_of_line (0, &temp);
+ 
+   if (!insertion_level)
+     {
+       line_error (_("Unmatched `%c%s'"), COMMAND_PREFIX, command);
+       return;
+     }
+ 
+   if (temp[0] == 0)
+     line_error (_("`%c%s' needs something after it"), COMMAND_PREFIX, command);
+ 
+   type = find_type_from_name (temp);
+ 
+   if (type == bad_type)
+     {
+       line_error (_("Bad argument `%s' to `@%s', using `%s'"),
+            temp, command, insertion_type_pname (current_insertion_type ()));
+     }
+   if (xml && type == menu) /* fixme */
+     {
+       xml_end_menu ();
+     }
+   end_insertion (type);
+   free (temp);
+ }
+ 
+ /* @itemx, @item. */
+ 
+ static int itemx_flag = 0;
+ 
+ /* Return whether CMD takes a brace-delimited {arg}.  */
+ int
+ command_needs_braces (char *cmd)
+ {
+   int i;
+   for (i = 0; command_table[i].name; i++)
+     {
+       if (STREQ (command_table[i].name, cmd))
+         return command_table[i].argument_in_braces == BRACE_ARGS;
+     }
+ 
+   return 0; /* macro or alias */
+ }
+ 
+ 
+ void
+ cm_item (void)
+ {
+   char *rest_of_line, *item_func;
+ 
+   /* Can only hack "@item" while inside of an insertion. */
+   if (insertion_level)
+     {
+       INSERTION_ELT *stack = insertion_stack;
+       int original_input_text_offset;
+ 
+       skip_whitespace ();
+       original_input_text_offset = input_text_offset;
+ 
+       get_rest_of_line (0, &rest_of_line);
+       item_func = current_item_function ();
+ 
+     /* Do the right thing depending on which insertion function is active. */
+     switch_top:
+       switch (stack->insertion)
+         {
+         case multitable:
+           multitable_item ();
+           /* Support text directly after the @item.  */
+           if (*rest_of_line)
+             {
+               line_number--;
+               input_text_offset = original_input_text_offset;
+             }
+           break;
+ 
+         case ifclear:
+         case ifhtml:
+         case ifinfo:
+         case ifnothtml:
+         case ifnotinfo:
+         case ifnotplaintext:
+         case ifnottex:
+ 	case ifnotxml:
+         case ifplaintext:
+         case ifset:
+         case iftex:
+ 	case ifxml:
+         case rawdocbook:
+         case rawhtml:
+         case rawxml:
+         case rawtex:
+         case tex:
+         case cartouche:
+           stack = stack->next;
+           if (!stack)
+             goto no_insertion;
+           else
+             goto switch_top;
+           break;
+ 
+         case menu:
+         case quotation:
+         case example:
+         case smallexample:
+         case lisp:
+         case smalllisp:
+         case format:
+         case smallformat:
+         case display:
+         case smalldisplay:
+         case group:
+           line_error (_("@%s not meaningful inside `@%s' block"),
+                       command,
+                       insertion_type_pname (current_insertion_type ()));
+           break;
+ 
+         case itemize:
+         case enumerate:
+           if (itemx_flag)
+             {
+               line_error (_("@itemx not meaningful inside `%s' block"),
+                           insertion_type_pname (current_insertion_type ()));
+             }
+           else
+             {
+               if (html)
+                 add_html_block_elt ("<li>");
+               else if (xml)
+                 xml_begin_item ();
+               else
+                 {
+                   start_paragraph ();
+                   kill_self_indent (-1);
+                   filling_enabled = indented_fill = 1;
+ 
+                   if (current_item_function ())
+                     {
+                       indent (current_indent - 2);
+ 
+                       /* The item marker can be given with or without
+                          braces -- @bullet and @bullet{} are both ok.
+                          Or it might be something that doesn't take
+                          braces at all, such as "o" or "#" or "@ ".
+                          Thus, only supply braces if the item marker is
+                          a command, they haven't supplied braces
+                          themselves, and we know it needs them.  */
+                       if (item_func && *item_func)
+                         {
+                           if (*item_func == COMMAND_PREFIX
+                               && item_func[strlen (item_func) - 1] != '}'
+                               && command_needs_braces (item_func + 1))
+                             execute_string ("%s{}", item_func);
+                           else
+                             execute_string ("%s", item_func);
+                         }
+                       insert (' ');
+                     }
+                   else
+                     enumerate_item ();
+ 
+                   /* Special hack.  This makes `close_paragraph' a no-op until
+                      `start_paragraph' has been called. */
+                   must_start_paragraph = 1;
+                 }
+ 
+               /* Handle text directly after the @item.  */
+               if (*rest_of_line)
+                 {
+                   line_number--;
+                   input_text_offset = original_input_text_offset;
+                 }
+             }
+           break;
+ 
+         case table:
+         case ftable:
+         case vtable:
+           if (html)
+             { /* If nothing has been output since the last <dd>,
+                  remove the empty <dd> element.  Some browsers render
+                  an extra empty line for <dd><dt>, which makes @itemx
+                  conversion look ugly.  */
+               rollback_empty_tag ("dd");
+ 
+               /* Force the browser to render one blank line before
+                  each new @item in a table.  But don't do that if
+                  this is the first <dt> after the <dl>, or if we are
+                  converting @itemx.
+ 
+                  Note that there are some browsers which ignore <br>
+                  in this context, but I cannot find any way to force
+                  them all render exactly one blank line.  */
+               if (!itemx_flag && html_deflist_has_term)
+                 add_html_block_elt ("<br>");
+ 
+               /* We are about to insert a <dt>, so this <dl> has a term.
+                  Feel free to insert a <br> next time. :)  */
+               html_deflist_has_term = 1;
+    
+               add_html_block_elt ("<dt>");
+               if (item_func && *item_func)
+                 execute_string ("%s{%s}", item_func, rest_of_line);
+               else
+                 execute_string ("%s", rest_of_line);
+ 
+               if (current_insertion_type () == ftable)
+                 execute_string ("%cfindex %s\n", COMMAND_PREFIX, rest_of_line);
+ 
+               if (current_insertion_type () == vtable)
+                 execute_string ("%cvindex %s\n", COMMAND_PREFIX, rest_of_line);
+ 
+               add_html_block_elt ("<dd>");
+             }
+           else if (xml) /* && docbook)*/ /* 05-08 */
+             {
+               xml_begin_table_item ();
+ 
+               if (!docbook && current_insertion_type () == ftable)
+                 execute_string ("%cfindex %s\n", COMMAND_PREFIX, rest_of_line);
+ 
+               if (!docbook && current_insertion_type () == vtable)
+                 execute_string ("%cvindex %s\n", COMMAND_PREFIX, rest_of_line);
+ 
+               if (item_func && *item_func)
+                 execute_string ("%s{%s}", item_func, rest_of_line);
+               else
+                 execute_string ("%s", rest_of_line);
+               xml_continue_table_item ();
+             }
+           else
+             {
+               /* We need this to determine if we have two @item's in a row
+                  (see test just below).  */
+               static int last_item_output_position = 0;
+ 
+               /* Get rid of extra characters. */
+               kill_self_indent (-1);
+ 
+               /* If we have one @item followed directly by another @item,
+                  we need to insert a blank line.  This is not true for
+                  @itemx, though.  */
+               if (!itemx_flag && last_item_output_position == output_position)
+                 insert ('\n');
+ 
+               /* `close_paragraph' almost does what we want.  The problem
+                  is when paragraph_is_open, and last_char_was_newline, and
+                  the last newline has been turned into a space, because
+                  filling_enabled. I handle it here. */
+               if (last_char_was_newline && filling_enabled &&
+                   paragraph_is_open)
+                 insert ('\n');
+               close_paragraph ();
+ 
+ #if defined (INDENT_PARAGRAPHS_IN_TABLE)
+               /* Indent on a new line, but back up one indentation level. */
+               {
+                 int save = inhibit_paragraph_indentation;
+                 inhibit_paragraph_indentation = 1;
+                 /* At this point, inserting any non-whitespace character will
+                    force the existing indentation to be output. */
+                 add_char ('i');
+                 inhibit_paragraph_indentation = save;
+               }
+ #else /* !INDENT_PARAGRAPHS_IN_TABLE */
+               add_char ('i');
+ #endif /* !INDENT_PARAGRAPHS_IN_TABLE */
+ 
+               output_paragraph_offset--;
+               kill_self_indent (default_indentation_increment + 1);
+ 
+               /* Add item's argument to the line. */
+               filling_enabled = 0;
+               if (item_func && *item_func)
+                 execute_string ("%s{%s}", item_func, rest_of_line);
+               else
+                 execute_string ("%s", rest_of_line);
+ 
+               if (current_insertion_type () == ftable)
+                 execute_string ("%cfindex %s\n", COMMAND_PREFIX, rest_of_line);
+               else if (current_insertion_type () == vtable)
+                 execute_string ("%cvindex %s\n", COMMAND_PREFIX, rest_of_line);
+ 
+               /* Start a new line, and let start_paragraph ()
+                  do the indenting of it for you. */
+               close_single_paragraph ();
+               indented_fill = filling_enabled = 1;
+               last_item_output_position = output_position;
+             }
+         }
+       free (rest_of_line);
+     }
+   else
+     {
+     no_insertion:
+       line_error (_("%c%s found outside of an insertion block"),
+                   COMMAND_PREFIX, command);
+     }
+ }
+ 
+ void
+ cm_itemx (void)
+ {
+   itemx_flag++;
+   cm_item ();
+   itemx_flag--;
+ }
+ 
+ int headitem_flag = 0;
+ 
+ void
+ cm_headitem (void)
+ {
+   headitem_flag = 1;
+   cm_item ();
+ }
diff -Nrc2 texinfo-4.12/makeinfo/insertion.h texinfo-4.13/makeinfo/insertion.h
*** texinfo-4.12/makeinfo/insertion.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/insertion.h	Tue Feb 12 17:00:55 2008
***************
*** 0 ****
--- 1,82 ----
+ /* insertion.h -- declarations for insertion.c.
+    $Id: insertion.h,v 1.15 2008/01/31 18:33:27 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2001, 2002, 2003, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef INSERTION_H
+ #define INSERTION_H
+ 
+ /* Must match list in insertion.c.  */
+ enum insertion_type
+ { 
+   cartouche, copying, defcv, deffn, defivar, defmac, defmethod, defop,
+   defopt, defspec, deftp, deftypecv, deftypefn, deftypefun, deftypeivar,
+   deftypemethod, deftypeop, deftypevar, deftypevr, defun, defvar, defvr,
+   detailmenu, direntry, display, documentdescription, enumerate,
+   example, floatenv, flushleft, flushright, format, ftable, group,
+   ifclear, ifdocbook, ifhtml, ifinfo, ifnotdocbook, ifnothtml, ifnotinfo,
+   ifnotplaintext, ifnottex, ifnotxml, ifplaintext, ifset, iftex, ifxml,
+   itemize, lisp, menu, multitable, quotation, rawdocbook, rawhtml, rawtex,
+   rawxml, smalldisplay, smallexample, smallformat, smalllisp, verbatim,
+   table, tex, vtable, titlepage, bad_type
+ };
+ 
+ extern const char default_item_function[];
+ 
+ typedef struct istack_elt
+ {
+   struct istack_elt *next;
+   char *item_function;
+   char *filename;
+   int line_number;
+   int filling_enabled;
+   int indented_fill;
+   int insertion;
+   int inhibited;
+   int in_fixed_width_font;
+ } INSERTION_ELT;
+ 
+ extern int insertion_level;
+ extern INSERTION_ELT *insertion_stack;
+ extern int in_menu;
+ extern int in_detailmenu;
+ extern int had_menu_commentary;
+ extern int in_paragraph;
+ 
+ extern int headitem_flag;
+ extern int after_headitem;
+ 
+ extern void init_insertion_stack (void);
+ extern void command_name_condition (void);
+ extern void cm_ifdocbook (void), cm_ifnotdocbook(void), cm_docbook (int arg);
+ extern void cm_ifhtml (void), cm_ifnothtml(void), cm_html (int arg);
+ extern void cm_ifinfo (void), cm_ifnotinfo (void);
+ extern void cm_ifplaintext (void), cm_ifnotplaintext(void);
+ extern void cm_iftex (void), cm_ifnottex (void), cm_tex (void);
+ extern void cm_ifxml (void), cm_ifnotxml (void), cm_xml (int arg);
+ extern void handle_verbatim_environment (int find_end_verbatim);
+ extern void begin_insertion (enum insertion_type type);
+ extern void pop_insertion (void);
+ extern void discard_insertions (int specials_ok);
+ 
+ extern int is_in_insertion_of_type (int type);
+ extern int command_needs_braces (char *cmd);
+ 
+ extern enum insertion_type find_type_from_name (char *name);
+ 
+ extern char *get_item_function (void);
+ #endif /* !INSERTION_H */
diff -Nrc2 texinfo-4.12/makeinfo/lang.c texinfo-4.13/makeinfo/lang.c
*** texinfo-4.12/makeinfo/lang.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/lang.c	Tue Dec 25 15:57:20 2007
***************
*** 0 ****
--- 1,1811 ----
+ /* lang.c -- language-dependent support.
+    $Id: lang.c,v 1.34 2007/12/03 01:38:43 karl Exp $
+ 
+    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Karl Heinz Marbaise <kama@hippo.fido.de>.  */
+ 
+ #include "system.h"
+ #include "cmds.h"
+ #include "files.h"
+ #include "lang.h"
+ #include "makeinfo.h"
+ #include "xml.h"
+ 
+ #include <assert.h>
+ 
+ /* Current document encoding.  */
+ encoding_code_type document_encoding_code = no_encoding;
+ 
+ /* Current language code; default is English.  */
+ language_code_type language_code = en;
+ 
+ /* Language to use for translations that end up in the output. */
+ char *document_language = "C";
+ 
+ /* By default, unsupported encoding is an empty string.  */
+ char *unknown_encoding = NULL;
+ 
+ static iso_map_type asis_map [] = {{NULL, 0, 0}}; /* ASCII, etc. */
+ 
+ /* Translation table between HTML and ISO Codes.  The last item is
+    hopefully the Unicode. It might be possible that those Unicodes are
+    not correct, cause I didn't check them. kama */
+ static iso_map_type iso8859_1_map [] = {
+   { "nbsp",   0xA0, 0x00A0 },
+   { "iexcl",  0xA1, 0x00A1 },
+   { "cent",   0xA2, 0x00A2 },
+   { "pound",  0xA3, 0x00A3 },
+   { "curren", 0xA4, 0x00A4 },
+   { "yen",    0xA5, 0x00A5 },
+   { "brkbar", 0xA6, 0x00A6 },
+   { "sect",   0xA7, 0x00A7 },
+   { "uml",    0xA8, 0x00A8 },
+   { "copy",   0xA9, 0x00A9 },
+   { "ordf",   0xAA, 0x00AA },
+   { "laquo",  0xAB, 0x00AB },
+   { "not",    0xAC, 0x00AC },
+   { "shy",    0xAD, 0x00AD },
+   { "reg",    0xAE, 0x00AE },
+   { "hibar",  0xAF, 0x00AF },
+   { "deg",    0xB0, 0x00B0 },
+   { "plusmn", 0xB1, 0x00B1 },
+   { "sup2",   0xB2, 0x00B2 },
+   { "sup3",   0xB3, 0x00B3 },
+   { "acute",  0xB4, 0x00B4 },
+   { "micro",  0xB5, 0x00B5 },
+   { "para",   0xB6, 0x00B6 },
+   { "middot", 0xB7, 0x00B7 },
+   { "cedil",  0xB8, 0x00B8 },
+   { "sup1",   0xB9, 0x00B9 },
+   { "ordm",   0xBA, 0x00BA },
+   { "raquo",  0xBB, 0x00BB },
+   { "frac14", 0xBC, 0x00BC },
+   { "frac12", 0xBD, 0x00BD },
+   { "frac34", 0xBE, 0x00BE },
+   { "iquest", 0xBF, 0x00BF },
+   { "Agrave", 0xC0, 0x00C0, "A" },
+   { "Aacute", 0xC1, 0x00C1, "A" },
+   { "Acirc",  0xC2, 0x00C2, "A" },
+   { "Atilde", 0xC3, 0x00C3, "A" },
+   { "Auml",   0xC4, 0x00C4, "A" },
+   { "Aring",  0xC5, 0x00C5, "AA" },
+   { "AElig",  0xC6, 0x00C6, "AE" },
+   { "Ccedil", 0xC7, 0x00C7, "C" },
+   { "Ccedil", 0xC7, 0x00C7, "C" },
+   { "Egrave", 0xC8, 0x00C8, "E" },
+   { "Eacute", 0xC9, 0x00C9, "E" },
+   { "Ecirc",  0xCA, 0x00CA, "E" },
+   { "Euml",   0xCB, 0x00CB, "E" },
+   { "Igrave", 0xCC, 0x00CC, "I" },
+   { "Iacute", 0xCD, 0x00CD, "I" },
+   { "Icirc",  0xCE, 0x00CE, "I" },
+   { "Iuml",   0xCF, 0x00CF, "I" },
+   { "ETH",    0xD0, 0x00D0, "DH" },
+   { "Ntilde", 0xD1, 0x00D1, "N" },
+   { "Ograve", 0xD2, 0x00D2, "O" },
+   { "Oacute", 0xD3, 0x00D3, "O" },
+   { "Ocirc",  0xD4, 0x00D4, "O" },
+   { "Otilde", 0xD5, 0x00D5, "O" },
+   { "Ouml",   0xD6, 0x00D6, "O" },
+   { "times",  0xD7, 0x00D7 },
+   { "Oslash", 0xD8, 0x00D8, "OE" },
+   { "Ugrave", 0xD9, 0x00D9, "U" },
+   { "Uacute", 0xDA, 0x00DA, "U" },
+   { "Ucirc",  0xDB, 0x00DB, "U" },
+   { "Uuml",   0xDC, 0x00DC, "U" },
+   { "Yacute", 0xDD, 0x00DD, "Y" },
+   { "THORN",  0xDE, 0x00DE, "TH" },
+   { "szlig",  0xDF, 0x00DF, "s" },
+   { "agrave", 0xE0, 0x00E0, "a" },
+   { "aacute", 0xE1, 0x00E1, "a" },
+   { "acirc",  0xE2, 0x00E2, "a" },
+   { "atilde", 0xE3, 0x00E3, "a" },
+   { "auml",   0xE4, 0x00E4, "a" },
+   { "aring",  0xE5, 0x00E5, "aa" },
+   { "aelig",  0xE6, 0x00E6, "ae" },
+   { "ccedil", 0xE7, 0x00E7, "c" },
+   { "egrave", 0xE8, 0x00E8, "e" },
+   { "eacute", 0xE9, 0x00E9, "e" },
+   { "ecirc",  0xEA, 0x00EA, "e" },
+   { "euml",   0xEB, 0x00EB, "e" },
+   { "igrave", 0xEC, 0x00EC, "i" },
+   { "iacute", 0xED, 0x00ED, "i" },
+   { "icirc",  0xEE, 0x00EE, "i" },
+   { "iuml",   0xEF, 0x00EF, "i" },
+   { "eth",    0xF0, 0x00F0, "dh" },
+   { "ntilde", 0xF1, 0x00F1, "n" },
+   { "ograve", 0xF2, 0x00F2, "o"},
+   { "oacute", 0xF3, 0x00F3, "o" },
+   { "ocirc",  0xF4, 0x00F4, "o" },
+   { "otilde", 0xF5, 0x00F5, "o" },
+   { "ouml",   0xF6, 0x00F6, "o" },
+   { "divide", 0xF7, 0x00F7 },
+   { "oslash", 0xF8, 0x00F8, "oe" },
+   { "ugrave", 0xF9, 0x00F9, "u" },
+   { "uacute", 0xFA, 0x00FA, "u" },
+   { "ucirc",  0xFB, 0x00FB, "u" },
+   { "uuml",   0xFC, 0x00FC, "u" },
+   { "yacute", 0xFD, 0x00FD, "y" },
+   { "thorn",  0xFE, 0x00FE, "th" },
+   { "yuml",   0xFF, 0x00FF, "y" },
+   { NULL, 0, 0 }
+ };
+ 
+ 
+ /* ISO 8859-15, also known as Latin 9, differs from Latin 1 in only a
+    few positions.  http://www.cs.tut.fi/~jkorpela/latin9.html has a good
+    explanation and listing, summarized here.  The names here are
+    abbreviated to fit in a decent line length.
+ 
+   code position
+   dec	oct   hex   latin1 latin1 name	      latin9 latin9 name
+ 
+   164  0244  0xA4   U+00A4 currency symbol    U+20AC euro sign
+   166  0246  0xA6   U+00A6 broken bar	      U+0160 S with caron
+   168  0250  0xA8   U+00A8 diaeresis	      U+0161 s with caron
+   180  0264  0xB4   U+00B4 acute accent	      U+017D Z with caron
+   184  0270  0xB8   U+00B8 cedilla	      U+017E z with caron
+   188  0274  0xBC   U+00BC fraction 1/4	      U+0152 ligature OE
+   189  0275  0xBD   U+00BD fraction 1/2	      U+0153 ligature oe
+   190  0276  0xBE   U+00BE fraction 3/4	      U+0178 Y with diaeresis
+ */
+ 
+ static iso_map_type iso8859_15_map [] = {
+   { "nbsp",   0xA0, 0x00A0 },
+   { "iexcl",  0xA1, 0x00A1 },
+   { "cent",   0xA2, 0x00A2 },
+   { "pound",  0xA3, 0x00A3 },
+   { "euro",   0xA4, 0x20AC },
+   { "yen",    0xA5, 0x00A5 },
+   { "Scaron", 0xA6, 0x0160, "S" },
+   { "sect",   0xA7, 0x00A7 },
+   { "scaron", 0xA8, 0x0161, "s" },
+   { "copy",   0xA9, 0x00A9 },
+   { "ordf",   0xAA, 0x00AA },
+   { "laquo",  0xAB, 0x00AB },
+   { "not",    0xAC, 0x00AC },
+   { "shy",    0xAD, 0x00AD },
+   { "reg",    0xAE, 0x00AE },
+   { "hibar",  0xAF, 0x00AF },
+   { "deg",    0xB0, 0x00B0 },
+   { "plusmn", 0xB1, 0x00B1 },
+   { "sup2",   0xB2, 0x00B2 },
+   { "sup3",   0xB3, 0x00B3 },
+   { "Zcaron", 0xB4, 0x017D, "Z" },
+   { "micro",  0xB5, 0x00B5 },
+   { "para",   0xB6, 0x00B6 },
+   { "middot", 0xB7, 0x00B7 },
+   { "zcaron", 0xB8, 0x017E, "z" },
+   { "sup1",   0xB9, 0x00B9 },
+   { "ordm",   0xBA, 0x00BA },
+   { "raquo",  0xBB, 0x00BB },
+   { "OElig",  0xBC, 0x0152, "OE" },
+   { "oelig",  0xBD, 0x0153, "oe" },
+   { "Yuml",   0xBE, 0x0178, "y" },
+   { "iquest", 0xBF, 0x00BF },
+   { "Agrave", 0xC0, 0x00C0, "A" },
+   { "Aacute", 0xC1, 0x00C1, "A" },
+   { "Acirc",  0xC2, 0x00C2, "A" },
+   { "Atilde", 0xC3, 0x00C3, "A" },
+   { "Auml",   0xC4, 0x00C4, "A" },
+   { "Aring",  0xC5, 0x00C5, "AA" },
+   { "AElig",  0xC6, 0x00C6, "AE" },
+   { "Ccedil", 0xC7, 0x00C7, "C" },
+   { "Egrave", 0xC8, 0x00C8, "E" },
+   { "Eacute", 0xC9, 0x00C9, "E" },
+   { "Ecirc",  0xCA, 0x00CA, "E" },
+   { "Euml",   0xCB, 0x00CB, "E" },
+   { "Igrave", 0xCC, 0x00CC, "I" },
+   { "Iacute", 0xCD, 0x00CD, "I" },
+   { "Icirc",  0xCE, 0x00CE, "I" },
+   { "Iuml",   0xCF, 0x00CF, "I" },
+   { "ETH",    0xD0, 0x00D0, "DH" },
+   { "Ntilde", 0xD1, 0x00D1, "N" },
+   { "Ograve", 0xD2, 0x00D2, "O" },
+   { "Oacute", 0xD3, 0x00D3, "O" },
+   { "Ocirc",  0xD4, 0x00D4, "O" },
+   { "Otilde", 0xD5, 0x00D5, "O" },
+   { "Ouml",   0xD6, 0x00D6, "O" },
+   { "times",  0xD7, 0x00D7 },
+   { "Oslash", 0xD8, 0x00D8, "OE" },
+   { "Ugrave", 0xD9, 0x00D9, "U" },
+   { "Uacute", 0xDA, 0x00DA, "U" },
+   { "Ucirc",  0xDB, 0x00DB, "U" },
+   { "Uuml",   0xDC, 0x00DC, "U" },
+   { "Yacute", 0xDD, 0x00DD, "Y" },
+   { "THORN",  0xDE, 0x00DE, "TH" },
+   { "szlig",  0xDF, 0x00DF, "s" },
+   { "agrave", 0xE0, 0x00E0, "a" },
+   { "aacute", 0xE1, 0x00E1, "a" },
+   { "acirc",  0xE2, 0x00E2, "a" },
+   { "atilde", 0xE3, 0x00E3, "a" },
+   { "auml",   0xE4, 0x00E4, "a" },
+   { "aring",  0xE5, 0x00E5, "aa" },
+   { "aelig",  0xE6, 0x00E6, "ae" },
+   { "ccedil", 0xE7, 0x00E7, "c" },
+   { "egrave", 0xE8, 0x00E8, "e" },
+   { "eacute", 0xE9, 0x00E9, "e" },
+   { "ecirc",  0xEA, 0x00EA, "e" },
+   { "euml",   0xEB, 0x00EB, "e" },
+   { "igrave", 0xEC, 0x00EC, "i" },
+   { "iacute", 0xED, 0x00ED, "i" },
+   { "icirc",  0xEE, 0x00EE, "i" },
+   { "iuml",   0xEF, 0x00EF, "i" },
+   { "eth",    0xF0, 0x00F0, "d" },
+   { "ntilde", 0xF1, 0x00F1, "n" },
+   { "ograve", 0xF2, 0x00F2, "o" },
+   { "oacute", 0xF3, 0x00F3, "o" },
+   { "ocirc",  0xF4, 0x00F4, "o" },
+   { "otilde", 0xF5, 0x00F5, "o" },
+   { "ouml",   0xF6, 0x00F6, "o" },
+   { "divide", 0xF7, 0x00F7 },
+   { "oslash", 0xF8, 0x00F8, "oe" },
+   { "ugrave", 0xF9, 0x00F9, "u" },
+   { "uacute", 0xFA, 0x00FA, "u" },
+   { "ucirc",  0xFB, 0x00FB, "u" },
+   { "uuml",   0xFC, 0x00FC, "u" },
+   { "yacute", 0xFD, 0x00FD, "y" },
+   { "thorn",  0xFE, 0x00FE, "th" },
+   { "yuml",   0xFF, 0x00FF, "y" },
+   { NULL, 0, 0 }
+ };
+ 
+ 
+ 
+ /* Date: Mon, 31 Mar 2003 00:19:28 +0200
+    From: Wojciech Polak <polak@gnu.org>
+ ...
+  * Primary Polish site for ogonki is http://www.agh.edu.pl/ogonki/,
+    but it's only in Polish language (it has some interesting links).
+ 
+  * A general site about ISO 8859-2 at http://nl.ijs.si/gnusl/cee/iso8859-2.html
+ 
+  * ISO 8859-2 Character Set at http://nl.ijs.si/gnusl/cee/charset.html
+    This site provides almost all information about iso-8859-2,
+    including the character table!!! (must see!)
+ 
+  * ISO 8859-2 and even HTML entities !!! (must see!)
+    88592.txt in the GNU enscript distribution
+ 
+  * (minor) http://www.agh.edu.pl/ogonki/plchars.html
+    One more table, this time it includes even information about Polish
+    characters in Unicode.
+ */
+ 
+ static iso_map_type iso8859_2_map [] = {
+   { "nbsp",	0xA0, 0x00A0 }, /* NO-BREAK SPACE */
+   { "",	0xA1, 0x0104, "A" }, /* LATIN CAPITAL LETTER A WITH OGONEK */
+   { "",	0xA2, 0x02D8 }, /* BREVE */
+   { "",	0xA3, 0x0141, "L" }, /* LATIN CAPITAL LETTER L WITH STROKE */
+   { "curren",	0xA4, 0x00A4 }, /* CURRENCY SIGN */
+   { "",	0xA5, 0x013D, "L" }, /* LATIN CAPITAL LETTER L WITH CARON */
+   { "",	0xA6, 0x015A, "S" }, /* LATIN CAPITAL LETTER S WITH ACUTE */
+   { "sect",	0xA7, 0x00A7 }, /* SECTION SIGN */
+   { "uml",	0xA8, 0x00A8 }, /* DIAERESIS */
+   { "#xa9",	0xA9, 0x0160, "S" }, /* LATIN CAPITAL LETTER S WITH CARON */
+   { "",	0xAA, 0x015E, "S" }, /* LATIN CAPITAL LETTER S WITH CEDILLA */
+   { "",	0xAB, 0x0164, "T" }, /* LATIN CAPITAL LETTER T WITH CARON */
+   { "",	0xAC, 0x0179, "Z" }, /* LATIN CAPITAL LETTER Z WITH ACUTE */
+   { "shy",	0xAD, 0x00AD }, /* SOFT HYPHEN */
+   { "",	0xAE, 0x017D, "Z" }, /* LATIN CAPITAL LETTER Z WITH CARON */
+   { "",	0xAF, 0x017B, "Z" }, /* LATIN CAPITAL LETTER Z WITH DOT ABOVE */
+   { "deg",	0xB0, 0x00B0 }, /* DEGREE SIGN */
+   { "",	0xB1, 0x0105, "a" }, /* LATIN SMALL LETTER A WITH OGONEK */
+   { "",	0xB2, 0x02DB }, /* OGONEK */
+   { "",	0xB3, 0x0142, "l" }, /* LATIN SMALL LETTER L WITH STROKE */
+   { "acute",	0xB4, 0x00B4 }, /* ACUTE ACCENT */
+   { "",	0xB5, 0x013E, "l" }, /* LATIN SMALL LETTER L WITH CARON */
+   { "",	0xB6, 0x015B, "s" }, /* LATIN SMALL LETTER S WITH ACUTE */
+   { "",	0xB7, 0x02C7 }, /* CARON (Mandarin Chinese third tone) */
+   { "cedil",	0xB8, 0x00B8 }, /* CEDILLA */
+   { "",	0xB9, 0x0161, "s" }, /* LATIN SMALL LETTER S WITH CARON */
+   { "",	0xBA, 0x015F, "s" }, /* LATIN SMALL LETTER S WITH CEDILLA */
+   { "",	0xBB, 0x0165, "t" }, /* LATIN SMALL LETTER T WITH CARON */
+   { "",	0xBC, 0x017A, "z" }, /* LATIN SMALL LETTER Z WITH ACUTE */
+   { "",	0xBD, 0x02DD }, /* DOUBLE ACUTE ACCENT */
+   { "",	0xBE, 0x017E, "z" }, /* LATIN SMALL LETTER Z WITH CARON */
+   { "",	0xBF, 0x017C, "z" }, /* LATIN SMALL LETTER Z WITH DOT ABOVE */
+   { "",	0xC0, 0x0154, "R" }, /* LATIN CAPITAL LETTER R WITH ACUTE */
+   { "Aacute",	0xC1, 0x00C1, "A" }, /* LATIN CAPITAL LETTER A WITH ACUTE */
+   { "Acirc",	0xC2, 0x00C2, "A" }, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
+   { "",	0xC3, 0x0102, "A" }, /* LATIN CAPITAL LETTER A WITH BREVE */
+   { "Auml",	0xC4, 0x00C4, "A" }, /* LATIN CAPITAL LETTER A WITH DIAERESIS */
+   { "",	0xC5, 0x0139, "L" }, /* LATIN CAPITAL LETTER L WITH ACUTE */
+   { "",	0xC6, 0x0106, "C" }, /* LATIN CAPITAL LETTER C WITH ACUTE */
+   { "Ccedil",	0xC7, 0x00C7, "C" }, /* LATIN CAPITAL LETTER C WITH CEDILLA */
+   { "",	0xC8, 0x010C, "C" }, /* LATIN CAPITAL LETTER C WITH CARON */
+   { "Eacute",	0xC9, 0x00C9, "E" }, /* LATIN CAPITAL LETTER E WITH ACUTE */
+   { "",	0xCA, 0x0118, "E" }, /* LATIN CAPITAL LETTER E WITH OGONEK */
+   { "Euml",	0xCB, 0x00CB, "E" }, /* LATIN CAPITAL LETTER E WITH DIAERESIS */
+   { "",	0xCC, 0x011A, "E" }, /* LATIN CAPITAL LETTER E WITH CARON */
+   { "Iacute",	0xCD, 0x00CD, "I" }, /* LATIN CAPITAL LETTER I WITH ACUTE */
+   { "Icirc",	0xCE, 0x00CE, "I" }, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
+   { "",	0xCF, 0x010E, "D" }, /* LATIN CAPITAL LETTER D WITH CARON */
+   { "ETH",	0xD0, 0x0110, "D" }, /* LATIN CAPITAL LETTER D WITH STROKE */
+   { "",	0xD1, 0x0143, "N" }, /* LATIN CAPITAL LETTER N WITH ACUTE */
+   { "",	0xD2, 0x0147, "N" }, /* LATIN CAPITAL LETTER N WITH CARON */
+   { "Oacute",	0xD3, 0x00D3, "O" }, /* LATIN CAPITAL LETTER O WITH ACUTE */
+   { "Ocirc",	0xD4, 0x00D4, "O" }, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
+   { "",	0xD5, 0x0150, "O" }, /* LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */
+   { "Ouml",	0xD6, 0x00D6, "O" }, /* LATIN CAPITAL LETTER O WITH DIAERESIS */
+   { "times",	0xD7, 0x00D7 }, /* MULTIPLICATION SIGN */
+   { "",	0xD8, 0x0158, "R" }, /* LATIN CAPITAL LETTER R WITH CARON */
+   { "",	0xD9, 0x016E, "U" }, /* LATIN CAPITAL LETTER U WITH RING ABOVE */
+   { "Uacute",	0xDA, 0x00DA, "U" }, /* LATIN CAPITAL LETTER U WITH ACUTE */
+   { "",	0xDB, 0x0170, "U" }, /* LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
+   { "Uuml",	0xDC, 0x00DC, "U" }, /* LATIN CAPITAL LETTER U WITH DIAERESIS */
+   { "Yacute",	0xDD, 0x00DD, "Y" }, /* LATIN CAPITAL LETTER Y WITH ACUTE */
+   { "",	0xDE, 0x0162, "T" }, /* LATIN CAPITAL LETTER T WITH CEDILLA */
+   { "szlig",	0xDF, 0x00DF, "ss" }, /* LATIN SMALL LETTER SHARP S (German) */
+   { "",	0xE0, 0x0155, "s" }, /* LATIN SMALL LETTER R WITH ACUTE */
+   { "aacute",	0xE1, 0x00E1, "a" }, /* LATIN SMALL LETTER A WITH ACUTE */
+   { "acirc",	0xE2, 0x00E2, "a" }, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */
+   { "",	0xE3, 0x0103, "a" }, /* LATIN SMALL LETTER A WITH BREVE */
+   { "auml",	0xE4, 0x00E4, "a" }, /* LATIN SMALL LETTER A WITH DIAERESIS */
+   { "",	0xE5, 0x013A, "l" }, /* LATIN SMALL LETTER L WITH ACUTE */
+   { "",	0xE6, 0x0107, "c" }, /* LATIN SMALL LETTER C WITH ACUTE */
+   { "ccedil",	0xE7, 0x00E7, "c" }, /* LATIN SMALL LETTER C WITH CEDILLA */
+   { "",	0xE8, 0x010D, "c" }, /* LATIN SMALL LETTER C WITH CARON */
+   { "eacute",	0xE9, 0x00E9, "e" }, /* LATIN SMALL LETTER E WITH ACUTE */
+   { "",	0xEA, 0x0119, "e" }, /* LATIN SMALL LETTER E WITH OGONEK */
+   { "euml",	0xEB, 0x00EB, "e" }, /* LATIN SMALL LETTER E WITH DIAERESIS */
+   { "",	0xEC, 0x011B, "e" }, /* LATIN SMALL LETTER E WITH CARON */
+   { "iacute",	0xED, 0x00ED, "i" }, /* LATIN SMALL LETTER I WITH ACUTE */
+   { "icirc",	0xEE, 0x00EE, "i" }, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */
+   { "",	0xEF, 0x010F, "d" }, /* LATIN SMALL LETTER D WITH CARON */
+   { "",	0xF0, 0x0111, "d" }, /* LATIN SMALL LETTER D WITH STROKE */
+   { "",	0xF1, 0x0144, "n" }, /* LATIN SMALL LETTER N WITH ACUTE */
+   { "",	0xF2, 0x0148, "n" }, /* LATIN SMALL LETTER N WITH CARON */
+   { "oacute",	0xF3, 0x00F3, "o" }, /* LATIN SMALL LETTER O WITH ACUTE */
+   { "ocirc",	0xF4, 0x00F4, "o" }, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */
+   { "",	0xF5, 0x0151, "o" }, /* LATIN SMALL LETTER O WITH DOUBLE ACUTE */
+   { "ouml",	0xF6, 0x00F6, "o" }, /* LATIN SMALL LETTER O WITH DIAERESIS */
+   { "divide",	0xF7, 0x00F7 }, /* DIVISION SIGN */
+   { "",	0xF8, 0x0159, "r" }, /* LATIN SMALL LETTER R WITH CARON */
+   { "",	0xF9, 0x016F, "u" }, /* LATIN SMALL LETTER U WITH RING ABOVE */
+   { "uacute",	0xFA, 0x00FA, "u" }, /* LATIN SMALL LETTER U WITH ACUTE */
+   { "",	0xFB, 0x0171, "u" }, /* LATIN SMALL LETTER U WITH DOUBLE ACUTE */
+   { "uuml",	0xFC, 0x00FC, "u" }, /* LATIN SMALL LETTER U WITH DIAERESIS */
+   { "yacute",	0xFD, 0x00FD, "y" }, /* LATIN SMALL LETTER Y WITH ACUTE */
+   { "",	0xFE, 0x0163, "t" }, /* LATIN SMALL LETTER T WITH CEDILLA */
+   { "",	0xFF, 0x02D9 }, /* DOT ABOVE (Mandarin Chinese light tone) */
+   { NULL, 0, 0 }
+ };
+ 
+ /* Common map for koi8-u, koi8-r */
+ static iso_map_type koi8_map [] = {
+   { "", 0xa3, 0x0415, "io"}, /* CYRILLIC SMALL LETTER IO */
+   { "", 0xa4, 0x0454, "ie"}, /* CYRILLIC SMALL LETTER UKRAINIAN IE */
+   { "", 0xa6, 0x0456, "i"}, /* CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */
+   { "", 0xa7, 0x0457, "yi"}, /* CYRILLIC SMALL LETTER YI */
+ 
+   { "", 0xb3, 0x04d7, "IO"}, /* CYRILLIC CAPITAL LETTER IO */
+   { "", 0xb4, 0x0404, "IE"}, /* CYRILLIC CAPITAL LETTER UKRAINIAN IE */
+   { "", 0xb6, 0x0406, "I"},  /* CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */
+   { "", 0xb7, 0x0407, "YI"}, /* CYRILLIC CAPITAL LETTER YI */
+ /* { "", 0xbf, 0x}, / * CYRILLIC COPYRIGHT SIGN */ 
+   { "", 0xc0, 0x042e, "yu"}, /* CYRILLIC SMALL LETTER YU */        
+   { "", 0xc1, 0x0430, "a"}, /* CYRILLIC SMALL LETTER A */         
+   { "", 0xc2, 0x0431, "b"}, /* CYRILLIC SMALL LETTER BE */        
+   { "", 0xc3, 0x0446, "c"}, /* CYRILLIC SMALL LETTER TSE */        
+   { "", 0xc4, 0x0434, "d"}, /* CYRILLIC SMALL LETTER DE */        
+   { "", 0xc5, 0x0435, "e"}, /* CYRILLIC SMALL LETTER IE */        
+   { "", 0xc6, 0x0444, "f"}, /* CYRILLIC SMALL LETTER EF */        
+   { "", 0xc7, 0x0433, "g"}, /* CYRILLIC SMALL LETTER GHE */       
+   { "", 0xc8, 0x0445, "h"}, /* CYRILLIC SMALL LETTER HA */        
+   { "", 0xc9, 0x0438, "i"}, /* CYRILLIC SMALL LETTER I */         
+   { "", 0xca, 0x0439, "i"}, /* CYRILLIC SMALL LETTER SHORT I */   
+   { "", 0xcb, 0x043a, "k"}, /* CYRILLIC SMALL LETTER KA */        
+   { "", 0xcc, 0x043b, "l"}, /* CYRILLIC SMALL LETTER EL */        
+   { "", 0xcd, 0x043c, "m"}, /* CYRILLIC SMALL LETTER EM */        
+   { "", 0xce, 0x043d, "n"}, /* CYRILLIC SMALL LETTER EN */        
+   { "", 0xcf, 0x043e, "o"}, /* CYRILLIC SMALL LETTER O */         
+   { "", 0xd0, 0x043f, "p"}, /* CYRILLIC SMALL LETTER PE */        
+   { "", 0xd1, 0x044f, "ya"}, /* CYRILLIC SMALL LETTER YA */        
+   { "", 0xd2, 0x0440, "r"}, /* CYRILLIC SMALL LETTER ER */        
+   { "", 0xd3, 0x0441, "s"}, /* CYRILLIC SMALL LETTER ES */        
+   { "", 0xd4, 0x0442, "t"}, /* CYRILLIC SMALL LETTER TE */        
+   { "", 0xd5, 0x0443, "u"}, /* CYRILLIC SMALL LETTER U */         
+   { "", 0xd6, 0x0436, "zh"}, /* CYRILLIC SMALL LETTER ZHE */       
+   { "", 0xd7, 0x0432, "v"}, /* CYRILLIC SMALL LETTER VE */        
+   { "", 0xd8, 0x044c, "x"}, /* CYRILLIC SMALL LETTER SOFT SIGN */ 
+   { "", 0xd9, 0x044b, "y"}, /* CYRILLIC SMALL LETTER YERU */      
+   { "", 0xda, 0x0437, "z"}, /* CYRILLIC SMALL LETTER ZE */        
+   { "", 0xdb, 0x0448, "sh"}, /* CYRILLIC SMALL LETTER SHA */       
+   { "", 0xdc, 0x044d, "e"}, /* CYRILLIC SMALL LETTER E */         
+   { "", 0xdd, 0x0449, "shch"}, /* CYRILLIC SMALL LETTER SHCHA */     
+   { "", 0xde, 0x0447, "ch"}, /* CYRILLIC SMALL LETTER CHA */       
+   { "", 0xdf, 0x044a, "w"}, /* CYRILLIC SMALL LETTER HARD SIGN */ 
+   { "", 0xe0, 0x042d, "YU"}, /* CYRILLIC CAPITAL LETTER YU */       
+   { "", 0xe1, 0x0410, "A"}, /* CYRILLIC CAPITAL LETTER A */        
+   { "", 0xe2, 0x0411, "B"}, /* CYRILLIC CAPITAL LETTER BE */         
+   { "", 0xe3, 0x0426, "C"}, /* CYRILLIC CAPITAL LETTER TSE */        
+   { "", 0xe4, 0x0414, "D"}, /* CYRILLIC CAPITAL LETTER DE */        
+   { "", 0xe5, 0x0415, "E"}, /* CYRILLIC CAPITAL LETTER IE */        
+   { "", 0xe6, 0x0424, "F"}, /* CYRILLIC CAPITAL LETTER EF */        
+   { "", 0xe7, 0x0413, "G"}, /* CYRILLIC CAPITAL LETTER GHE */        
+   { "", 0xe8, 0x0425, "H"}, /* CYRILLIC CAPITAL LETTER HA */        
+   { "", 0xe9, 0x0418, "I"}, /* CYRILLIC CAPITAL LETTER I */        
+   { "", 0xea, 0x0419, "I"}, /* CYRILLIC CAPITAL LETTER SHORT I */  
+   { "", 0xeb, 0x041a, "K"}, /* CYRILLIC CAPITAL LETTER KA */        
+   { "", 0xec, 0x041b, "L"}, /* CYRILLIC CAPITAL LETTER EL */        
+   { "", 0xed, 0x041c, "M"}, /* CYRILLIC CAPITAL LETTER EM */        
+   { "", 0xee, 0x041d, "N"}, /* CYRILLIC CAPITAL LETTER EN */        
+   { "", 0xef, 0x041e, "O"}, /* CYRILLIC CAPITAL LETTER O */        
+   { "", 0xf0, 0x041f, "P"}, /* CYRILLIC CAPITAL LETTER PE */        
+   { "", 0xf1, 0x042f, "YA"}, /* CYRILLIC CAPITAL LETTER YA */       
+   { "", 0xf2, 0x0420, "R"}, /* CYRILLIC CAPITAL LETTER ER */        
+   { "", 0xf3, 0x0421, "S"}, /* CYRILLIC CAPITAL LETTER ES */        
+   { "", 0xf4, 0x0422, "T"}, /* CYRILLIC CAPITAL LETTER TE */        
+   { "", 0xf5, 0x0423, "U"}, /* CYRILLIC CAPITAL LETTER U */        
+   { "", 0xf6, 0x0416, "ZH"}, /* CYRILLIC CAPITAL LETTER ZHE */       
+   { "", 0xf7, 0x0412, "V"}, /* CYRILLIC CAPITAL LETTER VE */        
+   { "", 0xf8, 0x042c, "X"}, /* CYRILLIC CAPITAL LETTER SOFT SIGN */
+   { "", 0xf9, 0x042b, "Y"}, /* CYRILLIC CAPITAL LETTER YERU */     
+   { "", 0xfa, 0x0417, "Z"}, /* CYRILLIC CAPITAL LETTER ZE */        
+   { "", 0xfb, 0x0428, "SH"}, /* CYRILLIC CAPITAL LETTER SHA */       
+   { "", 0xfc, 0x042d, "E"}, /* CYRILLIC CAPITAL LETTER E */        
+   { "", 0xfd, 0x0429, "SHCH"}, /* CYRILLIC CAPITAL LETTER SHCHA */     
+   { "", 0xfe, 0x0427, "CH"}, /* CYRILLIC CAPITAL LETTER CHE */      
+   { "", 0xff, 0x042a, "W"}, /* CYRILLIC CAPITAL LETTER HARD SIGN */
+   { NULL, 0, 0 }
+ };	      
+ 
+ encoding_type encoding_table[] = {
+   { no_encoding, "(no encoding)", NULL },
+   { US_ASCII,    "US-ASCII",    asis_map },
+   { ISO_8859_1,  "iso-8859-1",  (iso_map_type *) iso8859_1_map },
+   { ISO_8859_2,  "iso-8859-2",  (iso_map_type *) iso8859_2_map },
+   { ISO_8859_3,  "iso-8859-3",  NULL },
+   { ISO_8859_4,  "iso-8859-4",  NULL },
+   { ISO_8859_5,  "iso-8859-5",  NULL },
+   { ISO_8859_6,  "iso-8859-6",  NULL },
+   { ISO_8859_7,  "iso-8859-7",  NULL },
+   { ISO_8859_8,  "iso-8859-8",  NULL },
+   { ISO_8859_9,  "iso-8859-9",  NULL },
+   { ISO_8859_10, "iso-8859-10", NULL },
+   { ISO_8859_11, "iso-8859-11", NULL },
+   { ISO_8859_12, "iso-8859-12", NULL },
+   { ISO_8859_13, "iso-8859-13", NULL },
+   { ISO_8859_14, "iso-8859-14", NULL },
+   { ISO_8859_15, "iso-8859-15", (iso_map_type *) iso8859_15_map },
+   { KOI8_R,      "koi8-r",      (iso_map_type *) koi8_map },
+   { KOI8_U,      "koi8-u",      (iso_map_type *) koi8_map },
+   { UTF_8,       "utf-8",       asis_map },  /* specific code for this below */
+   { last_encoding_code, NULL, NULL }
+ };
+ 
+ 
+ /* List of HTML entities.  */
+ static struct { const char *html; unsigned int unicode; } unicode_map[] = {
+ /* Extracted from http://www.w3.org/TR/html401/sgml/entities.html through
+    sed -n -e 's|<!ENTITY \([^ ][^ ]*\) *CDATA "[&]#\([0-9][0-9]*\);".*|  { "\1", \2 },|p'
+    | LC_ALL=C sort -k2  */
+   { "AElig",     198 },
+   { "Aacute",    193 },
+   { "Acirc",     194 },
+   { "Agrave",    192 },
+   { "Alpha",     913 },
+   { "Aring",     197 },
+   { "Atilde",    195 },
+   { "Auml",      196 },
+   { "Beta",      914 },
+   { "Ccedil",    199 },
+   { "Chi",       935 },
+   { "Dagger",   8225 },
+   { "Delta",     916 },
+   { "ETH",       208 },
+   { "Eacute",    201 },
+   { "Ecirc",     202 },
+   { "Egrave",    200 },
+   { "Epsilon",   917 },
+   { "Eta",       919 },
+   { "Euml",      203 },
+   { "Gamma",     915 },
+   { "Iacute",    205 },
+   { "Icirc",     206 },
+   { "Igrave",    204 },
+   { "Iota",      921 },
+   { "Iuml",      207 },
+   { "Kappa",     922 },
+   { "Lambda",    923 },
+   { "Mu",        924 },
+   { "Ntilde",    209 },
+   { "Nu",        925 },
+   { "OElig",     338 },
+   { "Oacute",    211 },
+   { "Ocirc",     212 },
+   { "Ograve",    210 },
+   { "Omega",     937 },
+   { "Omicron",   927 },
+   { "Oslash",    216 },
+   { "Otilde",    213 },
+   { "Ouml",      214 },
+   { "Phi",       934 },
+   { "Pi",        928 },
+   { "Prime",    8243 },
+   { "Psi",       936 },
+   { "Rho",       929 },
+   { "Scaron",    352 },
+   { "Sigma",     931 },
+   { "THORN",     222 },
+   { "Tau",       932 },
+   { "Theta",     920 },
+   { "Uacute",    218 },
+   { "Ucirc",     219 },
+   { "Ugrave",    217 },
+   { "Upsilon",   933 },
+   { "Uuml",      220 },
+   { "Xi",        926 },
+   { "Yacute",    221 },
+   { "Yuml",      376 },
+   { "Zeta",      918 },
+   { "aacute",    225 },
+   { "acirc",     226 },
+   { "acute",     180 },
+   { "aelig",     230 },
+   { "agrave",    224 },
+   { "alefsym",  8501 },
+   { "alpha",     945 },
+   { "amp",        38 },
+   { "and",      8743 },
+   { "ang",      8736 },
+   { "aring",     229 },
+   { "asymp",    8776 },
+   { "atilde",    227 },
+   { "auml",      228 },
+   { "bdquo",    8222 },
+   { "beta",      946 },
+   { "brvbar",    166 },
+   { "bull",     8226 },
+   { "cap",      8745 },
+   { "ccedil",    231 },
+   { "cedil",     184 },
+   { "cent",      162 },
+   { "chi",       967 },
+   { "circ",      710 },
+   { "clubs",    9827 },
+   { "cong",     8773 },
+   { "copy",      169 },
+   { "crarr",    8629 },
+   { "cup",      8746 },
+   { "curren",    164 },
+   { "dArr",     8659 },
+   { "dagger",   8224 },
+   { "darr",     8595 },
+   { "deg",       176 },
+   { "delta",     948 },
+   { "diams",    9830 },
+   { "divide",    247 },
+   { "eacute",    233 },
+   { "ecirc",     234 },
+   { "egrave",    232 },
+   { "empty",    8709 },
+   { "emsp",     8195 },
+   { "ensp",     8194 },
+   { "epsilon",   949 },
+   { "equiv",    8801 },
+   { "eta",       951 },
+   { "eth",       240 },
+   { "euml",      235 },
+   { "euro",     8364 },
+   { "exist",    8707 },
+   { "fnof",      402 },
+   { "forall",   8704 },
+   { "frac12",    189 },
+   { "frac14",    188 },
+   { "frac34",    190 },
+   { "frasl",    8260 },
+   { "gamma",     947 },
+   { "ge",       8805 },
+   { "gt",         62 },
+   { "hArr",     8660 },
+   { "harr",     8596 },
+   { "hearts",   9829 },
+   { "hellip",   8230 },
+   { "iacute",    237 },
+   { "icirc",     238 },
+   { "iexcl",     161 },
+   { "igrave",    236 },
+   { "image",    8465 },
+   { "infin",    8734 },
+   { "int",      8747 },
+   { "iota",      953 },
+   { "iquest",    191 },
+   { "isin",     8712 },
+   { "iuml",      239 },
+   { "kappa",     954 },
+   { "lArr",     8656 },
+   { "lambda",    955 },
+   { "lang",     9001 },
+   { "laquo",     171 },
+   { "larr",     8592 },
+   { "lceil",    8968 },
+   { "ldquo",    8220 },
+   { "le",       8804 },
+   { "lfloor",   8970 },
+   { "lowast",   8727 },
+   { "loz",      9674 },
+   { "lrm",      8206 },
+   { "lsaquo",   8249 },
+   { "lsquo",    8216 },
+   { "lt",         60 },
+   { "macr",      175 },
+   { "mdash",    8212 },
+   { "micro",     181 },
+   { "middot",    183 },
+   { "minus",    8722 },
+   { "mu",        956 },
+   { "nabla",    8711 },
+   { "nbsp",      160 },
+   { "ndash",    8211 },
+   { "ne",       8800 },
+   { "ni",       8715 },
+   { "not",       172 },
+   { "notin",    8713 },
+   { "nsub",     8836 },
+   { "ntilde",    241 },
+   { "nu",        957 },
+   { "oacute",    243 },
+   { "ocirc",     244 },
+   { "oelig",     339 },
+   { "ograve",    242 },
+   { "oline",    8254 },
+   { "omega",     969 },
+   { "omicron",   959 },
+   { "oplus",    8853 },
+   { "or",       8744 },
+   { "ordf",      170 },
+   { "ordm",      186 },
+   { "oslash",    248 },
+   { "otilde",    245 },
+   { "otimes",   8855 },
+   { "ouml",      246 },
+   { "para",      182 },
+   { "part",     8706 },
+   { "permil",   8240 },
+   { "perp",     8869 },
+   { "phi",       966 },
+   { "pi",        960 },
+   { "piv",       982 },
+   { "plusmn",    177 },
+   { "pound",     163 },
+   { "prime",    8242 },
+   { "prod",     8719 },
+   { "prop",     8733 },
+   { "psi",       968 },
+   { "quot",       34 },
+   { "rArr",     8658 },
+   { "radic",    8730 },
+   { "rang",     9002 },
+   { "raquo",     187 },
+   { "rarr",     8594 },
+   { "rceil",    8969 },
+   { "rdquo",    8221 },
+   { "real",     8476 },
+   { "reg",       174 },
+   { "rfloor",   8971 },
+   { "rho",       961 },
+   { "rlm",      8207 },
+   { "rsaquo",   8250 },
+   { "rsquo",    8217 },
+   { "sbquo",    8218 },
+   { "scaron",    353 },
+   { "sdot",     8901 },
+   { "sect",      167 },
+   { "shy",       173 },
+   { "sigma",     963 },
+   { "sigmaf",    962 },
+   { "sim",      8764 },
+   { "spades",   9824 },
+   { "sub",      8834 },
+   { "sube",     8838 },
+   { "sum",      8721 },
+   { "sup",      8835 },
+   { "sup1",      185 },
+   { "sup2",      178 },
+   { "sup3",      179 },
+   { "supe",     8839 },
+   { "szlig",     223 },
+   { "tau",       964 },
+   { "there4",   8756 },
+   { "theta",     952 },
+   { "thetasym",  977 },
+   { "thinsp",   8201 },
+   { "thorn",     254 },
+   { "tilde",     732 },
+   { "times",     215 },
+   { "trade",    8482 },
+   { "uArr",     8657 },
+   { "uacute",    250 },
+   { "uarr",     8593 },
+   { "ucirc",     251 },
+   { "ugrave",    249 },
+   { "uml",       168 },
+   { "upsih",     978 },
+   { "upsilon",   965 },
+   { "uuml",      252 },
+   { "weierp",   8472 },
+   { "xi",        958 },
+   { "yacute",    253 },
+   { "yen",       165 },
+   { "yuml",      255 },
+   { "zeta",      950 },
+   { "zwj",      8205 },
+   { "zwnj",     8204 }
+ };
+  
+ 
+ 
+ /* To update this list of language codes, download the current data from
+    http://www.loc.gov/standards/iso639-2; specifically,
+    http://www.loc.gov/standards/iso639-2/ISO-639-2_values_8bits-8559-1.txt.
+    Run cut -d\| -f 3,4 <ISO-639-2_values_8bits-8559-1.txt | sort -u >/tmp/639.2
+    
+    Extract the C table below to a file, say /tmp/lc, and run:
+    cut -c 10- /tmp/lc| sed -e 's/", "/|/' -e 's,".*,,'>/tmp/lang.2
+    
+    Then: comm -3 /tmp/639.2 /tmp/lang.c.
+    
+    Also update the enum in lang.h.  */
+ 
+ language_type language_table[] = {
+   { aa, "aa", "Afar" },
+   { ab, "ab", "Abkhazian" },
+   { ae, "ae", "Avestan" },
+   { af, "af", "Afrikaans" },
+   { ak, "ak", "Akan" },
+   { am, "am", "Amharic" },
+   { an, "an", "Aragonese" },
+   { ar, "ar", "Arabic" },
+   { as, "as", "Assamese" },
+   { av, "av", "Avaric" },
+   { ay, "ay", "Aymara" },
+   { az, "az", "Azerbaijani" },
+   { ba, "ba", "Bashkir" },
+   { be, "be", "Belarusian" },
+   { bg, "bg", "Bulgarian" },
+   { bh, "bh", "Bihari" },
+   { bi, "bi", "Bislama" },
+   { bm, "bm", "Bambara" },
+   { bn, "bn", "Bengali" },
+   { bo, "bo", "Tibetan" },
+   { br, "br", "Breton" },
+   { bs, "bs", "Bosnian" },
+   { ca, "ca", "Catalan; Valencian" },
+   { ce, "ce", "Chechen" },
+   { ch, "ch", "Chamorro" },
+   { co, "co", "Corsican" },
+   { cr, "cr", "Cree" },
+   { cs, "cs", "Czech" },
+   { cu, "cu", "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic" },
+   { cv, "cv", "Chuvash" },
+   { cy, "cy", "Welsh" },
+   { da, "da", "Danish" },
+   { de, "de", "German" },
+   { dv, "dv", "Divehi; Dhivehi; Maldivian" },
+   { dz, "dz", "Dzongkha" },
+   { ee, "ee", "Ewe" },
+   { el, "el", "Greek, Modern (1453-)" },
+   { en, "en", "English" },
+   { eo, "eo", "Esperanto" },
+   { es, "es", "Spanish; Castilian" },
+   { et, "et", "Estonian" },
+   { eu, "eu", "Basque" },
+   { fa, "fa", "Persian" },
+   { ff, "ff", "Fulah" },
+   { fi, "fi", "Finnish" },
+   { fj, "fj", "Fijian" },
+   { fo, "fo", "Faroese" },
+   { fr, "fr", "French" },
+   { fy, "fy", "Western Frisian" },
+   { ga, "ga", "Irish" },
+   { gd, "gd", "Gaelic; Scottish Gaelic" },
+   { gl, "gl", "Galician" },
+   { gn, "gn", "Guarani" },
+   { gu, "gu", "Gujarati" },
+   { gv, "gv", "Manx" },
+   { ha, "ha", "Hausa" },
+   { he, "he", "Hebrew" } /* (formerly iw) */,
+   { hi, "hi", "Hindi" },
+   { ho, "ho", "Hiri Motu" },
+   { hr, "hr", "Croatian" },
+   { ht, "ht", "Haitian; Haitian Creole" },
+   { hu, "hu", "Hungarian" },
+   { hy, "hy", "Armenian" },
+   { hz, "hz", "Herero" },
+   { ia, "ia", "Interlingua (International Auxiliary Language Association)" },
+   { id, "id", "Indonesian" } /* (formerly in) */,
+   { ie, "ie", "Interlingue" },
+   { ig, "ig", "Igbo" },
+   { ii, "ii", "Sichuan Yi" },
+   { ik, "ik", "Inupiaq" },
+   { io, "io", "Ido" },
+   { is, "is", "Icelandic" },
+   { it, "it", "Italian" },
+   { iu, "iu", "Inuktitut" },
+   { ja, "ja", "Japanese" },
+   { jv, "jv", "Javanese" },
+   { ka, "ka", "Georgian" },
+   { kg, "kg", "Kongo" },
+   { ki, "ki", "Kikuyu; Gikuyu" },
+   { kj, "kj", "Kuanyama; Kwanyama" },
+   { kk, "kk", "Kazakh" },
+   { kl, "kl", "Kalaallisut; Greenlandic" },
+   { km, "km", "Central Khmer" },
+   { kn, "kn", "Kannada" },
+   { ko, "ko", "Korean" },
+   { kr, "kr", "Kanuri" },
+   { ks, "ks", "Kashmiri" },
+   { ku, "ku", "Kurdish" },
+   { kv, "kv", "Komi" },
+   { kw, "kw", "Cornish" },
+   { ky, "ky", "Kirghiz; Kyrgyz" },
+   { la, "la", "Latin" },
+   { lb, "lb", "Luxembourgish; Letzeburgesch" },
+   { lg, "lg", "Ganda" },
+   { li, "li", "Limburgan; Limburger; Limburgish" },
+   { ln, "ln", "Lingala" },
+   { lo, "lo", "Lao" },
+   { lt, "lt", "Lithuanian" },
+   { lu, "lu", "Luba-Katanga" },
+   { lv, "lv", "Latvian" },
+   { mg, "mg", "Malagasy" },
+   { mh, "mh", "Marshallese" },
+   { mi, "mi", "Maori" },
+   { mk, "mk", "Macedonian" },
+   { ml, "ml", "Malayalam" },
+   { mn, "mn", "Mongolian" },
+   { mo, "mo", "Moldavian" },
+   { mr, "mr", "Marathi" },
+   { ms, "ms", "Malay" },
+   { mt, "mt", "Maltese" },
+   { my, "my", "Burmese" },
+   { na, "na", "Nauru" },
+   { nb, "nb", "Bokmål, Norwegian; Norwegian Bokmål" },
+   { nd, "nd", "Ndebele, North; North Ndebele" },
+   { ne, "ne", "Nepali" },
+   { ng, "ng", "Ndonga" },
+   { nl, "nl", "Dutch; Flemish" },
+   { nn, "nn", "Norwegian Nynorsk; Nynorsk, Norwegian" },
+   { no, "no", "Norwegian" },
+   { nr, "nr", "Ndebele, South; South Ndebele" },
+   { nv, "nv", "Navajo; Navaho" },
+   { ny, "ny", "Chichewa; Chewa; Nyanja" },
+   { oc, "oc", "Occitan (post 1500); Provençal" },
+   { oj, "oj", "Ojibwa" },
+   { om, "om", "Oromo" },
+   { or, "or", "Oriya" },
+   { os, "os", "Ossetian; Ossetic" },
+   { pa, "pa", "Panjabi; Punjabi" },
+   { pi, "pi", "Pali" },
+   { pl, "pl", "Polish" },
+   { ps, "ps", "Pushto" },
+   { pt, "pt", "Portuguese" },
+   { qu, "qu", "Quechua" },
+   { rm, "rm", "Romansh" },
+   { rn, "rn", "Rundi" },
+   { ro, "ro", "Romanian" },
+   { ru, "ru", "Russian" },
+   { rw, "rw", "Kinyarwanda" },
+   { sa, "sa", "Sanskrit" },
+   { sc, "sc", "Sardinian" },
+   { sd, "sd", "Sindhi" },
+   { se, "se", "Northern Sami" },
+   { sg, "sg", "Sango" },
+   { si, "si", "Sinhala; Sinhalese" },
+   { sk, "sk", "Slovak" },
+   { sl, "sl", "Slovenian" },
+   { sm, "sm", "Samoan" },
+   { sn, "sn", "Shona" },
+   { so, "so", "Somali" },
+   { sq, "sq", "Albanian" },
+   { sr, "sr", "Serbian" },
+   { ss, "ss", "Swati" },
+   { st, "st", "Sotho, Souther" },
+   { su, "su", "Sundanese" },
+   { sv, "sv", "Swedish" },
+   { sw, "sw", "Swahili" },
+   { ta, "ta", "Tamil" },
+   { te, "te", "Telugu" },
+   { tg, "tg", "Tajik" },
+   { th, "th", "Thai" },
+   { ti, "ti", "Tigrinya" },
+   { tk, "tk", "Turkmen" },
+   { tl, "tl", "Tagalog" },
+   { tn, "tn", "Tswana" },
+   { to, "to", "Tonga (Tonga Islands)" },
+   { tr, "tr", "Turkish" },
+   { ts, "ts", "Tsonga" },
+   { tt, "tt", "Tatar" },
+   { tw, "tw", "Twi" },
+   { ty, "ty", "Tahitian" },
+   { ug, "ug", "Uighur; Uyghur" },
+   { uk, "uk", "Ukrainian" },
+   { ur, "ur", "Urdu" },
+   { uz, "uz", "Uzbek" },
+   { ve, "ve", "Venda" },
+   { vi, "vi", "Vietnamese" },
+   { vo, "vo", "Volapük" },
+   { wa, "wa", "Walloon" },
+   { wo, "wo", "Wolof" },
+   { xh, "xh", "Xhosa" },
+   { yi, "yi", "Yiddish" } /* (formerly ji) */,
+   { yo, "yo", "Yoruba" },
+   { za, "za", "Zhuang; Chuang" },
+   { zh, "zh", "Chinese" },
+   { zu, "zu", "Zulu" },
+   { last_language_code, NULL, NULL }
+ };
+ 
+ static const char *
+ cm_search_iso_map_char (byte_t ch)
+ {
+   int i;
+   iso_map_type *iso = encoding_table[document_encoding_code].isotab;
+ 
+   /* If no conversion table for this encoding, quit.  */
+   if (!iso)
+     return NULL;
+   
+   for (i = 0; iso[i].html; i++)
+     if (iso[i].bytecode == ch)
+       return iso[i].translit;
+ 
+   return NULL;
+ }
+ 
+ const char *
+ lang_transliterate_char (byte_t ch)
+ {
+   if (transliterate_file_names
+       && document_encoding_code != no_encoding)
+     return cm_search_iso_map_char (ch);
+   return NULL;
+ }	
+ 
+ 
+ 
+ /* Given a language code LL_CODE, return a "default" country code (in
+    new memory).  We use the same table as gettext, and return LL_CODE
+    uppercased in the absence of any better possibility, with a warning.
+    (gettext silently defaults to the C locale, but we want to give users
+    a shot at fixing ambiguities.)  We also return en_US for en, while
+    gettext does not.  */
+ 
+ #define SIZEOF(a) (sizeof(a) / sizeof(a[0]))
+ 
+ static char *
+ default_country_for_lang (const char *ll_code)
+ {
+   /* This table comes from msginit.c in gettext (0.16.1).  It is
+      intentionally copied verbatim even though the format is not the
+      most convenient for our purposes, to make updates simple.  */
+   static const char *locales_with_principal_territory[] = {
+ 		/* Language	Main territory */
+     "ace_ID",	/* Achinese	Indonesia */
+     "af_ZA",	/* Afrikaans	South Africa */
+     "ak_GH",	/* Akan		Ghana */
+     "am_ET",	/* Amharic	Ethiopia */
+     "an_ES",	/* Aragonese	Spain */
+     "ang_GB",	/* Old English	Britain */
+     "as_IN",	/* Assamese	India */
+     "av_RU",	/* Avaric	Russia */
+     "awa_IN",	/* Awadhi	India */
+     "az_AZ",	/* Azerbaijani	Azerbaijan */
+     "bad_CF",	/* Banda	Central African Republic */
+     "ban_ID",	/* Balinese	Indonesia */
+     "be_BY",	/* Belarusian	Belarus */
+     "bem_ZM",	/* Bemba	Zambia */
+     "bg_BG",	/* Bulgarian	Bulgaria */
+     "bho_IN",	/* Bhojpuri	India */
+     "bik_PH",	/* Bikol	Philippines */
+     "bin_NG",	/* Bini		Nigeria */
+     "bm_ML",	/* Bambara	Mali */
+     "bn_IN",	/* Bengali	India */
+     "bo_CN",	/* Tibetan	China */
+     "br_FR",	/* Breton	France */
+     "bs_BA",	/* Bosnian	Bosnia */
+     "btk_ID",	/* Batak	Indonesia */
+     "bug_ID",	/* Buginese	Indonesia */
+     "ca_ES",	/* Catalan	Spain */
+     "ce_RU",	/* Chechen	Russia */
+     "ceb_PH",	/* Cebuano	Philippines */
+     "co_FR",	/* Corsican	France */
+     "cr_CA",	/* Cree		Canada */
+     "cs_CZ",	/* Czech	Czech Republic */
+     "csb_PL",	/* Kashubian	Poland */
+     "cy_GB",	/* Welsh	Britain */
+     "da_DK",	/* Danish	Denmark */
+     "de_DE",	/* German	Germany */
+     "din_SD",	/* Dinka	Sudan */
+     "doi_IN",	/* Dogri	India */
+     "dv_MV",	/* Divehi	Maldives */
+     "dz_BT",	/* Dzongkha	Bhutan */
+     "ee_GH",	/* Ã‰wÃ©		Ghana */
+     "el_GR",	/* Greek	Greece */
+     /* Don't put "en_GB" or "en_US" here.  That would be asking for fruitless
+        political discussion.  */
+     "es_ES",	/* Spanish	Spain */
+     "et_EE",	/* Estonian	Estonia */
+     "fa_IR",	/* Persian	Iran */
+     "fi_FI",	/* Finnish	Finland */
+     "fil_PH",	/* Filipino	Philippines */
+     "fj_FJ",	/* Fijian	Fiji */
+     "fo_FO",	/* Faroese	Faeroe Islands */
+     "fon_BJ",	/* Fon		Benin */
+     "fr_FR",	/* French	France */
+     "fy_NL",	/* Western Frisian	Netherlands */
+     "ga_IE",	/* Irish	Ireland */
+     "gd_GB",	/* Scots	Britain */
+     "gon_IN",	/* Gondi	India */
+     "gsw_CH",	/* Swiss German	Switzerland */
+     "gu_IN",	/* Gujarati	India */
+     "he_IL",	/* Hebrew	Israel */
+     "hi_IN",	/* Hindi	India */
+     "hil_PH",	/* Hiligaynon	Philippines */
+     "hr_HR",	/* Croatian	Croatia */
+     "ht_HT",	/* Haitian	Haiti */
+     "hu_HU",	/* Hungarian	Hungary */
+     "hy_AM",	/* Armenian	Armenia */
+     "id_ID",	/* Indonesian	Indonesia */
+     "ig_NG",	/* Igbo		Nigeria */
+     "ii_CN",	/* Sichuan Yi	China */
+     "ilo_PH",	/* Iloko	Philippines */
+     "is_IS",	/* Icelandic	Iceland */
+     "it_IT",	/* Italian	Italy */
+     "ja_JP",	/* Japanese	Japan */
+     "jab_NG",	/* Hyam		Nigeria */
+     "jv_ID",	/* Javanese	Indonesia */
+     "ka_GE",	/* Georgian	Georgia */
+     "kab_DZ",	/* Kabyle	Algeria */
+     "kaj_NG",	/* Jju		Nigeria */
+     "kam_KE",	/* Kamba	Kenya */
+     "kmb_AO",	/* Kimbundu	Angola */
+     "kcg_NG",	/* Tyap		Nigeria */
+     "kdm_NG",	/* Kagoma	Nigeria */
+     "kg_CD",	/* Kongo	Democratic Republic of Congo */
+     "kk_KZ",	/* Kazakh	Kazakhstan */
+     "kl_GL",	/* Kalaallisut	Greenland */
+     "km_KH",	/* Khmer	Cambodia */
+     "kn_IN",	/* Kannada	India */
+     "ko_KR",	/* Korean	Korea (South) */
+     "kok_IN",	/* Konkani	India */
+     "kr_NG",	/* Kanuri	Nigeria */
+     "kru_IN",	/* Kurukh	India */
+     "lg_UG",	/* Ganda	Uganda */
+     "li_BE",	/* Limburgish	Belgium */
+     "lo_LA",	/* Laotian	Laos */
+     "lt_LT",	/* Lithuanian	Lithuania */
+     "lu_CD",	/* Luba-Katanga	Democratic Republic of Congo */
+     "lua_CD",	/* Luba-Lulua	Democratic Republic of Congo */
+     "luo_KE",	/* Luo		Kenya */
+     "lv_LV",	/* Latvian	Latvia */
+     "mad_ID",	/* Madurese	Indonesia */
+     "mag_IN",	/* Magahi	India */
+     "mai_IN",	/* Maithili	India */
+     "mak_ID",	/* Makasar	Indonesia */
+     "man_ML",	/* Mandingo	Mali */
+     "men_SL",	/* Mende	Sierra Leone */
+     "mg_MG",	/* Malagasy	Madagascar */
+     "min_ID",	/* Minangkabau	Indonesia */
+     "mk_MK",	/* Macedonian	Macedonia */
+     "ml_IN",	/* Malayalam	India */
+     "mn_MN",	/* Mongolian	Mongolia */
+     "mni_IN",	/* Manipuri	India */
+     "mos_BF",	/* Mossi	Burkina Faso */
+     "mr_IN",	/* Marathi	India */
+     "ms_MY",	/* Malay	Malaysia */
+     "mt_MT",	/* Maltese	Malta */
+     "mwr_IN",	/* Marwari	India */
+     "my_MM",	/* Burmese	Myanmar */
+     "na_NR",	/* Nauru	Nauru */
+     "nah_MX",	/* Nahuatl	Mexico */
+     "nap_IT",	/* Neapolitan	Italy */
+     "nb_NO",	/* Norwegian BokmÃ¥l	Norway */
+     "nds_DE",	/* Low Saxon	Germany */
+     "ne_NP",	/* Nepali	Nepal */
+     "nl_NL",	/* Dutch	Netherlands */
+     "nn_NO",	/* Norwegian Nynorsk	Norway */
+     "no_NO",	/* Norwegian	Norway */
+     "nr_ZA",	/* South Ndebele	South Africa */
+     "nso_ZA",	/* Northern Sotho	South Africa */
+     "nym_TZ",	/* Nyamwezi	Tanzania */
+     "nyn_UG",	/* Nyankole	Uganda */
+     "oc_FR",	/* Occitan	France */
+     "oj_CA",	/* Ojibwa	Canada */
+     "or_IN",	/* Oriya	India */
+     "pa_IN",	/* Punjabi	India */
+     "pag_PH",	/* Pangasinan	Philippines */
+     "pam_PH",	/* Pampanga	Philippines */
+     "pbb_CO",	/* PÃ¡ez		Colombia */
+     "pl_PL",	/* Polish	Poland */
+     "ps_AF",	/* Pashto	Afghanistan */
+     "pt_PT",	/* Portuguese	Portugal */
+     "raj_IN",	/* Rajasthani	India */
+     "rm_CH",	/* Rhaeto-Roman	Switzerland */
+     "rn_BI",	/* Kirundi	Burundi */
+     "ro_RO",	/* Romanian	Romania */
+     "ru_RU",	/* Russian	Russia */
+     "sa_IN",	/* Sanskrit	India */
+     "sas_ID",	/* Sasak	Indonesia */
+     "sat_IN",	/* Santali	India */
+     "sc_IT",	/* Sardinian	Italy */
+     "scn_IT",	/* Sicilian	Italy */
+     "sg_CF",	/* Sango	Central African Republic */
+     "shn_MM",	/* Shan		Myanmar */
+     "si_LK",	/* Sinhala	Sri Lanka */
+     "sid_ET",	/* Sidamo	Ethiopia */
+     "sk_SK",	/* Slovak	Slovakia */
+     "sl_SI",	/* Slovenian	Slovenia */
+     "so_SO",	/* Somali	Somalia */
+     "sq_AL",	/* Albanian	Albania */
+     "sr_RS",	/* Serbian	Serbia */
+     "sr_YU",	/* Serbian	Yugoslavia */
+     "srr_SN",	/* Serer	Senegal */
+     "suk_TZ",	/* Sukuma	Tanzania */
+     "sus_GN",	/* Susu		Guinea */
+     "sv_SE",	/* Swedish	Sweden */
+     "te_IN",	/* Telugu	India */
+     "tem_SL",	/* Timne	Sierra Leone */
+     "tet_ID",	/* Tetum	Indonesia */
+     "tg_TJ",	/* Tajik	Tajikistan */
+     "th_TH",	/* Thai		Thailand */
+     "tiv_NG",	/* Tiv		Nigeria */
+     "tk_TM",	/* Turkmen	Turkmenistan */
+     "tl_PH",	/* Tagalog	Philippines */
+     "to_TO",	/* Tonga	Tonga */
+     "tr_TR",	/* Turkish	Turkey */
+     "tum_MW",	/* Tumbuka	Malawi */
+     "uk_UA",	/* Ukrainian	Ukraine */
+     "umb_AO",	/* Umbundu	Angola */
+     "ur_PK",	/* Urdu		Pakistan */
+     "uz_UZ",	/* Uzbek	Uzbekistan */
+     "ve_ZA",	/* Venda	South Africa */
+     "vi_VN",	/* Vietnamese	Vietnam */
+     "wa_BE",	/* Walloon	Belgium */
+     "wal_ET",	/* Walamo	Ethiopia */
+     "war_PH",	/* Waray	Philippines */
+     "wen_DE",	/* Sorbian	Germany */
+     "yao_MW",	/* Yao		Malawi */
+     "zap_MX"	/* Zapotec	Mexico */
+   };
+   int c;
+   int cc_len;
+   int ll_len = strlen (ll_code);
+   char *cc_code = xmalloc (ll_len + 1 + 1);
+   int principal_len = SIZEOF (locales_with_principal_territory);
+   
+   strcpy (cc_code, ll_code);
+   strcat (cc_code, "_");
+   cc_len = ll_len + 1;
+   
+   for (c = 0; c < principal_len; c++)
+     {
+       const char *principal_locale = locales_with_principal_territory[c];
+       if (strncmp (principal_locale, cc_code, cc_len) == 0)
+         {
+           const char *underscore = strchr (principal_locale, '_');
+           /* should always be there, but in case ... */
+           free (cc_code);
+           cc_code = xstrdup (underscore ? underscore + 1 : principal_locale);
+           break;
+         }
+     }
+   
+   /* If we didn't find one to copy, warn and duplicate.  */
+   if (c == principal_len)
+     {
+       if (mbscasecmp (ll_code, "en") == 0)
+         cc_code = xstrdup ("en_US");
+       else
+         {
+           warning (_("no default territory known for language `%s'"), ll_code);
+           for (c = 0; c < strlen (ll_code); c++)
+             cc_code[c] = toupper (ll_code[c]);
+           cc_code[c] = 0;
+           /* We're probably wasting a byte, oops.  */
+         }
+     }
+   
+   return cc_code;
+ }
+ 
+ 
+ 
+ /* @documentlanguage ARG.  We set the global `document_language' (which
+    `getdocumenttext' uses) to the gettextish string, and 
+    `language_code' to the corresponding enum value.  */
+ 
+ void
+ cm_documentlanguage (void)
+ {
+   language_code_type c;
+   char *lang_arg, *ll_part, *cc_part, *locale_string;
+   char *underscore;
+ 
+   /* Read the line with the language code on it.  */
+   get_rest_of_line (0, &lang_arg);
+ 
+   /* What we're passed might be either just a language code LL (we'll 
+      also need it with the usual _CC appended, if there is one), or a
+      locale name as used by gettext, LL_CC (we'll also need its
+      constituents separately).  */
+   underscore = strchr (lang_arg, '_');
+   if (underscore)
+     {
+       ll_part = substring (lang_arg, underscore);
+       cc_part = xstrdup (underscore + 1);
+       locale_string = xstrdup (lang_arg);
+     }
+   else
+     {
+       ll_part = xstrdup (lang_arg);
+       cc_part = default_country_for_lang (ll_part);
+       locale_string = xmalloc (strlen (ll_part) + 1 + strlen (cc_part) + 1);
+       strcpy (locale_string, ll_part);
+       strcat (locale_string, "_");
+       strcat (locale_string, cc_part);
+     }
+ 
+   /* Done with analysis of user-supplied string.  */
+   free (lang_arg);
+   
+   /* Linear search is fine these days.  */
+   for (c = aa; c != last_language_code; c++)
+     {
+       if (strcmp (ll_part, language_table[c].abbrev) == 0)
+         { /* Set current language code.  */
+           language_code = c;
+           break;
+         }
+     }
+ 
+   /* If we didn't find this code, complain.  */
+   if (c == last_language_code)
+     warning (_("%s is not a valid ISO 639 language code"), ll_part);
+ 
+   /* Set the language our `getdocumenttext' function uses for
+      translating document strings.  */
+   document_language = xstrdup (locale_string);
+   free (locale_string);
+   
+   if (xml && !docbook)
+     { /* According to http://www.opentag.com/xfaq_lang.htm, xml:lang
+          takes an ISO 639 language code, optionally followed by a dash
+          (not underscore) and an ISO 3166 country code.  So we have
+          to make another version with - instead of _.  */
+       char *xml_locale = xmalloc (strlen (ll_part) + 1 + strlen (cc_part) + 1);
+       strcpy (xml_locale, ll_part);
+       strcat (xml_locale, "-");
+       strcat (xml_locale, cc_part);
+       xml_insert_element_with_attribute (DOCUMENTLANGUAGE, START,
+                                          "xml:lang=\"%s\"", xml_locale);
+       xml_insert_element (DOCUMENTLANGUAGE, END);
+       free (xml_locale);
+     }
+ 
+   free (ll_part);
+   free (cc_part);
+ }
+ 
+ 
+ 
+ /* Search through the encoding table for the given character, returning
+    its equivalent.  */
+ 
+ static int
+ cm_search_iso_map (char *html)
+ {
+   if (document_encoding_code == UTF_8)
+     {
+       /* Binary search in unicode_map.  */
+       size_t low = 0;
+       size_t high = sizeof (unicode_map) / sizeof (unicode_map[0]);
+ 
+       /* At each loop iteration, low < high; for indices < low the values are
+          smaller than HTML; for indices >= high the values are greater than HTML.
+          So, if HTML occurs in the list, it is at  low <= position < high.  */
+       do
+         {
+           size_t mid = low + (high - low) / 2; /* low <= mid < high */
+           int cmp = strcmp (unicode_map[mid].html, html);
+ 
+           if (cmp < 0)
+             low = mid + 1;
+           else if (cmp > 0)
+             high = mid;
+           else /* cmp == 0 */
+             return unicode_map[mid].unicode;
+         }
+       while (low < high);
+ 
+       return -1;
+     }
+   else
+     {
+       int i;
+       iso_map_type *iso = encoding_table[document_encoding_code].isotab;
+ 
+       /* If no conversion table for this encoding, quit.  */
+       if (!iso)
+         return -1;
+ 
+       for (i = 0; iso[i].html; i++)
+         {
+           if (strcmp (html, iso[i].html) == 0)
+             return i;
+         }
+ 
+       return -1;
+     }
+ }
+ 
+ 
+ /* @documentencoding.  Set the translation table.  */
+ 
+ void
+ cm_documentencoding (void)
+ {
+   if (!handling_delayed_writes)
+     {
+       encoding_code_type enc;
+       char *enc_arg;
+ 
+       /* This is ugly and probably needs to apply to other commands'
+          argument parsing as well.  When we're doing @documentencoding,
+          we're generally in the frontmatter of the document, and so the.
+          expansion in html/xml/docbook would generally be the empty string.
+          (Because those modes wait until the first normal text of the
+          document to start outputting.)  The result would thus be a warning
+          "unrecognized encoding name `'".  Sigh.  */
+       int save_html = html;
+       int save_xml = xml;
+ 
+       html = 0;
+       xml = 0;
+       get_rest_of_line (1, &enc_arg);
+       html = save_html;
+       xml = save_xml;
+ 
+       /* See if we have this encoding.  */
+       for (enc = no_encoding+1; enc != last_encoding_code; enc++)
+         {
+           if (mbscasecmp (enc_arg, encoding_table[enc].encname) == 0)
+             {
+               document_encoding_code = enc;
+               break;
+             }
+         }
+ 
+       /* If we didn't find this code, complain.  */
+       if (enc == last_encoding_code)
+         {
+           warning (_("unrecognized encoding name `%s'"), enc_arg);
+           /* Let the previous one go.  */
+           if (unknown_encoding && *unknown_encoding)
+             free (unknown_encoding);
+           unknown_encoding = xstrdup (enc_arg);
+         }
+ 
+       else if (encoding_table[document_encoding_code].isotab == NULL)
+         warning (_("sorry, encoding `%s' not supported"), enc_arg);
+ 
+       free (enc_arg);
+     }
+   else if (xml)
+     {
+       char *encoding = current_document_encoding ();
+ 
+       if (encoding && *encoding)
+         {
+           insert_string (" encoding=\"");
+           insert_string (encoding);
+           insert_string ("\"");
+         }
+ 
+       free (encoding);
+     }
+ }
+ 
+ char *
+ current_document_encoding (void)
+ {
+   if (document_encoding_code != no_encoding)
+     return xstrdup (encoding_table[document_encoding_code].encname);
+   else if (unknown_encoding && *unknown_encoding)
+     return xstrdup (unknown_encoding);
+   else
+     return xstrdup ("");
+ }
+ 
+ 
+ /* Add RC per the current encoding.  */
+ 
+ static void
+ add_encoded_char_from_code (int rc)
+ {
+   if (document_encoding_code == UTF_8)
+     {
+       if (rc < 0x80)
+         add_char (rc);
+       else if (rc < 0x800)
+         {
+           add_char (0xc0 | (rc >> 6));
+           add_char (0x80 | (rc & 0x3f));
+         }
+       else if (rc < 0x10000)
+         {
+           add_char (0xe0 | (rc >> 12));
+           add_char (0x80 | ((rc >> 6) & 0x3f));
+           add_char (0x80 | (rc & 0x3f));
+         }
+       else
+         {
+           add_char (0xf0 | (rc >> 18));
+           add_char (0x80 | ((rc >> 12) & 0x3f));
+           add_char (0x80 | ((rc >> 6) & 0x3f));
+           add_char (0x80 | (rc & 0x3f));
+         }
+     }
+   else
+     add_char (encoding_table[document_encoding_code].isotab[rc].bytecode);
+ }
+ 
+ 
+ /* If html or xml output, add &HTML_STR; to the output.  If not html and
+    the user requested encoded output, add the real 8-bit character
+    corresponding to HTML_STR from the translation tables.  Otherwise,
+    add INFO_STR.  */
+ 
+ static void
+ add_encoded_char (char *html_str, char *info_str)
+ {
+   if (html)
+     add_word_args ("&%s;", html_str);
+   else if (xml)
+     xml_insert_entity (html_str);
+   else if (enable_encoding && document_encoding_code != no_encoding)
+     {
+       /* Look for HTML_STR in the current translation table.  */
+       int rc = cm_search_iso_map (html_str);
+       if (rc >= 0)
+         /* We found it, add the real character.  */
+         add_encoded_char_from_code (rc);
+       else
+         { /* We didn't find it, that seems bad.  */
+           warning (_("invalid encoded character `%s'"), html_str);
+           add_word (info_str);
+         }
+     }
+   else
+     add_word (info_str);
+ }
+ 
+ 
+ 
+ /* Output an accent for HTML or XML. */
+ 
+ static void
+ cm_accent_generic_html (int arg, int start, int end, char *html_supported,
+     int single, int html_solo_standalone, char *html_solo)
+ {
+   static int valid_html_accent; /* yikes */
+ 
+   if (arg == START)
+     { /* If HTML has good support for this character, use it.  */
+       if (strchr (html_supported, curchar ()))
+         { /* Yes; start with an ampersand.  The character itself
+              will be added later in read_command (makeinfo.c).  */
+ 	  int saved_escape_html = escape_html;
+ 	  escape_html = 0;
+           valid_html_accent = 1;
+           add_char ('&');
+ 	  escape_html = saved_escape_html;
+         }
+       else
+         { /* @dotless{i} is not listed in html_supported but HTML entities
+ 	     starting with `i' can be used, such as &icirc;.  */
+ 	  int save_input_text_offset = input_text_offset;
+ 	  char *accent_contents;
+ 
+ 	  get_until_in_braces ("\n", &accent_contents);
+ 	  canon_white (accent_contents);
+ 
+ 	  if (strstr (accent_contents, "@dotless{i"))
+ 	    {
+ 	      add_word_args ("&%c", accent_contents[9]);
+ 	      valid_html_accent = 1;
+ 	    }
+ 	  else
+ 	    {
+ 	      /* Search for @dotless{} wasn't successful, so rewind.  */
+ 	      input_text_offset = save_input_text_offset;
+ 	      valid_html_accent = 0;
+ 	      if (html_solo_standalone)
+ 		{ /* No special HTML support, so produce standalone char.  */
+ 		  if (xml)
+ 		    xml_insert_entity (html_solo);
+ 		  else
+ 		    add_word_args ("&%s;", html_solo);
+ 		}
+ 	      else
+ 		/* If the html_solo does not exist as standalone character
+ 		   (namely &circ; &grave; &tilde;), then we use
+ 		   the single character version instead.  */
+ 		add_char (single);
+ 	    }
+ 
+ 	  free (accent_contents);
+         }
+     }
+   else if (arg == END)
+     { /* Only if we saw a valid_html_accent can we use the full
+          HTML accent (umlaut, grave ...).  */
+       if (valid_html_accent)
+         {
+           add_word (html_solo);
+           add_char (';');
+         }
+     }
+ }
+ 
+ 
+ /* If END is zero, there is nothing in the paragraph to accent.  This
+    can happen when we're in a menu with an accent command and
+    --no-headers is given, so the base character is not added.  In this
+    case we're not producing any output anyway, so just forget it.
+    Otherwise, produce the ASCII version of the accented char.  */
+ static void
+ cm_accent_generic_no_headers (int arg, int start, int end, int single,
+     char *html_solo)
+ {
+   if (arg == END && end > 0)
+     {
+       if (no_encoding)
+         add_char (single);
+       else
+         {
+           int rc;
+           char *buffer = xmalloc (1 + strlen (html_solo) + 1);
+ 	  assert (end > 0);
+           buffer[0] = output_paragraph[end - 1];
+           buffer[1] = 0;
+           strcat (buffer, html_solo);
+ 
+           rc = cm_search_iso_map (buffer);
+           if (rc >= 0)
+             {
+               /* Here we replace the character which has
+                  been inserted in read_command with
+                  the value we have found in the conversion table.  */
+               output_paragraph_offset--;
+               add_encoded_char_from_code (rc);
+             }
+           else
+             { /* If we didn't find a translation for this character,
+                  put the single instead. E.g., &Xuml; does not exist so X&uml;
+                  should be produced. */
+               /* When the below warning is issued, an author has nothing
+                  wrong in their document, let alone anything ``fixable''
+                  on their side.  So it is commented out for now.  */
+               /* warning (_("%s is an invalid ISO code, using %c"),
+                        buffer, single); */
+               add_char (single);
+             }
+ 
+           free (buffer);
+         }
+     }
+ }
+ 
+ 
+ 
+ /* Accent commands that take explicit arguments and don't have any
+    special HTML support.  */
+ 
+ void
+ cm_accent (int arg)
+ {
+   int old_escape_html = escape_html;
+   escape_html = 0;
+   if (arg == START)
+     {
+       /* Must come first to avoid ambiguity with overdot.  */
+       if (strcmp (command, "udotaccent") == 0)      /* underdot */
+         add_char ('.');
+     }
+   else if (arg == END)
+     {
+       if (strcmp (command, "=") == 0)               /* macron */
+         add_word ((html || xml) ? "&macr;" : "=");
+       else if (strcmp (command, "H") == 0)          /* Hungarian umlaut */
+         add_word ("''");
+       else if (strcmp (command, "dotaccent") == 0)  /* overdot */
+         add_meta_char ('.');
+       else if (strcmp (command, "ringaccent") == 0) /* ring */
+         add_char ('*');
+       else if (strcmp (command, "tieaccent") == 0)  /* long tie */
+         add_char ('[');
+       else if (strcmp (command, "u") == 0)          /* breve */
+         add_char ('(');
+       else if (strcmp (command, "ubaraccent") == 0) /* underbar */
+         add_char ('_');
+       else if (strcmp (command, "v") == 0)          /* hacek/check */
+         add_word ((html || xml) ? "&lt;" : "<");
+     }
+   escape_html = old_escape_html;
+ }
+ 
+ /* Common routine for the accent characters that have support in HTML.
+    If the character being accented is in the HTML_SUPPORTED set, then
+    produce &CHTML_SOLO;, for example, &Auml; for an A-umlaut.  If not in
+    HTML_SUPPORTED, just produce &HTML_SOLO;X for the best we can do with
+    at an X-umlaut.  If not producing HTML, just use SINGLE, a
+    character such as " which is the best plain text representation we
+    can manage.  If HTML_SOLO_STANDALONE is nonzero the given HTML_SOLO
+    exists as valid standalone character in HTML, e.g., &uml;.  */
+ 
+ static void
+ cm_accent_generic (int arg, int start, int end, char *html_supported,
+     int single, int html_solo_standalone, char *html_solo)
+ {
+   /* Accentuating space characters makes no sense, so issue a warning.  */
+   if (arg == START && isspace (input_text[input_text_offset]))
+     warning ("Accent command `@%s' must not be followed by whitespace",
+         command);
+ 
+   if (html || xml)
+     cm_accent_generic_html (arg, start, end, html_supported,
+                             single, html_solo_standalone, html_solo);
+   else if (no_headers)
+     cm_accent_generic_no_headers (arg, start, end, single, html_solo);
+   else if (arg == END)
+     {
+       if (enable_encoding)
+         /* use 8-bit if available */
+         cm_accent_generic_no_headers (arg, start, end, single, html_solo);
+       else
+         /* use regular character */
+         add_char (single);
+     }
+ }
+ 
+ void
+ cm_accent_umlaut (int arg, int start, int end)
+ {
+   cm_accent_generic (arg, start, end, "aouAOUEeIiy", '"', 1, "uml");
+ }
+ 
+ void
+ cm_accent_acute (int arg, int start, int end)
+ {
+   cm_accent_generic (arg, start, end, "AEIOUYaeiouy", '\'', 1, "acute");
+ }
+ 
+ void
+ cm_accent_cedilla (int arg, int start, int end)
+ {
+   cm_accent_generic (arg, start, end, "Cc", ',', 1, "cedil");
+ }
+ 
+ void
+ cm_accent_hat (int arg, int start, int end)
+ {
+   cm_accent_generic (arg, start, end, "AEIOUaeiou", '^', 0, "circ");
+ }
+ 
+ void
+ cm_accent_grave (int arg, int start, int end)
+ {
+   cm_accent_generic (arg, start, end, "AEIOUaeiou", '`', 0, "grave");
+ }
+ 
+ void
+ cm_accent_tilde (int arg, int start, int end)
+ {
+   cm_accent_generic (arg, start, end, "ANOano", '~', 0, "tilde");
+ }
+ 
+ 
+ 
+ /* Non-English letters/characters that don't insert themselves.  */
+ void
+ cm_special_char (int arg)
+ {
+   int old_escape_html = escape_html;
+   escape_html = 0;
+ 
+   if (arg == START)
+     {
+       if ((*command == 'L' || *command == 'l'
+            || *command == 'O' || *command == 'o')
+           && command[1] == 0)
+         { /* Lslash lslash Oslash oslash.
+              Lslash and lslash aren't supported in HTML.  */
+           if (command[0] == 'O')
+             add_encoded_char ("Oslash", "/O");
+           else if (command[0] == 'o')
+             add_encoded_char ("oslash", "/o");
+           else
+             add_word_args ("/%c", command[0]);
+         }
+       else if (strcmp (command, "exclamdown") == 0)
+         add_encoded_char ("iexcl", "!");
+       else if (strcmp (command, "questiondown") == 0)
+         add_encoded_char ("iquest", "?");
+       else if (strcmp (command, "euro") == 0)
+         /* http://www.cs.tut.fi/~jkorpela/html/euro.html suggests that
+            &euro; degrades best in old browsers.  */
+         add_encoded_char ("euro", "Euro ");
+       else if (strcmp (command, "pounds") == 0)
+         add_encoded_char ("pound" , "#");
+       else if (strcmp (command, "ordf") == 0)
+         add_encoded_char ("ordf" , "a");
+       else if (strcmp (command, "ordm") == 0)
+         add_encoded_char ("ordm" , "o");
+       else if (strcmp (command, "textdegree") == 0)
+         add_encoded_char ("deg" , "o");
+       else if (strcmp (command, "AE") == 0)
+         add_encoded_char ("AElig", command);
+       else if (strcmp (command, "ae") == 0)
+         add_encoded_char ("aelig",  command);
+       else if (strcmp (command, "OE") == 0)
+         add_encoded_char ("OElig", command);
+       else if (strcmp (command, "oe") == 0)
+         add_encoded_char ("oelig", command);
+       else if (strcmp (command, "AA") == 0)
+         add_encoded_char ("Aring", command);
+       else if (strcmp (command, "aa") == 0)
+         add_encoded_char ("aring", command);
+       else if (strcmp (command, "ss") == 0)
+         add_encoded_char ("szlig", command);
+       else if (strcmp (command, "guillemetleft") == 0
+                || strcmp (command, "guillemotleft") == 0)
+         add_encoded_char ("laquo", "<<");
+       else if (strcmp (command, "guillemetright") == 0
+                || strcmp (command, "guillemotright") == 0)
+         add_encoded_char ("raquo", ">>");
+       else
+         line_error ("cm_special_char internal error: command=@%s", command);
+     }
+   escape_html = old_escape_html;
+ }
+ 
+ /* Dotless i or j.  */
+ void
+ cm_dotless (int arg, int start, int end)
+ {
+   if (arg == END)
+     {
+       xml_no_para --;
+       if (output_paragraph[start] != 'i' && output_paragraph[start] != 'j')
+         /* This error message isn't perfect if the argument is multiple
+            characters, but it doesn't seem worth getting right.  */
+         line_error (_("%c%s expects `i' or `j' as argument, not `%c'"),
+                     COMMAND_PREFIX, command, output_paragraph[start]);
+ 
+       else if (end - start != 1)
+         line_error (_("%c%s expects a single character `i' or `j' as argument"),
+                     COMMAND_PREFIX, command);
+ 
+       /* We've already inserted the `i' or `j', so nothing to do.  */
+     }
+   else
+     xml_no_para ++;
+ }
diff -Nrc2 texinfo-4.12/makeinfo/lang.h texinfo-4.13/makeinfo/lang.h
*** texinfo-4.12/makeinfo/lang.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/lang.h	Tue Dec 25 15:57:20 2007
***************
*** 0 ****
--- 1,141 ----
+ /* lang.h -- declarations for language codes etc.
+    $Id: lang.h,v 1.14 2007/11/21 23:02:22 karl Exp $
+ 
+    Copyright (C) 1999, 2001, 2002, 2003, 2006, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Karl Heinz Marbaise <kama@hippo.fido.de>.  */
+ 
+ #ifndef LANG_H
+ #define LANG_H
+ 
+ /* The language code which can be changed through @documentlanguage
+    These code are the ISO-639 two letter codes.  */
+ 
+ #undef hz /* AIX 4.3.3 */
+ typedef enum
+ { 
+   aa, ab, ae, af, ak, am, an, ar, as, av, ay, az, ba, be, bg, bh, bi,
+   bm, bn, bo, br, bs, ca, ce, ch, co, cr, cs, cu, cv, cy, da, de, dv,
+   dz, ee, el, en, eo, es, et, eu, fa, ff, fi, fj, fo, fr, fy, ga, gd,
+   gl, gn, gu, gv, ha, he, hi, ho, hr, ht, hu, hy, hz, ia, id, ie, ig,
+   ii, ik, io, is, it, iu, ja, jv, ka, kg, ki, kj, kk, kl, km, kn, ko,
+   kr, ks, ku, kv, kw, ky, la, lb, lg, li, ln, lo, lt, lu, lv, mg, mh,
+   mi, mk, ml, mn, mo, mr, ms, mt, my, na, nb, nd, ne, ng, nl, nn, no,
+   nr, nv, ny, oc, oj, om, or, os, pa, pi, pl, ps, pt, qu, rm, rn, ro,
+   ru, rw, sa, sc, sd, se, sg, si, sk, sl, sm, sn, so, sq, sr, ss, st,
+   su, sv, sw, ta, te, tg, th, ti, tk, tl, tn, to, tr, ts, tt, tw, ty,
+   ug, uk, ur, uz, ve, vi, vo, wa, wo, xh, yi, yo, za, zh, zu,
+   last_language_code
+ } language_code_type;
+ 
+ /* The current language code.  */
+ extern language_code_type language_code;
+ 
+ 
+ /* Information for each language.  */
+ typedef struct
+ {
+   language_code_type lc; /* language code as enum type */
+   char *abbrev;          /* two letter language code */
+   char *desc;            /* full name for language code */
+ } language_type;
+ 
+ extern language_type language_table[];
+ 
+ 
+ 
+ /* The document encoding. This is useful to produce true 8-bit
+    characters according to the @documentencoding.  */
+ 
+ typedef enum {
+   no_encoding,
+   US_ASCII,
+   ISO_8859_1,
+   ISO_8859_2,
+   ISO_8859_3,    /* this and none of the rest are supported. */
+   ISO_8859_4,
+   ISO_8859_5,
+   ISO_8859_6,
+   ISO_8859_7,
+   ISO_8859_8,
+   ISO_8859_9,
+   ISO_8859_10,
+   ISO_8859_11,
+   ISO_8859_12,
+   ISO_8859_13,
+   ISO_8859_14,
+   ISO_8859_15,
+   KOI8_R,
+   KOI8_U,
+   UTF_8,
+   last_encoding_code
+ } encoding_code_type;
+ 
+ /* The current document encoding, or null if not set.  */
+ extern encoding_code_type document_encoding_code;
+ 
+ /* If an encoding is not supported, just keep it as a string.  */
+ extern char *unknown_encoding;
+ 
+ /* Maps an HTML abbreviation to ISO and Unicode codes for a given code.  */
+ 
+ typedef unsigned short int unicode_t; /* should be 16 bits */
+ typedef unsigned char byte_t;
+ 
+ typedef struct
+ {
+   char *html;        /* HTML equivalent like umlaut auml => &auml; */
+   byte_t bytecode;   /* 8-Bit Code (ISO 8859-1,...) */
+   unicode_t unicode; /* Unicode in U+ convention */
+   char *translit;    /* 7-bit transliteration */
+ } iso_map_type;
+ 
+ /* Information about the document encoding. */
+ typedef struct
+ {
+   encoding_code_type ec; /* document encoding type (see above enum) */
+   char *encname;         /* encoding name like "iso-8859-1", valid in
+                             HTML and Emacs */
+   iso_map_type *isotab;  /* address of ISO translation table */
+ } encoding_type;
+ 
+ /* Table with all the encoding codes that we recognize.  */
+ extern encoding_type encoding_table[];
+ 
+ 
+ /* The commands.  */
+ extern void cm_documentlanguage (void),
+      cm_documentencoding (void);
+ 
+ /* Accents, other non-English characters.  */
+ void cm_accent (int arg), cm_special_char (int arg),
+      cm_dotless (int arg, int start, int end);
+ 
+ extern void cm_accent_umlaut (int arg, int start, int end),
+      cm_accent_acute (int arg, int start, int end),
+      cm_accent_cedilla (int arg, int start, int end),
+      cm_accent_hat (int arg, int start, int end),
+      cm_accent_grave (int arg, int start, int end),
+      cm_accent_tilde (int arg, int start, int end);
+ 
+ extern char *current_document_encoding (void);
+ 
+ extern const char *lang_transliterate_char (byte_t ch);
+ 
+ extern char *document_language;
+ 
+ #endif /* not LANG_H */
diff -Nrc2 texinfo-4.12/makeinfo/macro.c texinfo-4.13/makeinfo/macro.c
*** texinfo-4.12/makeinfo/macro.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/macro.c	Sun Jul  1 14:20:32 2007
***************
*** 0 ****
--- 1,1095 ----
+ /* macro.c -- user-defined macros for Texinfo.
+    $Id: macro.c,v 1.12 2007/07/01 21:20:32 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2002, 2003, 2005, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "cmds.h"
+ #include "files.h"
+ #include "macro.h"
+ #include "makeinfo.h"
+ #include "insertion.h"
+ 
+ /* If non-NULL, this is an output stream to write the full macro expansion
+    of the input text to.  The result is another texinfo file, but
+    missing @include, @infoinclude, @macro, and macro invocations.  Instead,
+    all of the text is placed within the file. */
+ FILE *macro_expansion_output_stream = NULL;
+ 
+ /* Output file for -E.  */
+ char *macro_expansion_filename;
+ 
+ /* Nonzero means a macro string is in execution, as opposed to a file. */
+ int me_executing_string = 0;
+ 
+ /* Nonzero means we want only to expand macros and
+    leave everything else intact.  */
+ int only_macro_expansion = 0;
+ 
+ static ITEXT **itext_info = NULL;
+ static int itext_size = 0;
+ 
+ /* Return the arglist on the current line.  This can behave in two different
+    ways, depending on the variable BRACES_REQUIRED_FOR_MACRO_ARGS. */
+ int braces_required_for_macro_args = 0;
+ 
+ /* Array of macros and definitions. */
+ MACRO_DEF **macro_list = NULL;
+ 
+ int macro_list_len = 0;         /* Number of elements. */
+ int macro_list_size = 0;        /* Number of slots in total. */
+ 
+ /* Return the length of the array in ARRAY. */
+ int
+ array_len (char **array)
+ {
+   int i = 0;
+ 
+   if (array)
+     for (i = 0; array[i]; i++);
+ 
+   return i;
+ }
+ 
+ void
+ free_array (char **array)
+ {
+   if (array)
+     {
+       int i;
+       for (i = 0; array[i]; i++)
+         free (array[i]);
+ 
+       free (array);
+     }
+ }
+ 
+ /* Return the macro definition of NAME or NULL if NAME is not defined. */
+ MACRO_DEF *
+ find_macro (char *name)
+ {
+   int i;
+   MACRO_DEF *def;
+ 
+   def = NULL;
+   for (i = 0; macro_list && (def = macro_list[i]); i++)
+     {
+       if ((!def->inhibited) && (strcmp (def->name, name) == 0))
+         break;
+     }
+   return def;
+ }
+ 
+ /* Add the macro NAME with ARGLIST and BODY to the list of defined macros.
+    SOURCE_FILE is the name of the file where this definition can be found,
+    and SOURCE_LINENO is the line number within that file.  If a macro already
+    exists with NAME, then a warning is produced, and that previous
+    definition is overwritten. */
+ static void
+ add_macro (char *name, char **arglist, char *body, char *source_file,
+     int source_lineno, int flags)
+ {
+   MACRO_DEF *def;
+ 
+   def = find_macro (name);
+ 
+   if (!def)
+     {
+       if (macro_list_len + 2 >= macro_list_size)
+         macro_list = xrealloc
+           (macro_list, ((macro_list_size += 10) * sizeof (MACRO_DEF *)));
+ 
+       macro_list[macro_list_len] = xmalloc (sizeof (MACRO_DEF));
+       macro_list[macro_list_len + 1] = NULL;
+ 
+       def = macro_list[macro_list_len];
+       macro_list_len += 1;
+       def->name = name;
+     }
+   else
+     {
+       char *temp_filename = input_filename;
+       int temp_line = line_number;
+ 
+       warning (_("macro `%s' previously defined"), name);
+ 
+       input_filename = def->source_file;
+       line_number = def->source_lineno;
+       warning (_("here is the previous definition of `%s'"), name);
+ 
+       input_filename = temp_filename;
+       line_number = temp_line;
+ 
+       if (def->arglist)
+         {
+           int i;
+ 
+           for (i = 0; def->arglist[i]; i++)
+             free (def->arglist[i]);
+ 
+           free (def->arglist);
+         }
+       free (def->source_file);
+       free (def->body);
+     }
+ 
+   def->source_file = xstrdup (source_file);
+   def->source_lineno = source_lineno;
+   def->body = body;
+   def->arglist = arglist;
+   def->argcount = array_len (arglist);
+   def->inhibited = 0;
+   def->flags = flags;
+ }
+ 
+ 
+ char **
+ get_brace_args (enum quote_type quote)
+ {
+   char **arglist, *word;
+   int arglist_index, arglist_size;
+   int character, escape_seen, start;
+   int depth = 1;
+ 
+   /* There is an arglist in braces here, so gather the args inside of it. */
+   skip_whitespace_and_newlines ();
+   input_text_offset++;
+   arglist = NULL;
+   arglist_index = arglist_size = 0;
+ 
+  get_arg:
+   skip_whitespace_and_newlines ();
+   start = input_text_offset;
+   escape_seen = 0;
+ 
+   while ((character = curchar ()))
+     {
+       if (character == '\\')
+         {
+           input_text_offset += 2;
+           escape_seen = 1;
+         }
+       else if (character == '{')
+         {
+           depth++;
+           input_text_offset++;
+         }
+       else if ((character == ','
+ 		&& !(quote == quote_single
+ 		     || (quote == quote_many && depth > 1)))
+ 	       || ((character == '}') && depth == 1))
+         {
+           int len = input_text_offset - start;
+ 
+           if (len || (character != '}'))
+             {
+               word = xmalloc (1 + len);
+               memcpy (word, input_text + start, len);
+               word[len] = 0;
+ 
+               /* Clean up escaped characters. */
+               if (escape_seen)
+                 {
+                   int i;
+                   for (i = 0; word[i]; i++)
+                     if (word[i] == '\\')
+                       memmove (word + i, word + i + 1,
+                                1 + strlen (word + i + 1));
+                 }
+ 
+               if (arglist_index + 2 >= arglist_size)
+                 arglist = xrealloc
+                   (arglist, (arglist_size += 10) * sizeof (char *));
+ 
+               arglist[arglist_index++] = word;
+               arglist[arglist_index] = NULL;
+             }
+ 
+           input_text_offset++;
+           if (character == '}')
+             break;
+           else
+             goto get_arg;
+         }
+       else if (character == '}')
+         {
+           depth--;
+           input_text_offset++;
+         }
+       else
+         {
+           input_text_offset++;
+           if (character == '\n') line_number++;
+         }
+     }
+   return arglist;
+ }
+ 
+ static char **
+ get_macro_args (MACRO_DEF *def)
+ {
+   int i;
+   char *word;
+ 
+   /* Quickly check to see if this macro has been invoked with any arguments.
+      If not, then don't skip any of the following whitespace. */
+   for (i = input_text_offset; i < input_text_length; i++)
+     if (!cr_or_whitespace (input_text[i]))
+       break;
+ 
+   if (input_text[i] != '{')
+     {
+       if (braces_required_for_macro_args)
+         {
+           return NULL;
+         }
+       else
+         {
+           /* Braces are not required to fill out the macro arguments.  If
+              this macro takes one argument, it is considered to be the
+              remainder of the line, sans whitespace. */
+           if (def->arglist && def->arglist[0] && !def->arglist[1])
+             {
+               char **arglist;
+ 
+               get_rest_of_line (0, &word);
+               if (input_text_offset > 0
+ 		  && input_text[input_text_offset - 1] == '\n')
+                 {
+                   input_text_offset--;
+                   line_number--;
+                 }
+               /* canon_white (word); */
+               arglist = xmalloc (2 * sizeof (char *));
+               arglist[0] = word;
+               arglist[1] = NULL;
+               return arglist;
+             }
+           else
+             {
+               /* The macro either took no arguments, or took more than
+                  one argument.  In that case, it must be invoked with
+                  arguments surrounded by braces. */
+               return NULL;
+             }
+         }
+     }
+   return get_brace_args (def->argcount == 1 ? quote_single : quote_many);
+ }
+ 
+ /* Substitute actual parameters for named parameters in body.
+    The named parameters which appear in BODY must by surrounded
+    reverse slashes, as in \foo\. */
+ static char *
+ apply (char **named, char **actuals, char *body)
+ {
+   int i;
+   int new_body_index, new_body_size;
+   char *new_body, *text;
+   int length_of_actuals;
+ 
+   length_of_actuals = array_len (actuals);
+   new_body_size = strlen (body);
+   new_body = xmalloc (1 + new_body_size);
+ 
+   /* Copy chars from BODY into NEW_BODY. */
+   i = 0;
+   new_body_index = 0;
+ 
+   while (body[i])
+     { /* Anything but a \ is easy.  */
+       if (body[i] != '\\')
+         new_body[new_body_index++] = body[i++];
+       else
+         { /* Snarf parameter name, check against named parameters. */
+           char *param;
+           int param_start, len;
+ 
+           param_start = ++i;
+           while (body[i] && body[i] != '\\')
+             i++;
+ 
+           len = i - param_start;
+           param = xmalloc (1 + len);
+           memcpy (param, body + param_start, len);
+           param[len] = 0;
+ 
+           if (body[i]) /* move past \ */
+             i++;
+ 
+           if (len == 0)
+             { /* \\ always means \, even if macro has no args.  */
+               len++;
+               text = xmalloc (1 + len);
+               sprintf (text, "\\%s", param);
+             }
+           else
+             {
+               int which;
+               
+               /* Check against named parameters. */
+               for (which = 0; named && named[which]; which++)
+                 if (STREQ (named[which], param))
+                   break;
+ 
+               if (named && named[which])
+                 {
+                   text = which < length_of_actuals ? actuals[which] : NULL;
+                   if (!text)
+                     text = "";
+                   len = strlen (text);
+                   text = xstrdup (text);  /* so we can free it */
+                 }
+               else
+                 { /* not a parameter, so it's an error.  */
+                   warning (_("\\ in macro expansion followed by `%s' instead of parameter name"),
+                              param); 
+                   len++;
+                   text = xmalloc (1 + len);
+                   sprintf (text, "\\%s", param);
+                 }
+             }
+ 
+           if (strlen (param) + 2 < len)
+             {
+               new_body_size += len + 1;
+               new_body = xrealloc (new_body, new_body_size);
+             }
+ 
+           free (param);
+ 
+           strcpy (new_body + new_body_index, text);
+           new_body_index += len;
+ 
+           free (text);
+         }
+     }
+ 
+   new_body[new_body_index] = 0;
+   return new_body;
+ }
+ 
+ /* Expand macro passed in DEF, a pointer to a MACRO_DEF, and
+    return its expansion as a string.  */
+ char *
+ expand_macro (MACRO_DEF *def)
+ {
+   char **arglist;
+   char *execution_string = NULL;
+   int start_line = line_number;
+ 
+   /* Gather the arguments present on the line if there are any. */
+   arglist = get_macro_args (def);
+ 
+   if (def->argcount < array_len (arglist))
+     {
+       free_array (arglist);
+       line_error (_("Macro `%s' called on line %d with too many args"),
+                   def->name, start_line);
+       return execution_string;
+     }
+ 
+   if (def->body)
+     execution_string = apply (def->arglist, arglist, def->body);
+ 
+   free_array (arglist);
+   return execution_string;
+ }
+ 
+ /* Execute the macro passed in DEF, a pointer to a MACRO_DEF.  */
+ void
+ execute_macro (MACRO_DEF *def)
+ {
+   char *execution_string;
+   int start_line = line_number, end_line;
+ 
+   if (macro_expansion_output_stream && !executing_string && !me_inhibit_expansion)
+     me_append_before_this_command ();
+ 
+   execution_string = expand_macro (def);
+   if (!execution_string)
+     return;
+ 
+   if (def->body)
+     {
+       /* Reset the line number to where the macro arguments began.
+          This makes line numbers reported in error messages correct in
+          case the macro arguments span several lines and the expanded
+          arguments invoke other commands.  */
+       end_line = line_number;
+       line_number = start_line;
+ 
+       if (macro_expansion_output_stream
+           && !executing_string && !me_inhibit_expansion)
+         {
+           remember_itext (input_text, input_text_offset);
+           me_execute_string (execution_string);
+         }
+       else
+         execute_string ("%s", execution_string);
+ 
+       free (execution_string);
+       line_number = end_line;
+     }
+ }
+ 
+ 
+ /* Read and remember the definition of a macro.  If RECURSIVE is set,
+    set the ME_RECURSE flag.  MACTYPE is either "macro" or "rmacro", and
+    tells us what the matching @end should be.  */
+ static void
+ define_macro (char *mactype, int recursive)
+ {
+   int i, start;
+   char *name, *line;
+   char *last_end = NULL;
+   char *body = NULL;
+   char **arglist = NULL;
+   int body_size = 0, body_index = 0;
+   int depth = 1;
+   int flags = 0;
+   int defining_line = line_number;
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     me_append_before_this_command ();
+ 
+   skip_whitespace ();
+ 
+   /* Get the name of the macro.  This is the set of characters which are
+      not whitespace and are not `{' immediately following the @macro. */
+   start = input_text_offset;
+   {
+     int len;
+ 
+     for (i = start; i < input_text_length && input_text[i] != '{'
+                     && !cr_or_whitespace (input_text[i]);
+          i++) ;
+ 
+     len = i - start;
+     name = xmalloc (1 + len);
+     memcpy (name, input_text + start, len);
+     name[len] = 0;
+     input_text_offset = i;
+   }
+ 
+   skip_whitespace ();
+ 
+   /* It is not required that the definition of a macro includes an arglist.
+      If not, don't try to get the named parameters, just use a null list. */
+   if (curchar () == '{')
+     {
+       int character;
+       int arglist_index = 0, arglist_size = 0;
+       int gathering_words = 1;
+       char *word = NULL;
+ 
+       /* Read the words inside of the braces which determine the arglist.
+          These words will be replaced within the body of the macro at
+          execution time. */
+ 
+       input_text_offset++;
+       skip_whitespace_and_newlines ();
+ 
+       while (gathering_words)
+         {
+           int len;
+ 
+           for (i = input_text_offset;
+                (character = input_text[i]);
+                i++)
+             {
+               switch (character)
+                 {
+                 case '\n':
+                   line_number++;
+                 case ' ':
+                 case '\t':
+                 case ',':
+                 case '}':
+                   /* Found the end of the current arglist word.  Save it. */
+                   len = i - input_text_offset;
+                   word = xmalloc (1 + len);
+                   memcpy (word, input_text + input_text_offset, len);
+                   word[len] = 0;
+                   input_text_offset = i;
+ 
+                   /* Advance to the comma or close-brace that signified
+                      the end of the argument. */
+                   while ((character = curchar ())
+                          && character != ','
+                          && character != '}')
+                     {
+                       input_text_offset++;
+                       if (character == '\n')
+                         line_number++;
+                     }
+ 
+                   /* Add the word to our list of words. */
+                   if (arglist_index + 2 >= arglist_size)
+                     {
+                       arglist_size += 10;
+                       arglist = xrealloc (arglist,
+                                           arglist_size * sizeof (char *));
+                     }
+ 
+                   arglist[arglist_index++] = word;
+                   arglist[arglist_index] = NULL;
+                   break;
+                 }
+ 
+               if (character == '}')
+                 {
+                   input_text_offset++;
+                   gathering_words = 0;
+                   break;
+                 }
+ 
+               if (character == ',')
+                 {
+                   input_text_offset++;
+                   skip_whitespace_and_newlines ();
+                   i = input_text_offset - 1;
+                 }
+             }
+         }
+     }
+ 
+   /* Read the text carefully until we find an "@end macro" which
+      matches this one.  The text in between is the body of the macro. */
+   skip_whitespace_and_newlines ();
+ 
+   while (depth)
+     {
+       if ((input_text_offset + 9) > input_text_length)
+         {
+           file_line_error (input_filename, defining_line,
+ 			   _("%cend macro not found"), COMMAND_PREFIX);
+           return;
+         }
+ 
+       get_rest_of_line (0, &line);
+ 
+       /* Handle commands only meaningful within a macro. */
+       if ((*line == COMMAND_PREFIX) && (depth == 1) &&
+           (strncmp (line + 1, "allow-recursion", 15) == 0) &&
+           (line[16] == 0 || whitespace (line[16])))
+         {
+ 	  warning (_("@allow-recursion is deprecated; please use @rmacro instead"));
+           for (i = 16; whitespace (line[i]); i++);
+           strcpy (line, line + i);
+           flags |= ME_RECURSE;
+           if (!*line)
+             {
+               free (line);
+               continue;
+             }
+         }
+ 
+       if ((*line == COMMAND_PREFIX) && (depth == 1) &&
+           (strncmp (line + 1, "quote-arg", 9) == 0) &&
+           (line[10] == 0 || whitespace (line[10])))
+         {
+ 	  warning (_("@quote-arg is deprecated; arguments are quoted by default"));
+           for (i = 10; whitespace (line[i]); i++);
+           strcpy (line, line + i);
+ 	  if (!*line)
+ 	    {
+ 	      free (line);
+ 	      continue;
+ 	    }
+         }
+ 
+       if (*line == COMMAND_PREFIX
+           && (strncmp (line + 1, "macro ", 6) == 0
+               || strncmp (line + 1, "rmacro ", 7) == 0))
+         depth++;
+ 
+       /* Incorrect implementation of nesting -- just check that the last
+          @end matches what we started with.  Since nested macros don't
+          work in TeX anyway, this isn't worth the trouble to get right.  */
+       if (*line == COMMAND_PREFIX && strncmp (line + 1, "end macro", 9) == 0)
+         {
+           depth--;
+           last_end = "macro";
+         }
+       if (*line == COMMAND_PREFIX && strncmp (line + 1, "end rmacro", 10) == 0)
+         {
+           depth--;
+           last_end = "rmacro";
+         }
+ 
+       if (depth)
+         {
+           if ((body_index + strlen (line) + 3) >= body_size)
+             body = xrealloc (body, body_size += 3 + strlen (line));
+           strcpy (body + body_index, line);
+           body_index += strlen (line);
+           body[body_index++] = '\n';
+           body[body_index] = 0;
+         }
+       free (line);
+     }
+ 
+   /* Check that @end matched the macro command.  */
+   if (!STREQ (last_end, mactype))
+     warning (_("mismatched @end %s with @%s"), last_end, mactype);
+ 
+   /* If it was an empty macro like
+      @macro foo
+      @end macro
+      create an empty body.  (Otherwise, the macro is not expanded.)  */
+   if (!body)
+     {
+       body = (char *)malloc(1);
+       *body = 0;
+     }
+ 
+   /* We now have the name, the arglist, and the body.  However, BODY
+      includes the final newline which preceded the `@end macro' text.
+      Delete it. */
+   if (body && strlen (body))
+     body[strlen (body) - 1] = 0;
+ 
+   if (recursive)
+     flags |= ME_RECURSE;
+     
+   add_macro (name, arglist, body, input_filename, defining_line, flags);
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     {
+       /* Remember text for future expansions.  */
+       remember_itext (input_text, input_text_offset);
+ 
+       /* Bizarrely, output the @macro itself.  This is so texinfo.tex
+          will have a chance to read it when texi2dvi calls makeinfo -E.
+          The problem is that we don't really expand macros in all
+          contexts; a @table's @item is one.  And a fix is not obvious to
+          me, since it appears virtually identical to any other internal
+          expansion.  Just setting a variable in cm_item caused other
+          strange expansion problems.  */
+       write_region_to_macro_output ("@", 0, 1);
+       write_region_to_macro_output (mactype, 0, strlen (mactype));
+       write_region_to_macro_output (" ", 0, 1);
+       write_region_to_macro_output (input_text, start, input_text_offset);
+     }
+ }
+ 
+ void 
+ cm_macro (void)
+ {
+   define_macro ("macro", 0);
+ }
+ 
+ void 
+ cm_rmacro (void)
+ {
+   define_macro ("rmacro", 1);
+ }
+ 
+ /* Delete the macro with name NAME.  The macro is deleted from the list,
+    but it is also returned.  If there was no macro defined, NULL is
+    returned. */
+ 
+ static MACRO_DEF *
+ delete_macro (char *name)
+ {
+   int i;
+   MACRO_DEF *def;
+ 
+   def = NULL;
+ 
+   for (i = 0; macro_list && (def = macro_list[i]); i++)
+     if (strcmp (def->name, name) == 0)
+       {
+         memmove (macro_list + i, macro_list + i + 1,
+                ((macro_list_len + 1) - i) * sizeof (MACRO_DEF *));
+         macro_list_len--;
+         break;
+       }
+   return def;
+ }
+ 
+ void
+ cm_unmacro (void)
+ {
+   int i;
+   char *line, *name;
+   MACRO_DEF *def;
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     me_append_before_this_command ();
+ 
+   get_rest_of_line (0, &line);
+ 
+   for (i = 0; line[i] && !whitespace (line[i]); i++);
+   name = xmalloc (i + 1);
+   memcpy (name, line, i);
+   name[i] = 0;
+ 
+   def = delete_macro (name);
+ 
+   if (def)
+     {
+       free (def->source_file);
+       free (def->name);
+       free (def->body);
+ 
+       if (def->arglist)
+         {
+           int i;
+ 
+           for (i = 0; def->arglist[i]; i++)
+             free (def->arglist[i]);
+ 
+           free (def->arglist);
+         }
+ 
+       free (def);
+     }
+ 
+   free (line);
+   free (name);
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     remember_itext (input_text, input_text_offset);
+ }
+ 
+ /* How to output sections of the input file verbatim. */
+ 
+ /* Set the value of POINTER's offset to OFFSET. */
+ ITEXT *
+ remember_itext (char *pointer, int offset)
+ {
+   int i;
+   ITEXT *itext = NULL;
+ 
+   /* If we have no info, initialize a blank list. */
+   if (!itext_info)
+     {
+       itext_info = xmalloc ((itext_size = 10) * sizeof (ITEXT *));
+       for (i = 0; i < itext_size; i++)
+         itext_info[i] = NULL;
+     }
+ 
+   /* If the pointer is already present in the list, then set the offset. */
+   for (i = 0; i < itext_size; i++)
+     if ((itext_info[i]) &&
+         (itext_info[i]->pointer == pointer))
+       {
+         itext = itext_info[i];
+         itext_info[i]->offset = offset;
+         break;
+       }
+ 
+   if (i == itext_size)
+     {
+       /* Find a blank slot (or create a new one), and remember the
+          pointer and offset. */
+       for (i = 0; i < itext_size; i++)
+         if (itext_info[i] == NULL)
+           break;
+ 
+       /* If not found, then add some slots. */
+       if (i == itext_size)
+         {
+           int j;
+ 
+           itext_info = xrealloc
+             (itext_info, (itext_size += 10) * sizeof (ITEXT *));
+ 
+           for (j = i; j < itext_size; j++)
+             itext_info[j] = NULL;
+         }
+ 
+       /* Now add the pointer and the offset. */
+       itext_info[i] = xmalloc (sizeof (ITEXT));
+       itext_info[i]->pointer = pointer;
+       itext_info[i]->offset = offset;
+       itext = itext_info[i];
+     }
+   return itext;
+ }
+ 
+ /* Forget the input text associated with POINTER. */
+ void
+ forget_itext (char *pointer)
+ {
+   int i;
+ 
+   for (i = 0; i < itext_size; i++)
+     if (itext_info[i] && (itext_info[i]->pointer == pointer))
+       {
+         free (itext_info[i]);
+         itext_info[i] = NULL;
+         break;
+       }
+ }
+ 
+ /* Append the text which appeared in input_text from the last offset to
+    the character just before the command that we are currently executing. */
+ void
+ me_append_before_this_command (void)
+ {
+   int i;
+ 
+   for (i = input_text_offset; i && (input_text[i] != COMMAND_PREFIX); i--)
+     ;
+   maybe_write_itext (input_text, i);
+ }
+ 
+ /* Similar to execute_string, but only takes a single string argument,
+    and remembers the input text location, etc. */
+ void
+ me_execute_string (char *execution_string)
+ {
+   int saved_escape_html = escape_html;
+   int saved_in_paragraph = in_paragraph;
+   escape_html = me_executing_string == 0;
+   in_paragraph = 0;
+   
+   pushfile ();
+   input_text_offset = 0;
+   /* The following xstrdup is so we can relocate input_text at will.  */
+   input_text = xstrdup (execution_string);
+   input_filename = xstrdup (input_filename);
+   input_text_length = strlen (execution_string);
+ 
+   remember_itext (input_text, 0);
+ 
+   me_executing_string++;
+   reader_loop ();
+   free (input_text);
+   free (input_filename);
+   popfile ();
+   me_executing_string--;
+ 
+   in_paragraph = saved_in_paragraph;
+   escape_html = saved_escape_html;
+ }
+ 
+ /* A wrapper around me_execute_string which saves and restores
+    variables important for output generation.  This is called
+    when we need to produce macro-expanded output for input which
+    leaves no traces in the Info output.  */
+ void
+ me_execute_string_keep_state (char *execution_string, char *append_string)
+ {
+   int op_orig, popen_orig;
+   int fill_orig, newline_orig, indent_orig, meta_pos_orig;
+ 
+   remember_itext (input_text, input_text_offset);
+   op_orig = output_paragraph_offset;
+   meta_pos_orig = meta_char_pos;
+   popen_orig = paragraph_is_open;
+   fill_orig = filling_enabled;
+   newline_orig = last_char_was_newline;
+   filling_enabled = 0;
+   indent_orig = no_indent;
+   no_indent = 1;
+   me_execute_string (execution_string);
+   if (append_string)
+     write_region_to_macro_output (append_string, 0, strlen (append_string));
+   output_paragraph_offset = op_orig;
+   meta_char_pos = meta_pos_orig;
+   paragraph_is_open = popen_orig;
+   filling_enabled = fill_orig;
+   last_char_was_newline = newline_orig;
+   no_indent = indent_orig;
+ }
+ 
+ /* Append the text which appears in input_text from the last offset to
+    the current OFFSET. */
+ void
+ append_to_expansion_output (int offset)
+ {
+   int i;
+   ITEXT *itext = NULL;
+ 
+   for (i = 0; i < itext_size; i++)
+     if (itext_info[i] && itext_info[i]->pointer == input_text)
+       {
+         itext = itext_info[i];
+         break;
+       }
+ 
+   if (!itext)
+     return;
+ 
+   if (offset > itext->offset)
+     {
+       write_region_to_macro_output (input_text, itext->offset, offset);
+       remember_itext (input_text, offset);
+     }
+ }
+ 
+ /* Only write this input text iff it appears in our itext list. */
+ void
+ maybe_write_itext (char *pointer, int offset)
+ {
+   int i;
+   ITEXT *itext = NULL;
+ 
+   for (i = 0; i < itext_size; i++)
+     if (itext_info[i] && (itext_info[i]->pointer == pointer))
+       {
+         itext = itext_info[i];
+         break;
+       }
+ 
+   if (itext && (itext->offset < offset))
+     {
+       write_region_to_macro_output (itext->pointer, itext->offset, offset);
+       remember_itext (pointer, offset);
+     }
+ }
+ 
+ void
+ write_region_to_macro_output (char *string, int start, int end)
+ {
+   if (macro_expansion_output_stream)
+     fwrite (string + start, 1, end - start, macro_expansion_output_stream);
+ }
+ 
+ /* Aliases. */
+ 
+ typedef struct alias_struct
+ {
+   char *alias;
+   char *mapto;
+   struct alias_struct *next;
+ } alias_type;
+ 
+ static alias_type *aliases; 
+ 
+ /* @alias aname = cmdname */
+ 
+ void
+ cm_alias (void)
+ {
+   alias_type *a = xmalloc (sizeof (alias_type));
+ 
+   skip_whitespace ();
+   get_until_in_line (0, "=", &(a->alias));
+   canon_white (a->alias);
+ 
+   discard_until ("=");
+   skip_whitespace ();
+   get_until_in_line (0, " ", &(a->mapto));
+ 
+   a->next = aliases;
+   aliases = a;
+ }
+ 
+ /* Perform an alias expansion.  Called from read_command.  */
+ char *
+ alias_expand (char *tok)
+ {
+   alias_type *findit = aliases;
+ 
+   while (findit)
+     if (strcmp (findit->alias, tok) == 0)
+       {
+ 	free (tok);
+ 	return alias_expand (xstrdup (findit->mapto));
+       }
+     else
+       findit = findit->next;
+ 
+   return tok;
+ }
+ 
+ /* definfoenclose implementation.  */
+ 
+ /* This structure is used to track enclosure macros.  When an enclosure
+    macro is recognized, a pointer to the enclosure block corresponding 
+    to its name is saved in the brace element for its argument. */
+ typedef struct enclose_struct
+ {
+   char *enclose;
+   char *before;
+   char *after;
+   struct enclose_struct *next;
+ } enclosure_type;
+ 
+ static enclosure_type *enclosures; 
+ 
+ typedef struct enclosure_stack_struct
+ {
+     enclosure_type *current;
+     struct enclosure_stack_struct *next;
+ } enclosure_stack_type;
+ 
+ static enclosure_stack_type *enclosure_stack;
+ 
+ /* @definfoenclose */
+ void
+ cm_definfoenclose (void)
+ {
+   enclosure_type *e = xmalloc (sizeof (enclosure_type));
+ 
+   skip_whitespace ();
+   get_until_in_line (1, ",", &(e->enclose));
+   discard_until (",");
+   get_until_in_line (0, ",", &(e->before));
+   discard_until (",");
+   get_until_in_line (0, "\n", &(e->after));
+ 
+   e->next = enclosures;
+   enclosures = e;
+ }
+ 
+ /* If TOK is an enclosure command, push it on the enclosure stack and
+    return 1.  Else return 0.  */
+ 
+ int
+ enclosure_command (char *tok)
+ {
+   enclosure_type *findit = enclosures;
+ 
+   while (findit)
+     if (strcmp (findit->enclose, tok) == 0)
+       {
+         enclosure_stack_type *new = xmalloc (sizeof (enclosure_stack_type));
+         new->current = findit;
+         new->next = enclosure_stack;
+         enclosure_stack = new;
+ 
+         return 1;
+       }
+     else
+       findit = findit->next;
+ 
+   return 0;
+ }
+ 
+ /* actually perform the enclosure expansion */
+ void
+ enclosure_expand (int arg, int start, int end)
+ {
+   if (arg == START)
+     add_word (enclosure_stack->current->before);
+   else
+     {
+       enclosure_stack_type *temp;
+ 
+       add_word (enclosure_stack->current->after);
+ 
+       temp = enclosure_stack;
+       enclosure_stack = enclosure_stack->next;
+       free (temp);
+     }
+ }
diff -Nrc2 texinfo-4.12/makeinfo/macro.h texinfo-4.13/makeinfo/macro.h
*** texinfo-4.12/makeinfo/macro.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/macro.h	Sun Jul  1 14:20:32 2007
***************
*** 0 ****
--- 1,77 ----
+ /* macro.h -- declarations for macro.c.
+    $Id: macro.h,v 1.6 2007/07/01 21:20:32 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef MACRO_H
+ #define MACRO_H
+ 
+ extern FILE *macro_expansion_output_stream;
+ extern char *macro_expansion_filename;
+ extern int me_executing_string;
+ extern int only_macro_expansion;
+ 
+ /* Here is a structure used to remember input text strings and offsets
+    within them. */
+ typedef struct {
+   char *pointer;                /* Pointer to the input text. */
+   int offset;                   /* Offset of the last character output. */
+ } ITEXT;
+ 
+ /* Macro definitions for user-defined commands. */
+ typedef struct {
+   char *name;                   /* Name of the macro. */
+   char **arglist;               /* Args to replace when executing. */
+   int argcount;                 /* Number of args in arglist */
+   char *body;                   /* Macro body. */
+   char *source_file;            /* File where this macro is defined. */
+   int source_lineno;            /* Line number within FILENAME. */
+   int inhibited;                /* Nonzero means make find_macro () fail. */
+   int flags;                    /* ME_RECURSE, etc. */
+ } MACRO_DEF;
+ 
+ /* flags for MACRO_DEF */
+ #define ME_RECURSE      0x01
+ 
+ extern void execute_macro (MACRO_DEF *def);
+ extern MACRO_DEF *find_macro (char *name);
+ extern char *expand_macro (MACRO_DEF *def);
+ 
+ extern ITEXT *remember_itext (char *pointer, int offset);
+ extern void forget_itext (char *pointer);
+ extern void maybe_write_itext (char *pointer, int offset);
+ extern void write_region_to_macro_output (char *string, int start, int end);
+ extern void append_to_expansion_output (int offset);
+ extern void me_append_before_this_command (void);
+ extern void me_execute_string (char *execution_string);
+ extern void me_execute_string_keep_state (char *execution_string,
+     char *append_string);
+ 
+ extern char *alias_expand (char *tok);
+ extern int enclosure_command (char *tok);
+ extern void enclosure_expand (int arg, int start, int end);
+ 
+ /* The @commands.  */
+ extern void cm_macro (void), cm_rmacro (void), cm_unmacro (void);
+ extern void cm_alias (void), cm_definfoenclose (void);
+ 
+ extern int array_len (char **array);
+ extern void free_array (char **array);
+ 
+ enum quote_type { quote_none, quote_single, quote_many };
+ extern char **get_brace_args (enum quote_type type);
+ 
+ #endif /* not MACRO_H */
diff -Nrc2 texinfo-4.12/makeinfo/makeinfo.c texinfo-4.13/makeinfo/makeinfo.c
*** texinfo-4.12/makeinfo/makeinfo.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/makeinfo.c	Thu Sep 18 11:32:00 2008
***************
*** 0 ****
--- 1,4397 ----
+ /* makeinfo -- convert Texinfo source into other formats.
+    $Id: makeinfo.c,v 1.123 2008/08/28 22:53:30 karl Exp $
+ 
+    Copyright (C) 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+    2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Original author of makeinfo: Brian Fox (bfox@ai.mit.edu).  */
+ 
+ #include "system.h"
+ #include "getopt.h"
+ #include "mbswidth.h"
+ 
+ #define COMPILING_MAKEINFO
+ #include "makeinfo.h"
+ #include "cmds.h"
+ #include "files.h"
+ #include "float.h"
+ #include "footnote.h"
+ #include "html.h"
+ #include "index.h"
+ #include "insertion.h"
+ #include "lang.h"
+ #include "macro.h"
+ #include "node.h"
+ #include "sectioning.h"
+ #include "toc.h"
+ #include "xml.h"
+ 
+ /* You can change some of the behavior of Makeinfo by changing the
+    following defines: */
+ 
+ /* Define INDENT_PARAGRAPHS_IN_TABLE if you want the paragraphs which
+    appear within an @table, @ftable, or @itemize environment to have
+    standard paragraph indentation.  Without this, such paragraphs have
+    no starting indentation. */
+ /* #define INDENT_PARAGRAPHS_IN_TABLE */
+ 
+ /* Define PARAGRAPH_START_INDENT to be the amount of indentation that
+    the first lines of paragraphs receive by default, where no other
+    value has been specified.  Users can change this value on the command
+    line, with the --paragraph-indent option, or within the texinfo file,
+    with the @paragraphindent command. */
+ #define PARAGRAPH_START_INDENT 3
+ 
+ /* Define DEFAULT_PARAGRAPH_SPACING as the number of blank lines that you
+    wish to appear between paragraphs.  A value of 1 creates a single blank
+    line between paragraphs.  Paragraphs are defined by 2 or more consecutive
+    newlines in the input file (i.e., one or more blank lines). */
+ #define DEFAULT_PARAGRAPH_SPACING 1
+ 
+ /* Global variables.  */
+ 
+ /* The output file name. */
+ char *output_filename = NULL;
+ 
+ /* Name of the output file that the user elected to pass on the command line.
+    Such a name overrides any name found with the @setfilename command. */
+ char *command_output_filename = NULL;
+ static char *save_command_output_filename = NULL;
+ 
+ /* The amount of indentation to add at the starts of paragraphs.
+    0 means don't change existing indentation at paragraph starts.
+    > 0 is amount to indent new paragraphs by.
+    < 0 means indent to column zero by removing indentation if necessary.
+ 
+    This is normally zero, but some people prefer paragraph starts to be
+    somewhat more indented than paragraph bodies.  A pretty value for
+    this is 3. */
+ int paragraph_start_indent = PARAGRAPH_START_INDENT;
+ 
+ /* Indentation that is pending insertion.  We have this for hacking lines
+    which look blank, but contain whitespace.  We want to treat those as
+    blank lines. */
+ int pending_indent = 0;
+ 
+ /* The index in our internal command table of the currently
+    executing command. */
+ int command_index;
+ 
+ /* A search string which is used to find the first @setfilename. */
+ char setfilename_search[] =
+   { COMMAND_PREFIX,
+       's', 'e', 't', 'f', 'i', 'l', 'e', 'n', 'a', 'm', 'e', 0 };
+ 
+ /* Values for calling handle_variable_internal (). */
+ #define SET     1
+ #define CLEAR   2
+ #define IFSET   3
+ #define IFCLEAR 4
+ 
+ /* Flags controlling the operation of the program. */
+ 
+ /* Default is to remove output if there were errors.  */
+ int force = 0;
+ 
+ /* Default is to notify users of bad choices. */
+ int print_warnings = 1;
+ 
+ /* Number of errors that we tolerate on a given fileset. */
+ int max_error_level = 100;
+ 
+ /* The actual last inserted character.  Note that this may be something
+    other than NEWLINE even if last_char_was_newline is 1. */
+ int last_inserted_character = 0;
+ 
+ /* Nonzero means that a newline character has already been
+    inserted, so close_paragraph () should insert one less. */
+ int line_already_broken = 0;
+ 
+ /* When nonzero we have finished an insertion (see end_insertion ()) and we
+    want to ignore false continued paragraph closings. */
+ int insertion_paragraph_closed = 0;
+ 
+ /* Nonzero means attempt to make all of the lines have fill_column width. */
+ int do_justification = 0;
+ 
+ /* Nonzero means don't replace whitespace with &nbsp; in HTML mode.  */
+ int in_html_elt = 0;
+ 
+ /* Nonzero means we are inserting a block level HTML element that must not be
+    enclosed in a <p>, such as <ul>, <ol> and <h?>.  */
+ int in_html_block_level_elt = 0;
+ 
+ /* True when expanding a macro definition.  */
+ static int executing_macro = 0;
+ 
+ /* True when we are inside a <li> block of a menu.  */
+ static int in_menu_item = 0;
+ 
+ /* The column position of output_paragraph[0].  This is not saved and restored
+    in the multitable code because flush_output () is only called in environment
+    0. */
+ static int output_paragraph_start_column = 0;
+ 
+ typedef struct brace_element
+ {
+   struct brace_element *next;
+   COMMAND_FUNCTION *proc;
+   char *command;
+   int pos, line;
+   int in_fixed_width_font;
+ } BRACE_ELEMENT;
+ 
+ BRACE_ELEMENT *brace_stack = NULL;
+ 
+ static void convert_from_file (char *name);
+ static void convert_from_loaded_file (char *name);
+ static void convert_from_stream (FILE *stream, char *name);
+ static void do_flush_right_indentation (void);
+ static void handle_variable (int action);
+ static void handle_variable_internal (int action, char *name);
+ static void init_brace_stack (void);
+ static void init_internals (void);
+ static void pop_and_call_brace (void);
+ static void remember_brace (COMMAND_FUNCTION (*proc));
+ static void write_trailer (char *filename, char *trailer);
+ static int end_of_sentence_p (void);
+ 
+ void maybe_update_execution_strings (char **text, unsigned int new_len);
+ 
+ /* Error handling.  */
+ 
+ /* Number of errors encountered. */
+ int errors_printed = 0;
+ 
+ /* Remember that an error has been printed.  If more than
+    max_error_level have been printed, then exit the program. */
+ static void
+ remember_error (void)
+ {
+   errors_printed++;
+   if (max_error_level && (errors_printed > max_error_level))
+     {
+       fprintf (stderr, _("Too many errors!  Gave up.\n"));
+       flush_file_stack ();
+       if (errors_printed - max_error_level < 2)
+ 	cm_bye ();
+       xexit (1);
+     }
+ }
+ 
+ /* Print the last error gotten from the file system. */
+ int
+ fs_error (char *filename)
+ {
+   remember_error ();
+   perror (filename);
+   return 0;
+ }
+ 
+ /* Print an error message, and return false. */
+ void
+ #if defined (VA_FPRINTF) && __STDC__
+ error (const char *format, ...)
+ #else
+ error (format, va_alist)
+      const char *format;
+      va_dcl
+ #endif
+ {
+ #ifdef VA_FPRINTF
+   va_list ap;
+ #endif
+ 
+   remember_error ();
+ 
+   VA_START (ap, format);
+ #ifdef VA_FPRINTF
+   VA_FPRINTF (stderr, format, ap);
+ #else
+   fprintf (stderr, format, a1, a2, a3, a4, a5, a6, a7, a8);
+ #endif /* not VA_FPRINTF */
+   va_end (ap);
+ 
+   putc ('\n', stderr);
+ }
+ 
+ /* Just like error (), but print the input file and line number as well. */
+ void
+ #if defined (VA_FPRINTF) && __STDC__
+ file_line_error (char *infile, int lno, const char *format, ...)
+ #else
+ file_line_error (infile, lno, format, va_alist)
+    char *infile;
+    int lno;
+    const char *format;
+    va_dcl
+ #endif
+ {
+ #ifdef VA_FPRINTF
+   va_list ap;
+ #endif
+ 
+   remember_error ();
+   fprintf (stderr, "%s:%d: ", infile, lno);
+ 
+   VA_START (ap, format);
+ #ifdef VA_FPRINTF
+   VA_FPRINTF (stderr, format, ap);
+ #else
+   fprintf (stderr, format, a1, a2, a3, a4, a5, a6, a7, a8);
+ #endif /* not VA_FPRINTF */
+   va_end (ap);
+ 
+   fprintf (stderr, ".\n");
+ }
+ 
+ /* Just like file_line_error (), but take the input file and the line
+    number from global variables. */
+ void
+ #if defined (VA_FPRINTF) && __STDC__
+ line_error (const char *format, ...)
+ #else
+ line_error (format, va_alist)
+    const char *format;
+    va_dcl
+ #endif
+ {
+ #ifdef VA_FPRINTF
+   va_list ap;
+ #endif
+ 
+   remember_error ();
+   fprintf (stderr, "%s:%d: ", input_filename, line_number);
+ 
+   VA_START (ap, format);
+ #ifdef VA_FPRINTF
+   VA_FPRINTF (stderr, format, ap);
+ #else
+   fprintf (stderr, format, a1, a2, a3, a4, a5, a6, a7, a8);
+ #endif /* not VA_FPRINTF */
+   va_end (ap);
+ 
+   fprintf (stderr, ".\n");
+ }
+ 
+ void
+ #if defined (VA_FPRINTF) && __STDC__
+ warning (const char *format, ...)
+ #else
+ warning (format, va_alist)
+      const char *format;
+      va_dcl
+ #endif
+ {
+ #ifdef VA_FPRINTF
+   va_list ap;
+ #endif
+ 
+   if (print_warnings)
+     {
+       fprintf (stderr, _("%s:%d: warning: "), input_filename, line_number);
+ 
+       VA_START (ap, format);
+ #ifdef VA_FPRINTF
+       VA_FPRINTF (stderr, format, ap);
+ #else
+       fprintf (stderr, format, a1, a2, a3, a4, a5, a6, a7, a8);
+ #endif /* not VA_FPRINTF */
+       va_end (ap);
+ 
+       fprintf (stderr, ".\n");
+     }
+ }
+ 
+ 
+ /* The other side of a malformed expression. */
+ static void
+ misplaced_brace (void)
+ {
+   line_error (_("Misplaced %c"), '}');
+ }
+ 
+ /* Main.  */
+ 
+ /* Display the version info of this invocation of Makeinfo. */
+ static void
+ print_version_info (void)
+ {
+   printf ("makeinfo (GNU %s) %s\n", PACKAGE, VERSION);
+ }
+ 
+ /* If EXIT_VALUE is zero, print the full usage message to stdout.
+    Otherwise, just say to use --help for more info.
+    Then exit with EXIT_VALUE. */
+ static void
+ usage (int exit_value)
+ {
+   if (exit_value != 0)
+     fprintf (stderr, _("Try `%s --help' for more information.\n"), progname);
+   else
+   {
+     printf (_("Usage: %s [OPTION]... TEXINFO-FILE...\n"), progname);
+     puts ("");
+ 
+     puts (_("\
+ Translate Texinfo source documentation to various other formats, by default\n\
+ Info files suitable for reading online with Emacs or standalone GNU Info.\n"));
+ 
+     printf (_("\
+ General options:\n\
+       --error-limit=NUM       quit after NUM errors (default %d).\n\
+       --document-language=STR locale to use in translating Texinfo keywords\n\
+                                 for the output document (default C).\n\
+       --force                 preserve output even if errors.\n\
+       --help                  display this help and exit.\n\
+       --no-validate           suppress node cross-reference validation.\n\
+       --no-warn               suppress warnings (but not errors).\n\
+   -v, --verbose               explain what is being done.\n\
+       --version               display version information and exit.\n"),
+             max_error_level);
+     puts ("");
+ 
+      /* xgettext: no-wrap */
+     puts (_("\
+ Output format selection (default is to produce Info):\n\
+       --docbook               output Docbook XML rather than Info.\n\
+       --html                  output HTML rather than Info.\n\
+       --xml                   output Texinfo XML rather than Info.\n\
+       --plaintext             output plain text rather than Info.\n\
+ "));
+ 
+     puts (_("\
+ General output options:\n\
+   -E, --macro-expand=FILE     output macro-expanded source to FILE,\n\
+                                 ignoring any @setfilename.\n\
+       --no-headers            suppress node separators, Node: lines, and menus\n\
+                                 from Info output (thus producing plain text)\n\
+                                 or from HTML (thus producing shorter output);\n\
+                                 also, write to standard output by default.\n\
+       --no-split              suppress the splitting of Info or HTML output,\n\
+                                 generate only one output file.\n\
+       --number-sections       output chapter and sectioning numbers.\n\
+   -o, --output=FILE           output to FILE (or directory if split HTML).\n\
+ "));
+ 
+     printf (_("\
+ Options for Info and plain text:\n\
+       --disable-encoding      do not output accented and special characters\n\
+                                 in Info output based on @documentencoding.\n\
+       --enable-encoding       override --disable-encoding (default).\n\
+       --fill-column=NUM       break Info lines at NUM characters (default %d).\n\
+       --footnote-style=STYLE  output footnotes in Info according to STYLE:\n\
+                                 `separate' to put them in their own node;\n\
+                                 `end' to put them at the end of the node, in\n\
+                                 which they are defined (this is the default).\n\
+       --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %d).\n\
+                                 If VAL is `none', do not indent; if VAL is\n\
+                                 `asis', preserve existing indentation.\n\
+       --split-size=NUM        split Info files at size NUM (default %d).\n"),
+              fill_column, paragraph_start_indent,
+              DEFAULT_SPLIT_SIZE);
+     puts ("");
+ 
+     puts (_("\
+ Options for HTML:\n\
+       --css-include=FILE      include FILE in HTML <style> output;\n\
+                                 read stdin if FILE is -.\n\
+       --css-ref=URL           generate reference to a CSS file.\n\
+       --internal-links=FILE   produce list of internal links in FILE.\n\
+       --transliterate-file-names\n\
+                               produce file names in ASCII transliteration.\n\
+ "));
+ 
+     printf (_("\
+ Options for XML and Docbook:\n\
+       --output-indent=VAL     indent XML elements by VAL spaces (default %d).\n\
+                                 If VAL is 0, ignorable whitespace is dropped.\n\
+ "), xml_indentation_increment);
+     puts ("");
+ 
+     puts (_("\
+ Input file options:\n\
+       --commands-in-node-names  allow @ commands in node names.\n\
+   -D VAR                        define the variable VAR, as with @set.\n\
+   -I DIR                        append DIR to the @include search path.\n\
+   -P DIR                        prepend DIR to the @include search path.\n\
+   -U VAR                        undefine the variable VAR, as with @clear.\n\
+ "));
+ 
+     puts (_("\
+ Conditional processing in input:\n\
+   --ifdocbook       process @ifdocbook and @docbook even if\n\
+                       not generating Docbook.\n\
+   --ifhtml          process @ifhtml and @html even if not generating HTML.\n\
+   --ifinfo          process @ifinfo even if not generating Info.\n\
+   --ifplaintext     process @ifplaintext even if not generating plain text.\n\
+   --iftex           process @iftex and @tex; implies --no-split.\n\
+   --ifxml           process @ifxml and @xml.\n\
+   --no-ifdocbook    do not process @ifdocbook and @docbook text.\n\
+   --no-ifhtml       do not process @ifhtml and @html text.\n\
+   --no-ifinfo       do not process @ifinfo text.\n\
+   --no-ifplaintext  do not process @ifplaintext text.\n\
+   --no-iftex        do not process @iftex and @tex text.\n\
+   --no-ifxml        do not process @ifxml and @xml text.\n\
+ \n\
+   Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n\
+ "));
+ 
+     puts (_("\
+   The defaults for the @if... conditionals depend on the output format:\n\
+   if generating HTML, --ifhtml is on and the others are off;\n\
+   if generating Info, --ifinfo is on and the others are off;\n\
+   if generating plain text, --ifplaintext is on and the others are off;\n\
+   if generating XML, --ifxml is on and the others are off.\n\
+ "));
+ 
+     fputs (_("\
+ Examples:\n\
+   makeinfo foo.texi                      write Info to foo's @setfilename\n\
+   makeinfo --html foo.texi               write HTML to @setfilename\n\
+   makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n\
+   makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n\
+   makeinfo --no-headers foo.texi         write plain text to standard output\n\
+ \n\
+   makeinfo --html --no-headers foo.texi  write html without node lines, menus\n\
+   makeinfo --number-sections foo.texi    write Info with numbered sections\n\
+   makeinfo --no-split foo.texi           write one Info file however big\n\
+ "), stdout);
+ 
+     puts (_("\n\
+ Email bug reports to bug-texinfo@gnu.org,\n\
+ general questions and discussion to help-texinfo@gnu.org.\n\
+ Texinfo home page: http://www.gnu.org/software/texinfo/"));
+ 
+   } /* end of full help */
+ 
+   xexit (exit_value);
+ }
+ 
+ #define OPT_CSSREF    256
+ #define OPT_TRANSLITERATE_FILE_NAMES 257
+ #define OPT_INTERNAL_LINKS 258
+ 
+ struct option long_options[] =
+ {
+   { "commands-in-node-names", 0, &expensive_validation, 1 },
+   { "css-include", 1, 0, 'C' },
+   { "css-ref", 1, 0, OPT_CSSREF },
+   { "docbook", 0, 0, 'd' },
+   { "disable-encoding", 0, &enable_encoding, 0 },
+   { "enable-encoding", 0, &enable_encoding, 1 },
+   { "document-language", 1, 0, 'l' },
+   { "error-limit", 1, 0, 'e' },
+   { "fill-column", 1, 0, 'f' },
+   { "footnote-style", 1, 0, 's' },
+   { "force", 0, &force, 1 },
+   { "help", 0, 0, 'h' },
+   { "html", 0, 0, 'w' },
+   { "ifdocbook", 0, &process_docbook, 1 },
+   { "ifhtml", 0, &process_html, 1 },
+   { "ifinfo", 0, &process_info, 1 },
+   { "ifplaintext", 0, &process_plaintext, 1 },
+   { "iftex", 0, &process_tex, 1 },
+   { "ifxml", 0, &process_xml, 1 },
+   { "internal-links", 1, 0, OPT_INTERNAL_LINKS },
+   { "macro-expand", 1, 0, 'E' },
+   { "no-headers", 0, &no_headers, 1 },
+   { "no-ifdocbook", 0, &process_docbook, 0 },
+   { "no-ifhtml", 0, &process_html, 0 },
+   { "no-ifinfo", 0, &process_info, 0 },
+   { "no-ifplaintext", 0, &process_plaintext, 0 },
+   { "no-iftex", 0, &process_tex, 0 },
+   { "no-ifxml", 0, &process_xml, 0 },
+   { "no-number-footnotes", 0, &number_footnotes, 0 },
+   { "no-number-sections", 0, &number_sections, 0 },
+   { "no-pointer-validate", 0, &validating, 0 },
+   { "no-split", 0, &splitting, 0 },
+   { "no-validate", 0, &validating, 0 },
+   { "no-warn", 0, &print_warnings, 0 },
+   { "number-footnotes", 0, &number_footnotes, 1 },
+   { "number-sections", 0, &number_sections, 1 },
+   { "output", 1, 0, 'o' },
+   { "output-indent", 1, 0, 'i' },
+   { "paragraph-indent", 1, 0, 'p' },
+   { "plaintext", 0, 0, 't' },
+   { "reference-limit", 1, 0, 'r' },
+   { "split-size", 1, 0, 'S'},
+   { "transliterate-file-names", 0, &transliterate_file_names, 1 },
+   { "verbose", 0, &verbose_mode, 1 },
+   { "version", 0, 0, 'V' },
+   { "xml", 0, 0, 'x' },
+   {NULL, 0, NULL, 0}
+ };
+ 
+ /* We use handle_variable_internal for -D and -U, and it depends on
+    execute_string, which depends on input_filename, which is not defined
+    while we are handling options. :-\  So we save these defines in this
+    struct, and handle them later.  */
+ typedef struct command_line_define
+ {
+   struct command_line_define *next;
+   int action;
+   char *define;
+ } COMMAND_LINE_DEFINE;
+ 
+ static COMMAND_LINE_DEFINE *command_line_defines = NULL;
+ 
+ /* For each file mentioned in the command line, process it, turning
+    Texinfo commands into wonderfully formatted output text. */
+ int
+ main (int argc, char *argv[])
+ {
+   int c, ind;
+   int reading_from_stdin = 0;
+ 
+ #ifdef HAVE_SETLOCALE
+   /* Do not use LC_ALL, because LC_NUMERIC screws up the scanf parsing
+      of the argument to @multicolumn.  */
+   setlocale (LC_TIME, "");
+ #ifdef LC_MESSAGES /* ultrix, djgpp 2.04 */
+   setlocale (LC_MESSAGES, "");
+ #endif
+   setlocale (LC_CTYPE, "");
+   setlocale (LC_COLLATE, "");
+ #endif
+ 
+ #ifdef ENABLE_NLS
+   /* Set the text message domain.  */
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   textdomain (PACKAGE);
+ #endif
+ 
+   /* If TEXINFO_OUTPUT_FORMAT envvar is set, use it to set default output.
+      Can be overridden with one of the output options.  */
+   if (getenv ("TEXINFO_OUTPUT_FORMAT") != NULL)
+     {
+       if (STREQ (getenv ("TEXINFO_OUTPUT_FORMAT"), "docbook"))
+         {
+           splitting = 0;
+           html = 0;
+           docbook = 1;
+           xml = 1;
+           process_docbook = 1;
+         }
+       else if (STREQ (getenv ("TEXINFO_OUTPUT_FORMAT"), "html"))
+         {
+           html = 1;
+           docbook = 0;
+           xml = 0;
+           process_html = 1;
+         }
+       else if (STREQ (getenv ("TEXINFO_OUTPUT_FORMAT"), "info"))
+         {
+           html = 0;
+           docbook = 0;
+           xml = 0;
+         }
+       else if (STREQ (getenv ("TEXINFO_OUTPUT_FORMAT"), "plaintext"))
+         {
+           splitting = 0;
+           no_headers = 1;
+           html = 0;
+           docbook = 0;
+           xml = 0;
+           process_plaintext = 1;
+         }
+       else if (STREQ (getenv ("TEXINFO_OUTPUT_FORMAT"), "xml"))
+         {
+           splitting = 0;
+           html = 0;
+           docbook = 0;
+           xml = 1;
+           process_xml = 1;
+         }
+       else
+         fprintf (stderr,
+             _("%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"),
+                  progname, getenv ("TEXINFO_OUTPUT_FORMAT"));
+     }
+ 
+   /* Parse argument flags from the input line. */
+   while ((c = getopt_long (argc, argv, "D:de:E:f:hI:i:o:p:P:r:s:t:U:vV:wx",
+                            long_options, &ind)) != EOF)
+     {
+       if (c == 0 && long_options[ind].flag == 0)
+         c = long_options[ind].val;
+ 
+       switch (c)
+         {
+         case 'C':  /* --css-include */
+           css_include = xstrdup (optarg);
+           break;
+ 
+ 	case OPT_CSSREF:
+ 	  css_ref = xstrdup (optarg);
+ 	  break;
+ 	  
+         case 'D':
+         case 'U':
+           /* User specified variable to set or clear. */
+           if (xml && !docbook)
+             {
+               COMMAND_LINE_DEFINE *new = xmalloc (sizeof (COMMAND_LINE_DEFINE));
+               new->action = (c == 'D') ? SET : CLEAR;
+               new->define = xstrdup (optarg);
+               new->next = command_line_defines;
+               command_line_defines = new;
+             }
+           else
+             handle_variable_internal ((c == 'D' ? SET : CLEAR), optarg);
+           break;
+ 
+         case 'd': /* --docbook */
+           splitting = 0;
+           xml = 1;
+           docbook = 1;
+           html = 0;
+ 	  process_docbook = 1;
+           break;
+ 
+         case 'e': /* --error-limit */
+           if (sscanf (optarg, "%d", &max_error_level) != 1)
+             {
+               fprintf (stderr,
+                       _("%s: %s arg must be numeric, not `%s'.\n"),
+                       progname, "--error-limit", optarg);
+               usage (1);
+             }
+           break;
+ 
+         case 'E': /* --macro-expand */
+           if (!macro_expansion_output_stream)
+             {
+               macro_expansion_filename = optarg;
+               macro_expansion_output_stream
+                 = strcmp (optarg, "-") == 0 ? stdout : fopen (optarg, "w");
+               if (!macro_expansion_output_stream)
+                 error (_("%s: could not open macro expansion output `%s'"),
+                        progname, optarg);
+             }
+           else
+             fprintf (stderr,
+                      _("%s: ignoring second macro expansion output `%s'.\n"),
+                      progname, optarg);
+           break;
+ 
+         case 'f': /* --fill-column */
+           if (sscanf (optarg, "%d", &fill_column) != 1)
+             {
+               fprintf (stderr,
+                        _("%s: %s arg must be numeric, not `%s'.\n"),
+                        progname, "--fill-column", optarg);
+               usage (1);
+             }
+           break;
+ 
+         case 'h': /* --help */
+           usage (0);
+           break;
+ 
+         case 'I':
+           /* Append user-specified dir to include file path. */
+           append_to_include_path (optarg);
+           break;
+ 
+ 	case 'l':
+ 	  /* save the override language code */
+ 	  document_language = xstrdup (optarg);
+ 	  break;
+ 
+         case 'i':
+           if (sscanf (optarg, "%d", &xml_indentation_increment) != 1)
+             {
+               fprintf (stderr,
+                      _("%s: %s arg must be numeric, not `%s'.\n"),
+                      progname, "--output-indent", optarg);
+               usage (1);
+             }
+           break;
+ 
+ 	case OPT_INTERNAL_LINKS:
+ 	  if (!internal_links_stream)
+ 	    {
+ 	      internal_links_filename = xstrdup (optarg);
+ 	      internal_links_stream = strcmp (optarg, "-") == 0 ? stdout :
+                 fopen (optarg, "w");
+               if (!internal_links_stream)
+                 error (_("%s: could not open internal links output `%s'"),
+                        progname, optarg);
+             }
+           else
+             fprintf (stderr,
+             	     _("%s: ignoring second internal links output `%s'.\n"),
+             	     progname, optarg);
+           break;
+ 	  
+         case 'o': /* --output */
+           command_output_filename = xstrdup (optarg);
+           save_command_output_filename = command_output_filename;
+           break;
+ 
+         case 'p': /* --paragraph-indent */
+           if (set_paragraph_indent (optarg) < 0)
+             {
+               fprintf (stderr,
+    _("%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"),
+                        progname, optarg);
+               usage (1);
+             }
+           break;
+ 
+         case 'P':
+           /* Prepend user-specified include dir to include path. */
+           prepend_to_include_path (optarg);
+           break;
+ 
+         case 'r': /* was --reference-limit; obsolete, ignore */
+           break;
+ 
+         case 's': /* --footnote-style */
+           if (set_footnote_style (optarg) < 0)
+             {
+               fprintf (stderr,
+         _("%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"),
+                        progname, optarg);
+               usage (1);
+             }
+           footnote_style_preset = 1;
+           break;
+ 
+         case 'S': /* --split-size */
+           if (sscanf (optarg, "%d", &split_size) != 1)
+             {
+               fprintf (stderr,
+                      _("%s: %s arg must be numeric, not `%s'.\n"),
+                      progname, "--split-size", optarg);
+               usage (1);
+             }
+           break;
+ 
+         case 't': /* --plaintext */
+           splitting = 0;
+           no_headers = 1;
+           html = 0;
+           docbook = 0;
+           xml = 0;
+           process_plaintext = 1;
+           break;
+ 
+         case 'v':
+           verbose_mode++;
+           break;
+ 
+         case 'V': /* --version */
+           print_version_info ();
+           puts ("");
+           printf (_("Copyright (C) %s Free Software Foundation, Inc.\n\
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
+ This is free software: you are free to change and redistribute it.\n\
+ There is NO WARRANTY, to the extent permitted by law.\n"),
+ 	      "2008");
+           xexit (0);
+           break;
+ 
+         case 'w': /* --html */
+           xml = 0;
+           docbook = 0;
+           html = 1;
+           process_html = 1;
+           break;
+ 
+         case 'x': /* --xml */
+           splitting = 0;
+           html = 0;
+           docbook = 0;
+           xml = 1;
+           process_xml = 1;
+           break;
+ 
+         case '?':
+           usage (1);
+           break;
+         }
+     }
+ 
+   if (macro_expansion_output_stream)
+     validating = 0;
+ 
+   if (!validating)
+     expensive_validation = 0;
+ 
+   if (optind == argc)
+     {
+       /* Check to see if input is a file.  If so, process that. */
+       if (!isatty (fileno (stdin)))
+         reading_from_stdin = 1;
+       else
+         {
+           fprintf (stderr, _("%s: missing file argument.\n"), progname);
+           usage (1);
+         }
+     }
+ 
+   if (no_headers)
+     {
+       /* If the user did not specify an output file, use stdout. */
+       if (!command_output_filename)
+         command_output_filename = xstrdup ("-");
+ 
+       if (html && splitting && !STREQ (command_output_filename, "-"))
+         { /* --no-headers --no-split --html indicates confusion. */
+           fprintf (stderr,
+                   "%s: can't split --html output to `%s' with --no-headers.\n",
+                    progname, command_output_filename);
+           usage (1);
+         }
+ 
+       /* --no-headers implies --no-split.  */
+       splitting = 0;
+     }
+ 
+   if (process_info == -1)
+     { /* no explicit --[no-]ifinfo option, so we'll do @ifinfo
+          if we're generating info or (for compatibility) plain text.  */
+       process_info = !html && !xml;
+     }
+ 
+   if (process_plaintext == -1)
+     { /* no explicit --[no-]ifplaintext option, so we'll do @ifplaintext
+          if we're generating plain text.  */
+       process_plaintext = no_headers && !html && !xml;
+     }
+ 
+   if (verbose_mode)
+     print_version_info ();
+ 
+   /* Remaining arguments are file names of texinfo files.
+      Convert them, one by one. */
+   if (!reading_from_stdin)
+     {
+       while (optind != argc)
+         {
+           if (STREQ (argv[optind], "-"))
+             convert_from_stream (stdin, "stdin");
+           else
+             convert_from_file (argv[optind]);
+           optind++;
+         }
+     }
+   else
+     convert_from_stream (stdin, "stdin");
+ 
+   xexit (errors_printed ? 2 : 0);
+   return 0; /* Avoid bogus warnings.  */
+ }
+ 
+ /* Hacking tokens and strings.  */
+ 
+ /* Return the next token as a string pointer.  We cons the string.  This
+    `token' means simply a command name.  */
+ 
+ /* = is so @alias works.  ^ and _ are so macros can be used in math mode
+    without a space following.  Possibly we should simply allow alpha, to
+    be compatible with TeX.  */
+ #define COMMAND_CHAR(c) (!cr_or_whitespace(c) \
+                          && (c) != '{' \
+                          && (c) != '}' \
+                          && (c) != '=' \
+                          && (c) != '_' \
+                          && (c) != '^' \
+                          )
+ 
+ static char *
+ read_token (void)
+ {
+   int i, character;
+   char *result;
+ 
+   /* If the first character to be read is self-delimiting, then that
+      is the command itself. */
+   character = curchar ();
+   if (self_delimiting (character))
+     {
+       input_text_offset++;
+ 
+       if (character == '\n')
+         line_number++;
+ 
+       result = xstrdup (" ");
+       *result = character;
+       return result;
+     }
+ 
+   for (i = 0; ((input_text_offset != input_text_length)
+                && (character = curchar ())
+                && COMMAND_CHAR (character));
+        i++, input_text_offset++);
+   result = xmalloc (i + 1);
+   memcpy (result, &input_text[input_text_offset - i], i);
+   result[i] = 0;
+   return result;
+ }
+ 
+ /* Return nonzero if CHARACTER is self-delimiting. */
+ int
+ self_delimiting (int character)
+ {
+   /* @; and @\ are not Texinfo commands, but they are listed here
+      anyway.  I don't know why.  --karl, 10aug96.  */
+   return strchr ("~{|}`^\\@?=;:./-,*\'\" !\n\t", character) != NULL;
+ }
+ 
+ /* Clear whitespace from the front and end of string. */
+ void
+ canon_white (char *string)
+ {
+   char *p = string;
+   unsigned len;
+ 
+   if (!*p)
+     return;
+ 
+   do
+     {
+       if (!cr_or_whitespace (*p))
+ 	break;
+       ++p;
+     }
+   while (*p);
+ 
+   len = strlen (p);
+   while (len && cr_or_whitespace (p[len-1]))
+     --len;
+ 
+   if (p != string)
+     memmove (string, p, len);
+ 
+   string[len] = 0;
+ }
+ 
+ /* Bash STRING, replacing all whitespace with just one space. */
+ void
+ fix_whitespace (char *string)
+ {
+   char *temp = xmalloc (strlen (string) + 1);
+   int string_index = 0;
+   int temp_index = 0;
+   int c;
+ 
+   canon_white (string);
+ 
+   while (string[string_index])
+     {
+       c = temp[temp_index++] = string[string_index++];
+ 
+       if (c == ' ' || c == '\n' || c == '\t')
+         {
+           temp[temp_index - 1] = ' ';
+           while ((c = string[string_index]) && (c == ' ' ||
+                                                 c == '\t' ||
+                                                 c == '\n'))
+             string_index++;
+         }
+     }
+   temp[temp_index] = 0;
+   strcpy (string, temp);
+   free (temp);
+ }
+ 
+ /* Discard text until the desired string is found.  The string is
+    included in the discarded text. */
+ void
+ discard_until (char *string)
+ {
+   int temp = search_forward (string, input_text_offset);
+ 
+   int tt = (temp < 0) ? input_text_length : temp + strlen (string);
+   int from = input_text_offset;
+ 
+   /* Find out what line we are on. */
+   while (from != tt)
+     if (input_text[from++] == '\n')
+       line_number++;
+ 
+   if (temp < 0)
+     {
+       /* not found, move current position to end of string */
+       input_text_offset = input_text_length;
+       if (strcmp (string, "\n") != 0)
+         { /* Give a more descriptive feedback, if we are looking for ``@end ''
+              during macro execution.  That means someone used a multiline
+              command as an argument to, say, @section ... style commands.  */
+           char *end_block = xmalloc (8);
+           sprintf (end_block, "\n%cend ", COMMAND_PREFIX);
+           if (executing_string && strstr (string, end_block))
+             line_error (_("Multiline command %c%s used improperly"), 
+                 COMMAND_PREFIX, command);
+           else
+             line_error (_("Expected `%s'"), string);
+           free (end_block);
+           return;
+         }
+     }
+   else
+     /* found, move current position to after the found string */
+     input_text_offset = temp + strlen (string);
+ }
+ 
+ /* Read characters from the file until we are at MATCH.
+    Place the characters read into STRING.
+    On exit input_text_offset is after the match string.
+    Return the offset where the string starts. */
+ int
+ get_until (char *match, char **string)
+ {
+   int len, current_point, x, new_point, tem;
+ 
+   current_point = x = input_text_offset;
+   new_point = search_forward (match, input_text_offset);
+ 
+   if (new_point < 0)
+     new_point = input_text_length;
+   len = new_point - current_point;
+ 
+   /* Keep track of which line number we are at. */
+   tem = new_point + (strlen (match) - 1);
+   while (x != tem)
+     if (input_text[x++] == '\n')
+       line_number++;
+ 
+   *string = xmalloc (len + 1);
+ 
+   memcpy (*string, &input_text[current_point], len);
+   (*string)[len] = 0;
+ 
+   /* Now leave input_text_offset in a consistent state. */
+   input_text_offset = tem;
+ 
+   if (input_text_offset > input_text_length)
+     input_text_offset = input_text_length;
+ 
+   return new_point;
+ }
+ 
+ /* Replace input_text[FROM .. TO] with its expansion.  */
+ void
+ replace_with_expansion (int from, int *to)
+ {
+   char *xp;
+   unsigned xp_len, new_len;
+   char *old_input = input_text;
+   unsigned raw_len = *to - from;
+   char *str;
+ 
+   /* The rest of the code here moves large buffers, so let's
+      not waste time if the input cannot possibly expand
+      into anything.  Unfortunately, we cannot avoid expansion
+      when we see things like @code etc., even if they only
+      asked for expansion of macros, since any Texinfo command
+      can be potentially redefined with a macro.  */
+   if (only_macro_expansion &&
+       memchr (input_text + from, COMMAND_PREFIX, raw_len) == 0)
+     return;
+ 
+   /* Get original string from input.  */
+   str = xmalloc (raw_len + 1);
+   memcpy (str, input_text + from, raw_len);
+   str[raw_len] = 0;
+ 
+   /* We are going to relocate input_text, so we had better output
+      pending portion of input_text now, before the pointer changes.  */
+   if (macro_expansion_output_stream && !executing_string
+       && !me_inhibit_expansion)
+     append_to_expansion_output (from);
+ 
+   /* Expand it.  */
+   xp = expansion (str, 0);
+   xp_len = strlen (xp);
+   free (str);
+ 
+   /* Plunk the expansion into the middle of `input_text' --
+      which is terminated by a newline, not a null.  Avoid
+      expensive move of the rest of the input if the expansion
+      has the same length as the original string.  */
+   if (xp_len != raw_len)
+     {
+       new_len = from + xp_len + input_text_length - *to + 1;
+       if (executing_string)
+         { /* If we are in execute_string, we might need to update
+              the relevant element in the execution_strings[] array,
+              since it could have to be relocated from under our
+              feet.  (input_text is reallocated here as well, if needed.)  */
+           maybe_update_execution_strings (&input_text, new_len);
+         }
+       else if (new_len > input_text_length + 1)
+         /* Don't bother to realloc if we have enough space.  */
+         input_text = xrealloc (input_text, new_len);
+ 
+       memmove (input_text + from + xp_len,
+                input_text + *to, input_text_length - *to + 1);
+ 
+       *to += xp_len - raw_len;
+       /* Since we change input_text_length here, the comparison above
+          isn't really valid, but it seems the worst that might happen is
+          an extra xrealloc or two, so let's not worry.  */
+       input_text_length += xp_len - raw_len;
+     }
+   memcpy (input_text + from, xp, xp_len);
+   free (xp);
+ 
+   /* Synchronize the macro-expansion pointers with our new input_text.  */
+   if (input_text != old_input)
+     forget_itext (old_input);
+   if (macro_expansion_output_stream && !executing_string)
+     remember_itext (input_text, from);
+ }
+ 
+ /* Read characters from the file until we are at MATCH or end of line.
+    Place the characters read into STRING.  If EXPAND is nonzero,
+    expand the text before looking for MATCH for those cases where
+    MATCH might be produced by some macro.  */
+ void
+ get_until_in_line (int expand, char *match, char **string)
+ {
+   int real_bottom = input_text_length;
+   int limit = search_forward ("\n", input_text_offset);
+   if (limit < 0)
+     limit = input_text_length;
+ 
+   /* Replace input_text[input_text_offset .. limit-1] with its expansion.
+      This allows the node names and menu entries themselves to be
+      constructed via a macro, as in:
+         @macro foo{p, q}
+         Together: \p\ & \q\.
+         @end macro
+ 
+         @node @foo{A,B}, next, prev, top
+ 
+      Otherwise, the `,' separating the macro args A and B is taken as
+      the node argument separator, so the node name is `@foo{A'.  This
+      expansion is only necessary on the first call, since we expand the
+      whole line then.  */
+   if (expand)
+     {
+       replace_with_expansion (input_text_offset, &limit);
+     }
+ 
+   real_bottom = input_text_length;
+   input_text_length = limit;
+   get_until (match, string);
+   input_text_length = real_bottom;
+ }
+ 
+ void
+ get_rest_of_line (int expand, char **string)
+ {
+   xml_no_para ++;
+   if (expand)
+     {
+       char *tem;
+ 
+       /* Don't expand non-macros in input, since we want them
+          intact in the macro-expanded output.  */
+       only_macro_expansion++;
+       get_until_in_line (1, "\n", &tem);
+       only_macro_expansion--;
+       *string = expansion (tem, 0);
+       free (tem);
+     }
+   else
+     get_until_in_line (0, "\n", string);
+ 
+   canon_white (*string);
+ 
+   if (curchar () == '\n')       /* as opposed to the end of the file... */
+     {
+       line_number++;
+       input_text_offset++;
+     }
+   xml_no_para --;
+ }
+ 
+ /* Backup the input pointer to the previous character, keeping track
+    of the current line number. */
+ void
+ backup_input_pointer (void)
+ {
+   if (input_text_offset)
+     {
+       input_text_offset--;
+       if (curchar () == '\n')
+         line_number--;
+     }
+ }
+ 
+ /* Read characters from the file until we are at MATCH or closing brace.
+    Place the characters read into STRING.  */
+ void
+ get_until_in_braces (char *match, char **string)
+ {
+   char *temp;
+   int i, brace = 0;
+   int match_len = strlen (match);
+ 
+   for (i = input_text_offset; i < input_text_length; i++)
+     {
+       if (i < input_text_length - 1 && input_text[i] == '@')
+         {
+           i++;                  /* skip commands like @, and @{ */
+           continue;
+         }
+       else if (input_text[i] == '{')
+         brace++;
+       else if (input_text[i] == '}')
+         {
+           brace--;
+           /* If looking for a brace, don't stop at the interior brace,
+              like after "baz" in "@foo{something @bar{baz} more}".  */
+           if (brace == 0)
+             continue;
+         }
+       else if (input_text[i] == '\n')
+         line_number++;
+ 
+       if (brace < 0 ||
+           (brace == 0 && strncmp (input_text + i, match, match_len) == 0))
+         break;
+     }
+ 
+   match_len = i - input_text_offset;
+   temp = xmalloc (2 + match_len);
+   memcpy (temp, input_text + input_text_offset, match_len);
+   temp[match_len] = 0;
+   input_text_offset = i;
+   *string = temp;
+ }
+ 
+ 
+ 
+ /* Converting a file.  */
+ 
+ /* Convert the file named by NAME.  The output is saved on the file
+    named as the argument to the @setfilename command. */
+ static char *suffixes[] = {
+   /* ".txi" is checked first so that on 8+3 DOS filesystems, if they
+      have "texinfo.txi" and "texinfo.tex" in the same directory, the
+      former is used rather than the latter, due to file name truncation.  */
+   ".txi",
+   ".texinfo",
+   ".texi",
+   ".txinfo",
+   "",
+   NULL
+ };
+ 
+ static void
+ initialize_conversion (void)
+ {
+   init_tag_table ();
+   init_indices ();
+   init_internals ();
+   init_paragraph ();
+ 
+   /* This is used for splitting the output file and for doing section
+      headings.  It was previously initialized in `init_paragraph', but its
+      use there loses with the `init_paragraph' calls done by the
+      multitable code; the tag indices get reset to zero.  */
+   output_position = 0;
+ }
+ 
+ /* Reverse the chain of structures in LIST.  Output the new head
+    of the chain.  You should always assign the output value of this
+    function to something, or you will lose the chain. */
+ GENERIC_LIST *
+ reverse_list (GENERIC_LIST *list)
+ {
+   GENERIC_LIST *next;
+   GENERIC_LIST *prev = NULL;
+ 
+   while (list)
+     {
+       next = list->next;
+       list->next = prev;
+       prev = list;
+       list = next;
+     }
+   return prev;
+ }
+ 
+ /* We read in multiples of 4k, simply because it is a typical pipe size
+    on unix systems. */
+ #define READ_BUFFER_GROWTH (4 * 4096)
+ 
+ /* Convert the Texinfo file coming from the open stream STREAM.  Assume the
+    source of the stream is named NAME. */
+ static void
+ convert_from_stream (FILE *stream, char *name)
+ {
+   char *buffer = NULL;
+   int buffer_offset = 0, buffer_size = 0;
+ 
+   initialize_conversion ();
+ 
+   /* Read until the end of the stream.  This isn't strictly correct, since
+      the texinfo input may end before the stream ends, but it is a quick
+      working heuristic. */
+   while (!feof (stream))
+     {
+       int count;
+ 
+       if (buffer_offset + (READ_BUFFER_GROWTH + 1) >= buffer_size)
+         buffer = (char *)
+           xrealloc (buffer, (buffer_size += READ_BUFFER_GROWTH));
+ 
+       count = fread (buffer + buffer_offset, 1, READ_BUFFER_GROWTH, stream);
+ 
+       if (count < 0)
+         {
+           perror (name);
+           xexit (1);
+         }
+ 
+       buffer_offset += count;
+       if (count == 0)
+         break;
+     }
+ 
+   /* Set the globals to the new file. */
+   input_text = buffer;
+   input_text_length = buffer_offset;
+   input_filename = xstrdup (name);
+   node_filename = xstrdup (name);
+   input_text_offset = 0;
+   line_number = 1;
+ 
+   /* Not strictly necessary.  This magic prevents read_token () from doing
+      extra unnecessary work each time it is called (that is a lot of times).
+      The INPUT_TEXT_LENGTH is one past the actual end of the text. */
+   input_text[input_text_length] = '\n';
+ 
+   convert_from_loaded_file (name);
+ }
+ 
+ static void
+ convert_from_file (char *name)
+ {
+   int i;
+   char *filename = xmalloc (strlen (name) + 50);
+ 
+   /* Prepend NAME's directory to the search path, so relative links work.  */
+   prepend_to_include_path (pathname_part (name));
+ 
+   initialize_conversion ();
+ 
+   /* Try to load the file specified by NAME, concatenated with our
+      various suffixes.  Prefer files like `makeinfo.texi' to `makeinfo'.  */
+   for (i = 0; suffixes[i]; i++)
+     {
+       strcpy (filename, name);
+       strcat (filename, suffixes[i]);
+ 
+       if (find_and_load (filename, 1))
+         break;
+     }
+ 
+   if (!suffixes[i])
+     {
+       fs_error (name);
+       free (filename);
+       return;
+     }
+ 
+   /* `find_and_load' (when successful) clobbers this global with new
+      memory.  We're about to reset it, so may as well free first.  */
+   free (input_filename);
+   
+   /* Set the current filename.  */
+   input_filename = filename;
+ 
+   /* Do the main conversion.  */
+   convert_from_loaded_file (name);
+ 
+   /* Pop the prepended path, so multiple filenames in the
+      command line do not screw each others include paths.  */
+   pop_path_from_include_path ();
+ }
+ 
+ static int
+ create_html_directory (char *dir, int can_remove_file)
+ {
+   struct stat st;
+ 
+   /* Already exists.  */
+   if (stat (dir, &st) == 0)
+     {
+       /* And it's a directory, so silently reuse it.  */
+       if (S_ISDIR (st.st_mode))
+         return 1;
+       /* Not a directory, so move it out of the way if we are allowed.  */
+       else if (can_remove_file)
+         {
+           if (unlink (dir) != 0)
+             return 0;
+         }
+       else
+         return 0;
+     }
+ 
+   if (mkdir (dir, 0777) == 0)
+     /* Success!  */
+     return 1;
+   else
+     return 0;
+ }
+ 
+ /* Given OUTPUT_FILENAME == ``/foo/bar/baz.html'', return
+    "/foo/bar/baz/baz.html".  This routine is called only if html && splitting.
+ 
+   Split html output goes into the subdirectory of the toplevel
+   filename, without extension.  For example:
+       @setfilename foo.info
+   produces output in files foo/index.html, foo/second-node.html, ...
+ 
+   But if the user said -o foo.whatever on the cmd line, then use
+   foo.whatever unchanged.  */
+ 
+ static char *
+ insert_toplevel_subdirectory (char *output_filename)
+ {
+   static const char index_name[] = "index.html";
+   char *dir, *subdir, *base, *basename, *p;
+   char buf[PATH_MAX];
+   const int index_len = sizeof (index_name) - 1;
+ 
+   strcpy (buf, output_filename);
+   dir = pathname_part (buf);   /* directory of output_filename */
+   base = filename_part (buf);  /* strips suffix, too */
+   basename = xstrdup (base);   /* remember real @setfilename name */
+   p = dir + strlen (dir) - 1;
+   if (p > dir && IS_SLASH (*p))
+     *p = 0;
+   p = strrchr (base, '.');
+   if (p)
+     *p = 0;
+ 
+   /* Split html output goes into subdirectory of toplevel name. */
+   if (save_command_output_filename
+       && STREQ (output_filename, save_command_output_filename))
+     subdir = basename;  /* from user, use unchanged */
+   else
+     subdir = base;      /* implicit, omit suffix */
+ 
+   free (output_filename);
+   output_filename = xmalloc (strlen (dir) + 1
+                              + strlen (basename) + 1
+                              + index_len
+                              + 1);
+   strcpy (output_filename, dir);
+   if (strlen (dir))
+     strcat (output_filename, "/");
+   strcat (output_filename, subdir);
+ 
+   /* First try, do not remove existing file.  */
+   if (!create_html_directory (output_filename, 0))
+     {
+       /* That failed, try subdir name with .html.
+          Remove it if it exists.  */
+       strcpy (output_filename, dir);
+       if (strlen (dir))
+         strcat (output_filename, "/");
+       strcat (output_filename, basename);
+ 
+       if (!create_html_directory (output_filename, 1))
+         {
+           /* Last try failed too :-\  */
+           line_error (_("Can't create directory `%s': %s"),
+               output_filename, strerror (errno));
+           xexit (1);
+         }
+     }
+ 
+   strcat (output_filename, "/");
+   strcat (output_filename, index_name);
+   return output_filename;
+ }
+ 
+ /* FIXME: this is way too hairy */
+ static void
+ convert_from_loaded_file (char *name)
+ {
+   char *real_output_filename = NULL;
+ 
+   remember_itext (input_text, 0);
+ 
+   input_text_offset = 0;
+ 
+   /* Avoid the `\input texinfo' line in HTML output (assuming it starts
+      the file).  */
+   if (looking_at ("\\input"))
+     discard_until ("\n");
+ 
+   /* Search this file looking for the special string which starts conversion.
+      Once found, we may truly begin. */
+   while (input_text_offset >= 0)
+     {
+       input_text_offset =
+         search_forward (setfilename_search, input_text_offset);
+ 
+       if (input_text_offset == 0
+           || (input_text_offset > 0
+               && input_text[input_text_offset -1] == '\n'))
+         break;
+       else if (input_text_offset > 0)
+         input_text_offset++;
+     }
+ 
+   if (input_text_offset < 0)
+     {
+       if (!command_output_filename)
+         {
+ #if defined (REQUIRE_SETFILENAME)
+           error (_("No `%s' found in `%s'"), setfilename_search, name);
+           goto finished;
+ #else
+           command_output_filename = output_name_from_input_name (name);
+ #endif /* !REQUIRE_SETFILENAME */
+         }
+ 
+       {
+         int i, end_of_first_line;
+ 
+         /* Find the end of the first line in the file. */
+         for (i = 0; i < input_text_length - 1; i++)
+           if (input_text[i] == '\n')
+             break;
+ 
+         end_of_first_line = i + 1;
+ 
+         for (i = 0; i < end_of_first_line; i++)
+           {
+             if ((input_text[i] == '\\') &&
+                 (strncmp (input_text + i + 1, "input", 5) == 0))
+               {
+                 input_text_offset = i;
+                 break;
+               }
+           }
+       }
+     }
+   else
+     input_text_offset += strlen (setfilename_search);
+ 
+   if (!command_output_filename)
+     {
+       get_until ("\n", &output_filename); /* read rest of line */
+       if (html || xml)
+         { /* Change any extension to .html or .xml.  */
+           char *html_name, *directory_part, *basename_part, *temp;
+ 
+           canon_white (output_filename);
+           directory_part = pathname_part (output_filename);
+ 
+           basename_part = filename_part (output_filename);
+ 
+           /* Zap any existing extension.  */
+           temp = strrchr (basename_part, '.');
+           if (temp)
+             *temp = 0;
+ 
+           /* Construct new filename.  */
+           html_name = xmalloc (strlen (directory_part)
+                                + strlen (basename_part) + 6);
+           strcpy (html_name, directory_part);
+           strcat (html_name, basename_part);
+           strcat (html_name, html ? ".html" : ".xml");
+ 
+           /* Replace name from @setfilename with the html name.  */
+           free (output_filename);
+           output_filename = html_name;
+         }
+     }
+   else
+     {
+       if (input_text_offset != -1)
+         discard_until ("\n");
+       else
+         input_text_offset = 0;
+ 
+       real_output_filename = output_filename = command_output_filename;
+       command_output_filename = NULL;  /* for included files or whatever */
+     }
+ 
+   canon_white (output_filename);
+   toplevel_output_filename = xstrdup (output_filename);
+ 
+   if (real_output_filename && strcmp (real_output_filename, "-") == 0)
+     {
+       if (macro_expansion_filename
+           && strcmp (macro_expansion_filename, "-") == 0)
+         {
+           fprintf (stderr,
+   _("%s: Skipping macro expansion to stdout as Info output is going there.\n"),
+                    progname);
+           macro_expansion_output_stream = NULL;
+         }
+       real_output_filename = xstrdup (real_output_filename);
+       output_stream = stdout;
+       splitting = 0;            /* Cannot split when writing to stdout. */
+     }
+   else
+     {
+       if (html && splitting)
+         {
+           if (FILENAME_CMP (output_filename, NULL_DEVICE) == 0
+               || FILENAME_CMP (output_filename, ALSO_NULL_DEVICE) == 0)
+             splitting = 0;
+           else
+             output_filename = insert_toplevel_subdirectory (output_filename);
+           real_output_filename = xstrdup (output_filename);
+         }
+       else if (!real_output_filename)
+         real_output_filename = expand_filename (output_filename, name);
+       else
+         real_output_filename = xstrdup (real_output_filename);
+ 
+       output_stream = fopen (real_output_filename, "w");
+     }
+ 
+   set_current_output_filename (real_output_filename);
+   
+   if (verbose_mode)
+     printf (_("Making %s file `%s' from `%s'.\n"),
+             no_headers ? "text"
+             : html ? "HTML"
+             : xml ? "XML"
+             : "info",
+             output_filename, input_filename);
+ 
+   if (output_stream == NULL)
+     {
+       fs_error (real_output_filename);
+       goto finished;
+     }
+ 
+   if (xml)
+     xml_begin_document (filename_part (output_filename));
+ 
+   /* Make the displayable filename from output_filename.  Only the base
+      portion of the filename need be displayed. */
+   flush_output ();              /* in case there was no @bye */
+   if (output_stream != stdout)
+     pretty_output_filename = filename_part (output_filename);
+   else
+     pretty_output_filename = xstrdup ("stdout");
+ 
+   /* For this file only, count the number of newlines from the top of
+      the file to here.  This way, we keep track of line numbers for
+      error reporting.  Line_number starts at 1, since the user isn't
+      zero-based. */
+   {
+     int temp = 0;
+     line_number = 1;
+     while (temp != input_text_offset)
+       if (input_text[temp++] == '\n')
+         line_number++;
+   }
+ 
+   if (xml && !docbook)
+     {
+       /* Just before the real main loop, let's handle the defines.  */
+       COMMAND_LINE_DEFINE *temp;
+ 
+       for (temp = command_line_defines; temp; temp = temp->next)
+         {
+           handle_variable_internal (temp->action, temp->define);
+           free(temp->define);
+         }
+     }
+ 
+   reader_loop ();
+   if (xml)
+     xml_end_document ();
+ 
+ 
+ finished:
+   discard_insertions (0);
+   close_paragraph ();
+   flush_file_stack ();
+ 
+   if (macro_expansion_output_stream)
+     {
+       fclose (macro_expansion_output_stream);
+       if (errors_printed && !force
+           && strcmp (macro_expansion_filename, "-") != 0
+           && FILENAME_CMP (macro_expansion_filename, NULL_DEVICE) != 0
+           && FILENAME_CMP (macro_expansion_filename, ALSO_NULL_DEVICE) != 0)
+         {
+           fprintf (stderr,
+ _("%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"),
+                    progname, macro_expansion_filename);
+           if (unlink (macro_expansion_filename) < 0)
+             perror (macro_expansion_filename);
+         }
+     }
+ 
+   if (output_stream)
+     {
+       output_pending_notes ();
+ 
+       if (html)
+         {
+           no_indent = 1;
+           start_paragraph ();
+           add_word ("</body></html>\n");
+           close_paragraph ();
+         }
+ 
+       /* Write stuff makeinfo generates after @bye, ie. info_trailer.  */
+       flush_output ();
+ 
+       if (output_stream != stdout)
+         if (fclose (output_stream) != 0)
+           fs_error (real_output_filename);
+ 
+       /* If validating, then validate the entire file right now. */
+       if (validating)
+         validate_file (tag_table);
+ 
+       handle_delayed_writes ();
+ 
+       if (tag_table)
+         {
+           tag_table = (TAG_ENTRY *) reverse_list ((GENERIC_LIST *) tag_table);
+           if (!no_headers && !html && !STREQ (current_output_filename, "-"))
+             write_tag_table (real_output_filename);
+         }
+ 
+       /* Maybe we want local variables in info output.  Must be after
+          tag table, since otherwise usually Emacs will not see it.  */
+       write_trailer (real_output_filename, info_trailer ());
+ 
+       if (splitting && !html && (!errors_printed || force))
+         {
+           clean_old_split_files (real_output_filename);
+           split_file (real_output_filename, split_size);
+         }
+       else if (errors_printed
+                && !force
+                && strcmp (real_output_filename, "-") != 0
+                && FILENAME_CMP (real_output_filename, NULL_DEVICE) != 0
+                && FILENAME_CMP (real_output_filename, ALSO_NULL_DEVICE) != 0)
+         { /* If there were errors, and no --force, remove the output.  */
+           fprintf (stderr,
+   _("%s: Removing output file `%s' due to errors; use --force to preserve.\n"),
+                    progname, real_output_filename);
+           if (unlink (real_output_filename) < 0)
+             perror (real_output_filename);
+         }
+     }
+ 
+   if (internal_links_stream)
+     {
+       if (internal_links_stream != stdout
+           && fclose (internal_links_stream) != 0)
+         fs_error(internal_links_filename);
+       internal_links_stream = NULL;
+       if (errors_printed && !force
+           && strcmp (internal_links_filename, "-") != 0
+           && FILENAME_CMP (internal_links_filename, NULL_DEVICE) != 0
+           && FILENAME_CMP (internal_links_filename, ALSO_NULL_DEVICE) != 0)
+         {
+           fprintf (stderr,
+ _("%s: Removing internal links output file `%s' due to errors; use --force to preserve.\n"),
+                    progname, internal_links_filename);
+           if (unlink (internal_links_filename) < 0)
+             perror (internal_links_filename);
+         }
+     }
+      
+   free (real_output_filename);
+ }
+ 
+ /* If enable_encoding is set and @documentencoding is used, return a
+    Local Variables section (as a malloc-ed string) so that Emacs'
+    locale features can work.  Else return NULL.  */
+ char *
+ info_trailer (void)
+ {
+   char *encoding;
+ 
+   if (!enable_encoding)
+     return NULL;
+ 
+   encoding = current_document_encoding ();
+ 
+   if (encoding && *encoding)
+     {
+ #define LV_FMT "\n\037\nLocal Variables:\ncoding: %s\nEnd:\n"
+       char *lv = xmalloc (sizeof (LV_FMT) + strlen (encoding));
+       sprintf (lv, LV_FMT, encoding);
+       free (encoding);
+       return lv;
+     }
+ 
+   free (encoding);
+   return NULL;
+ }
+ 
+ /* Append TRAILER to FILENAME for Info and HTML output.  Include HTML
+    comments if needed.  */
+ static void
+ write_trailer (char *filename, char *trailer)
+ {
+   if (!trailer || xml || docbook) 
+     return;
+ 
+   if (output_stream != stdout)
+     output_stream = fopen (filename, "a");
+   if (!output_stream)
+     {
+       fs_error (filename);
+       return;
+     }
+ 
+   if (html)
+     fwrite ("<!--", 1, 4, output_stream);
+ 
+   fwrite (trailer, 1, strlen (trailer), output_stream);
+   free (trailer);
+ 
+   if (html)
+     fwrite ("\n-->\n", 1, 5, output_stream);
+ 
+   if (output_stream != stdout)
+     if (fclose (output_stream) != 0)
+       fs_error (filename);
+ }
+ 
+ 
+ void
+ free_and_clear (char **pointer)
+ {
+   if (*pointer)
+     {
+       free (*pointer);
+       *pointer = NULL;
+     }
+ }
+ 
+  /* Initialize some state. */
+ static void
+ init_internals (void)
+ {
+   free_and_clear (&output_filename);
+   free_and_clear (&command);
+   free_and_clear (&input_filename);
+   free_node_references ();
+   free_node_node_references ();
+   toc_free ();
+   init_insertion_stack ();
+   init_brace_stack ();
+   current_node = NULL; /* sometimes already freed */
+   command_index = 0;
+   in_menu = 0;
+   in_detailmenu = 0;
+   top_node_seen = 0;
+   non_top_node_seen = 0;
+   node_number = -1;
+ }
+ 
+ void
+ init_paragraph (void)
+ {
+   if (output_paragraph)
+     free (output_paragraph);
+   output_paragraph = xmalloc (paragraph_buffer_len);
+   output_paragraph[0] = 0;
+   output_paragraph_offset = 0;
+   output_paragraph_start_column = 0;
+   paragraph_is_open = 0;
+   current_indent = 0;
+   meta_char_pos = 0;
+ }
+ 
+ /* This is called from `reader_loop' when we are at the * beginning a
+    menu line.  */
+ 
+ static void
+ handle_menu_entry (void)
+ {
+   char *tem;
+ 
+   /* Ugh, glean_node_from_menu wants to read the * itself.  */
+   input_text_offset--;
+ 
+   /* Find node name in menu entry and save it in references list for
+      later validation.  Use followed_reference type for detailmenu
+      references since we don't want to use them for default node pointers.  */
+   tem = glean_node_from_menu (1, in_detailmenu
+                                  ? followed_reference : menu_reference);
+ 
+   if (html && tem)
+     { /* Start a menu item with the cleaned-up line.  Put an anchor
+          around the start text (before `:' or the node name). */
+       char *string;
+ 
+       discard_until ("* ");
+ 
+       /* The line number was already incremented in reader_loop when we
+          saw the newline, and discard_until has now incremented again.  */
+       line_number--;
+ 
+       if (had_menu_commentary)
+         {
+           add_html_block_elt ("<ul class=\"menu\">\n");
+           had_menu_commentary = 0;
+           in_paragraph = 0;
+         }
+ 
+       if (in_paragraph)
+         {
+           add_html_block_elt ("</p>\n");
+           add_html_block_elt ("<ul class=\"menu\">\n");
+           in_paragraph = 0;
+         }
+ 
+       in_menu_item = 1;
+ 
+       add_html_block_elt ("<li><a");
+       if (next_menu_item_number <= 9)
+         {
+           add_word(" accesskey=");
+           add_word_args("\"%d\"", next_menu_item_number);
+           next_menu_item_number++;
+         }
+       add_word (" href=\"");
+       string = expansion (tem, 0);
+       add_anchor_name (string, 1);
+       add_word ("\">");
+       free (string);
+ 
+       /* The menu item may use macros, so expand them now.  */
+       only_macro_expansion++;
+       get_until_in_line (1, ":", &string);
+       only_macro_expansion--;
+       execute_string ("%s", string); /* get escaping done */
+       free (string);
+ 
+       add_word ("</a>");
+ 
+       if (looking_at ("::"))
+         discard_until (":");
+       else
+         { /* discard the node name */
+           get_until_in_line (0, ".", &string);
+           free (string);
+         }
+       input_text_offset++;      /* discard the second colon or the period */
+ 
+       /* Insert a colon only if there is a description of this menu item.  */
+       {
+         int save_input_text_offset = input_text_offset;
+         int save_line_number = line_number;
+         char *test_string;
+         get_rest_of_line (0, &test_string);
+         if (strlen (test_string) > 0)
+           add_word (": ");
+         input_text_offset = save_input_text_offset;
+         line_number = save_line_number;
+       }
+     }
+   else if (xml && tem)
+     {
+       xml_start_menu_entry (tem);
+     }
+   else if (tem)
+     { /* For Info output, we can just use the input and the main case in
+          reader_loop where we output what comes in.  Just move off the *
+          so the next time through reader_loop we don't end up back here.  */
+       add_char ('*');
+       input_text_offset += 2; /* undo the pointer back-up above.  */
+     }
+ 
+   if (tem)
+     free (tem);
+ }
+ 
+ /* Find the command corresponding to STRING.  If the command is found,
+    return a pointer to the data structure.  Otherwise return -1.  */
+ static COMMAND *
+ get_command_entry (char *string)
+ {
+   int i;
+ 
+   for (i = 0; command_table[i].name; i++)
+     if (strcmp (command_table[i].name, string) == 0)
+       return &command_table[i];
+ 
+   /* This command is not in our predefined command table.  Perhaps
+      it is a user defined command. */
+   for (i = 0; i < user_command_array_len; i++)
+     if (user_command_array[i] &&
+         (strcmp (user_command_array[i]->name, string) == 0))
+       return user_command_array[i];
+ 
+   /* We never heard of this command. */
+   return (COMMAND *) -1;
+ }
+ 
+ 
+ /* input_text_offset is right at the command prefix character.
+    Read the next token to determine what to do.  Return zero
+    if there's no known command or macro after the prefix character.  */
+ static int
+ read_command (void)
+ {
+   COMMAND *entry;
+   int old_text_offset = input_text_offset++;
+ 
+   free_and_clear (&command);
+   command = read_token ();
+ 
+   /* Check to see if this command is a macro.  If so, execute it here. */
+   {
+     MACRO_DEF *def;
+ 
+     def = find_macro (command);
+ 
+     if (def)
+       {
+         /* We disallow recursive use of a macro call.  Inhibit the expansion
+            of this macro during the life of its execution. */
+         if (!(def->flags & ME_RECURSE))
+           def->inhibited = 1;
+ 
+         executing_macro++;
+         execute_macro (def);
+         executing_macro--;
+ 
+         if (!(def->flags & ME_RECURSE))
+           def->inhibited = 0;
+ 
+         return 1;
+       }
+   }
+ 
+   if (only_macro_expansion)
+     {
+       /* Back up to the place where we were called, so the
+          caller will have a chance to process this non-macro.  */
+       input_text_offset = old_text_offset;
+       return 0;
+     }
+ 
+   /* Perform alias expansion */
+   command = alias_expand (command);
+ 
+   if (enclosure_command (command))
+     {
+       remember_brace (enclosure_expand);
+       enclosure_expand (START, output_paragraph_offset, 0);
+       return 0;
+     }
+ 
+   entry = get_command_entry (command);
+   if (entry == (COMMAND *)-1)
+     {
+       line_error (_("Unknown command `%s'"), command);
+       return 0;
+     }
+ 
+   if (entry->argument_in_braces == BRACE_ARGS)
+     remember_brace (entry->proc);
+   else if (entry->argument_in_braces == MAYBE_BRACE_ARGS)
+     {
+       if (curchar () == '{')
+         remember_brace (entry->proc);
+       else
+         { /* No braces, so arg is next char.  */
+           int ch;
+           int saved_offset = output_paragraph_offset;
+           (*(entry->proc)) (START, output_paragraph_offset, 0);
+ 
+           /* Possibilities left for the next character: @ (error), }
+              (error), whitespace (skip) anything else (normal char).  */
+           skip_whitespace ();
+           ch = curchar ();
+           if (ch == '@')
+             {
+            line_error (_("Use braces to give a command as an argument to @%s"),
+                entry->name);
+               return 0;
+             }
+           else if (ch == '}')
+             {
+               /* Our caller will give the error message, because this }
+                  won't match anything.  */
+               return 0;
+             }
+ 
+           add_char (ch);
+           input_text_offset++;
+           (*(entry->proc)) (END, saved_offset, output_paragraph_offset);
+           return 1;
+         }
+     }
+ 
+   /* Get here if we have BRACE_ARGS, NO_BRACE_ARGS, or MAYBE_BRACE_ARGS
+      with braces.  */
+   (*(entry->proc)) (START, output_paragraph_offset, 0);
+   return 1;
+ }
+ 
+ /* Okay, we are ready to start the conversion.  Call the reader on
+    some text, and fill the text as it is output.  Handle commands by
+    remembering things like open braces and the current file position on a
+    stack, and when the corresponding close brace is found, you can call
+    the function with the proper arguments.  Although the filling isn't
+    necessary for HTML, it should do no harm.  */
+ void
+ reader_loop (void)
+ {
+   int character;
+   int done = 0;
+ 
+   while (!done)
+     {
+       if (input_text_offset >= input_text_length)
+         break;
+ 
+       character = curchar ();
+ 
+       /* If only_macro_expansion, only handle macros and leave
+          everything else intact.  */
+       if (!only_macro_expansion && !in_fixed_width_font
+           && ((!html && !xml) || escape_html)
+           && (character == '\'' || character == '`')
+           && input_text[input_text_offset + 1] == character)
+         {
+           if (html)
+             {
+               input_text_offset += 2;
+               add_word (character == '`' ? "&ldquo;" : "&rdquo;");
+               continue;
+             }
+           else if (xml)
+             {
+               input_text_offset += 2;
+               xml_insert_entity (character == '`' ? "ldquo" : "rdquo");
+               continue;
+             }
+           else
+             {
+               input_text_offset++;
+               character = '"';
+             }
+         }
+ 
+       /* Convert --- to --.  */
+       if (!only_macro_expansion && character == '-' && !in_fixed_width_font
+           && ((!html && !xml) || escape_html))
+         {
+           int dash_count = 0;
+ 
+           /* Get the number of consequtive dashes.  */
+           while (input_text[input_text_offset] == '-')
+             {
+               dash_count++;
+               input_text_offset++;
+             }
+ 
+           /* Eat one dash.  */
+           dash_count--;
+ 
+           if (html || xml)
+             {
+               if (dash_count == 0)
+                 add_char ('-');
+               else
+                 while (dash_count > 0)
+                   {
+                     if (dash_count >= 2)
+                       {
+                         if (html)
+                           add_word ("&mdash;");
+                         else
+                           xml_insert_entity ("mdash");
+                         dash_count -= 2;
+                       }
+                     else if (dash_count >= 1)
+                       {
+                         if (html)
+                           add_word ("&ndash;");
+                         else
+                           xml_insert_entity ("ndash");
+                         dash_count--;
+                       }
+                   }
+             }
+           else
+             {
+               add_char ('-');
+               while (--dash_count > 0)
+                 add_char ('-');
+             }
+ 
+           continue;
+         }
+ 
+       /* If this is a whitespace character, then check to see if the line
+          is blank.  If so, advance to the carriage return. */
+       if (!only_macro_expansion && whitespace (character))
+         {
+           int i = input_text_offset + 1;
+ 
+           while (i < input_text_length && whitespace (input_text[i]))
+             i++;
+ 
+           if (i == input_text_length || input_text[i] == '\n')
+             {
+               if (i == input_text_length)
+                 i--;
+ 
+               input_text_offset = i;
+               character = curchar ();
+             }
+         }
+ 
+       if (character == '\n')
+         line_number++;
+ 
+       switch (character)
+         {
+         case '*': /* perhaps we are at a menu */
+           /* We used to check for this in the \n case but an @c in a
+              menu swallows its newline, so check here instead.  */
+           if (!only_macro_expansion && in_menu
+               && input_text_offset + 1 < input_text_length
+ 	      && input_text_offset > 0
+               && input_text[input_text_offset-1] == '\n')
+             handle_menu_entry ();
+           else
+             { /* Duplicate code from below, but not worth twisting the
+                  fallthroughs to get down there.  */
+               add_char (character);
+               input_text_offset++;
+             }
+           break;
+ 
+         /* Escapes for HTML unless we're outputting raw HTML.  Do
+            this always, even if SGML rules don't require it since
+            that's easier and safer for non-conforming browsers. */
+         case '&':
+           if (html && escape_html)
+             add_word ("&amp;");
+           else
+             add_char (character);
+           input_text_offset++;
+           break;
+ 
+         case '<':
+           if (html && escape_html)
+             add_word ("&lt;");
+           else if (xml && escape_html)
+             xml_insert_entity ("lt");
+           else
+             add_char (character);
+           input_text_offset++;
+           break;
+ 
+         case '>':
+           if (html && escape_html)
+             add_word ("&gt;");
+           else if (xml && escape_html)
+             xml_insert_entity ("gt");
+           else
+             add_char (character);
+           input_text_offset++;
+           break;
+ 
+         case COMMAND_PREFIX: /* @ */
+           if (read_command () || !only_macro_expansion)
+             break;
+ 
+         /* FALLTHROUGH (usually) */
+         case '{':
+           /* Special case.  We're not supposed to see this character by itself.
+              If we do, it means there is a syntax error in the input text.
+              Report the error here, but remember this brace on the stack so
+              we can ignore its partner. */
+           if (!only_macro_expansion)
+             {
+               if (command && !STREQ (command, "math"))
+                 {
+                   line_error (_("Misplaced %c"), '{');
+                   remember_brace (misplaced_brace);
+                 }
+               else
+                 /* We don't mind `extra' braces inside @math.  */
+                 remember_brace (cm_no_op);
+               /* remember_brace advances input_text_offset.  */
+               break;
+             }
+ 
+         /* FALLTHROUGH (usually) */
+         case '}':
+           if (!only_macro_expansion)
+             {
+               pop_and_call_brace ();
+               input_text_offset++;
+               break;
+             }
+ 
+         /* FALLTHROUGH (usually) */
+         default:
+           add_char (character);
+           input_text_offset++;
+         }
+     }
+   if (macro_expansion_output_stream && !only_macro_expansion)
+     maybe_write_itext (input_text, input_text_offset);
+ }
+ 
+ static void
+ init_brace_stack (void)
+ {
+   brace_stack = NULL;
+ }
+ 
+ /* Remember the current output position here.  Save PROC
+    along with it so you can call it later. */
+ static void
+ remember_brace_1 (COMMAND_FUNCTION (*proc), int position)
+ {
+   BRACE_ELEMENT *new = xmalloc (sizeof (BRACE_ELEMENT));
+   new->next = brace_stack;
+   new->proc = proc;
+   new->command = xstrdup (command ? command : "");
+   new->pos = position;
+   new->line = line_number;
+   new->in_fixed_width_font = in_fixed_width_font;
+   brace_stack = new;
+ }
+ 
+ static void
+ remember_brace (COMMAND_FUNCTION (*proc))
+ {
+   if (curchar () != '{')
+     line_error (_("%c%s expected braces"), COMMAND_PREFIX, command);
+   else
+     input_text_offset++;
+   remember_brace_1 (proc, output_paragraph_offset);
+ }
+ 
+ /* Pop the top of the brace stack, and call the associated function
+    with the args END and POS. */
+ static void
+ pop_and_call_brace (void)
+ {
+   if (brace_stack == NULL)
+     {
+       line_error (_("Unmatched }"));
+       return;
+     }
+ 
+   {
+     BRACE_ELEMENT *temp;
+ 
+     int pos = brace_stack->pos;
+     COMMAND_FUNCTION *proc = brace_stack->proc;
+     in_fixed_width_font = brace_stack->in_fixed_width_font;
+ 
+     /* Reset current command, so the proc can know who it is.  This is
+        used in cm_accent.  */
+     command = brace_stack->command;
+ 
+     temp = brace_stack->next;
+     free (brace_stack);
+     brace_stack = temp;
+ 
+     (*proc) (END, pos, output_paragraph_offset);
+   }
+ }
+ 
+ /* Shift all of the markers in `brace_stack' by AMOUNT. */
+ static void
+ adjust_braces_following (int here, int amount)
+ {
+   BRACE_ELEMENT *stack = brace_stack;
+ 
+   while (stack)
+     {
+       if (stack->pos >= here)
+         stack->pos += amount;
+       stack = stack->next;
+     }
+ }
+ 
+ /* Return the string which invokes PROC; a pointer to a function.
+    Always returns the first function in the command table if more than
+    one matches PROC.  */
+ static const char *
+ find_proc_name (COMMAND_FUNCTION (*proc))
+ {
+   int i;
+ 
+   for (i = 0; command_table[i].name; i++)
+     if (proc == command_table[i].proc)
+       return command_table[i].name;
+   return _("NO_NAME!");
+ }
+ 
+ /* You call discard_braces () when you shouldn't have any braces on the stack.
+    I used to think that this happens for commands that don't take arguments
+    in braces, but that was wrong because of things like @code{foo @@}.  So now
+    I only detect it at the beginning of nodes. */
+ void
+ discard_braces (void)
+ {
+   if (!brace_stack)
+     return;
+ 
+   while (brace_stack)
+     {
+       if (brace_stack->proc != misplaced_brace)
+         {
+           const char *proc_name;
+ 
+           proc_name = find_proc_name (brace_stack->proc);
+           file_line_error (input_filename, brace_stack->line,
+                            _("%c%s missing close brace"), COMMAND_PREFIX,
+                            proc_name);
+           pop_and_call_brace ();
+         }
+       else
+         {
+           BRACE_ELEMENT *temp;
+           temp = brace_stack->next;
+           free (brace_stack);
+           brace_stack = temp;
+         }
+     }
+ }
+ 
+ /* Return the 0-based number of the current output column */
+ int
+ current_output_column (void)
+ {
+   int i, column;
+ 
+   for (i = output_paragraph_offset; i > 0 && output_paragraph[i - 1] != '\n';
+        i--)
+      ;
+   if (i == 0)
+     column = output_paragraph_start_column;
+   else
+     column = 0;
+   while (i < output_paragraph_offset)
+     {
+       int j;
+ 
+       /* Find a span of non-control characters */
+       for (j = i; j < output_paragraph_offset; j++)
+  	{
+  	  char c;
+ 
+  	  c = output_paragraph[j];
+  	  if ((0 <= c && c < ' ') || c == '\t' || c == NON_BREAKING_SPACE)
+  	    break;
+  	}
+       if (i < j)
+  	{
+  	  column += mbsnwidth ((char *)(output_paragraph + i), j - i, 0);
+ 	  i = j;
+  	}
+       if (i < output_paragraph_offset)
+  	{
+  	  char c;
+ 
+  	  /* Handle a control character */
+  	  c = output_paragraph[i];
+  	  if (c == '\t')
+  	    {
+  	      column = (column + 8) & ~0x7;
+  	      if (column > fill_column)
+  		column = fill_column;
+  	    }
+ 	  else if (c == NON_BREAKING_SPACE)
+ 	    column++;
+  	  else
+  	    {
+  	      /* ASCII control characters appear as two characters in the
+  		 output (e.g., ^A).  */
+  	      if (!(0 <= c && c < ' '))
+  		abort ();
+  	      column += 2;
+  	    }
+  	  i++;
+  	}
+     }
+   return column;
+ }
+ 
+ void
+ #if defined (VA_FPRINTF) && __STDC__
+ add_word_args (const char *format, ...)
+ #else
+ add_word_args (format, va_alist)
+     const char *format;
+     va_dcl
+ #endif
+ {
+   char buffer[2000]; /* xx no fixed limits */
+ #ifdef VA_FPRINTF
+   va_list ap;
+ #endif
+ 
+   VA_START (ap, format);
+ #ifdef VA_SPRINTF
+   VA_SPRINTF (buffer, format, ap);
+ #else
+   sprintf (buffer, format, a1, a2, a3, a4, a5, a6, a7, a8);
+ #endif /* not VA_SPRINTF */
+   va_end (ap);
+   add_word (buffer);
+ }
+ 
+ /* Add STRING to output_paragraph. */
+ void
+ add_word (char *string)
+ {
+   while (*string)
+     add_char (*string++);
+ }
+ 
+ /* Like add_word, but inhibits conversion of whitespace into &nbsp;.
+    Use this to output HTML directives with embedded blanks, to make
+    them @w-safe.  */
+ void
+ add_html_elt (char *string)
+ {
+   in_html_elt++;
+   add_word (string);
+   in_html_elt--;
+ }
+ 
+ /* These two functions below, add_html_block_elt and add_html_block_elt_args,
+    are mixtures of add_html_elt and add_word_args.  They inform makeinfo that
+    the current HTML element being inserted should not be enclosed in a <p>
+    element.  */
+ void
+ add_html_block_elt (char *string)
+ {
+   in_html_block_level_elt++;
+   add_word (string);
+   in_html_block_level_elt--;
+ }
+ 
+ void
+ #if defined (VA_FPRINTF) && __STDC__
+ add_html_block_elt_args (const char *format, ...)
+ #else
+ add_html_block_elt_args (format, va_alist)
+     const char *format;
+     va_dcl
+ #endif
+ {
+   char buffer[2000]; /* xx no fixed limits */
+ #ifdef VA_FPRINTF
+   va_list ap;
+ #endif
+ 
+   VA_START (ap, format);
+ #ifdef VA_SPRINTF
+   VA_SPRINTF (buffer, format, ap);
+ #else
+   sprintf (buffer, format, a1, a2, a3, a4, a5, a6, a7, a8);
+ #endif /* not VA_SPRINTF */
+   va_end (ap);
+   add_html_block_elt (buffer);
+ }
+ 
+ /* Here is another awful kludge, used in add_char.  Ordinarily, macro
+    expansions take place in the body of the document, and therefore we
+    should html_output_head when we see one.  But there's an exception: a
+    macro call might take place within @copying, and that does not start
+    the real output, even though we fully expand the copying text.
+ 
+    So we need to be able to check if we are defining the @copying text.
+    We do this by looking back through the insertion stack.  */
+ static int
+ defining_copying (void)
+ {
+   INSERTION_ELT *i;
+   for (i = insertion_stack; i; i = i->next)
+     {
+       if (i->insertion == copying)
+         return 1;
+     }
+   return 0;
+ }
+ 
+ /* Output the header for Info.
+    html fixxme: should output this as trailer on first page (at least).  */
+ 
+ static void
+ info_output_head (void)
+ {
+   add_word_args (gdt("This is %s, produced by makeinfo version %s from %s.\n"),
+                  output_filename, VERSION, input_filename);
+ 
+   /* Start afresh with whatever real text we have.  */
+   close_paragraph ();
+ 
+   /* We do not want indentation in what follows, which is usually going
+      to be a node marker (CTRL-_).  */
+   if (inhibit_paragraph_indentation == 0)
+     inhibit_paragraph_indentation = -1;
+ }
+ 
+ void
+ output_head (void)
+ {
+   if (output_head_p) /* no-op if we're mistakenly called twice */
+     return;
+   output_head_p = 1;
+   
+   if (html)
+     html_output_head ();
+   else if (xml)
+     ; /* handled differently, via xml_begin_document */
+   else if (no_headers)
+     ; /* no header for plain text */
+   else
+     info_output_head ();
+ }
+ 
+ 
+ /* Add the character to the current paragraph.  If filling_enabled is
+    nonzero, then do filling as well. */
+ void
+ add_char (int character)
+ {
+   if (xml)
+     {
+       xml_add_char (character);
+       return;
+     }
+ 
+   /* If we are avoiding outputting headers, and we are currently
+      in a menu, then simply return.  But if we're only expanding macros,
+      then we're being called from glean_node_from_menu to try to
+      remember a menu reference, and we need that so we can do defaulting.  */
+   if (no_headers && !only_macro_expansion && (in_menu || in_detailmenu))
+     return;
+ 
+   /* If we are adding a character now, then we don't have to
+      ignore close_paragraph () calls any more. */
+   if (must_start_paragraph && character != '\n')
+     {
+       int column;
+ 
+       must_start_paragraph = 0;
+       line_already_broken = 0;  /* The line is no longer broken. */
+       column = current_output_column ();
+       if (current_indent > column)
+ 	indent (current_indent - column);
+     }
+ 
+   if (non_splitting_words
+       && !(html && in_html_elt)
+       && strchr (" \t\n", character))
+     {
+       if (html || docbook)
+         { /* Seems cleaner to use &nbsp; than an 8-bit char.  */
+           int saved_escape_html = escape_html;
+           escape_html = 0;
+           add_word ("&nbsp");
+           escape_html = saved_escape_html;
+           character = ';';
+         }
+       else
+         character = NON_BREAKING_SPACE; /* restored in flush_output */
+     }
+ 
+   insertion_paragraph_closed = 0;
+ 
+   switch (character)
+     {
+     case '\n':
+       if (!filling_enabled && !(html && (in_menu || in_detailmenu)))
+         {
+           insert ('\n');
+ 
+           if (force_flush_right)
+             {
+               close_paragraph ();
+               /* Hack to force single blank lines out in this mode. */
+               flush_output ();
+             }
+ 
+           if (!no_indent && paragraph_is_open)
+             indent (current_indent);
+           break;
+         }
+       else if (end_of_sentence_p () && !french_spacing)
+         /* CHARACTER is newline, filling is enabled, and we're at the
+            end of a sentence.  Insert an extra space, unless
+            @frenchspacing is in effect.  */
+         {
+           insert (' ');
+           last_inserted_character = character;
+         }
+ 
+       if (last_char_was_newline)
+         {
+           if (html)
+             last_char_was_newline++;
+           close_paragraph ();
+           pending_indent = 0;
+         }
+       else
+         {
+           last_char_was_newline = 1;
+           if (html)
+             insert ('\n');
+           else
+             insert (' ');
+         }
+       break;
+ 
+     default: /* not at newline */
+       {
+         int column;
+         int suppress_insert = 0;
+ 
+         if ((character == ' ') && (last_char_was_newline))
+           {
+             if (!paragraph_is_open)
+               {
+                 pending_indent++;
+                 return;
+               }
+           }
+ 
+         /* This is a sad place to do this, but it seems highly desirable
+            to not force any particular order on the front matter
+            commands.  This way, the document can do @settitle,
+            @documentlanguage, etc, in any order and with any omissions,
+            and we'll still output the header ("produced by makeinfo",
+            HTML <head>, etc.) `just in time'.  */
+         if ((executing_macro || !executing_string)
+             && !only_macro_expansion
+             && !defining_copying ()
+             && !output_head_p)
+           {
+             output_head ();
+           }
+ 
+         if (!paragraph_is_open)
+           {
+             start_paragraph ();
+             /* If the paragraph is supposed to be indented a certain
+                way, then discard all of the pending whitespace.
+                Otherwise, we let the whitespace stay. */
+             if (!paragraph_start_indent)
+               indent (pending_indent);
+             pending_indent = 0;
+ 
+             /* This check for in_html_block_level_elt prevents <p> from being
+                inserted when we already have html markup starting a paragraph,
+                as with <ul> and <h1> and the like.  */
+             if (html && !in_html_block_level_elt)
+               {
+                 if ((in_menu || in_detailmenu) && in_menu_item)
+                   {
+                     insert_string ("</li></ul>\n");
+                     in_menu_item = 0;
+                   }
+                 insert_string ("<p>");
+                 in_paragraph = 1;
+                 adjust_braces_following (0, 3); /* adjust for <p> */
+               }
+           }
+ 
+ 	output_paragraph[output_paragraph_offset] = character;
+ 	output_paragraph_offset++;
+ 	column = current_output_column ();
+ 	output_paragraph_offset--;
+         if (column > fill_column)
+           {
+             if (filling_enabled && !html)
+               {
+                 int temp = output_paragraph_offset;
+                 while (--temp > 0 && output_paragraph[temp] != '\n')
+                   {
+                     /* If we have found a space, we have the place to break
+                        the line. */
+                     if (output_paragraph[temp] == ' ')
+                       {
+                         /* Remove trailing whitespace from output. */
+                         while (temp && whitespace (output_paragraph[temp - 1]))
+                           temp--;
+ 
+                         /* If we went back all the way to the newline of the
+                            preceding line, it probably means that the word we
+                            are adding is itself wider than the space that the
+                            indentation and the fill_column let us use.  In
+                            that case, do NOT insert another newline, since it
+                            won't help.  Just indent to current_indent and
+                            leave it alone, since that's the most we can do.  */
+                         if (temp && output_paragraph[temp - 1] != '\n')
+                           output_paragraph[temp++] = '\n';
+ 
+                         /* We have correctly broken the line where we want
+                            to.  What we don't want is spaces following where
+                            we have decided to break the line.  We get rid of
+                            them. */
+                         {
+                           int t1 = temp;
+ 
+                           for (;; t1++)
+                             {
+                               if (t1 == output_paragraph_offset)
+                                 {
+                                   if (whitespace (character))
+                                     suppress_insert = 1;
+                                   break;
+                                 }
+                               if (!whitespace (output_paragraph[t1]))
+                                 break;
+                             }
+ 
+                           if (t1 != temp)
+                             {
+                               adjust_braces_following (temp, (- (t1 - temp)));
+                               memmove (&output_paragraph[temp],
+                                        &output_paragraph[t1],
+                                        output_paragraph_offset - t1);
+                               output_paragraph_offset -= (t1 - temp);
+                             }
+                         }
+ 
+                         /* Filled, but now indent if that is right. */
+                         if (indented_fill && current_indent > 0)
+                           {
+                             int buffer_len = ((output_paragraph_offset - temp)
+                                               + current_indent);
+                             char *temp_buffer = xmalloc (buffer_len);
+                             int indentation = 0;
+ 
+                             /* We have to shift any markers that are in
+                                front of the wrap point. */
+                             adjust_braces_following (temp, current_indent);
+ 
+                             while (current_indent > 0 &&
+                                    indentation != current_indent)
+                               temp_buffer[indentation++] = ' ';
+ 
+                             memcpy ((char *) &temp_buffer[current_indent],
+                                      (char *) &output_paragraph[temp],
+                                      buffer_len - current_indent);
+ 
+                             if (output_paragraph_offset + buffer_len
+                                 >= paragraph_buffer_len)
+                               {
+                                 unsigned char *tt = xrealloc
+                                   (output_paragraph,
+                                    (paragraph_buffer_len += buffer_len));
+                                 output_paragraph = tt;
+                               }
+                             memcpy ((char *) &output_paragraph[temp],
+                                      temp_buffer, buffer_len);
+                             output_paragraph_offset += current_indent;
+                             free (temp_buffer);
+                           }
+                         break;
+                       }
+                   }
+               }
+           }
+ 
+         if (!suppress_insert)
+           {
+             insert (character);
+             last_inserted_character = character;
+           }
+         last_char_was_newline = 0;
+         line_already_broken = 0;
+       }
+     }
+ }
+ 
+ /* Add a character and store its position in meta_char_pos.  */
+ void
+ add_meta_char (int character)
+ {
+   meta_char_pos = output_paragraph_offset;
+   add_char (character);
+ }
+ 
+ /* Insert CHARACTER into `output_paragraph'. */
+ void
+ insert (int character)
+ {
+   /* We don't want to strip trailing whitespace in multitables.  Otherwise
+      horizontal separators confuse the font locking in Info mode in Emacs,
+      because it looks like a @subsection.  Adding a trailing space to those
+      lines fixes it.  */
+   if (character == '\n' && !html && !xml && !multitable_active)
+     {
+       while (output_paragraph_offset
+ 	     && whitespace (output_paragraph[output_paragraph_offset-1]))
+ 	output_paragraph_offset--;
+     }
+ 
+   output_paragraph[output_paragraph_offset++] = character;
+   if (output_paragraph_offset == paragraph_buffer_len)
+     {
+       output_paragraph =
+         xrealloc (output_paragraph, (paragraph_buffer_len += 100));
+     }
+ }
+ 
+ /* Insert the null-terminated string STRING into `output_paragraph'.  */
+ void
+ insert_string (const char *string)
+ {
+   while (*string)
+     insert (*string++);
+ }
+ 
+ 
+ /* Sentences might have these characters after the period (or whatever).  */
+ #define POST_SENTENCE(c) ((c) == ')' || (c) == '\'' || (c) == '"' \
+                           || (c) == ']')
+ 
+ /* Return true if at an end-of-sentence character, possibly followed by
+    post-sentence punctuation to ignore.  */
+ static int
+ end_of_sentence_p (void)
+ {
+   int loc = output_paragraph_offset - 1;
+ 
+   /* If nothing has been output, don't check output_paragraph[-1].  */
+   if (loc < 0)
+     return 0;
+ 
+   /* A post-sentence character that is at meta_char_pos is not really
+      a post-sentence character; it was produced by a markup such as
+      @samp.  We don't want the period inside @samp to be treated as a
+      sentence ender. */
+   while (loc > 0
+          && loc != meta_char_pos && POST_SENTENCE (output_paragraph[loc]))
+     loc--;
+   return loc != meta_char_pos && sentence_ender (output_paragraph[loc]);
+ }
+ 
+ 
+ /* Remove upto COUNT characters of whitespace from the
+    the current output line.  If COUNT is less than zero,
+    then remove until none left. */
+ void
+ kill_self_indent (int count)
+ {
+   /* Handle infinite case first. */
+   if (count < 0)
+     {
+       while (output_paragraph_offset)
+         {
+           if (whitespace (output_paragraph[output_paragraph_offset - 1]))
+             output_paragraph_offset--;
+           else
+             break;
+         }
+     }
+   else
+     {
+       while (output_paragraph_offset && count--)
+         if (whitespace (output_paragraph[output_paragraph_offset - 1]))
+           output_paragraph_offset--;
+         else
+           break;
+     }
+ }
+ 
+ /* Nonzero means do not honor calls to flush_output (). */
+ static int flushing_ignored = 0;
+ 
+ /* Prevent calls to flush_output () from having any effect. */
+ void
+ inhibit_output_flushing (void)
+ {
+   flushing_ignored++;
+ }
+ 
+ /* Allow calls to flush_output () to write the paragraph data. */
+ void
+ uninhibit_output_flushing (void)
+ {
+   flushing_ignored--;
+ }
+ 
+ void
+ flush_output (void)
+ {
+   int i;
+ 
+   if (!output_paragraph_offset || flushing_ignored)
+     return;
+ 
+   for (i = 0; i < output_paragraph_offset; i++)
+     {
+       if (output_paragraph[i] == '\n')
+         {
+           output_line_number++;
+           node_line_number++;
+         }
+ 
+       /* If we turned on the 8th bit for a space inside @w, turn it back off
+          for output.  Don't do this for HTML, since the nbsp character is valid
+          input and must be passed along to the browser.  */
+       if (!html && output_paragraph[i] == NON_BREAKING_SPACE)
+ 	output_paragraph[i] = ' ';
+     }
+ 
+   fwrite (output_paragraph, 1, output_paragraph_offset, output_stream);
+ 
+   output_position += output_paragraph_offset;
+   output_paragraph_start_column = current_output_column ();
+   output_paragraph_offset = 0;
+   meta_char_pos = 0;
+ }
+ 
+ /* How to close a paragraph controlling the number of lines between
+    this one and the last one. */
+ 
+ /* Paragraph spacing is controlled by this variable.  It is the number of
+    blank lines that you wish to appear between paragraphs.  A value of
+    1 creates a single blank line between paragraphs. */
+ int paragraph_spacing = DEFAULT_PARAGRAPH_SPACING;
+ 
+ static void
+ close_paragraph_with_lines (int lines)
+ {
+   int old_spacing = paragraph_spacing;
+   paragraph_spacing = lines;
+   close_paragraph ();
+   paragraph_spacing = old_spacing;
+ }
+ 
+ /* Close the current paragraph, leaving no blank lines between them. */
+ void
+ close_single_paragraph (void)
+ {
+   close_paragraph_with_lines (0);
+ }
+ 
+ /* Close a paragraph after an insertion has ended. */
+ void
+ close_insertion_paragraph (void)
+ {
+   if (!insertion_paragraph_closed)
+     {
+       /* Close the current paragraph, breaking the line. */
+       close_single_paragraph ();
+ 
+       /* Start a new paragraph, with the correct indentation for the now
+          current insertion level (one above the one that we are ending). */
+       start_paragraph ();
+ 
+       /* Tell `close_paragraph' that the previous line has already been
+          broken, so it should insert one less newline. */
+       line_already_broken = 1;
+ 
+       /* Tell functions such as `add_char' we've already found a newline. */
+       ignore_blank_line ();
+     }
+   else
+     {
+       int column;
+ 
+       /* If the insertion paragraph is closed already, then we are seeing
+          two `@end' commands in a row.  Note that the first one we saw was
+          handled in the first part of this if-then-else clause, and at that
+          time `start_paragraph' was called, partially to handle the proper
+          indentation of the current line.  However, the indentation level
+          may have just changed again, so we may have to outdent the current
+          line to the new indentation level. */
+       column = current_output_column ();
+       if (current_indent < column)
+         kill_self_indent (column - current_indent);
+     }
+ 
+   insertion_paragraph_closed = 1;
+ }
+ 
+ /* Close the currently open paragraph. */
+ void
+ close_paragraph (void)
+ {
+   int i;
+ 
+   /* We don't need these newlines in XML and Docbook outputs for
+      paragraph separation.  We have the <para> element for that.  */
+   if (xml)
+     return;
+ 
+   /* The insertion paragraph is no longer closed. */
+   insertion_paragraph_closed = 0;
+ 
+   if (paragraph_is_open && !must_start_paragraph)
+     {
+       int tindex = output_paragraph_offset;
+ 
+       /* Back up to last non-newline/space character, forcing all such
+          subsequent characters to be newlines.  This isn't strictly
+          necessary, but a couple of functions use the presence of a newline
+          to make decisions. */
+       for (tindex = output_paragraph_offset - 1; tindex >= 0; --tindex)
+         {
+           int c = output_paragraph[tindex];
+ 
+           if (c == ' '|| c == '\n')
+             output_paragraph[tindex] = '\n';
+           else
+             break;
+         }
+ 
+       /* All trailing whitespace is ignored. */
+       output_paragraph_offset = ++tindex;
+ 
+       /* Break the line if that is appropriate. */
+       if (paragraph_spacing >= 0)
+         insert ('\n');
+ 
+       /* Add as many blank lines as is specified in `paragraph_spacing'. */
+       if (!force_flush_right)
+         {
+           for (i = 0; i < (paragraph_spacing - line_already_broken); i++)
+             {
+               insert ('\n');
+               /* Don't need anything extra for HTML in usual case of no
+                  extra paragraph spacing.  */
+               if (html && i > 0)
+                 insert_string ("<br>");
+             }
+         }
+ 
+       /* If we are doing flush right indentation, then do it now
+          on the paragraph (really a single line). */
+       if (force_flush_right)
+         do_flush_right_indentation ();
+ 
+       flush_output ();
+       paragraph_is_open = 0;
+       no_indent = 0;
+     }
+ 
+   ignore_blank_line ();
+ }
+ 
+ /* Make the last line just read look as if it were only a newline. */
+ void
+ ignore_blank_line (void)
+ {
+   last_inserted_character = '\n';
+   last_char_was_newline = 1;
+ }
+ 
+ /* Align the end of the text in output_paragraph with fill_column.  The last
+    character in output_paragraph is '\n'. */
+ static void
+ do_flush_right_indentation (void)
+ {
+   char *temp;
+ 
+   kill_self_indent (-1);
+ 
+   if (output_paragraph[0] != '\n')
+     {
+       int width;
+ 
+       width = mbsnwidth ((char *)output_paragraph, output_paragraph_offset - 1,
+ 			 0) + 1;
+       if (width < fill_column)
+         {
+           int i;
+ 
+           if (output_paragraph_offset + (fill_column - width)
+ 	      >= paragraph_buffer_len)
+             output_paragraph =
+               xrealloc (output_paragraph,
+                         (paragraph_buffer_len += fill_column));
+ 
+           temp = xmalloc (output_paragraph_offset);
+           memcpy (temp, (char *)output_paragraph, output_paragraph_offset);
+ 
+           for (i = 0; i < fill_column - width; i++)
+             output_paragraph[i] = ' ';
+ 
+           memcpy ((char *)output_paragraph + i, temp, output_paragraph_offset);
+           free (temp);
+           output_paragraph_offset += i;
+           adjust_braces_following (0, i);
+         }
+     }
+ }
+ 
+ /* Begin a new paragraph. */
+ void
+ start_paragraph (void)
+ {
+   /* First close existing one. */
+   if (paragraph_is_open)
+     close_paragraph ();
+ 
+   /* In either case, the insertion paragraph is no longer closed. */
+   insertion_paragraph_closed = 0;
+ 
+   /* However, the paragraph is open! */
+   paragraph_is_open = 1;
+ 
+   /* If we MUST_START_PARAGRAPH, that simply means that start_paragraph ()
+      had to be called before we would allow any other paragraph operations
+      to have an effect. */
+   if (!must_start_paragraph)
+     {
+       int amount_to_indent = 0;
+ 
+       /* If doing indentation, then insert the appropriate amount. */
+       if (!no_indent)
+         {
+ 	  int column;
+ 
+           if (inhibit_paragraph_indentation)
+             {
+               amount_to_indent = current_indent;
+               if (inhibit_paragraph_indentation < 0)
+                 inhibit_paragraph_indentation++;
+             }
+           else if (paragraph_start_indent < 0)
+             amount_to_indent = current_indent;
+           else
+             amount_to_indent = current_indent + paragraph_start_indent;
+ 
+ 	  column = current_output_column ();
+           if (amount_to_indent >= column)
+ 	    indent (amount_to_indent - column);
+         }
+     }
+   else
+     must_start_paragraph = 0;
+ }
+ 
+ /* Insert the indentation specified by AMOUNT. */
+ void
+ indent (int amount)
+ {
+   /* For every START_POS saved within the brace stack which will be affected
+      by this indentation, bump that start pos forward. */
+   adjust_braces_following (output_paragraph_offset, amount);
+ 
+   while (--amount >= 0)
+     insert (' ');
+ }
+ 
+ /* Search forward for STRING in input_text.
+    FROM says where to start. */
+ int
+ search_forward (const char *string, int from)
+ {
+   int len = strlen (string);
+ 
+   while (from < input_text_length)
+     {
+       if (strncmp (input_text + from, string, len) == 0)
+         return from;
+       from++;
+     }
+   return -1;
+ }
+ 
+ /* search_forward until n characters.  */
+ int
+ search_forward_until_pos (char *string, int from, int end_pos)
+ {
+   int save_input_text_length = input_text_length;
+   input_text_length = end_pos;
+ 
+   from = search_forward (string, from);
+ 
+   input_text_length = save_input_text_length;
+ 
+   return from;
+ }
+ 
+ /* Return next non-whitespace and non-cr character.  */
+ int
+ next_nonwhitespace_character (void)
+ {
+   /* First check the current input_text.  Start from the next char because
+      we already have input_text[input_text_offset] in ``current''.  */
+   int pos = input_text_offset + 1;
+ 
+   while (pos < input_text_length)
+     {
+       if (!cr_or_whitespace(input_text[pos]))
+         return input_text[pos];
+       pos++;
+     }
+ 
+   { /* Can't find a valid character, so go through filestack
+        in case we are doing @include or expanding a macro.  */
+     FSTACK *tos = filestack;
+ 
+     while (tos)
+       {
+         int tmp_input_text_length = filestack->size;
+         int tmp_input_text_offset = filestack->offset;
+         char *tmp_input_text = filestack->text;
+ 
+         while (tmp_input_text_offset < tmp_input_text_length)
+           {
+             if (!cr_or_whitespace(tmp_input_text[tmp_input_text_offset]))
+               return tmp_input_text[tmp_input_text_offset];
+             tmp_input_text_offset++;
+           }
+ 
+         tos = tos->next;
+       }
+   }
+ 
+   return -1;
+ }
+ 
+ 
+ 
+ /* Replace " with \" and \ with \\.  Used for alt tag in Info output.
+    Return a newly-malloced string in all cases.  */
+ 
+ static char *
+ bs_escape_quote (const char *src)
+ {
+   int c;
+   char *dest = xmalloc (2 * strlen (src) + 1);  /* can't need more.  */
+   char *p = dest;
+   
+   for (; c = *src; src++)
+     {
+       if (c == '"' || c == '\\')
+         *p++ = '\\';
+ 
+       *p++ = c;
+     }
+   *p = 0;
+   
+   return dest;
+ }
+ 
+ 
+ 
+ /* An external image is a reference, kind of.  The parsing is (not
+    coincidentally) similar, anyway.  */
+ 
+ void
+ cm_image (int arg)
+ {
+   char *name_arg, *w_arg, *h_arg, *alt_arg, *ext_arg;
+ 
+   if (arg == END)
+     return;
+ 
+   name_arg = get_xref_token (1); /* expands all macros in image */
+   w_arg = get_xref_token (0);
+   h_arg = get_xref_token (0);
+   alt_arg = get_xref_token (1); /* expands all macros in alt text */
+   ext_arg = get_xref_token (0);
+ 
+   if (*name_arg)
+     {
+       struct stat file_info;
+       char *pathname = NULL;
+       unsigned ext_len = (ext_arg && *ext_arg) ? strlen (ext_arg) : 0;
+       /* One byte for the . period separator, one byte for the null.
+          The 3 is for the max length of the hardwired extensions we try.  */
+       char *fullname = xmalloc (strlen (name_arg) + 1 + MAX (ext_len, 3) + 1);
+ 
+       if (ext_arg && *ext_arg)
+         {
+           sprintf (fullname, "%s%s", name_arg, ext_arg);
+           if (access (fullname, R_OK) != 0)
+             pathname = get_file_info_in_path (fullname, include_files_path,
+                                               &file_info);
+ 
+ 	  if (pathname == NULL)
+ 	    {
+ 	      /* Backwards compatibility (4.6 <= version < 4.7):
+ 		 try prefixing @image's EXTENSION parameter with a period. */
+ 	      sprintf (fullname, "%s.%s", name_arg, ext_arg);
+ 	      if (access (fullname, R_OK) != 0)
+ 		pathname = get_file_info_in_path (fullname, include_files_path,
+ 						  &file_info);
+ 	    }
+         }
+       else
+         {
+           sprintf (fullname, "%s.png", name_arg);
+           if (access (fullname, R_OK) != 0) {
+             pathname = get_file_info_in_path (fullname,
+                                               include_files_path, &file_info);
+             if (pathname == NULL) {
+               sprintf (fullname, "%s.jpg", name_arg);
+               if (access (fullname, R_OK) != 0) {
+ 		  pathname = get_file_info_in_path (fullname,
+ 						    include_files_path,
+ 						    &file_info);
+ 		  if (pathname == NULL) {
+ 		    sprintf (fullname, "%s.gif", name_arg);
+ 		    if (access (fullname, R_OK) != 0) {
+ 		      pathname = get_file_info_in_path (fullname,
+ 							include_files_path,
+ 							&file_info);
+ 		    }
+                 }
+               }
+             }
+           }
+         }
+ 
+       if (html)
+         {
+           int image_in_div = 0;
+ 
+           if (pathname == NULL && access (fullname, R_OK) != 0)
+             {
+               line_error(_("@image file `%s' (for HTML) not readable: %s"),
+                              fullname, strerror (errno));
+               return;
+             }
+           if (pathname != NULL && access (pathname, R_OK) != 0)
+             {
+               line_error (_("No such file `%s'"),
+                           fullname);
+               return;
+             }
+ 
+           if (!paragraph_is_open)
+             {
+               add_html_block_elt ("<div class=\"block-image\">");
+               image_in_div = 1;
+             }
+ 
+           add_html_elt ("<img src=");
+           add_word_args ("\"%s\"", fullname);
+           add_html_elt (" alt=");
+           add_word_args ("\"%s\">", 
+               escape_string (*alt_arg ? text_expansion (alt_arg) : fullname));
+ 
+           if (image_in_div)
+             add_html_block_elt ("</div>");
+         }
+       else if (xml && docbook)
+         xml_insert_docbook_image (name_arg);
+       else if (xml)
+         {
+           extern int xml_in_para;
+           extern int xml_no_para;
+           int elt = xml_in_para ? INLINEIMAGE : IMAGE;
+ 
+           if (!xml_in_para)
+             xml_no_para++;
+ 
+           xml_insert_element_with_attribute (elt,
+               START, "width=\"%s\" height=\"%s\" name=\"%s\" extension=\"%s\"",
+               w_arg, h_arg, name_arg, ext_arg);
+           xml_insert_element (IMAGEALTTEXT, START);
+           execute_string ("%s", alt_arg);
+           xml_insert_element (IMAGEALTTEXT, END);
+           xml_insert_element (elt, END);
+ 
+           if (!xml_in_para)
+             xml_no_para--;
+         }
+       else
+         { /* Prefer foo.txt for Info/ASCII.  Seems wrong nowadays.  */
+           FILE *image_file;
+           char *txtpath = NULL;
+           char *txtname = xmalloc (strlen (name_arg) + 4 + 1);
+           strcpy (txtname, name_arg);
+           strcat (txtname, ".txt");
+           image_file = fopen (txtname, "r");
+           if (image_file == NULL)
+             {
+               txtpath = get_file_info_in_path (txtname,
+                                                include_files_path, &file_info);
+               if (txtpath != NULL)
+                 image_file = fopen (txtpath, "r");
+             }
+ 
+           if (image_file != NULL
+               || access (fullname, R_OK) == 0
+               || (pathname != NULL && access (pathname, R_OK) == 0))
+             {
+               int ch;
+               int save_inhibit_indentation = inhibit_paragraph_indentation;
+               int save_filling_enabled = filling_enabled;
+               int image_in_brackets = paragraph_is_open;
+ 
+               /* Write magic ^@^H[image ...^@^H] cookie in the info file, if
+                  there's an accompanying bitmap.  Otherwise just include the
+                  text image.  In the plaintext output, always include the text
+                  image without the magic cookie.  */
+               int use_magic_cookie = !no_headers
+                 && access (fullname, R_OK) == 0 && !STREQ (fullname, txtname);
+ 
+               inhibit_paragraph_indentation = 1;
+               filling_enabled = 0;
+               last_char_was_newline = 0;
+ 
+               if (use_magic_cookie)
+                 {
+                   add_char ('\0');
+                   add_word ("\010[image");
+ 
+                   if (access (fullname, R_OK) == 0
+                       || (pathname != NULL && access (pathname, R_OK) == 0))
+                     add_word_args (" src=\"%s\"", fullname);
+ 
+                   if (*alt_arg)
+                     {
+                       char *expanded = text_expansion (alt_arg);
+                       char *escaped = bs_escape_quote (expanded);
+                       add_word_args (" alt=\"%s\"", escaped);
+                       free (expanded);
+                       free (escaped);
+                     }
+                 }
+ 
+               if (image_file != NULL)
+                 {
+                   if (use_magic_cookie)
+                     add_word (" text=\"");
+ 
+                   if (image_in_brackets)
+                     add_char ('[');
+ 
+                   /* Maybe we need to remove the final newline if the image
+                      file is only one line to allow in-line images.  On the
+                      other hand, they could just make the file without a
+                      final newline.  */
+                   while ((ch = getc (image_file)) != EOF)
+                     {
+                       if (use_magic_cookie && (ch == '"' || ch == '\\'))
+                         add_char ('\\');
+                       add_char (ch);
+                     }
+ 
+                   if (image_in_brackets)
+                     add_char (']');
+                   
+                   if (use_magic_cookie)
+                     add_char ('"');
+ 
+                   if (fclose (image_file) != 0)
+                     perror (txtname);
+                 }
+ 
+               if (use_magic_cookie)
+                 {
+                   add_char ('\0');
+                   add_word ("\010]");
+                 }
+ 
+               inhibit_paragraph_indentation = save_inhibit_indentation;
+               filling_enabled = save_filling_enabled;
+             }
+           else
+             warning (_("@image file `%s' (for text) unreadable: %s"),
+                         txtname, strerror (errno));
+         }
+ 
+       free (fullname);
+       if (pathname)
+         free (pathname);
+     }
+   else
+     line_error (_("@image missing filename argument"));
+ 
+   if (name_arg)
+     free (name_arg);
+   if (w_arg)
+     free (w_arg);
+   if (h_arg)
+     free (h_arg);
+   if (alt_arg)
+     free (alt_arg);
+   if (ext_arg)
+     free (ext_arg);
+ }
+ 
+ /* Conditionals.  */
+ 
+ /* A structure which contains `defined' variables. */
+ typedef struct defines {
+   struct defines *next;
+   char *name;
+   char *value;
+ } DEFINE;
+ 
+ /* The linked list of `set' defines. */
+ DEFINE *defines = NULL;
+ 
+ /* Add NAME to the list of `set' defines. */
+ static void
+ set (char *name, char *value)
+ {
+   DEFINE *temp;
+ 
+   for (temp = defines; temp; temp = temp->next)
+     if (strcmp (name, temp->name) == 0)
+       {
+         free (temp->value);
+         temp->value = xstrdup (value);
+         return;
+       }
+ 
+   temp = xmalloc (sizeof (DEFINE));
+   temp->next = defines;
+   temp->name = xstrdup (name);
+   temp->value = xstrdup (value);
+   defines = temp;
+ 
+   if (xml && !docbook)
+     {
+       xml_insert_element_with_attribute (SETVALUE, START, "name=\"%s\"", name);
+       execute_string ("%s", value);
+       xml_insert_element (SETVALUE, END);
+     }
+ }
+ 
+ /* Remove NAME from the list of `set' defines. */
+ static void
+ clear (char *name)
+ {
+   DEFINE *temp, *last;
+ 
+   last = NULL;
+   temp = defines;
+ 
+   while (temp)
+     {
+       if (strcmp (temp->name, name) == 0)
+         {
+           if (last)
+             last->next = temp->next;
+           else
+             defines = temp->next;
+ 
+           free (temp->name);
+           free (temp->value);
+           free (temp);
+           break;
+         }
+       last = temp;
+       temp = temp->next;
+     }
+ 
+   if (xml && !docbook)
+     {
+       xml_insert_element_with_attribute (CLEARVALUE, START, "name=\"%s\"", name);
+       xml_insert_element (CLEARVALUE, END);
+     }
+ }
+ 
+ /* Return the value of NAME.  The return value is NULL if NAME is unset. */
+ static char *
+ set_p (char *name)
+ {
+   DEFINE *temp;
+ 
+   for (temp = defines; temp; temp = temp->next)
+     if (strcmp (temp->name, name) == 0)
+       return temp->value;
+ 
+   return NULL;
+ }
+ 
+ /* Create a variable whose name appears as the first word on this line. */
+ void
+ cm_set (void)
+ {
+   handle_variable (SET);
+ }
+ 
+ /* Remove a variable whose name appears as the first word on this line. */
+ void
+ cm_clear (void)
+ {
+   handle_variable (CLEAR);
+ }
+ 
+ void
+ cm_ifset (void)
+ {
+   handle_variable (IFSET);
+ }
+ 
+ void
+ cm_ifclear (void)
+ {
+   handle_variable (IFCLEAR);
+ }
+ 
+ /* This command takes braces, but we parse the contents specially, so we
+    don't use the standard brace popping code.
+ 
+    The syntax @ifeq{arg1, arg2, texinfo-commands} performs texinfo-commands
+    if ARG1 and ARG2 caselessly string compare to the same string, otherwise,
+    it produces no output. */
+ void
+ cm_ifeq (void)
+ {
+   char **arglist;
+ 
+   arglist = get_brace_args (quote_none);
+ 
+   if (arglist)
+     {
+       if (array_len (arglist) > 1)
+         {
+           if ((mbscasecmp (arglist[0], arglist[1]) == 0) &&
+               (arglist[2]))
+             execute_string ("%s\n", arglist[2]);
+         }
+ 
+       free_array (arglist);
+     }
+ }
+ 
+ void
+ cm_value (int arg, int start_pos, int end_pos)
+ {
+   static int value_level = 0, saved_meta_pos = -1;
+ 
+   /* xml_add_char() skips any content inside menus when output format is
+      Docbook, so @value{} is no use there.  Also start_pos and end_pos does not
+      get updated, causing name to be empty string.  So just return.  */
+    if (docbook && in_menu)
+      return;
+ 
+   /* All the text after @value{ upto the matching } will eventually
+      disappear from output_paragraph, when this function is called
+      with ARG == END.  If the text produced until then sets
+      meta_char_pos, we will need to restore it to the value it had
+      before @value was seen.  So we need to save the previous value
+      of meta_char_pos here.  */
+   if (arg == START)
+     {
+       /* If we are already inside some outer @value, don't overwrite
+          the value saved in saved_meta_pos.  */
+       if (!value_level)
+         saved_meta_pos = meta_char_pos;
+       value_level++;
+       /* While the argument of @value is processed, we need to inhibit
+          textual transformations like "--" into "-", since @set didn't
+          do that when it grabbed the name of the variable.  */
+       in_fixed_width_font++;
+     }
+   else
+     {
+       char *name = (char *) &output_paragraph[start_pos];
+       char *value;
+       output_paragraph[end_pos] = 0;
+       name = xstrdup (name);
+       value = set_p (name);
+       output_paragraph_offset = start_pos;
+ 
+       /* Restore the previous value of meta_char_pos if the stuff
+          inside this @value{} moved it.  */
+       if (saved_meta_pos == -1) /* can't happen inside @value{} */
+         abort ();
+       if (value_level == 1
+           && meta_char_pos >= start_pos && meta_char_pos < end_pos)
+         {
+           meta_char_pos = saved_meta_pos;
+           saved_meta_pos = -1;
+         }
+       value_level--;
+       /* No need to decrement in_fixed_width_font, since before
+          we are called with arg == END, the reader loop already
+          popped the brace stack, which restored in_fixed_width_font,
+          among other things.  */
+ 
+       if (value)
+ 	{
+ 	  /* We need to get past the closing brace since the value may
+ 	     expand to a context-sensitive macro (e.g. @xref) and produce
+ 	     spurious warnings */
+ 	  input_text_offset++; 
+ 	  execute_string ("%s", value);
+ 	  input_text_offset--;
+ 	}
+       else
+ 	{
+           warning (_("undefined flag: %s"), name);
+           add_word_args (_("{No value for `%s'}"), name);
+ 	}
+ 
+       free (name);
+     }
+ }
+ 
+ /* Set, clear, or conditionalize based on ACTION. */
+ static void
+ handle_variable (int action)
+ {
+   char *name;
+ 
+   get_rest_of_line (0, &name);
+   /* If we hit the end of text in get_rest_of_line, backing up
+      input pointer will cause the last character of the last line
+      be pushed back onto the input, which is wrong.  */
+   if (input_text_offset < input_text_length)
+     backup_input_pointer ();
+   handle_variable_internal (action, name);
+   free (name);
+ }
+ 
+ static void
+ handle_variable_internal (int action, char *name)
+ {
+   char *temp;
+   int delimiter, additional_text_present = 0;
+ 
+   /* Only the first word of NAME is a valid tag. */
+   temp = name;
+   delimiter = 0;
+   while (*temp && (delimiter || !whitespace (*temp)))
+     {
+ /* #if defined (SET_WITH_EQUAL) */
+       if (*temp == '"' || *temp == '\'')
+         {
+           if (*temp == delimiter)
+             delimiter = 0;
+           else
+             delimiter = *temp;
+         }
+ /* #endif SET_WITH_EQUAL */
+       temp++;
+     }
+ 
+   if (*temp)
+     additional_text_present++;
+ 
+   *temp = 0;
+ 
+   if (!*name)
+     line_error (_("%c%s requires a name"), COMMAND_PREFIX, command);
+   else
+     {
+       switch (action)
+         {
+         case SET:
+           {
+             char *value;
+ 
+ #if defined (SET_WITH_EQUAL)
+             /* Allow a value to be saved along with a variable.  The value is
+                the text following an `=' sign in NAME, if any is present. */
+ 
+             for (value = name; *value && *value != '='; value++);
+ 
+             if (*value)
+               *value++ = 0;
+ 
+             if (*value == '"' || *value == '\'')
+               {
+                 value++;
+                 value[strlen (value) - 1] = 0;
+               }
+ 
+ #else /* !SET_WITH_EQUAL */
+             /* The VALUE of NAME is the remainder of the line sans
+                whitespace. */
+             if (additional_text_present)
+               {
+                 value = temp + 1;
+                 canon_white (value);
+               }
+             else
+               value = "";
+ #endif /* !SET_WITH_VALUE */
+ 
+             set (name, value);
+           }
+           break;
+ 
+         case CLEAR:
+           clear (name);
+           break;
+ 
+         case IFSET:
+         case IFCLEAR:
+           /* If IFSET and NAME is not set, or if IFCLEAR and NAME is set,
+              read lines from the the file until we reach a matching
+              "@end CONDITION".  This means that we only take note of
+              "@ifset/clear" and "@end" commands. */
+           {
+             char condition[8];
+             int condition_len;
+             int orig_line_number = line_number;
+ 
+             if (action == IFSET)
+               strcpy (condition, "ifset");
+             else
+               strcpy (condition, "ifclear");
+ 
+             condition_len = strlen (condition);
+ 
+           if ((action == IFSET && !set_p (name))
+               || (action == IFCLEAR && set_p (name)))
+             {
+               int level = 0, done = 0;
+ 
+               while (!done && input_text_offset < input_text_length)
+                 {
+                   char *freeable_line, *line;
+ 
+                   get_rest_of_line (0, &freeable_line);
+ 
+                   for (line = freeable_line; whitespace (*line); line++);
+ 
+                   if (*line == COMMAND_PREFIX &&
+                       (strncmp (line + 1, condition, condition_len) == 0))
+                     level++;
+                   else if (strncmp (line, "@end", 4) == 0)
+                     {
+                       char *cname = line + 4;
+                       char *temp;
+ 
+                       while (*cname && whitespace (*cname))
+                         cname++;
+                       temp = cname;
+ 
+                       while (*temp && !whitespace (*temp))
+                         temp++;
+                       *temp = 0;
+ 
+                       if (strcmp (cname, condition) == 0)
+                         {
+                           if (!level)
+                             {
+                               done = 1;
+                             }
+                           else
+                             level--;
+                         }
+                     }
+                   free (freeable_line);
+                 }
+ 
+               if (!done)
+                 file_line_error (input_filename, orig_line_number,
+                                  _("Reached eof before matching @end %s"),
+                                  condition);
+ 
+               /* We found the end of a false @ifset/ifclear.  If we are
+                  in a menu, back up over the newline that ends the ifset,
+                  since that newline may also begin the next menu entry. */
+               break;
+             }
+           else
+             {
+               if (action == IFSET)
+                 begin_insertion (ifset);
+               else
+                 begin_insertion (ifclear);
+             }
+           }
+           break;
+         }
+     }
+ }
+ 
+ /* Execution of random text not in file. */
+ typedef struct {
+   char *string;                 /* The string buffer. */
+   int size;                     /* The size of the buffer. */
+   int in_use;                   /* Nonzero means string currently in use. */
+ } EXECUTION_STRING;
+ 
+ static EXECUTION_STRING **execution_strings = NULL;
+ static int execution_strings_index = 0;
+ static int execution_strings_slots = 0;
+ 
+ static EXECUTION_STRING *
+ get_execution_string (int initial_size)
+ {
+   int i = 0;
+   EXECUTION_STRING *es = NULL;
+ 
+   if (execution_strings)
+     {
+       for (i = 0; i < execution_strings_index; i++)
+         if (execution_strings[i] && (execution_strings[i]->in_use == 0))
+           {
+             es = execution_strings[i];
+             break;
+           }
+     }
+ 
+   if (!es)
+     {
+       if (execution_strings_index + 1 >= execution_strings_slots)
+         {
+           execution_strings = xrealloc
+             (execution_strings,
+              (execution_strings_slots += 3) * sizeof (EXECUTION_STRING *));
+           for (; i < execution_strings_slots; i++)
+             execution_strings[i] = NULL;
+         }
+ 
+       execution_strings[execution_strings_index] =
+         xmalloc (sizeof (EXECUTION_STRING));
+       es = execution_strings[execution_strings_index];
+       execution_strings_index++;
+ 
+       es->size = 0;
+       es->string = NULL;
+       es->in_use = 0;
+     }
+ 
+   if (initial_size > es->size)
+     {
+       es->string = xrealloc (es->string, initial_size);
+       es->size = initial_size;
+     }
+   return es;
+ }
+ 
+ /* Given a pointer to TEXT and its desired length NEW_LEN, find TEXT's
+    entry in the execution_strings[] array and change the .STRING and
+    .SIZE members of that entry as appropriate.  */
+ void
+ maybe_update_execution_strings (char **text, unsigned int new_len)
+ {
+   int i = 0;
+ 
+   if (execution_strings)
+     {
+       for (i = 0; i < execution_strings_index; i++)
+         if (execution_strings[i] && (execution_strings[i]->in_use == 1) &&
+             execution_strings[i]->string == *text)
+           {
+             /* Don't ever shrink the string storage in execution_strings[]!
+                execute_string assumes that it is always big enough to store
+                every possible execution_string, and will break if that's
+                not true.  So we only enlarge the string storage if the
+                current size isn't big enough.  */
+             if (execution_strings[i]->size < new_len)
+               {
+                 execution_strings[i]->string =
+                   *text = xrealloc (*text, new_len + 1);
+                 execution_strings[i]->size = new_len + 1;
+               }
+             return;
+           }
+     }
+   /* We should *never* end up here, since if we are inside
+      execute_string, TEXT is always in execution_strings[].  */
+   abort ();
+ }
+ 
+ #define EXECUTE_STRING_MAX (32*1024) /* FIXXME: this is an arbitrary limit.  */
+ 
+ /* Execute the string produced by formatting the ARGs with FORMAT.  This
+    is like submitting a new file with @include. */
+ void
+ #if defined (VA_FPRINTF) && __STDC__
+ execute_string (char *format, ...)
+ #else
+ execute_string (format, va_alist)
+     char *format;
+     va_dcl
+ #endif
+ {
+   EXECUTION_STRING *es;
+   char *temp_string, *temp_input_filename;
+ #ifdef VA_FPRINTF
+   va_list ap;
+ #endif
+   int insertion_level_at_start = insertion_level;
+ 
+   es = get_execution_string (EXECUTE_STRING_MAX);
+   temp_string = es->string;
+   es->in_use = 1;
+ 
+   VA_START (ap, format);
+ #ifdef VA_SPRINTF
+   VA_SPRINTF (temp_string, format, ap);
+ #else
+   sprintf (temp_string, format, a1, a2, a3, a4, a5, a6, a7, a8);
+ #endif /* not VA_SPRINTF */
+   va_end (ap);
+ 
+   pushfile ();
+   input_text_offset = 0;
+   input_text = temp_string;
+   input_text_length = strlen (temp_string);
+   input_filename = xstrdup (input_filename);
+   temp_input_filename = input_filename;
+ 
+   executing_string++;
+   reader_loop ();
+ 
+   /* If insertion stack level changes during execution, that means a multiline
+      command is used inside braces or @section ... kind of commands.  */
+   if (insertion_level_at_start != insertion_level && !executing_macro)
+     {
+       line_error (_("Multiline command %c%s used improperly"),
+           COMMAND_PREFIX,
+           command);
+       /* We also need to keep insertion_level intact to make sure warnings are
+          issued for @end ... command.  */
+       while (insertion_level > insertion_level_at_start)
+         pop_insertion ();
+     }
+ 
+   popfile ();
+   executing_string--;
+   es->in_use = 0;
+   free (temp_input_filename);
+ }
+ 
+ 
+ /* Return what would be output for STR (in newly-malloced memory), i.e.,
+    expand Texinfo commands according to the current output format.  If
+    IMPLICIT_CODE is set, expand @code{STR}.  This is generally used for
+    short texts; filling, indentation, and html escapes are disabled.  */
+ 
+ char *
+ expansion (char *str, int implicit_code)
+ {
+   return maybe_escaped_expansion (str, implicit_code, 0);
+ }
+ 
+ 
+ /* Do HTML escapes according to DO_HTML_ESCAPE.  Needed in
+    cm_printindex, q.v.  */
+ 
+ char *
+ maybe_escaped_expansion (char *str, int implicit_code, int do_html_escape)
+ {
+   char *result;
+ 
+   /* Inhibit indentation and filling, so that extra newlines
+      are not added to the expansion.  (This is undesirable if
+      we write the expanded text to macro_expansion_output_stream.)  */
+   int saved_filling_enabled = filling_enabled;
+   int saved_indented_fill = indented_fill;
+   int saved_no_indent = no_indent;
+   int saved_escape_html = escape_html;
+ 
+   filling_enabled = 0;
+   indented_fill = 0;
+   no_indent = 1;
+   escape_html = do_html_escape;
+   xml_no_para++;
+ 
+   result = full_expansion (str, implicit_code);
+ 
+   filling_enabled = saved_filling_enabled;
+   indented_fill = saved_indented_fill;
+   no_indent = saved_no_indent;
+   escape_html = saved_escape_html;
+   xml_no_para--;
+ 
+   return result;
+ }
+ 
+ 
+ /* Expand STR (or @code{STR} if IMPLICIT_CODE is nonzero).  No change to
+    any formatting parameters -- filling, indentation, html escapes,
+    etc., are not reset.  Always returned in new memory.  */
+ 
+ char *
+ full_expansion (char *str, int implicit_code)
+ {
+   int length;
+   char *result;
+ 
+   /* Inhibit any real output.  */
+   int start = output_paragraph_offset;
+   int saved_paragraph_is_open = paragraph_is_open;
+ 
+   /* More output state to save.  */
+   int saved_meta_pos = meta_char_pos;
+   int saved_last_char = last_inserted_character;
+   int saved_last_nl = last_char_was_newline;
+ 
+   /* If we are called in the middle of processing a command, we need
+      to dup and save the global variable `command' (which holds the
+      name of this command), since the recursive reader loop will free
+      it from under our feet if it finds any macros in STR.  */
+   char *saved_command = command ? xstrdup (command) : NULL;
+ 
+   inhibit_output_flushing ();
+   paragraph_is_open = 1;
+   if (strlen (str) > (implicit_code
+                       ? EXECUTE_STRING_MAX - 1 - sizeof("@code{}")
+                       : EXECUTE_STRING_MAX - 1))
+     line_error (_("`%.40s...' is too long for expansion; not expanded"), str);
+   else
+     execute_string (implicit_code ? "@code{%s}" : "%s", str);
+   uninhibit_output_flushing ();
+ 
+   /* Copy the expansion from the buffer.  */
+   length = output_paragraph_offset - start;
+   result = xmalloc (1 + length);
+   memcpy (result, (char *) (output_paragraph + start), length);
+   result[length] = 0;
+ 
+   /* Pretend it never happened.  */
+   free_and_clear (&command);
+   command = saved_command;
+ 
+   output_paragraph_offset = start;
+   paragraph_is_open = saved_paragraph_is_open;
+ 
+   meta_char_pos = saved_meta_pos;
+   last_inserted_character = saved_last_char;
+   last_char_was_newline = saved_last_nl;
+ 
+   return result;
+ }
+ 
+ 
+ /* Return text (info) expansion of STR no matter what the current output
+    format is.  */
+ 
+ char *
+ text_expansion (char *str)
+ {
+   char *ret;
+   int save_html = html;
+   int save_xml = xml;
+   int save_docbook = docbook;
+ 
+   html = 0;
+   xml = 0;
+   docbook = 0;
+   ret = expansion (str, 0);
+   html = save_html;
+   xml = save_xml;
+   docbook = save_docbook;
+ 
+   return ret;
+ }
+ 
+ 
+ /* Set the paragraph indentation variable to the value specified in STRING.
+    Values can be:
+      `asis': Don't change existing indentation.
+      `none': Remove existing indentation.
+         NUM: Indent NUM spaces at the starts of paragraphs.
+              If NUM is zero, we assume `none'.
+    Returns 0 if successful, or nonzero if STRING isn't one of the above. */
+ int
+ set_paragraph_indent (char *string)
+ {
+   if (strcmp (string, "asis") == 0 || strcmp (string, _("asis")) == 0)
+     paragraph_start_indent = 0;
+   else if (strcmp (string, "none") == 0 || strcmp (string, _("none")) == 0)
+     paragraph_start_indent = -1;
+   else
+     {
+       if (sscanf (string, "%d", &paragraph_start_indent) != 1)
+         return -1;
+       else
+         {
+           if (paragraph_start_indent == 0)
+             paragraph_start_indent = -1;
+         }
+     }
+   return 0;
+ }
+ 
+ 
+ /* Translate MSGID according to the document language (@documentlanguage
+    value or --document-language), rather than the current locale
+    (LANGUAGE/LC_ALL/LANG).  This code is from the get_title function in
+    gettext.  (xsetenv and unsetenv come from the gnulib xsetenv module.)  */
+ 
+ char *
+ getdocumenttext (const char *msgid)
+ {
+   /* The original get_title also saves, sets, and restores
+      OUTPUT_CHARSET, so that the translation will be given in
+      the proper encoding (via canonical_locale_charset).  But defining
+      that function ends up pulling a whole lot of subsidiary functions.
+      Not sure how to handle it; skip the whole thing for now.  */
+   const char *tmp;
+   char *old_LC_ALL;
+   char *old_LANGUAGE;
+   const char *result;
+ #ifdef HAVE_SETLOCALE
+   char *old_locale;
+ #endif
+ 
+   /* Save LC_ALL, LANGUAGE environment variables.  */
+ 
+   tmp = getenv ("LC_ALL");
+   old_LC_ALL = (tmp != NULL ? xstrdup (tmp) : NULL);
+ 
+   tmp = getenv ("LANGUAGE");
+   old_LANGUAGE = (tmp != NULL ? xstrdup (tmp) : NULL);
+ 
+   xsetenv ("LC_ALL", document_language, 1);
+   unsetenv ("LANGUAGE");
+ 
+ #ifdef HAVE_SETLOCALE
+   old_locale = xstrdup (setlocale (LC_ALL, NULL));
+   if (setlocale (LC_ALL, "") == NULL)
+     /* Nonexistent locale.  Use the original.  */
+     result = msgid;
+   else
+ #endif
+     {
+       /* Fetch the translation.  */
+       result = gettext ((char *) msgid);
+     }
+ 
+   /* Restore LC_ALL, LANGUAGE environment variables.  */
+ 
+   if (old_LC_ALL != NULL)
+     xsetenv ("LC_ALL", old_LC_ALL, 1), free (old_LC_ALL);
+   else
+     unsetenv ("LC_ALL");
+ 
+   if (old_LANGUAGE != NULL)
+     xsetenv ("LANGUAGE", old_LANGUAGE, 1), free (old_LANGUAGE);
+   else
+     unsetenv ("LANGUAGE");
+ 
+ #ifdef HAVE_SETLOCALE
+   setlocale (LC_ALL, old_locale);
+   free (old_locale);
+ #endif
+ 
+   return (char *) result;
+ }
diff -Nrc2 texinfo-4.12/makeinfo/makeinfo.h texinfo-4.13/makeinfo/makeinfo.h
*** texinfo-4.12/makeinfo/makeinfo.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/makeinfo.h	Thu May 22 05:11:34 2008
***************
*** 0 ****
--- 1,395 ----
+ /* makeinfo.h -- declarations for Makeinfo.
+    $Id: makeinfo.h,v 1.31 2008/03/26 23:57:12 karl Exp $
+ 
+    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+    2005, 2006, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef MAKEINFO_H
+ #define MAKEINFO_H
+ 
+ #ifdef COMPILING_MAKEINFO
+ #  define DECLARE(type,var,init) type var = init
+ #else
+ #  define DECLARE(type,var,init) extern type var
+ #endif
+ 
+ /* Hardcoded per GNU standards, not dependent on argv[0].  */
+ DECLARE (char *, progname, "makeinfo");
+ 
+ /* Nonzero means a string is in execution, as opposed to a file. */
+ DECLARE (int, executing_string, 0);
+ 
+ /* Nonzero means to inhibit writing macro expansions to the output
+    stream, because it has already been written. */
+ DECLARE (int, me_inhibit_expansion, 0);
+ 
+ /* Current output stream. */
+ DECLARE (FILE *, output_stream, NULL);
+ 
+ DECLARE (char *, pretty_output_filename, NULL);
+ 
+ /* Current output file name.  */
+ DECLARE (char *, current_output_filename, NULL);
+ 
+ /* Output paragraph buffer and its length. */
+ #define INITIAL_PARAGRAPH_BUFFER_LEN 5000
+ DECLARE (unsigned char *, output_paragraph, NULL);
+ DECLARE (int, paragraph_buffer_len, INITIAL_PARAGRAPH_BUFFER_LEN);
+ 
+ /* Offset into OUTPUT_PARAGRAPH. */
+ DECLARE (int, output_paragraph_offset, 0);
+ 
+ /* Position in the output file. */
+ DECLARE (int, output_position, 0);
+ 
+ /* Number of lines in the output.  */
+ DECLARE (int, output_line_number, 1);
+ DECLARE (int, node_line_number, 0);
+ 
+ /* The offset into OUTPUT_PARAGRAPH where we have a meta character
+    produced by a markup such as @code or @dfn.  */
+ DECLARE (int, meta_char_pos, -1);
+ 
+ /* Nonzero means output_paragraph contains text. */
+ DECLARE (int, paragraph_is_open, 0);
+ 
+ /* Nonzero means that `start_paragraph' MUST be called before we pay
+    any attention to `close_paragraph' calls. */
+ DECLARE (int, must_start_paragraph, 0);
+ 
+ /* Nonzero if we have output the topmatter of the output file.  */
+ DECLARE (int, output_head_p, 0);
+ 
+ /* Nonzero means that we have seen "@top" once already. */
+ DECLARE (int, top_node_seen, 0);
+ 
+ /* Nonzero means that we have seen a non-"@top" node already. */
+ DECLARE (int, non_top_node_seen, 0);
+ 
+ /* Nonzero indicates that indentation is temporarily turned off. */
+ DECLARE (int, no_indent, 1);
+ 
+ /* The amount of indentation to apply at the start of each line. */
+ DECLARE (int, current_indent, 0);
+ 
+ /* Nonzero means that we suppress the indentation of the first paragraph
+    following any section heading.  */
+ DECLARE (int, do_first_par_indent, 0);
+ 
+ /* Amount by which @example indentation increases/decreases. */
+ DECLARE (int, example_indentation_increment, 5);
+ 
+ /* Amount by which @table, @defun, etc. indentation increases/decreases.  */
+ DECLARE (int, default_indentation_increment, 5);
+ 
+ /* Amount by which xml indentation increases/decreases.
+    Zero means unnecessary whitespace is compressed.  */
+ DECLARE (int, xml_indentation_increment, 2);
+ 
+ /* Nonzero indicates that filling a line also indents the new line. */
+ DECLARE (int, indented_fill, 0);
+ 
+ /* Nonzero means forcing output text to be flushright. */
+ DECLARE (int, force_flush_right, 0);
+ 
+ /* The column at which long lines are broken. */
+ DECLARE (int, fill_column, 72);
+ 
+ /* Nonzero means we're doing one space after sentences (@frenchspacing).  */
+ DECLARE (int, french_spacing, 0);
+ 
+ /* Nonzero means that words are not to be split, even in long lines.  This
+    gets changed for cm_w (). */
+ DECLARE (int, non_splitting_words, 0);
+ 
+ /* Nonzero means that we are currently hacking the insides of an
+    insertion which would use a fixed width font. */
+ DECLARE (int, in_fixed_width_font, 0);
+ 
+ /* Nonzero if we are currently processing a multitable command */
+ DECLARE (int, multitable_active, 0);
+ 
+ /* Nonzero means that we're generating HTML. (--html) */
+ DECLARE (int, html, 0);
+ 
+ /* Nonzero means that we're generating XML. (--xml) */
+ DECLARE (int, xml, 0);
+ 
+ /* Nonzero means that we're generating DocBook. (--docbook) */
+ DECLARE (int, docbook, 0);
+ 
+ /* Nonzero means 8-bit output for Info and plain text, according to
+    @documentencoding.  (--enable-encoding) */
+ DECLARE (int, enable_encoding, 1);
+ 
+ /* Nonzero means escape characters in HTML output. */
+ DECLARE (int, escape_html, 1);
+ 
+ /* Access key number for next menu entry to be generated (1 to 9, or 10 to
+    mean no access key)  */
+ DECLARE (int, next_menu_item_number, 1);
+ 
+ /* Nonzero means that the use of paragraph_start_indent is inhibited.
+    @example uses this to line up the left columns of the example text.
+    A negative value for this variable is incremented each time it is used.
+    @noindent uses this to inhibit indentation for a single paragraph.  */
+ DECLARE (int, inhibit_paragraph_indentation, 0);
+ 
+ /* Nonzero indicates that filling will take place on long lines. */
+ DECLARE (int, filling_enabled, 1);
+ 
+ /* The current node's node name. */
+ DECLARE (char *, current_node, NULL);
+ 
+ /* Command name in the process of being hacked. */
+ DECLARE (char *, command, NULL);
+ 
+ /* Nonzero if we have seen an @titlepage command.  */
+ DECLARE (int, titlepage_cmd_present, 0);
+ 
+ /* @copying ... @end copying. */
+ DECLARE (char *, copying_text, NULL);
+ 
+ /* @documentdescription ... @end documentdescription. */
+ DECLARE (const char *, document_description, NULL);
+ 
+ /* Nonzero if the last character inserted has the syntax class of NEWLINE. */
+ DECLARE (int, last_char_was_newline, 1);
+ 
+ /* The current input file state. */
+ DECLARE (char *, input_filename, (char *)NULL);
+ DECLARE (char *, input_text, (char *)NULL);
+ DECLARE (int, input_text_length, 0);
+ DECLARE (int, input_text_offset, 0);
+ DECLARE (int, line_number, 0);
+ DECLARE (char *, toplevel_output_filename, NULL);
+ #define curchar() input_text[input_text_offset]
+ 
+ /* A colon separated list of directories to search for files included
+    with @include.  This can be controlled with the `-I' option to makeinfo. */
+ DECLARE (char *, include_files_path, NULL);
+ 
+ /* The filename of the current input file.  This is never freed. */
+ DECLARE (char *, node_filename, NULL);
+ 
+ /* Name of CSS file to include, if any.  (--css-include).  */
+ DECLARE (char *, css_include, NULL);
+ 
+ /* Name of CSS to reference, if any.  (--css-ref).  */
+ DECLARE (char *, css_ref, NULL);
+ 
+ /* Transliterate file names into ASCII */
+ DECLARE (int, transliterate_file_names, 0);
+ 
+ /* Nonzero means do not output "Node: Foo" for node separations, that
+    is, generate plain text.  (--no-headers) */
+ DECLARE (int, no_headers, 0);
+ 
+ /* Nonzero means that we process @docbook and @ifdocbook.  (--ifdocbook) */
+ DECLARE (int, process_docbook, 0);
+ 
+ /* Nonzero means that we process @html and @rawhtml even when not
+    generating HTML.  (--ifhtml) */
+ DECLARE (int, process_html, 0);
+ 
+ /* Positive means process @ifinfo (even if not generating Info);
+    zero means don't process @ifinfo (even if we are);
+    -1 means we don't know yet.  (--ifinfo) */
+ DECLARE (int, process_info, -1);
+ 
+ /* Positive means process @ifplaintext (even if not generating plain text);
+    zero means we don't process @ifplaintext (even if we are);
+    -1 means we don't know yet.  (--ifplaintext) */
+ DECLARE (int, process_plaintext, -1);
+ 
+ /* Nonzero means that we process @tex and @iftex.  (--iftex) */
+ DECLARE (int, process_tex, 0);
+ 
+ /* Nonzero means that we process @xml and @ifxml.  (--ifxml) */
+ DECLARE (int, process_xml, 0);
+ 
+ /* Default is to check node references.  (--no-validate) */
+ DECLARE (int, validating, 1);
+ 
+ /* Nonzero means print information about what is going on.  (--verbose) */
+ DECLARE (int, verbose_mode, 0);
+ 
+ /* Nonzero means prefix each @chapter, ... with a number like
+    1, 1.1, etc.  (--number-sections) */
+ DECLARE (int, number_sections, 1);
+ 
+ /* Nonzero means split size.  When zero, DEFAULT_SPLIT_SIZE is used. */
+ DECLARE (int, split_size, 0);
+ 
+ /* Nonzero means expand node names and references while validating.
+    This will avoid errors when the Texinfo document uses features
+    like @@ and @value inconsistently in node names, but will slow
+    the program by about 80%.  You HAVE been warned.  */
+ DECLARE (int, expensive_validation, 0);
+ 
+ /* C's standard macros don't check to make sure that the characters being
+    changed are within range.  So I have to check explicitly. */
+ 
+ #define coerce_to_upper(c) ((islower(c) ? toupper(c) : (c)))
+ #define coerce_to_lower(c) ((isupper(c) ? tolower(c) : (c)))
+ 
+ #define whitespace(c)       ((c) == '\t' || (c) == ' ')
+ #define sentence_ender(c)   ((c) == '.'  || (c) == '?' || (c) == '!')
+ #define cr_or_whitespace(c) (whitespace(c) || (c) == '\r' || (c) == '\n')
+ 
+ #ifndef isletter
+ #define isletter(c) (((c) >= 'A' && (c) <= 'Z') || ((c) >= 'a' && (c) <= 'z'))
+ #endif
+ 
+ #ifndef isupper
+ #define isupper(c) ((c) >= 'A' && (c) <= 'Z')
+ #endif
+ 
+ #ifndef isdigit
+ #define isdigit(c)  ((c) >= '0' && (c) <= '9')
+ #endif
+ 
+ #ifndef digit_value
+ #define digit_value(c) ((c) - '0')
+ #endif
+ 
+ /* These characters are not really HTML-safe (with strict XHTML),
+    and also there are possible collisions.  That's the whole reason we
+    designed a new conversion scheme in the first place.  But we
+    nevertheless need to generate the old names.  See
+    `add_escaped_anchor_name' in html.c.  */
+ #define OLD_HTML_SAFE "$-_.+!*'()"
+ #define OLD_URL_SAFE_CHAR(ch) (strchr (OLD_HTML_SAFE, ch))
+ 
+ /* For the current/stable scheme.  */
+ #define URL_SAFE_CHAR(ch) (((unsigned char)ch)<128 && isalnum (ch))
+ 
+ #define COMMAND_PREFIX '@'
+ 
+ /* A byte value to represent a non-breaking space until flush_output (). */
+ #define NON_BREAKING_SPACE 036
+ 
+ #define END_VERBATIM "end verbatim"
+ 
+ /* Stuff for splitting large files.  The numbers for Emacs
+    texinfo-format-buffer are much smaller, but memory capacities have
+    increased so much, 50k info files seem a bit tiny these days.  */
+ #define DEFAULT_SPLIT_SIZE 300000
+ DECLARE (int, splitting, 1);    /* Defaults to true for now. */
+ 
+ #define skip_whitespace() \
+      while ((input_text_offset != input_text_length) && \
+              whitespace (curchar())) \
+        input_text_offset++
+ 
+ #define skip_whitespace_and_newlines() \
+   do { \
+    while (input_text_offset != input_text_length \
+           && cr_or_whitespace (curchar ())) \
+       { \
+          if (curchar () == '\n') \
+            line_number++; \
+          input_text_offset++; \
+       } \
+    } while (0)
+ 
+ /* Return nonzero if STRING is the text at input_text + input_text_offset,
+    else zero. */
+ #define looking_at(string) \
+   (strncmp (input_text + input_text_offset, string, strlen (string)) == 0)
+ 
+ /* Any list with a member named `next'.  */
+ typedef struct generic_list {
+   struct generic_list *next;
+ } GENERIC_LIST;
+ 
+ /* Use `gdt' instead of `_' to translate strings that end up in the
+    output document.  */
+ extern char *getdocumenttext (const char *msgid);
+ #define gdt(s) getdocumenttext(s)
+ 
+ /* Reverse the order of a list.  */
+ extern GENERIC_LIST * reverse_list (GENERIC_LIST *list);
+ 
+ /* Possibly return Local Variables trailer for Info output.  */
+ extern char *info_trailer (void),
+   *expansion (char *str, int implicit_code),
+   *text_expansion (char *str),
+   *maybe_escaped_expansion (char *str, int implicit_code, int do_escape_html),
+   *full_expansion (char *str, int implicit_code);
+ 
+ extern void free_and_clear (char **pointer),
+   add_word (char *string),
+   add_char (int character),
+   add_meta_char (int character),
+   close_single_paragraph (void),
+   insert_string (const char *),
+   insert (int character),
+   get_rest_of_line (int expand, char **string),
+   add_html_block_elt (char *string),
+   get_until_in_braces (char *match, char **string),
+   get_until_in_line (int expand, char *match, char **string),
+   canon_white (char *string),
+   discard_until (char *string),
+   indent (int amount),
+   kill_self_indent (int count),
+   backup_input_pointer (void),
+   inhibit_output_flushing (void),
+   uninhibit_output_flushing (void),
+   flush_output (void),
+   start_paragraph (void),
+   close_paragraph (void),
+   close_insertion_paragraph (void),
+   init_paragraph (void),
+   ignore_blank_line (void),
+   reader_loop (void),
+   discard_braces (void),
+   replace_with_expansion (int from, int *to),
+   fix_whitespace (char *string),
+   output_head (void),
+   add_html_elt (char *string);
+ 
+ extern int get_until (char *match, char **string),
+   set_paragraph_indent (char *string),
+   self_delimiting (int character),
+   search_forward (const char *string, int from),
+   search_forward_until_pos (char *string, int from, int end_pos),
+   next_nonwhitespace_character (void),
+   current_output_column (void),
+   fs_error (char *filename);
+ 
+ #if defined (VA_FPRINTF) && __STDC__
+ /* Unfortunately we must use prototypes if we are to use <stdarg.h>.  */
+ extern void add_word_args (const char *, ...),
+   add_html_block_elt_args (const char *, ...),
+   execute_string (char *, ...),
+   warning (const char *format, ...),
+   error (const char *format, ...),
+   line_error (const char *format, ...),
+   file_line_error (char *infile, int lno, const char *format, ...);
+ #else
+ extern void add_word_args (),
+   add_html_block_elt_args (),
+   execute_string (),
+   warning (),
+   error (),
+   line_error (),
+   file_line_error ();
+ #endif /* no prototypes */
+ 
+ #endif /* not MAKEINFO_H */
diff -Nrc2 texinfo-4.12/makeinfo/multi.c texinfo-4.13/makeinfo/multi.c
*** texinfo-4.12/makeinfo/multi.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/multi.c	Sun Jul  1 14:20:33 2007
***************
*** 0 ****
--- 1,646 ----
+ /* multi.c -- multiple-column tables (@multitable) for makeinfo.
+    $Id: multi.c,v 1.18 2007/07/01 21:20:33 karl Exp $
+ 
+    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by phr@gnu.org (Paul Rubin).  */
+ 
+ #include "system.h"
+ #include "mbswidth.h"
+ #include "cmds.h"
+ #include "insertion.h"
+ #include "makeinfo.h"
+ #include "multi.h"
+ #include "xml.h"
+ 
+ #define MAXCOLS 100             /* remove this limit later @@ */
+ 
+ 
+ /*
+  * Output environments.  This is a hack grafted onto existing
+  * structure.  The "output environment" used to consist of the
+  * global variables `output_paragraph', `fill_column', etc.
+  * Routines like add_char would manipulate these variables.
+  *
+  * Now, when formatting a multitable, we maintain separate environments
+  * for each column.  That way we can build up the columns separately
+  * and write them all out at once.  The "current" output environment"
+  * is still kept in those global variables, so that the old output
+  * routines don't have to change.  But we provide routines to save
+  * and restore these variables in an "environment table".  The
+  * `select_output_environment' function switches from one output
+  * environment to another.
+  *
+  * Environment #0 (i.e., element #0 of the table) is the regular
+  * environment that is used when we're not formatting a multitable.
+  *
+  * Environment #N (where N = 1,2,3,...) is the env. for column #N of
+  * the table, when a multitable is active.
+  */
+ 
+ /* contents of an output environment */
+ /* some more vars may end up being needed here later @@ */
+ static struct env
+ {
+   unsigned char *output_paragraph;
+   int output_paragraph_offset;
+   int paragraph_buffer_len;
+   int paragraph_is_open;
+   int meta_char_pos;
+   int current_indent;
+   int fill_column;
+ } envs[MAXCOLS];                /* the environment table */
+ 
+ /* index in environment table of currently selected environment */
+ static int current_env_no;
+ 
+ /* current column number */
+ static int current_column_no;
+ 
+ /* We need to make a difference between template based widths and
+    @columnfractions for HTML tables' sake.  Sigh.  */
+ static int seen_column_fractions;
+ 
+ /* column number of last column in current multitable */
+ static int last_column;
+ 
+ /* flags indicating whether horizontal and vertical separators need
+    to be drawn, separating rows and columns in the current multitable. */
+ static int hsep, vsep;
+ 
+ /* whether this is the first row. */
+ static int first_row;
+ 
+ /* Called to handle a {...} template on the @multitable line.
+    We're at the { and our first job is to find the matching }; as a side
+    effect, we change *PARAMS to point to after it.  Our other job is to
+    expand the template text and return the width of that string.  */
+ static unsigned
+ find_template_width (char **params)
+ {
+   char *template, *xtemplate;
+   unsigned len;
+   char *start = *params;
+   int brace_level = 0;
+ 
+   /* The first character should be a {.  */
+   if (!params || !*params || **params != '{')
+     {
+       line_error ("find_template width internal error: passed %s",
+                   params ? *params : "null");
+       return 0;
+     }
+ 
+   do
+     {
+       if (**params == '{' && (*params == start || (*params)[-1] != '@'))
+         brace_level++;
+       else if (**params == '}' && (*params)[-1] != '@')
+         brace_level--;
+       else if (**params == 0)
+         {
+           line_error (_("Missing } in @multitable template"));
+           return 0;
+         }
+       (*params)++;
+     }
+   while (brace_level > 0);
+   
+   template = substring (start + 1, *params - 1); /* omit braces */
+   xtemplate = expansion (template, 0);
+   len = strlen (xtemplate);
+   
+   free (template);
+   free (xtemplate);
+   
+   return len;
+ }
+ 
+ /* Direct current output to environment number N.  Used when
+    switching work from one column of a multitable to the next.
+    Returns previous environment number. */
+ static int 
+ select_output_environment (int n)
+ {
+   struct env *e = &envs[current_env_no];
+   int old_env_no = current_env_no;
+ 
+   /* stash current env info from global vars into the old environment */
+   e->output_paragraph = output_paragraph;
+   e->output_paragraph_offset = output_paragraph_offset;
+   e->paragraph_buffer_len = paragraph_buffer_len;
+   e->paragraph_is_open = paragraph_is_open;
+   e->meta_char_pos = meta_char_pos;
+   e->current_indent = current_indent;
+   e->fill_column = fill_column;
+ 
+   /* now copy new environment into global vars */
+   current_env_no = n;
+   e = &envs[current_env_no];
+   output_paragraph = e->output_paragraph;
+   output_paragraph_offset = e->output_paragraph_offset;
+   /* All the elements in the output environment structures start out as
+      zeros from the static declaration.  However, we don't want to try
+      to malloc zero bytes when init_paragraph is called just below,
+      after we return.  */
+   paragraph_buffer_len = e->paragraph_buffer_len ? e->paragraph_buffer_len
+                          : INITIAL_PARAGRAPH_BUFFER_LEN;
+   paragraph_is_open = e->paragraph_is_open;
+   meta_char_pos = e->meta_char_pos;
+   current_indent = e->current_indent;
+   fill_column = e->fill_column;
+ 
+   return old_env_no;
+ }
+ 
+ /* Initialize environment number ENV_NO, of width WIDTH.
+    The idea is that we're going to use one environment for each column of
+    a multitable, so we can build them up separately and print them
+    all out at the end. */
+ static int
+ setup_output_environment (int env_no, int width)
+ {
+   int old_env = select_output_environment (env_no);
+ 
+   /* clobber old environment and set width of new one */
+   init_paragraph ();
+ 
+   /* make our change */
+   fill_column = width;
+ 
+   /* Save new environment and restore previous one. */
+   select_output_environment (old_env);
+ 
+   return env_no;
+ }
+ 
+ /* Read the parameters for a multitable from the current command
+    line, save the parameters away, and return the
+    number of columns. */
+ static int
+ setup_multitable_parameters (void)
+ {
+   char *params = insertion_stack->item_function;
+   int nchars;
+   float columnfrac;
+   char command[200]; /* xx no fixed limits */
+   int i = 1;
+ 
+   /* We implement @hsep and @vsep even though TeX doesn't.
+      We don't get mixing of @columnfractions and templates right,
+      but TeX doesn't either.  */
+   hsep = vsep = 0;
+ 
+   /* Assume no @columnfractions per default.  */
+   seen_column_fractions = 0;
+ 
+   while (*params) {
+     while (whitespace (*params))
+       params++;
+ 
+     if (*params == '@') {
+       sscanf (params, "%200s", command);
+       nchars = strlen (command);
+       params += nchars;
+       if (strcmp (command, "@hsep") == 0)
+         hsep++;
+       else if (strcmp (command, "@vsep") == 0)
+         vsep++;
+       else if (strcmp (command, "@columnfractions") == 0) {
+         seen_column_fractions = 1;
+         /* Clobber old environments and create new ones, starting at #1.
+            Environment #0 is the normal output, so don't mess with it. */
+         for ( ; i <= MAXCOLS; i++) {
+           if (sscanf (params, "%f", &columnfrac) < 1)
+             goto done;
+           /* Unfortunately, can't use %n since m68k-hp-bsd libc (at least)
+              doesn't support it.  So skip whitespace (preceding the
+              number) and then non-whitespace (the number).  */
+           while (*params && (*params == ' ' || *params == '\t'))
+             params++;
+           /* Hmm, but what about @columnfractions 3foo.  Oh well, 
+              it's invalid input anyway.  */
+           while (*params && *params != ' ' && *params != '\t'
+                  && *params != '\n' && *params != '@')
+             params++;
+ 
+           {
+             /* For html/xml/docbook, translate fractions into integer
+                percentages, adding .005 to avoid rounding problems.  For
+                info, we want the character width.  */
+             int width = xml || html ? (columnfrac + .005) * 100
+                         : (columnfrac * (fill_column - current_indent) + .5);
+             setup_output_environment (i, width);
+           }
+         }
+       }
+ 
+     } else if (*params == '{') {
+       unsigned template_width = find_template_width (&params);
+ 
+       /* This gives us two spaces between columns.  Seems reasonable.
+          How to take into account current_indent here?  */
+       setup_output_environment (i++, template_width + 2);
+       
+     } else {
+       warning (_("ignoring stray text `%s' after @multitable"), params);
+       break;
+     }
+   }
+ 
+ done:
+   flush_output ();
+   inhibit_output_flushing ();
+ 
+   last_column = i - 1;
+   return last_column;
+ }
+ 
+ /* Output a row.  Calls insert, but also flushes the buffered output
+    when we see a newline, since in multitable every line is a separate
+    paragraph.  */
+ static void
+ out_char (int ch)
+ {
+   if (html || xml)
+     add_char (ch);
+   else
+     {
+       int env = select_output_environment (0);
+       insert (ch);
+       if (ch == '\n')
+ 	{
+ 	  uninhibit_output_flushing ();
+ 	  flush_output ();
+ 	  inhibit_output_flushing ();
+ 	}
+       select_output_environment (env);
+     }
+ }
+ 
+ 
+ static void
+ draw_horizontal_separator (void)
+ {
+   int i, j, s;
+ 
+   if (html)
+     {
+       add_word ("<hr>");
+       return;
+     }
+   if (xml)
+     return;
+ 
+   for (s = 0; s < envs[0].current_indent; s++)
+     out_char (' ');
+   if (vsep)
+     out_char ('+');
+   for (i = 1; i <= last_column; i++) {
+     for (j = 0; j <= envs[i].fill_column; j++)
+       out_char ('-');
+     if (vsep)
+       out_char ('+');
+   }
+   out_char (' ');
+   out_char ('\n');
+ }
+ 
+ 
+ /* multitable strategy:
+     for each item {
+        for each column in an item {
+         initialize a new paragraph
+         do ordinary formatting into the new paragraph
+         save the paragraph away
+         repeat if there are more paragraphs in the column
+       }
+       dump out the saved paragraphs and free the storage
+     }
+ 
+    For HTML we construct a simple HTML 3.2 table with <br>s inserted
+    to help non-tables browsers.  `@item' inserts a <tr> and `@tab'
+    inserts <td>; we also try to close <tr>.  The only real
+    alternative is to rely on the info formatting engine and present
+    preformatted text.  */
+ 
+ void
+ do_multitable (void)
+ {
+   int ncolumns;
+ 
+   if (multitable_active)
+     {
+       line_error ("Multitables cannot be nested");
+       return;
+     }
+ 
+   close_single_paragraph ();
+ 
+   if (xml)
+     {
+       xml_no_para = 1;
+       if (output_paragraph_offset > 0
+ 	  && output_paragraph[output_paragraph_offset-1] == '\n')
+         output_paragraph_offset--;
+     }
+ 
+   /* scan the current item function to get the field widths
+      and number of columns, and set up the output environment list
+      accordingly. */
+   ncolumns = setup_multitable_parameters ();
+   first_row = 1;
+ 
+   /* <p> for non-tables browsers.  @multitable implicitly ends the
+      current paragraph, so this is ok.  */
+   if (html)
+     add_html_block_elt ("<p><table summary=\"\">");
+   /*  else if (docbook)*/ /* 05-08 */
+   else if (xml)
+     {
+       int *widths = xmalloc (ncolumns * sizeof (int));
+       int i;
+       for (i=0; i<ncolumns; i++)
+ 	widths[i] = envs[i+1].fill_column;
+       xml_begin_multitable (ncolumns, widths);
+       free (widths);
+     }
+ 
+   if (hsep)
+     draw_horizontal_separator ();
+ 
+   /* The next @item command will direct stdout into the first column
+      and start processing.  @tab will then switch to the next column,
+      and @item will flush out the saved output and return to the first
+      column.  Environment #1 is the first column.  (Environment #0 is
+      the normal output) */
+ 
+   ++multitable_active;
+ }
+ 
+ /* advance to the next environment number */
+ static void
+ nselect_next_environment (void)
+ {
+   if (current_env_no >= last_column) {
+     line_error (_("Too many columns in multitable item (max %d)"), last_column);
+     return;
+   }
+   select_output_environment (current_env_no + 1);
+ }
+ 
+ 
+ /* do anything needed at the beginning of processing a
+    multitable column. */
+ static void
+ init_column (void)
+ {
+   /* don't indent 1st paragraph in the item */
+   cm_noindent ();
+ 
+   /* throw away possible whitespace after @item or @tab command */
+   skip_whitespace ();
+ }
+ 
+ static void
+ output_multitable_row (void)
+ {
+   /* offset in the output paragraph of the next char needing
+      to be output for that column. */
+   int offset[MAXCOLS];
+   int i, j, s, remaining;
+   int had_newline = 0;
+ 
+   for (i = 0; i <= last_column; i++)
+     offset[i] = 0;
+ 
+   /* select the current environment, to make sure the env variables
+      get updated */
+   select_output_environment (current_env_no);
+ 
+ #define CHAR_ADDR(n) (offset[i] + (n))
+ #define CHAR_AT(n) (envs[i].output_paragraph[CHAR_ADDR(n)])
+ 
+   /* remove trailing whitespace from each column */
+   for (i = 1; i <= last_column; i++) {
+     while (envs[i].output_paragraph_offset
+            && cr_or_whitespace (CHAR_AT (envs[i].output_paragraph_offset - 1)))
+       envs[i].output_paragraph_offset--;
+ 
+     if (i == current_env_no)
+       output_paragraph_offset = envs[i].output_paragraph_offset;
+   }
+ 
+   /* read the current line from each column, outputting them all
+      pasted together.  Do this til all lines are output from all
+      columns.  */
+   for (;;) {
+     remaining = 0;
+     /* first, see if there is any work to do */
+     for (i = 1; i <= last_column; i++) {
+       if (CHAR_ADDR (0) < envs[i].output_paragraph_offset) {
+         remaining = 1;
+         break;
+       }
+     }
+     if (!remaining)
+       break;
+     
+     for (s = 0; s < envs[0].current_indent; s++)
+       out_char (' ');
+     
+     if (vsep)
+       out_char ('|');
+ 
+     for (i = 1; i <= last_column; i++) {
+       for (s = 0; s < envs[i].current_indent; s++)
+         out_char (' ');
+       for (j = 0; CHAR_ADDR (j) < envs[i].output_paragraph_offset; j++) {
+         if (CHAR_AT (j) == '\n')
+           break;
+         out_char (CHAR_AT (j));
+       }
+       /* Do not output trailing blanks if we're in the last column and
+          there will be no trailing |.  */
+       if (i < last_column && !vsep)
+         for (s = mbsnwidth ((char *)&CHAR_AT (0), j, 0);
+ 	     s <= envs[i].fill_column; s++)
+           out_char (' ');
+       if (vsep)
+         out_char ('|'); /* draw column separator */
+ 
+       offset[i] += j + 1;       /* skip last text plus skip the newline */
+     }
+     out_char ('\n');    /* end of line */
+     had_newline = 1;
+   }
+   
+   /* If completely blank item, get blank line despite no other output.  */
+   if (!had_newline)
+     out_char ('\n');    /* end of line */
+ 
+   if (hsep)
+     draw_horizontal_separator ();
+ 
+   /* Now dispose of the buffered output. */
+   for (i = 1; i <= last_column; i++) {
+     select_output_environment (i);
+     init_paragraph ();
+   }
+ }
+ 
+ int after_headitem = 0;
+ int headitem_row = 0;
+ 
+ /* start a new item (row) of a multitable */
+ int
+ multitable_item (void)
+ {
+   if (!multitable_active) {
+     line_error ("multitable_item internal error: no active multitable");
+     xexit (1);
+   }
+ 
+   current_column_no = 1;
+ 
+   if (html)
+     {
+       if (!first_row)
+         /* <br> for non-tables browsers. */
+ 	add_word_args ("<br></%s></tr>", after_headitem ? "th" : "td");
+ 
+       if (seen_column_fractions)
+         add_word_args ("<tr align=\"left\"><%s valign=\"top\" width=\"%d%%\">",
+             headitem_flag ? "th" : "td",
+             envs[current_column_no].fill_column);
+       else
+         add_word_args ("<tr align=\"left\"><%s valign=\"top\">",
+             headitem_flag ? "th" : "td");
+ 
+       if (headitem_flag)
+         after_headitem = 1;
+       else
+         after_headitem = 0;
+       first_row = 0;
+       headitem_row = headitem_flag;
+       headitem_flag = 0;
+       return 0;
+     }
+   /*  else if (docbook)*/ /* 05-08 */
+   else if (xml)
+     {
+       xml_end_multitable_row (first_row);
+       if (headitem_flag)
+         after_headitem = 1;
+       else
+         after_headitem = 0;
+       first_row = 0;
+       headitem_flag = 0;
+       return 0;
+     }
+   first_row = 0;
+ 
+   if (current_env_no > 0) {
+     output_multitable_row ();
+   }
+   /* start at column 1 */
+   select_output_environment (1);
+   if (!output_paragraph) {
+     line_error (_("[unexpected] cannot select column #%d in multitable"),
+                 current_env_no);
+     xexit (1);
+   }
+ 
+   init_column ();
+ 
+   if (headitem_flag)
+     hsep = 1;
+   else
+     hsep = 0;
+ 
+   if (headitem_flag)
+     after_headitem = 1;
+   else
+     after_headitem = 0;
+   headitem_flag = 0;
+ 
+   return 0;
+ }
+ 
+ #undef CHAR_AT
+ #undef CHAR_ADDR
+ 
+ /* select a new column in current row of multitable */
+ void
+ cm_tab (void)
+ {
+   if (!multitable_active)
+     error (_("ignoring @tab outside of multitable"));
+ 
+   current_column_no++;
+   
+   if (html)
+     {
+       if (seen_column_fractions)
+         add_word_args ("</%s><%s valign=\"top\" width=\"%d%%\">",
+             headitem_row ? "th" : "td",
+             headitem_row ? "th" : "td",
+             envs[current_column_no].fill_column);
+       else
+         add_word_args ("</%s><%s valign=\"top\">",
+             headitem_row ? "th" : "td",
+             headitem_row ? "th" : "td");
+     }
+   /*  else if (docbook)*/ /* 05-08 */
+   else if (xml)
+     xml_end_multitable_column ();
+   else
+     nselect_next_environment ();
+ 
+   init_column ();
+ }
+ 
+ /* close a multitable, flushing its output and resetting
+    whatever needs resetting */
+ void
+ end_multitable (void)
+ {
+   if (!html && !docbook) 
+     output_multitable_row ();
+ 
+   /* Multitables cannot be nested.  Otherwise, we'd have to save the
+      previous output environment number on a stack somewhere, and then
+      restore to that environment.  */
+   select_output_environment (0);
+   multitable_active = 0;
+   uninhibit_output_flushing ();
+   close_insertion_paragraph ();
+ 
+   if (html)
+     add_word_args ("<br></%s></tr></table>\n", headitem_row ? "th" : "td");
+   /*  else if (docbook)*/ /* 05-08 */
+   else if (xml)
+     xml_end_multitable ();
+ 
+ #if 0
+   printf (_("** Multicolumn output from last row:\n"));
+   for (i = 1; i <= last_column; i++) {
+     select_output_environment (i);
+     printf (_("* column #%d: output = %s\n"), i, output_paragraph);
+   }
+ #endif
+ }
diff -Nrc2 texinfo-4.12/makeinfo/multi.h texinfo-4.13/makeinfo/multi.h
*** texinfo-4.12/makeinfo/multi.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/multi.h	Sun Jul  1 14:20:33 2007
***************
*** 0 ****
--- 1,26 ----
+ /* multi.h -- declarations for multi.c.
+    $Id: multi.h,v 1.4 2007/07/01 21:20:33 karl Exp $
+ 
+    Copyright (C) 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef MULTI_H
+ #define MULTI_H
+ 
+ extern void do_multitable (void);
+ extern void end_multitable (void);
+ extern int multitable_item (void);
+ 
+ #endif /* !MULTI_H */
diff -Nrc2 texinfo-4.12/makeinfo/node.c texinfo-4.13/makeinfo/node.c
*** texinfo-4.12/makeinfo/node.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/node.c	Sat Jul  5 16:59:47 2008
***************
*** 0 ****
--- 1,1947 ----
+ /* node.c -- nodes for Texinfo.
+    $Id: node.c,v 1.41 2008/07/05 23:57:29 karl Exp $
+ 
+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "cmds.h"
+ #include "files.h"
+ #include "float.h"
+ #include "footnote.h"
+ #include "macro.h"
+ #include "makeinfo.h"
+ #include "node.h"
+ #include "html.h"
+ #include "sectioning.h"
+ #include "insertion.h"
+ #include "xml.h"
+ 
+ /* See comments in node.h.  */
+ NODE_REF *node_references = NULL;
+ NODE_REF *node_node_references = NULL;
+ TAG_ENTRY *tag_table = NULL;
+ int node_number = -1;
+ int node_order = 0;
+ int current_section = 0;
+ int outstanding_node = 0;
+ 
+ /* Adding nodes, and making tags.  */
+ 
+ /* Start a new tag table. */
+ void
+ init_tag_table (void)
+ {
+   while (tag_table)
+     {
+       TAG_ENTRY *temp = tag_table;
+       free (temp->node);
+       free (temp->prev);
+       free (temp->next);
+       free (temp->up);
+       tag_table = tag_table->next_ent;
+       free (temp);
+     }
+ }
+ 
+ /* Write out the contents of the existing tag table.
+    INDIRECT_P says how to format the output (it depends on whether the
+    table is direct or indirect).  */
+ static void
+ write_tag_table_internal (int indirect_p)
+ {
+   TAG_ENTRY *node;
+   int old_indent = no_indent;
+ 
+   if (xml)
+     {
+       flush_output ();
+       return;
+     }
+ 
+   no_indent = 1;
+   filling_enabled = 0;
+   must_start_paragraph = 0;
+   close_paragraph ();
+ 
+   if (!indirect_p)
+     {
+       no_indent = 1;
+       insert ('\n');
+     }
+ 
+   add_word_args ("\037\nTag Table:\n%s", indirect_p ? "(Indirect)\n" : "");
+ 
+   /* Do not collapse -- to -, etc., in node names.  */
+   in_fixed_width_font++;
+ 
+   for (node = tag_table; node; node = node->next_ent)
+     {
+       if (node->flags & TAG_FLAG_ANCHOR)
+         { /* This reference is to an anchor.  */
+           execute_string ("Ref: %s", node->node);
+         }
+       else
+         { /* This reference is to a node.  */
+           execute_string ("Node: %s", node->node);
+         }
+       add_word_args ("\177%d\n", node->position);
+     }
+ 
+   add_word ("\037\nEnd Tag Table\n");
+ 
+   /* Do not collapse -- to -, etc., in node names.  */
+   in_fixed_width_font--;
+ 
+   flush_output ();
+   no_indent = old_indent;
+ }
+ 
+ void
+ write_tag_table (char *filename)
+ {
+   output_stream = fopen (filename, "a");
+   if (!output_stream)
+     {
+       fs_error (filename);
+       return;
+     }
+ 
+   write_tag_table_internal (0); /* Not indirect. */
+ 
+   if (fclose (output_stream) != 0)
+     fs_error (filename);
+ }
+ 
+ static void
+ write_tag_table_indirect (void)
+ {
+   write_tag_table_internal (1);
+ }
+ 
+ /* Convert "top" and friends into "Top". */
+ static void
+ normalize_node_name (char *string)
+ {
+   if (mbscasecmp (string, "Top") == 0)
+     strcpy (string, "Top");
+ }
+ 
+ static char *
+ get_node_token (int expand)
+ {
+   char *string;
+ 
+   get_until_in_line (expand, ",", &string);
+ 
+   if (curchar () == ',')
+     input_text_offset++;
+ 
+   fix_whitespace (string);
+ 
+   /* Force all versions of "top" to be "Top". */
+   normalize_node_name (string);
+ 
+   return string;
+ }
+ 
+ /* Expand any macros and other directives in a node name, and
+    return the expanded name as an malloc'ed string.  */
+ char *
+ expand_node_name (char *node)
+ {
+   char *result = node;
+ 
+   if (node)
+     {
+       /* Don't expand --, `` etc., in case somebody will want
+          to print the result.  */
+       in_fixed_width_font++;
+       result = expansion (node, 0);
+       in_fixed_width_font--;
+       fix_whitespace (result);
+       normalize_node_name (result);
+     }
+   return result;
+ }
+ 
+ /* Look up NAME in the tag table, and return the associated
+    tag_entry.  If the node is not in the table return NULL. */
+ TAG_ENTRY *
+ find_node (char *name)
+ {
+   TAG_ENTRY *tag = tag_table;
+   char *expanded_name;
+   char n1 = name[0];
+ 
+   while (tag)
+     {
+       if (tag->node[0] == n1 && strcmp (tag->node, name) == 0)
+         return tag;
+       tag = tag->next_ent;
+     }
+ 
+   if (!expensive_validation)
+     return NULL;
+ 
+   /* Try harder.  Maybe TAG_TABLE has the expanded NAME, or maybe NAME
+      is expanded while TAG_TABLE has its unexpanded form.  This may
+      slow down the search, but if they want this feature, let them
+      pay!  If they want it fast, they should write every node name
+      consistently (either always expanded or always unexpaned).  */
+   expanded_name = expand_node_name (name);
+   for (tag = tag_table; tag; tag = tag->next_ent)
+     {
+       if (STREQ (tag->node, expanded_name))
+         break;
+       /* If the tag name doesn't have the command prefix, there's no
+          chance it could expand into anything but itself.  */
+       if (strchr (tag->node, COMMAND_PREFIX))
+         {
+           char *expanded_node = expand_node_name (tag->node);
+ 
+           if (STREQ (expanded_node, expanded_name))
+             {
+               free (expanded_node);
+               break;
+             }
+           free (expanded_node);
+         }
+     }
+   free (expanded_name);
+   return tag;
+ }
+ 
+ /* Look in the tag table for a node whose file name is FNAME, and
+    return the associated tag_entry.  If there's no such node in the
+    table, return NULL. */
+ static TAG_ENTRY *
+ find_node_by_fname (char *fname)
+ {
+   TAG_ENTRY *tag = tag_table;
+   while (tag)
+     {
+       if (tag->html_fname && FILENAME_CMP (tag->html_fname, fname) == 0)
+ 	return tag;
+       tag = tag->next_ent;
+     }
+ 
+   return tag;
+ }
+ 
+ /* Remember next, prev, etc. references in a @node command, where we
+    don't care about most of the entries. */
+ static void
+ remember_node_node_reference (char *node)
+ {
+   NODE_REF *temp = xmalloc (sizeof (NODE_REF));
+   int number;
+ 
+   if (!node) return;
+   temp->next = node_node_references;
+   temp->node = xstrdup (node);
+   temp->type = followed_reference;
+   number = number_of_node (node);
+   if (number)
+     temp->number = number;      /* Already assigned. */
+   else
+     {
+       node_number++;
+       temp->number = node_number;
+     }
+   node_node_references = temp;
+ }
+ 
+ /* Remember NODE and associates. */
+ static void
+ remember_node (char *node, char *prev, char *next, char *up,
+     int position, int line_no, char *fname, int flags)
+ {
+   /* Check for existence of this tag already. */
+   if (validating)
+     {
+       TAG_ENTRY *tag = find_node (node);
+       if (tag)
+         {
+           line_error (_("Node `%s' previously defined at line %d"),
+                       node, tag->line_no);
+           return;
+         }
+     }
+ 
+   if (!(flags & TAG_FLAG_ANCHOR))
+     {
+       /* Make this the current node. */
+       current_node = node;
+     }
+ 
+   /* Add it to the list. */
+   {
+     int number = number_of_node (node);
+ 
+     TAG_ENTRY *new = xmalloc (sizeof (TAG_ENTRY));
+     new->node = node;
+     new->prev = prev;
+     new->next = next;
+     new->up = up;
+     new->position = position;
+     new->line_no = line_no;
+     new->filename = node_filename;
+     new->touched = 0;
+     new->flags = flags;
+     if (number)
+       new->number = number;     /* Already assigned. */
+     else
+       {
+         node_number++;
+         new->number = node_number;
+       }
+     if (fname)
+       new->html_fname = fname;
+     else
+       /* This happens for Top node under split-HTML, for example.  */
+       new->html_fname
+ 	= normalize_filename (filename_part (current_output_filename));
+     new->next_ent = tag_table;
+ 
+     /* Increment the order counter, and save it.  */
+     node_order++;
+     new->order = node_order;
+ 
+     tag_table = new;
+   }
+ 
+   if (html)
+     { /* Note the references to the next etc. nodes too.  */
+       remember_node_node_reference (next);
+       remember_node_node_reference (prev);
+       remember_node_node_reference (up);
+     }
+ }
+ 
+ /* Remember this node name for later validation use.  This is used to
+    remember menu references while reading the input file.  After the
+    output file has been written, if validation is on, then we use the
+    contents of `node_references' as a list of nodes to validate.  */
+ void
+ remember_node_reference (char *node, int line, enum reftype type)
+ {
+   NODE_REF *temp = xmalloc (sizeof (NODE_REF));
+   int number = number_of_node (node);
+ 
+   temp->next = node_references;
+   temp->node = xstrdup (node);
+   temp->line_no = line;
+   temp->section = current_section;
+   temp->type = type;
+   temp->containing_node = xstrdup (current_node ? current_node : "");
+   temp->filename = node_filename;
+   if (number)
+     temp->number = number;      /* Already assigned. */
+   else
+     {
+       node_number++;
+       temp->number = node_number;
+     }
+ 
+   node_references = temp;
+ }
+ 
+ static void
+ isolate_nodename (char *nodename)
+ {
+   int i, c;
+   int paren_seen, paren;
+ 
+   if (!nodename)
+     return;
+ 
+   canon_white (nodename);
+   paren_seen = paren = i = 0;
+ 
+   if (*nodename == '.' || !*nodename)
+     {
+       *nodename = 0;
+       return;
+     }
+ 
+   if (*nodename == '(')
+     {
+       paren++;
+       paren_seen++;
+       i++;
+     }
+ 
+   for (; (c = nodename[i]); i++)
+     {
+       if (paren)
+         {
+           if (c == '(')
+             paren++;
+           else if (c == ')')
+             paren--;
+ 
+           continue;
+         }
+ 
+       /* If the character following the close paren is a space, then this
+          node has no more characters associated with it. */
+       if (c == '\t' ||
+           c == '\n' ||
+           c == ','  ||
+           ((paren_seen && i > 0 && nodename[i - 1] == ')') &&
+            (c == ' ' || c == '.')) ||
+           (c == '.' &&
+            ((!nodename[i + 1] ||
+              (cr_or_whitespace (nodename[i + 1])) ||
+              (nodename[i + 1] == ')')))))
+         break;
+     }
+   nodename[i] = 0;
+ }
+ 
+ /* This function gets called at the start of every line while inside a
+    menu.  It checks to see if the line starts with "* ", and if so and
+    REMEMBER_REF is nonzero, remembers the node reference as type
+    REF_TYPE that this menu refers to.  input_text_offset is at the \n
+    just before the menu line.  If REMEMBER_REF is zero, REF_TYPE is unused.  */
+ #define MENU_STARTER "* "
+ char *
+ glean_node_from_menu (int remember_ref, enum reftype ref_type)
+ {
+   int i, orig_offset = input_text_offset;
+   char *nodename;
+   char *line, *expanded_line;
+   char *old_input = input_text;
+   int old_size = input_text_length;
+ 
+   if (strncmp (&input_text[input_text_offset + 1],
+                MENU_STARTER,
+                strlen (MENU_STARTER)) != 0)
+     return NULL;
+   else
+     input_text_offset += strlen (MENU_STARTER) + 1;
+ 
+   /* The menu entry might include macro calls, so we need to expand them.  */
+   get_until ("\n", &line);
+   only_macro_expansion++;       /* only expand macros in menu entries */
+   expanded_line = expansion (line, 0);
+   only_macro_expansion--;
+   free (line);
+   input_text = expanded_line;
+   input_text_offset = 0;
+   input_text_length = strlen (expanded_line);
+ 
+   get_until_in_line (0, ":", &nodename);
+   if (curchar () == ':')
+     input_text_offset++;
+ 
+   if (curchar () != ':')
+     {
+       free (nodename);
+       get_until_in_line (0, "\n", &nodename);
+       isolate_nodename (nodename);
+     }
+ 
+   input_text = old_input;
+   input_text_offset = orig_offset;
+   input_text_length = old_size;
+   free (expanded_line);
+   fix_whitespace (nodename);
+   normalize_node_name (nodename);
+   i = strlen (nodename);
+   if (i && nodename[i - 1] == ':')
+     nodename[i - 1] = 0;
+ 
+   if (remember_ref)
+     remember_node_reference (nodename, line_number, ref_type);
+ 
+   return nodename;
+ }
+ 
+ /* Set the name of the current output file.  */
+ void
+ set_current_output_filename (const char *fname)
+ {
+   if (current_output_filename)
+     free (current_output_filename);
+   current_output_filename = xstrdup (fname);
+ }
+ 
+ 
+ /* Output the <a name="..."></a> constructs for NODE.  We output both
+    the new-style conversion and the old-style, if they are different.
+    See comments at `add_escaped_anchor_name' in html.c.  */
+ 
+ static void
+ add_html_names (char *node)
+ {
+   char *tem = expand_node_name (node);
+   char *otem = xstrdup (tem);
+ 
+   /* Determine if the old and new schemes come up with different names;
+      only output the old scheme if that is so.  We don't want to output
+      the same name twice.  */
+   canon_white (otem);
+   {
+     char *optr = otem;
+     int need_old = 0;
+     
+     for (; *optr; optr++)
+       {
+         if (!cr_or_whitespace (*optr) && !URL_SAFE_CHAR (*optr))
+           {
+             need_old = 1;
+             break;
+           }
+       }
+     
+     if (need_old)
+       {
+         add_word ("<a name=\"");
+         add_anchor_name (otem, -1);  /* old anchor name conversion */
+         add_word ("\"></a>\n");
+       }
+     free (otem);
+   }
+ 
+   /* Always output the new scheme.  */
+   canon_white (tem);
+   add_word ("<a name=\"");
+   add_anchor_name (tem, 0);
+   add_word ("\"></a>\n");
+ 
+   free (tem);
+ }
+ 
+ 
+ /* The order is: nodename, nextnode, prevnode, upnode.
+    If all of the NEXT, PREV, and UP fields are empty, they are defaulted.
+    You must follow a node command which has those fields defaulted
+    with a sectioning command (e.g., @chapter) giving the "level" of that node.
+    It is an error not to do so.
+    The defaults come from the menu in this node's parent. */
+ void
+ cm_node (void)
+ {
+   static long epilogue_len = 0L;
+   char *node, *prev, *next, *up;
+   int new_node_pos, defaulting, this_section;
+   int no_warn = 0;
+   char *fname_for_this_node = NULL;
+   char *tem;
+   TAG_ENTRY *tag = NULL;
+ 
+   if (strcmp (command, "nwnode") == 0)
+     no_warn = TAG_FLAG_NO_WARN;
+ 
+   /* Get rid of unmatched brace arguments from previous commands. */
+   discard_braces ();
+ 
+   /* There also might be insertions left lying around that haven't been
+      ended yet.  Do that also. */
+   discard_insertions (1);
+ 
+   if (!html && !already_outputting_pending_notes)
+     {
+       close_paragraph ();
+       output_pending_notes ();
+     }
+ 
+   new_node_pos = output_position;
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     append_to_expansion_output (input_text_offset + 1);
+ 
+   /* Do not collapse -- to -, etc., in node names.  */
+   in_fixed_width_font++;
+ 
+   /* While expanding the @node line, leave any non-macros
+      intact, so that the macro-expanded output includes them.  */
+   only_macro_expansion++;
+   node = get_node_token (1);
+   only_macro_expansion--;
+   next = get_node_token (0);
+   prev = get_node_token (0);
+   up = get_node_token (0);
+ 
+   if (html && splitting
+       /* If there is a Top node, it always goes into index.html.  So
+ 	 don't start a new HTML file for Top.  */
+       && (top_node_seen || mbscasecmp (node, "Top") != 0))
+     {
+       /* We test *node here so that @node without a valid name won't
+ 	 start a new file name with a bogus name such as ".html".
+ 	 This could happen if we run under "--force", where we cannot
+ 	 simply bail out.  Continuing to use the same file sounds like
+ 	 the best we can do in such cases.  */
+       if (current_output_filename && output_stream && *node)
+ 	{
+ 	  char *fname_for_prev_node;
+ 
+ 	  if (current_node)
+ 	    {
+ 	      /* NOTE: current_node at this point still holds the name
+ 		 of the previous node.  */
+ 	      tem = expand_node_name (current_node);
+ 	      fname_for_prev_node = nodename_to_filename (tem);
+ 	      free (tem);
+ 	    }
+ 	  else /* could happen if their top node isn't named "Top" */
+ 	    fname_for_prev_node = filename_part (current_output_filename);
+ 	  tem = expand_node_name (node);
+ 	  fname_for_this_node = nodename_to_filename (tem);
+ 	  free (tem);
+ 	  /* Don't close current output file, if next output file is
+              to have the same name.  This may happen at top level, or
+              if two nodes produce the same file name under --split.  */
+ 	  if (FILENAME_CMP (fname_for_this_node, fname_for_prev_node) != 0)
+ 	    {
+ 	      long pos1 = 0;
+ 
+ 	      /* End the current split output file. */
+ 	      close_paragraph ();
+ 	      output_pending_notes ();
+ 	      start_paragraph ();
+ 	      /* Compute the length of the HTML file's epilogue.  We
+ 		 cannot know the value until run time, due to the
+ 		 text/binary nuisance on DOS/Windows platforms, where
+ 		 2 `\r' characters could be added to the epilogue when
+ 		 it is written in text mode.  */
+ 	      if (epilogue_len == 0)
+ 		{
+ 		  flush_output ();
+ 		  pos1 = ftell (output_stream);
+ 		}
+ 	      add_word ("</body></html>\n");
+ 	      close_paragraph ();
+ 	      if (epilogue_len == 0)
+ 		epilogue_len = ftell (output_stream) - pos1;
+ 	      fclose (output_stream);
+ 	      output_stream = NULL;
+               output_position = 0;
+ 	      tag = find_node_by_fname (fname_for_this_node);
+ 	    }
+ 	  free (fname_for_prev_node);
+ 	}
+     }
+ 
+   filling_enabled = indented_fill = 0;
+   if (!html || (html && splitting))
+     current_footnote_number = 1;
+ 
+   if (verbose_mode)
+     printf (_("Formatting node %s...\n"), node);
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     remember_itext (input_text, input_text_offset);
+ 
+   /* Reset the line number in each node for Info output, so that
+      index entries will save the line numbers of parent node.  */
+   node_line_number = 0;
+ 
+   no_indent = 1;
+   if (xml)
+     {
+       xml_begin_node ();
+       if (!docbook)
+ 	{
+ 	  xml_insert_element (NODENAME, START);
+ 	  if (macro_expansion_output_stream && !executing_string)
+ 	    me_execute_string (node);
+ 	  else
+ 	    execute_string ("%s", node);
+ 	  xml_insert_element (NODENAME, END);
+ 	}
+       else
+ 	xml_node_id = xml_id (node);
+     }
+   else if (!no_headers && !html)
+     {
+       /* Emacs Info reader cannot grok indented escape sequence.  */
+       kill_self_indent (-1);
+ 
+       add_word_args ("\037\nFile: %s,  Node: ", pretty_output_filename);
+ 
+       if (macro_expansion_output_stream && !executing_string)
+         me_execute_string (node);
+       else
+         execute_string ("%s", node);
+       filling_enabled = indented_fill = 0;
+     }
+ 
+   /* Check for defaulting of this node's next, prev, and up fields. */
+   defaulting = (*next == 0 && *prev == 0 && *up == 0);
+ 
+   this_section = what_section (input_text + input_text_offset, NULL);
+ 
+   /* If we are defaulting, then look at the immediately following
+      sectioning command (error if none) to determine the node's
+      level.  Find the node that contains the menu mentioning this node
+      that is one level up (error if not found).  That node is the "Up"
+      of this node.  Default the "Next" and "Prev" from the menu. */
+   if (defaulting)
+     {
+       NODE_REF *last_ref = NULL;
+       NODE_REF *ref = node_references;
+ 
+       if (this_section < 0 && !STREQ (node, "Top"))
+         {
+           char *polite_section_name = "top";
+           int i;
+ 
+           for (i = 0; section_alist[i].name; i++)
+             if (section_alist[i].level == current_section + 1)
+               {
+                 polite_section_name = section_alist[i].name;
+                 break;
+               }
+ 
+           line_error
+             (_("Node `%s' requires a sectioning command (e.g., %c%s)"),
+              node, COMMAND_PREFIX, polite_section_name);
+         }
+       else
+         {
+           if (strcmp (node, "Top") == 0)
+             {
+               /* Default the NEXT pointer to be the first menu item in
+                  this node, if there is a menu in this node.  We have to
+                  try very hard to find the menu, as it may be obscured
+                  by execution_strings which are on the filestack.  For
+                  every member of the filestack which has a FILENAME
+                  member which is identical to the current INPUT_FILENAME,
+                  search forward from that offset. */
+               int saved_input_text_offset = input_text_offset;
+               int saved_input_text_length = input_text_length;
+               char *saved_input_text = input_text;
+               FSTACK *next_file = filestack;
+ 
+               int orig_offset, orig_size;
+ 
+               int bye_offset = search_forward ("\n@bye", input_text_offset);
+ 
+               /* No matter what, make this file point back at `(dir)'. */
+               free (up);
+               up = xstrdup ("(dir)"); /* html fixxme */
+ 
+               while (1)
+                 {
+                   orig_offset = input_text_offset;
+                   orig_size =
+                     search_forward (node_search_string, orig_offset);
+ 
+                   if (orig_size < 0)
+                     orig_size = input_text_length;
+ 
+                   input_text_offset = search_forward ("\n@menu", orig_offset);
+                   if (input_text_offset > -1
+                       && (bye_offset > -1 && input_text_offset < bye_offset)
+                       && cr_or_whitespace (input_text[input_text_offset + 6]))
+                     {
+                       char *nodename_from_menu = NULL;
+ 
+                       input_text_offset =
+                         search_forward ("\n* ", input_text_offset);
+ 
+                       if (input_text_offset != -1)
+                         nodename_from_menu = glean_node_from_menu (0, 
+ 						     (enum reftype) 0);
+ 
+                       if (nodename_from_menu)
+                         {
+                           free (next);
+                           next = nodename_from_menu;
+                           break;
+                         }
+                     }
+ 
+                   /* We got here, so it hasn't been found yet.  Try
+                      the next file on the filestack if there is one. */
+                   if (next_file
+                       && FILENAME_CMP (next_file->filename, input_filename)
+                           == 0)
+                     {
+                       input_text = next_file->text;
+                       input_text_offset = next_file->offset;
+                       input_text_length = next_file->size;
+                       next_file = next_file->next;
+                     }
+                   else
+                     { /* No more input files to check. */
+                       break;
+                     }
+                 }
+ 
+               input_text = saved_input_text;
+               input_text_offset = saved_input_text_offset;
+               input_text_length = saved_input_text_length;
+             }
+         }
+ 
+       /* Fix the level of the menu references in the Top node, iff it
+          was declared with @top, and no subsequent reference was found. */
+       if (top_node_seen && !non_top_node_seen)
+         {
+           /* Then this is the first non-@top node seen. */
+           int level;
+ 
+           level = set_top_section_level (this_section - 1);
+           non_top_node_seen = 1;
+ 
+           while (ref)
+             {
+               if (ref->section == level)
+                 ref->section = this_section - 1;
+               ref = ref->next;
+             }
+ 
+           ref = node_references;
+         }
+ 
+       while (ref)
+         {
+           if (ref->section == (this_section - 1)
+               && ref->type == menu_reference
+               && strcmp (ref->node, node) == 0)
+             {
+               char *containing_node = ref->containing_node;
+ 
+               free (up);
+               up = xstrdup (containing_node);
+ 
+               if (last_ref
+                   && last_ref->type == menu_reference
+                   && strcmp (last_ref->containing_node, containing_node) == 0)
+                 {
+                   free (next);
+                   next = xstrdup (last_ref->node);
+                 }
+ 
+               while (ref->section == this_section - 1
+                      && ref->next
+                      && ref->next->type != menu_reference)
+                 ref = ref->next;
+ 
+               if (ref->next && ref->type == menu_reference
+                   && strcmp (ref->next->containing_node, containing_node) == 0)
+                 {
+                   free (prev);
+                   prev = xstrdup (ref->next->node);
+                 }
+               else if (!ref->next
+                        && mbscasecmp (ref->containing_node, "Top") == 0)
+                 {
+                   free (prev);
+                   prev = xstrdup (ref->containing_node);
+                 }
+               break;
+             }
+           last_ref = ref;
+           ref = ref->next;
+         }
+     }
+ 
+   /* Insert the correct args if we are expanding macros, and the node's
+      pointers weren't defaulted. */
+   if (macro_expansion_output_stream && !executing_string && !defaulting)
+     {
+       char *temp;
+       int op_orig = output_paragraph_offset;
+       int meta_pos_orig = meta_char_pos;
+       int extra = html ? strlen (node) : 0;
+ 
+       temp = xmalloc (7 + extra + strlen (next) + strlen (prev) + strlen (up));
+       sprintf (temp, "%s, %s, %s, %s", html ? node : "", next, prev, up);
+       me_execute_string (temp);
+       free (temp);
+ 
+       output_paragraph_offset = op_orig;
+       meta_char_pos = meta_pos_orig;
+     }
+ 
+   if (!*node)
+     {
+       line_error (_("No node name specified for `%c%s' command"),
+                   COMMAND_PREFIX, command);
+       free (node);
+       free (next); next = NULL;
+       free (prev); prev= NULL;
+       free (up);   up = NULL;
+       node_number++;            /* else it doesn't get bumped */
+     }
+   else
+     {
+       if (!*next) { free (next); next = NULL; }
+       if (!*prev) { free (prev); prev = NULL; }
+       if (!*up)   { free (up);   up = NULL;   }
+       remember_node (node, prev, next, up, new_node_pos, line_number,
+ 		     fname_for_this_node, no_warn);
+       outstanding_node = 1;
+     }
+ 
+   if (html)
+     {
+       if (splitting && *node && output_stream == NULL)
+         {
+ 	  char *dirname;
+ 	  char filename[PATH_MAX];
+ 
+ 	  dirname = pathname_part (current_output_filename);
+ 	  strcpy (filename, dirname);
+ 	  strcat (filename, fname_for_this_node);
+ 	  free (dirname);
+ 
+ 	  /* See if the node name converted to a file name clashes
+ 	     with other nodes or anchors.  If it clashes with an
+ 	     anchor, we complain and nuke that anchor's file.  */
+ 	  if (!tag)
+ 	    {
+ 	      output_stream = fopen (filename, "w");
+ 	      output_head_p = 0; /* so that we generate HTML preamble */
+ 	      output_head ();
+ 	    }
+ 	  else if ((tag->flags & TAG_FLAG_ANCHOR) != 0)
+ 	    {
+ 	      line_error (_("Anchor `%s' and node `%s' map to the same file name"),
+ 			  tag->node, node);
+ 	      file_line_error (tag->filename, tag->line_no,
+ 			       _("This @anchor command ignored; references to it will not work"));
+ 	      file_line_error (tag->filename, tag->line_no,
+ 			       _("Rename this anchor or use the `--no-split' option"));
+ 	      /* Nuke the file name recorded in anchor's tag.
+ 		 Since we are about to nuke the file itself, we
+ 		 don't want find_node_by_fname to consider this
+ 		 anchor anymore.  */
+ 	      free (tag->html_fname);
+ 	      tag->html_fname = NULL;
+ 	      output_stream = fopen (filename, "w");
+ 	      output_head_p = 0; /* so that we generate HTML preamble */
+ 	      output_head ();
+ 	    }
+ 	  else
+ 	    {
+ 	      /* This node's file name clashes with another node.
+ 		 We put them both on the same file.  */
+ 	      output_stream = fopen (filename, "r+");
+ 	      if (output_stream)
+ 		{
+ 		  static char html_end[] = "</body></html>\n";
+ 		  char end_line[sizeof(html_end)];
+ 		  int fpos = fseek (output_stream, -epilogue_len,
+ 				    SEEK_END);
+ 
+ 		  if (fpos < 0
+ 		      || fgets (end_line, sizeof (html_end),
+ 				output_stream) == NULL
+ 		      /* Paranoia: did someone change the way HTML
+ 			 files are finished up?  */
+ 		      || mbscasecmp (end_line, html_end) != 0)
+ 		    {
+ 		      line_error (_("Unexpected string at end of split-HTML file `%s'"),
+ 				  fname_for_this_node);
+ 		      fclose (output_stream);
+ 		      xexit (1);
+ 		    }
+ 		  fseek (output_stream, -epilogue_len, SEEK_END);
+ 		}
+ 	    }
+           if (output_stream == NULL)
+             {
+               fs_error (filename);
+               xexit (1);
+             }
+           set_current_output_filename (filename);
+         }
+ 
+       if (!splitting && no_headers)
+ 	{ /* cross refs need a name="#anchor" even if not writing headers */ 
+           add_html_names (node);
+ 	}
+ 
+       if (splitting || !no_headers)
+         { /* Navigation bar. */
+           add_html_block_elt ("<div class=\"node\">\n");
+ 
+           /* In the split HTML case, the filename is wrong for the 
+              old-style converted names, but we'll add them anyway, for
+              consistency.  (And we need them in the normal (not
+              no_headers) nonsplit case.)  */
+           add_html_names (node);
+ 
+           /* Do this after adding the anchors, so the browser rendering
+              can be better.  The <p> avoids the links area running on
+              with old Lynxen.  */
+           add_word_args ("<p>%s\n", splitting ? "" : "<hr>");
+           
+           if (next)
+             {
+               tem = expansion (next, 0);
+ 	      add_word ((char *) gdt("Next:"));
+               add_word ("&nbsp;");
+               
+ 	      add_word ("<a rel=\"next\" accesskey=\"n\" href=\"");
+ 	      add_anchor_name (tem, 1);
+               tem = escape_string (tem);
+ 	      add_word_args ("\">%s</a>", tem);
+ 	      
+               free (tem);
+ 
+ 	      if (prev || up)
+ 		add_word (",\n");
+             }
+           if (prev)
+             {
+               tem = expansion (prev, 0);
+ 	      add_word ((char *) gdt("Previous:"));
+               add_word ("&nbsp;");
+ 	      add_word ("<a rel=\"previous\" accesskey=\"p\" href=\"");
+ 	      add_anchor_name (tem, 1);
+               tem = escape_string (tem);
+ 	      add_word_args ("\">%s</a>", tem);
+               free (tem);
+ 
+ 	      if (up)
+ 		add_word (",\n");
+             }
+           if (up)
+             {
+               tem = expansion (up, 0);
+ 	      add_word ((char *) gdt("Up:"));
+               add_word ("&nbsp;");
+ 	      add_word ("<a rel=\"up\" accesskey=\"u\" href=\"");
+ 	      add_anchor_name (tem, 1);
+               tem = escape_string (tem);
+ 	      add_word_args ("\">%s</a>", tem);
+               free (tem);
+             }
+           /* html fixxme: we want a `top' or `contents' link here.  */
+ 
+           add_word_args ("\n%s\n", splitting ? "<hr>" : "");
+       	  add_word ("</div>\n");
+         }
+     }
+   else if (docbook)
+     ;
+   else if (xml)
+     {
+       if (next)
+ 	{
+ 	  xml_insert_element (NODENEXT, START);
+ 	  execute_string ("%s", next);
+ 	  xml_insert_element (NODENEXT, END);
+ 	}
+       if (prev)
+ 	{
+ 	  xml_insert_element (NODEPREV, START);
+ 	  execute_string ("%s", prev);
+ 	  xml_insert_element (NODEPREV, END);
+ 	}
+       if (up)
+ 	{
+ 	  xml_insert_element (NODEUP, START);
+ 	  execute_string ("%s", up);
+ 	  xml_insert_element (NODEUP, END);
+ 	}
+     }
+   else if (!no_headers)
+     {
+       if (macro_expansion_output_stream)
+         me_inhibit_expansion++;
+ 
+       /* These strings are not translatable.  */
+       if (next)
+         {
+           execute_string (",  Next: %s", next);
+           filling_enabled = indented_fill = 0;
+         }
+       if (prev)
+         {
+           execute_string (",  Prev: %s", prev);
+           filling_enabled = indented_fill = 0;
+         }
+       if (up)
+         {
+           execute_string (",  Up: %s", up);
+           filling_enabled = indented_fill = 0;
+         }
+       if (macro_expansion_output_stream)
+         me_inhibit_expansion--;
+     }
+ 
+   close_paragraph ();
+   no_indent = 0;
+ 
+   /* Change the section only if there was a sectioning command. */
+   if (this_section >= 0)
+     current_section = this_section;
+ 
+   if (current_node && STREQ (current_node, "Top"))
+     top_node_seen = 1;
+ 
+   filling_enabled = 1;
+   in_fixed_width_font--;
+ }
+ 
+ /* Cross-reference target at an arbitrary spot.  */
+ void
+ cm_anchor (int arg)
+ {
+   char *anchor;
+   char *fname_for_anchor = NULL;
+ 
+   if (arg == END)
+     {
+       /* We want to ignore whitespace following @anchor a la
+          texinfo.tex, but we're sitting at the }.  So advance past it,
+          ignore the whitespace, and then go back one character.  When we
+          return, reader_loop will increment input_text_offset again (see
+          the '}' case).  Sorry.  */
+       input_text_offset++;
+       skip_whitespace_and_newlines ();
+       input_text_offset--;
+       return;
+     }
+ 
+   /* Parse the anchor text.  */
+   anchor = get_xref_token (1);
+ 
+   /* Force all versions of "top" to be "Top". */
+   normalize_node_name (anchor);
+ 
+   /* In HTML mode, need to actually produce some output.  */
+   if (html)
+     {
+       /* If this anchor is at the beginning of a new paragraph, make
+ 	 sure a new paragraph is indeed started.  */
+       if (!paragraph_is_open)
+ 	{
+ 	  if (!executing_string && html)
+ 	    output_head ();
+ 	  start_paragraph ();
+ 	  if (!in_fixed_width_font || in_menu || in_detailmenu)
+ 	    {
+ 	      insert_string ("<p>");
+ 	      in_paragraph = 1;
+ 	    }
+ 	}
+       add_word ("<a name=\"");
+       add_anchor_name (anchor, 0);
+       add_word ("\"></a>");
+       if (splitting)
+ 	{
+ 	  /* If we are splitting, cm_xref will produce a reference to
+ 	     a file whose name is derived from the anchor name.  So we
+ 	     must create a file when we see an @anchor, otherwise
+ 	     xref's to anchors won't work.  The file we create simply
+ 	     redirects to the file of this anchor's node.  */
+ 	  TAG_ENTRY *tag;
+ 
+ 	  fname_for_anchor = nodename_to_filename (anchor);
+ 	  /* See if the anchor name converted to a file name clashes
+ 	     with other anchors or nodes.  */
+ 	  tag = find_node_by_fname (fname_for_anchor);
+ 	  if (tag)
+ 	    {
+ 	      if ((tag->flags & TAG_FLAG_ANCHOR) != 0)
+ 		line_error (_("Anchors `%s' and `%s' map to the same file name"),
+ 			    anchor, tag->node);
+ 	      else
+ 		line_error (_("Anchor `%s' and node `%s' map to the same file name"),
+ 			    anchor, tag->node);
+ 	      line_error (_("@anchor command ignored; references to it will not work"));
+ 	      line_error (_("Rename this anchor or use the `--no-split' option"));
+ 	      free (fname_for_anchor);
+ 	      /* We will not be creating a file for this anchor, so
+ 		 set its name to NULL, so that remember_node stores a
+ 		 NULL and find_node_by_fname won't consider this
+ 		 anchor for clashes.  */
+ 	      fname_for_anchor = NULL;
+ 	    }
+ 	  else
+ 	    {
+ 	      char *dirname, *p;
+ 	      char filename[PATH_MAX];
+ 	      FILE *anchor_stream;
+ 
+ 	      dirname = pathname_part (current_output_filename);
+ 	      strcpy (filename, dirname);
+ 	      strcat (filename, fname_for_anchor);
+ 	      free (dirname);
+ 
+ 	      anchor_stream = fopen (filename, "w");
+ 	      if (anchor_stream == NULL)
+ 		{
+ 		  fs_error (filename);
+ 		  xexit (1);
+ 		}
+ 	      /* The HTML magic below will cause the browser to
+ 		 immediately go to the anchor's node's file.  Lynx
+ 		 seems not to support this redirection, but it looks
+ 		 like a bug in Lynx, and they can work around it by
+ 		 clicking on the link once more.  */
+ 	      fputs ("<meta http-equiv=\"refresh\" content=\"0; url=",
+ 		     anchor_stream);
+ 	      /* Make the indirect link point to the current node's
+ 		 file and anchor's "<a name" label.  If we don't have
+ 		 a valid node name, refer to the current output file
+ 		 instead.  */
+ 	      if (current_node && *current_node)
+ 		{
+ 		  char *fn, *tem;
+ 
+ 		  tem = expand_node_name (current_node);
+ 		  fn = nodename_to_filename (tem);
+ 		  free (tem);
+ 		  fputs (fn, anchor_stream);
+ 		  free (fn);
+ 		}
+ 	      else
+ 		{
+ 		  char *base = filename_part (current_output_filename);
+ 
+ 		  fputs (base, anchor_stream);
+ 		  free (base);
+ 		}
+ 	      fputs ("#", anchor_stream);
+ 	      for (p = anchor; *p; p++)
+ 		{
+ 		  if (*p == '&')
+ 		    fputs ("&amp;", anchor_stream);
+ 		  else if (!URL_SAFE_CHAR (*p))
+ 		    fprintf (anchor_stream, "%%%x", (unsigned char) *p);
+ 		  else
+ 		    fputc (*p, anchor_stream);
+ 		}
+ 	      fputs ("\">\n", anchor_stream);
+ 	      fclose (anchor_stream);
+ 	    }
+ 	}
+     }
+   else if (xml || docbook)
+     {
+       xml_insert_element_with_attribute (ANCHOR, START,
+ 					 docbook ? "id=\"%s\"" : "name=\"%s\"",
+ 					 anchor);
+       xml_insert_element (ANCHOR, END);
+     }
+ 
+   /* Save it in the tag table.  */
+   remember_node (anchor, NULL, NULL, NULL,
+                  output_position + output_paragraph_offset,
+                  line_number, fname_for_anchor, TAG_FLAG_ANCHOR);
+ }
+ 
+ /* Find NODE in REF_LIST. */
+ static NODE_REF *
+ find_node_reference (char *node, NODE_REF *ref_list)
+ {
+   NODE_REF *orig_ref_list = ref_list;
+   char *expanded_node;
+ 
+   while (ref_list)
+     {
+       if (strcmp (node, ref_list->node) == 0)
+         break;
+       ref_list = ref_list->next;
+     }
+ 
+   if (ref_list || !expensive_validation)
+     return ref_list;
+ 
+   /* Maybe NODE is not expanded yet.  This may be SLOW.  */
+   expanded_node = expand_node_name (node);
+   for (ref_list = orig_ref_list; ref_list; ref_list = ref_list->next)
+     {
+       if (STREQ (expanded_node, ref_list->node))
+         break;
+       if (strchr (ref_list->node, COMMAND_PREFIX))
+         {
+           char *expanded_ref = expand_node_name (ref_list->node);
+ 
+           if (STREQ (expanded_node, expanded_ref))
+             {
+               free (expanded_ref);
+               break;
+             }
+           free (expanded_ref);
+         }
+     }
+   free (expanded_node);
+   return ref_list;
+ }
+ 
+ void
+ free_node_references (void)
+ {
+   NODE_REF *list, *temp;
+ 
+   list = node_references;
+ 
+   while (list)
+     {
+       temp = list;
+       free (list->node);
+       free (list->containing_node);
+       list = list->next;
+       free (temp);
+     }
+   node_references = NULL;
+ }
+ 
+ void
+ free_node_node_references (void)
+ {
+   NODE_REF *list, *temp;
+ 
+   list = node_references;
+ 
+   while (list)
+     {
+       temp = list;
+       free (list->node);
+       list = list->next;
+       free (temp);
+     }
+   node_node_references = NULL;
+ }
+ 
+ /* Return the number assigned to a named node in either the tag_table
+    or node_references list or zero if no number has been assigned. */
+ int
+ number_of_node (char *node)
+ {
+   NODE_REF *temp_ref;
+   TAG_ENTRY *temp_node = find_node (node);
+ 
+   if (temp_node)
+     return temp_node->number;
+   else if ((temp_ref = find_node_reference (node, node_references)))
+     return temp_ref->number;
+   else if ((temp_ref = find_node_reference (node, node_node_references)))
+     return temp_ref->number;
+   else
+     return 0;
+ }
+ 
+ /* validation */
+ 
+ /* Return 1 if TAG (at LINE) correctly validated, or 0 if not.
+    LABEL is the (translated) description of the type of reference --
+    Menu, Cross, Next, etc.  */
+ 
+ static int
+ validate (char *tag, int line, const char *label)
+ {
+   TAG_ENTRY *result;
+ 
+   /* If there isn't a tag to verify, or if the tag is in another file,
+      then it must be okay. */
+   if (!tag || !*tag || *tag == '(')
+     return 1;
+ 
+   /* Otherwise, the tag must exist. */
+   result = find_node (tag);
+ 
+   if (!result)
+     {
+       line_number = line;
+       line_error (_("%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"), label, tag);
+       return 0;
+     }
+   result->touched++;
+   return 1;
+ }
+ 
+ /* The strings here are followed in the message by `reference to...' in
+    the `validate' routine.  They are only used in messages, thus are
+    translated.  */
+ static const char *
+ reftype_type_string (enum reftype type)
+ {
+   switch (type)
+     {
+     case menu_reference:
+       return gdt("Menu");
+     case followed_reference:
+       return gdt("Cross");
+     default:
+       return "Internal-bad-reference-type";
+     }
+ }
+ 
+ static void
+ validate_other_references (NODE_REF *ref_list)
+ {
+   char *old_input_filename = input_filename;
+ 
+   while (ref_list)
+     {
+       input_filename = ref_list->filename;
+       validate (ref_list->node, ref_list->line_no,
+                 reftype_type_string (ref_list->type));
+       ref_list = ref_list->next;
+     }
+   input_filename = old_input_filename;
+ }
+ 
+ /* Validation of an info file.
+    Scan through the list of tag entries touching the Prev, Next, and Up
+    elements of each.  It is an error not to be able to touch one of them,
+    except in the case of external node references, such as "(DIR)".
+ 
+    If the Prev is different from the Up,
+    then the Prev node must have a Next pointing at this node.
+ 
+    Every node except Top must have an Up.
+    The Up node must contain some sort of reference, other than a Next,
+    to this node.
+ 
+    If the Next is different from the Next of the Up,
+    then the Next node must have a Prev pointing at this node. */
+ void
+ validate_file (TAG_ENTRY *tag_table)
+ {
+   char *old_input_filename = input_filename;
+   TAG_ENTRY *tags = tag_table;
+ 
+   while (tags)
+     {
+       TAG_ENTRY *temp_tag;
+       char *tem1, *tem2;
+ 
+       input_filename = tags->filename;
+       line_number = tags->line_no;
+ 
+       /* If this is a "no warn" node, don't validate it in any way. */
+       if (tags->flags & TAG_FLAG_NO_WARN)
+         {
+           tags = tags->next_ent;
+           continue;
+         }
+ 
+       /* If this node has a Next, then make sure that the Next exists. */
+       if (tags->next)
+         {
+           validate (tags->next, tags->line_no, gdt("Next"));
+ 
+           /* If the Next node exists, and there is no Up, then make sure
+              that the Prev of the Next points back.  But do nothing if
+              we aren't supposed to issue warnings about this node. */
+           temp_tag = find_node (tags->next);
+           if (temp_tag && !(temp_tag->flags & TAG_FLAG_NO_WARN))
+             {
+               char *prev = temp_tag->prev;
+               int you_lose = !prev || !STREQ (prev, tags->node);
+ 
+               if (you_lose && expensive_validation)
+                 {
+                   tem1 = expand_node_name (prev);
+                   tem2 = expand_node_name (tags->node);
+ 
+                   if (tem1 && tem2 && STREQ (tem1, tem2))
+                     you_lose = 0;
+                   free (tem1);
+                   free (tem2);
+                 }
+               if (you_lose)
+                 {
+                   line_error (_("Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"),
+                               tags->node);
+                   file_line_error (temp_tag->filename, temp_tag->line_no,
+ 				   _("This node (%s) has the bad Prev"),
+ 				   temp_tag->node);
+                   temp_tag->flags |= TAG_FLAG_PREV_ERROR;
+                 }
+             }
+         }
+ 
+       /* Validate the Prev field if there is one, and we haven't already
+          complained about it in some way.  You don't have to have a Prev
+          field at this stage. */
+       if (!(tags->flags & TAG_FLAG_PREV_ERROR) && tags->prev)
+         {
+           int valid_p = validate (tags->prev, tags->line_no, gdt("Prev"));
+ 
+           if (!valid_p)
+             tags->flags |= TAG_FLAG_PREV_ERROR;
+           else
+             { /* If the Prev field is not the same as the Up field,
+                  then the node pointed to by the Prev field must have
+                  a Next field which points to this node. */
+               int prev_equals_up = !tags->up || STREQ (tags->prev, tags->up);
+ 
+               if (!prev_equals_up && expensive_validation)
+                 {
+                   tem1 = expand_node_name (tags->prev);
+                   tem2 = expand_node_name (tags->up);
+                   prev_equals_up = STREQ (tem1, tem2);
+                   free (tem1);
+                   free (tem2);
+                 }
+               if (!prev_equals_up)
+                 {
+                   temp_tag = find_node (tags->prev);
+ 
+                   /* If we aren't supposed to issue warnings about the
+                      target node, do nothing. */
+                   if (!temp_tag || (temp_tag->flags & TAG_FLAG_NO_WARN))
+                     /* Do nothing. */ ;
+                   else
+                     {
+                       int you_lose = !temp_tag->next
+                         || !STREQ (temp_tag->next, tags->node);
+ 
+                       if (temp_tag->next && you_lose && expensive_validation)
+                         {
+                           tem1 = expand_node_name (temp_tag->next);
+                           tem2 = expand_node_name (tags->node);
+                           if (STREQ (tem1, tem2))
+                             you_lose = 0;
+                           free (tem1);
+                           free (tem2);
+                         }
+                       if (you_lose)
+                         {
+                           line_error
+                             (_("Prev field of node `%s' not pointed to"),
+                              tags->node);
+                           file_line_error (temp_tag->filename,
+ 					   temp_tag->line_no,
+ 					   _("This node (%s) has the bad Next"),
+ 					   temp_tag->node);
+                           temp_tag->flags |= TAG_FLAG_NEXT_ERROR;
+                         }
+                     }
+                 }
+             }
+         }
+ 
+       if (!tags->up
+           && !(tags->flags & TAG_FLAG_ANCHOR)
+           && mbscasecmp (tags->node, "Top") != 0)
+         line_error (_("`%s' has no Up field (perhaps incorrect sectioning?)"), tags->node);
+       else if (tags->up)
+         {
+           int valid_p = validate (tags->up, tags->line_no, gdt("Up"));
+ 
+           /* If node X has Up: Y, then warn if Y fails to have a menu item
+              or note pointing at X, if Y isn't of the form "(Y)". */
+           if (valid_p && *tags->up != '(')
+             {
+               NODE_REF *nref;
+               NODE_REF *tref = NULL;
+               NODE_REF *list = node_references;
+ 
+               for (;;)
+                 {
+                   nref = find_node_reference (tags->node, list);
+                   if (!nref)
+                     break;
+ 
+                   if (strcmp (nref->containing_node, tags->up) == 0)
+                     {
+                       if (nref->type != menu_reference)
+                         {
+                           tref = nref;
+                           list = nref->next;
+                         }
+                       else
+                         break;
+                     }
+                   list = nref->next;
+                 }
+ 
+               if (!nref)
+                 {
+ 		  if (!tref && expensive_validation)
+ 		    {
+ 		      /* Sigh...  This might be AWFULLY slow, but if
+ 		         they want this feature, they'll have to pay!
+ 		         We do all the loop again expanding each
+ 		         containing_node reference as we go.  */
+ 		      char *tags_up = expand_node_name (tags->up);
+ 		      char *tem;
+ 
+ 		      list = node_references;
+ 
+ 		      for (;;)
+ 			{
+ 			  nref = find_node_reference (tags->node, list);
+ 			  if (!nref)
+ 			    break;
+ 			  tem = expand_node_name (nref->containing_node);
+ 			  if (STREQ (tem, tags_up))
+ 			    {
+ 			      if (nref->type != menu_reference)
+ 				tref = nref;
+ 			      else
+ 				{
+ 				  free (tem);
+ 				  break;
+ 				}
+ 			    }
+ 			  free (tem);
+ 			  list = nref->next;
+ 			}
+ 		    }
+                   if (!nref && !tref)
+                     {
+                       temp_tag = find_node (tags->up);
+                       file_line_error (temp_tag->filename, temp_tag->line_no,
+            _("Node `%s' lacks menu item for `%s' despite being its Up target"),
+                                   tags->up, tags->node);
+                     }
+                 }
+             }
+         }
+       tags = tags->next_ent;
+     }
+ 
+   validate_other_references (node_references);
+   /* We have told the user about the references which didn't exist.
+      Now tell him about the nodes which aren't referenced. */
+ 
+   for (tags = tag_table; tags; tags = tags->next_ent)
+     {
+       /* If this node is a "no warn" node, do nothing. */
+       if (tags->flags & TAG_FLAG_NO_WARN)
+         {
+           tags = tags->next_ent;
+           continue;
+         }
+ 
+       if (tags->touched == 0)
+         {
+           input_filename = tags->filename;
+           line_number = tags->line_no;
+ 
+           /* Notice that the node "Top" is special, and doesn't have to
+              be referenced.   Anchors don't have to be referenced
+              either, you might define them for another document.  */
+           if (mbscasecmp (tags->node, "Top") != 0
+               && !(tags->flags & TAG_FLAG_ANCHOR))
+             warning (_("unreferenced node `%s'"), tags->node);
+         }
+     }
+   input_filename = old_input_filename;
+ }
+ 
+ 
+ /* Splitting */
+ 
+ /* Return true if the tag entry pointed to by TAGS is the last node.
+    This means only anchors follow.  */
+ 
+ static int
+ last_node_p (TAG_ENTRY *tags)
+ {
+   int last = 1;
+   while (tags->next_ent) {
+     tags = tags->next_ent;
+     if (tags->flags & TAG_FLAG_ANCHOR)
+       ;
+     else
+       {
+         last = 0;
+         break;
+       }
+   }
+ 
+   return last;
+ }
+ 
+ 
+ static char *
+ enumerate_filename (char *pathname, char *basename, int number)
+ {
+   /* Do we need to generate names of subfiles which don't exceed 8+3 limits? */
+   const int dos_file_names = !HAVE_LONG_FILENAMES (pathname ? pathname : ".");
+   unsigned name_len = strlen (basename);
+   char *filename = xmalloc (10 + strlen (pathname) + name_len);
+   char *base_filename = xmalloc (10 + name_len);
+ 
+   sprintf (base_filename, "%s-%d", basename, number);
+ 
+   if (dos_file_names)
+     {
+       char *dot = strchr (base_filename, '.');
+       unsigned base_len = strlen (base_filename);
+ 
+       if (dot)
+         { /* Make foobar.i1, .., foobar.i99, foobar.100, ... */
+           dot[1] = 'i';
+           memmove (number <= 99 ? dot + 2 : dot + 1,
+               base_filename + name_len + 1,
+               strlen (base_filename + name_len + 1) + 1);
+         }
+       else if (base_len > 8)
+         {
+           /* Make foobar-1, .., fooba-10, .., foob-100, ... */
+           unsigned numlen = base_len - name_len;
+ 
+           memmove (base_filename + 8 - numlen, base_filename + name_len, numlen + 1);
+         }
+     }
+ 
+   sprintf (filename, "%s%s", pathname, base_filename);
+ 
+   return filename;
+ }
+ 
+ /* Remove previously split files, to avoid
+    lingering parts of shrinked documents.  */
+ void
+ clean_old_split_files (char *filename)
+ {
+   char *root_filename = filename_part (filename);
+   char *root_pathname = pathname_part (filename);
+   int i;
+ 
+   /* We break as soon as we hit an inexistent file,
+      so looping until large numbers is harmless.  */
+   for (i = 1; i < 1000; i++)
+     {
+       struct stat st;
+       char *check_file = enumerate_filename (root_pathname, root_filename, i);
+ 
+       if (stat (check_file, &st) != 0)
+         break;
+       else if (!S_ISDIR (st.st_mode))
+         {
+           /* Give feedback if requested, removing a file is important.  */
+           if (verbose_mode)
+             printf (_("Removing %s\n"), check_file);
+ 
+           /* Warn user that we cannot remove the file.  */
+           if (unlink (check_file) != 0)
+             warning (_("Can't remove file `%s': %s"), check_file, strerror (errno));
+         }
+ 
+       free (check_file);
+     }
+ }
+ 
+ 
+ /* Split large output files into a series of smaller files.  Each file
+    is pointed to in the tag table, which then gets written out as the
+    original file.  The new files have the same name as the original file
+    with a "-num" attached.  SIZE is the largest number of bytes to allow
+    in any single split file. */
+ void
+ split_file (char *filename, int size)
+ {
+   char *root_filename, *root_pathname;
+   char *the_file;
+   struct stat fileinfo;
+   long file_size;
+   char *the_header;
+   int header_size;
+ 
+   /* Can only do this to files with tag tables. */
+   if (!tag_table)
+     return;
+ 
+   if (size == 0)
+     size = DEFAULT_SPLIT_SIZE;
+ 
+   if ((stat (filename, &fileinfo) != 0)
+       || (((long) fileinfo.st_size) < size))
+     return;
+   file_size = (long) fileinfo.st_size;
+ 
+   the_file = find_and_load (filename, 0);
+   if (!the_file)
+     return;
+ 
+   root_filename = filename_part (filename);
+   root_pathname = pathname_part (filename);
+ 
+   if (!root_pathname)
+     root_pathname = xstrdup ("");
+ 
+   /* Start splitting the file.  Walk along the tag table
+      outputting sections of the file.  When we have written
+      all of the nodes in the tag table, make the top-level
+      pointer file, which contains indirect pointers and
+      tags for the nodes. */
+   {
+     int which_file = 1;
+     TAG_ENTRY *tags = tag_table;
+     char *indirect_info = NULL;
+ 
+     /* Maybe we want a Local Variables section.  */
+     char *trailer = info_trailer ();
+     int trailer_len = trailer ? strlen (trailer) : 0;
+ 
+     /* Remember the `header' of this file.  The first tag in the file is
+        the bottom of the header; the top of the file is the start. */
+     the_header = xmalloc (1 + (header_size = tags->position));
+     memcpy (the_header, the_file, header_size);
+ 
+     while (tags)
+       {
+         int file_top, file_bot, limit;
+ 
+         /* Have to include the Control-_. */
+         file_top = file_bot = tags->position;
+         limit = file_top + size;
+ 
+         /* If the rest of this file is only one node, then
+            that is the entire subfile. */
+         if (last_node_p (tags))
+           {
+             int i = tags->position + 1;
+             char last_char = the_file[i];
+ 
+             while (i < file_size)
+               {
+                 if ((the_file[i] == '\037') &&
+                     ((last_char == '\n') ||
+                      (last_char == '\014')))
+                   break;
+                 else
+                   last_char = the_file[i];
+                 i++;
+               }
+             file_bot = i;
+             tags = tags->next_ent;
+             goto write_region;
+           }
+ 
+         /* Otherwise, find the largest number of nodes that can fit in
+            this subfile. */
+         for (; tags; tags = tags->next_ent)
+           {
+             if (last_node_p (tags))
+               {
+                 /* This entry is the last node.  Search forward for the end
+                    of this node, and that is the end of this file. */
+                 int i = tags->position + 1;
+                 char last_char = the_file[i];
+ 
+                 while (i < file_size)
+                   {
+                     if ((the_file[i] == '\037') &&
+                         ((last_char == '\n') ||
+                          (last_char == '\014')))
+                       break;
+                     else
+                       last_char = the_file[i];
+                     i++;
+                   }
+                 file_bot = i;
+ 
+                 if (file_bot < limit)
+                   {
+                     tags = tags->next_ent;
+                     goto write_region;
+                   }
+                 else
+                   {
+                     /* Here we want to write out everything before the last
+                        node, and then write the last node out in a file
+                        by itself. */
+                     file_bot = tags->position;
+                     goto write_region;
+                   }
+               }
+ 
+             /* Write region only if this was a node, not an anchor.  */
+             if (tags->next_ent->position > limit
+                 && !(tags->flags & TAG_FLAG_ANCHOR))
+               {
+                 if (tags->position == file_top)
+                   tags = tags->next_ent;
+ 
+                 file_bot = tags->position;
+ 
+               write_region:
+                 {
+                   int fd;
+                   char *split_filename = enumerate_filename (root_pathname,
+                       root_filename, which_file);
+                   char *split_basename = filename_part (split_filename);
+ 
+                   fd = open (split_filename, O_WRONLY|O_TRUNC|O_CREAT, 0666);
+                   if (fd < 0
+                       || write (fd, the_header, header_size) != header_size
+                       || write (fd, the_file + file_top, file_bot - file_top)
+                          != (file_bot - file_top)
+                       || (trailer_len
+                           && write (fd, trailer, trailer_len) != trailer_len)
+                       || close (fd) < 0)
+                     {
+                       perror (split_filename);
+                       if (fd != -1)
+                         close (fd);
+                       xexit (1);
+                     }
+ 
+                   if (!indirect_info)
+                     {
+                       indirect_info = the_file + file_top;
+                       sprintf (indirect_info, "\037\nIndirect:\n");
+                       indirect_info += strlen (indirect_info);
+                     }
+ 
+                   sprintf (indirect_info, "%s: %d\n",
+                            split_basename, file_top);
+ 
+                   free (split_basename);
+                   free (split_filename);
+                   indirect_info += strlen (indirect_info);
+                   which_file++;
+                   break;
+                 }
+               }
+           }
+       }
+ 
+     /* We have sucessfully created the subfiles.  Now write out the
+        original again.  We must use `output_stream', or
+        write_tag_table_indirect () won't know where to place the output. */
+     output_stream = fopen (filename, "w");
+     if (!output_stream)
+       {
+         perror (filename);
+         xexit (1);
+       }
+ 
+     {
+       int distance = indirect_info - the_file;
+       fwrite (the_file, 1, distance, output_stream);
+ 
+       /* Inhibit newlines. */
+       paragraph_is_open = 0;
+ 
+       /* Write the indirect tag table.  */
+       write_tag_table_indirect ();
+ 
+       /* preserve local variables in info output.  */
+       if (trailer)
+         {
+           fwrite (trailer, 1, trailer_len, output_stream);
+           free (trailer);
+         }
+ 
+       fclose (output_stream);
+       free (the_header);
+       free (the_file);
+       return;
+     }
+   }
+ }
diff -Nrc2 texinfo-4.12/makeinfo/node.h texinfo-4.13/makeinfo/node.h
*** texinfo-4.12/makeinfo/node.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/node.h	Sun Jul  1 14:20:33 2007
***************
*** 0 ****
--- 1,129 ----
+ /* node.h -- declarations for Node.
+    $Id: node.h,v 1.5 2007/07/01 21:20:33 karl Exp $
+ 
+    Copyright (C) 1996, 1997, 1998, 1999, 2002, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Brian Fox (bfox@ai.mit.edu). */
+ 
+ #ifndef NODE_H
+ #define NODE_H
+ 
+ #include "xref.h"
+ 
+ /* The various references that we know about. */
+ /* What we remember for each node. */
+ typedef struct tentry
+ {
+   struct tentry *next_ent;
+   char *node;           /* Name of this node. */
+   char *prev;           /* Name of "Prev:" for this node. */
+   char *next;           /* Name of "Next:" for this node. */
+   char *up;             /* Name of "Up:" for this node.   */
+   int position;         /* Output file position of this node. */
+   int line_no;          /* Defining line in source file. */
+   char *filename;       /* The file that this node was found in. */
+   int touched;          /* Nonzero means this node has been referenced. */
+   int flags;
+   int number;           /* Number for this node, relevant for HTML
+                            splitting -- from use+define order, not just
+                            define. */
+   int order;            /* The order of the tag, starting from zero.  */
+   char *html_fname;	/* The HTML file to which this node is written
+ 			   (non-NULL only for HTML splitting).  */
+ } TAG_ENTRY;
+ 
+ /* If node-a has a "Next" for node-b, but node-b has no "Prev" for node-a,
+    we turn on this flag bit in node-b's tag entry.  This means that when
+    it is time to validate node-b, we don't report an additional error
+    if there was no "Prev" field. */
+ #define TAG_FLAG_PREV_ERROR  1
+ #define TAG_FLAG_NEXT_ERROR  2
+ #define TAG_FLAG_UP_ERROR    4
+ #define TAG_FLAG_NO_WARN     8
+ #define TAG_FLAG_IS_TOP     16
+ #define TAG_FLAG_ANCHOR     32
+ 
+ /* Menu reference, *note reference, and validation hacking. */
+ 
+ /* A structure to remember references with.  A reference to a node is
+    either an entry in a menu, or a cross-reference made with [px]ref. */
+ typedef struct node_ref
+ {
+   struct node_ref *next;
+   char *node;                   /* Name of node referred to. */
+   char *containing_node;        /* Name of node containing this reference. */
+   int line_no;                  /* Line number where the reference occurs. */
+   int section;                  /* Section level where the reference occurs. */
+   char *filename;               /* Name of file where the reference occurs. */
+   enum reftype type;            /* Type of reference, either menu or note. */
+   int number;                   /* Number for this node, relevant for
+                                    HTML splitting -- from use+define
+                                    order, not just define. */
+ } NODE_REF;
+ 
+ /* The linked list of such structures. */
+ extern NODE_REF *node_references;
+ 
+ /* A similar list for references occuring in @node next
+    and similar references, needed for HTML. */
+ extern NODE_REF *node_node_references;
+ 
+ /* List of all nodes.  */
+ extern TAG_ENTRY *tag_table;
+ 
+ /* Counter for setting node_ref.number; zero is Top. */
+ extern int node_number;
+ 
+ /* Node order counter.  */
+ extern int node_order;
+ 
+ /* The current node's section level. */
+ extern int current_section;
+ 
+ /* Nonzero when the next sectioning command should generate an anchor
+    corresponding to the current node in HTML mode. */
+ extern int outstanding_node;
+ 
+ extern TAG_ENTRY *find_node (char *name);
+ 
+ /* A search string which is used to find a line defining a node. */
+ DECLARE (char *, node_search_string, "\n@node ");
+ 
+ /* Extract node name from a menu item. */
+ extern char *glean_node_from_menu (int remember_ref, enum reftype ref_type);
+ 
+ /* Remember a node for later validation.  */
+ extern void remember_node_reference (char *node, int line, enum reftype type);
+ 
+ /* Remember the name of the current output file.  */
+ extern void set_current_output_filename (const char *fname);
+ 
+ /* Expand macros and commands in the node name and canonicalize
+    whitespace in the resulting expansion.  */
+ extern char *expand_node_name (char *node);
+ 
+ extern int number_of_node (char *node);
+ 
+ extern void init_tag_table (void);
+ extern void write_tag_table (char *filename);
+ extern void free_node_references (void);
+ extern void free_node_node_references (void);
+ extern void validate_file (TAG_ENTRY *tag_table);
+ extern void split_file (char *filename, int size);
+ extern void clean_old_split_files (char *filename);
+ 
+ #endif /* NODE_H */
diff -Nrc2 texinfo-4.12/makeinfo/sectioning.c texinfo-4.13/makeinfo/sectioning.c
*** texinfo-4.12/makeinfo/sectioning.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/sectioning.c	Sun Jul  1 14:20:33 2007
***************
*** 0 ****
--- 1,832 ----
+ /* sectioning.c -- for @chapter, @section, ..., @contents ...
+    $Id: sectioning.c,v 1.29 2007/07/01 21:20:33 karl Exp $
+ 
+    Copyright (C) 1999, 2001, 2002, 2003, 2004, 2007
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Karl Heinz Marbaise <kama@hippo.fido.de>.  */
+ 
+ #include "system.h"
+ #include "cmds.h"
+ #include "macro.h"
+ #include "makeinfo.h"
+ #include "node.h"
+ #include "toc.h"
+ #include "sectioning.h"
+ #include "xml.h"
+ 
+ /* See comment in sectioning.h.  */
+ section_alist_type section_alist[] = {
+   { "unnumberedsubsubsec", 5, ENUM_SECT_NO,  TOC_YES },
+   { "unnumberedsubsec",    4, ENUM_SECT_NO,  TOC_YES },
+   { "unnumberedsec",       3, ENUM_SECT_NO,  TOC_YES },
+   { "unnumbered",          2, ENUM_SECT_NO,  TOC_YES },
+   { "centerchap",          2, ENUM_SECT_NO,  TOC_YES },
+ 
+   { "appendixsubsubsec",   5, ENUM_SECT_APP, TOC_YES },  /* numbered like A.X.X.X */
+   { "appendixsubsec",      4, ENUM_SECT_APP, TOC_YES },
+   { "appendixsec",         3, ENUM_SECT_APP, TOC_YES },
+   { "appendixsection",     3, ENUM_SECT_APP, TOC_YES },
+   { "appendix",            2, ENUM_SECT_APP, TOC_YES },
+ 
+   { "subsubsec",           5, ENUM_SECT_YES, TOC_YES },
+   { "subsubsection",       5, ENUM_SECT_YES, TOC_YES },
+   { "subsection",          4, ENUM_SECT_YES, TOC_YES },
+   { "section",             3, ENUM_SECT_YES, TOC_YES },
+   { "chapter",             2, ENUM_SECT_YES, TOC_YES },
+ 
+   { "subsubheading",       5, ENUM_SECT_NO,  TOC_NO },
+   { "subheading",          4, ENUM_SECT_NO,  TOC_NO },
+   { "heading",             3, ENUM_SECT_NO,  TOC_NO },
+   { "chapheading",         2, ENUM_SECT_NO,  TOC_NO },
+   { "majorheading",        2, ENUM_SECT_NO,  TOC_NO },
+ 
+   { "top",                 1, ENUM_SECT_NO,  TOC_YES },
+   { NULL,                  0, 0, 0 }
+ };
+ 
+ /* The argument of @settitle, used for HTML. */
+ char *title = NULL;
+ 
+ 
+ #define APPENDIX_MAGIC   1024
+ #define UNNUMBERED_MAGIC 2048
+ 
+ /* Number memory for every level @chapter, @section,
+    @subsection, @subsubsection. */
+ static int numbers [] = { 0, 0, 0, 0 };
+ 
+ /* enum_marker == APPENDIX_MAGIC then we are counting appendencies
+    enum_marker == UNNUMBERED_MAGIC then we are within unnumbered area.
+    Handling situations like this:
+    @unnumbered ..
+    @section ...   */
+ static int enum_marker = 0;
+ 
+ /* Organized by level commands.  That is, "*" == chapter, "=" == section. */
+ static char *scoring_characters = "*=-.";
+ 
+ /* Amount to offset the name of sectioning commands to levels by. */
+ static int section_alist_offset = 0;
+ 
+ /* These two variables are for @float, @cindex like commands that need to know
+    in which section they are used.  */
+ /* Last value returned by get_sectioning_number.  */
+ static char *last_sectioning_number = "";
+ /* Last title used by sectioning_underscore, etc.  */
+ static char *last_sectioning_title = "";
+ 
+ /* num == ENUM_SECT_NO  means unnumbered (should never call this)
+    num == ENUM_SECT_YES means numbered
+    num == ENUM_SECT_APP means numbered like A.1 and so on */
+ static char *
+ get_sectioning_number (int level, int num)
+ {
+   static char s[100]; /* should ever be enough for 99.99.99.99
+                          Appendix A.1 */
+ 
+   char *p;
+   int i;
+ 
+   s[0] = 0;
+ 
+   /* create enumeration in front of chapter, section, subsection and so on. */
+   for (i = 0; i < level; i++)
+     {
+       p = s + strlen (s);
+       if ((i == 0) && (enum_marker == APPENDIX_MAGIC))
+         sprintf (p, "%c.", numbers[i] + 64); /* Should be changed to
+                                                 be more portable */
+       else
+         sprintf (p, "%d.", numbers[i]);
+     }
+ 
+   /* the last number is never followed by a dot */
+   p = s + strlen (s);
+   if ((num == ENUM_SECT_APP)
+       && (i == 0)
+       && (enum_marker == APPENDIX_MAGIC))
+     sprintf (p, _("Appendix %c"), numbers[i] + 64);
+   else
+     sprintf (p, "%d", numbers[i]);
+ 
+   /* Poor man's cache :-)  */
+   if (strlen (last_sectioning_number))
+     free (last_sectioning_number);
+   last_sectioning_number = xstrdup (s);
+ 
+   return s;
+ }
+ 
+ 
+ /* Set the level of @top to LEVEL.  Return the old level of @top. */
+ int
+ set_top_section_level (int level)
+ {
+   int i, result = -1;
+ 
+   for (i = 0; section_alist[i].name; i++)
+     if (strcmp (section_alist[i].name, "top") == 0)
+       {
+         result = section_alist[i].level;
+         section_alist[i].level = level;
+         break;
+       }
+   return result;
+ }
+ 
+ 
+ /* return the index of the given sectioning command in section_alist */
+ static int
+ search_sectioning (char *text)
+ {
+   int i;
+   char *t;
+ 
+   /* ignore the optional command prefix */
+   if (text[0] == COMMAND_PREFIX)
+     text++;
+ 
+   for (i = 0; (t = section_alist[i].name); i++)
+     {
+       if (strcmp (t, text) == 0)
+         {
+           return i;
+         }
+     }
+   return -1;
+ }
+ 
+ /* Return an integer which identifies the type of section present in
+    TEXT -- 1 for @top, 2 for chapters, ..., 5 for subsubsections (as
+    specified in section_alist).  We take into account any @lowersections
+    and @raisesections.  If SECNAME is non-NULL, also return the
+    corresponding section name.  */
+ int
+ what_section (char *text, char **secname)
+ {
+   int index, j;
+   char *temp;
+   int return_val;
+ 
+  find_section_command:
+   for (j = 0; text[j] && cr_or_whitespace (text[j]); j++);
+   if (text[j] != COMMAND_PREFIX)
+     return -1;
+ 
+   text = text + j + 1;
+ 
+   /* We skip @c, @comment, and @?index commands. */
+   if ((strncmp (text, "comment", strlen ("comment")) == 0) ||
+       (text[0] == 'c' && cr_or_whitespace (text[1])) ||
+       (strcmp (text + 1, "index") == 0))
+     {
+       while (*text++ != '\n');
+       goto find_section_command;
+     }
+ 
+   /* Handle italicized sectioning commands. */
+   if (*text == 'i')
+     text++;
+ 
+   for (j = 0; text[j] && !cr_or_whitespace (text[j]); j++);
+ 
+   temp = xmalloc (1 + j);
+   strncpy (temp, text, j);
+   temp[j] = 0;
+ 
+   index = search_sectioning (temp);
+   free (temp);
+   if (index >= 0)
+     {
+       return_val = section_alist[index].level + section_alist_offset;
+       if (return_val < 0)
+         return_val = 0;
+       else if (return_val > 5)
+         return_val = 5;
+ 
+       if (secname)
+         {
+           int i;
+           int alist_size = sizeof (section_alist) / sizeof(section_alist_type);
+           /* Find location of offset sectioning entry, but don't go off
+              either end of the array.  */
+           int index_offset = MAX (index - section_alist_offset, 0);
+           index_offset = MIN (index_offset, alist_size - 1);
+ 
+           /* Also make sure we don't go into the next "group" of
+              sectioning changes, e.g., change from an @appendix to an
+              @heading or some such.  */
+ #define SIGN(expr) ((expr) < 0 ? -1 : 1)
+           for (i = index; i != index_offset; i -= SIGN (section_alist_offset))
+             {
+               /* As it happens, each group has unique .num/.toc values.  */
+               if (section_alist[i].num != section_alist[index_offset].num
+                   || section_alist[i].toc != section_alist[index_offset].toc)
+                 break;
+             }
+           *secname = section_alist[i].name;
+         }
+       return return_val;
+     }
+   return -1;
+ }
+ 
+ /* Returns current top level division (ie. chapter, unnumbered) number.
+    - For chapters, returns the number.
+    - For unnumbered sections, returns empty string.
+    - For appendices, returns A, B, etc. */
+ char *
+ current_chapter_number (void)
+ {
+   if (enum_marker == UNNUMBERED_MAGIC)
+     return xstrdup ("");
+   else if (enum_marker == APPENDIX_MAGIC)
+     {
+       char s[1];
+       sprintf (s, "%c", numbers[0] + 64);
+       return xstrdup (s);
+     }
+   else
+     {
+       char s[5];
+       sprintf (s, "%d", numbers[0]);
+       return xstrdup (s);
+     }
+ }
+ 
+ /* Returns number of the last sectioning command used.  */
+ char *
+ current_sectioning_number (void)
+ {
+   if (enum_marker == UNNUMBERED_MAGIC || !number_sections)
+     return xstrdup ("");
+   else
+     return xstrdup (last_sectioning_number);
+ }
+ 
+ /* Returns arguments of the last sectioning command used.  */
+ char *
+ current_sectioning_name (void)
+ {
+   return xstrdup (last_sectioning_title);
+ }
+ 
+ /* insert_and_underscore, sectioning_underscore and sectioning_html call this.  */
+ 
+ static char *
+ handle_enum_increment (int level, int index)
+ {
+   /* Here is how TeX handles enumeration:
+      - Anything starting with @unnumbered is not enumerated.
+      - @majorheading and the like are not enumberated.  */
+   int i;
+ 
+   /* First constraint above.  */
+   if (enum_marker == UNNUMBERED_MAGIC && level == 0)
+     return xstrdup ("");
+ 
+   /* Second constraint.  */
+   if (section_alist[index].num == ENUM_SECT_NO)
+     return xstrdup ("");
+ 
+   /* reset all counters which are one level deeper */
+   for (i = level; i < 3; i++)
+     numbers [i + 1] = 0;
+ 
+   numbers[level]++;
+   if (section_alist[index].num == ENUM_SECT_NO || enum_marker == UNNUMBERED_MAGIC
+       || !number_sections)
+     return xstrdup ("");
+   else
+     return xstrdup (get_sectioning_number (level, section_alist[index].num));
+ }
+ 
+ 
+ void
+ sectioning_underscore (char *cmd)
+ {
+   char *temp, *secname;
+   int level;
+   
+   /* If we're not indenting the first paragraph, we shall make it behave
+      like @noindent is called directly after the section heading. */
+   if (! do_first_par_indent)
+     cm_noindent ();
+ 
+   temp = xmalloc (2 + strlen (cmd));
+   temp[0] = COMMAND_PREFIX;
+   strcpy (&temp[1], cmd);
+   level = what_section (temp, &secname);
+   level -= 2;
+   if (level < 0)
+     level = 0;
+   free (temp);
+ 
+   /* If the argument to @top is empty, we try using the one from @settitle.
+      Warn if both are unusable.  */
+   if (STREQ (command, "top"))
+     {
+       int save_input_text_offset = input_text_offset;
+ 
+       get_rest_of_line (0, &temp);
+ 
+       /* Due to get_rest_of_line ... */
+       line_number--;
+ 
+       if (strlen (temp) == 0 && (!title || strlen (title) == 0))
+         warning ("Must specify a title with least one of @settitle or @top");
+ 
+       input_text_offset = save_input_text_offset;
+     }
+ 
+   if (xml)
+     {
+       /* If the section appears in the toc, it means it's a real section
+ 	 unlike majorheading, chapheading etc. */
+       if (section_alist[search_sectioning (cmd)].toc == TOC_YES)
+ 	{
+ 	  xml_close_sections (level);
+ 	  /* Mark the beginning of the section
+ 	     If the next command is printindex, we will remove
+ 	     the section and put an Index instead */
+ 	  flush_output ();
+ 	  xml_last_section_output_position = output_paragraph_offset;
+ 
+ 	  get_rest_of_line (0, &temp);
+ 
+           /* Use @settitle value if @top parameter is empty.  */
+           if (STREQ (command, "top") && strlen(temp) == 0)
+             temp = xstrdup (title ? title : "");
+ 
+           /* Docbook does not support @unnumbered at all.  So we provide numbers
+              that other formats use.  @appendix seems to be fine though, so we let
+              Docbook handle that as usual.  */
+           if (docbook && enum_marker != APPENDIX_MAGIC)
+             {
+               if (section_alist[search_sectioning (cmd)].num == ENUM_SECT_NO
+                   && section_alist[search_sectioning (cmd)].toc == TOC_YES)
+                 xml_insert_element_with_attribute (xml_element (secname),
+                     START, "label=\"%s\" xreflabel=\"%s\"",
+                     handle_enum_increment (level, search_sectioning (cmd)),
+                     text_expansion (temp));
+               else
+                 xml_insert_element_with_attribute (xml_element (secname),
+                     START, "label=\"%s\"",
+                     handle_enum_increment (level, search_sectioning (cmd)));
+             }
+           else
+             xml_insert_element (xml_element (secname), START);
+ 
+ 	  xml_insert_element (TITLE, START);
+ 	  xml_open_section (level, secname);
+ 	  execute_string ("%s", temp);
+ 	  xml_insert_element (TITLE, END);
+ 
+ 	  free (temp);
+ 	}
+       else
+         {
+           if (docbook)
+             {
+               if (level > 0)
+                 xml_insert_element_with_attribute (xml_element (secname), START,
+                     "renderas=\"sect%d\"", level);
+               else
+                 xml_insert_element_with_attribute (xml_element (secname), START,
+                     "renderas=\"other\"");
+             }
+           else
+             xml_insert_element (xml_element (secname), START);
+ 
+           get_rest_of_line (0, &temp);
+           execute_string ("%s", temp);
+           free (temp);
+ 
+           xml_insert_element (xml_element (secname), END);
+         }
+     }
+   else if (html)
+     sectioning_html (level, secname);
+   else
+     insert_and_underscore (level, secname);
+ }
+ 
+ 
+ /* Insert the text following input_text_offset up to the end of the line
+    in a new, separate paragraph.  Directly underneath it, insert a
+    line of WITH_CHAR, the same length of the inserted text. */
+ void
+ insert_and_underscore (int level, char *cmd)
+ {
+   int i, len;
+   int index;
+   int old_no_indent;
+   unsigned char *starting_pos, *ending_pos;
+   char *temp;
+   char with_char = scoring_characters[level];
+ 
+   close_paragraph ();
+   filling_enabled =  indented_fill = 0;
+   old_no_indent = no_indent;
+   no_indent = 1;
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     append_to_expansion_output (input_text_offset + 1);
+ 
+   get_rest_of_line (0, &temp);
+ 
+   /* Use @settitle value if @top parameter is empty.  */
+   if (STREQ (command, "top") && strlen(temp) == 0)
+     temp = xstrdup (title ? title : "");
+ 
+   starting_pos = output_paragraph + output_paragraph_offset;
+ 
+   /* Poor man's cache for section title.  */
+   if (strlen (last_sectioning_title))
+     free (last_sectioning_title);
+   last_sectioning_title = xstrdup (temp);
+ 
+   index = search_sectioning (cmd);
+   if (index < 0)
+     {
+       /* should never happen, but a poor guy, named Murphy ... */
+       warning (_("Internal error (search_sectioning) `%s'!"), cmd);
+       return;
+     }
+ 
+   /* This is a bit tricky: we must produce "X.Y SECTION-NAME" in the
+      Info output and in TOC, but only SECTION-NAME in the macro-expanded
+      output.  */
+ 
+   /* Step 1: produce "X.Y" and add it to Info output.  */
+   add_word_args ("%s ", handle_enum_increment (level, index));
+ 
+   /* Step 2: add "SECTION-NAME" to both Info and macro-expanded output.  */
+   if (macro_expansion_output_stream && !executing_string)
+     {
+       char *temp1 = xmalloc (2 + strlen (temp));
+       sprintf (temp1, "%s\n", temp);
+       remember_itext (input_text, input_text_offset);
+       me_execute_string (temp1);
+       free (temp1);
+     }
+   else
+     execute_string ("%s\n", temp);
+ 
+   /* Step 3: pluck "X.Y SECTION-NAME" from the output buffer and
+      insert it into the TOC.  */
+   ending_pos = output_paragraph + output_paragraph_offset;
+   if (section_alist[index].toc == TOC_YES)
+     toc_add_entry (substring ((char *)starting_pos, (char *)ending_pos - 1),
+                    level, current_node, NULL);
+ 
+   free (temp);
+ 
+   len = (ending_pos - starting_pos) - 1;
+   for (i = 0; i < len; i++)
+     add_char (with_char);
+   insert ('\n');
+   close_paragraph ();
+   filling_enabled = 1;
+   no_indent = old_no_indent;
+ }
+ 
+ /* Insert the text following input_text_offset up to the end of the
+    line as an HTML heading element of the appropriate `level' and
+    tagged as an anchor for the current node.. */
+ 
+ void
+ sectioning_html (int level, char *cmd)
+ {
+   static int toc_ref_count = 0;
+   int index;
+   int old_no_indent;
+   unsigned char *starting_pos, *ending_pos;
+   char *temp, *toc_anchor = NULL;
+ 
+   close_paragraph ();
+   filling_enabled =  indented_fill = 0;
+   old_no_indent = no_indent;
+   no_indent = 1;
+ 
+   /* level 0 (chapter) is <h2>, and we go down from there.  */
+   add_html_block_elt_args ("<h%d class=\"%s\">", level + 2, cmd);
+ 
+   /* If we are outside of any node, produce an anchor that
+      the TOC could refer to.  */
+   if (!current_node || !*current_node)
+     {
+       static const char a_name[] = "<a name=\"";
+ 
+       starting_pos = output_paragraph + output_paragraph_offset;
+       add_word_args ("%sTOC%d\">", a_name, toc_ref_count++);
+       toc_anchor = substring ((char *)starting_pos + sizeof (a_name) - 1,
+                               (char *)output_paragraph
+ 			      + output_paragraph_offset);
+       /* This must be added after toc_anchor is extracted, since
+          toc_anchor cannot include the closing </a>.  For details,
+          see toc.c:toc_add_entry and toc.c:contents_update_html.
+ 
+          Also, the anchor close must be output before the section name
+          in case the name itself contains an anchor. */
+       add_word ("</a>");
+     }
+   starting_pos = output_paragraph + output_paragraph_offset;
+ 
+   if (macro_expansion_output_stream && !executing_string)
+     append_to_expansion_output (input_text_offset + 1);
+ 
+   get_rest_of_line (0, &temp);
+ 
+   /* Use @settitle value if @top parameter is empty.  */
+   if (STREQ (command, "top") && strlen(temp) == 0)
+     temp = xstrdup (title ? title : "");
+ 
+   index = search_sectioning (cmd);
+   if (index < 0)
+     {
+       /* should never happen, but a poor guy, named Murphy ... */
+       warning (_("Internal error (search_sectioning) \"%s\"!"), cmd);
+       return;
+     }
+ 
+   /* Produce "X.Y" and add it to HTML output.  */
+   {
+     char *title_number = handle_enum_increment (level, index);
+     if (strlen (title_number) > 0)
+       add_word_args ("%s ", title_number);
+   }
+ 
+   /* add the section name to both HTML and macro-expanded output.  */
+   if (macro_expansion_output_stream && !executing_string)
+     {
+       remember_itext (input_text, input_text_offset);
+       me_execute_string (temp);
+       write_region_to_macro_output ("\n", 0, 1);
+     }
+   else
+     execute_string ("%s", temp);
+ 
+   ending_pos = output_paragraph + output_paragraph_offset;
+ 
+   /* Pluck ``X.Y SECTION-NAME'' from the output buffer and insert it
+      into the TOC.  */
+   if (section_alist[index].toc == TOC_YES)
+     toc_add_entry (substring ((char *)starting_pos, (char *)ending_pos),
+                    level, current_node, toc_anchor);
+ 
+   free (temp);
+ 
+   if (outstanding_node)
+     outstanding_node = 0;
+ 
+   add_word_args ("</h%d>", level + 2);
+   close_paragraph();
+   filling_enabled = 1;
+   no_indent = old_no_indent;
+ }
+ 
+ 
+ /* Shift the meaning of @section to @chapter. */
+ void
+ cm_raisesections (void)
+ {
+   discard_until ("\n");
+   section_alist_offset--;
+ }
+ 
+ /* Shift the meaning of @chapter to @section. */
+ void
+ cm_lowersections (void)
+ {
+   discard_until ("\n");
+   section_alist_offset++;
+ }
+ 
+ /* The command still works, but prints a warning message in addition. */
+ void
+ cm_ideprecated (int arg, int start, int end)
+ {
+   warning (_("%c%s is obsolete; use %c%s instead"),
+            COMMAND_PREFIX, command, COMMAND_PREFIX, command + 1);
+   sectioning_underscore (command + 1);
+ }
+ 
+ 
+ /* Treat this just like @unnumbered.  The only difference is
+    in node defaulting. */
+ void
+ cm_top (void)
+ {
+   /* It is an error to have more than one @top. */
+   if (top_node_seen && strcmp (current_node, "Top") != 0)
+     {
+       TAG_ENTRY *tag = tag_table;
+ 
+       line_error (_("Node with %ctop as a section already exists"),
+                   COMMAND_PREFIX);
+ 
+       while (tag)
+         {
+           if (tag->flags & TAG_FLAG_IS_TOP)
+             {
+               file_line_error (tag->filename, tag->line_no,
+                                _("Here is the %ctop node"), COMMAND_PREFIX);
+               return;
+             }
+           tag = tag->next_ent;
+         }
+     }
+   else
+     {
+       top_node_seen = 1;
+ 
+       /* It is an error to use @top before using @node. */
+       if (!tag_table)
+         {
+           char *top_name;
+ 
+           get_rest_of_line (0, &top_name);
+           line_error (_("%ctop used before %cnode, defaulting to %s"),
+                       COMMAND_PREFIX, COMMAND_PREFIX, top_name);
+           execute_string ("@node Top, , (dir), (dir)\n@top %s\n", top_name);
+           free (top_name);
+           return;
+         }
+ 
+       cm_unnumbered ();
+ 
+       /* The most recently defined node is the top node. */
+       tag_table->flags |= TAG_FLAG_IS_TOP;
+ 
+       /* Now set the logical hierarchical level of the Top node. */
+       {
+         int orig_offset = input_text_offset;
+ 
+         input_text_offset = search_forward (node_search_string, orig_offset);
+ 
+         if (input_text_offset > 0)
+           {
+             int this_section;
+ 
+             /* We have encountered a non-top node, so mark that one exists. */
+             non_top_node_seen = 1;
+ 
+             /* Move to the end of this line, and find out what the
+                sectioning command is here. */
+             while (input_text[input_text_offset] != '\n')
+               input_text_offset++;
+ 
+             if (input_text_offset < input_text_length)
+               input_text_offset++;
+ 
+             this_section = what_section (input_text + input_text_offset,
+                                          NULL);
+ 
+             /* If we found a sectioning command, then give the top section
+                a level of this section - 1. */
+             if (this_section != -1)
+               set_top_section_level (this_section - 1);
+           }
+         input_text_offset = orig_offset;
+       }
+     }
+ }
+ 
+ /* The remainder of the text on this line is a chapter heading. */
+ void
+ cm_chapter (void)
+ {
+   enum_marker = 0;
+   sectioning_underscore ("chapter");
+ }
+ 
+ /* The remainder of the text on this line is a section heading. */
+ void
+ cm_section (void)
+ {
+   sectioning_underscore ("section");
+ }
+ 
+ /* The remainder of the text on this line is a subsection heading. */
+ void
+ cm_subsection (void)
+ {
+   sectioning_underscore ("subsection");
+ }
+ 
+ /* The remainder of the text on this line is a subsubsection heading. */
+ void
+ cm_subsubsection (void)
+ {
+   sectioning_underscore ("subsubsection");
+ }
+ 
+ /* The remainder of the text on this line is an unnumbered heading. */
+ void
+ cm_unnumbered (void)
+ {
+   enum_marker = UNNUMBERED_MAGIC;
+   sectioning_underscore ("unnumbered");
+ }
+ 
+ /* The remainder of the text on this line is an unnumbered section heading. */
+ void
+ cm_unnumberedsec (void)
+ {
+   sectioning_underscore ("unnumberedsec");
+ }
+ 
+ /* The remainder of the text on this line is an unnumbered
+    subsection heading. */
+ void
+ cm_unnumberedsubsec (void)
+ {
+   sectioning_underscore ("unnumberedsubsec");
+ }
+ 
+ /* The remainder of the text on this line is an unnumbered
+    subsubsection heading. */
+ void
+ cm_unnumberedsubsubsec (void)
+ {
+   sectioning_underscore ("unnumberedsubsubsec");
+ }
+ 
+ /* The remainder of the text on this line is an appendix heading. */
+ void
+ cm_appendix (void)
+ {
+   /* Reset top level number so we start from Appendix A */
+   if (enum_marker != APPENDIX_MAGIC)
+     numbers [0] = 0;
+   enum_marker = APPENDIX_MAGIC;
+   sectioning_underscore ("appendix");
+ }
+ 
+ /* The remainder of the text on this line is an appendix section heading. */
+ void
+ cm_appendixsec (void)
+ {
+   sectioning_underscore ("appendixsec");
+ }
+ 
+ /* The remainder of the text on this line is an appendix subsection heading. */
+ void
+ cm_appendixsubsec (void)
+ {
+   sectioning_underscore ("appendixsubsec");
+ }
+ 
+ /* The remainder of the text on this line is an appendix
+    subsubsection heading. */
+ void
+ cm_appendixsubsubsec (void)
+ {
+   sectioning_underscore ("appendixsubsubsec");
+ }
+ 
+ /* Compatibility functions substitute for chapter, section, etc. */
+ void
+ cm_majorheading (void)
+ {
+   sectioning_underscore ("majorheading");
+ }
+ 
+ void
+ cm_chapheading (void)
+ {
+   sectioning_underscore ("chapheading");
+ }
+ 
+ void
+ cm_heading (void)
+ {
+   sectioning_underscore ("heading");
+ }
+ 
+ void
+ cm_subheading (void)
+ {
+   sectioning_underscore ("subheading");
+ }
+ 
+ void
+ cm_subsubheading (void)
+ {
+   sectioning_underscore ("subsubheading");
+ }
diff -Nrc2 texinfo-4.12/makeinfo/sectioning.h texinfo-4.13/makeinfo/sectioning.h
*** texinfo-4.12/makeinfo/sectioning.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/sectioning.h	Sun Jul  1 14:20:33 2007
***************
*** 0 ****
--- 1,102 ----
+ /* sectioning.h -- all related stuff @chapter, @section... @contents
+    $Id: sectioning.h,v 1.8 2007/07/01 21:20:33 karl Exp $
+ 
+    Copyright (C) 1999, 2003, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Karl Heinz Marbaise <kama@hippo.fido.de>.  */
+ 
+ #ifndef SECTIONING_H
+ #define SECTIONING_H
+ 
+ /* Sectioning.  */
+ 
+ /* Level 4.  */
+ extern void cm_chapter (void),
+   cm_unnumbered (void),
+   cm_appendix (void),
+   cm_top (void);
+ 
+ /* Level 3.  */
+ extern void cm_section (void),
+   cm_unnumberedsec (void),
+   cm_appendixsec (void);
+ 
+ /* Level 2.  */
+ extern void cm_subsection (void),
+   cm_unnumberedsubsec (void),
+   cm_appendixsubsec (void);
+ 
+ /* Level 1.  */
+ extern void cm_subsubsection (void),
+   cm_unnumberedsubsubsec (void),
+   cm_appendixsubsubsec (void);
+ 
+ /* Headings.  */
+ extern void cm_heading (void),
+   cm_chapheading (void),
+   cm_subheading (void),
+   cm_subsubheading (void),
+   cm_majorheading (void);
+ 
+ extern void cm_raisesections (void),
+   cm_lowersections (void),
+   cm_ideprecated (int arg, int start, int end);
+ 
+ extern void
+   sectioning_underscore (char *cmd),
+   insert_and_underscore (int level, char *cmd);
+ 
+ /* needed in node.c */
+ extern int set_top_section_level (int level);
+ 
+ extern void sectioning_html (int level, char *cmd);
+ extern int what_section (char *text, char **secname);
+ extern char *current_chapter_number (void),
+   *current_sectioning_number (void),
+   *current_sectioning_name (void);
+ 
+ /* The argument of @settitle, used for HTML. */
+ extern char *title;
+ 
+ 
+ /* Here is a structure which associates sectioning commands with
+    an integer that reflects the depth of the current section. */
+ typedef struct
+ {
+   char *name;
+   int level; /* I can't replace the levels with defines
+                 because it is changed during run */
+   int num; /* ENUM_SECT_NO means no enumeration...
+               ENUM_SECT_YES means enumerated version
+               ENUM_SECT_APP appendix (Character enumerated
+                             at first position */
+   int toc; /* TOC_NO means do not enter in toc;
+               TOC_YES means enter it in toc */
+ } section_alist_type;
+ 
+ extern section_alist_type section_alist[];
+ 
+ /* enumerate sections */
+ #define ENUM_SECT_NO  0
+ #define ENUM_SECT_YES 1
+ #define ENUM_SECT_APP 2
+ 
+ /* make entries into toc no/yes */
+ #define TOC_NO  0
+ #define TOC_YES 1
+ 
+ 
+ #endif /* not SECTIONING_H */
diff -Nrc2 texinfo-4.12/makeinfo/tests/Makefile.am texinfo-4.13/makeinfo/tests/Makefile.am
*** texinfo-4.12/makeinfo/tests/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/Makefile.am	Mon Jul 10 16:07:12 2006
***************
*** 0 ****
--- 1,40 ----
+ # $Id: Makefile.am,v 1.7 2006/07/10 23:07:12 karl Exp $
+ # Makefile.am for texinfo/tests/makeinfo.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ TESTS = accent accentenc \
+   cond \
+   copying \
+   defxcond \
+   emph-option \
+   html-docdesc html-extrali html-min html-manuals html-para html-title \
+   html-top \
+   include-value \
+   macro-at menu-whitespace \
+   no-headers \
+   node-expand node-value node-whitespace \
+   quote-args \
+   top \
+   twofiles
+ 
+ noinst_SCRIPTS = $(TESTS)
+ 
+ EXTRA_DIST = $(noinst_SCRIPTS) \
+   accent.txi accentenc.txi accent-text.txi \
+   cond.txi copying.txi \
+   defxcond.txi \
+   emph-option.txi \
+   html-docdesc.txi html-extrali.txi html-min.txi html-para.txi html-title.txi \
+   html-top.txi \
+   include-value.txi incl-incl.txi \
+   macro-at.txi menu-whitespace.txi \
+   node-expand.txi node-value.txi node-whitespace.txi \
+   quote-args.txi \
+   top.txi # top2.txi
diff -Nrc2 texinfo-4.12/makeinfo/tests/Makefile.in texinfo-4.13/makeinfo/tests/Makefile.in
*** texinfo-4.12/makeinfo/tests/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/Makefile.in	Thu Sep 18 11:46:25 2008
***************
*** 0 ****
--- 1,672 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # $Id: Makefile.am,v 1.7 2006/07/10 23:07:12 karl Exp $
+ # Makefile.am for texinfo/tests/makeinfo.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ subdir = makeinfo/tests
+ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ SCRIPTS = $(noinst_SCRIPTS)
+ SOURCES =
+ DIST_SOURCES =
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = @localedir@
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ TESTS = accent accentenc \
+   cond \
+   copying \
+   defxcond \
+   emph-option \
+   html-docdesc html-extrali html-min html-manuals html-para html-title \
+   html-top \
+   include-value \
+   macro-at menu-whitespace \
+   no-headers \
+   node-expand node-value node-whitespace \
+   quote-args \
+   top \
+   twofiles
+ 
+ noinst_SCRIPTS = $(TESTS)
+ EXTRA_DIST = $(noinst_SCRIPTS) \
+   accent.txi accentenc.txi accent-text.txi \
+   cond.txi copying.txi \
+   defxcond.txi \
+   emph-option.txi \
+   html-docdesc.txi html-extrali.txi html-min.txi html-para.txi html-title.txi \
+   html-top.txi \
+   include-value.txi incl-incl.txi \
+   macro-at.txi menu-whitespace.txi \
+   node-expand.txi node-value.txi node-whitespace.txi \
+   quote-args.txi \
+   top.txi # top2.txi
+ 
+ all: all-am
+ 
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  makeinfo/tests/Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnu  makeinfo/tests/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ tags: TAGS
+ TAGS:
+ 
+ ctags: CTAGS
+ CTAGS:
+ 
+ 
+ check-TESTS: $(TESTS)
+ 	@failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[	 ]'; \
+ 	srcdir=$(srcdir); export srcdir; \
+ 	list=' $(TESTS) '; \
+ 	if test -n "$$list"; then \
+ 	  for tst in $$list; do \
+ 	    if test -f ./$$tst; then dir=./; \
+ 	    elif test -f $$tst; then dir=; \
+ 	    else dir="$(srcdir)/"; fi; \
+ 	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ 	      all=`expr $$all + 1`; \
+ 	      case " $(XFAIL_TESTS) " in \
+ 	      *$$ws$$tst$$ws*) \
+ 		xpass=`expr $$xpass + 1`; \
+ 		failed=`expr $$failed + 1`; \
+ 		echo "XPASS: $$tst"; \
+ 	      ;; \
+ 	      *) \
+ 		echo "PASS: $$tst"; \
+ 	      ;; \
+ 	      esac; \
+ 	    elif test $$? -ne 77; then \
+ 	      all=`expr $$all + 1`; \
+ 	      case " $(XFAIL_TESTS) " in \
+ 	      *$$ws$$tst$$ws*) \
+ 		xfail=`expr $$xfail + 1`; \
+ 		echo "XFAIL: $$tst"; \
+ 	      ;; \
+ 	      *) \
+ 		failed=`expr $$failed + 1`; \
+ 		echo "FAIL: $$tst"; \
+ 	      ;; \
+ 	      esac; \
+ 	    else \
+ 	      skip=`expr $$skip + 1`; \
+ 	      echo "SKIP: $$tst"; \
+ 	    fi; \
+ 	  done; \
+ 	  if test "$$failed" -eq 0; then \
+ 	    if test "$$xfail" -eq 0; then \
+ 	      banner="All $$all tests passed"; \
+ 	    else \
+ 	      banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+ 	    fi; \
+ 	  else \
+ 	    if test "$$xpass" -eq 0; then \
+ 	      banner="$$failed of $$all tests failed"; \
+ 	    else \
+ 	      banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+ 	    fi; \
+ 	  fi; \
+ 	  dashes="$$banner"; \
+ 	  skipped=""; \
+ 	  if test "$$skip" -ne 0; then \
+ 	    skipped="($$skip tests were not run)"; \
+ 	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ 	      dashes="$$skipped"; \
+ 	  fi; \
+ 	  report=""; \
+ 	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ 	    report="Please report to $(PACKAGE_BUGREPORT)"; \
+ 	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ 	      dashes="$$report"; \
+ 	  fi; \
+ 	  dashes=`echo "$$dashes" | sed s/./=/g`; \
+ 	  echo "$$dashes"; \
+ 	  echo "$$banner"; \
+ 	  test -z "$$skipped" || echo "$$skipped"; \
+ 	  test -z "$$report" || echo "$$report"; \
+ 	  echo "$$dashes"; \
+ 	  test "$$failed" -eq 0; \
+ 	else :; fi
+ 
+ distdir: $(DISTFILES)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ check-am: all-am
+ 	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+ check: check-am
+ all-am: Makefile $(SCRIPTS)
+ installdirs:
+ install: install-am
+ install-exec: install-exec-am
+ install-data: install-data-am
+ uninstall: uninstall-am
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-am
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ clean: clean-am
+ 
+ clean-am: clean-generic mostlyclean-am
+ 
+ distclean: distclean-am
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-generic
+ 
+ dvi: dvi-am
+ 
+ dvi-am:
+ 
+ html: html-am
+ 
+ info: info-am
+ 
+ info-am:
+ 
+ install-data-am:
+ 
+ install-dvi: install-dvi-am
+ 
+ install-exec-am:
+ 
+ install-html: install-html-am
+ 
+ install-info: install-info-am
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-am
+ 
+ install-ps: install-ps-am
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+ 
+ mostlyclean-am: mostlyclean-generic
+ 
+ pdf: pdf-am
+ 
+ pdf-am:
+ 
+ ps: ps-am
+ 
+ ps-am:
+ 
+ uninstall-am:
+ 
+ .MAKE: install-am install-strip
+ 
+ .PHONY: all all-am check check-TESTS check-am clean clean-generic \
+ 	distclean distclean-generic distdir dvi dvi-am html html-am \
+ 	info info-am install install-am install-data install-data-am \
+ 	install-dvi install-dvi-am install-exec install-exec-am \
+ 	install-html install-html-am install-info install-info-am \
+ 	install-man install-pdf install-pdf-am install-ps \
+ 	install-ps-am install-strip installcheck installcheck-am \
+ 	installdirs maintainer-clean maintainer-clean-generic \
+ 	mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+ 	uninstall-am
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/makeinfo/tests/accent texinfo-4.13/makeinfo/tests/accent
*** texinfo-4.12/makeinfo/tests/accent	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/accent	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,34 ----
+ #!/bin/sh
+ # Test accent output.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ input=`basename $0`.txi
+ 
+ # html.
+ houtput=`basename $0`.html
+ ../makeinfo --html --no-split -I$srcdir $srcdir/$input
+ hexit_status=$?
+ if test $hexit_status = 0; then
+   grep '&igrave;' $houtput >/dev/null \
+   && grep '&acute;j' $houtput >/dev/null \
+   && grep '&Oslash;' $houtput >/dev/null \
+   && grep '/L' $houtput >/dev/null
+   hexit_status=$?
+ fi
+ 
+ # info
+ ioutput=`basename $0`.info
+ ../makeinfo --no-split -I$srcdir $srcdir/$input
+ iexit_status=$?
+ if test $iexit_status = 0; then
+   grep 'i`' $ioutput >/dev/null \
+   && grep 'i"' $ioutput >/dev/null \
+   && grep '/L' $ioutput >/dev/null
+   iexit_status=$?
+ fi
+ 
+ rm -f $houtput $ioutput
+ 
+ exit_status=`expr $hexit_status + $iexit_status`
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/accent-text.txi texinfo-4.13/makeinfo/tests/accent-text.txi
*** texinfo-4.12/makeinfo/tests/accent-text.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/accent-text.txi	Wed Nov  5 06:32:32 2003
***************
*** 0 ****
--- 1,73 ----
+ @c args with braces, without braces/following whitespace
+ 
+ should be e`: @`{e} @`e
+ 
+ should be e': @'{e} @'e
+ 
+ should be e^: @^{e} @^e
+ 
+ should be u": @"{u} @"u
+ 
+ should be i`: @`{i} @`i
+ 
+ should be i': @'{i} @'i
+ 
+ should be i^: @^{i} @^i
+ 
+ should be u": @"{u} @"u
+ 
+ should be c,: @,{c} @,c
+ 
+ should be n~: @~{n} @~n
+ 
+ should be e=: @={e} @=e
+ 
+ should be e@w{'}': @H{e} @H e
+ 
+ should be e.: @dotaccent{e} @dotaccent e
+ 
+ should be e*: @ringaccent{e} @ringaccent e
+ 
+ should be ee[: @tieaccent{ee}
+ 
+ should be e(: @u{e} @u e
+ 
+ should be e_: @ubaraccent{e} @ubaraccent e
+ 
+ should be .e: @udotaccent{e} @udotaccent e
+ 
+ should be e<: @v{e} @v e
+ 
+ upside down: @questiondown{} @exclamdown{}
+ 
+ A-with-circle: @aa{},@AA{}
+ 
+ AE, OE ligatures: @ae{} @AE{} @oe{} @OE{}
+ 
+ dotless i, j: @dotless{i} @dotless{j}
+ 
+ Polish suppressed-L: @l{} @L{}
+ 
+ O-with-slash: @o{} @O{}
+ 
+ es-zet or sharp S: @ss{}          
+ 
+ pounds sterling: @pounds{}      
+ 
+ @c arg is command -- @dotless{i} is special-cased for HTML
+ should be dotless i`: @`{@dotless{i}}
+ 
+ should be dotless i': @'{@dotless{i}}
+ 
+ should be dotless i^: @^{@dotless{i}}
+ 
+ should be dotless i": @"{@dotless{i}}
+ 
+ @c arg is command -- @dotless{j}
+ should be dotless j`: @`{@dotless{j}}
+ 
+ should be dotless j': @'{@dotless{j}}
+ 
+ should be dotless j^: @^{@dotless{j}}
+ 
+ should be dotless j": @"{@dotless{j}}
diff -Nrc2 texinfo-4.12/makeinfo/tests/accent.txi texinfo-4.13/makeinfo/tests/accent.txi
*** texinfo-4.12/makeinfo/tests/accent.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/accent.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,10 ----
+ \input texinfo
+ @setfilename accent.info
+ @settitle Accent test
+ 
+ @node Top
+ @top Accent test top
+ 
+ @include accent-text.txi
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/accentenc texinfo-4.13/makeinfo/tests/accentenc
*** texinfo-4.12/makeinfo/tests/accentenc	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/accentenc	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,24 ----
+ #!/bin/sh
+ # Test encoded accent info output.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ input=`basename $0`.txi
+ output=`basename $0`.info
+ 
+ # we expect two invalid encoded characters:
+ # accent-text.txi:45: warning: invalid encoded character `#156'.
+ # accent-text.txi:45: warning: invalid encoded character `#140'.
+ # These are oe and OE, and they are not supported in Latin 1.
+ ../makeinfo --enable-encoding --no-split -I$srcdir $srcdir/$input 2>/dev/null
+ exit_status=$?
+ if test $exit_status = 0; then
+   grep 'ì' $output >/dev/null \
+   && grep 'ï' $output >/dev/null \
+   && grep '/L' $output >/dev/null
+   exit_status=$?
+ fi
+ 
+ rm -f $output
+ 
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/accentenc.txi texinfo-4.13/makeinfo/tests/accentenc.txi
*** texinfo-4.12/makeinfo/tests/accentenc.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/accentenc.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,11 ----
+ \input texinfo
+ @setfilename accentenc.info
+ @settitle Accent encoding test
+ @documentencoding ISO-8859-1
+ 
+ @node Top
+ @top Accent encoding test top
+ 
+ @include accent-text.txi
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/cond texinfo-4.13/makeinfo/tests/cond
*** texinfo-4.12/makeinfo/tests/cond	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/cond	Tue Apr  5 14:04:16 2005
***************
*** 0 ****
--- 1,33 ----
+ #!/bin/sh
+ # Test conditional text.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ 
+ # Default Info output.
+ ../makeinfo -o cond.out $srcdir/cond.txi || exit 1
+ egrep 'This is (ifnothtml|ifinfo|ifnottex) text' cond.out >/dev/null \
+   || exit 2
+ test `fgrep -c ' text.' cond.out` -eq 3 || exit 3
+ 
+ # Default HTML output.
+ ../makeinfo --no-split --html -o cond.out $srcdir/cond.txi || exit 1
+ egrep 'This is (html|ifhtml|ifnotinfo|ifnottex) text' cond.out >/dev/null \
+  || exit 2
+ test `fgrep -c ' text.' cond.out` -eq 4 || exit 3
+ 
+ # --ifhtml off, --ifinfo off, --iftex off.
+ ../makeinfo --no-ifhtml --no-ifinfo --no-iftex -o cond.out $srcdir/cond.txi || exit 1
+ egrep 'This is ifnot(html|info|tex) text' cond.out >/dev/null \
+  || exit 2
+ test `fgrep -c ' text.' cond.out` -eq 3 || exit 3
+ 
+ # Do we really need to test all the other permutations?
+ 
+ # --ifhtml on, --ifinfo on, --iftex on.
+ ../makeinfo --ifhtml --ifinfo --iftex -o cond.out $srcdir/cond.txi || exit 1
+ egrep 'This is (html|ifhtml|ifinfo|tex|iftex) text' cond.out >/dev/null \
+  || exit 2
+ test `fgrep -c ' text.' cond.out` -eq 5 || exit 3
+ 
+ rm -f cond.out cond.info
diff -Nrc2 texinfo-4.12/makeinfo/tests/cond.txi texinfo-4.13/makeinfo/tests/cond.txi
*** texinfo-4.12/makeinfo/tests/cond.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/cond.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,40 ----
+ \input texinfo
+ @setfilename cond.info
+ 
+ @node Top
+ 
+ @html
+ This is html text.
+ @end html
+ 
+ @ifhtml
+ This is ifhtml text.
+ @end ifhtml
+ 
+ @ifnothtml
+ This is ifnothtml text.
+ @end ifnothtml
+ 
+ 
+ @ifinfo
+ This is ifinfo text.
+ @end ifinfo
+ 
+ @ifnotinfo
+ This is ifnotinfo text.
+ @end ifnotinfo
+ 
+ 
+ @tex
+ This is tex text.
+ @end tex
+ 
+ @iftex
+ This is iftex text.
+ @end iftex
+ 
+ @ifnottex
+ This is ifnottex text.
+ @end ifnottex
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/copying texinfo-4.13/makeinfo/tests/copying
*** texinfo-4.12/makeinfo/tests/copying	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/copying	Sun Jul  1 11:38:52 2007
***************
*** 0 ****
--- 1,13 ----
+ #!/bin/sh
+ # $Id: copying,v 1.4 2007/07/01 18:38:52 karl Exp $
+ # Test @copying.  The configure script for tramp uses this to make sure
+ # the makeinfo that is present supports @copying.
+ 
+ unset TEXINFO_OUTPUT LANG LANGUAGE
+ LC_ALL=POSIX; export LC_ALL
+ : ${srcdir=.}
+ 
+ ../makeinfo -o copying.out $srcdir/copying.txi || exit 1
+ fgrep 'produced by' copying.out >/dev/null || exit 2
+ 
+ rm -f copying.out
diff -Nrc2 texinfo-4.12/makeinfo/tests/copying.txi texinfo-4.13/makeinfo/tests/copying.txi
*** texinfo-4.12/makeinfo/tests/copying.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/copying.txi	Sun Jul  1 11:20:43 2007
***************
*** 0 ****
--- 1,8 ----
+ \input texinfo   @c -*-texinfo-*-
+ @copying
+ Public domain.
+ @end copying
+ 
+ @insertcopying
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/defxcond texinfo-4.13/makeinfo/tests/defxcond
*** texinfo-4.12/makeinfo/tests/defxcond	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/defxcond	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,16 ----
+ #!/bin/sh
+ # Test conditionalized @deffnx.
+ # Report from: Akim Demaille <akim@epita.fr>, 14 Aug 2003 12:10:37 +0200.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ 
+ test=defxcond
+ 
+ ../makeinfo -Dbar -o $test.out $srcdir/$test.txi || exit 1
+ grep ' -- bar:' $test.out >/dev/null || exit 2
+ 
+ ../makeinfo -Ubar -o $test.out $srcdir/$test.txi || exit 3
+ grep ' -- bar:' $test.out >/dev/null && exit 4
+ 
+ rm -f $test.out
diff -Nrc2 texinfo-4.12/makeinfo/tests/defxcond.txi texinfo-4.13/makeinfo/tests/defxcond.txi
*** texinfo-4.12/makeinfo/tests/defxcond.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/defxcond.txi	Wed Aug 20 12:11:30 2003
***************
*** 0 ****
--- 1,18 ----
+ \input texinfo
+ @setfilename defxcond.info
+ 
+ @c set this from the command line.
+ @c set bar
+ 
+ @c deffnx inside conditional.
+ @deffn foo
+ 
+ @ifset bar
+ @deffnx bar
+ @end ifset
+ 
+ Documentation.
+ 
+ @end deffn
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/emph-option texinfo-4.13/makeinfo/tests/emph-option
*** texinfo-4.12/makeinfo/tests/emph-option	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/emph-option	Mon Jul 10 16:07:12 2006
***************
*** 0 ****
--- 1,10 ----
+ #!/bin/sh
+ # Test @option inside @emph. 
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ 
+ ../makeinfo --no-split --html -o emph-option.out $srcdir/emph-option.txi || exit 1
+ fgrep '<em>emphasized and referring to <samp></em>' emph-option.out && exit 3
+ 
+ rm -f emph-option.out
diff -Nrc2 texinfo-4.12/makeinfo/tests/emph-option.txi texinfo-4.13/makeinfo/tests/emph-option.txi
*** texinfo-4.12/makeinfo/tests/emph-option.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/emph-option.txi	Mon Jul 10 16:07:12 2006
***************
*** 0 ****
--- 1,8 ----
+ \input texinfo
+ @setfilename cond.info
+ 
+ @node Top
+ 
+ Foo @emph{emphasized and referring to @option{--some} option}.
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-docdesc texinfo-4.13/makeinfo/tests/html-docdesc
*** texinfo-4.12/makeinfo/tests/html-docdesc	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-docdesc	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,12 ----
+ #!/bin/sh
+ # Test that @documentdescription works.
+ 
+ if ../makeinfo --html --no-split ${srcdir-.}/html-docdesc.txi; then
+   grep 'explicit document description' html-docdesc.html >/dev/null
+   exit_status=$?
+ else
+   exit_status=1
+ fi
+ 
+ rm -f html-docdesc.html
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-docdesc.txi texinfo-4.13/makeinfo/tests/html-docdesc.txi
*** texinfo-4.12/makeinfo/tests/html-docdesc.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-docdesc.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,14 ----
+ \input texinfo
+ @setfilename html-docdesc.info
+ @settitle HTML docdesc test
+ 
+ @documentdescription
+ This is the explicit document description.
+ @end documentdescription
+ 
+ @node Top
+ @top Top of HTML docdesc test
+ 
+ This is the top.
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-extrali texinfo-4.13/makeinfo/tests/html-extrali
*** texinfo-4.12/makeinfo/tests/html-extrali	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-extrali	Tue Apr  5 14:04:16 2005
***************
*** 0 ****
--- 1,14 ----
+ #!/bin/sh
+ # Test no extra <li> from @menu.
+ 
+ : ${srcdir=.}
+ 
+ li_count=`../makeinfo --no-split --html -o - $srcdir/html-extrali.txi 2>/dev/null \
+ | grep -c '<li>'`
+ 
+ if test "$li_count" -ne 1; then
+   echo "$li_count <li>s instead of one." >&2
+   exit 1
+ else
+   exit 0
+ fi
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-extrali.txi texinfo-4.13/makeinfo/tests/html-extrali.txi
*** texinfo-4.12/makeinfo/tests/html-extrali.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-extrali.txi	Sun Nov 30 05:30:19 2003
***************
*** 0 ****
--- 1,11 ----
+ \input texinfo
+ @setfilename menuli.info
+ 
+ @c extra li generated after <menu>
+ @c From: Marius Groeger <mag@sysgo.de>, 13nov98.
+ 
+ @menu
+ * entry1:: 
+ @end menu
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-manuals texinfo-4.13/makeinfo/tests/html-manuals
*** texinfo-4.12/makeinfo/tests/html-manuals	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-manuals	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,13 ----
+ #!/bin/sh
+ # $Id: html-manuals,v 1.3 2004/04/11 17:56:47 karl Exp $
+ # Test that all the distribution manuals can be converted to HTML.
+ 
+ : ${srcdir=.}
+ 
+ for manual in info.texi info-stnd.texi texinfo.txi; do
+   base=`echo $manual | sed 's/\.te*xi$//'`
+   ../makeinfo --html -I$srcdir/../../doc -I../../doc --no-split \
+               $srcdir/../../doc/$manual -o $base.html \
+   || exit 1
+   rm -f $base.html
+ done
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-min texinfo-4.13/makeinfo/tests/html-min
*** texinfo-4.12/makeinfo/tests/html-min	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-min	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,8 ----
+ #!/bin/sh
+ # Test that a minimal Texinfo file can be converted to HTML.
+ 
+ ../makeinfo --html --no-split ${srcdir-.}/html-min.txi
+ exit_status=$?
+ 
+ rm -f html-min.html
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-min.txi texinfo-4.13/makeinfo/tests/html-min.txi
*** texinfo-4.12/makeinfo/tests/html-min.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-min.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,12 ----
+ \input texinfo
+ @setfilename html-min.info
+ @settitle HTML min test
+ 
+ @node Top
+ @top Top of HTML min test
+ 
+ Top.
+ 
+ Second paragraph.
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-para texinfo-4.13/makeinfo/tests/html-para
*** texinfo-4.12/makeinfo/tests/html-para	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-para	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,8 ----
+ #!/bin/sh
+ # Test that paragraph beginnings in HTML work ok.
+ 
+ ../makeinfo --no-split --html ${srcdir-.}/html-para.txi
+ exit_status=$?
+ 
+ rm -f html-para.html
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-para.txi texinfo-4.13/makeinfo/tests/html-para.txi
*** texinfo-4.12/makeinfo/tests/html-para.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-para.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,24 ----
+ \input texinfo
+ @setfilename html-para.info
+ @settitle HTML paragraph beginning test
+ 
+ @c <p> is emitted at paragraph beginning, which makes the text
+ @c between START and END not exactly what some cm_xxx functions
+ @c expect, when they are called by pop_and_call_brace.
+ 
+ @set val @@value@{@}
+ @definfoenclose foo,\\,//
+ 
+ @node Top
+ @top Top of HTML paragraph test
+ 
+ @value{val} should work at the beginning of a new paragraph.
+ 
+ @dotless{i} dotless should not trigger error messages at the beginning
+ of a new paragraph.
+ 
+ @sc{small-caps} should work at the beginning of a new paragraph.
+ 
+ @foo{@@definfoenclose} should work at the beginning of a new paragraph.
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-title texinfo-4.13/makeinfo/tests/html-title
*** texinfo-4.12/makeinfo/tests/html-title	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-title	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,13 ----
+ #!/bin/sh
+ # Test that titles with @ commands don't produce markup in the <title>.
+ # (And that the @ commands get expanded.)
+ 
+ if ../makeinfo --no-split --html ${srcdir-.}/html-title.txi; then
+   grep '^<title>@[^<>]*</title>$' html-title.html >/dev/null
+   exit_status=$?
+ else
+   exit_status=1
+ fi
+ 
+ rm -f html-title.html
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-title.txi texinfo-4.13/makeinfo/tests/html-title.txi
*** texinfo-4.12/makeinfo/tests/html-title.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-title.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,12 ----
+ \input texinfo
+ @setfilename html-title.info
+ @settitle @@title @sc{html} @code{test}
+ 
+ @node Top
+ @top Top of @@title @sc{html} @code{test}
+ 
+ Top.
+ 
+ Second paragraph.
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-top texinfo-4.13/makeinfo/tests/html-top
*** texinfo-4.12/makeinfo/tests/html-top	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-top	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,13 ----
+ #!/bin/sh
+ # Test that a bare top node does not crash with --html.
+ 
+ : ${srcdir=.}
+ 
+ # But this input file is erroneous, so throw away errors.
+ ../makeinfo --no-split --force -o html-top.html --html $srcdir/html-top.txi \
+ 2>/dev/null
+ test -s html-top.html
+ exit_status=$?
+ 
+ rm -f html-top.html
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/html-top.txi texinfo-4.13/makeinfo/tests/html-top.txi
*** texinfo-4.12/makeinfo/tests/html-top.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/html-top.txi	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,7 ----
+ \input texinfo
+ @setfilename top.info
+ 
+ @node start
+ @top
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/incl-incl.txi texinfo-4.13/makeinfo/tests/incl-incl.txi
*** texinfo-4.12/makeinfo/tests/incl-incl.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/incl-incl.txi	Sun Jan 12 07:19:01 2003
***************
*** 0 ****
--- 1 ----
+ This is the @emph{included} file (include-value2.txi).
diff -Nrc2 texinfo-4.12/makeinfo/tests/include-value texinfo-4.13/makeinfo/tests/include-value
*** texinfo-4.12/makeinfo/tests/include-value	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/include-value	Tue Apr  5 14:04:16 2005
***************
*** 0 ****
--- 1,22 ----
+ #!/bin/sh
+ # $Id: include-value,v 1.4 2005/04/05 21:04:16 karl Exp $
+ # Test @value expansion in @include and @verbatiminclude names.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ 
+ ../makeinfo -I $srcdir $srcdir/include-value.txi
+ exit_status=$?
+ 
+ if test $exit_status = 0; then
+   # should have three instances of _included_,
+   # and three of {included}.
+   count=`grep -c _included_ include-value.info`
+   test $count = 3 || exit_status=`expr $exit_status + 1`
+ 
+   count=`grep -c '{included}' include-value.info`
+   test $count = 3 || exit_status=`expr $exit_status + 1`
+ fi
+ 
+ rm -f include-value.info
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/include-value.txi texinfo-4.13/makeinfo/tests/include-value.txi
*** texinfo-4.12/makeinfo/tests/include-value.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/include-value.txi	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,32 ----
+ \input texinfo
+ @setfilename include-value.info
+ @c $Id: include-value.txi,v 1.2 2004/04/11 17:56:47 karl Exp $
+ 
+ @set testvar incl-incl.txi
+ 
+ @c test - in the variable name, and concatenation of text after.
+ @set test-var incl-incl.tx
+ 
+ @c test - in the variable name, and concatenation of text before and after.
+ @set test_var ncl-incl.tx
+ 
+ 
+ @node Top
+ 
+ testvar include: @include @value{testvar}
+ 
+ testvar verbatiminclude: @verbatiminclude @value{testvar}
+ 
+ 
+ test-var include: @include @value{test-var}i
+ 
+ test-var verbatiminclude: @verbatiminclude @value{test-var}i
+ 
+ 
+ test_var include: @include i@value{test_var}i
+ 
+ test_var verbatiminclude: @verbatiminclude i@value{test_var}i
+ 
+ 
+ @bye
+ 
diff -Nrc2 texinfo-4.12/makeinfo/tests/macro-at texinfo-4.13/makeinfo/tests/macro-at
*** texinfo-4.12/makeinfo/tests/macro-at	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/macro-at	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,8 ----
+ #!/bin/sh
+ # Test @@ in macro expansions, etc.  --eliz, 14nov99.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ ../makeinfo $srcdir/macro-at.txi || exit 1
+ 
+ rm -f macro-at.info
diff -Nrc2 texinfo-4.12/makeinfo/tests/macro-at.txi texinfo-4.13/makeinfo/tests/macro-at.txi
*** texinfo-4.12/makeinfo/tests/macro-at.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/macro-at.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,38 ----
+ \input texinfo @c -*- texinfo -*-
+ @setfilename macro-at.info
+ @settitle AUTHORS -- who did what on GNU LilyPond
+ 
+ @macro foo
+ foo-expansion
+ @end macro
+ 
+ @macro bar
+ bar-expansion
+ @end macro
+ 
+ @node Top, , AUTHORS -- who did what on GNU LilyPond, (dir)
+ @top
+ @menu
+ * AUTHORS -- who did what on GNU LilyPond:: AUTHORS -- who did what.
+ @end menu
+ 
+ @node AUTHORS -- who did what on GNU LilyPond, Top, , Top
+ @chapter AUTHORS -- who did what on GNU LilyPond?
+ 
+ This file lists authors of GNU LilyPond, and what they wrote.
+ It also uses foobar@{.
+ 
+ @itemize @bullet
+ @item @email{pinard@@iro.montreal.ca, Fran@,{c}ois Pinard},
+   parts of Documentation.
+ @item @email{foobar@@baz@@, The Foobar},
+   the usual foobarical thing.
+ @item @email{another@@foobar@{, Buzzer},
+   buzzed all the way.
+ @item @email{@foo{}@@@bar{}},
+   also helped.
+ @item @email{tomcato@@xoommail.com, Tom Cato Amundsen},
+   cembalo-partita in mundela.
+ @end itemize
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/menu-whitespace texinfo-4.13/makeinfo/tests/menu-whitespace
*** texinfo-4.12/makeinfo/tests/menu-whitespace	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/menu-whitespace	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,72 ----
+ #!/bin/sh
+ # Bug where whitespace after @menu caused confusion.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ input=`basename $0`.txi
+ 
+ ../makeinfo -o /dev/null $srcdir/$input
+ exit $?
+ 
+ Date: 07 Dec 1998 11:23:44 +0100
+ From: Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+ To: bug-texinfo@gnu.org
+ Subject: Makeinfo mishandles defaulted node links
+ 
+ The following example demonstrates a bug in makeinfo:
+ 
+ $ cat top.texi
+ @setfilename top.info
+ 
+ @node Top
+ @top Top
+ 
+ @menu
+ * first::
+ @end menu
+ 
+ @node first
+ @chapter first
+ 
+ @menu   @c
+ * second::
+ @end menu
+ 
+ @node second
+ @section second
+ $ makeinfo top.texi
+ Making info file `top.info' from `top.texi'.
+ ./top.texi:3: Next field of node `Top' not pointed to.
+ ./top.texi:17: This node (second) has the bad Prev.
+ makeinfo: Removing output file `/home/as/test/top.info' due to errors; use --force to preserve.
+ 
+ Makeinfo is being confused by the whitespace after @menu, or rather by its
+ absence.
+ 
+ 
+ 1998-12-06  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
+ 
+ 	* makeinfo/node.c (cm_node): When searching for @menu don't
+ 	require a space after it.
+ 
+ --- texinfo-3.12b/makeinfo/node.c.~1~	Mon Oct 26 23:14:59 1998
+ +++ texinfo-3.12b/makeinfo/node.c	Sun Dec  6 00:23:59 1998
+ @@ -523,9 +523,10 @@
+                      orig_size = size_of_input_text;
+  
+                    input_text_offset =
+ -                    search_forward ("\n@menu ", orig_offset);
+ +                    search_forward ("\n@menu", orig_offset);
+  
+ -                  if (input_text_offset > -1)
+ +                  if (input_text_offset > -1
+ +		      && cr_or_whitespace (input_text[input_text_offset + 6]))
+                      {
+                        char *nodename_from_menu = NULL;
+  
+ 
+ -- 
+ Andreas Schwab                                      "And now for something
+ schwab@issan.cs.uni-dortmund.de                      completely different"
+ schwab@gnu.org
+ 
diff -Nrc2 texinfo-4.12/makeinfo/tests/menu-whitespace.txi texinfo-4.13/makeinfo/tests/menu-whitespace.txi
*** texinfo-4.12/makeinfo/tests/menu-whitespace.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/menu-whitespace.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,18 ----
+ @setfilename top.info
+ 
+ @node Top
+ @top Top
+ 
+ @menu
+ * first::
+ @end menu
+ 
+ @node first
+ @chapter first
+ 
+ @menu   @c
+ * second::
+ @end menu
+ 
+ @node second
+ @section second
diff -Nrc2 texinfo-4.12/makeinfo/tests/no-headers texinfo-4.13/makeinfo/tests/no-headers
*** texinfo-4.12/makeinfo/tests/no-headers	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/no-headers	Wed Feb 21 16:29:32 2007
***************
*** 0 ****
--- 1,12 ----
+ #!/bin/sh
+ # Test that info.texi works with --no-headers (this includes node
+ # pointer defaulting).
+ 
+ # maybe need "nul" sometimes?  Not clear.
+ : ${nulldev=/dev/null}
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ docdir=$srcdir/../../doc
+ 
+ ../makeinfo --no-headers -o $nulldev -I$docdir info.texi
diff -Nrc2 texinfo-4.12/makeinfo/tests/node-expand texinfo-4.13/makeinfo/tests/node-expand
*** texinfo-4.12/makeinfo/tests/node-expand	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/node-expand	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,12 ----
+ #!/bin/sh
+ # Test command expansion in node names.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ 
+ ../makeinfo --commands-in-node-names $srcdir/node-expand.txi
+ test -s node-expand.info
+ exit_status=$?
+ 
+ rm -f node-expand.info
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/node-expand.txi texinfo-4.13/makeinfo/tests/node-expand.txi
*** texinfo-4.12/makeinfo/tests/node-expand.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/node-expand.txi	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,64 ----
+ \input texinfo.tex    @c -*-texinfo-*-
+ 
+ @setfilename node-expand.info
+ 
+ @c Makeinfo should expand non-macros such as @@ and @value
+ @c in node names and node references, including menus.
+ @c This file deliberately references "Node 1" both via
+ @c @value and directly; this should not trigger any errors,
+ @c as long as --commands-in-node-names is used.
+ @c Index entries should all be expanded as well.
+ 
+ @set node1 Node 1
+ 
+ @ifnottex
+ 
+ @node Top, (dir), (dir), (dir)
+ @top Expansion in Node Names
+ 
+ @end ifnottex
+ 
+ @menu
+ * @value{node1}  ::
+ * @@node `2'::
+ * ``node'' with---tricks::
+ @end menu
+ 
+ @xref{@@node `2'}.
+ 
+ @node @value{node1}, @@node `2', Top, Top
+ @chapter Chapter 1
+ 
+ @cindex entry for chapter 1
+ This is chapter 1.
+ @xref{@@node `2'}.
+ 
+ @set sec1 Section 1.1
+ 
+ @menu
+ * @value{sec1}::
+ @end menu
+ 
+ @node Section 1.1, , Node 1, Node 1
+ @comment  node-name,  next,  previous,  up
+ 
+ @cindex entry for section 1.1
+ This is section 1.1.
+ 
+ @node @@node `2', ``node'' with---tricks, @value{node1}, Top
+ @comment  node-name,  next,  previous,  up
+ @chapter Node 2
+ 
+ @cindex entry for chapter 2
+ This is chapter 2.
+ @xref{@value{node1}}.  @xref{Node 1}.
+ @xref{``node'' with---tricks, Node with some tricks}.
+ 
+ @node ``node'' with---tricks, , @@node `2', Top
+ 
+ @cindex tricks
+ Another node.
+ 
+ @printindex cp
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/node-value texinfo-4.13/makeinfo/tests/node-value
*** texinfo-4.12/makeinfo/tests/node-value	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/node-value	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,12 ----
+ #!/bin/sh
+ # Test @value expansion in node names.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ 
+ ../makeinfo $srcdir/node-value.txi
+ grep -v "No Value" node-value.info >/dev/null
+ exit_status=$?
+ 
+ rm -f node-value.info
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/node-value.txi texinfo-4.13/makeinfo/tests/node-value.txi
*** texinfo-4.12/makeinfo/tests/node-value.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/node-value.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,15 ----
+ \input texinfo
+ @setfilename node-value.info
+ @set a--foo bar
+ 
+ @node Top, @value{a--foo}, (dir), (dir)
+ @top Var @value{a--foo}
+ @value{a--foo}
+ 
+ @node @value{a--foo}, BarFoo, Top, (dir)
+ @chapter BarFoo
+ 
+ @node BarFoo, , @value{a--foo}, (dir)
+ @chapter bar
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/node-whitespace texinfo-4.13/makeinfo/tests/node-whitespace
*** texinfo-4.12/makeinfo/tests/node-whitespace	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/node-whitespace	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,12 ----
+ #!/bin/sh
+ # Test whitespace collapse in node names.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ 
+ ../makeinfo $srcdir/node-whitespace.txi
+ test -s node-whitespace.info
+ exit_status=$?
+ 
+ rm -f node-whitespace.info
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/tests/node-whitespace.txi texinfo-4.13/makeinfo/tests/node-whitespace.txi
*** texinfo-4.12/makeinfo/tests/node-whitespace.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/node-whitespace.txi	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,30 ----
+ \input texinfo.tex    @c -*-texinfo-*-
+ 
+ @setfilename node-whitespace.info
+ 
+ @c Makeinfo should collapse whitespace in node names.
+ 
+ @ifnottex
+ 
+ @node Top
+ @top Whitespace in Node Names
+ 
+ @end ifnottex
+ 
+ @menu
+ * Chap  1.3  ::
+ * Chap  1.4  :Chap  1.4.
+ @end menu
+ 
+ @node Chap  1.3
+ @chapter Chap 1.3
+ 
+ Can I reach here?
+ 
+ @node Chap      1.4
+ @chapter Another space test
+ 
+ How about here?
+ @xref{Chap      1.3}.
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/quote-args texinfo-4.13/makeinfo/tests/quote-args
*** texinfo-4.12/makeinfo/tests/quote-args	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/quote-args	Fri Oct  6 11:11:38 2006
***************
*** 0 ****
--- 1,19 ----
+ #!/bin/sh
+ # Test @quote-args facility.
+ 
+ : ${srcdir=.}
+ 
+ unset TEXINFO_OUTPUT
+ TMP=quote-args.out
+ 
+ cat > quote-args.samp <<EOT
+ *FIXME: Many arguments, separated by commas, are processed here*
+ natopocotuototam
+ 
+ EOT
+ 
+ ../makeinfo --plaintex $srcdir/quote-args.txi | diff - quote-args.samp
+ exit_code=$?
+ 
+ rm quote-args.samp
+ exit $exit_code
diff -Nrc2 texinfo-4.12/makeinfo/tests/quote-args.txi texinfo-4.13/makeinfo/tests/quote-args.txi
*** texinfo-4.12/makeinfo/tests/quote-args.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/quote-args.txi	Mon Jul 10 06:14:25 2006
***************
*** 0 ****
--- 1,20 ----
+ \input texinfo 
+ @smallbook
+ @setfilename quote-args.info
+ @settitle Quote-args facility in macros
+ 
+ @rmacro cat{a,b}
+ \a\\b\
+ @end rmacro
+ 
+ @macro FIXME{a}
+ @strong{FIXME: \a\}
+ @end macro
+ 
+ @node Top, , (dir), (dir)
+ 
+ @noindent
+ @FIXME{Many arguments, separated by commas, are processed here}
+ @cat{@cat{@cat{@cat{@cat{@cat{na, to}, po}, co}, tu}, oto},tam}
+ @bye
+ 
diff -Nrc2 texinfo-4.12/makeinfo/tests/top texinfo-4.13/makeinfo/tests/top
*** texinfo-4.12/makeinfo/tests/top	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/top	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,11 ----
+ #!/bin/sh
+ # Test that a top node can be ignored.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ ../makeinfo $srcdir/top.txi || exit 1
+ 
+ # Expected warnings due to use of @ifinfo instead of @ifnottex.
+ ../makeinfo --no-split --no-warn --html $srcdir/top.txi -o top.html || exit 1
+ 
+ rm -f top*.html top.info
diff -Nrc2 texinfo-4.12/makeinfo/tests/top.txi texinfo-4.13/makeinfo/tests/top.txi
*** texinfo-4.12/makeinfo/tests/top.txi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/top.txi	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,25 ----
+ \input texinfo
+ @setfilename top.info
+ @settitle top test
+ 
+ @c This traditional top node uses @ifinfo for testing.
+ @c Therefore there will be warnings when processing with --html.
+ @c The solution is to use @ifnottex instead.
+ 
+ @ifinfo
+ @node Top
+ @top Top test
+ 
+ Typical top node.
+ @end ifinfo
+ 
+ @menu
+ * Subnode::
+ @end menu
+ 
+ @node Subnode
+ @chapter Subnode
+ 
+ Subnode.
+ 
+ @bye
diff -Nrc2 texinfo-4.12/makeinfo/tests/twofiles texinfo-4.13/makeinfo/tests/twofiles
*** texinfo-4.12/makeinfo/tests/twofiles	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/tests/twofiles	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,23 ----
+ #!/bin/sh
+ # $Id: twofiles,v 1.3 2004/04/11 17:56:47 karl Exp $
+ # Test that an existing and nonexisting file doesn't cause a
+ # segmentation fault.
+ # From: Arkadiusz Miskiewicz <misiek@pld.ORG.PL>, 15 Feb 2003 13:22:49 +0100.
+ 
+ unset TEXINFO_OUTPUT
+ : ${srcdir=.}
+ 
+ outfile=outfile
+ errfile=errfile
+ trap 'status=$?; rm -f $outfile $errfile && exit $status' 0
+ 
+ ../makeinfo -o /dev/null $srcdir/html-min.txi /nonexistent.texinfo \
+ >$outfile 2>$errfile
+ exit_status=$?
+ 
+ # we expect one error message about /nonexistent.texinfo and bad exit status.
+ test $exit_status -ne 0 \
+ && grep /nonexistent $errfile >/dev/null \
+ && exit_status=0
+ 
+ exit $exit_status
diff -Nrc2 texinfo-4.12/makeinfo/toc.c texinfo-4.13/makeinfo/toc.c
*** texinfo-4.12/makeinfo/toc.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/toc.c	Thu May 22 05:11:34 2008
***************
*** 0 ****
--- 1,378 ----
+ /* toc.c -- table of contents handling.
+    $Id: toc.c,v 1.12 2008/05/19 18:26:48 karl Exp $
+ 
+    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Karl Heinz Marbaise <kama@hippo.fido.de>.  */
+ 
+ #include "system.h"
+ #include "makeinfo.h"
+ #include "cmds.h"
+ #include "files.h"
+ #include "macro.h"
+ #include "node.h"
+ #include "html.h"
+ #include "lang.h"
+ #include "makeinfo.h"
+ #include "sectioning.h"
+ #include "toc.h"
+ #include "xml.h"
+ 
+ /* array of toc entries */
+ static TOC_ENTRY_ELT **toc_entry_alist = NULL;
+ 
+ /* toc_counter start from 0 ... n for every @chapter, @section ... */
+ static int toc_counter = 0;
+ 
+ /* Routine to add an entry to the table of contents */
+ int
+ toc_add_entry (char *tocname, int level, char *node_name, char *anchor)
+ {
+   char *expanded_node, *d;
+   char *s = NULL;
+   char *filename = NULL;
+ 
+   if (!node_name)
+     node_name = "";
+ 
+   /* I assume that xrealloc behaves like xmalloc if toc_entry_alist is
+      NULL */
+   toc_entry_alist = xrealloc (toc_entry_alist,
+                               (toc_counter + 1) * sizeof (TOC_ENTRY_ELT *));
+ 
+   toc_entry_alist[toc_counter] = xmalloc (sizeof (TOC_ENTRY_ELT));
+ 
+   if (html)
+     {
+       /* We need to insert the expanded node name into the toc, so
+          that when we eventually output the toc, its <a ref= link will
+          point to the <a name= tag created by cm_node in the navigation
+          bar.  We cannot expand the containing_node member, for the
+          reasons explained in the WARNING below.  We also cannot wait
+          with the node name expansion until the toc is actually output,
+          since by that time the macro definitions may have been changed.
+          So instead we store in the tocname member the expanded node
+          name and the toc name concatenated together (with the necessary
+          html markup), since that's how they are output.  */
+       if (!anchor)
+         s = expanded_node = expand_node_name (node_name);
+       else
+         expanded_node = anchor;
+       if (splitting)
+ 	{
+ 	  if (!anchor)
+ 	    filename = nodename_to_filename (expanded_node);
+ 	  else
+ 	    filename = filename_part (current_output_filename);
+ 	}
+       if (!anchor)
+         /* Need to HTML-escape the expanded node name like
+             add_anchor_name does...  */
+         d = escaped_anchor_name (expanded_node);
+       else
+         /* Section outside any node, they provided explicit anchor.  */
+         d = xstrdup(anchor);
+         
+       /* Add space for the "> which may be needed, and the tocname */  
+       d = xrealloc (d, strlen (d) + strlen (tocname) + 3);
+       if (!anchor)
+         strcat (d, "\">");
+       strcat (d, tocname);
+       free (tocname);       /* it was malloc'ed by substring() */
+       free (expanded_node);
+       toc_entry_alist[toc_counter]->name = d;
+     }
+   else
+     toc_entry_alist[toc_counter]->name = tocname;
+   /* WARNING!  The node name saved in containing_node member must
+      be the node name with _only_ macros expanded (the macros in
+      the node name are expanded by cm_node when it grabs the name
+      from the @node directive).  Non-macros, like @value, @@ and
+      other @-commands must NOT be expanded in containing_node,
+      because toc_find_section_of_node looks up the node name where
+      they are also unexpanded.  You *have* been warned!  */
+   toc_entry_alist[toc_counter]->containing_node = xstrdup (node_name);
+   toc_entry_alist[toc_counter]->level = level;
+   toc_entry_alist[toc_counter]->number = toc_counter;
+   toc_entry_alist[toc_counter]->html_file = filename;
+ 
+   /* have to be done at least */
+   return toc_counter++;
+ }
+ 
+ /* Return the name of a chapter/section/subsection etc. that
+    corresponds to the node NODE.  If the node isn't found,
+    return NULL.
+ 
+    WARNING!  This function relies on NODE being unexpanded
+    except for macros (i.e., @value, @@, and other non-macros
+    should NOT be expanded), because the containing_node member
+    stores unexpanded node names.
+ 
+    Note that this function returns the first section whose
+    containing node is NODE.  Thus, they will lose if they use
+    more than a single chapter structioning command in a node,
+    or if they have a node without any structuring commands.  */
+ char *
+ toc_find_section_of_node (char *node)
+ {
+   int i;
+ 
+   if (!node)
+     node = "";
+   for (i = 0; i < toc_counter; i++)
+     if (STREQ (node, toc_entry_alist[i]->containing_node))
+       return toc_entry_alist[i]->name;
+ 
+   return NULL;
+ }
+ 
+ /* free up memory used by toc entries */
+ void
+ toc_free (void)
+ {
+   int i;
+ 
+   if (toc_counter)
+     {
+       for (i = 0; i < toc_counter; i++)
+         {
+           free (toc_entry_alist[i]->name);
+           free (toc_entry_alist[i]->containing_node);
+           free (toc_entry_alist[i]);
+         }
+ 
+       free (toc_entry_alist);
+       toc_entry_alist = NULL; /* to be sure ;-) */
+       toc_counter = 0; /* to be absolutley sure ;-) */
+     }
+ }
+ 
+ /* Print table of contents in HTML.  */
+ 
+ static void
+ contents_update_html (void)
+ {
+   int i;
+   int k;
+   int last_level;
+ 
+   /* does exist any toc? */
+   if (!toc_counter)
+       /* no, so return to sender ;-) */
+       return;
+ 
+   add_html_block_elt_args ("\n<div class=\"contents\">\n<h2>%s</h2>\n<ul>\n", gdt("Table of Contents"));
+ 
+   last_level = toc_entry_alist[0]->level;
+ 
+   for (i = 0; i < toc_counter; i++)
+     {
+       if (toc_entry_alist[i]->level > last_level)
+         {
+           /* unusual, but it is possible
+              @chapter ...
+              @subsubsection ...      ? */
+           for (k = 0; k < (toc_entry_alist[i]->level-last_level); k++)
+             add_html_block_elt ("<ul>\n");
+         }
+       else if (toc_entry_alist[i]->level < last_level)
+         {
+           /* @subsubsection ...
+              @chapter ... this IS usual.*/
+           for (k = 0; k < (last_level-toc_entry_alist[i]->level); k++)
+             add_word ("</li></ul>\n");
+         }
+ 
+       /* No double entries in TOC.  */
+       if (!(i && strcmp (toc_entry_alist[i]->name,
+ 			 toc_entry_alist[i-1]->name) == 0))
+         {
+           /* each toc entry is a list item.  */
+           add_word ("<li>");
+ 
+           /* Insert link -- to an external file if splitting, or
+              within the current document if not splitting.  */
+ 	  add_word ("<a ");
+           /* For chapters (only), insert an anchor that the short contents
+              will link to.  */
+           if (toc_entry_alist[i]->level == 0)
+ 	    {
+ 	      char *p = toc_entry_alist[i]->name;
+ 
+ 	      /* toc_entry_alist[i]->name has the form `foo">bar',
+ 		 that is, it includes both the node name and anchor
+ 		 text.  We need to find where `foo', the node name,
+ 		 ends, and use that in toc_FOO.  */
+ 	      while (*p && *p != '"')
+ 		p++;
+ 	      add_word_args ("name=\"toc_%.*s\" ",
+ 		       p - toc_entry_alist[i]->name, toc_entry_alist[i]->name);
+               /* save the link if necessary */		       
+               if (internal_links_stream) 
+                 {
+                   fprintf (internal_links_stream, "%s#toc_%.*s\ttoc\t%s\n",
+                       splitting ? toc_entry_alist[i]->html_file : "",
+                       p - toc_entry_alist[i]->name, toc_entry_alist[i]->name,
+                       p + 2);
+                 }
+ 	    }
+ 	  add_word_args ("href=\"%s#%s</a>\n",
+ 		   splitting ? toc_entry_alist[i]->html_file : "",
+ 		   toc_entry_alist[i]->name);
+         }
+ 
+       last_level = toc_entry_alist[i]->level;
+     }
+ 
+   /* Go back to start level. */
+   if (toc_entry_alist[0]->level < last_level)
+     for (k = 0; k < (last_level-toc_entry_alist[0]->level); k++)
+       add_word ("</li></ul>\n");
+ 
+   add_word ("</li></ul>\n</div>\n\n");
+ }
+ 
+ /* print table of contents in ASCII (--no-headers)
+    May be we should create a new command line switch --ascii ? */
+ static void
+ contents_update_info (void)
+ {
+   int i;
+   int k;
+ 
+   if (!toc_counter)
+       return;
+ 
+   insert_string ((char *) gdt("Table of Contents"));
+   insert ('\n');
+   for (i = 0; i < strlen (gdt("Table of Contents")); i++)
+     insert ('*');
+   insert_string ("\n\n");
+ 
+   for (i = 0; i < toc_counter; i++)
+     {
+       if (toc_entry_alist[i]->level == 0)
+         add_char ('\n');
+ 
+       /* indention with two spaces per level, should this
+          changed? */
+       for (k = 0; k < toc_entry_alist[i]->level; k++)
+         insert_string ("  ");
+ 
+       insert_string (toc_entry_alist[i]->name);
+       insert ('\n');
+     }
+   insert_string ("\n\n");
+ }
+ 
+ /* shortcontents in HTML; Should this produce a standalone file? */
+ static void
+ shortcontents_update_html (char *contents_filename)
+ {
+   int i;
+   char *toc_file = NULL;
+ 
+   /* does exist any toc? */
+   if (!toc_counter)
+     return;
+ 
+   add_html_block_elt_args ("\n<div class=\"shortcontents\">\n<h2>%s</h2>\n<ul>\n", gdt("Short Contents"));
+ 
+   if (contents_filename)
+     toc_file = filename_part (contents_filename);
+ 
+   for (i = 0; i < toc_counter; i++)
+     {
+       char *name = toc_entry_alist[i]->name;
+ 
+       if (toc_entry_alist[i]->level == 0)
+ 	{
+ 	  if (contents_filename)
+ 	    add_word_args ("<li><a href=\"%s#toc_%s</a></li>\n",
+ 		     splitting ? toc_file : "", name);
+ 	  else
+ 	    add_word_args ("<a href=\"%s#%s</a>\n",
+ 		     splitting ? toc_entry_alist[i]->html_file : "", name);
+ 	}
+     }
+   add_word ("</ul>\n</div>\n\n");
+   if (contents_filename)
+     free (toc_file);
+ }
+ 
+ /* short contents in ASCII (--no-headers).  */
+ static void
+ shortcontents_update_info (void)
+ {
+   int i;
+ 
+   if (!toc_counter)
+       return;
+ 
+   insert_string ((char *) gdt("Short Contents"));
+   insert ('\n');
+   for (i = 0; i < strlen (gdt("Short Contents")); i++)
+     insert ('*');
+   insert_string ("\n\n");
+ 
+   for (i = 0; i < toc_counter; i++)
+     {
+       if (toc_entry_alist[i]->level == 0)
+         {
+           insert_string (toc_entry_alist[i]->name);
+           insert ('\n');
+         }
+     }
+   insert_string ("\n\n");
+ }
+ 
+ void
+ cm_contents (int arg)
+ {
+   /* the file where we found the @contents directive */
+   static char *contents_filename;
+ 
+   /* No need to mess with delayed stuff for XML and Docbook.  */
+   if (xml)
+     {
+       if (arg == START)
+         {
+           int elt = STREQ (command, "contents") ? CONTENTS : SHORTCONTENTS;
+           xml_insert_element (elt, START);
+           xml_insert_element (elt, END);
+         }
+     }
+   else if (!handling_delayed_writes)
+     {
+       register_delayed_write (STREQ (command, "contents")
+           ? "@contents" : "@shortcontents");
+ 
+       if (html && STREQ (command, "contents"))
+         {
+           if (contents_filename)
+             free (contents_filename);
+           contents_filename = xstrdup (current_output_filename);
+         }
+     }
+   else if (html)
+     STREQ (command, "contents")
+       ? contents_update_html () : shortcontents_update_html (contents_filename);
+   else if (no_headers)
+     STREQ (command, "contents")
+       ? contents_update_info () : shortcontents_update_info ();
+ }
diff -Nrc2 texinfo-4.12/makeinfo/toc.h texinfo-4.13/makeinfo/toc.h
*** texinfo-4.12/makeinfo/toc.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/toc.h	Sun Jul  1 14:20:33 2007
***************
*** 0 ****
--- 1,44 ----
+ /* toc.h -- table of contents handling.
+    $Id: toc.h,v 1.5 2007/07/01 21:20:33 karl Exp $
+ 
+    Copyright (C) 1999, 2007 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Written by Karl Heinz Marbaise <kama@hippo.fido.de>.  */
+ 
+ #ifndef TOC_H
+ #define TOC_H
+ 
+ /* Structure to hold one entry for the toc. */
+ typedef struct toc_entry_elt {
+   char *name;
+   char *containing_node; /* Name of node containing this section.  */
+   char *html_file;       /* Name of HTML node-file in split-HTML mode */
+   int number;            /* counting number from 0...n independent from
+                             chapter/section can be used for anchors or
+                             references to it.  */
+   int level;             /* level: chapter, section, subsection... */
+ } TOC_ENTRY_ELT;
+ 
+ /* all routines which have relationship with TOC should start with
+    toc_ (this is a kind of name-space) */
+ extern int toc_add_entry (char *tocname, int level,
+     char *node_name, char *anchor); /* return the number for the toc-entry */
+ extern void toc_free (void);
+ extern char *toc_find_section_of_node (char *node);
+ 
+ extern void cm_contents (int arg);
+ 
+ #endif /* not TOC_H */
diff -Nrc2 texinfo-4.12/makeinfo/xml.c texinfo-4.13/makeinfo/xml.c
*** texinfo-4.12/makeinfo/xml.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/xml.c	Tue Feb 12 17:00:55 2008
***************
*** 0 ****
--- 1,2252 ----
+ /* xml.c -- xml output, both TexinfoML and Docbook.
+    $Id: xml.c,v 1.75 2008/01/31 18:33:27 karl Exp $
+ 
+    Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Philippe Martin <feloy@free.fr>.  */
+ 
+ #include "system.h"
+ #include "makeinfo.h"
+ #include "insertion.h"
+ #include "files.h"
+ #include "float.h"
+ #include "macro.h"
+ #include "cmds.h"
+ #include "lang.h"
+ 
+ #include "xml.h"
+ 
+ #include <assert.h>
+ 
+ #if !__OPTIMIZE__
+ /* To make enum names available to debugger. */
+ static enum xml_element xml_element_dummy;
+ #endif
+ 
+ typedef struct _element
+ {
+   char name[32];
+   int contains_para;
+   int contained_in_para;
+   int keep_space;
+ } element;
+ 
+ element texinfoml_element_list [] = {
+   { "texinfo",             1, 0, 0 },
+   { "setfilename",         0, 0, 0 },
+   { "titlefont",           0, 0, 0 },
+   { "settitle",            0, 0, 0 },
+   { "documentdescription", 1, 0, 0 },
+ 
+   { "node",                1, 0, 0 },
+   { "nodenext",            0, 0, 0 },
+   { "nodeprev",            0, 0, 0 },
+   { "nodeup",              0, 0, 0 },
+ 
+   { "chapter",             1, 0, 0 },
+   { "section",             1, 0, 0 },
+   { "subsection",          1, 0, 0 },
+   { "subsubsection",       1, 0, 0 },
+ 
+   { "top",                 1, 0, 0 },
+   { "unnumbered",          1, 0, 0 },
+   { "unnumberedsec",       1, 0, 0 },
+   { "unnumberedsubsec",    1, 0, 0 },
+   { "unnumberedsubsubsec", 1, 0, 0 },
+ 
+   { "appendix",            1, 0, 0 },
+   { "appendixsec",         1, 0, 0 },
+   { "appendixsubsec",      1, 0, 0 },
+   { "appendixsubsubsec",   1, 0, 0 },
+ 
+   { "majorheading",        0, 0, 0 },
+   { "chapheading",         0, 0, 0 },
+   { "heading",             0, 0, 0 },
+   { "subheading",          0, 0, 0 },
+   { "subsubheading",       0, 0, 0 },
+ 
+   { "titlepage",           1, 0, 0 },
+   { "author",              0, 0, 0 },
+   { "booktitle",           0, 0, 0 },
+   { "booksubtitle",        0, 0, 0 },
+ 
+   { "menu",                1, 0, 0 },
+   { "detailmenu",          1, 0, 0 },
+   { "menuentry",           0, 0, 0 },
+   { "menutitle",           0, 0, 0 },
+   { "menucomment",         0, 0, 0 },
+   { "menunode",            0, 0, 0 },
+   { "nodename",            0, 0, 0 },
+ 
+   { "acronym",             0, 1, 0 },
+   { "acronymword",         0, 1, 0 },
+   { "acronymdesc",         0, 1, 0 },
+ 
+   { "abbrev",              0, 1, 0 },
+   { "abbrevword",          0, 1, 0 },
+   { "abbrevdesc",          0, 1, 0 },
+ 
+   { "tt",                  0, 1, 0 },
+   { "code",                0, 1, 0 },
+   { "command",             0, 1, 0 },
+   { "env",                 0, 1, 0 },
+   { "file",                0, 1, 0 },
+   { "option",              0, 1, 0 },
+   { "samp",                0, 1, 0 },
+   { "kbd",                 0, 1, 0 },
+   { "url",                 0, 1, 0 },
+   { "key",                 0, 1, 0 },
+   { "var",                 0, 1, 0 },
+   { "sc",                  0, 1, 0 },
+   { "dfn",                 0, 1, 0 },
+   { "emph",                0, 1, 0 },
+   { "strong",              0, 1, 0 },
+   { "cite",                0, 1, 0 },
+   { "notfixedwidth",       0, 1, 0 },
+   { "i",                   0, 1, 0 },
+   { "b",                   0, 1, 0 },
+   { "r",                   0, 1, 0 },
+   { "slanted",             0, 1, 0 },
+   { "sansserif",           0, 1, 0 },
+ 
+   { "exdent",              0, 0, 0 },
+ 
+   { "title",               0, 0, 0 },
+   { "ifinfo",              1, 0, 0 },
+   { "sp",                  0, 0, 0 },
+   { "center",              1, 0, 0 },
+   { "dircategory",         0, 0, 0 },
+   { "quotation",           1, 0, 0 },
+   { "example",             0, 0, 1 },
+   { "smallexample",        0, 0, 1 },
+   { "lisp",                0, 0, 1 },
+   { "smalllisp",           0, 0, 1 },
+   { "cartouche",           1, 0, 0 },
+   { "copying",             1, 0, 0 },
+   { "format",              0, 0, 1 },
+   { "smallformat",         0, 0, 1 },
+   { "display",             0, 0, 1 },
+   { "smalldisplay",        0, 0, 1 },
+   { "verbatim",            0, 0, 1 },
+   { "footnote",            0, 1, 0 },
+   { "",                    0, 1, 0 }, /* LINEANNOTATION (docbook) */
+ 
+   { "",                    1, 0, 0 }, /* TIP (docbook)       */
+   { "",                    1, 0, 0 }, /* NOTE (docbook)      */
+   { "",                    1, 0, 0 }, /* IMPORTANT (docbook) */
+   { "",                    1, 0, 0 }, /* WARNING (docbook)   */
+   { "",                    1, 0, 0 }, /* CAUTION (docbook)   */
+ 
+   { "itemize",             0, 0, 0 },
+   { "itemfunction",        0, 0, 0 },
+   { "item",                1, 0, 0 },
+   { "enumerate",           0, 0, 0 },
+   { "table",               0, 0, 0 },
+   { "tableitem",           0, 0, 0 },
+   { "tableterm",           0, 0, 0 },
+ 
+   { "indexterm",           0, 1, 0 },
+ 
+   { "math",                0, 1, 0 },
+ 
+   { "dmn",                 0, 1, 0 },
+ 
+   { "clicksequence",       0, 1, 0 },
+   { "click",               0, 1, 0 },
+ 
+   { "xref",                0, 1, 0 },
+   { "xrefnodename",        0, 1, 0 },
+   { "xrefinfoname",        0, 1, 0 },
+   { "xrefprinteddesc",     0, 1, 0 },
+   { "xrefinfofile",        0, 1, 0 },
+   { "xrefprintedname",     0, 1, 0 },
+ 
+   { "inforef",             0, 1, 0 },
+   { "inforefnodename",     0, 1, 0 },
+   { "inforefrefname",      0, 1, 0 },
+   { "inforefinfoname",     0, 1, 0 },
+ 
+   { "uref",                0, 1, 0 },
+   { "urefurl",             0, 1, 0 },
+   { "urefdesc",            0, 1, 0 },
+   { "urefreplacement",     0, 1, 0 },
+ 
+   { "email",               0, 1, 0 },
+   { "emailaddress",        0, 1, 0 },
+   { "emailname",           0, 1, 0 },
+ 
+   { "group",               0, 0, 0 },
+   { "float",               1, 0, 0 },
+   { "floattype",           0, 0, 0 },
+   { "floatpos",            0, 0, 0 },
+   { "caption",             0, 0, 0 },
+   { "shortcaption",        0, 0, 0 },
+ 
+   { "",                    0, 0, 0 }, /* TABLE (docbook) */
+   { "",                    0, 0, 0 }, /* FIGURE (docbook) */
+   { "",                    0, 0, 0 }, /* EXAMPLE (docbook) */
+   { "",                    1, 0, 0 }, /* SIDEBAR (docbook) */
+ 
+   { "printindex",          0, 0, 0 },
+   { "listoffloats",        0, 0, 0 },
+   { "anchor",              0, 1, 0 },
+ 
+   { "image",               0, 0, 0 },
+   { "inlineimage",         0, 1, 0 },
+   { "alttext",             0, 1, 0 },
+ 
+   { "",                    0, 1, 0 }, /* PRIMARY (docbook) */
+   { "",                    0, 1, 0 }, /* SECONDARY (docbook) */
+   { "",                    0, 0, 0 }, /* INFORMALFIGURE (docbook) */
+   { "",                    0, 0, 0 }, /* MEDIAOBJECT (docbook) */
+   { "",                    0, 0, 0 }, /* IMAGEOBJECT (docbook) */
+   { "",                    0, 0, 0 }, /* IMAGEDATA (docbook) */
+   { "",                    0, 0, 0 }, /* TEXTOBJECT (docbook) */
+   { "",                    0, 0, 0 }, /* INDEXENTRY (docbook) */
+   { "",                    0, 0, 0 }, /* PRIMARYIE (docbook) */
+   { "",                    0, 0, 0 }, /* SECONDARYIE (docbook) */
+   { "",                    0, 0, 0 }, /* INDEXDIV (docbook) */
+   { "multitable",          0, 0, 0 },
+   { "",                    0, 0, 0 }, /* TGROUP (docbook) */
+   { "columnfraction",      0, 0, 0 },
+   { "thead",               0, 0, 0 },
+   { "tbody",               0, 0, 0 },
+   { "entry",               0, 0, 0 },
+   { "row",                 0, 0, 0 },
+   { "",                    0, 0, 0 }, /* BOOKINFO (docbook) */
+   { "",                    0, 0, 0 }, /* ABSTRACT (docbook) */
+   { "",                    0, 0, 0 }, /* REPLACEABLE (docbook) */
+   { "",                    0, 0, 0 }, /* ENVAR (docbook) */
+   { "",                    0, 0, 0 }, /* COMMENT (docbook) */
+   { "",                    0, 0, 0 }, /* FUNCTION (docbook) */
+   { "",                    0, 0, 0 }, /* LEGALNOTICE (docbook) */
+ 
+   { "contents",            0, 0, 0 },
+   { "shortcontents",       0, 0, 0 },
+   { "documentlanguage",    0, 0, 0 },
+ 
+   { "setvalue",            0, 0, 0 },
+   { "clearvalue",          0, 0, 0 },
+ 
+   { "definition",          0, 0, 0 },
+   { "definitionterm",      0, 0, 0 },
+   { "definitionitem",      1, 0, 0 },
+   { "defcategory",         0, 0, 0 },
+   { "deffunction",         0, 0, 0 },
+   { "defvariable",         0, 0, 0 },
+   { "defparam",            0, 0, 0 },
+   { "defdelimiter",        0, 0, 0 },
+   { "deftype",             0, 0, 0 },
+   { "defparamtype",        0, 0, 0 },
+   { "defdatatype",         0, 0, 0 },
+   { "defclass",            0, 0, 0 },
+   { "defclassvar",         0, 0, 0 },
+   { "defoperation",        0, 0, 0 },
+   { "frenchspacing",       0, 0, 0 },
+ 
+   { "para",                0, 0, 0 } /* Must be last */
+   /* name / contains para / contained in para / preserve space */
+ };
+ 
+ element docbook_element_list [] = {
+   { "book",                0, 0, 0 }, /* TEXINFO */
+   { "",                    0, 0, 0 }, /* SETFILENAME */
+   { "",                    0, 0, 0 }, /* TITLEINFO */
+   { "title",               0, 0, 0 }, /* SETTITLE */
+   { "",                    1, 0, 0 }, /* DOCUMENTDESCRIPTION (?) */
+ 
+   { "",                    1, 0, 0 }, /* NODE */
+   { "",                    0, 0, 0 }, /* NODENEXT */
+   { "",                    0, 0, 0 }, /* NODEPREV */
+   { "",                    0, 0, 0 }, /* NODEUP */
+ 
+   { "chapter",             1, 0, 0 },
+   { "sect1",               1, 0, 0 }, /* SECTION */
+   { "sect2",               1, 0, 0 }, /* SUBSECTION */
+   { "sect3",               1, 0, 0 }, /* SUBSUBSECTION */
+ 
+   { "chapter",             1, 0, 0 }, /* TOP */
+   { "chapter",             1, 0, 0 }, /* UNNUMBERED */
+   { "sect1",               1, 0, 0 }, /* UNNUMBEREDSEC */
+   { "sect2",               1, 0, 0 }, /* UNNUMBEREDSUBSEC */
+   { "sect3",               1, 0, 0 }, /* UNNUMBEREDSUBSUBSEC */
+ 
+   { "appendix",            1, 0, 0 },
+   { "sect1",               1, 0, 0 }, /* APPENDIXSEC */
+   { "sect2",               1, 0, 0 }, /* APPENDIXSUBSEC */
+   { "sect3",               1, 0, 0 }, /* APPENDIXSUBSUBSEC */
+ 
+   { "bridgehead",          0, 0, 0 }, /* MAJORHEADING */
+   { "bridgehead",          0, 0, 0 }, /* CHAPHEADING */
+   { "bridgehead",          0, 0, 0 }, /* HEADING */
+   { "bridgehead",          0, 0, 0 }, /* SUBHEADING */
+   { "bridgehead",          0, 0, 0 }, /* SUBSUBHEADING */
+ 
+   { "",                    0, 0, 0 }, /* TITLEPAGE */
+   { "",                    0, 0, 0 }, /* AUTHOR */
+   { "",                    0, 0, 0 }, /* BOOKTITLE */
+   { "",                    0, 0, 0 }, /* BOOKSUBTITLE */
+ 
+   { "",                    1, 0, 0 }, /* MENU */
+   { "",                    1, 0, 0 }, /* DETAILMENU */
+   { "",                    1, 0, 0 }, /* MENUENTRY */
+   { "",                    0, 0, 0 }, /* MENUTITLE */
+   { "",                    1, 0, 0 }, /* MENUCOMMENT */
+   { "",                    0, 0, 0 }, /* MENUNODE */
+   { "anchor",              0, 0, 0 }, /* NODENAME */
+ 
+   { "acronym",             0, 1, 0 },
+   { "",                    0, 1, 0 }, /* ACRONYMWORD */
+   { "",                    0, 1, 0 }, /* ACRONYMDESC */
+ 
+   { "abbrev",              0, 1, 0 },
+   { "",                    0, 1, 0 }, /* ABBREVWORD */
+   { "",                    0, 1, 0 }, /* ABBREVDESC */
+ 
+   { "literal",             0, 1, 0 }, /* TT */
+   { "literal",             0, 1, 0 }, /* CODE */
+   { "command",             0, 1, 0 }, /* COMMAND */
+   { "envar",               0, 1, 0 }, /* ENV */
+   { "filename",            0, 1, 0 }, /* FILE */
+   { "option",              0, 1, 0 }, /* OPTION */
+   { "literal",             0, 1, 0 }, /* SAMP */
+   { "userinput",           0, 1, 0 }, /* KBD */
+   { "wordasword",          0, 1, 0 }, /* URL */
+   { "keycap",              0, 1, 0 }, /* KEY */
+   { "replaceable",         0, 1, 0 }, /* VAR */
+   { "",                    0, 1, 0 }, /* SC */
+   { "firstterm",           0, 1, 0 }, /* DFN */
+   { "emphasis",            0, 1, 0 }, /* EMPH */
+   { "emphasis",            0, 1, 0 }, /* STRONG */
+   { "citetitle",           0, 1, 0 }, /* CITE */
+   { "",                    0, 1, 0 }, /* NOTFIXEDWIDTH */
+   { "wordasword",          0, 1, 0 }, /* I */
+   { "emphasis",            0, 1, 0 }, /* B */
+   { "",                    0, 1, 0 }, /* R */
+   { "",                    0, 1, 0 }, /* SLANTED */
+   { "",                    0, 1, 0 }, /* SANSSERIF */
+ 
+   { "",                    0, 0, 0 }, /* EXDENT */
+ 
+   { "title",               0, 0, 0 },
+   { "",                    1, 0, 0 }, /* IFINFO */
+   { "",                    0, 0, 0 }, /* SP */
+   { "",                    1, 0, 0 }, /* CENTER */
+   { "",                    0, 0, 0 }, /* DIRCATEGORY */
+   { "blockquote",          1, 0, 0 }, /* QUOTATION */
+   { "screen",              0, 0, 1 }, /* EXAMPLE */
+   { "screen",              0, 0, 1 }, /* SMALLEXAMPLE */
+   { "programlisting",      0, 0, 1 }, /* LISP */
+   { "programlisting",      0, 0, 1 }, /* SMALLLISP */
+   { "",                    1, 0, 0 }, /* CARTOUCHE */
+   { "",                    1, 0, 0 }, /* COPYING */
+   { "screen",              0, 1, 1 }, /* FORMAT */
+   { "screen",              0, 1, 1 }, /* SMALLFORMAT */
+   { "literallayout",       0, 1, 1 }, /* DISPLAY */
+   { "literallayout",       0, 1, 1 }, /* SMALLDISPLAY */
+   { "screen",              0, 0, 1 }, /* VERBATIM */
+   { "footnote",            0, 1, 0 },
+   { "lineannotation",      0, 1, 0 },
+ 
+   { "tip",                 1, 0, 0 },
+   { "note",                1, 0, 0 },
+   { "important",           1, 0, 0 },
+   { "warning",             1, 0, 0 },
+   { "caution",             1, 0, 0 },
+ 
+   { "itemizedlist",        0, 0, 0 }, /* ITEMIZE */
+   { "",                    0, 0, 0 }, /* ITEMFUNCTION */
+   { "listitem",            1, 0, 0 }, /* ITEM */
+   { "orderedlist",         0, 0, 0 }, /* ENUMERATE */
+   { "variablelist",        0, 0, 0 }, /* TABLE */
+   { "varlistentry",        0, 0, 0 }, /* TABLEITEM */
+   { "term",                0, 0, 0 }, /* TABLETERM */
+ 
+   { "indexterm",           0, 1, 0 }, /* INDEXTERM */
+ 
+   { "",                    0, 1, 0 }, /* MATH */
+ 
+   { "",                    0, 1, 0 }, /* DIMENSION */
+ 
+   { "",                    0, 1, 0 }, /* CLICKSEQUENCE */
+   { "",                    0, 1, 0 }, /* CLICK */
+ 
+   { "xref",                0, 1, 0 }, /* XREF */
+   { "link",                0, 1, 0 }, /* XREFNODENAME */
+   { "",                    0, 1, 0 }, /* XREFINFONAME */
+   { "",                    0, 1, 0 }, /* XREFPRINTEDDESC */
+   { "",                    0, 1, 0 }, /* XREFINFOFILE */
+   { "",                    0, 1, 0 }, /* XREFPRINTEDNAME */
+ 
+   { "",                    0, 1, 0 }, /* INFOREF */
+   { "",                    0, 1, 0 }, /* INFOREFNODENAME */
+   { "",                    0, 1, 0 }, /* INFOREFREFNAME */
+   { "",                    0, 1, 0 }, /* INFOREFINFONAME */
+ 
+   { "ulink",               0, 1, 0 }, /* UREF */
+   { "",                    0, 1, 0 }, /* UREFURL */
+   { "",                    0, 1, 0 }, /* UREFDESC */
+   { "",                    0, 1, 0 }, /* UREFREPLACEMENT */
+ 
+   { "ulink",               0, 1, 0 }, /* EMAIL */
+   { "email",               0, 1, 0 }, /* EMAILADDRESS */
+   { "",                    0, 1, 0 }, /* EMAILNAME */
+ 
+   { "",                    0, 0, 0 }, /* GROUP */
+   { "",                    1, 0, 0 }, /* FLOAT */
+   { "",                    0, 0, 0 }, /* FLOATTYPE */
+   { "",                    0, 0, 0 }, /* FLOATPOS */
+   { "",                    0, 0, 0 }, /* CAPTION */
+   { "",                    0, 0, 0 }, /* SHORTCAPTION */
+ 
+   { "table",               0, 1, 0 },
+   { "figure",              0, 1, 0 },
+   { "example",             1, 1, 0 },
+   { "sidebar",             1, 0, 0 },
+ 
+   { "index",               0, 0, 0 }, /* PRINTINDEX */
+   { "",                    0, 1, 0 }, /* LISTOFFLOATS */
+   { "anchor",              0, 1, 0 }, /* ANCHOR */
+ 
+   { "",                    0, 0, 0 }, /* IMAGE */
+   { "inlinemediaobject",   0, 1, 0 }, /* INLINEIMAGE */
+   { "",                    0, 0, 0 }, /* IMAGEALTTEXT */
+ 
+   { "primary",             0, 1, 0 }, /* PRIMARY */
+   { "secondary",           0, 1, 0 },
+   { "informalfigure",      0, 0, 0 },
+   { "mediaobject",         0, 0, 0 },
+   { "imageobject",         0, 1, 0 },
+   { "imagedata",           0, 1, 0 },
+   { "textobject",          0, 1, 0 },
+   { "indexentry",          0, 0, 0 },
+   { "primaryie",           0, 0, 0 },
+   { "secondaryie",         0, 0, 0 },
+   { "indexdiv",            0, 0, 0 },
+   { "informaltable",       0, 0, 0 },
+   { "tgroup",              0, 0, 0 },
+   { "colspec",             0, 0, 0 },
+   { "thead",               0, 0, 0 },
+   { "tbody",               0, 0, 0 },
+   { "entry",               0, 0, 0 },
+   { "row",                 0, 0, 0 },
+   { "bookinfo",            0, 0, 0 },
+   { "abstract",            1, 0, 0 },
+   { "replaceable",         0, 0, 0 },
+   { "envar",               0, 1, 0 },
+   { "comment",             0, 0, 0 },
+   { "function",            0, 1, 0 },
+   { "legalnotice",         1, 0, 0 },
+ 
+   { "",                    0, 0, 0 }, /* CONTENTS (xml) */
+   { "",                    0, 0, 0 }, /* SHORTCONTENTS (xml) */
+   { "",                    0, 0, 0 }, /* DOCUMENT LANGUAGE (xml) */
+ 
+   { "",                    0, 0, 0 }, /* SETVALUE (xml) */
+   { "",                    0, 0, 0 }, /* CLEARVALUE (xml) */
+ 
+   { "informalfigure",      1, 0, 0 }, /* DEFINITION */
+   { "synopsis",            0, 0, 1 }, /* DEFINITIONTERM */
+   { "blockquote",          1, 0, 0 }, /* DEFINITIONITEM (xml) */
+   { "",                    0, 0, 0 }, /* DEFCATEGORY (xml) */
+   { "function",            0, 0, 0 }, /* DEFFUNCTION */
+   { "varname",             0, 0, 0 }, /* DEFVARIABLE */
+   { "replaceable",         0, 0, 0 }, /* DEFPARAM */
+   { "",                    0, 0, 0 }, /* DEFDELIMITER (xml) */
+   { "returnvalue",         0, 0, 0 }, /* DEFTYPE */
+   { "type",                0, 0, 0 }, /* DEFPARAMTYPE */
+   { "structname",          0, 0, 0 }, /* DEFDATATYPE */
+   { "classname",           0, 0, 0 }, /* DEFCLASS */
+   { "property",            0, 0, 0 }, /* DEFCLASSVAR */
+   { "methodname",          0, 0, 0 }, /* DEFOPERATION */
+   { "",                    0, 0, 0 }, /* FRENCHSPACING */
+ 
+   { "para",                0, 0, 0 } /* Must be last */
+   /* name / contains para / contained in para / preserve space */
+ };
+ 
+ element *xml_element_list = NULL;
+ 
+ 
+ typedef struct _replace_element
+ {
+   int element_to_replace;
+   int element_containing;
+   int element_replacing;
+ } replace_element;
+ 
+ /* Elements to replace - Docbook only
+    -------------------
+    if `element_to_replace' have to be inserted
+    as a child of `element_containing,'
+    use `element_replacing' instead.
+ 
+    A value of `-1' for element_replacing means `do not use any element.'
+ */
+ 
+ replace_element replace_elements [] = {
+   { I, TABLETERM, EMPH },
+   { B, TABLETERM, EMPH },
+   { TT, CODE, -1 },
+   { EXAMPLE, DISPLAY, -1 },
+   { CODE, DFN, -1 },
+   { CODE, VAR, -1 },
+   { EMPH, CODE, REPLACEABLE },
+   { VAR, VAR, -1},
+   { VAR, B, EMPH},
+   { B, CODE, ENVAR},
+   { CODE, I, EMPH},
+   { SAMP, VAR, -1 },
+   { FORMAT, BOOKINFO, ABSTRACT },
+   { QUOTATION, ABSTRACT, -1},
+   { LINEANNOTATION, LINEANNOTATION, -1 },
+   { LEGALNOTICE, ABSTRACT, -1 },
+   { QUOTATION, QUOTATION, -1 },
+   /* Formal versions of table and image elements.  */
+   { MULTITABLE, FLOAT, FLOATTABLE },
+   { INFORMALFIGURE, FLOAT, FLOATFIGURE },
+   { CARTOUCHE, FLOAT, FLOATCARTOUCHE },
+   /* Unnecessary markup in @defun blocks.  */
+   { VAR, DEFPARAM, -1 },
+   { CODE, DEFTYPE, -1 },
+   /* Add your elements to replace here */
+   {-1, 0, 0}
+ };
+ 
+ int xml_in_menu_entry = 0;
+ int xml_in_menu_entry_comment = 0;
+ int xml_node_open = 0;
+ int xml_node_level = -1;
+ int xml_in_para = 0;
+ int xml_just_after_element = 0;
+ int xml_keep_space = 0;
+ 
+ int xml_no_indent = 0;
+ 
+ int xml_no_para = 0;
+ char *xml_node_id = NULL;
+ 
+ /* Currently sorting the index. */
+ int xml_sort_index = 0;
+ 
+ int xml_in_xref_token = 0;
+ int xml_in_bookinfo = 0;
+ int xml_in_book_title = 0;
+ int xml_in_abstract = 0;
+ 
+ /* Non-zero if we are handling an element that can appear between
+    @item and @itemx, @deffn and @deffnx.  */
+ int xml_dont_touch_items_defs = 0;
+ 
+ /* We need to keep footnote state, because elements inside footnote may try
+    to close the previous parent para.  */
+ static int xml_in_footnote = 0;
+ 
+ static int xml_after_table_term = 0;
+ static int book_started = 0;
+ static int first_section_opened = 0;
+ 
+ static int xml_in_tableitem[256];
+ static int xml_in_item[256];
+ static int xml_table_level = 0;
+ 
+ static int xml_in_def_item[256];
+ static int xml_definition_level = 0;
+ int xml_after_def_term = 0;
+ 
+ static int in_table_title = 0;
+ 
+ static int in_indexentry = 0;
+ static int in_secondary = 0;
+ static int in_indexterm = 0;
+ 
+ /* Technically there are certain Unicode characters which cannot
+    appear.  Trying to implement the real rules would lead to deep
+    waters.  So essentially just pass along what we are given.  Some
+    references:
+    http://www.w3.org/TR/xml-id/ 
+    -> http://www.w3.org/TR/xml-names11/#NT-NCName
+    -> http://www.w3.org/TR/xml11/#NT-NameChar
+ */
+ 
+ char *
+ xml_id (char *id)
+ {
+   char *tem = xmalloc (strlen (id) + 1);
+   char *p = tem;
+   strcpy (tem, id);
+   while (*p)
+     {
+       if (strchr (":\" \t\f\r\n", *p))
+         *p = '-';
+       p++;
+     }
+   p = tem;
+ 
+   /* First character cannot be a number.  Clearly we should make this
+      dependent on the actual numeral found.  */
+   if (strchr ("0123456789", *p))
+     *p = 'i';
+ 
+   return tem;
+ }
+ 
+ int
+ xml_element (char *name)
+ {
+   int i;
+   for (i = 0; i<=PARA; i++)
+     {
+       if (mbscasecmp (name, texinfoml_element_list[i].name) == 0)
+         return i;
+     }
+   printf ("Error xml_element\n");
+   return -1;
+ }
+ 
+ void
+ xml_begin_document (const char *output_basename)
+ {
+   if (book_started)
+     return;
+ 
+   book_started = 1;
+ 
+   /* Make sure this is the very first string of the output document.  */
+   output_paragraph_offset = 0;
+ 
+   insert_string ("<?xml version=\"1.0\"");
+ 
+   /* At this point, we register a delayed writing for document encoding,
+      so in the end, proper encoding attribute will be inserted here.
+      Since the user is unaware that we are implicitly executing this
+      command, we should disable warnings temporarily, in order to avoid
+      possible confusion.  (ie. if the output is not seekable,
+      register_delayed_write issues a warning.)  */
+   {
+     extern int print_warnings;
+     int save_print_warnings = print_warnings;
+     print_warnings = 0;
+     register_delayed_write ("@documentencoding");
+     print_warnings = save_print_warnings;
+   }
+ 
+   insert_string ("?>\n");
+ 
+   if (docbook)
+     {
+       insert_string ("<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.2//EN\" \"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd\" [\n  <!ENTITY tex \"TeX\">\n  <!ENTITY latex \"LaTeX\">\n]>");
+       xml_element_list = docbook_element_list;
+     }
+   else
+     {
+       insert_string ("<!DOCTYPE texinfo PUBLIC \"-//GNU//DTD TexinfoML V");
+       insert_string (VERSION);
+       insert_string ("//EN\" \"http://www.gnu.org/software/texinfo/dtd/");
+       insert_string (VERSION);
+       insert_string ("/texinfo.dtd\">");
+       xml_element_list = texinfoml_element_list;
+     }
+ 
+   if (strcmp (xml_element_list[PARA].name, "para"))
+     {
+       warning ("internal error: xml_element_list table inconsistent");
+       xexit (-1);
+     }
+ 
+   if (language_code != last_language_code)
+     {
+       if (docbook)
+ 	/* The toplevel <book> element needs an id attribute if you want
+            to use the chunk.xml feature of the Docbook-XSL stylesheets.
+            Might as well use the output filename?  */
+         xml_insert_element_with_attribute (TEXINFO, START,
+                                            "id=\"%s\" lang=\"%s\"",
+                                          output_basename,
+                                          language_table[language_code].abbrev);
+       else
+ 	xml_insert_element_with_attribute (TEXINFO, START,
+                                            "xml:lang=\"%s\"",
+                                          language_table[language_code].abbrev);
+     }
+   if (!docbook)
+     {
+       xml_insert_element (SETFILENAME, START);
+       insert_string (output_basename);
+       xml_insert_element (SETFILENAME, END);
+     }
+ }
+ 
+ /*  */
+ static int element_stack[256];
+ static int element_stack_index = 0;
+ 
+ static int
+ xml_current_element (void)
+ {
+   assert (element_stack_index > 0);
+   return element_stack[element_stack_index-1];
+ }
+ 
+ static void
+ xml_push_current_element (int elt)
+ {
+   element_stack[element_stack_index++] = elt;
+   if (element_stack_index > 200)  /* fixxme, no hard limits */
+     warning ("internal error: xml stack overflow (%d - %s)",
+              element_stack_index, xml_element_list[elt].name);
+ }
+ 
+ static void
+ xml_pop_current_element (void)
+ {
+   element_stack_index--;
+   if (element_stack_index < 0)
+     {
+       warning ("internal error: xml stack underflow (index %d)",
+                element_stack_index);
+       element_stack_index = 0;
+     }
+ }
+ 
+ int
+ xml_current_stack_index (void)
+ {
+   return element_stack_index;
+ }
+ 
+ void
+ xml_end_current_element (void)
+ {
+   xml_insert_element (xml_current_element (), END);
+ }
+ 
+ static void
+ xml_indent (void)
+ {
+   if (xml_indentation_increment > 0)
+     {
+       int i;
+       if (output_paragraph[output_paragraph_offset-1] != '\n')
+         insert ('\n');
+       for (i = 0; i < element_stack_index * xml_indentation_increment; i++)
+         insert (' ');
+     }
+ }
+ 
+ void
+ xml_start_para (void)
+ {
+   if (xml_in_para || xml_in_footnote
+       || !xml_element_list[xml_current_element()].contains_para)
+     return;
+ 
+   while (output_paragraph_offset > 0
+ 	 && output_paragraph[output_paragraph_offset-1] == '\n')
+     output_paragraph_offset--;
+   xml_indent ();
+ 
+   insert_string ("<para");
+   if (xml_no_indent)
+     insert_string (" role=\"continues\"");
+   insert_string (">");
+   xml_no_indent = 0;
+   xml_in_para = 1;
+ }
+ 
+ void
+ xml_end_para (void)
+ {
+   if (!xml_in_para || xml_in_footnote)
+     return;
+ 
+   while (output_paragraph_offset > 0
+ 	 && cr_or_whitespace(output_paragraph[output_paragraph_offset-1]))
+     output_paragraph_offset--;
+ 
+   insert_string ("</para>");
+   if (xml_indentation_increment > 0)
+     insert ('\n');
+   xml_in_para = 0;
+ }
+ 
+ void
+ xml_end_document (void)
+ {
+   if (xml_node_open)
+     {
+       if (xml_node_level != -1)
+         {
+           xml_close_sections (xml_node_level);
+           xml_node_level = -1;
+         }
+       xml_insert_element (NODE, END);
+     }
+   else
+     xml_close_sections (xml_node_level);
+ 
+   xml_insert_element (TEXINFO, END);
+   if (xml_indentation_increment == 0)
+     insert ('\n');
+   insert_string ("<!-- Keep this comment at the end of the file\n\
+ Local variables:\n\
+ mode: sgml\n\
+ sgml-indent-step:1\n\
+ sgml-indent-data:nil\n\
+ End:\n\
+ -->\n");
+   if (element_stack_index != 0)
+     error ("Element stack index : %d\n", element_stack_index);
+ }
+ 
+ /* MUST be 0 or 1, not true or false values */
+ static int start_element_inserted = 1;
+ 
+ /* NOTE: We use `elt' rather than `element' in the argument list of
+    the next function, since otherwise the Solaris SUNWspro compiler
+    barfs because `element' is a typedef declared near the beginning of
+    this file.  */
+ void
+ #if defined (VA_FPRINTF) && __STDC__
+ xml_insert_element_with_attribute (int elt, int arg, char *format, ...)
+ #else
+ xml_insert_element_with_attribute (elt, arg, format, va_alist)
+      int elt;
+      int arg;
+      char *format;
+      va_dcl
+ #endif
+ {
+   /* Look at the replace_elements table to see if we have to change the element */
+   if (xml_sort_index)
+       return;
+   if (docbook && element_stack_index > 0)
+     {
+       replace_element *element_list = replace_elements;
+       while (element_list->element_to_replace >= 0)
+         {
+           if ( ( (arg == START) &&
+                  (element_list->element_containing == xml_current_element ()) &&
+                  (element_list->element_to_replace == elt) ) ||
+                ( (arg == END) &&
+                  (element_list->element_containing == element_stack[element_stack_index-1-start_element_inserted]) &&
+                  (element_list->element_to_replace == elt) ) )
+             {
+               elt = element_list->element_replacing;
+               break;
+             }
+           element_list ++;
+         }
+ 
+       /* Forget the element */
+       if (elt < 0)
+         {
+           if (arg == START)
+             start_element_inserted = 0;
+           else
+             /* Replace the default value, for the next time */
+             start_element_inserted = 1;
+           return;
+         }
+     }
+ 
+   if (!book_started)
+     return;
+ 
+   if (!xml_dont_touch_items_defs && arg == START)
+     {
+       if (xml_after_table_term && elt != TABLETERM && xml_table_level
+           && !xml_in_item[xml_table_level])
+         {
+           xml_after_table_term = 0;
+           xml_insert_element (ITEM, START);
+           xml_in_item[xml_table_level] = 1;
+         }
+       else if (xml_after_def_term && elt != DEFINITIONTERM)
+         {
+           xml_after_def_term = 0;
+           xml_insert_element (DEFINITIONITEM, START);
+           xml_in_def_item[xml_definition_level] = 1;
+         }
+     }
+ 
+   if (docbook && !only_macro_expansion && (in_menu || in_detailmenu))
+     return;
+ 
+   if (executing_string && arg == END)
+     switch (elt)
+       {
+       case TABLEITEM:
+         xml_in_tableitem[xml_table_level] = 0;
+         break;
+       case ITEM:
+         xml_in_item[xml_table_level] = 0;
+         break;
+       case DEFINITIONTERM:
+         xml_in_def_item[xml_definition_level] = 0;
+         break;
+       }
+ 
+   /* We are special-casing FIGURE element for docbook.  It does appear in
+      the tag stack, but not in the output.  This is to make element replacement
+      work beautifully.  */
+   if (docbook && elt == FLOAT)
+     {
+       if (arg == START)
+         xml_push_current_element (elt);
+       else
+         xml_pop_current_element ();
+       return;
+     }
+ 
+   if (!xml_element_list[elt].name || !strlen (xml_element_list[elt].name))
+     {
+       /*printf ("Warning: Inserting empty element %d\n", elt);*/
+       return;
+     }
+ 
+   if (arg == START && !xml_in_para && !xml_no_para
+       && xml_element_list[elt].contained_in_para)
+     xml_start_para ();
+ 
+   if (arg == START && xml_in_para && !xml_element_list[elt].contained_in_para)
+     xml_end_para ();
+ 
+   if (arg == END && xml_in_para && !xml_element_list[elt].contained_in_para)
+     xml_end_para ();
+ 
+   /* Oddly, we want to do the same thing whether we starting or ending
+      the detailmenu -- close any existing menu elements before inserting
+      the detailmenu element.  */
+   if (elt == DETAILMENU && xml_in_menu_entry)
+     {
+       if (xml_in_menu_entry_comment)
+         {
+           xml_insert_element (MENUCOMMENT, END);
+           xml_in_menu_entry_comment = 0;
+         }
+       xml_insert_element (MENUENTRY, END);
+       xml_in_menu_entry = 0;
+     }
+     
+   if (docbook && xml_table_level && !in_table_title
+       && !xml_in_tableitem[xml_table_level] && !xml_in_item[xml_table_level]
+       && arg == START && elt != TABLEITEM && elt != TABLETERM
+       && !in_indexterm && xml_current_element() == TABLE)
+     {
+       in_table_title = 1;
+       xml_insert_element (TITLE, START);
+     }
+ 
+   if (arg == START && !xml_in_para && !xml_keep_space
+       && !xml_element_list[elt].contained_in_para)
+     xml_indent ();
+ 
+   if (arg == START)
+     xml_push_current_element (elt);
+   else
+     xml_pop_current_element ();
+ 
+   /* Eat one newline before </example> and the like.  */
+   if (!docbook && arg == END
+       && (xml_element_list[elt].keep_space || elt == GROUP)
+       && output_paragraph_offset > 0
+       && output_paragraph[output_paragraph_offset-1] == '\n')
+     output_paragraph_offset--;
+ 
+   /* And eat whitespace before </entry> in @multitables.  */
+   if (arg == END && elt == ENTRY)
+       while (output_paragraph_offset > 0 &&
+ 	     cr_or_whitespace(output_paragraph[output_paragraph_offset-1]))
+         output_paragraph_offset--;
+ 
+   /* Indent elements that can contain <para>.  */
+   if (arg == END && !xml_in_para && !xml_keep_space
+       && xml_element_list[elt].contains_para)
+     xml_indent ();
+ 
+   /* Here are the elements we want indented.  These do not contain <para>
+      directly.  */
+   if (arg == END && (elt == MENUENTRY || elt == ITEMIZE || elt == ENUMERATE
+         || elt == TABLEITEM || elt == TABLE
+         || elt == MULTITABLE || elt == TGROUP || elt == THEAD || elt == TBODY
+         || elt == ROW || elt == INFORMALFIGURE
+         || (!docbook && (elt == DEFINITION || elt == DEFINITIONTERM))))
+     xml_indent ();
+ 
+   insert ('<');
+   if (arg == END)
+     insert ('/');
+   insert_string (xml_element_list[elt].name);
+ 
+   /*  printf ("%s ", xml_element_list[elt].name);*/
+ 
+   if (format)
+     {
+       char temp_string[2000]; /* xx no fixed limits */
+ #ifdef VA_SPRINTF
+       va_list ap;
+ #endif
+ 
+       VA_START (ap, format);
+ #ifdef VA_SPRINTF
+       VA_SPRINTF (temp_string, format, ap);
+ #else
+       sprintf (temp_string, format, a1, a2, a3, a4, a5, a6, a7, a8);
+ #endif
+       insert (' ');
+       insert_string (temp_string);
+       va_end (ap);
+     }
+ 
+   if (arg == START && xml_node_id && elt != NODENAME)
+     {
+       insert_string (" id=\"");
+       insert_string (xml_node_id);
+       insert ('"');
+       free (xml_node_id);
+       xml_node_id = NULL;
+     }
+ 
+   if (xml_element_list[elt].keep_space)
+     {
+       if (arg == START)
+ 	{
+           if (!docbook)
+             insert_string (" xml:space=\"preserve\"");
+ 	  xml_keep_space++;
+ 	}
+       else
+ 	xml_keep_space--;
+     }
+ 
+   insert ('>');
+ 
+   if (!xml_in_para && !xml_element_list[elt].contained_in_para
+       && xml_element_list[elt].contains_para && xml_indentation_increment > 0)
+     insert ('\n');
+ 
+   xml_just_after_element = 1;
+ }
+ 
+ /* See the NOTE before xml_insert_element_with_attribute, for why we
+    use `elt' rather than `element' here.  */
+ void
+ xml_insert_element (int elt, int arg)
+ {
+   xml_insert_element_with_attribute (elt, arg, NULL);
+ }
+ 
+ void
+ xml_insert_entity (char *entity_name)
+ {
+   int saved_escape_html = escape_html;
+ 
+   if (xml)
+     {
+     if (!book_started)
+       return;
+     if (docbook && !only_macro_expansion && (in_menu || in_detailmenu))
+       return;
+ 
+     if (!xml_in_para && !xml_no_para && !only_macro_expansion
+         && xml_element_list[xml_current_element ()].contains_para
+         && !in_fixed_width_font)
+       xml_start_para ();
+   }
+ 
+   escape_html = 0;
+   add_char ('&');
+   escape_html = saved_escape_html;
+   insert_string (entity_name);
+   add_char (';');
+ }
+ 
+ typedef struct _xml_section xml_section;
+ struct _xml_section {
+   int level;
+   char *name;
+   xml_section *prev;
+ };
+ 
+ xml_section *last_section = NULL;
+ 
+ void
+ xml_begin_node (void)
+ {
+   first_section_opened = 1;
+   if (xml_in_abstract)
+     {
+       xml_insert_element (ABSTRACT, END);
+       xml_in_abstract = 0;
+     }
+   if (xml_in_bookinfo)
+     {
+       xml_insert_element (BOOKINFO, END);
+       xml_in_bookinfo = 0;
+     }
+   if (xml_node_open && !docbook)
+     {
+       if (xml_node_level != -1)
+         {
+           xml_close_sections (xml_node_level);
+           xml_node_level = -1;
+         }
+       xml_insert_element (NODE, END);
+     }
+   xml_insert_element (NODE, START);
+   xml_node_open = 1;
+ }
+ 
+ void
+ xml_close_sections (int level)
+ {
+   if (!first_section_opened)
+     {
+       if (xml_in_abstract)
+ 	{
+ 	  xml_insert_element (ABSTRACT, END);
+ 	  xml_in_abstract = 0;
+ 	}
+       if (xml_in_bookinfo)
+ 	{
+ 	  xml_insert_element (BOOKINFO, END);
+ 	  xml_in_bookinfo = 0;
+ 	}
+       first_section_opened = 1;
+     }
+ 
+   while (last_section && last_section->level >= level)
+     {
+       xml_section *temp = last_section;
+       xml_insert_element (xml_element(last_section->name), END);
+       temp = last_section;
+       last_section = last_section->prev;
+       free (temp->name);
+       free (temp);
+     }
+ }
+ 
+ void
+ xml_open_section (int level, char *name)
+ {
+   xml_section *sect = (xml_section *) xmalloc (sizeof (xml_section));
+ 
+   sect->level = level;
+   sect->name = xmalloc (1 + strlen (name));
+   strcpy (sect->name, name);
+   sect->prev = last_section;
+   last_section = sect;
+ 
+   if (xml_node_open && xml_node_level == -1)
+     xml_node_level = level;
+ }
+ 
+ void
+ xml_start_menu_entry (char *tem)
+ {
+   char *string;
+   discard_until ("* ");
+ 
+   /* The line number was already incremented in reader_loop when we
+      saw the newline, and discard_until has now incremented again.  */
+   line_number--;
+ 
+   if (xml_in_menu_entry)
+     {
+       if (xml_in_menu_entry_comment)
+         {
+           xml_insert_element (MENUCOMMENT, END);
+           xml_in_menu_entry_comment = 0;
+         }
+       xml_insert_element (MENUENTRY, END);
+       xml_in_menu_entry = 0;
+     }
+   xml_insert_element (MENUENTRY, START);
+   xml_in_menu_entry = 1;
+ 
+   xml_insert_element (MENUNODE, START);
+   string = expansion (tem, 0);
+   add_word (string);
+   xml_insert_element (MENUNODE, END);
+   free (string);
+ 
+   /* The menu item may use macros, so expand them now.  */
+   xml_insert_element (MENUTITLE, START);
+   only_macro_expansion++;
+   get_until_in_line (1, ":", &string);
+   only_macro_expansion--;
+   execute_string ("%s", string); /* get escaping done */
+   xml_insert_element (MENUTITLE, END);
+   free (string);
+ 
+   if (looking_at ("::"))
+     discard_until (":");
+   else
+     { /* discard the node name */
+       get_until_in_line (0, ".", &string);
+       free (string);
+     }
+   input_text_offset++;  /* discard the second colon or the period */
+   skip_whitespace_and_newlines();
+   xml_insert_element (MENUCOMMENT, START);
+   xml_in_menu_entry_comment ++;
+ }
+ 
+ void
+ xml_end_menu (void)
+ {
+   if (xml_in_menu_entry)
+     {
+       if (xml_in_menu_entry_comment)
+         {
+           xml_insert_element (MENUCOMMENT, END);
+           xml_in_menu_entry_comment --;
+         }
+       xml_insert_element (MENUENTRY, END);
+       xml_in_menu_entry--;
+     }
+   xml_insert_element (MENU, END);
+ }
+ 
+ static int xml_last_character;
+ 
+ void
+ xml_add_char (int character)
+ {
+   if (!book_started)
+       return;
+   if (docbook && !only_macro_expansion && (in_menu || in_detailmenu))
+     return;
+ 
+   if (docbook && xml_table_level && !in_table_title
+       && !xml_in_item[xml_table_level] && !xml_in_tableitem[xml_table_level]
+       && !cr_or_whitespace (character) && !in_indexterm)
+     {
+       in_table_title = 1;
+       xml_insert_element (TITLE, START);
+     }
+ 
+   if (!first_section_opened && !xml_in_abstract && !xml_in_book_title
+       && !xml_no_para && character != '\r' && character != '\n'
+       && character != ' ' && !is_in_insertion_of_type (copying))
+     {
+       if (!xml_in_bookinfo)
+ 	{
+ 	  xml_insert_element (BOOKINFO, START);
+ 	  xml_in_bookinfo = 1;
+ 	}
+       xml_insert_element (ABSTRACT, START);
+       xml_in_abstract = 1;
+     }
+ 
+   if (!xml_sort_index && !xml_in_xref_token && !xml_dont_touch_items_defs)
+     {
+       if (xml_after_table_term && xml_table_level
+           && !xml_in_item[xml_table_level])
+         {
+           xml_after_table_term = 0;
+           xml_insert_element (ITEM, START);
+           xml_in_item[xml_table_level] = 1;
+         }
+       else if (xml_after_def_term)
+         {
+           xml_after_def_term = 0;
+           xml_insert_element (DEFINITIONITEM, START);
+           xml_in_def_item[xml_definition_level] = 1;
+         }
+     }
+ 
+   if (xml_just_after_element && !xml_in_para && !inhibit_paragraph_indentation)
+     {
+       if (character == '\r' || character == '\n' || character == '\t' || character == ' ')
+         return;
+       xml_just_after_element = 0;
+     }
+ 
+   if (element_stack_index > 0
+       && xml_element_list[xml_current_element()].contains_para
+       && !xml_in_para && !only_macro_expansion && !xml_no_para
+       && !cr_or_whitespace (character) && !in_fixed_width_font)
+     xml_start_para ();
+ 
+   if (xml_in_para && character == '\n' && xml_last_character == '\n'
+       && !only_macro_expansion && !xml_no_para
+       && xml_element_list[xml_current_element()].contains_para )
+     {
+       xml_end_para ();
+       xml_just_after_element = 1;
+       return;
+     }
+ 
+   if (xml_in_menu_entry_comment && character == '\n' && xml_last_character == '\n')
+     {
+       xml_insert_element (MENUCOMMENT, END);
+       xml_in_menu_entry_comment = 0;
+       xml_insert_element (MENUENTRY, END);
+       xml_in_menu_entry = 0;
+     }
+ 
+   if (xml_in_menu_entry_comment && whitespace(character)
+       && cr_or_whitespace(xml_last_character))
+     return;
+ 
+   if (character == '\n' && !xml_in_para && !inhibit_paragraph_indentation)
+     return;
+ 
+   xml_last_character = character;
+ 
+   if (character == '&' && escape_html)
+       insert_string ("&amp;");
+   else if (character == '<' && escape_html)
+       insert_string ("&lt;");
+   else if (character == '>' && escape_html)
+       insert_string ("&gt;");
+   else if (character == '\n' && !xml_keep_space)
+     {
+       if (!xml_in_para && xml_just_after_element && !multitable_active)
+ 	return;
+       else
+ 	insert (docbook ? '\n' : ' ');
+     }
+   else
+     insert (character);
+ 
+   return;
+ }
+ 
+ void
+ xml_insert_footnote (char *note)
+ {
+   if (!xml_in_para)
+     xml_start_para ();
+ 
+   xml_in_footnote = 1;
+   xml_insert_element (FOOTNOTE, START);
+   insert_string ("<para>");
+   execute_string ("%s", note);
+   insert_string ("</para>");
+   xml_insert_element (FOOTNOTE, END);
+   xml_in_footnote = 0;
+ }
+ 
+ /* We need to keep the quotation stack ourself, because insertion_stack
+    loses item_function when we are closing the block, so we don't know
+    what to close then.  */
+ typedef struct quotation_elt
+ {
+   struct quotation_elt *next;
+   char *type;
+ } QUOTATION_ELT;
+ 
+ static QUOTATION_ELT *quotation_stack = NULL;
+ 
+ void
+ xml_insert_quotation (char *type, int arg)
+ {
+   int quotation_started = 0;
+ 
+   if (arg == START)
+     {
+       QUOTATION_ELT *new = xmalloc (sizeof (QUOTATION_ELT));
+       new->type = xstrdup (type);
+       new->next = quotation_stack;
+       quotation_stack = new;
+     }
+   else
+     type = quotation_stack->type;
+ 
+   /* Make use of special quotation styles of Docbook if we can.  */
+   if (docbook && strlen (type))
+     {
+       /* Let's assume it started.  */
+       quotation_started = 1;
+ 
+       if (mbscasecmp (type, "tip") == 0)
+         xml_insert_element (TIP, arg);
+       else if (mbscasecmp (type, "note") == 0)
+         xml_insert_element (NOTE, arg);
+       else if (mbscasecmp (type, "important") == 0)
+         xml_insert_element (IMPORTANT, arg);
+       else if (mbscasecmp (type, "warning") == 0)
+         xml_insert_element (WARNING, arg);
+       else if (mbscasecmp (type, "caution") == 0)
+         xml_insert_element (CAUTION, arg);
+       else
+         /* Didn't find a known quotation type :\ */
+         quotation_started = 0;
+     }
+ 
+   if (!quotation_started)
+     {
+       xml_insert_element (QUOTATION, arg);
+       if (strlen(type) && arg == START)
+         execute_string ("@b{%s:} ", type);
+     }
+ 
+   if (arg == END)
+     {
+       QUOTATION_ELT *temp = quotation_stack;
+       if (temp == NULL)
+         return;
+       quotation_stack = quotation_stack->next;
+       free(temp->type);
+       free(temp);
+     }
+ }
+ 
+ /* Starting generic docbook floats.  Just starts elt with correct label
+    and id attributes, and inserts title.  */
+ void
+ xml_begin_docbook_float (int elt)
+ {
+   if (current_float_used_title ())	/* in a nested float */
+     {
+       xml_insert_element (elt, START);	/* just insert the tag */
+       return;
+     }
+ 
+ 
+   /* OK, need the title, tag, etc. */
+   if (elt == CARTOUCHE)    /* no labels on <sidebar> */
+     {
+        if (strlen (current_float_id ()) == 0)
+           xml_insert_element (elt, START);
+        else
+           xml_insert_element_with_attribute (elt, START,
+               "id=\"%s\"", xml_id (current_float_id ()));
+     }
+   else if (strlen (current_float_id ()) == 0)
+     xml_insert_element_with_attribute (elt, START, "label=\"\"");
+   else
+     xml_insert_element_with_attribute (elt, START,
+         "id=\"%s\" label=\"%s\"", xml_id (current_float_id ()),
+         current_float_number ());
+ 
+   xml_insert_element (TITLE, START);
+   execute_string ("%s", current_float_title ());
+   xml_insert_element (TITLE, END);
+ 
+   current_float_set_title_used ();	/* mark this title, tag, etc used */
+ }
+ 
+ /*
+  * Lists and Tables
+  */
+ void
+ xml_begin_table (int type, char *item_function)
+ {
+   switch (type)
+     {
+     case ftable:
+     case vtable:
+     case table:
+       /*if (docbook)*/ /* 05-08 */
+         {
+           xml_insert_element (TABLE, START);
+           xml_table_level ++;
+           xml_in_tableitem[xml_table_level] = 0;
+           xml_in_item[xml_table_level] = 0;
+           xml_after_table_term = 0;
+         }
+       break;
+     case itemize:
+       if (!docbook || item_function==default_item_function)
+ 	xml_insert_element (ITEMIZE, START);
+       else
+ 	xml_insert_element_with_attribute (ITEMIZE, START,
+ 					   "mark=\"%s\"",
+ 					   (*item_function == COMMAND_PREFIX) ?
+ 					   &item_function[1] : item_function);
+       xml_table_level ++;
+       xml_in_item[xml_table_level] = 0;
+       if (!docbook)
+         {
+           xml_insert_element (ITEMFUNCTION, START);
+           if (*item_function == COMMAND_PREFIX
+               && item_function[strlen (item_function) - 1] != '}'
+               && command_needs_braces (item_function + 1))
+             execute_string ("%s{}", item_function);
+           else
+             execute_string ("%s", item_function);
+           xml_insert_element (ITEMFUNCTION, END);
+         }
+       break;
+     }
+ }
+ 
+ void
+ xml_end_table (int type)
+ {
+   switch (type)
+     {
+     case ftable:
+     case vtable:
+     case table:
+       if (xml_in_item[xml_table_level])
+         {
+           xml_insert_element (ITEM, END);
+           xml_in_item[xml_table_level] = 0;
+         }
+       if (xml_in_tableitem[xml_table_level])
+         {
+           xml_insert_element (TABLEITEM, END);
+           xml_in_tableitem[xml_table_level] = 0;
+         }
+       xml_insert_element (TABLE, END);
+       xml_after_table_term = 0;
+       xml_table_level --;
+ 
+       break;
+     case itemize:
+       if (xml_in_item[xml_table_level])
+         {
+           xml_insert_element (ITEM, END);
+           xml_in_item[xml_table_level] = 0;
+         }
+       /* gnat-style manual contains an itemized list without items! */
+       if (in_table_title)
+ 	{
+ 	  xml_insert_element (TITLE, END);
+ 	  in_table_title = 0;
+ 	}
+       xml_insert_element (ITEMIZE, END);
+       xml_table_level --;
+       break;
+     }
+ }
+ 
+ void
+ xml_begin_item (void)
+ {
+   if (xml_in_item[xml_table_level])
+     xml_insert_element (ITEM, END);
+ 
+   xml_insert_element (ITEM, START);
+   xml_in_item[xml_table_level] = 1;
+ }
+ 
+ void
+ xml_begin_table_item (void)
+ {
+   if (!xml_after_table_term)
+     {
+       if (xml_in_item[xml_table_level])
+         xml_insert_element (ITEM, END);
+       if (xml_in_tableitem[xml_table_level])
+         xml_insert_element (TABLEITEM, END);
+ 
+       if (in_table_title)
+ 	{
+ 	  in_table_title = 0;
+ 	  xml_insert_element (TITLE, END);
+ 	}
+       xml_insert_element (TABLEITEM, START);
+     }
+   xml_insert_element (TABLETERM, START);
+   xml_in_tableitem[xml_table_level] = 1;
+   xml_in_item[xml_table_level] = 0;
+   xml_after_table_term = 0;
+ }
+ 
+ void
+ xml_continue_table_item (void)
+ {
+   xml_insert_element (TABLETERM, END);
+   xml_after_table_term = 1;
+   xml_in_item[xml_table_level] = 0;
+ }
+ 
+ void
+ xml_begin_enumerate (char *enum_arg)
+ {
+   if (!docbook)
+     xml_insert_element_with_attribute (ENUMERATE, START, "first=\"%s\"", enum_arg);
+   else
+     {
+       if (isdigit (*enum_arg))
+         {
+           int enum_val = atoi (enum_arg);
+ 
+           /* Have to check the value, not just the first digit.  */
+           if (enum_val == 0)
+             xml_insert_element_with_attribute (ENUMERATE, START,
+                 "numeration=\"arabic\" role=\"0\"", NULL);
+           else if (enum_val == 1)
+             xml_insert_element_with_attribute (ENUMERATE, START,
+                 "numeration=\"arabic\"", NULL);
+           else
+             xml_insert_element_with_attribute (ENUMERATE, START,
+                 "continuation=\"continues\" numeration=\"arabic\"", NULL);
+         }
+       else if (isupper (*enum_arg))
+         {
+           if (enum_arg[0] == 'A')
+             xml_insert_element_with_attribute (ENUMERATE, START,
+                 "numeration=\"upperalpha\"", NULL);
+           else
+             xml_insert_element_with_attribute (ENUMERATE, START,
+                 "continuation=\"continues\" numeration=\"upperalpha\"", NULL);
+         }
+       else
+         {
+           if (enum_arg[0] == 'a')
+             xml_insert_element_with_attribute (ENUMERATE, START,
+                 "numeration=\"loweralpha\"", NULL);
+           else
+             xml_insert_element_with_attribute (ENUMERATE, START,
+                 "continuation=\"continues\" numeration=\"loweralpha\"", NULL);
+         }
+     }
+   xml_table_level ++;
+   xml_in_item[xml_table_level] = 0;
+ }
+ 
+ void
+ xml_end_enumerate (void)
+ {
+   if (xml_in_item[xml_table_level])
+     {
+       xml_insert_element (ITEM, END);
+       xml_in_item[xml_table_level] = 0;
+     }
+   xml_insert_element (ENUMERATE, END);
+   xml_table_level --;
+ }
+ 
+ static void
+ xml_insert_text_file (char *name_arg)
+ {
+   char *fullname = xmalloc (strlen (name_arg) + 4 + 1);
+   FILE *image_file;
+   strcpy (fullname, name_arg);
+   strcat (fullname, ".txt");
+   image_file = fopen (fullname, "r");
+   if (image_file)
+     {
+       int ch;
+       int save_inhibit_indentation = inhibit_paragraph_indentation;
+       int save_filling_enabled = filling_enabled;
+ 
+       xml_insert_element (TEXTOBJECT, START);
+       xml_insert_element (DISPLAY, START);
+ 
+       inhibit_paragraph_indentation = 1;
+       filling_enabled = 0;
+       last_char_was_newline = 0;
+ 
+       /* Maybe we need to remove the final newline if the image
+          file is only one line to allow in-line images.  On the
+          other hand, they could just make the file without a
+          final newline.  */
+       while ((ch = getc (image_file)) != EOF)
+         add_char (ch);
+ 
+       inhibit_paragraph_indentation = save_inhibit_indentation;
+       filling_enabled = save_filling_enabled;
+ 
+       xml_insert_element (DISPLAY, END);
+       xml_insert_element (TEXTOBJECT, END);
+ 
+       if (fclose (image_file) != 0)
+         perror (fullname);
+     }
+   else
+     warning (_("@image file `%s' unreadable: %s"), fullname,
+              strerror (errno));
+ 
+   free (fullname);
+ }
+ 
+ /* If NAME.EXT is accessible or FORCE is nonzero, insert a docbook
+    imagedata element for FMT.  Return 1 if inserted something, 0 else.  */
+ 
+ static int
+ try_docbook_image (const char *name, const char *ext, const char *fmt,
+                    int force)
+ {
+   int used = 0;
+   char *fullname = xmalloc (strlen (name) + 1 + strlen (ext) + 1);
+   sprintf (fullname, "%s.%s", name, ext);
+ 
+   if (force || access (fullname, R_OK) == 0)
+    {
+      xml_insert_element (IMAGEOBJECT, START);
+      xml_insert_element_with_attribute (IMAGEDATA, START,
+        "fileref=\"%s\" format=\"%s\"", fullname, fmt);
+      xml_insert_element (IMAGEDATA, END);
+      xml_insert_element (IMAGEOBJECT, END);
+      used = 1;
+    }
+  
+  free (fullname);
+  return used;
+ }
+ 
+ 
+ void
+ xml_insert_docbook_image (char *name_arg)
+ {
+   int found = 0;
+   int elt = xml_in_para ? INLINEIMAGE : MEDIAOBJECT;
+ 
+   if (is_in_insertion_of_type (floatenv))
+     xml_begin_docbook_float (INFORMALFIGURE);
+   else if (!xml_in_para)
+     xml_insert_element (INFORMALFIGURE, START);
+ 
+   xml_no_para++;
+ 
+   xml_insert_element (elt, START);
+ 
+   /* A selected few from http://docbook.org/tdg/en/html/imagedata.html.  */
+   if (try_docbook_image (name_arg, "eps", "EPS", 0))
+     found++;
+   if (try_docbook_image (name_arg, "gif", "GIF", 0))
+     found++;
+   if (try_docbook_image (name_arg, "jpg", "JPG", 0))
+     found++;
+   if (try_docbook_image (name_arg, "jpeg", "JPEG", 0))
+     found++;
+   if (try_docbook_image (name_arg, "pdf", "PDF", 0))
+     found++;
+   if (try_docbook_image (name_arg, "png", "PNG", 0))
+     found++;
+   if (try_docbook_image (name_arg, "svg", "SVG", 0))
+     found++;
+ 
+   /* If no luck so far, just assume we'll eventually have a jpg.  */
+   if (!found)
+     try_docbook_image (name_arg, "jpg", "JPG", 1);
+  
+   xml_insert_text_file (name_arg);
+   xml_insert_element (elt, END);
+ 
+   xml_no_para--;
+ 
+   if (elt == MEDIAOBJECT)
+     xml_insert_element (INFORMALFIGURE, END);
+ }
+ 
+ void
+ xml_asterisk (void)
+ {
+ }
+ 
+ 
+ /*
+  *     INDEX
+  */
+ /* Used to separate primary and secondary entries in an index -- we need
+    to have real multilivel indexing support, not just string analysis.  */
+ #define INDEX_SEP "@this string will never appear@" /* was , */
+ 
+ typedef struct
+ {
+   char *from;
+   char *to;
+ } XML_SYNONYM;
+ 
+ static XML_SYNONYM **xml_synonyms = NULL;
+ static int xml_synonyms_count = 0;
+ 
+ void
+ xml_insert_indexterm (char *indexterm, char *index)
+ {
+   /* @index commands can appear between @item and @itemx, @deffn and @deffnx.  */
+   if (!docbook)
+     {
+       /* Check to see if we need to do index redirection per @synindex.  */
+       int i;
+       for (i = 0; i < xml_synonyms_count; i++)
+         {
+           if (STREQ (xml_synonyms[i]->from, index))
+             index = xstrdup (xml_synonyms[i]->to);
+         }
+ 
+       xml_dont_touch_items_defs++;
+       xml_insert_element_with_attribute (INDEXTERM, START, "index=\"%s\"", index);
+       in_indexterm = 1;
+       execute_string ("%s", indexterm);
+       xml_insert_element (INDEXTERM, END);
+       in_indexterm = 0;
+       xml_dont_touch_items_defs--;
+     }
+   else
+     {
+       char *primary = NULL, *secondary = NULL;
+       if (strstr (indexterm+1, INDEX_SEP))
+         {
+           primary = xmalloc (strlen (indexterm) + 1);
+           strcpy (primary, indexterm);
+           secondary = strstr (primary+1, INDEX_SEP);
+           *secondary = '\0';
+           secondary += strlen (INDEX_SEP);
+         }
+       xml_insert_element_with_attribute (INDEXTERM, START, "role=\"%s\"", index);
+       in_indexterm = 1;
+       xml_insert_element (PRIMARY, START);
+       if (primary)
+         execute_string ("%s", primary);
+       else
+         execute_string ("%s", indexterm);
+       xml_insert_element (PRIMARY, END);
+       if (primary)
+         {
+           xml_insert_element (SECONDARY, START);
+           execute_string ("%s", secondary);
+           xml_insert_element (SECONDARY, END);
+         }
+       xml_insert_element (INDEXTERM, END);
+       in_indexterm = 0;
+     }
+ }
+ 
+ 
+ int xml_last_section_output_position = 0;
+ static char last_division_letter = ' ';
+ static char index_primary[2000]; /** xx no fixed limit */
+ static int indexdivempty = 0;
+ 
+ static void
+ xml_close_indexentry (void)
+ {
+   if (!in_indexentry)
+     return;
+   if (in_secondary)
+     xml_insert_element (SECONDARYIE, END);
+   xml_insert_element (INDEXENTRY, END);
+   in_secondary = 0;
+   in_indexentry = 0;
+ }
+ 
+ void
+ xml_begin_index (void)
+ {
+   if (handling_delayed_writes)
+     {
+       /* We put <INDEX> */
+       xml_insert_element (PRINTINDEX, START);
+     }
+ }
+ 
+ void
+ xml_end_index (void)
+ {
+   xml_insert_element (PRINTINDEX, END);
+ }
+ 
+ static void
+ xml_index_divide (char *entry)
+ {
+   char c;
+   if (strlen (entry) > (strlen (xml_element_list[CODE].name) + 2) &&
+       strncmp (entry+1, xml_element_list[CODE].name, strlen (xml_element_list[CODE].name)) == 0)
+     c = entry[strlen (xml_element_list[CODE].name)+2];
+   else
+     c = entry[0];
+   if (tolower (c) != last_division_letter && isalpha (c))
+     {
+       last_division_letter = tolower (c);
+       xml_close_indexentry ();
+       if (!indexdivempty)
+         {
+           xml_insert_element (INDEXDIV, END);
+           xml_insert_element (INDEXDIV, START);
+         }
+       xml_insert_element (TITLE, START);
+       insert (toupper (c));
+       xml_insert_element (TITLE, END);
+     }
+ }
+ 
+ void
+ xml_synindex (char *from, char *to)
+ {
+   int i, slot;
+ 
+   slot = -1;
+   for (i = 0; i < xml_synonyms_count; i++)
+     if (!xml_synonyms[i])
+       {
+         slot = i;
+         break;
+       }
+ 
+   if (slot < 0)
+     {
+       slot = xml_synonyms_count;
+       xml_synonyms_count++;
+ 
+       xml_synonyms = (XML_SYNONYM **) xrealloc (xml_synonyms,
+           (xml_synonyms_count + 1) * sizeof (XML_SYNONYM *));
+     }
+ 
+   xml_synonyms[slot] = xmalloc (sizeof (XML_SYNONYM));
+   xml_synonyms[slot]->from = xstrdup (from);
+   xml_synonyms[slot]->to = xstrdup (to);
+ }
+ 
+ /*
+  * MULTITABLE
+  */
+ 
+ static int multitable_columns_count;
+ static int *multitable_column_widths;
+ 
+ void
+ xml_begin_multitable (int ncolumns, int *column_widths)
+ {
+   int i;
+   if (docbook)
+     {
+       if (is_in_insertion_of_type (floatenv))
+         xml_begin_docbook_float (MULTITABLE);
+       else
+         xml_insert_element (MULTITABLE, START);
+ 
+       multitable_columns_count = ncolumns;
+       multitable_column_widths = xmalloc (sizeof (int) * ncolumns);
+       memcpy (multitable_column_widths, column_widths,
+           sizeof (int) * ncolumns);
+ 
+       xml_no_para = 1;
+     }
+   else
+     {
+       xml_insert_element (MULTITABLE, START);
+       for (i = 0; i < ncolumns; i++)
+         {
+           xml_insert_element (COLSPEC, START);
+           add_word_args ("%d", column_widths[i]);
+           xml_insert_element (COLSPEC, END);
+         }
+       xml_no_para = 1;
+     }
+ }
+ 
+ static void
+ xml_begin_multitable_group (void)
+ {
+   int i;
+ 
+   xml_insert_element_with_attribute (TGROUP, START, "cols=\"%d\"",
+       multitable_columns_count);
+ 
+   for (i = 0; i < multitable_columns_count; i++)
+     {
+       xml_insert_element_with_attribute (COLSPEC, START,
+           "colwidth=\"%d*\"", multitable_column_widths[i]);
+       xml_insert_element (COLSPEC, END);
+     }
+ }
+ 
+ void
+ xml_end_multitable_row (int first_row)
+ {
+   if (!first_row)
+     {
+       xml_insert_element (ENTRY, END);
+       xml_insert_element (ROW, END);
+     }
+ 
+   if (headitem_flag)
+     {
+       if (!first_row)
+         {
+           if (after_headitem)
+             xml_insert_element (THEAD, END);
+           else
+             xml_insert_element (TBODY, END);
+           xml_insert_element (TGROUP, END);
+         }
+ 
+       xml_begin_multitable_group ();
+       xml_insert_element (THEAD, START);
+     }
+   else if (first_row)
+     {
+       xml_begin_multitable_group ();
+       xml_insert_element (TBODY, START);
+     }
+   else if (after_headitem)
+     {
+       xml_insert_element (THEAD, END);
+       xml_insert_element (TBODY, START);
+     }
+   else if (first_row)
+     xml_insert_element (TBODY, START);
+ 
+   xml_insert_element (ROW, START);
+   xml_insert_element (ENTRY, START);
+ }
+ 
+ void
+ xml_end_multitable_column (void)
+ {
+   xml_insert_element (ENTRY, END);
+   xml_insert_element (ENTRY, START);
+ }
+ 
+ void
+ xml_end_multitable (void)
+ {
+   xml_insert_element (ENTRY, END);
+   xml_insert_element (ROW, END);
+ 
+   if (after_headitem)
+     {
+       if (docbook)
+         warning (_("@headitem as the last item of @multitable produces invalid Docbook documents"));
+       xml_insert_element (THEAD, END);
+     }
+   else
+     xml_insert_element (TBODY, END);
+ 
+   if (docbook)
+     xml_insert_element (TGROUP, END);
+ 
+   xml_insert_element (MULTITABLE, END);
+   xml_no_para = 0;
+ }
+ 
+ /*
+  * Parameters in @def definitions
+  */
+ 
+ #define DEFUN_SELF_DELIMITING(c) \
+   ((c) == '(' || (c) == ')' || (c) == '[' || (c) == ']')
+ 
+ void
+ xml_process_defun_args (char **defun_args, int auto_var_p)
+ {
+   int pending_space = 0;
+   int just_after_paramtype = 0;
+ 
+   for (;;)
+     {
+       char *defun_arg = *defun_args++;
+ 
+       if (defun_arg == NULL)
+         break;
+ 
+       if (defun_arg[0] == ' ')
+         {
+           pending_space = 1;
+           continue;
+         }
+ 
+       if (pending_space)
+         {
+           add_char (' ');
+           pending_space = 0;
+         }
+ 
+       if (DEFUN_SELF_DELIMITING (defun_arg[0]))
+         {
+ 	  xml_insert_element (DEFDELIMITER, START);
+           add_char (defun_arg[0]);
+ 	  xml_insert_element (DEFDELIMITER, END);
+ 	  just_after_paramtype = 0;
+         }
+       else if (defun_arg[0] == '&')
+ 	{
+ 	  xml_insert_element (DEFPARAM, START);
+ 	  add_word (defun_arg);
+ 	  xml_insert_element (DEFPARAM, END);
+ 	  just_after_paramtype = 0;
+ 	}
+       else if (defun_arg[0] == COMMAND_PREFIX || just_after_paramtype)
+ 	{
+ 	  xml_insert_element (DEFPARAM, START);
+ 	  execute_string ("%s", defun_arg);
+ 	  xml_insert_element (DEFPARAM, END);
+ 	  just_after_paramtype = 0;
+ 	}
+       else if (defun_arg[0] == ',' || defun_arg[0] == ';')
+ 	{
+ 	  xml_insert_element (DEFDELIMITER, START);
+ 	  add_word (defun_arg);
+ 	  xml_insert_element (DEFDELIMITER, END);
+ 	  just_after_paramtype = 0;
+ 	}
+       else if (auto_var_p)
+ 	{
+ 	  xml_insert_element (DEFPARAM, START);
+ 	  add_word (defun_arg);
+ 	  xml_insert_element (DEFPARAM, END);
+ 	  just_after_paramtype = 0;
+ 	}
+       else
+ 	{
+ 	  xml_insert_element (DEFPARAMTYPE, START);
+ 	  add_word (defun_arg);
+ 	  xml_insert_element (DEFPARAMTYPE, END);
+ 	  just_after_paramtype = 1;
+ 	}
+     }
+ }
+ 
+ void
+ xml_begin_definition (void)
+ {
+   xml_insert_element (DEFINITION, START);
+   xml_definition_level ++;
+   xml_in_def_item[xml_definition_level] = 0;
+ }
+ 
+ void
+ xml_end_definition (void)
+ {
+   if (xml_in_def_item[xml_definition_level])
+     {
+       xml_insert_element (DEFINITIONITEM, END);
+       xml_in_def_item[xml_definition_level] = 0;
+     }
+   xml_after_def_term = 0;
+   xml_insert_element (DEFINITION, END);
+   xml_definition_level --;
+ }
+ 
+ void
+ xml_begin_def_term (int base_type, const char *category,
+     char *defined_name, char *type_name, char *type_name2)
+ {
+   xml_after_def_term = 0;
+   if (docbook)
+     xml_insert_element_with_attribute (DEFINITIONTERM, START,
+ 				       "role=\"%s\"", category);
+   else
+     xml_insert_element (DEFINITIONTERM, START);
+ 
+   /* Index entry */
+   switch (base_type)
+     {
+     case deffn:
+     case deftypefn:
+       execute_string ("@findex %s\n", defined_name);
+       break;
+     case defvr:
+     case deftypevr:
+     case defcv:
+       execute_string ("@vindex %s\n", defined_name);
+       break;
+     case deftypecv:
+     case deftypeivar:
+       execute_string ("@vindex %s %s %s\n", defined_name, _("of"), type_name);
+       break;
+     case deftypemethod:
+     case defop:
+     case deftypeop:
+       execute_string ("@findex %s %s %s\n", defined_name, _("on"), type_name);
+       break;
+     case deftp:
+       execute_string ("@tindex %s\n", defined_name);
+       break;
+     }
+ 
+   /* Start with category.  */
+   if (! docbook)
+     {
+       xml_insert_element (DEFCATEGORY, START);
+       execute_string (docbook ? "[%s]" : "%s", category);
+       xml_insert_element (DEFCATEGORY, END);
+       add_char(' ');
+     }
+ 
+   /* Output type name first for typed definitions.  */
+   switch (base_type)
+     {
+     case deffn:
+     case defvr:
+     case deftp:
+       break;
+ 
+     case deftypefn:
+     case deftypevr:
+       xml_insert_element (DEFTYPE, START);
+       execute_string ("%s", type_name);
+       xml_insert_element (DEFTYPE, END);
+       add_char (' ');
+       break;
+ 
+     case deftypecv:
+     case deftypeivar:
+     case deftypemethod:
+     case deftypeop:
+       xml_insert_element (DEFTYPE, START);
+       execute_string ("%s", type_name2);
+       xml_insert_element (DEFTYPE, END);
+       add_char (' ');
+       break;
+ 
+     default:
+       xml_insert_element (DEFCLASS, START);
+       execute_string ("%s", type_name);
+       xml_insert_element (DEFCLASS, END);
+       add_char (' ');
+       break;
+     }
+ 
+   /* Categorize rest of the definitions.  */
+   switch (base_type)
+     {
+     case deffn:
+     case deftypefn:
+       xml_insert_element (DEFFUNCTION, START);
+       execute_string ("%s", defined_name);
+       xml_insert_element (DEFFUNCTION, END);
+       break;
+ 
+     case defvr:
+     case deftypevr:
+       xml_insert_element (DEFVARIABLE, START);
+       execute_string ("%s", defined_name);
+       xml_insert_element (DEFVARIABLE, END);
+       break;
+ 
+     case deftp:
+       xml_insert_element (DEFDATATYPE, START);
+       execute_string ("%s", defined_name);
+       xml_insert_element (DEFDATATYPE, END);
+       break;
+ 
+     case defcv:
+     case deftypecv:
+     case deftypeivar:
+       xml_insert_element (DEFCLASSVAR, START);
+       execute_string ("%s", defined_name);
+       xml_insert_element (DEFCLASSVAR, END);
+       break;
+ 
+     case defop:
+     case deftypeop:
+     case deftypemethod:
+       /* Operation / Method */
+       xml_insert_element (DEFOPERATION, START);
+       execute_string ("%s", defined_name);
+       xml_insert_element (DEFOPERATION, END);
+       break;
+     }
+ }
+ 
+ void
+ xml_end_def_term (void)
+ {
+   xml_insert_element (DEFINITIONTERM, END);
+   xml_after_def_term = 1;
+ }
diff -Nrc2 texinfo-4.12/makeinfo/xml.h texinfo-4.13/makeinfo/xml.h
*** texinfo-4.12/makeinfo/xml.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/xml.h	Tue Feb 12 17:00:56 2008
***************
*** 0 ****
--- 1,159 ----
+ /* xml.h -- xml (including Docbook) output declarations.
+    $Id: xml.h,v 1.32 2008/01/31 18:33:28 karl Exp $
+ 
+    Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008
+    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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+    Originally written by Philippe Martin <feloy@free.fr>.  */
+ 
+ #ifndef XML_H
+ #define XML_H
+ 
+ /* Currently sorting the index. */
+ extern int xml_sort_index;
+ 
+ /* Options. */
+ 
+ extern int xml_no_indent;
+ 
+ extern int xml_node_open;
+ extern int xml_no_para;
+ extern char *xml_node_id;
+ extern int xml_last_section_output_position;
+ 
+ extern int xml_in_xref_token;
+ extern int xml_in_bookinfo;
+ extern int xml_in_book_title;
+ extern int xml_in_abstract;
+ 
+ /* Non-zero if we are handling an element that can appear between
+    @item and @itemx, @deffn and @deffnx.  */
+ extern int xml_dont_touch_items_defs;
+ 
+ /* Non-zero if whitespace in the source document should be kept as-is.  */
+ extern int xml_keep_space;
+ 
+ enum xml_element
+ {
+   TEXINFO=0, SETFILENAME, TITLEFONT, SETTITLE, DOCUMENTDESCRIPTION,
+   /* Node */
+   NODE, NODENEXT, NODEPREV, NODEUP,
+   /* Structuring */
+   CHAPTER, SECTION, SUBSECTION, SUBSUBSECTION,
+   TOP, UNNUMBERED, UNNUMBEREDSEC, UNNUMBEREDSUBSEC,
+     UNNUMBEREDSUBSUBSEC,  
+   APPENDIX, APPENDIXSEC, APPENDIXSUBSEC, APPENDIXSUBSUBSEC, 
+   MAJORHEADING, CHAPHEADING, HEADING, SUBHEADING, SUBSUBHEADING,
+   /* Titlepage */
+   TITLEPAGE, AUTHOR, BOOKTITLE, BOOKSUBTITLE,
+   /* Menu */
+   MENU, DETAILMENU, MENUENTRY, MENUTITLE, MENUCOMMENT, MENUNODE,
+   NODENAME,
+   /* -- */
+   ACRONYM, ACRONYMWORD, ACRONYMDESC,
+   ABBREV, ABBREVWORD, ABBREVDESC,
+   TT, CODE, COMMAND_TAG, ENV, FILE_TAG, OPTION, SAMP, KBD, URL, KEY,
+   VAR, SC, DFN, EMPH, STRONG, CITE, NOTFIXEDWIDTH, I, B, R, SLANTED, SANSSERIF,
+   EXDENT,
+   TITLE, 
+   IFINFO, 
+   SP, CENTER,
+   DIRCATEGORY,
+   QUOTATION, EXAMPLE, SMALLEXAMPLE, LISP, SMALLLISP, CARTOUCHE,
+     COPYING, FORMAT, SMALLFORMAT, DISPLAY, SMALLDISPLAY, VERBATIM,
+   FOOTNOTE, LINEANNOTATION,
+   TIP, NOTE, IMPORTANT, WARNING, CAUTION,
+   ITEMIZE, ITEMFUNCTION, ITEM, ENUMERATE, TABLE, TABLEITEM, TABLETERM,
+   INDEXTERM, 
+   MATH, DIMENSION,
+   CLICKSEQUENCE, CLICK,
+   XREF, XREFNODENAME, XREFINFONAME, XREFPRINTEDDESC, XREFINFOFILE,
+     XREFPRINTEDNAME, 
+   INFOREF, INFOREFNODENAME, INFOREFREFNAME, INFOREFINFONAME, 
+   UREF, UREFURL, UREFDESC, UREFREPLACEMENT,
+   EMAIL, EMAILADDRESS, EMAILNAME,
+   GROUP, FLOAT, FLOATTYPE, FLOATPOS, CAPTION, SHORTCAPTION,
+   FLOATTABLE, FLOATFIGURE, FLOATEXAMPLE, FLOATCARTOUCHE,
+   PRINTINDEX, LISTOFFLOATS,
+   ANCHOR, 
+   IMAGE, INLINEIMAGE, IMAGEALTTEXT,
+   PRIMARY, SECONDARY, INFORMALFIGURE, MEDIAOBJECT, IMAGEOBJECT,
+     IMAGEDATA, TEXTOBJECT,  
+   INDEXENTRY, PRIMARYIE, SECONDARYIE, INDEXDIV,
+   MULTITABLE, TGROUP, COLSPEC, THEAD, TBODY, ENTRY, ROW,
+   BOOKINFO, ABSTRACT, REPLACEABLE, ENVAR, COMMENT, FUNCTION, LEGALNOTICE,
+   CONTENTS, SHORTCONTENTS, DOCUMENTLANGUAGE,
+   SETVALUE, CLEARVALUE,
+   DEFINITION, DEFINITIONTERM, DEFINITIONITEM,
+   DEFCATEGORY, DEFFUNCTION, DEFVARIABLE, DEFPARAM, DEFDELIMITER, DEFTYPE,
+   DEFPARAMTYPE, DEFDATATYPE, DEFCLASS, DEFCLASSVAR, DEFOPERATION,
+   FRENCHSPACING,
+   PARA
+ };
+ 
+ extern void xml_add_char (int character),
+   xml_asterisk (void),
+   xml_insert_element (int elt, int arg),
+   xml_insert_entity (char *entity_name),
+   xml_insert_footnote (char *note),
+   xml_insert_quotation (char *type, int arg),
+   xml_insert_indexterm (char *indexterm, char *index),
+   xml_insert_docbook_image (char *name_arg),
+   xml_synindex (char *from, char *to),
+   xml_start_para (void),
+   xml_end_para (void),
+   xml_begin_document (const char *output_basename),
+   xml_end_document (void),
+   xml_start_menu_entry (char *tem),
+   xml_end_menu (void),
+   xml_end_current_element (void),
+   xml_open_section (int level, char *name),
+   xml_close_sections (int level),
+   xml_begin_node (void),
+   xml_begin_index (void),
+   xml_end_index (void),
+   xml_begin_multitable (int ncolumns, int *column_widths),
+   xml_end_multitable (void),
+   xml_end_multitable_row (int first_row),
+   xml_end_multitable_column (void),
+   xml_begin_table (int type, char *item_function),
+   xml_end_table (int type),
+   xml_begin_item (void),
+   xml_begin_table_item (void),
+   xml_continue_table_item (void),
+   xml_begin_enumerate (char *enum_arg),
+   xml_end_enumerate (void),
+   xml_begin_docbook_float (int elt);
+ 
+ extern char *xml_id (char *id);
+ 
+ extern void xml_begin_definition (void),
+   xml_end_definition (void),
+   xml_process_defun_args (char **defun_args, int auto_var_p),
+   xml_begin_def_term (int base_type, const char *category,
+       char *defined_name, char *type_name, char *type_name2),
+   xml_end_def_term (void);
+ 
+ extern int xml_current_stack_index (void),
+   xml_element (char *name);
+ 
+ #if defined (VA_FPRINTF) && __STDC__
+ void xml_insert_element_with_attribute (int elt, int arg, char *format, ...);
+ #else
+ void xml_insert_element_with_attribute ();
+ #endif
+ 
+ #endif /* XML_H */
diff -Nrc2 texinfo-4.12/makeinfo/xref.c texinfo-4.13/makeinfo/xref.c
*** texinfo-4.12/makeinfo/xref.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/xref.c	Tue Dec 25 15:57:21 2007
***************
*** 0 ****
--- 1,632 ----
+ /* xref.c -- cross references for Texinfo.
+    $Id: xref.c,v 1.14 2007/09/26 20:53:40 karl Exp $
+ 
+    Copyright (C) 2004, 2005, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include "cmds.h"
+ #include "float.h"
+ #include "html.h"
+ #include "index.h"
+ #include "macro.h"
+ #include "makeinfo.h"
+ #include "node.h"
+ #include "xml.h"
+ #include "xref.h"
+ 
+ /* Flags which control initial output string for xrefs. */
+ int px_ref_flag = 0;
+ int ref_flag = 0;
+ 
+ /* Called in the multiple-argument case to make sure we generate a valid
+    Info reference.  In the single-argument case, the :: we output
+    suffices for the Info readers to find the end of the reference.  */
+ static void
+ add_xref_punctuation (void)
+ {
+   if (px_ref_flag || ref_flag)  /* user inserts punct after @xref */
+     {
+       /* Check if there's already punctuation.  */
+       int next_char = next_nonwhitespace_character ();
+ 
+       if (next_char == -1)
+         /* EOF while looking for punctuation, let's
+            insert a period instead of crying.  */
+         add_char ('.');
+       else if (next_char != ',' && next_char != '.')
+         /* period and comma terminate xrefs, and nothing else.  Instead
+            of generating an Info reference that can't be followed,
+            though, just insert a period.  Not pretty, but functional.  */
+         add_char ('.');
+     }
+ }
+ 
+ /* Return next comma-delimited argument, but do not cross a close-brace
+    boundary.  Clean up whitespace, too.  If EXPAND is nonzero, replace
+    the entire brace-delimited argument list with its expansion before
+    looking for the next comma.  */
+ char *
+ get_xref_token (int expand)
+ {
+   char *string = 0;
+ 
+   if (docbook)
+     xml_in_xref_token = 1;
+ 
+   if (expand)
+     {
+       int old_offset = input_text_offset;
+       int old_lineno = line_number;
+ 
+       get_until_in_braces ("}", &string);
+       if (curchar () == '}')    /* as opposed to end of text */
+         input_text_offset++;
+       if (input_text_offset > old_offset)
+         {
+           int limit = input_text_offset;
+ 
+           input_text_offset = old_offset;
+           line_number = old_lineno;
+           only_macro_expansion++;
+           replace_with_expansion (input_text_offset, &limit);
+           only_macro_expansion--;
+         }
+       free (string);
+     }
+ 
+   get_until_in_braces (",", &string);
+   if (curchar () == ',')
+     input_text_offset++;
+   fix_whitespace (string);
+ 
+   if (docbook)
+     xml_in_xref_token = 0;
+ 
+   return string;
+ }
+ 
+ 
+ /* NOTE: If you wonder why the HTML output is produced with such a
+    peculiar mix of calls to add_word and execute_string, here's the
+    reason.  get_xref_token (1) expands all macros in a reference, but
+    any other commands, like @value, @@, etc., are left intact.  To
+    expand them, we need to run the arguments through execute_string.
+    However, characters like <, &, > and others cannot be let into
+    execute_string, because they will be escaped.  See the mess?  */
+ 
+ /* Make a cross reference. */
+ void
+ cm_xref (int arg)
+ {
+   if (arg == START)
+     {
+       char *arg1 = get_xref_token (1); /* expands all macros in xref */
+       char *arg2 = get_xref_token (0);
+       char *arg3 = get_xref_token (0);
+       char *arg4 = get_xref_token (0);
+       char *arg5 = get_xref_token (0);
+       char *tem;
+ 
+       /* "@xref{,Foo,, Bar, Baz} is not valid usage of @xref.  The
+          first argument must never be blank." --rms.
+          We hereby comply by disallowing such constructs.  */
+       if (!*arg1)
+         line_error (_("First argument to cross-reference may not be empty"));
+ 
+       if (docbook)
+         {
+           if (!ref_flag)
+             add_word (px_ref_flag || printing_index
+                 ? (char *) gdt("see ") : (char *) gdt("See "));
+ 
+           if (!*arg4 && !*arg5)
+             {
+               char *arg1_id = xml_id (arg1);
+ 
+               if (*arg2 || *arg3)
+                 {
+                   xml_insert_element_with_attribute (XREFNODENAME, START,
+                                                      "linkend=\"%s\"", arg1_id);
+                   free (arg1_id);
+                   execute_string ("%s", *arg3 ? arg3 : arg2);
+                   xml_insert_element (XREFNODENAME, END);
+                 }
+               else
+                 {
+                   xml_insert_element_with_attribute (XREF, START,
+                                                      "linkend=\"%s\"", arg1_id);
+                   xml_insert_element (XREF, END);
+                   free (arg1_id);
+                 }
+             }
+           else if (*arg5)
+             {
+               add_word_args (gdt("See section ``%s'' in "), *arg3 ? arg3 : arg1);
+               xml_insert_element (CITE, START);
+               add_word (arg5);
+               xml_insert_element (CITE, END);
+             }
+           else if (*arg4)
+             {
+               /* Very sad, we are losing xrefs made to ``info only'' books.  */
+             }
+         }
+       else if (xml)
+         {
+           if (!ref_flag)
+             add_word_args ("%s", px_ref_flag ? gdt("see ") : gdt("See "));
+ 
+           xml_insert_element (XREF, START);
+           xml_insert_element (XREFNODENAME, START);
+           execute_string ("%s", arg1);
+           xml_insert_element (XREFNODENAME, END);
+           if (*arg2)
+             {
+               xml_insert_element (XREFINFONAME, START);
+               execute_string ("%s", arg2);
+               xml_insert_element (XREFINFONAME, END);
+             }
+           if (*arg3)
+             {
+               xml_insert_element (XREFPRINTEDDESC, START);
+               execute_string ("%s", arg3);
+               xml_insert_element (XREFPRINTEDDESC, END);
+             }
+           if (*arg4)
+             {
+               xml_insert_element (XREFINFOFILE, START);
+               execute_string ("%s", arg4);
+               xml_insert_element (XREFINFOFILE, END);
+             }
+           if (*arg5)
+             {
+               xml_insert_element (XREFPRINTEDNAME, START);
+               execute_string ("%s", arg5);
+               xml_insert_element (XREFPRINTEDNAME, END);
+             }
+           xml_insert_element (XREF, END);
+         }
+       else if (html)
+         {
+           if (!ref_flag)
+             add_word_args ("%s", px_ref_flag ? gdt("see ") : gdt("See "));
+         }
+       else
+         add_word_args ("%s", px_ref_flag || ref_flag ? "*note " : "*Note ");
+ 
+       if (!xml)
+         {
+           if (*arg5 || *arg4)
+             {
+               /* arg1 - node name
+                  arg2 - reference name
+                  arg3 - title or topic (and reference name if arg2 is NULL)
+                  arg4 - info file name
+                  arg5 - printed manual title  */
+               char *ref_name;
+ 
+               if (!*arg2)
+                 {
+                   if (*arg3)
+                     ref_name = arg3;
+                   else
+                     ref_name = arg1;
+                 }
+               else
+                 ref_name = arg2;
+ 
+               if (html)
+                 { /* More to do eventually, down to Unicode
+                      Normalization Form C.  See the HTML Xref nodes in
+                      the manual.  */
+                   char *file_arg = arg4;
+                   add_html_elt ("<a href=");
+ 
+                   {
+                     /* If there's a directory part, ignore it.  */
+                     char *p = strrchr (file_arg, '/');
+                     if (p)
+                       file_arg = p + 1;
+ 
+                   /* If there's a dot, make it a NULL terminator, so the
+                      extension does not get into the way.  */
+                     p = strrchr (file_arg , '.');
+                     if (p != NULL)
+                       *p = 0;
+                   }
+                   
+                   if (! *file_arg)
+                 warning (_("Empty file name for HTML cross reference in `%s'"),
+                            arg4);
+ 
+                   /* Note that if we are splitting, and the referenced
+                      tag is an anchor rather than a node, we will
+                      produce a reference to a file whose name is
+                      derived from the anchor name.  However, only
+                      nodes create files, so we are referencing a
+                      non-existent file.  cm_anchor, which see, deals
+                      with that problem.  */
+                   if (splitting)
+                     execute_string ("\"../%s/", file_arg);
+                   else
+                     execute_string ("\"%s.html", file_arg);
+                   /* Do not collapse -- to -, etc., in references.  */
+                   in_fixed_width_font++;
+                   tem = expansion (arg1, 0); /* expand @-commands in node */
+                   in_fixed_width_font--;
+                   add_anchor_name (tem, 1);
+                   free (tem);
+                   add_word ("\">");
+                   execute_string ("%s",ref_name);
+                   add_word ("</a>");
+                 }
+               else
+                 {
+                   execute_string ("%s:", ref_name);
+                   in_fixed_width_font++;
+                   execute_string (" (%s)%s", arg4, arg1);
+                   add_xref_punctuation ();
+                   in_fixed_width_font--;
+                 }
+ 
+               /* Free all of the arguments found. */
+               if (arg1) free (arg1);
+               if (arg2) free (arg2);
+               if (arg3) free (arg3);
+               if (arg4) free (arg4);
+               if (arg5) free (arg5);
+               return;
+             }
+           else
+             remember_node_reference (arg1, line_number, followed_reference);
+ 
+           if (*arg3)
+             {
+               if (html)
+                 {
+                   add_html_elt ("<a href=\"");
+                   in_fixed_width_font++;
+                   tem = expansion (arg1, 0);
+                   in_fixed_width_font--;
+                   add_anchor_name (tem, 1);
+                   free (tem);
+                   add_word ("\">");
+                   execute_string ("%s", *arg2 ? arg2 : arg3);
+                   add_word ("</a>");
+                 }
+               else
+                 {
+                   execute_string ("%s:", *arg2 ? arg2 : arg3);
+                   in_fixed_width_font++;
+                   execute_string (" %s", arg1);
+                   add_xref_punctuation ();
+                   in_fixed_width_font--;
+                 }
+             }
+           else
+             {
+               if (html)
+                 {
+                   add_html_elt ("<a href=\"");
+                   in_fixed_width_font++;
+                   tem = expansion (arg1, 0);
+                   in_fixed_width_font--;
+                   add_anchor_name (tem, 1);
+                   free (tem);
+                   add_word ("\">");
+                   if (*arg2)
+                     execute_string ("%s", arg2);
+                   else
+                     {
+                       char *fref = get_float_ref (arg1);
+                       execute_string ("%s", fref ? fref : arg1);
+                       free (fref);
+                     }
+                   add_word ("</a>");
+                 }
+               else
+                 {
+                   if (*arg2)
+                     {
+                       execute_string ("%s:", arg2);
+                       in_fixed_width_font++;
+                       execute_string (" %s", arg1);
+                       add_xref_punctuation ();
+                       in_fixed_width_font--;
+                     }
+                   else
+                     {
+                       char *fref = get_float_ref (arg1);
+                       if (fref)
+                         { /* Reference is being made to a float.  */
+                           execute_string ("%s:", fref);
+                           in_fixed_width_font++;
+                           execute_string (" %s", arg1);
+                           add_xref_punctuation ();
+                           in_fixed_width_font--;
+                         }
+                       else
+                         {
+                           in_fixed_width_font++;
+                           execute_string ("%s::", arg1);
+                           in_fixed_width_font--;
+                         }
+                     }
+                 }
+             }
+         }
+       /* Free all of the arguments found. */
+       if (arg1) free (arg1);
+       if (arg2) free (arg2);
+       if (arg3) free (arg3);
+       if (arg4) free (arg4);
+       if (arg5) free (arg5);
+     }
+   else
+     { /* Check that the next non-whitespace character is valid to follow
+          an xref (so Info readers can find the node names).
+          `input_text_offset' is pointing at the "}" which ended the xref
+          command.  This is not used for @pxref or @ref, since we insert
+          the necessary punctuation above, if needed.  */
+       int temp = next_nonwhitespace_character ();
+ 
+       if (temp == -1)
+         warning (_("End of file reached while looking for `.' or `,'"));
+       else if (temp != '.' && temp != ',')
+         {
+           warning (_("`.' or `,' must follow @%s, not `%c'"), command, temp);
+           if (temp == ')')
+             warning (_("for cross-references in parentheses, use @pxref"));
+         }
+     }
+ }
+ 
+ void
+ cm_pxref (int arg)
+ {
+   if (arg == START)
+     {
+       px_ref_flag++;
+       cm_xref (arg);
+       px_ref_flag--;
+     }
+   /* cm_xref isn't called with arg == END, which disables the code near
+      the end of cm_xref that checks for `.' or `,' after the
+      cross-reference.  This is because cm_xref generates the required
+      character itself (when needed) if px_ref_flag is set.  */
+ }
+ 
+ void
+ cm_ref (int arg)
+ {
+   /* See the comments in cm_pxref about the checks for punctuation.  */
+   if (arg == START)
+     {
+       ref_flag++;
+       cm_xref (arg);
+       ref_flag--;
+     }
+ }
+ 
+ void
+ cm_inforef (int arg)
+ {
+   if (arg == START)
+     {
+       char *node = get_xref_token (1); /* expands all macros in inforef */
+       char *pname = get_xref_token (0);
+       char *file = get_xref_token (0);
+ 
+       /* (see comments at cm_xref).  */
+       if (!*node)
+         line_error (_("First argument to @inforef may not be empty"));
+ 
+       if (xml && !docbook)
+         {
+           xml_insert_element (INFOREF, START);
+           xml_insert_element (INFOREFNODENAME, START);
+           execute_string ("%s", node);
+           xml_insert_element (INFOREFNODENAME, END);
+           if (*pname)
+             {
+               xml_insert_element (INFOREFREFNAME, START);
+               execute_string ("%s", pname);
+               xml_insert_element (INFOREFREFNAME, END);
+             }
+           xml_insert_element (INFOREFINFONAME, START);
+           execute_string ("%s", file);
+           xml_insert_element (INFOREFINFONAME, END);
+ 
+           xml_insert_element (INFOREF, END);
+         }
+       else if (html)
+         {
+           char *tem;
+ 
+           add_word ((char *) gdt("see "));
+           /* html fixxme: revisit this */
+           add_html_elt ("<a href=");
+           if (splitting)
+             execute_string ("\"../%s/", file);
+           else
+             execute_string ("\"%s.html", file);
+           tem = expansion (node, 0);
+           add_anchor_name (tem, 1);
+           add_word ("\">");
+           execute_string ("%s", *pname ? pname : tem);
+           add_word ("</a>");
+           free (tem);
+         }
+       else
+         {
+           if (*pname)
+             execute_string ("*note %s: (%s)%s", pname, file, node);
+           else
+             execute_string ("*note (%s)%s::", file, node);
+         }
+ 
+       free (node);
+       free (pname);
+       free (file);
+     }
+ }
+ 
+ /* A URL reference.  */
+ void
+ cm_uref (int arg)
+ {
+   if (arg == START)
+     {
+       char *url  = get_xref_token (1); /* expands all macros in uref */
+       char *desc = get_xref_token (0);
+       char *replacement = get_xref_token (0);
+ 
+       if (docbook)
+         {
+           xml_insert_element_with_attribute (UREF, START, "url=\"%s\"",
+ 					     maybe_escaped_expansion (url, 0, 1));
+           if (*replacement)
+             execute_string ("%s", replacement);
+           else if (*desc)
+             execute_string ("%s", desc);
+           else
+             execute_string ("%s", url);
+           xml_insert_element (UREF, END);
+         }
+       else if (xml)
+         {
+           xml_insert_element (UREF, START);
+           xml_insert_element (UREFURL, START);
+           execute_string ("%s", url);
+           xml_insert_element (UREFURL, END);
+           if (*desc)
+             {
+               xml_insert_element (UREFDESC, START);
+               execute_string ("%s", desc);
+               xml_insert_element (UREFDESC, END);
+             }
+           if (*replacement)
+             {
+               xml_insert_element (UREFREPLACEMENT, START);
+               execute_string ("%s", replacement);
+               xml_insert_element (UREFREPLACEMENT, END);
+             }
+           xml_insert_element (UREF, END);
+         }
+       else if (html)
+         { /* never need to show the url */
+           add_html_elt ("<a href=");
+           /* don't collapse `--' etc. in the url */
+           in_fixed_width_font++;
+           execute_string ("\"%s\"", url);
+           in_fixed_width_font--;
+           add_word (">");
+           execute_string ("%s", *replacement ? replacement
+                                 : (*desc ? desc : url));
+           add_word ("</a>");
+         }
+       else if (*replacement) /* do not show the url */
+         execute_string ("%s", replacement);
+       else if (*desc)        /* show both text and url */
+         {
+           execute_string ("%s ", desc);
+           in_fixed_width_font++;
+           execute_string ("(%s)", url);
+           in_fixed_width_font--;
+         }
+       else /* no text at all, so have the url to show */
+         {
+           in_fixed_width_font++;
+           execute_string ("%s%s%s",
+                           printing_index ? "" : "`",
+                           url,
+                           printing_index ? "" : "'");
+           in_fixed_width_font--;
+         }
+       if (url)
+         free (url);
+       if (desc)
+         free (desc);
+       if (replacement)
+         free (replacement);
+     }
+ }
+ 
+ /* An email reference.  */
+ void
+ cm_email (int arg)
+ {
+   if (arg == START)
+     {
+       char *addr = get_xref_token (1); /* expands all macros in email */
+       char *name = get_xref_token (0);
+ 
+       if (xml && docbook)
+         {
+ 	  if (*name)
+ 	    {
+ 	      xml_insert_element_with_attribute (EMAIL, START,
+ 						 "url=\"mailto:%s\"",
+ 						 maybe_escaped_expansion (addr, 0, 1));
+               execute_string ("%s", name);
+ 	      xml_insert_element (EMAIL, END);
+ 	    }
+ 	  else
+ 	    {
+ 	      xml_insert_element (EMAILADDRESS, START);
+ 	      execute_string ("%s", addr);
+ 	      xml_insert_element (EMAILADDRESS, END);
+ 	    }
+         }
+       else if (xml)
+         {
+           xml_insert_element (EMAIL, START);
+           xml_insert_element (EMAILADDRESS, START);
+           execute_string ("%s", addr);
+           xml_insert_element (EMAILADDRESS, END);
+           if (*name)
+             {
+               xml_insert_element (EMAILNAME, START);
+               execute_string ("%s", name);
+               xml_insert_element (EMAILNAME, END);
+             }
+           xml_insert_element (EMAIL, END);
+         }
+       else if (html)
+         {
+           add_html_elt ("<a href=");
+           /* don't collapse `--' etc. in the address */
+           in_fixed_width_font++;
+           execute_string ("\"mailto:%s\"", addr);
+           in_fixed_width_font--;
+           add_word (">");
+           execute_string ("%s", *name ? name : addr);
+           add_word ("</a>");
+         }
+       else
+         {
+           execute_string ("%s%s", name, *name ? " "  : "");
+           in_fixed_width_font++;
+           execute_string ("<%s>", addr);
+           in_fixed_width_font--;
+         }
+ 
+       if (addr)
+         free (addr);
+       if (name)
+         free (name);
+     }
+ }
diff -Nrc2 texinfo-4.12/makeinfo/xref.h texinfo-4.13/makeinfo/xref.h
*** texinfo-4.12/makeinfo/xref.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/makeinfo/xref.h	Sun Jul  1 14:20:33 2007
***************
*** 0 ****
--- 1,29 ----
+ /* xref.h -- declarations for the cross references.
+    $Id: xref.h,v 1.4 2007/07/01 21:20:33 karl Exp $
+ 
+    Copyright (C) 2004, 2007 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef XREF_H
+ #define XREF_H
+ 
+ enum reftype
+ {
+   menu_reference, followed_reference
+ };
+ 
+ extern char *get_xref_token (int expand);
+ 
+ #endif /* not XREF_H */
diff -Nrc2 texinfo-4.12/po/ChangeLog texinfo-4.13/po/ChangeLog
*** texinfo-4.12/po/ChangeLog	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/ChangeLog	Tue Dec 25 15:57:21 2007
***************
*** 0 ****
--- 1,36 ----
+ 2007-12-23  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* Makefile.in.in: Upgrade to gettext-0.17.
+ 	* ORIG: New file, from gettext-0.17.
+ 
+ 2007-02-10  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* Makefile.in.in: Upgrade to gettext-0.16.
+ 
+ 2005-05-28  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* ORIG: New file, from gettext-0.14.5.
+ 
+ 2005-03-15  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* ORIG: New file, from gettext-0.14.3.
+ 
+ 2005-03-12  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* Makefile.in.in: Upgrade to gettext-0.14.2.
+ 	* ORIG: New file, from gettext-0.14.2.
+ 
+ 2004-02-05  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* Makefile.in.in: Upgrade to gettext-0.14.1.
+ 	* ORIG: New file, from gettext-0.14.1.
+ 	* Rules-quot: Upgrade to gettext-0.14.1.
+ 
+ 2003-12-20  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* ORIG: New file, from gettext-0.13.1.
+ 
+ 2003-12-13  gettextize  <bug-gnu-gettext@gnu.org>
+ 
+ 	* ORIG: New file, from gettext-0.13.
+ 
diff -Nrc2 texinfo-4.12/po/LINGUAS texinfo-4.13/po/LINGUAS
*** texinfo-4.12/po/LINGUAS	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/LINGUAS	Tue Dec 25 15:57:21 2007
***************
*** 0 ****
--- 1,22 ----
+ cs
+ da
+ de
+ de_AT
+ eo
+ es
+ fr
+ he
+ hr
+ hu
+ ja
+ nl
+ nb
+ pl
+ ro
+ ru
+ rw
+ sv
+ tr
+ vi
+ zh_CN
+ zh_TW
diff -Nrc2 texinfo-4.12/po/Makefile.in.in texinfo-4.13/po/Makefile.in.in
*** texinfo-4.12/po/Makefile.in.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/Makefile.in.in	Tue Dec 25 15:57:21 2007
***************
*** 0 ****
--- 1,429 ----
+ # Makefile for PO directory in any package using GNU gettext.
+ # Copyright (C) 1995-1997, 2000-2007 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+ #
+ # This file can be copied and used freely without restrictions.  It can
+ # be used in projects which are not available under the GNU General Public
+ # License but which still want to provide support for the GNU gettext
+ # functionality.
+ # Please note that the actual code of GNU gettext is covered by the GNU
+ # General Public License and is *not* in the public domain.
+ #
+ # Origin: gettext-0.17
+ GETTEXT_MACRO_VERSION = 0.17
+ 
+ PACKAGE = @PACKAGE@
+ VERSION = @VERSION@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ 
+ SHELL = /bin/sh
+ @SET_MAKE@
+ 
+ srcdir = @srcdir@
+ top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+ 
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ datarootdir = @datarootdir@
+ datadir = @datadir@
+ localedir = @localedir@
+ gettextsrcdir = $(datadir)/gettext/po
+ 
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ 
+ # We use $(mkdir_p).
+ # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
+ # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
+ # @install_sh@ does not start with $(SHELL), so we add it.
+ # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
+ # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
+ # versions, $(mkinstalldirs) and $(install_sh) are unused.
+ mkinstalldirs = $(SHELL) @install_sh@ -d
+ install_sh = $(SHELL) @install_sh@
+ MKDIR_P = @MKDIR_P@
+ mkdir_p = @mkdir_p@
+ 
+ GMSGFMT_ = @GMSGFMT@
+ GMSGFMT_no = @GMSGFMT@
+ GMSGFMT_yes = @GMSGFMT_015@
+ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
+ MSGFMT_ = @MSGFMT@
+ MSGFMT_no = @MSGFMT@
+ MSGFMT_yes = @MSGFMT_015@
+ MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
+ XGETTEXT_ = @XGETTEXT@
+ XGETTEXT_no = @XGETTEXT@
+ XGETTEXT_yes = @XGETTEXT_015@
+ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
+ MSGMERGE = msgmerge
+ MSGMERGE_UPDATE = @MSGMERGE@ --update
+ MSGINIT = msginit
+ MSGCONV = msgconv
+ MSGFILTER = msgfilter
+ 
+ POFILES = @POFILES@
+ GMOFILES = @GMOFILES@
+ UPDATEPOFILES = @UPDATEPOFILES@
+ DUMMYPOFILES = @DUMMYPOFILES@
+ DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+ DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
+ $(POFILES) $(GMOFILES) \
+ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+ 
+ POTFILES = \
+ 
+ CATALOGS = @CATALOGS@
+ 
+ # Makevars gets inserted here. (Don't remove this line!)
+ 
+ .SUFFIXES:
+ .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+ 
+ .po.mo:
+ 	@echo "$(MSGFMT) -c -o $@ $<"; \
+ 	$(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+ 
+ .po.gmo:
+ 	@lang=`echo $* | sed -e 's,.*/,,'`; \
+ 	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ 	echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
+ 	cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+ 
+ .sin.sed:
+ 	sed -e '/^#/d' $< > t-$@
+ 	mv t-$@ $@
+ 
+ 
+ all: check-macro-version all-@USE_NLS@
+ 
+ all-yes: stamp-po
+ all-no:
+ 
+ # Ensure that the gettext macros and this Makefile.in.in are in sync.
+ check-macro-version:
+ 	@test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
+ 	  || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
+ 	       exit 1; \
+ 	     }
+ 
+ # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+ # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+ # we don't want to bother translators with empty POT files). We assume that
+ # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+ # In this case, stamp-po is a nop (i.e. a phony target).
+ 
+ # stamp-po is a timestamp denoting the last time at which the CATALOGS have
+ # been loosely updated. Its purpose is that when a developer or translator
+ # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+ # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+ # invocations of "make" will do nothing. This timestamp would not be necessary
+ # if updating the $(CATALOGS) would always touch them; however, the rule for
+ # $(POFILES) has been designed to not touch files that don't need to be
+ # changed.
+ stamp-po: $(srcdir)/$(DOMAIN).pot
+ 	test ! -f $(srcdir)/$(DOMAIN).pot || \
+ 	  test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ 	@test ! -f $(srcdir)/$(DOMAIN).pot || { \
+ 	  echo "touch stamp-po" && \
+ 	  echo timestamp > stamp-poT && \
+ 	  mv stamp-poT stamp-po; \
+ 	}
+ 
+ # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+ # otherwise packages like GCC can not be built if only parts of the source
+ # have been downloaded.
+ 
+ # This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+ # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ 	if LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null | grep -v 'libtool:' >/dev/null; then \
+ 	  package_gnu='GNU '; \
+ 	else \
+ 	  package_gnu=''; \
+ 	fi; \
+ 	if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+ 	  msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+ 	else \
+ 	  msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+ 	fi; \
+ 	case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+ 	  '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
+ 	    $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ 	      --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ 	      --files-from=$(srcdir)/POTFILES.in \
+ 	      --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ 	      --msgid-bugs-address="$$msgid_bugs_address" \
+ 	    ;; \
+ 	  *) \
+ 	    $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ 	      --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+ 	      --files-from=$(srcdir)/POTFILES.in \
+ 	      --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ 	      --package-name="$${package_gnu}@PACKAGE@" \
+ 	      --package-version='@VERSION@' \
+ 	      --msgid-bugs-address="$$msgid_bugs_address" \
+ 	    ;; \
+ 	esac
+ 	test ! -f $(DOMAIN).po || { \
+ 	  if test -f $(srcdir)/$(DOMAIN).pot; then \
+ 	    sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ 	    sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ 	    if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+ 	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+ 	    else \
+ 	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+ 	      mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ 	    fi; \
+ 	  else \
+ 	    mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ 	  fi; \
+ 	}
+ 
+ # This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+ # every "make" invocation, only create it when it is missing.
+ # Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+ $(srcdir)/$(DOMAIN).pot:
+ 	$(MAKE) $(DOMAIN).pot-update
+ 
+ # This target rebuilds a PO file if $(DOMAIN).pot has changed.
+ # Note that a PO file is not touched if it doesn't need to be changed.
+ $(POFILES): $(srcdir)/$(DOMAIN).pot
+ 	@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ 	if test -f "$(srcdir)/$${lang}.po"; then \
+ 	  test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ 	  echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+ 	  cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
+ 	else \
+ 	  $(MAKE) $${lang}.po-create; \
+ 	fi
+ 
+ 
+ install: install-exec install-data
+ install-exec:
+ install-data: install-data-@USE_NLS@
+ 	if test "$(PACKAGE)" = "gettext-tools"; then \
+ 	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ 	  for file in $(DISTFILES.common) Makevars.template; do \
+ 	    $(INSTALL_DATA) $(srcdir)/$$file \
+ 			    $(DESTDIR)$(gettextsrcdir)/$$file; \
+ 	  done; \
+ 	  for file in Makevars; do \
+ 	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ 	  done; \
+ 	else \
+ 	  : ; \
+ 	fi
+ install-data-no: all
+ install-data-yes: all
+ 	$(mkdir_p) $(DESTDIR)$(datadir)
+ 	@catalogs='$(CATALOGS)'; \
+ 	for cat in $$catalogs; do \
+ 	  cat=`basename $$cat`; \
+ 	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ 	  dir=$(localedir)/$$lang/LC_MESSAGES; \
+ 	  $(mkdir_p) $(DESTDIR)$$dir; \
+ 	  if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+ 	  $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+ 	  echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+ 	  for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ 	    if test -n "$$lc"; then \
+ 	      if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ 	        link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ 	        mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ 	        mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ 	        (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ 	         for file in *; do \
+ 	           if test -f $$file; then \
+ 	             ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ 	           fi; \
+ 	         done); \
+ 	        rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ 	      else \
+ 	        if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ 	          :; \
+ 	        else \
+ 	          rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ 	          mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ 	        fi; \
+ 	      fi; \
+ 	      rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ 	      ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ 	      ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ 	      cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ 	      echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+ 	    fi; \
+ 	  done; \
+ 	done
+ 
+ install-strip: install
+ 
+ installdirs: installdirs-exec installdirs-data
+ installdirs-exec:
+ installdirs-data: installdirs-data-@USE_NLS@
+ 	if test "$(PACKAGE)" = "gettext-tools"; then \
+ 	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ 	else \
+ 	  : ; \
+ 	fi
+ installdirs-data-no:
+ installdirs-data-yes:
+ 	$(mkdir_p) $(DESTDIR)$(datadir)
+ 	@catalogs='$(CATALOGS)'; \
+ 	for cat in $$catalogs; do \
+ 	  cat=`basename $$cat`; \
+ 	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ 	  dir=$(localedir)/$$lang/LC_MESSAGES; \
+ 	  $(mkdir_p) $(DESTDIR)$$dir; \
+ 	  for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ 	    if test -n "$$lc"; then \
+ 	      if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ 	        link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ 	        mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ 	        mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ 	        (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ 	         for file in *; do \
+ 	           if test -f $$file; then \
+ 	             ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ 	           fi; \
+ 	         done); \
+ 	        rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ 	      else \
+ 	        if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ 	          :; \
+ 	        else \
+ 	          rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ 	          mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ 	        fi; \
+ 	      fi; \
+ 	    fi; \
+ 	  done; \
+ 	done
+ 
+ # Define this as empty until I found a useful application.
+ installcheck:
+ 
+ uninstall: uninstall-exec uninstall-data
+ uninstall-exec:
+ uninstall-data: uninstall-data-@USE_NLS@
+ 	if test "$(PACKAGE)" = "gettext-tools"; then \
+ 	  for file in $(DISTFILES.common) Makevars.template; do \
+ 	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ 	  done; \
+ 	else \
+ 	  : ; \
+ 	fi
+ uninstall-data-no:
+ uninstall-data-yes:
+ 	catalogs='$(CATALOGS)'; \
+ 	for cat in $$catalogs; do \
+ 	  cat=`basename $$cat`; \
+ 	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ 	  for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+ 	    rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ 	  done; \
+ 	done
+ 
+ check: all
+ 
+ info dvi ps pdf html tags TAGS ctags CTAGS ID:
+ 
+ mostlyclean:
+ 	rm -f remove-potcdate.sed
+ 	rm -f stamp-poT
+ 	rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+ 	rm -fr *.o
+ 
+ clean: mostlyclean
+ 
+ distclean: clean
+ 	rm -f Makefile Makefile.in POTFILES *.mo
+ 
+ maintainer-clean: distclean
+ 	@echo "This command is intended for maintainers to use;"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ 	rm -f stamp-po $(GMOFILES)
+ 
+ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+ dist distdir:
+ 	$(MAKE) update-po
+ 	@$(MAKE) dist2
+ # This is a separate target because 'update-po' must be executed before.
+ dist2: stamp-po $(DISTFILES)
+ 	dists="$(DISTFILES)"; \
+ 	if test "$(PACKAGE)" = "gettext-tools"; then \
+ 	  dists="$$dists Makevars.template"; \
+ 	fi; \
+ 	if test -f $(srcdir)/$(DOMAIN).pot; then \
+ 	  dists="$$dists $(DOMAIN).pot stamp-po"; \
+ 	fi; \
+ 	if test -f $(srcdir)/ChangeLog; then \
+ 	  dists="$$dists ChangeLog"; \
+ 	fi; \
+ 	for i in 0 1 2 3 4 5 6 7 8 9; do \
+ 	  if test -f $(srcdir)/ChangeLog.$$i; then \
+ 	    dists="$$dists ChangeLog.$$i"; \
+ 	  fi; \
+ 	done; \
+ 	if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+ 	for file in $$dists; do \
+ 	  if test -f $$file; then \
+ 	    cp -p $$file $(distdir) || exit 1; \
+ 	  else \
+ 	    cp -p $(srcdir)/$$file $(distdir) || exit 1; \
+ 	  fi; \
+ 	done
+ 
+ update-po: Makefile
+ 	$(MAKE) $(DOMAIN).pot-update
+ 	test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ 	$(MAKE) update-gmo
+ 
+ # General rule for creating PO files.
+ 
+ .nop.po-create:
+ 	@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+ 	echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+ 	exit 1
+ 
+ # General rule for updating PO files.
+ 
+ .nop.po-update:
+ 	@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+ 	if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+ 	tmpdir=`pwd`; \
+ 	echo "$$lang:"; \
+ 	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ 	echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ 	cd $(srcdir); \
+ 	if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+ 	  if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ 	    rm -f $$tmpdir/$$lang.new.po; \
+ 	  else \
+ 	    if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ 	      :; \
+ 	    else \
+ 	      echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ 	      exit 1; \
+ 	    fi; \
+ 	  fi; \
+ 	else \
+ 	  echo "msgmerge for $$lang.po failed!" 1>&2; \
+ 	  rm -f $$tmpdir/$$lang.new.po; \
+ 	fi
+ 
+ $(DUMMYPOFILES):
+ 
+ update-gmo: Makefile $(GMOFILES)
+ 	@:
+ 
+ Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
+ 	cd $(top_builddir) \
+ 	  && $(SHELL) ./config.status $(subdir)/$@.in po-directories
+ 
+ force:
+ 
+ # Tell versions [3.59,3.63) of GNU make not to export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/po/Makevars texinfo-4.13/po/Makevars
*** texinfo-4.12/po/Makevars	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/Makevars	Thu Jun  8 15:42:22 2006
***************
*** 0 ****
--- 1,41 ----
+ # Makefile variables for PO directory in any package using GNU gettext.
+ 
+ # Usually the message domain is the same as the package name.
+ DOMAIN = $(PACKAGE)
+ 
+ # These two variables depend on the location of this directory.
+ subdir = po
+ top_builddir = ..
+ 
+ # These options get passed to xgettext.
+ XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --keyword=__
+ 
+ # This is the copyright holder that gets inserted into the header of the
+ # $(DOMAIN).pot file.  Set this to the copyright holder of the surrounding
+ # package.  (Note that the msgstr strings, extracted from the package's
+ # sources, belong to the copyright holder of the package.)  Translators are
+ # expected to transfer the copyright for their translations to this person
+ # or entity, or to disclaim their copyright.  The empty string stands for
+ # the public domain; in this case the translators are expected to disclaim
+ # their copyright.
+ COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+ 
+ # This is the email address or URL to which the translators shall report
+ # bugs in the untranslated strings:
+ # - Strings which are not entire sentences, see the maintainer guidelines
+ #   in the GNU gettext documentation, section 'Preparing Strings'.
+ # - Strings which use unclear terms or require additional context to be
+ #   understood.
+ # - Strings which make invalid assumptions about notation of date, time or
+ #   money.
+ # - Pluralisation problems.
+ # - Incorrect English spelling.
+ # - Incorrect formatting.
+ # It can be your email address, or a mailing list address where translators
+ # can write to without being subscribed, or the URL of a web page through
+ # which the translators can contact you.
+ MSGID_BUGS_ADDRESS = bug-texinfo@gnu.org
+ 
+ # This is the list of locale categories, beyond LC_MESSAGES, for which the
+ # message catalogs shall be used.  It is usually empty.
+ EXTRA_LOCALE_CATEGORIES =
diff -Nrc2 texinfo-4.12/po/POTFILES.in texinfo-4.13/po/POTFILES.in
*** texinfo-4.12/po/POTFILES.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/POTFILES.in	Tue Jan  1 11:22:19 2008
***************
*** 0 ****
--- 1,47 ----
+ # Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ # 
+ # Copying and distribution of this file, with or without modification,
+ # are permitted in any medium without royalty provided the copyright
+ # notice and this notice are preserved.
+ #  
+ # List of source files containing translatable strings.
+ 
+ gnulib/lib/error.c
+ gnulib/lib/getopt.c
+ gnulib/lib/xalloc-die.c
+ gnulib/lib/xsetenv.c
+ info/echo-area.c
+ info/footnotes.c
+ info/footnotes.h
+ info/indices.c
+ info/info.c
+ info/infodoc.c
+ info/infokey.c
+ info/infomap.c
+ info/m-x.c
+ info/makedoc.c
+ info/nodemenu.c
+ info/search.c
+ info/session.c
+ info/tilde.c
+ info/variables.c
+ info/window.c
+ install-info/install-info.c
+ lib/xexit.c
+ makeinfo/cmds.c
+ makeinfo/defun.c
+ makeinfo/files.c
+ makeinfo/float.c
+ makeinfo/footnote.c
+ makeinfo/html.c
+ makeinfo/index.c
+ makeinfo/insertion.c
+ makeinfo/lang.c
+ makeinfo/macro.c
+ makeinfo/makeinfo.c
+ makeinfo/multi.c
+ makeinfo/node.c
+ makeinfo/sectioning.c
+ makeinfo/xml.c
+ makeinfo/xref.c
+ util/texindex.c
diff -Nrc2 texinfo-4.12/po/Rules-quot texinfo-4.13/po/Rules-quot
*** texinfo-4.12/po/Rules-quot	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/Rules-quot	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,47 ----
+ # Special Makefile rules for English message catalogs with quotation marks.
+ 
+ DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
+ 
+ .SUFFIXES: .insert-header .po-update-en
+ 
+ en@quot.po-create:
+ 	$(MAKE) en@quot.po-update
+ en@boldquot.po-create:
+ 	$(MAKE) en@boldquot.po-update
+ 
+ en@quot.po-update: en@quot.po-update-en
+ en@boldquot.po-update: en@boldquot.po-update-en
+ 
+ .insert-header.po-update-en:
+ 	@lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+ 	if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+ 	tmpdir=`pwd`; \
+ 	echo "$$lang:"; \
+ 	ll=`echo $$lang | sed -e 's/@.*//'`; \
+ 	LC_ALL=C; export LC_ALL; \
+ 	cd $(srcdir); \
+ 	if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+ 	  if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ 	    rm -f $$tmpdir/$$lang.new.po; \
+ 	  else \
+ 	    if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ 	      :; \
+ 	    else \
+ 	      echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ 	      exit 1; \
+ 	    fi; \
+ 	  fi; \
+ 	else \
+ 	  echo "creation of $$lang.po failed!" 1>&2; \
+ 	  rm -f $$tmpdir/$$lang.new.po; \
+ 	fi
+ 
+ en@quot.insert-header: insert-header.sin
+ 	sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
+ 
+ en@boldquot.insert-header: insert-header.sin
+ 	sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
+ 
+ mostlyclean: mostlyclean-quot
+ mostlyclean-quot:
+ 	rm -f *.insert-header
diff -Nrc2 texinfo-4.12/po/boldquot.sed texinfo-4.13/po/boldquot.sed
*** texinfo-4.12/po/boldquot.sed	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/boldquot.sed	Tue Sep  3 08:51:40 2002
***************
*** 0 ****
--- 1,10 ----
+ s/"\([^"]*\)"/â€œ\1â€�/g
+ s/`\([^`']*\)'/â€˜\1â€™/g
+ s/ '\([^`']*\)' / â€˜\1â€™ /g
+ s/ '\([^`']*\)'$/ â€˜\1â€™/g
+ s/^'\([^`']*\)' /â€˜\1â€™ /g
+ s/â€œâ€�/""/g
+ s/â€œ/â€œ[1m/g
+ s/â€�/[0mâ€�/g
+ s/â€˜/â€˜[1m/g
+ s/â€™/[0mâ€™/g
Files texinfo-4.12/po/cs.gmo and texinfo-4.13/po/cs.gmo differ
diff -Nrc2 texinfo-4.12/po/cs.po texinfo-4.13/po/cs.po
*** texinfo-4.12/po/cs.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/cs.po	Thu Sep 18 11:38:30 2008
***************
*** 0 ****
--- 1,3599 ----
+ # Czech translations for GNU texinfo
+ # Copyright (C) 1997 Free Software Foundation, Inc.
+ # Vladimir Michl <Vladimir.Michl@seznam.cz>, 1997.
+ #
+ # Note: 2 messages untranslated, it's ok.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.0\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2000-10-31 15:17+01:00\n"
+ "Last-Translator: Vladimir Michl <Vladimir.Michl@seznam.cz>\n"
+ "Language-Team: Czech <cs@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO-8859-2\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: pøepínaè `%s' není jednoznaèný\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: pøepínaè `--%s' musí být zadán bez argumentu\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: pøepínaè `%c%s' musí být zadán bez argumentu\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: pøepínaè `%s' vy¾aduje argument\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: neznámý pøepínaè `--%s'\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: neznámý pøepínaè `%c%s'\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: neznámý pøepínaè -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: neznámý pøepínaè -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: pøepínaè vy¾aduje argument -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: pøepínaè `-W %s' není jednoznaèný\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: pøepínaè `-W %s' musí být zadán bez argumentu\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, fuzzy, c-format
+ msgid "memory exhausted"
+ msgstr "virtuální pamì» vyèerpána"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Posun na následující znak"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Posun na pøedcházející znak"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Pøesun na zaèátek tohoto øádku"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Pøesun na konec tohoto øádku"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Posun na následující slovo"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Posun na pøedcházející slovo"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Smazání znaku pod kurzorem"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Smazání prvního znaku vlevo od kurzoru"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Zru¹ení nebo pøeru¹ení operace"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Akceptování (nebo vnucené dokonèení) tohoto øádku"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Vlo¾ení dal¹ího znaku bez interpretace jeho funkce"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Vlo¾ení tohoto znaku"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Vlo¾ení tabelátoru"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Pøemístìní znaku na pozici"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Vlo¾ení toho co bylo naposled smazáno"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "Kruhový buffer smazaných oblastí je prázdný"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Vlo¾ení naposledy smazaného úseku"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Smazání v¹eho od kurzoru a¾ do konce øádku"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Smazání v¹eho od zaèátku øádku do kurzoru"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Smazání slova, od kurzoru do konce slova"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Smazání slova, od zaèátku slova do kurzoru"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Doplnìní neexistují"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Nekompletní"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Seznam mo¾ných doplnìní"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Jedinné doplnìní"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Jedno doplnìní:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d doplnìní:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Vlo¾ení doplnìní"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Hledám doplnìní..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Odrolování obsahu okna s doplnìními"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Poznámky pod èarou nelze zobrazit"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr ""
+ "Zobrazení poznámek pod èarou, vztahujících se k tomuto uzlu, v jiném oknì"
+ 
+ #: info/footnotes.h:26
+ #, fuzzy
+ msgid "---------- Footnotes ----------"
+ msgstr "---------------------\n"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Vyhledání øetìzce v rejstøíku tohoto souboru"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Jsou hledány polo¾ky rejstøíku..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "®ádný rejstøík nebyl nalezen."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Polo¾ka rejstøíku: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Posun na dal¹í polo¾ku rejstøíku, odpovídající øetìzci z minulého pøíkazu `"
+ "\\[index-search]'"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Není zadán øetìzec, který se má vyhledávat v rejstøíku(cích)."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Nejsou polo¾ky rejstøíku."
+ 
+ #: info/indices.c:374
+ #, fuzzy, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Ji¾ není %spolo¾ka rejstøíku, která obsahuje \"%s\"."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "dal¹í "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "TOTO NELZE VIDÌT"
+ 
+ #: info/indices.c:421
+ #, fuzzy, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "Nalezeno \"%s\" v %s. (`\\[next-index-match]' - hledání dal¹í.)"
+ 
+ #: info/indices.c:549
+ #, fuzzy, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Prohledávám tyto rejstøíky \"%s\"..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr ""
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Vyhledání øetìzce ve v¹ech známých rejstøících info souborù a vytvoøení menu"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Hledat v rejstøíku odkaz na:"
+ 
+ #: info/indices.c:662
+ #, fuzzy, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: Uzly jejich¾ rejstøíky obsahují \"%s\":\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Více informací mù¾ete získat pomocí pøepínaèe --help.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "odpovídající polo¾ky rejstøíku nebyly pro `%s' nalezeny\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ #, fuzzy
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "  Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze "
+ "anglicky),\n"
+ "obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky k pøekladu\n"
+ "zasílejte na <cs@li.org> (èesky).\n"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Uzel `%s' nelze nalézt."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Uzel `(%s)%s' nelze nalézt."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Nelze nalézt okno!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Bod se nevyskutuje v oknì tohoto uzlu!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Poslední okno nelze smazat."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "V tomto uzlu není menu."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "V tomto nejsou poznámky pod èarou."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "V tomto uzlu není køí¾ový odkaz."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Pro tento uzel není `%s' ukazatel."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Neznámý Info pøíkaz `%c'; zkuste `?' pro nápovìdu."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Typ terminálu `%s' není dostateènì inteligentní pro provoz Infa."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Ji¾ jste na poslední stránce tohoto uzlu."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Ji¾ jste na první stránce tohoto uzlu."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Pouze jedno okno."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Výsledné okno by bylo pøíli¹ malé."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Není volné místo pro okno nápovìdy, prosím sma¾te nìkteré okno."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "  %-10s  Ukonèení prohlí¾ení nápovìdy.\n"
+ 
+ #: info/infodoc.c:48
+ #, fuzzy
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "  %-10s  Celkové ukonèení Infa.\n"
+ 
+ #: info/infodoc.c:49
+ #, fuzzy
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Vyvolání prùvodce Infem.\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "  %-10s  Posun o jeden øádek dozadu.\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "  %-10s  Posun o jeden øádek dopøedu.\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "  %-10s  Pøedchozí stránka.\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "  %-10s  Následující stránka.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Pøesun na zaèátek aktuálního uzlu.\n"
+ 
+ #: info/infodoc.c:56
+ #, fuzzy
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "  %-10s  Pøesun na konec tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "  %-10s  Skok na následující hypertextový odkaz v tomto uzlu.\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr "  %-10s  Následování hypertextového odkazu pod kurzorem.\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "  %-10s  Pøesun na poslední uzel zobrazený v tomto oknì.\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "  %-10s  Pøesun na \"pøedchozí\" uzel tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "  %-10s  Pøesun na \"dal¹í\" uzel tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "  %-10s  Pøesun na \"pøedchozí\" uzel tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "  %-10s  Pøesun na \"dal¹í\" uzel tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "  %-10s  Pøesun \"nahoru\" z aktuálního uzlu.\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "  %-10s  Pøesun na konec tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "  %-10s  Pøesun na konec tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  Výbìr první ... deváté polo¾ky menu uzlu.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "  %-10s  Zobrazení poslední polo¾ky menu uzlu.\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  Vybrání polo¾ky menu zadané pomocí názvu.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "  %-10s  Následování køí¾ového odkazu. Ète název odkazu.\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  Pøesun na uzel zadaný pomocí jména.\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  Hledání zadaného øetìzce v tomto Info souboru.\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "  %-10s  Pøesun na \"pøedchozí\" uzel tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ "  %-10s  Hledání zadaného øetìzce v rejstøíku tohoto Info souboru a výbìr\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr "              uzlu, na který ukazuje první nalezená polo¾ka.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "Zru¹ení aktuální operace"
+ 
+ #: info/infodoc.c:89
+ #, fuzzy
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr "Základní pøíkazy v Info oknech\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Ukonèení prohlí¾ení nápovìdy.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Celkové ukonèení Infa.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Vyvolání prùvodce Infem.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Pøesun na \"dal¹í\" uzel tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Pøesun na \"pøedchozí\" uzel tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Pøesun \"nahoru\" z aktuálního uzlu.\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr "              Vybírání polo¾ky menu zpùsobí zobrazení tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Následování køí¾ového odkazu. Ète název odkazu.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Pøesun na poslední uzel zobrazený v tomto oknì.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Skok na následující hypertextový odkaz v tomto uzlu.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Následování hypertextového odkazu pod kurzorem.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Pøesun do `adresáøového' uzlu. Rovnocenné s `g (DIR)'.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Pøesun do nejvy¹¹ího (Top) uzlu. Rovnocenné s `g Top'.\n"
+ 
+ #: info/infodoc.c:110
+ #, fuzzy
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr "Pøesun uvnitø uzlu:\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Následující stránka.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Pøedchozí stránka.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Pøesun na zaèátek aktuálního uzlu.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Pøesun na konec tohoto uzlu.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Posun o jeden øádek dopøedu.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Posun o jeden øádek dozadu.\n"
+ 
+ #: info/infodoc.c:119
+ #, fuzzy
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr "Dal¹í pøíkazy:\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Výbìr první ... deváté polo¾ky menu uzlu.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Zobrazení poslední polo¾ky menu uzlu.\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr "              uzlu, na který ukazuje první nalezená polo¾ka.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr "              Také mù¾ete zadat jméno souboru ve tvaru (SOUBOR)UZEL.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "      a zobrazení uzlu, ve kterém je nalezen dal¹í výskyt tohoto øetìzce.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "      a zobrazení uzlu, ve kterém je nalezen dal¹í výskyt tohoto øetìzce.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Aktuální hledací cesta je:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr "Pøíkazy dostupné v Info oknech:\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr "Pøíkazy dostupné v zobrazovacím poli:\n"
+ 
+ #: info/infodoc.c:343
+ #, fuzzy, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Následující pøíkazy mohou být vykonány pouze pomocí M-x:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ #, fuzzy
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "Následující pøíkazy mohou být vykonány pouze pomocí M-x:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Zobrazení nápovìdy"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Zobrazení Info uzlu `(info)Help'"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Zobrazení dokumentace ke KLÁVESE"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Popis klávesy: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s je nedefinováno."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s je nedefinováno."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "Klávesa %s je definována pro pøíkaz %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Ukázání co napsat pro spu¹tìní daného pøíkazu"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Kde je pøíkaz: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "Pøíkaz `%s' není na ¾ádné klávese"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "Pøíkaz %s mù¾e být vyvolán pouze pomocí %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "Pøíkaz %s mù¾e být vyvolán pomocí %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Funkce `%s' není známa"
+ 
+ # Udìlat patch na podtr¾ení
+ #: info/infodoc.c:96
+ #, fuzzy
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr "Výbìr dal¹ích uzlù:\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr ""
+ 
+ #: info/infokey.c:201
+ #, fuzzy, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "Rouru do `%s' nelze otevøít."
+ 
+ #: info/infokey.c:215
+ #, fuzzy, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "Výstupní soubor `%s' nelze vytvoøit."
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:232
+ #, fuzzy, c-format
+ msgid "error closing output file `%s'"
+ msgstr "Výstupní soubor `%s' nelze vytvoøit."
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr ""
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr ""
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr ""
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr ""
+ 
+ #: info/infokey.c:665
+ #, fuzzy
+ msgid "missing action name"
+ msgstr "%c%s chybìjící uzavírací závorka"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr ""
+ 
+ #: info/infokey.c:688
+ #, fuzzy, c-format
+ msgid "unknown action `%s'"
+ msgstr "Neznámý pøíkaz `%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr ""
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:723
+ #, fuzzy
+ msgid "missing variable name"
+ msgstr "%s: chybí argument jména souboru.\n"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr ""
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr ""
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr ""
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr ""
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr ""
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr ""
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr ""
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Zadání jména pøíkazu a následné zobrazení jeho popisu"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Popis pøíkazu: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Zadání jména pøíkazu v zobrazovacím poli a jeho vykonání"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Pøíkaz zobrazovacího pole nelze vykonat zde."
+ 
+ #: info/m-x.c:153
+ #, fuzzy, c-format
+ msgid "Undefined command: %s"
+ msgstr "Neznámý pøíkaz `%s'"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Nastavení vý¹ky obrazovky"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Vý¹ka obrazovky (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "Pøi zpracování zdrojového souboru jsou vkládány tyto soubory:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Se souborem %s nelze pracovat.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menu:\n"
+ "  (Soubor)Uzel                      Øádkù   Velikost Soubor\n"
+ "  ------------                      -----   -------- ------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "  Zde je seznam uzlù, které jste poslední dobou nav¹tívil. Vyberte jeden\n"
+ "z tohoto menu, nebo u¾ijte `\\[history-node]' v tomto oknì.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "Vytvoøení okna obsahujícího menu v¹ech aktuálnì nav¹tívených uzlù"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Zobrazení uzlu, který byl zobrazen pøed tímto"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Vyberte nav¹tívený uzel: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Odkaz se ztratil! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Vítejte v programu Info verze %s. Stisknìte \\[get-help-window] pro "
+ "nápovìdu, \\[menu-item] pro polo¾ku menu."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Posun dolù na dal¹í øádek"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Posun nahoru na pøedchozí øádek"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Pøesun na konec øádku"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Pøesun na zaèátek øádku"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Dal¹í"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "V tomto dokumentu ji¾ nejsou dal¹í uzly."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Pro tento uzel není pøedchozí uzel."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "V tomto dokumentu není pro tento uzel pøedchozí nebo vy¹¹í uzel."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Pøesun na následující uzel nebo na první ni¾¹í v uzlové struktuøe"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Pøesun na pøedchozí uzel nebo na první vy¹¹í v uzlové struktuøe"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Posun o stránku dolù v tomto oknì"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "Posun dopøedu v tomto oknì a nastavení implicitní velikosti okna"
+ 
+ #: info/session.c:1524
+ #, fuzzy
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Posun o stránku dolù v tomto oknì"
+ 
+ #: info/session.c:1532
+ #, fuzzy
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr "Posun dopøedu v tomto oknì a nastavení implicitní velikosti okna"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Posun o stránku nahoru v tomto oknì"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "Posun dozadu v tomto oknì a nastavení implicitní velikosti okna"
+ 
+ #: info/session.c:1557
+ #, fuzzy
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Posun o stránku nahoru v tomto oknì"
+ 
+ #: info/session.c:1565
+ #, fuzzy
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr "Posun dozadu v tomto oknì a nastavení implicitní velikosti okna"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Posun na zaèátek tohoto uzlu"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Posun na konec tohoto uzlu"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Posun dolù po øádcích"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Posun nahoru po øádcích"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Posun dolù o polovinu velikosti obrazovky"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Posun nahoru o polovinu velikosti obrazovky"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Výbìr následujícího okna"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Výbìr pøedchozího okna"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Rozdìlení aktuálního okna"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Smazání aktuálního okna"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Permanentní okno nelze smazat"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Smazání v¹ech ostatních oknen"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Posun druhého okna o stránku dolù"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Posun druhého okna o stránku zpìt"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Zmìna velikosti okna"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Zvìt¹ení nebo zmen¹ení oken na obrazovce tak, aby byla stejnì velká"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr ""
+ "Zmìna stavu zalamování v aktuálním oknì (zapnuto->vypni, vypnuto->zapni)"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Zobrazení následujícího uzlu"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Zobrazení pøedchozího uzlu"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Zobrazení vy¹¹ího uzlu"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Zobrazení posledního uzlu v tomto souboru"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Toto okno nemá více dal¹ích uzlù"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Zobrazení prvního uzlu v tomto souboru"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Zobrazení poslední polo¾ky menu tohoto uzlu"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Zobrazení této polo¾ky menu"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "V tomto menu není %d. polo¾ka"
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Polo¾ka menu (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Polo¾ka menu: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Následování køí¾ového odkazu (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Následování køí¾ového odkazu: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Zadání jména polo¾ky menu a následné zobrazení"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr ""
+ "Zadání jména poznámky pod èarou nebo køí¾ového odkazu a následné zobrazení"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Pøesun na zaèátek menu tohoto uzlu"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr ""
+ "Nav¹tívení tolika polo¾ek menu, kolik je mo¾no. Ka¾dá polo¾ka v jiném oknì."
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Zadání jména uzlu a jeho následné zobrazení"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Pøesun na uzel: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "V uzlu `%s' není menu."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Polo¾ka menu `%s' v uzlu `%s' není."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Uzel, na který se odkazuje `%s' v `%s', nelze najít."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Ètení seznamu menu zaèínajíce v adresáøi a pokraèujíce dále"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Následování menu: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Nalezení uzlu popisujícího pøepínaèe programu"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Nalezení uzlu s pøepínaèi programu [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Zadání jména manuálové stránky a následné zobrazení"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Manuálová stránka: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Zobrazení nejvy¹¹ího uzlu v tomto souboru"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Zobrazení uzlu `(dir)'"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Zru¹ení uzlu (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Uzel `%s' nelze zru¹it"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Poslední uzel nelze zru¹it"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Zobrazení poslední dobou nejvíce nav¹tìvovaných uzlù"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Zru¹ení tohoto uzlu"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Zadání jména souboru a jeho následné zobrazení"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Nalezení souboru: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Nelze najít `%s'."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Výstupní soubor `%s' nelze vytvoøit."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Dokonèeno."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Zapisování uzlu %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "Poslání obsahu tohoto uzlu pøíkazu INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Rouru do `%s' nelze otevøít."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Probíhá tisk uzlu %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "Smazání v¹eho od zaèátku øádku do kurzoru"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Probíhá hledání podsouboru %s..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Pøeètení øetìzce a jeho vyhledání (zále¾í na velikosti písmen)"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Pøeètení øetìzce a jeho vyhledání"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Pøeètení øetìzce a jeho vyhledání (zpìtné)"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%søetìzce [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr " (velikost rozhoduje)"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "Zpìtné hledání"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Hledání"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Nebylo nalezeno."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Opakování posledního hledání tím samým smìrem"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Není pøedchozí hledaný øetìzec"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Opakování posledního hledání opaèným smìrem"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Vyhledávání zadávaného øetìzce hned pøi zadávání"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "zpìtné interaktivní hledání: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "zpìtné interaktivní hledání: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "interaktivní hledání: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "interaktivní hledání: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Bezvýsledné "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Pøesun na pøedcházející køí¾ový odkaz"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Pøesun na následující køí¾ový odkaz"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Zobrazení odkazu nebo polo¾ky menu, která je na tomto øádku"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Zru¹ení aktuální operace"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Ukonèení operace"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Pøesun kurzoru na zadaný øádek okna"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Pøekreslení obrazovky"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Ukonèení Infa"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr ""
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Neznámý pøíkaz (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "Sekvence kláves \"%s\" je neplatná"
+ 
+ #: info/session.c:4910
+ #, fuzzy, c-format
+ msgid "`%s' is invalid"
+ msgstr "Sekvence kláves \"%s\" je neplatná"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Pøidání této èíslice do aktuálního èíselného argumentu"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Zaèátek (nebo dìlení ètyømi) aktuálního èíselného argumentu"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Vnitønì u¾íváno funkcí \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Nedostatek virtuální pamìti!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Je-li zapnuto, pak se poznámky pod èarou objevují a mizí automaticky"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "Je-li zapnuto, vytvoøení a smazání okna, mìní velikost ostatních oken"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Je-li zapnuto, pak místo varovného pípnutí blikne obrazovka"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Je-li zapnuto, pak chyby zpùsobí varovné pípnutí"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ "Je-li zapnuto, pak Info zapomíná odkomprimovanou èást komprimovaných souborù"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "Je-li zapnuto, pak je hledaný øetìzec v nalezeném výrazu zvýraznìn"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Øídí co se stane, kdy¾ je po¾adován posun o stranu na konci uzlu"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr ""
+ "Poèet øádkù, o které posunout okno, kdy¾ se kurzor dostane mimo viditelnou "
+ "èást"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Je-li zapnuto, pak Info akceptuje a zobrazuje znaky z normy ISO Latin"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Øídí co se stane, kdy¾ je po¾adován posun o stranu na konci uzlu"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Zobrazení popisu promìnné"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Popis promìnné: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Nastavení hodnoty Info promìnné"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Nastavení promìnné: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Nastavení promìnné %s na hodnotu (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Nastavení promìnné %s na hodnotu (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Znaèky jsou zastatalé ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), øádkù ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, øádkù: %d --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, øádkù: %d --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Podsoubor: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: varování: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " pro %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "Více informací získáte pøíkazem `%s --help'.\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Pou¾ití: %s [PØEPÍNAÈ]... SOUBOR...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "  Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze "
+ "anglicky),\n"
+ "obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky k pøekladu\n"
+ "zasílejte na <cs@li.org> (èesky).\n"
+ 
+ #: install-info/install-info.c:597
+ #, fuzzy, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "  Toto je soubor .../info/dir, který obsahuje nejvy¹¹í uzly hierarchie\n"
+ "Info dokumentù a je nazýván (dir)Top. Kdy¾ poprvé spustíte Info dostanete\n"
+ "se do tohoto uzlu.\n"
+ "\n"
+ "%s      Toto je vrchol INFO stromu\n"
+ "\n"
+ "    Tento (Adresáøový uzel) obsahuje menu hlavních témat.\n"
+ "  Stiskem \"q\" Info ukonèíte, stiskem \"?\" získáte seznam v¹ech Info "
+ "pøíkazù,\n"
+ "  stiskem \"d\" se vrátíte sem, stiskem \"h\" získáte nápovìdu pro "
+ "zaèáteèníky,\n"
+ "  napsáním \"mEmacs\" si zobrazíte manuál k Emacsu, atd.\n"
+ "\n"
+ "    Pokud chcete v Emacsu zobrazit obsah polo¾ky menu nebo následovat "
+ "køí¾ový\n"
+ "  odkaz, mù¾ete to provést kliknutím prostøedním tlaèítkem my¹i.\n"
+ "\n"
+ "* Menu:\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: %s nelze èíst a %s nelze vytvoøit\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: prázdný soubor"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY bez odpovídajícího END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY bez pøedchozího START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Info soubor zadejte pouze jednou.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "nadbyteèný argument `%s' v pøíkazovém øádku"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ "Vstupní soubor nezadán; pou¾itím pøepínaèe --help získáte bli¾¹í informace."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ "Adresáø nebyl zadán; pou¾itím pøepínaèe `--help' získáte bli¾¹í informace"
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "v Info adresáøi `%s' není ¾ádná polo¾ka"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "pro `%s' nebyly nalezeny ¾ádné polo¾ky"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, fuzzy, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "©patný argument pro %c%s"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "Leden"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "Únor"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "Bøezen"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "Duben"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "Kvìten"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "Èerven"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "Èervenec"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "Srpen"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "Záøí"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "Øíjen"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "Listopad"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "Prosinec"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "nepravdìpodobný znak %c ve @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "@sc argument je celý velkými písmeny, zbyteènì"
+ 
+ #: makeinfo/cmds.c:1229
+ #, fuzzy, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "`@end' vy¾aduje `%s', ale vidí `%s'"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1277
+ #, fuzzy, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "`@end' vy¾aduje `%s', ale vidí `%s'"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "Pøíkaz %c%s je zastaralý"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp vy¾aduje kladný èíselný argument a ne `%s'"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "©patný argument pro %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "asis"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "none"
+ 
+ #: makeinfo/cmds.c:2049
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s"
+ msgstr "©patný argument pro %c%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "©patný argument pro %c%s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Chybìjící `}' v argumentu @def"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr ""
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr ""
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr ""
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr ""
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Viz"
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`%c%s' potøebuje argument `{...}' a ne pouze `%s'"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Chybí uzavírací závorka pro poznámku pod èarou `%s'"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Poznámka pod èarou definována bez rodièovského uzlu"
+ 
+ #: makeinfo/footnote.c:209
+ #, fuzzy
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Poznámka pod èarou definována bez rodièovského uzlu"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Poznámky pod èarou"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr ""
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr ""
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr ""
+ 
+ #: makeinfo/html.c:800
+ #, fuzzy, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "%s: neznámý pøepínaè `--%s'\n"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Neznámý rejstøík `%s'"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Rejstøík `%s' ji¾ existuje"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Neznámý rejstøík `%s' a/nebo `%s' v @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr ""
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr ""
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Neznámý rejstøík `%s' v @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Polo¾ka pro rejstøík `%s' je mimo v¹echny uzly"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(mimo v¹echny uzly)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Chybný typ v insertion_type_pname"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Výpoèetní zásobník pøetekl"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "písmenkování pøeteklo, znovu zaèínám na %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s vy¾aduje argument : formátovaè pro %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "`@end' vy¾aduje `%s', ale vidí `%s'"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Chybí odpovídající `%cend %s'"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s vy¾aduje písmeno nebo èíslici"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1942
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s není myslitelné uvnitø `@%s' bloku"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu spatøeno pøed prvním @node, vytvoøen uzel `Top'"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "proto¾e vá¹ uzel @top by mìl být uzavøen v @ifnottex spí¹e ne¾ v @ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu spatøeno pøed prvním uzlem, vytvoøen uzel `Top'"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2061
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s není myslitelné uvnitø `@%s' bloku"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Nepárový `%c%s'"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "`%c%s' potøebuje nìjaký argument"
+ 
+ #: makeinfo/insertion.c:2103
+ #, fuzzy, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Chybný argument pro `%s', `%s', pou¾ívám `%s'"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s není myslitelné uvnitø `@%s' bloku"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx není myslitelný uvnitø `%s' bloku"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s nalezen mimo vkládaný blok"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s není platný kód jazyka (podle ISO 639)"
+ 
+ #: makeinfo/lang.c:1399
+ #, fuzzy, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "%s: neznámý pøepínaè `--%s'\n"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s vy¾aduje `i' nebo `j' jako argument, ne `%c'"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s vy¾aduje jeden znak `i' nebo `j' jako argument"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "makro `%s' ji¾ bylo definováno"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "zde je pøedchozí definice `%s'"
+ 
+ #: makeinfo/macro.c:359
+ #, fuzzy, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "\\ pøi expanzi makra následováno `%s' místo \\ nebo jména parametru"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Makro `%s' volané na øádku %d s pøíli¹ mnoha argumenty"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "%cend makro nebylo nalezeno"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "pomíchané @end %s s @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "Pøíli¹ mnoho chyb!  Konec.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: varování: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "©patnì umístìný znak %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Více informací získáte pøíkazem `%s --help'.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Pou¾ití: %s [PØEPÍNAÈ]... SOUBOR...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "\n"
+ "  Implicitní nastavení pro podmínky @if... zále¾í na výstupním formátu:\n"
+ "pøi generování HTML je zapnut pøepínaè --ifhtml a ostatní jsou vypnuty;\n"
+ "pøi generování Info souboru nebo èistého textu je zapnut pøepínaè --ifinfo\n"
+ "a ostatní jsou vypnuty.\n"
+ "\n"
+ "Pøíklady:\n"
+ "  makeinfo foo.texi                    zapí¹e Info do souboru urèeného\n"
+ "                                        pomocí @setfilename ve foo.texi\n"
+ "  makeinfo --html foo.texi             zapí¹e HTML do souboru urèeného\n"
+ "                                        pomocí @setfilename ve foo.texi\n"
+ "  makeinfo --no-headers -o - foo.texi  vypí¹e èistý text na standardní "
+ "výstup\n"
+ "  makeinfo --number-sections foo.texi  zapí¹e Info s èíslovanými sekcemi\n"
+ "  makeinfo --no-split foo.texi         zapí¹e jeden Info soubor jakkoliv "
+ "velký\n"
+ "\n"
+ "  Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze "
+ "anglicky),\n"
+ "obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky k pøekladu\n"
+ "zasílejte na <cs@li.org> (èesky)."
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: %s argument musí být èíslo ne `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, fuzzy, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "Výstup %s pro expanzi makra nelze otevøít"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, fuzzy, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "Výstup %s pro expanzi makra nelze otevøít"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "Výstup %s pro expanzi makra nelze otevøít"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "Výstup %s pro expanzi makra nelze otevøít"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: argument pro --paragraph-indent musí být èíslo|`none'|`asis', ale ne `%"
+ "s'.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: argument k --footnote-style musí být `separate'|`end', ale ne `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: chybí argument jména souboru.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Oèekáváno `%s'"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Soubor `%s' nenalezen v `%s'"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Vynechávám expanzi makra na stdout a expanze jde jako Info výstup.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Vytváøím %s soubor `%s' ze souboru `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Výstupní soubor maker `%s' byl odstranìn, proto¾e byly nalezeny chyby;\n"
+ "u¾ijte pøepínaè --force k ponechání souboru.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Výstupní soubor `%s' byl odstranìn, proto¾e byly nalezeny chyby;\n"
+ "u¾ijte pøepínaè --force k ponechání souboru.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Výstupní soubor `%s' byl odstranìn, proto¾e byly nalezeny chyby;\n"
+ "u¾ijte pøepínaè --force k ponechání souboru.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Neznámý pøíkaz `%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "Pou¾ijte závorky k zadání pøíkazu jako argumentu @%s"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, fuzzy, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s oèekáváno `{...}'"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Nepárová }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "Funkce neexistuje!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s chybìjící uzavírací závorka"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, fuzzy, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "soubor `%s' v pøíkazu @image je neèitelný: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, fuzzy, c-format
+ msgid "No such file `%s'"
+ msgstr "Soubor `%s' nenalezen v `%s'"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, fuzzy, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "soubor `%s' v pøíkazu @image je neèitelný: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "pøíkaz @image postrádá jméno souboru"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Pro `%s' není hodnota}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s po¾aduje jméno"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Vstupní soubor skonèil a pøíkaz `@end %s' nebyl nalezen"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Chybìjící } v @multitable vzoru"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "ignoruji zbloudilý text `%s' po pøíkazu @multitable"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Pøíli¹ mnoho sloupcù v multitabulkové polo¾ce (max %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, fuzzy, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "sloupec #%d v multitabulce nelze vybrat"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "pøíkaz `@tab' ignorován, je mimo multitabulku"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Vícesloupcový výstup z posledního øádku:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* sloupec #%d: výstup = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Uzel `%s' ji¾ byl definován na øádku %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Formátování uzlu %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, fuzzy, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Uzel `%s' vy¾aduje pøíkaz na vytváøení sekcí (tøeba %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Pøíkazu `%c%s' nebyl zadán název uzlu"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr ""
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1362
+ #, fuzzy, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr "%s se odkazuje na neexistující uzel `%s'"
+ 
+ #: makeinfo/node.c:1462
+ #, fuzzy, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr "Následující uzel uzlu `%s' neukazuje na tento"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Tento uzel (%s) má chybný odkaz na pøedchozí uzel"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Pøedchozí uzel uzlu `%s' neukazuje na tento"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Tento uzel (%s) má chybný odkaz na následující uzel"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "Uzel `%s' postrádá polo¾ku menu pro `%s' navzdory tomu, ¾e je jeho vy¹¹ím "
+ "uzlem"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "uzel `%s' - nesmìøuje na nìj ¾ádný odkaz"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1731
+ #, fuzzy, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Výstupní soubor `%s' nelze vytvoøit."
+ 
+ #: makeinfo/sectioning.c:122
+ #, fuzzy, c-format
+ msgid "Appendix %c"
+ msgstr "Dodatek %c "
+ 
+ #: makeinfo/sectioning.c:467
+ #, fuzzy, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Interní chyba (hledání sekcí) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Interní chyba (hledání sekcí) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s je zastaralý; pou¾ijte %c%s"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Uzel s %ctop jako sekcí ji¾ existuje"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Ji¾ zde je nejvy¹¹í (%ctop) uzel"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop je pou¾it pøed %cnode, pøesmìrováno na %s"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "soubor `%s' v pøíkazu @image je neèitelný: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "z"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, fuzzy, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "`.' nebo `,' musí následovat za køí¾ovým odkazem, ale ne za %c"
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "V tomto uzlu není køí¾ový odkaz."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "vypí¹e tuto nápovìdu a skonèí"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "zapí¹e výstup do SOUBORu"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "vypí¹e oznaèení verze a skonèí"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Pou¾ití: %s [PØEPÍNAÈ]... SOUBOR...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Generuje seøazený rejstøík pro ka¾dý TeXovský výstupní SOUBOR.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "SOUBOR... je obvykle `foo.%c%c' pro dokument `foo.texi'.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Pøepínaèe:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "soubor %s nepovedlo se znovu otevøít"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: není texinfovský rejstøík"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Na %s není èíslo stránky"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "polo¾ka %s následuje za polo¾kou se sekundárním jménem"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "      a zobrazení uzlu, ve kterém je nalezen dal¹í výskyt tohoto "
+ #~ "øetìzce.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              Také mù¾ete zadat jméno souboru ve tvaru (SOUBOR)UZEL.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "  %-10s  Pøesun na \"dal¹í\" uzel tohoto uzlu.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr "  %-10s  Pøesun do `adresáøového' uzlu. Rovnocenné s `g (DIR)'.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr "  %-10s  Pøesun do nejvy¹¹ího (Top) uzlu. Rovnocenné s `g Top'.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[scroll-forward-page-only]  Scroll forward within this node.\n"
+ #~ msgstr "  %-10s  Posun o jeden øádek dopøedu.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[scroll-backward-page-only]  Scroll backward within this node.\n"
+ #~ msgstr "  %-10s  Posun o jeden øádek dozadu.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "      a zobrazení uzlu, ve kterém je nalezen dal¹í výskyt tohoto "
+ #~ "øetìzce.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- Pou¾ijte `\\[history-node]' nebo `\\[kill-node]' pro ukonèení ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr "  %-10s  Skok na následující hypertextový odkaz v tomto uzlu.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "Pou¾ití: %s [PØEPÍNAÈ]... [POLO®KA-MENU...]\n"
+ #~ "\n"
+ #~ "  Umo¾òuje èíst dokumentaci v Info formátu.\n"
+ #~ "\n"
+ #~ "Pøepínaèe:\n"
+ #~ "--apropos=SUBJEKT           hledá SUBJEKT ve v¹ech odkazech v¹ech "
+ #~ "manuálù\n"
+ #~ "--directory=ADRESÁØ         kromì promìnné INFOPATH prohledává i tento\n"
+ #~ "                            ADRESÁØ\n"
+ #~ "--dribble=SOUBOR            ulo¾í klávesy, které stiskl u¾ivatel do "
+ #~ "SOUBORu\n"
+ #~ "--file=SOUBOR               zadání info souboru, který se má prohlí¾et\n"
+ #~ "--help                      vypí¹e tuto nápovìdu a skonèí\n"
+ #~ "--index-search=ØETÌZEC      skok na uzel urèený v rejstøíku ØETÌZCEM\n"
+ #~ "--node=JMÉNO_UZLU           zadání uzlù, v prvním nav¹tíveném info "
+ #~ "souboru\n"
+ #~ "--output=SOUBOR             vypí¹e nav¹tívené uzly do SOUBORu\n"
+ #~ "--restore=SOUBOR            klávesy, které mají být automaticky po\n"
+ #~ "                            spu¹tení infa stisknuty, ète ze SOUBORu\n"
+ #~ "--show-options, --usage     zobrazuje pøepínaèe pøíkazové øádky\n"
+ #~ "--subnodes                  rekurzivnì vypí¹e polo¾ky menu\n"
+ #~ "%s --vi=keys                  pou¾ije ovládání klávesami jako ve vi a "
+ #~ "less\n"
+ #~ "--version                   vypí¹e oznaèení verze a skonèí\n"
+ #~ "\n"
+ #~ "  První nepøepínaèový argument, jestli¾e je zadán, je polo¾ka menu, "
+ #~ "která\n"
+ #~ "má být po spu¹tìní nav¹tívena; tato polo¾ka je vyhledávána ve v¹ech "
+ #~ "`dir'\n"
+ #~ "souborech podle INFOPATH.\n"
+ #~ "  Jestli¾e tato polo¾ka není zadána, info spojí v¹echny `dir' soubory a "
+ #~ "uká¾e\n"
+ #~ "výsledek. V¹echny zbývající argumenty jsou brány jako názvy polo¾ek "
+ #~ "menu,\n"
+ #~ "relativnì k prvnímu nav¹tívenému uzlu.\n"
+ #~ "\n"
+ #~ "Pøíklady:\n"
+ #~ "  info                       zobrazí seznam dokumentace\n"
+ #~ "  info emacs                 zobrazí uzel emacs ze seznamu dokumentace\n"
+ #~ "  info emacs buffers         zobrazí uzel buffers z emacsového manuálu\n"
+ #~ "  info --show-options emacs  zobrazí uzel s pøepínaèi pøíkazového øádku\n"
+ #~ "                              pro emacs\n"
+ #~ "  info -f ./foo.info         zobrazí soubor ./foo.info, nehledá v `dir' "
+ #~ "soub.\n"
+ #~ "\n"
+ #~ "  Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze "
+ #~ "anglicky),\n"
+ #~ "obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky k pøekladu\n"
+ #~ "zasílejte na adresu <cs@li.org> (èesky).\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr ""
+ #~ "              Vybírání polo¾ky menu zpùsobí zobrazení tohoto uzlu.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              Také mù¾ete zadat jméno souboru ve tvaru (SOUBOR)UZEL.\n"
+ 
+ #, fuzzy
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  Hledání zadaného øetìzce v tomto Info souboru.\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "      a zobrazení uzlu, ve kterém je nalezen dal¹í výskyt tohoto "
+ #~ "øetìzce.\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "Pøechod na dal¹í uzel..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "Zobrazování první polo¾ky menu..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "Zobrazování dal¹ího uzlu..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "Pøesouvání %d krát nahoru, potom na dal¹í."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "Pøesun na pøedchozí uzel v tomto oknì."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "Pøesun nahoru v tomto oknì."
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "Pøesun na poslední polo¾ku menu pøedchozího uzlu."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "Funkce"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "Makro"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "Speciální forma"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "Promìnná"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "U¾ivatelská volba"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "Instance promìnné"
+ 
+ #~ msgid "Method"
+ #~ msgstr "Metoda"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "Neoznaèeno"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr ""
+ #~ "Toto je Info soubor %s, produkován programem makeinfo verze %s ze souboru "
+ #~ "%s.\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "Dal¹í:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "Pøedchozí:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "Nahoru:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "Menu"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "Odkaz"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "Pøedchozí"
+ 
+ #~ msgid "Up"
+ #~ msgstr "Nahoru"
+ 
+ #~ msgid "see "
+ #~ msgstr "viz"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "Pou¾ití: %s [PØEPÍNAÈ]... [INFO-SOUBOR [DIR-SOUBOR]]\n"
+ #~ "\n"
+ #~ "Instaluje nebo ma¾e polo¾ky ze souboru INFO-SOUBOR v Info adresáøi DIR-"
+ #~ "SOUBOR.\n"
+ #~ "\n"
+ #~ "Pøepínaèe:\n"
+ #~ "--delete           sma¾e existující polo¾ky INFO-SOUBORu z DIR-SOUBORU;\n"
+ #~ "                   nevkládá ¾ádné nové.\n"
+ #~ "--dir-file=JMÉNO   zadání jména adresáøového souboru Infa. Rovnocenné\n"
+ #~ "                   s pou¾itím argumentu DIR-SOUBOR.\n"
+ #~ "--entry=TEXT       vlo¾í text jako polo¾ku Info adresáøe. TEXT musí mít "
+ #~ "formát\n"
+ #~ "                   jako øádek polo¾ky Info menu, plus nula nebo více "
+ #~ "extra\n"
+ #~ "                   øádkù zaèínajících mezerou. Jestli¾e zadáte více ne¾ "
+ #~ "jednu\n"
+ #~ "                   polo¾ku, budou pøidány v¹echny. Jestli¾e nezadáte "
+ #~ "¾ádnou\n"
+ #~ "                   polo¾ku, budou získány z informací v Info souboru.\n"
+ #~ "--help             vypí¹e tuto nápovìdu a skonèí\n"
+ #~ "--info-file=SOUBOR zadání Info souboru pro instalaci do Info adresáøe.\n"
+ #~ "                   Rovnocenné s argumentem INFO-SOUBOR.\n"
+ #~ "--info-dir=ADRESÁØ stejné jako --dir-file=ADRESÁØ/dir.\n"
+ #~ "--item=TEXT        stejné jako --entry=TEXT.\n"
+ #~ "                   Polo¾ka Info adresáøe je aktuální polo¾ka menu.\n"
+ #~ "--quiet            potlaèí varování.\n"
+ #~ "--remove           stejné jako --delete.\n"
+ #~ "--section=SEKCE    vlo¾í polo¾ky adresáøe do sekce SEKCE Info adresáøe.\n"
+ #~ "                   Jestli¾e je zadáno více sekcí, jsou v¹echny polo¾ky\n"
+ #~ "                   pøidány do v¹ech zadaných sekcí. Jestli¾e nejsou "
+ #~ "zadány\n"
+ #~ "                   ¾ádné sekce, pak jsou sekce získány z Info souboru.\n"
+ #~ "--version          vypí¹e oznaèení verze a skonèí.\n"
+ #~ "\n"
+ #~ "  Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze "
+ #~ "anglicky),\n"
+ #~ "obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky\n"
+ #~ "k pøekladu zasílejte na <cs@li.org> (èesky).\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "polo¾ka menu `%s' ji¾ pro soubor `%s' existuje"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr "  %-10s  Výbìr první ... deváté polo¾ky menu uzlu.\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "na uzel `%s' se bylo odkazováno %d krát"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "  Copyright (C) %s 1996 Free Software Foundation, Inc.\n"
+ #~ "  Toto je volné programové vybavení, které je zcela BEZ ZÁRUKY. Podmínky "
+ #~ "pro\n"
+ #~ "kopírování a roz¹iøování naleznete v Obecné veøejné licenci GNU (GNU "
+ #~ "General\n"
+ #~ "Public Licence). Více informací získáte ve zdrojových textech v souboru\n"
+ #~ "COPYING.\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg je u¾iteèné pouze pro jedno-argumentová makra"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Obsah"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "Krátký obsah"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "zanechá doèasné soubory po ukonèení"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "nezanechá doèasné soubory po ukonèení"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr "              uzlu, na který ukazuje první nalezená polo¾ka.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "  Copyright (C) %s 1996 Free Software Foundation, Inc.\n"
+ #~ "  Toto je volné programové vybavení, které je zcela BEZ ZÁRUKY. Podmínky "
+ #~ "pro\n"
+ #~ "kopírování a roz¹iøování naleznete v Obecné veøejné licenci GNU (GNU "
+ #~ "General\n"
+ #~ "Public Licence). Více informací získáte ve zdrojových textech v souboru\n"
+ #~ "COPYING.\n"
+ 
+ #~ msgid "%s: Specify the Info directory only once.\n"
+ #~ msgstr "%s: Info adresáø zadejte pouze jednou.\n"
+ 
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "Sekvence kláves \"\" je neplatná"
+ 
+ #, fuzzy
+ #~ msgid "%s is an invalid ISO code, using %c"
+ #~ msgstr "%s není platný kód jazyka (podle ISO 639)"
+ 
+ #~ msgid "Cannot specify more than one macro expansion output"
+ #~ msgstr "Pro expanzi makra nelze zadat více ne¾ jeden výstup"
+ 
+ #~ msgid "Node:"
+ #~ msgstr "Uzel:"
+ 
+ #~ msgid "%s: TOC should be here, but it was not found"
+ #~ msgstr "%s: Obsah bìl být zde, ale nebyl nalezen"
+ 
+ #, fuzzy
+ #~ msgid "No `%s.png' or `.jpg', and no extension supplied"
+ #~ msgstr "®ádný .png nebo .jpg soubor pro `%s'"
+ 
+ #~ msgid "%s; for file `%s'.\n"
+ #~ msgstr "%s; pro soubor `%s'.\n"
+ 
+ #~ msgid "`%s' has no Up field"
+ #~ msgstr "`%s' nemá zadán vy¹¹í uzel"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Email bug reports to bug-texinfo@gnu.org,\n"
+ #~ "general questions and discussion to help-texinfo@gnu.org."
+ #~ msgstr ""
+ #~ "\n"
+ #~ "  Chyby v programu oznamujte na adrese <bug-texinfo@gnu.org> (pouze "
+ #~ "anglicky),\n"
+ #~ "obecné otázky smìøujte na <help-texinfo@gnu.org>. Pøipomínky k pøekladu\n"
+ #~ "zasílejte na <cs@li.org> (èesky).\n"
+ 
+ #~ msgid "******************************\n"
+ #~ msgstr "******************************\n"
+ 
+ #~ msgid "---------------------\n"
+ #~ msgstr "---------------------\n"
+ 
+ #~ msgid "----------------------\n"
+ #~ msgstr "----------------------\n"
+ 
+ #~ msgid "---------------\n"
+ #~ msgstr "---------------\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ #~ "\n"
+ #~ "Translate Texinfo source documentation to various other formats:\n"
+ #~ "Info files suitable for reading online with Emacs or standalone GNU Info\n"
+ #~ "(by default); plain text (with --no-headers); or HTML (with --html).\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --commands-in-node-names  allow @ commands in node names.\n"
+ #~ " -D VAR                    define a variable, as with @set.\n"
+ #~ "--docbook                  output DocBook rather than Info format.\n"
+ #~ " -E, --macro-expand FILE   output macro-expanded source to FILE.\n"
+ #~ " --error-limit=NUM         quit after NUM errors (default %d).\n"
+ #~ " --fill-column=NUM         break Info lines at NUM characters (default %"
+ #~ "d).\n"
+ #~ " --footnote-style=STYLE    output footnotes according to STYLE:\n"
+ #~ "                            `separate' to place footnotes in their own "
+ #~ "node,\n"
+ #~ "                            `end' to place the footnotes at the end of "
+ #~ "the\n"
+ #~ "                             node in which they are defined (the "
+ #~ "default).\n"
+ #~ " --force                   preserve output even if errors.\n"
+ #~ " --help                    display this help and exit.\n"
+ #~ " --html                    output HTML rather than Info format.\n"
+ #~ " -I DIR                    append DIR to the @include search path.\n"
+ #~ " --ifhtml                  process @ifhtml and @html text even when not\n"
+ #~ "                            generating HTML.\n"
+ #~ " --ifinfo                  process @ifinfo text even when generating "
+ #~ "HTML.\n"
+ #~ " --iftex                   process @iftex and @tex text.\n"
+ #~ "                            implies --no-split.\n"
+ #~ msgstr ""
+ #~ "Pou¾ití: %s [PØEPÍNAÈ]... TEXINFO-SOUBOR...\n"
+ #~ "\n"
+ #~ "  Pøekládá Texinfový zdrojový soubor to mnoha rùzných formátù:\n"
+ #~ "Info soubory vhodné pro on-line ètení Emacsem nebo samostatným GNU Info\n"
+ #~ "prohlí¾eèem (implicitní); èistý text (pøepínaèem --no-headers); nebo "
+ #~ "HTML\n"
+ #~ "(pøepínaèem --html).\n"
+ #~ "\n"
+ #~ "Pøepínaèe:\n"
+ #~ "--commands-in-node-names  dovoluje @ pøíkazy v názvech uzlù\n"
+ #~ "-D PROMÌNNÁ               definuje promìnnou, jako pøíkaz @set\n"
+ #~ "-E, --macro-expand SOUBOR výstup zdrojových textù s expandovanými makry\n"
+ #~ "                           do SOUBORu\n"
+ #~ "--error-limit=ÈÍSLO       ukonèi se po ÈÍSLO chybách (implicitnì %d)\n"
+ #~ "--fill-column=ÈÍSLO       zalamování na ÈÍSLO znakù (implicitnì %d)\n"
+ #~ "--footnote-style=STYL     umístìní poznámek pod èarou podle STYLu:\n"
+ #~ "                           `separate' umístìní poznámek pod èarou do\n"
+ #~ "                            samostatného uzlu;\n"
+ #~ "                           `end' umístìní poznámek pod èarou na konec "
+ #~ "uzlu,\n"
+ #~ "                            ve kterém jsou definovány (implicitní);\n"
+ #~ "--force                   zanechá výstup dokonce i pøi chybách\n"
+ #~ "--help                  vypí¹e tuto nápovìdu a skonèí\n"
+ #~ "--html                  výstup v HTML formátu\n"
+ #~ "-I ADRESÁØ              pøidá ADRESÁØ na konec seznamu adresáøù, ve "
+ #~ "kterých\n"
+ #~ "                        jsou hledány soubory pro @include\n"
+ #~ "--ifhtml                zpùsobí zpracování @ifhtml a @html, i kdy¾ není\n"
+ #~ "                         výstupem formát HTML\n"
+ #~ "--ifinfo                zpùsobí zpracování @ifinfo, i kdy¾ je výstupem "
+ #~ "HTML\n"
+ #~ "--iftex                 zpùsobí zpracování @iftex a @tex textu\n"
+ #~ "                         zahrnuje --no-split.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ " --no-headers              suppress Info node separators and Node: "
+ #~ "lines;\n"
+ #~ "                            write to standard output without --output.\n"
+ #~ " --no-ifhtml               do not process @ifhtml and @html text.\n"
+ #~ " --no-ifinfo               do not process @ifinfo text.\n"
+ #~ " --no-iftex                do not process @iftex and @tex text.\n"
+ #~ " --no-split                suppress splitting of Info or HTML output,\n"
+ #~ "                            generate only one output file.\n"
+ #~ " --no-validate             suppress node cross-reference validation.\n"
+ #~ " --no-warn                 suppress warnings (but not errors).\n"
+ #~ " --number-sections         include chapter, section, etc. numbers in "
+ #~ "output.\n"
+ #~ " -o, --output=FILE         output to FILE (directory if split HTML),\n"
+ #~ "                            ignoring any @setfilename.\n"
+ #~ " -P DIR                    prepend DIR to the @include search path.\n"
+ #~ " --paragraph-indent=VAL    indent Info paragraphs by VAL spaces (default %"
+ #~ "d).\n"
+ #~ "                            if VAL is `none', do not indent;\n"
+ #~ "                            if VAL is `asis', preserve existing "
+ #~ "indentation.\n"
+ #~ " --reference-limit=NUM     warn about at most NUM references (default %"
+ #~ "d).\n"
+ #~ " --split-size=NUM          split into files at NUM size. (default %d).\n"
+ #~ " -U VAR                    undefine a variable, as with @clear.\n"
+ #~ " -v, --verbose             explain what is being done.\n"
+ #~ " --version                 display version information and exit.\n"
+ #~ " --xml                     output XML (TexinfoML) rather than Info "
+ #~ "format.\n"
+ #~ msgstr ""
+ #~ "--no-headers            potlaèí oddìlovaèe uzlù a jejich hlavièky a "
+ #~ "zapí¹e \n"
+ #~ "                        výstup na standardní výstup (není-li zadáno --"
+ #~ "output)\n"
+ #~ "--no-ifhtml             zpùsobí nezpracování @ifhtml a @html textu\n"
+ #~ "--no-ifinfo             zpùsobí nezpracování @ifinfo textu\n"
+ #~ "--no-iftex              zpùsobí nezpracování @iftex a @tex textu\n"
+ #~ "--no-split              potlaèí rozdìlování velkých výstupních info "
+ #~ "souborù\n"
+ #~ "                         nebo generování jednoho HTML souboru na uzel\n"
+ #~ "--no-validate           potlaèí kontrolu køí¾ových odkazù\n"
+ #~ "--no-warn               potlaèí výpis varování (ne v¹ak chyb)\n"
+ #~ "-o, --output=SOUB       výstup do SOUBoru, ignoruje pøíkaz @setfilename\n"
+ #~ "-P ADRESÁØ              pøidá ADRESÁØ na zaèátek seznamu adresáøù, ve "
+ #~ "kterých\n"
+ #~ "                        jsou hledány soubory pro @include\n"
+ #~ "--paragraph-indent=HODN odsadí odstavce HODN mezerami (implicitnì %d).\n"
+ #~ "                         jestli¾e je HODN `none' neodsazuje;\n"
+ #~ "                         jestli¾e je HODN `asis' zanechá existující "
+ #~ "odsazení.\n"
+ #~ "--reference-limit=ÈÍSLO oznámí, bude-li køí¾ových odkazù více ne¾ ÈÍSLO\n"
+ #~ "                         (implicitnì %d).\n"
+ #~ "-U PROMÌNNÁ             oddefinuje promìnnou, jako pøíkazem @clear\n"
+ #~ "-v, --verbose           vypisuje bli¾¹í informace o zpracovávání\n"
+ #~ "--version               vypí¹e oznaèení verze a skonèí\n"
Files texinfo-4.12/po/da.gmo and texinfo-4.13/po/da.gmo differ
diff -Nrc2 texinfo-4.12/po/da.po texinfo-4.13/po/da.po
*** texinfo-4.12/po/da.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/da.po	Thu Sep 18 11:38:31 2008
***************
*** 0 ****
--- 1,3508 ----
+ # Danish texinfo translation po-file.
+ # Copyright (C) 2002 Free Software Foundation, Inc.
+ # Claus Hindsgaul <claus_h@image.dk>, 2000-2001.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.2e\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2002-11-08 09:13GMT\n"
+ "Last-Translator: Claus Hindsgaul <claus_h@image.dk>\n"
+ "Language-Team: Danish <dansk@klid.dk>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO-8859-1\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Generator: KBabel 0.9.6\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: tilvalg '%s' er flertydig\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: tilvalg '--%s' tillader ikke en parameter\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: tilvalg '%c%s' tillader ikke en parameter\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: tilvalg '%s' kræver en parameter\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: ukendt tilvalg '--%s'\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: ukendt tilvalg '%c%s'\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: ugyldigt tilvalg -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: ugyldigt tilvalg -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: tilvalg kræver en parameter -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: tilvalg '-W %s' er flertydigt\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: tilvalg '-W %s' tillader ikke en parameter\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, fuzzy, c-format
+ msgid "memory exhausted"
+ msgstr "virtuel hukommelse opbrugt"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Gå et tegn frem"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Gå et tegn tilbage"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Gå til starten af linjen"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Gå til slutning af linjen"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Ryk et ord frem"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Ryk et ord tilbage"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Slet tegnet under markøren"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Slet tegnet efter markøren"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Afbryd eller afslut aktivitet"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Acceptér (eller gennemtving afslutning af) linjen"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Indsæt næste tegn råt"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Indsæt dette tegn"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Indsæt et tabulatortegn"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Transponér tegn ved markør"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Gendan indholdet fra sidste sletning"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "Skraldespand er tom"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Gendan en tidligere sletning"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Slet resten af linjen"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Slet bagud til linjestart"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Slet resten af ordet"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Slet ordet før markøren"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Ingen afslutninger"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Ikke afsluttet"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Vis mulige afslutninger"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Eneste afslutning"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Én afslutning:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d afslutninger:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Indsæt afslutning"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Opbygger afslutninger..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Rul afslutningsvinduet"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Fodnoter kunne ikke vises"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "Vis fodnoter, det hører til dette emne i et andet vindue"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- Fodnoter -----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Slå en tekst op i denne fils indeks."
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Finder indeksindgange..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Fandt intet indeks."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Indeksindgang:"
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr "Gå til næste fundne indekspunkt fra sidste '\\[index-search]'-kommando"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Ingen tidligere indeks søgetekst"
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Ingen indeksindgange."
+ 
+ #: info/indices.c:374
+ #, fuzzy, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Ingen %sindeksindgange indeholder \"%s\"."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "mere "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "KAN IKKE SE DETTE"
+ 
+ #: info/indices.c:421
+ #, fuzzy, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "Fandt \"%s\" i %s. ('\\[next-index-match]' søger efter den næste.)"
+ 
+ #: info/indices.c:549
+ #, fuzzy, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Skimmer \"%s\"'s indekser..."
+ 
+ #: info/indices.c:604
+ #, fuzzy, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Ingen tilgængelige info-filer har \"%s\" i sit index."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Gennemtrævl alle kendte Info-filers indekser for en tekst og opbyg en menu"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Indeks apropos:"
+ 
+ #: info/indices.c:662
+ #, fuzzy, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: Emner, hvis indeks indeholder \"%s\":\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Prøv --help for mere information.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "ingen indeksindgange blev fundet for '%s'\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr " -b, --speech-friendly        vær talesyntese-venlig.\n"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Rapportér fejl i programmet på engelsk til bug-texinfo@gnu.org,\n"
+ "generelle spørgsmål og diskussion til help-texinfo@gnu.org,\n"
+ "oversættelsesfejl til claus_h@image.dk\n"
+ "Texinfos hjemmeside: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Kan ikke finde emnet '%s'."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Kan ikke finde emnet '(%s)%s'."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Kan ikke finde et vindue!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Punktet optræder ikke i dette vindues emne!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Kan ikke slette det sidste vindue."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Ingen menu i dette emne."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Ingen fodnoter i dette emne."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Ingen krydsreferencer i dette emne."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Ingen '%s'-peger mod dette emne."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Ukendt Info kommando '%c'; prøv '?' for hjælp."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Info kan ikke køre på terminal type '%s'."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Du er i forvejen ved emnets sidste side."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Du er i forvejen ved emnets første side."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Kun ét vindue."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Det resulterende vindue ville være for lille."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Ikke nok plads til et hjælpevindue. Fjern venligst et vindue."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Afslut denne hjælp.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Afslut hele Info-programmet.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Kør info introduktionen.\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[forrige linje]  Rul en linje tilbage.\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[næste linje]  Rul 1 linje frem.\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Rul en side tilbage.\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Rul en side frem.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Gå til starten af emnet.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Gå til enden af emnet.\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10[move-to-next-xref]  Hop til næste hypertekst-henvisning i dette "
+ "emne.\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Følg hypertekst-henvisningen under "
+ "markøren.\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "\\%-10[history-node]  Flyt til vinduets sidste synlige emne-felt.\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[prev-node]  Flyt til emnet 'Forrige' i dette emne.\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[next-node]  Flyt til emnet 'næste' i dette emne.\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Flyt til emnet 'Forrige' i dette emne.\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Flyt til emnet 'næste' i dette emne.\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Flyt til emnet 'Op' i dette emne.\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[end-of-node]  Gå til enden af emnet.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[end-of-node]  Gå til enden af emnet.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  Vælg første ... niende punkt i emnets menu.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  Vælg sidste punkt i emnets menu.\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  Vælg menupunkt angivet ved navn.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ "\\%-10[xref-item]  Følg en krydshenvisning.  Indlæser referencens navn.\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  Gå til emne angivet ved navn.\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  Søg fremad efter en given streng,\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[prev-node]  Flyt til emnet 'Forrige' i dette emne.\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ "  %-10s  Søg efter en angivet tekst i denne Info-fils indeksindgange,\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Søg efter den angivne streng i denne Infos "
+ "indeksindgange\n"
+ "              og vælg det emne, der refereres til af den først fundne "
+ "indgang.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "Afbryd nuværende aktivitet"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Grundlæggende kommandoer i Info-vinduer\n"
+ "***************************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Afslut hjælp.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Afslut hele Info-programmet.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Kør info introduktionen.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Flyt til emnet 'næste' i dette emne.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Flyt til emnet 'Forrige' i dette emne.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Gå et niveau op.\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "\\%-10[menu-item]  Vælg menupunkt angivet ved navn.\n"
+ "              Valg af menupunkt vælger et andet emne.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Følg en krydshenvisning.  Indlæser referencens navn.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Flyt til vinduets sidste synlige emne-felt.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Hop til næste hypertekst-lænke i dette emne.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Følg hypertekst-lænken under markøren.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Flyt til emnet 'katalog'. Svarer til 'g (KATALOG)'.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Gå til emnet Top. Svarer til 'g Top'.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Bevægelser indenfor et emne:\n"
+ "----------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Rul en side frem.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Rul en side tilbage.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Gå til starten af emnet.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Gå til enden af emnet.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Rul 1 linje frem.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Rul en linje tilbage.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Andre kommandoer:\n"
+ "-----------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Vælg første ... niende punkt i emnets menu.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Vælg sidste punkt i emnets menu.\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Søg efter den angivne streng i denne Infos "
+ "indeksindgange\n"
+ "              og vælg det emne, der refereres til af den først fundne "
+ "indgang.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10[goto-node]  Gå til emne angivet ved navn.\n"
+ "              Du kan også medtage filnavn, som (FILNAVN)EMNENAVN.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Søg fremad efter en given streng\n"
+ "              og vælg emnet med den næste forekomst.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Søg fremad efter en given streng\n"
+ "              og vælg emnet med den næste forekomst.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Den nuværende søgesti er:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Tilgængelige kommandoer i infovinduer:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Tilgængelige kommandoer i ekko-område:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Følgende kommandoer kan kun køres via %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "Følgende kommandoer kan slet ikke køres:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Vis hjælp"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Besøg infoemnet '(info)Help'"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Vis dokumentation for TAST"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Beskriv tast: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s er ikke defineret."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s er ikke defineret."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s er defineret til %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Vis hvad der skal tastes, for at udføre en given kommando"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Hvor er kommando: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "'%s' er ikke på nogen taster"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s kan kun udføres via %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s kan udføres via %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Der er ingen funktion kaldet '%s'"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Valg af ander emnder:\n"
+ "---------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "ugyldigt antal parametre"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "can ikke åbne inddata-filen '%s'."
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "kan ikke oprette uddatafil '%s'"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "fejl under skrivning til '%s'"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "fejl under lukning af uddatafilen '%s'"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "nøglesekvens for lang"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "manglende nøglesekvens"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "NUL-tegn (\\000) ikke tilladt"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "NUL-tegn (^%c) ikke tilladt"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "mangler handlingsnavn"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "for langt afsnit"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "ukendt handling '%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "for langt handlingsnavn"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "ekstra tegn følger handlingen '%s'"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "manglende variabelnavn"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "mangler '=' umiddelbart efter variabelnavn"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "for langt variabelnavn"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "for lang værdi"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", linje %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Brug: %s [TILVALG]... [INDDATA-FIL]\n"
+ "\n"
+ "Oversæt en infokey-kildefil til en infokey-fil. Læser INDDATA-FIL (som "
+ "standard\n"
+ "$HOME/.infokey) og skriver oversat fil til (som standard) $HOME/.info.\n"
+ "\n"
+ "Tilvalg:\n"
+ "  --output FILNAVN             uddata til FILNAVN i stedet for $HOME/.info\n"
+ "  --help                       vis denne hjælp og afslut.\n"
+ "  --version                    vis versionsoplysninger og afslut.\n"
+ "\n"
+ "Oversæt infokey-kildefil til infokey-fil. Læser INDDATA-FIL (standard\n"
+ "$HOME/.infokey) og skriver oversat key-fil til $HOME/.info.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Ignorerer ugyldig infokey-fil '%s' - for lille"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Ignorerer ugyldig infokey-fil '%s' - for stor"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Fejl under læsning af infokey-fil '%s' - \"short read\""
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "Ugyldig infokey-fil '%s' (ugyldige magiske tal) -- kør infokey for at "
+ "opdatere den"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "Din infokey-fil '%s' er for gammel -- kør infokey for at opdatere den"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Ugyldig infokey-fil '%s' (ugyldig afsnitslængde) -- kør infokey for at "
+ "opdatere den"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "Ugyldig infokey-fil '%s' (ugyldig afsnitskode) -- kør infokey for at "
+ "opdatere den"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "Ugyldige data i infokey-fil -- visse tastebindinger blev ignoreret"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ "Ugyldige data i infokey-fil -- visse variabelindstillinger blev ignoreret"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Indlæs navnet på en info-kommando og beskriv den"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Beskriv kommando: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Indlæs et kommandonavn i ekko-området og udfør den"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Kan ikke udføre en 'ekko-område'-kommando her."
+ 
+ #: info/m-x.c:153
+ #, fuzzy, c-format
+ msgid "Undefined command: %s"
+ msgstr "Ukendt kommando '%s'"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Sæt højden på det viste vindue"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Sæt skærmhøjden til (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Kildetekster gennemtrævlet for at inkludere filen;\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Kunne ikke bearbejde filen %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menu:\n"
+ "  (Fil)Emne                         linjer  Størr. Indeholder fil\n"
+ "  ----------                        -----   ----   ---------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Her er menuen med emner, du har besøgt for nylig.\n"
+ "Vælg et fra denne menu eller brug '\\[history-node]' i et andet vindue,\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "Opret et vindue med en menu, der indeholder alle nyligt besøgte emner"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Vælg et emne, som tidligere har været besøgt i et synligt vindue"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Vælg besøgt emne: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Referencen forsvandt! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Velkommen til Info version %s. Skriv \\[get-help-window] for hjælp.  \\[menu-"
+ "item] for menupunkt."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Gå ned til næste linje"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Gå op til forrige linje"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Gå til linjeslutning"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Gå til linjestart"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Næste"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Ikke flere emner i dette dokument."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Ingen 'Forrige' i dette emne."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Ingen 'Forrige' eller 'Op' for dette emne i dette dokument."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Gå frem eller ned gennem emne-strukturen"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Gå tilbage eller op gennem emne-strukturen"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Rul tilbage i vinduet"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "Rul frem i vinduet og sæt standard vinduesstørrelse"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Rul frem i vinduet i samme emne"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr "Rul frem i vinduet i samme emne og sæt standard vinduesstørrelse"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Rul tilbage i vinduet"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "Rul tilbage i vinduet og sæt standard vinduesstørrelse"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Rul tilbage i vinduet indenfor samme emne"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Rul tilbage i vinduet indenfor samme emne og sæt standard vinduesstørrelse"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Gå til starten af dette emne"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Gå til slutningen af dette emne"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Rul N linjer ned"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Rul N linjer op"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Rul en halv skærmstørrelse ned"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Rul en halv skærmstørrelse op"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Vælg det næste vindue"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Vælg det forrige vindue"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Opdel nuværende vindue"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Slet nuværende vindue"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Kan ikke slette et permanent vindue"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Slet alle andre vinduer"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Rul det andet vindue"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Rul det andet vindue baglæns"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Forstør (eller formindsk) dette vindue"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Fordel det tilgængelige skærmområde mellem de synlige vinduer"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Vælg/fravælg linjeombrydning i nuværende vindue"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Vælg emnet Næste"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Vælg emnet Forrige"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Vælg emnet 'Op'"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Vælg det sidste emne i filen"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Dette vindue har ingen yderligere emner"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Vælg det første emne i filen"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Vælg det sidste punkt i emnets menu"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Vælg dette menupunkt"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Der er ikke %d punkter i denne menu."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Menupunkt (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Menupunkt: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Følg krydsreference (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Følg krydsreference: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Indlæs et menupunkt og vælg dets emne"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "Indlæs en fodnote eller krydsreference og vælg dets emne"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Flyt til starten af dette emnes menu"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Besøg så mange menupunkter på en gang, som det er muligt"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Indlæs et emnenavn og vælg det"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Gå til emne: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Ingen menu i emne '%s'."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Intet menupunkt '%s' i emne '%s'."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Kunne ikke finde emnet, der refereres til af '%s' i '%s'."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Indlæs en liste med menuer, der starter i katalog, og følg dem"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Følg menuer: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Find emnet, der beskriver hvordan programmet startes"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Find programstart emne for [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Indlæs en man-side reference og vælg den"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Hent man-side: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Vælg emnet 'Top' i filen"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Vælg emnet '(katalog)'"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Fjern emne (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Kan ikke fjerne emnet '%s'"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Kan ikke fjerne det sidste emne"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Vælg det sidst valgt emne"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Fjern dette emne"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Indlæs et filnavn og vælg det"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Find fil: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Kan ikke finde '%s'."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Kunne ikke oprette uddatafil '%s'."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Færdig."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Skriver emnet %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr ""
+ "Udskriv indholdet af dette emne (ved videreførsel gennem INFO_PRINT_COMMAND)"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Kan ikke åbne videreførsel til '%s'."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Udskriver emnet %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "Slet bagud til linjestart"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Leder efter underfilen %s ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Indlæs en tekst og søg efter den uden versalfølsomhed"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Indlæs en tekst og søg for den"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Indlæs en tekst og søg baglæns efter den"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%sefter tekst [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr " versalfølsomt"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "Søg baglæns"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Søg"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Søgning mislykkedes."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Gentag sidste søgning i samme retning"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Ingen tidligere søgetekst"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Gentag sidste søgning i modsat retning"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Søg interaktivt efter en tekst, mens du skriver den"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "I-søgning baglæns: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "I-søgning baglæns: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "I-søgning: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "I-søgning: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Fejler "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Gå til foregående krydsreference"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Gå til næste krydsreference"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Vælg reference eller menupunkt, der optræder på denne linje"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Afbryd nuværende aktivitet"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Afslut"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Flyt markør til bestemt linje i vinduet"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Gentegn skærmen"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Afslut info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Kør kommandoen, der er bundet til denne tasts småbogstavs-variant"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Ukendt kommando (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" er ugyldig"
+ 
+ #: info/session.c:4910
+ #, fuzzy, c-format
+ msgid "`%s' is invalid"
+ msgstr "\"%s\" er ugyldig"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Tilføj dette tegn til det nuværende numeriske parameter"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Start (eller gang med 4) det nuværende numeriske parameter"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Bruges internt af \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Virtuel hukommelse opbrugt!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Når \"On\", vises og skjules fodnoter automatisk"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "Når \"On\", ændres størrelsen på andre vinduer, når det vindues oprettes "
+ "eller fjernes"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Når \"On\", blinker skærmen i stedet for at ringe med systemklokken"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Når \"On\", vil fejl aktivere systemklokken"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ "Når \"On\", vil info fjerne eventuelle afkomprimerede filer, den laver."
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "Når \"On\", vil trufne søgestrenge blive markeret"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Bestemmer, hvad der sker, når rulning forsøges ved slutning af et emne"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Antallet af linjer, der rulles, når markøren flytter ud af vinduet"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Når \"On\", vil Info benytte og vise ISO Latin tegn"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Bestemmer, hvad der sker, når rulning forsøges ved slutning af et emne"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Forklar brugen af en variabel"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Beskriv variabel: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Sæt værdien af en Info-variabel"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Sæt variabel: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Sæt %s til værdien (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Sæt %s til værdien (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Mærker (tags) er forældede ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), linjer ---, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d linjer -%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d linjer -%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Underfil: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: advarsel: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " for %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tPrøv '%s --help' for en komplet tilvalgsliste.\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Brug: %s [TILVALG]... TEXINFO-FIL...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Rapportér fejl i programmet på engelsk til bug-texinfo@gnu.org,\n"
+ "generelle spørgsmål og diskussion til help-texinfo@gnu.org,\n"
+ "oversættelsesfejl til claus_h@image.dk\n"
+ "Texinfos hjemmeside: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, fuzzy, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Dette er filen .../info/dir, som indeholde det øverste\n"
+ "emne i Info-hierakiet, kaldet (katalog)Top.\n"
+ "Første gang, du kører Info, vil du indledningsvist se dette emne.\n"
+ "\n"
+ "%s\tDette er toppen af INFO-træet\n"
+ "\n"
+ "  Dette (katalog emnet) indeholder en menu med hovedemner.\n"
+ "  Afslut med \"q\", \"?\" viser alle Info-kommandoer, \"d\" returnerer "
+ "hertil,\n"
+ "  \"h\" introducerer nybegyndere for Info,\n"
+ "  \"mEmacs<Return>\" besøger Emacs-manualen, osv.\n"
+ "\n"
+ "  I Emacs kan du klikke med museknap 2 på et menupunkt eller krydsreference\n"
+ "  for at vælge den.\n"
+ "\n"
+ "* Menu:\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: kunne ikke læse (%s) og kunne ikke oprette (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: tom fil"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY uden tilhørende END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY uden tilhørende START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Angiv kun Info-filen én gang.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "overskydende kommandolinjeparameter '%s'"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "Ingen inddatafil angivet; prøv --help for mere information."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "Intet katalog angivet; prøv --help for mere information."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "ingen infokatalog-indgang i '%s'"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "ingen indgange fundet for '%s'; intet slettet"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, fuzzy, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "Ugyldigt argument til %c%s"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "januar"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "februar"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "marts"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "april"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "maj"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "juni"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "juli"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "august"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "september"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "oktober"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "november"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "december"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "usandsynligt tegn %c i @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "@sc parameter er kun versaler, derfor ingen virkning"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "'{' forventedes, men fandt '%c'"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "filslutning inden i en verb-blok"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "'}' forventedes, men fandt '%c'"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s er forældet"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp kræver et positivt tal, ikke '%s'"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Ugyldigt argument til %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "asis"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "none"
+ 
+ #: makeinfo/cmds.c:2049
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Ugyldigt argument til %c%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Ugyldigt argument til %c%s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Manglende '}' i @def parameter"
+ 
+ #: makeinfo/defun.c:711
+ #, fuzzy, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Skal være i '%s' indsætning for at bruge '%sx'"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr ""
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr ""
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr ""
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Se "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "'%c%s' kræver en parameter i '{...}', ikke blot '%s'"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Ingen slutparentes for fodnote '%s'"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Fodnote defineret uden forældre-emne"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Fodnoter indeni fodnoter er ikke tilladt"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Fodnoter"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr ""
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr ""
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[uventet] ingen html-mærker at \"pop\"'e"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[uventet] ugyldigt emnenavn: '%s'"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Ukendt indeks '%s'"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info kan ikke håndtere ':' i indeksindgangen '%s'"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Indeks '%s' eksisterer allerede"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Ukendt indeks '%s' og/eller '%s' i @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr ""
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr ""
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Ukendt indeks '%s' i @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Indgang til indeks '%s' udenfor et emne"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(udenfor et emne)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Broken-Type i insertion_type_pname"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Overløb i optællingsstak (enumeration stack)"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "bogstavsoverløb, genstarter ved %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s kræver en parameter: formatteringen for %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "'@end' forventede '%s', men fandt '%s'"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Mangler en tilsvarende '%cend %s'"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s kræver et bogstav eller ciffer"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "filslutning indeni en verbatim-blok"
+ 
+ #: makeinfo/insertion.c:1942
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s giver ingen mening i en '@%s'-blok"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu fundet før første @node, opretter 'Top' emne"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "måske skulle dit @top emne indsættes i @ifnottex i stedet for @ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu fundet før første emne, opretter emnet 'Top'"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2061
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s giver ingen mening i en '@%s'-blok"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Uparret '%c%s'"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "'%c%s' kræver noget efterfølgende"
+ 
+ #: makeinfo/insertion.c:2103
+ #, fuzzy, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Ugyldigt parameter '%s', '%s', benytter '%s'"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s giver ingen mening i en '@%s'-blok"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx giver ingen mening i en '%s'-blok"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s fundet udenfor en indsætningsblok"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s er ikke en gyldig ISO 639 sprogkode"
+ 
+ #: makeinfo/lang.c:1399
+ #, fuzzy, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "ukendt indkodningsnavn '%s'"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "beklager, indkodningen '%s' understøttes ikke"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "ugyldig indkodet tegn '%s'"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s kræver 'i' eller 'j' som parameter, ikke '%c'"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s kræver et enkelt tegn 'i' eller 'j' som parameter"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "makro '%s' er allerede defineret"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "her er den forrige definition af '%s'"
+ 
+ #: makeinfo/macro.c:359
+ #, fuzzy, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "\\ i makroudfoldelse fulgt af '%s' i stedet for \\ eller parameternavn"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Makro '%s' kaldt på linje %d med for mange parametre"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "%cend makro ikke fundet"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "uparret @end %s med @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "For mange fejl! Gav op.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: advarsel: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "Fejlplaceret %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Prøv '%s --help' for mere information.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Brug: %s [TILVALG]... TEXINFO-FIL...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Oversæt Texinfo kildedokumentation til flere andre formater, som standard "
+ "til\n"
+ "Info-filer, der er lavet til at blive læst på skærmen med Emacs eller GNU "
+ "Info.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, fuzzy, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Generelle tilvalg:\n"
+ "      --error-limit=ANTAL     afbryd efter ANTAL fejl (standard %d).\n"
+ "      --force                 bevar uddata selvom der opstår fejl.\n"
+ "      --help                  vis denne hjælp og afslut.\n"
+ "      --no-validate           undertryk validering af emne-krydsreferencer.\n"
+ "      --no-warn               undertryk advarsler (men ikke fejl).\n"
+ "      --reference-limit=ANTAL advar højst om ANTAL referencer (standard %"
+ "d).\n"
+ "  -v, --verbose               forklar, hvad der sker.\n"
+ "      --version               vis versionsoplysninger og afslut.\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, fuzzy, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Valg af format på uddata (ellers laves Info):\n"
+ "      --docbook             lav DocBook XML i stedet for Info.\n"
+ "      --html                lav HTML i stedet for Info.\n"
+ "      --xml                 lav Texinfo XML i stedet for Info.\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ #, fuzzy
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Generelle uddatatilvalg:\n"
+ "  -E, --macro-expand FIL    send makroekspanderet kildetekst til FIL.\n"
+ "                            ignorér eventuelle @setfilename.\n"
+ "      --no-headers          undertryk emneadskillere, Node:­linjer og "
+ "menuer\n"
+ "                             fra Infos uddata (og lav dermed simpel tekst)\n"
+ "                             og skriv som udgangspunkt til standard-ud."
+ "n      --no-split            undertryk opdeling af Info eller HTML-uddata,\n"
+ "                            lav kun én uddatafil.\n"
+ "      --number-sections     lav afsnits- og sektionsnumre.\n"
+ "  -o, --output=FILE         send til FIL (katalog i tilfældet opdelt HTML),\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, fuzzy, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Tilvalg for Info og ren tekst:\n"
+ "      --enable-encoding       konstruér specialtegn i Infouddata i henhold "
+ "til\n"
+ "                                @documentencoding.\n"
+ "      --fill-column=ANTAL     opdel Info-linjer ved ANTAL tegn (standard %"
+ "d).\n"
+ "      --footnote-style=STIL   vis fodnoter i Info med valgt STIL:\n"
+ "                                `separate' for at placere dem i deres eget "
+ "emne;\n"
+ "                                `end' for at placere dem i slutningen af det "
+ "emne,\n"
+ "                                  de er defineret(standard).\n"
+ "      --paragraph-indent=ANTAL indryk Info-afsnit med ANTAL mellemrum "
+ "(standard %d).\n"
+ "                                Hvis ANTAL er 'none' indrykkes ikke. Hvis "
+ "ANTAL er\n"
+ "                                `asis', bevares eksisterende indrykning.\n"
+ "      --split-size=ANTAL      opdel Info-filer ved størrelsen ANTAL "
+ "(standard %d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:426
+ #, fuzzy
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Inddata-tilvalg:\n"
+ "      --commands-in-node-names   tillad @-kommandoer i emnenavne.\n"
+ "  -D VAR                         definér variablen VAR som med @set.\n"
+ "  -I KATALOG                     tilføj KATALOG til @include-søgestien.\n"
+ "  -P KATALOG                     indsæt KATALOG forrest i @include-"
+ "søgestien.\n"
+ "  -U VAR                         afdefinér variablen VAR som med @clear.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ #, fuzzy
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Betinget behandling i inddata:\n"
+ "  --ifhtml          behandl @ifhtml og @html selvom der ikke laves HTML.\n"
+ "  --ifinfo          behandl @ifinfo-tekst selvom der laves HTML.\n"
+ "  --ifplaintext     behandl @ifplaintext selvom der ikke laves ren tekst.\n"
+ "  --iftex           behandl @iftex og @tex; underforstår --no-split.\n"
+ "  --ifxml           behandl @ifxml og @xml.\n"
+ "  --no-ifhtml       behandl ikke @ifhtml og @html-tekst.\n"
+ "  --no-ifinfo       behandl ikke @ifinfo-tekst.\n"
+ "  --no-ifplaintext  behandl ikke @ifplaintext-tekst.\n"
+ "  --no-iftex        behandl ikke @iftex og @tex-tekst.\n"
+ "  --no-ifxml        behandl ikke @ifxml og @xml-tekst.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ #, fuzzy
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  Standarden for @if... betingelser afhænger af uddataformatet:\n"
+ "  hvis der laves HTML, er --ifhtml aktiveret, mens de andre er "
+ "deaktiverede;\n"
+ "  hvis der laves Info er --ifinfo aktiveret og de andre er deaktiverede;\n"
+ "  hvis der laves ren tekst er --ifplaintext aktiveret og de andre "
+ "deaktiverede.\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Eksempler:\n"
+ "  makeinfo xxx.texi                    skriv Info til xxx's @setfilename\n"
+ "  makeinfo --html xxx.texi             skriv HTML til @setfilename\n"
+ "  makeinfo --xml xxx.texi              skriv Texinfo XML til  @setfilename\n"
+ "  makeinfo --no-headers -o - xxx.texi  skriv simpel tekst til standard-ud\n"
+ "\n"
+ "  makeinfo --html --noheaders xxx.texi skriv html uden emnelinjer og menuer\n"
+ "  makeinfo --number-sections xxx.texi  skriv Info med nummererede afsnit\n"
+ "  makeinfo --no-split xxx.texi         skriv én Info-fil, uanset størrelsen\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: %s parameter skal være et tal, ikke '%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, fuzzy, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "Kunne ikke åbne makroudfoldelses-uddata '%s'"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, fuzzy, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "Kunne ikke åbne makroudfoldelses-uddata '%s'"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "Kunne ikke åbne makroudfoldelses-uddata '%s'"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "Kunne ikke åbne makroudfoldelses-uddata '%s'"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: --paragraph-indent parameter skal være tal/'none'/'asis', ikke '%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: --footnote-style parameter skal være 'separate' eller 'end', ikke '%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: mangler filparameter.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Forventede '%s'"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Kan ikke oprette kataloget '%s': %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Ingen '%s' fundet i '%s'"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Undlader makroudfoldelse til standard-ud, da Info-uddata sendes der.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Producerer %s file '%s' ud fra '%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Fjerner makro uddatafil '%s' grundet fejl; brug --force for at beholde.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Fjerner uddatafil '%s' grundet fejl; brug --force for at beholde.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Fjerner uddatafil '%s' grundet fejl; brug --force for at beholde.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Ukendt kommando '%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "Benyt parenteser for at angive en kommando som parameter til @%s"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, fuzzy, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s forventede '{...}'"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Uparret }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "INTET_NAVN!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s mangler højre parentes"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image-fil '%s' (for HTML) er ulæselig: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, fuzzy, c-format
+ msgid "No such file `%s'"
+ msgstr "Ingen '%s' fundet i '%s'"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image-fil '%s' (for tekst) er ulæselig: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image mangler filnavnsparameter"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Ingen værdi for '%s'}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s kræver et navn"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Nåede filslutning før samhørende @end %s"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "`%.40s...' er for langt til ekspansion; blev ikke ekspanderet"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Manglende } i @multitable skabelon"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "ignorerer vildfaren tekst '%s' efter @multitable"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "For mange søjler i 'multitable' element (maks %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[uventet] Kan ikke vælge kolonne %d i 'multitable'"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "ignorerer @tab udenfor 'multitable'"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Flerkolonne uddata fra sidste række:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* kolonne %d: uddata = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Emne '%s' er tidligere defineret på linje %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Formatterer emne %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, fuzzy, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Emne '%s' kræver en sektionsopdelende kommando (f.eks. %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Intet emnenavn angivet for '%c%s'-kommandoen"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Mål '%s' og emne '%s' ender med at have samme filnavn"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "Denne @anchor-kommando er ignoreret; referencer til den vil ikke virke"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Omdøb dette mål eller brug tilvalget '--no-split'"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Uventet streng i slutningen af opdelt HTML-fil '%s'"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Målene '%s' og '%s' ender med at have samme filnavn"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "@anchor-kommandoen ignoreres. Referencer til den vil ikke fungere"
+ 
+ #: makeinfo/node.c:1362
+ #, fuzzy, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr "%s reference til ikke-eksisterende emne '%s'"
+ 
+ #: makeinfo/node.c:1462
+ #, fuzzy, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr "'Næste'-felt i emne '%s' blive ikke peget på"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Dette emne (%s) har den ugyldige 'Forrige'"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Feltet 'Forrige' i emne '%s' bliver ikke peget på"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Dette emne (%s) har den ugyldige 'Næste'-felt"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "Emnet '%s' mangler menupunkt for '%s' på trods af at det er dens 'Op'-mål"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "ikke-refereret emne '%s'"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1731
+ #, fuzzy, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Kan ikke oprette kataloget '%s': %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, fuzzy, c-format
+ msgid "Appendix %c"
+ msgstr "Appendiks %c "
+ 
+ #: makeinfo/sectioning.c:467
+ #, fuzzy, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Intern fejl (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Intern fejl (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s er forældet; benyt i stedet %c%s"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Emne med %ctop som sektion eksisterer allerede"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Her er %ctop-emnet"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop benyttet før %cnode, benytter forvalget %s"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image-fil '%s' er ulæselig: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "for"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "på"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "Første parameter i krydsreferencen må ikke være tom"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, fuzzy, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "en krydsreference må efterfølges af '.' eller ',', ikke %c"
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Ingen krydsreferencer i dette emne."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "Første parameter i @inforef må ikke være tom"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "viser denne hjælp og afslutter"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "send uddata til FIL"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "vis versions-information og afslut"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Brug: %s [TILVALG]... FIL...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Opret et ordnet indeks for hver TeX uddata-FIL.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "Normalt angives FIL... som 'xxx.%c%c' for dokumentet 'xxx.texi'.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Tilvalg:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "kunne ikke åbne %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: ikke en texinfo indeksfil"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Intet sidenummer i %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "indgang %s følger en indgang med et sekundært navn"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search]  Søg fremad efter en given streng\n"
+ #~ "              og vælg emnet med den næste forekomst.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10[goto-node]  Gå til emne angivet ved navn.\n"
+ #~ "              Du kan også medtage filnavn, som (FILNAVN)EMNENAVN.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "\\%-10[next-node]  Flyt til emnet 'næste' i dette emne.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  Flyt til emnet 'katalog'. Svarer til 'g (KATALOG)'.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[top-node]  Gå til emnet Top. Svarer til '\\[goto-node] Top'.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[scroll-forward-page-only]  Scroll forward within this node.\n"
+ #~ msgstr "\\%-10[scroll-forward]  Rul 1 linje frem.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[scroll-backward-page-only]  Scroll backward within this node.\n"
+ #~ msgstr "\\%-10[scroll-backward]  Rul en linje tilbage.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  Sæg baglæns efter en given streng\n"
+ #~ "              og vælg emnet med den forrige forekomst.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- Benyt '\\[history-node]' eller '\\[kill-node]' for at afslutte ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr ""
+ #~ "\\%-10[move-to-prev-xref]  Hop til næste hypertekst-henvisning i dette "
+ #~ "emne.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "Brug: %s [TILVALG]... [MENUPUNKT...]\n"
+ #~ "\n"
+ #~ "Læs dokumentationen i Info format.\n"
+ #~ "\n"
+ #~ "Tilvalg:\n"
+ #~ "      --apropos=STRENG         slå STRENG op i alle indekser og "
+ #~ "manualer.\n"
+ #~ "  -d, --directory=KATALOG      tilføj KATALOG til INFOPATH.\n"
+ #~ "      --dribble=FILNAVN        gem brugerens tastetryk i FILNAVN.\n"
+ #~ "  -f, --file=FILNAVN           angiv Info fil, der skal besøges.\n"
+ #~ "  -h, --help                   vis denne hjælp og afslut.\n"
+ #~ "      --index-search=TEKST     gå til det punkt, indeks-indgang TEKST "
+ #~ "angiver.\n"
+ #~ "  -n, --node=EMNENAVN          angiv emner i først besøgte Info-fil.\n"
+ #~ "  -o, --output=FILNAVN         udlæs de valgte emner til FILNAVN.\n"
+ #~ "  -R, --raw-escapes            fjern ikke ANSI-escapekoder fra "
+ #~ "manualsider\n"
+ #~ "      --restore=FILNAVN        indlæs de første tastetryk fra FILNAVN.\n"
+ #~ "  -O, --show-options, --usage  gå til emnet kommandolinje-tilvalg.\n"
+ #~ "%s      --subnodes               udlæs menupunkter rekursivt.\n"
+ #~ "      --vi-keys                benyt 'vi'- og 'less'-agtige "
+ #~ "tastebindinger.\n"
+ #~ "      --version                vis versionsinformation og afslut.\n"
+ #~ "\n"
+ #~ "Det første ikke-tilvalgs-parameter er menuindgangen der startes fra;\n"
+ #~ "den  søges i alle 'katalog'-filer angivet i miljøvariablen INFOPATH.\n"
+ #~ "Hvis ikke dette parameter er angivet, samler info alle 'katalog'-filer\n"
+ #~ " og viser resultatet.\n"
+ #~ "Resterende parametre angiver navne på menupunkter i forhold til "
+ #~ "startpunktet.\n"
+ #~ "\n"
+ #~ "Eksempler:\n"
+ #~ "  info                       viser top-niveau katalog menu\n"
+ #~ "  info emacs                 start ved emnet emacs i topniveau kataloget\n"
+ #~ "  info emacs buffers         start ved emnet 'buffers' i emacs-manualen\n"
+ #~ "  info --show-options emacs  start ved emnet med emacs' kommandolinje "
+ #~ "tilvalg\n"
+ #~ "  info -f ./xxx.info         vis filen ./xxx.info uden at søge i katalog\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr "              Valg af menupunkt vælger et andet emne.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr "              Du kan også medtage filnavn, som (FILNAVN)EMNENAVN.\n"
+ 
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  Søg baglæns efter en given streng\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "              og vælg emne med den næste forekomst.\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "Følger emnet Næste..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "Vælger første menupunkt..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "Vælger emnet 'Næste'..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "Går 'Op' %d gang(e), derefter 'Næste'."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "Går til 'Forrige' i dette vindue."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "Går 'Op' i dette vindue."
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "Går til 'Forrige's sidste menupunkt."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "Funktion"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "Makro"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "Specialform"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "Variabel"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "Brugerfunktion"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "Instansvariabel"
+ 
+ #~ msgid "Method"
+ #~ msgstr "Metode"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "Uden titel"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "Dette er %s, produceret med makeinfo version %s ud fra %s.\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "Næste:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "Forrige:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "Op:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "Menu"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "Kryds"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "Forrige"
+ 
+ #~ msgid "Up"
+ #~ msgstr "Op"
+ 
+ #~ msgid "see "
+ #~ msgstr "se "
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "Brug: %s [TILVALG]... [INFOFIL [KATALOGFIL]]\n"
+ #~ "\n"
+ #~ "Installér eller slet katalogindgange fra INFOFIL i Info katalogfilen\n"
+ #~ "KATALOGFIL.\n"
+ #~ "\n"
+ #~ "Tilvalg:\n"
+ #~ " --delete          slet eksisterende indgange til INFOFIL fra "
+ #~ "KATALOGFIL;\n"
+ #~ "                     tilføj ikke nye indgange.\n"
+ #~ " --dir-file=NAVN   angiv navn på Info katalogfil.\n"
+ #~ "                     Dette svarer til at bruge KATALOGFIL parameteren.\n"
+ #~ " --entry=TEKST     tilføj TEKST som en Info katalogindgang.\n"
+ #~ "                     TEKST skal være formateret som en Info menupunkts-\n"
+ #~ "                     linje plus nul eller flere ekstra linjer, der "
+ #~ "starter\n"
+ #~ "                     med mellemrum.\n"
+ #~ "                     Hvis du angiver flere indgange, tilføjes de alle.\n"
+ #~ "                     Hvis du ingen indgange angiver, bestemmes de ud fra\n"
+ #~ "                     informationerne i selve Info-filen.\n"
+ #~ " --help            vis denne hjælp og afslut.\n"
+ #~ " --info-file=FIL   angiv Info-fil, der skal indsættes i kataloget.\n"
+ #~ "                     Dette svarer til at bruge INFOFIL parameteren.\n"
+ #~ " --info-dir=KATALOG  svarer til --dir-file=KATALOG/katalog.\n"
+ #~ " --item=TEKST      svarer til --entry TEKST.\n"
+ #~ "                     Et Info-katalog er i virkeligheden et menupunkt.\n"
+ #~ " --quiet           undlad advarsler.\n"
+ #~ " --remove          svarer til --delete.\n"
+ #~ " --section=SEK     put denne fil's indgange i katalogets sektion SEK.\n"
+ #~ "                     Hvis du angiver flere sektioner, tilføjes samtlige\n"
+ #~ "                     indgangene til alle sektionerne.\n"
+ #~ "                     Hvis du ingen sektioner angiver, bestemmes de ud "
+ #~ "fra\n"
+ #~ "                     informationerne i selve Info-filen.\n"
+ #~ " --version         vis denne versions-information og afslut.\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "menupunkt '%s' eksisterer allerede i filen '%s'"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr "\\%-10[menu-digit]  Vælg første til niende punkt i emnets menu.\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "emne '%s' blev refereret %d gange"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "Der er INGEN garanti. Du må redistribuere denne software\n"
+ #~ "under GNU General Public License's betingelser.\n"
+ #~ "For mere information om dette, se filerne 'COPYING'.\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg kan kun bruges til makroer med et enkelt parameter"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Indhold"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "Kort indhold"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "efterlad midlertidige filer"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "efterlad ikke midlertidige filer (standard)"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "              og vælg det emne, der refereres til af den først fundne "
+ #~ "indgang.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "Der er INGEN garanti. Du må redistribuere denne software\n"
+ #~ "under GNU General Public License's betingelser.\n"
+ #~ "For mere information om dette, se filerne 'COPYING'.\n"
+ 
+ #~ msgid "%s: Specify the Info directory only once.\n"
+ #~ msgstr "%s: Angiv kun Info-kataloget én gang.\n"
+ 
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "\"\" er ugyldig"
+ 
+ #~ msgid "%s is an invalid ISO code, using %c"
+ #~ msgstr "%s er en ugyldig ISO-kode, bruger %c"
+ 
+ #~ msgid "Cannot specify more than one macro expansion output"
+ #~ msgstr "Kan ikke angive mere end én makroudfoldelses-uddata"
+ 
+ #~ msgid "File exists, but is not a directory"
+ #~ msgstr "Filen eksisterer, men er ikke et katalog"
+ 
+ #~ msgid "Node:"
+ #~ msgstr "Emne:"
+ 
+ #~ msgid "%s: TOC should be here, but it was not found"
+ #~ msgstr "%s: 'Indhold' burde være her, men blev ikke fundet"
+ 
+ #~ msgid "No `%s.png' or `.jpg', and no extension supplied"
+ #~ msgstr "Ingen `%s.png' eller `.jpg', og ingen filendelse angivet"
+ 
+ #~ msgid "%s; for file `%s'.\n"
+ #~ msgstr "%s; for filen '%s'.\n"
+ 
+ #~ msgid "`%s' has no Up field"
+ #~ msgstr "'%s' har intet 'Op'-felt"
Files texinfo-4.12/po/de.gmo and texinfo-4.13/po/de.gmo differ
diff -Nrc2 texinfo-4.12/po/de.po texinfo-4.13/po/de.po
*** texinfo-4.12/po/de.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/de.po	Thu Sep 18 11:38:31 2008
***************
*** 0 ****
--- 1,3343 ----
+ # German messages for GNU Texinfo
+ # Copyright Â© 2004 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the texinfo package.
+ # Karl Eichwalder <ke@ke.Central.DE>, 1996.
+ # Karl Eichwalder <ke@suse.de>, 1997, 1998, 1999.
+ # Karl Eichwalder <ke@gnu.franken.de>, 1999, 2000.
+ # Michael Piefel <piefel@informatik.hu-berlin.de>, 2001-2005, 2007, 2008.
+ #
+ # 2004-03-31
+ # Along with this new update, I changed the quotes to
+ # â€žGermanâ€œ as opposed to Â»FrenchÂ« quotes.
+ # MPi
+ #
+ # 2000-02-28 08:25:03 CET
+ # In HTML output, change 8bit characters to SGML entities (ÃŸ -> &szlig;, etc.)
+ # Reported by Thomas Esken, 1999-09-13.
+ # -ke-
+ #
+ # 1999-04-20 21:51:54 CEST
+ # Update: version 3.12h.
+ # reuse getopt translations from wget.
+ # -ke-
+ #
+ # 1998-04-05 18:25:42 MEST
+ # Hints by "Carl Friedrich Spilcke-Liss" <carl-friedriech.spilcke-liss@ensae.fr>.
+ # -ke-
+ #
+ # 1998-02-28 14:29:49 MET
+ # Revised for 3.11b
+ # I refuse to translate getopt.c strings.
+ # -ke-
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.12.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2008-08-25 10:25+0200\n"
+ "Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n"
+ "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8-bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr "Unbekannter Systemfehler"
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: Option â€ž%sâ€œ ist nicht eindeutig\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: Option â€ž--%sâ€œ erlaubt kein Argument\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: Option â€ž%c%sâ€œ erlaubt kein Argument\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: Option â€ž%sâ€œ benÃ¶tigt ein Argument\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: nicht erkannte Option â€ž--%sâ€œ\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: nicht erkannte Option â€ž%c%sâ€œ\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: ungÃ¼ltige Option -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: ungÃ¼ltige Option -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: Option benÃ¶tigt ein Argument -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: Option â€ž-W %sâ€œ ist nicht eindeutig\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: Option â€ž-W %sâ€œ erlaubt kein Argument\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "kein Speicher mehr"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Ein Zeichen vorgehen"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Ein Zeichen zurÃ¼ckgehen"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Zum Anfang dieser Zeile bewegen"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Zum Ende dieser Zeile bewegen"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Ein Wort vorgehen"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Ein Wort zurÃ¼ckgehen"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Das Zeichen unter dem Cursor lÃ¶schen"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Das Zeichen links vom Cursor lÃ¶schen"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Operation abbrechen oder beenden"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Akzeptiere diese Zeile (oder erzwinge ihre VervollstÃ¤ndigung)"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Das nÃ¤chste Zeichen wÃ¶rtlich eingeben"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Dieses Zeichen eingeben"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Ein Tabulator-Zeichen eingeben"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Zeichen an momentaner Position umstellen"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "FÃ¼ge den Inhalt des letzten LÃ¶schvorgangs ein"
+ 
+ # IMO muss "kill" auch im Folgenden wÃ¶rtlich Ã¼s werden -ke-
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "Der LÃ¶sch-Ring ist leer"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "FÃ¼ge Inhalt eines vorangegangenen LÃ¶schvorgangs ein"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Bis zum Ende der Zeile lÃ¶schen"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Bis zum Anfang der Zeile lÃ¶schen"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Das dem Cursor folgende Wort lÃ¶schen"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Das dem Cursor vorangehende Wort lÃ¶schen"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Keine VervollstÃ¤ndigungen"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Nicht vollstÃ¤ndig"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "MÃ¶gliche VervollstÃ¤ndigungen auflisten"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Einzige VervollstÃ¤ndigung"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Eine VervollstÃ¤ndigung:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d VervollstÃ¤ndigungen:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "VervollstÃ¤ndigung einfÃ¼gen"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "VervollstÃ¤ndigungen werden erstellt..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Im VervollstÃ¤ndigungs-Fenster blÃ¤ttern"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "FuÃŸnoten kÃ¶nnen nicht angezeigt werden"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr ""
+ "Zeige die zu diesem Knoten gehÃ¶renden FuÃŸnoten in einem anderen Fenster"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- FuÃŸnoten ----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Eine Zeichenkette im Index dieser Datei suchen"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Index-EintrÃ¤ge werden gesucht..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Keine Indizes gefunden."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Index-Eintrag: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Zum nÃ¤chsten Ã¼bereinstimmenden Index-Eintrag vom letzten â€ž\\[index-search]â€œ-"
+ "Befehl gehen"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Keine vorherige zu suchende Index-Zeichenkette."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Keine Index-EintrÃ¤ge."
+ 
+ # checkit
+ # kann im Deutschen nachgebildet werden, aber... -ke-
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Keine %sindex-EintrÃ¤ge, die â€ž%sâ€œ enthalten."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "weiteren "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "DIES IST NICHT ZU SEHEN"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "â€ž%sâ€œ in %s gefunden. (NÃ¤chster Eintrag mit â€ž\\[next-index-match]â€œ.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Indizes von â€ž%sâ€œ werden durchsucht..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Keine der verfÃ¼gbaren Info-Dateien hat â€ž%sâ€œ in ihren Indizes."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Alle bekannten Info-Datei-Indizes nach einer Zeichenkette durchsuchen\n"
+ "     und ein MenÃ¼ erstellen"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Index-Apropos: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* MenÃ¼: Knoten, deren Indizes â€ž%sâ€œ enthalten:\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "â€ž--helpâ€œ gibt weitere Informationen.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ "Copyright Â© %s Free Software Foundation, Inc.\n"
+ "Lizenz GPLv3+: GNU GPL Version 3 oder hÃ¶her <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "Dies ist freie Software: Sie kÃ¶nnen sie Ã¤ndern und weiter verteilen.\n"
+ "Es gibt KEINERLEI Garantie, soweit es das Gesetz erlaubt.\n"
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "Keine IndexeintrÃ¤ge fÃ¼r â€ž%sâ€œ gefunden\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ "Aufruf: %s [OPTION]... [MENU-EINTRAG...]\n"
+ "\n"
+ "Zum Lesen von Dokumentation, die im Info-Format vorliegt.\n"
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ "  -k, --apropos=ZKETTE      ZKETTE in allen Indizes sÃ¤mtlicher Info-Dateien\n"
+ "                              suchen\n"
+ "  -d, --directory=VERZ      VERZ dem INFOPATH hinzufÃ¼gen\n"
+ "      --dribble=DATEI       Tasteneingaben des Nutzers in DATEI merken\n"
+ "  -f, --file=DATEI          zu besuchende Info-DATEI angeben"
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ "  -h, --help                diese Hilfe anzeigen und beenden\n"
+ "      --index-search=KETTE  zu einem Knoten gehen, auf den der Indexeintrag\n"
+ "                              KETTE zeigt\n"
+ "  -n, --node=KNOTEN         Knoten in der ersten zu besuchenden Info-Datei\n"
+ "                              angeben\n"
+ "  -o, --output=DATEI        ausgewÃ¤hlte Knoten nach DATEI ausgeben"
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ "  -R, --raw-escapes         â€žroheâ€œ ANSI-Escapes ausgeben (Voreinstellung)\n"
+ "      --no-raw-escapes      Escapes als wÃ¶rtlichen Text ausgeben\n"
+ "      --restore=DATEI       die beginnenden Tasteneingaben von DATEI lesen\n"
+ "  -O, --show-options, --usage  zum Knoten mit den Optionen fÃ¼r den\n"
+ "                              Befehlsaufruf gehen"
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr "  -b, --speech-friendly     zu Sprachsynthesizern freundlich sein."
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ "      --subnodes            MenÃ¼eintrÃ¤ge rekursiv ausgeben\n"
+ "      --vi-keys             Tastenbindungen Ã¤hnlich zu vi und less benutzen\n"
+ "      --version             Programmversion anzeigen\n"
+ "  -w, --where, --location   physischen Ort des Info-Datei anzeigen"
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ "\n"
+ "Der erste Parameter, der keine Option ist, ist der MenÃ¼eintrag, von dem aus\n"
+ "gestartet werden soll; nach diesem MenÃ¼eintrag wird in allen â€ždirâ€œ-Datei\n"
+ "gemÃ¤ÃŸ dem INFOPATH gesucht.\n"
+ "Wird kein MenÃ¼eintrag angegeben, packt info alle â€ždirâ€œ-Dateien zusammen\n"
+ "und zeigt das Ergebnis an.\n"
+ "Verbleibende Parameter werden als Namen von MenÃ¼eintrÃ¤gen des ersten zu\n"
+ "besuchenden Knotens angesehen."
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ "\n"
+ "FÃ¼r eine Zusammenfassung mÃ¶glicher Tastenkombinationen in Info â€šhâ€˜ tippen."
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ "\n"
+ "Beispiele:\n"
+ "  info                       das oberste â€ždirâ€œ-MenÃ¼ anzeigen\n"
+ "  info info                  die allgemeine Anleitung fÃ¼r Info-Leser "
+ "anzeigen\n"
+ "  info info-stnd             die Anleitung fÃ¼r dieses Info-Programm "
+ "anzeigen\n"
+ "  info emacs                 beim emacs-Knoten im obersten â€ždirâ€œ-MenÃ¼ "
+ "beginnen\n"
+ "  info emacs buffers         beim buffers-Knoten im emacs-Manual beginnen\n"
+ "  info --show-options emacs  beim Knoten mit den emacs-Kommandozeilen-"
+ "Optionen\n"
+ "                               beginnen\n"
+ "  info --subnodes -o out.txt emacs  das ganze Handbuch nach out.txt "
+ "schreiben\n"
+ "  info -f ./foo.info         datei ./foo.info anzeigen"
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Fehlerberichte (auf Englisch, mit LC_ALL=C) per E-Mail an bug-texinfo@gnu."
+ "org\n"
+ "schicken, allgemeine Fragen und Gedankenaustausch an help-texinfo@gnu.org.\n"
+ "Texinfos Homepage: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Knoten â€ž%sâ€œ nicht gefunden."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Knoten â€ž(%s)%sâ€œ nicht gefunden."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Kein Fenster gefunden!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Momentane Position erscheint nicht in dem Knoten dieses Fensters!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Kann das letzte Fenster nicht lÃ¶schen!"
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Kein MenÃ¼ in diesem Knoten."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Keine FuÃŸnoten in diesem Knoten."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Keine Querverweise in diesem Knoten."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Kein â€ž%sâ€œ-Verweis fÃ¼r diesem Knoten."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Unbekannter Info-Befehl â€ž%câ€œ. â€ž?â€œ eingeben, um Hilfe zu bekommen."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Der Terminaltyp â€ž%sâ€œ ist nicht fÃ¤hig genug, um Info auszufÃ¼hren."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Sie sind bereits auf der letzten Seite dieses Knotens."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Sie sind bereits auf der ersten Seite dieses Knotens."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Nur ein Fenster."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Das entstehende Fenster wÃ¤re zu klein."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Nicht genÃ¼gend Platz fÃ¼r ein Hilfefenster. Bitte ein Fenster lÃ¶schen."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr "Grundlegende Info-Befehlstasten\n"
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Dieses Hilfefenster schlieÃŸen.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Info gÃ¤nzlich beenden.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Das Info-Tutorial aufrufen.\n"
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  Eine Zeile nach oben bewegen.\n"
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  Eine Zeile nach unten bewegen.\n"
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Eine Bildschirmseite zurÃ¼ckblÃ¤ttern.\n"
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Eine Bildschirmseite vorblÃ¤ttern.\n"
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Zum Anfang dieses Knotens gehen.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Zum Ende dieses Knotens gehen.\n"
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "\\%-10[move-to-next-xref]  Zur nÃ¤chsten VerknÃ¼pfung springen.\n"
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Der VerknÃ¼pfung unter dem Cursor "
+ "folgen.\n"
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  Zum letzten in diesem Fenster besuchten Knoten gehen.\n"
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr ""
+ "\\%-10[global-prev-node]  Zum vorherigen Knoten dieses Dokuments gehen.\n"
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr ""
+ "\\%-10[global-next-node]  Zum nÃ¤chsten Knoten dieses Dokuments gehen.\n"
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Zum vorherigen Knoten auf dieser Ebene gehen.\n"
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Zum nÃ¤chsten Knoten auf dieser Ebene gehen.\n"
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Eine Ebene aufwÃ¤rts gehen.\n"
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[top-node]  Zum Startknoten dieses Dokukments gehen.\n"
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[dir-node]  Zum Hauptverzeichnisknoten gehen.\n"
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr ""
+ "1...9       Ersten ... neunten Eintrag aus dem MenÃ¼ dieses Knotens wÃ¤hlen.\n"
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr ""
+ "\\%-10[last-menu-item]  Letzten Eintrag aus dem MenÃ¼ dieses Knotens wÃ¤hlen.\n"
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "\\%-10[menu-item]  Einen MenÃ¼eintrag nach dem Namen auswÃ¤hlen.\n"
+ 
+ #: info/infodoc.c:73
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  Einem Querverweis anhand des Namens folgen.\n"
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "\\%-10[goto-node]  Knoten nach Namen auswÃ¤hlen und dorthin springen.\n"
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "\\%-10[search]  Angegebene Zeichenkette in VorwÃ¤rtsrichtung suchen.\n"
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[search-previous]  Nach vorhergehendem Auftreten suchen.\n"
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "\\%-10[search-next]  Nach nÃ¤chstem Auftreten suchen.\n"
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Eine Zeichenkette in den IndexeintÃ¤gen dieser Info-"
+ "Datei\n"
+ "              suchen und zu dem Knoten springen, auf den der erste\n"
+ "              gefundene Eintrag verweist.\n"
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "\\%-10[abort-key]  Momentane Operation abbrechen.\n"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Grundbefehle in Info-Fenstern\n"
+ "*****************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Diese Hilfe verlassen.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Info gÃ¤nzlich beenden.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Das Info-Tutorial aufrufen.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Zum nÃ¤chsten Knoten (â€žnextâ€œ) dieses Knotens gehen.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Zum vorherigen Knoten (â€žprevâ€œ) dieses Knotens gehen.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Von diesem Knoten aus aufwÃ¤rts (â€župâ€œ) gehen.\n"
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "  %-10s  Einen MenÃ¼eintrag nach dem Namen auswÃ¤hlen.\n"
+ "              Auswahl des MenÃ¼eintrags fÃ¼hrt zu Auswahl eines anderen "
+ "Knotens.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Einem Querverweis folgen. Liest den Namen des Verweises.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Zum letzten in diesem Fenster gezeigten Knoten gehen.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Zur nÃ¤chsten VerknÃ¼pfung auf dieser Seite springen.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Der VerknÃ¼pfung unter dem Cursor folgen.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Zum â€ždirectoryâ€œ-Knoten springen. Das gleiche wie â€žg (DIR)â€œ.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Zum â€žTopâ€œ-Knoten springen. Das gleiche wie â€žg Topâ€œ.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Bewegung innerhalb eines Knotens:\n"
+ "---------------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Eine Seite vorblÃ¤ttern.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Eine Seite zurÃ¼ckblÃ¤ttern.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Zum Anfang dieses Knotens gehen.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Zum Ende dieses Knotens gehen.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Eine Zeile vorblÃ¤ttern.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Eine Zeile zurÃ¼ckblÃ¤ttern.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Weitere Befehle:\n"
+ "----------------\n"
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Ersten ... neunten Eintrag aus dem MenÃ¼ des Knotens wÃ¤hlen.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Letzten Eintrag aus dem MenÃ¼ des Knotens wÃ¤hlen.\n"
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "  %-10s  Eine Zeichenkette in den IndexeintÃ¤gen dieser Info-Datei\n"
+ "              suchen und den Knoten wÃ¤hlen, auf den der erste gefundene\n"
+ "              Eintrag verweist.\n"
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "  %-10s  Knoten nach Namen auswÃ¤hlen und dorthin springen.\n"
+ "              Dateiname kann mit angegeben werden, also (DATEI)KNOTENNAME.\n"
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  Angegebene Zeichenkette in VorwÃ¤rtsrichtung suchen und den\n"
+ "              Knoten wÃ¤hlen, in dem der nÃ¤chste Eintrag gefunden wurde.\n"
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  Angegebene Zeichenkette in VorwÃ¤rtsrichtung suchen und den\n"
+ "              Knoten wÃ¤hlen, in dem der nÃ¤chste Eintrag gefunden wurde.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Der momentane Suchpfad ist:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Befehle, die in Info-Fenstern verfÃ¼gbar sind:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Befehle, die im Echo-Bereich verfÃ¼gbar sind:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Die folgenden Befehle kÃ¶nnen nur durch %s aufgerufen werden:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "Die folgenden Befehle kÃ¶nnen Ã¼berhaupt nicht aufgerufen werden:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Diesen Hilfe-Text anzeigen"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Info-Knoten â€ž(info)Helpâ€œ besuchen"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Dokumentation fÃ¼r KEY ausgeben"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Beschreibe Taste: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s ist nicht definiert."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s ist nicht definiert."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s ist definiert als %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Anzeigen, was einzugeben ist, um einen gegebenen Befehl auszufÃ¼hren"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Wo ist der Befehl: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "Keine Taste mit â€ž%sâ€œ belegt"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s kann nur durch %s aufgerufen werden."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s kann durch %s aufgerufen werden."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Es gibt keine Funktion mit Namen â€ž%sâ€œ"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Andere Knoten wÃ¤hlen:\n"
+ "---------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "falsche Anzahl von Argumenten"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "Eingabedatei â€ž%sâ€œ kann nicht geÃ¶ffnet werden."
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "Ausgabedatei â€ž%sâ€œ kann nicht angelegt werden."
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "Fehler beim Schreiben von â€ž%sâ€œ."
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "Fehler beim SchlieÃŸen der Ausgabedatei â€ž%sâ€œ."
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "Tastenkombination zu lang."
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "Fehlende Tastenkombination."
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "NUL-Zeichen (\\000) nicht erlaubt."
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "NUL-Zeichen (^%c) nicht erlaubt."
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "Fehlender Befehlsname."
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "Abschnitt zu lang."
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "Unbekannter Befehl â€ž%sâ€œ."
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "Befehlsname zu lang."
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "Extrazeichen folgen Befehl â€ž%sâ€œ."
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "Dateiname fehlt."
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "Fehlendes â€ž=â€œ direkt hinter Variablenname."
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "Variablenname zu lang"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "Wert zu lang"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "â€ž%sâ€œ, Zeile %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Aufruf: %s [OPTION]... [EINGABE-DATEI]\n"
+ "\n"
+ "Infokey-Quelldatei in Infokey-Datei kompilieren. Liest EINGABE-DATEI\n"
+ "(Voreinstellung $HOME/.infokey) und schreibt kompilierte Tastaturdatei\n"
+ "(per Voreinstellung) nach $HOME/.info.\n"
+ "\n"
+ "Optionen:\n"
+ "  --output DATEINAME           in DATEINAME statt in $HOME/.info ausgeben\n"
+ "  --help                       diese Hilfe anzeigen und beenden\n"
+ "  --version                    Versionsnummer anzeigen und beenden\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "UngÃ¼ltige Info-SchlÃ¼ssel-Datei â€ž%sâ€œ wird ignoriert - zu klein"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "UngÃ¼ltige Info-SchlÃ¼ssel-Datei â€ž%sâ€œ wird ignoriert - zu groÃŸ"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Fehler beim Lesen der Infokey-Datei â€ž%sâ€œ - zu kurzes Lesen"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "UngÃ¼ltige Infokey-Datei â€ž%sâ€œ (fehlerhafte Signatur) -- bitte mit infokey "
+ "erneuern"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "Ihre Infokey-Datei â€ž%sâ€œ ist veraltet -- bitte mit infokey erneuern"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "UngÃ¼ltige Infokey-Datei â€ž%sâ€œ (fehlerhafte AbschnittslÃ¤nge) -- bitte mit "
+ "infokey erneuern"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "UngÃ¼ltige Infokey-Datei â€ž%sâ€œ (fehlerhafter Abschnittscode) -- bitte mit "
+ "infokey erneuern"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ "Fehlerhafte Daten in Infokey-Datei -- einige Tastaturbindungen ignoriert"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ "Fehlerhafte Daten in Infokey-Datei -- einige Variableneinstellungen ignoriert"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Namen eines Info-Befehls lesen und beschreiben"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Beschreibe den Befehl: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Einen Befehlsnamen im Echo-Bereich lesen und ausfÃ¼hren"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Befehl fÃ¼r Echo-Bereich hier nicht ausfÃ¼hrbar."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "Undefinierter Befehl: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "HÃ¶he des angezeigten Fensters setzen"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Setze Bildschirm-HÃ¶he auf (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Quelldateien durchsucht, damit diese Datei enthÃ¤lt:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Datei â€ž%sâ€œ ist nicht verÃ¤nderbar.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* MenÃ¼:\n"
+ "  (Datei)Knoten                     Zeilen  GrÃ¶ÃŸe  Beinhaltet Datei\n"
+ "  -------------                     ------  -----  ----------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Hier ist das MenÃ¼ der Knoten, die zuletzt besucht wurden.\n"
+ "Einen Eintrag auswÃ¤hlen oder â€ž\\[history-node]â€œ in einem anderen Fenster\n"
+ "benÃ¼tzen.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "Ein Fenster mit einem MenÃ¼ aller aktuell besuchten Knoten erzeugen"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr ""
+ "Einen Knoten auswÃ¤hlen, der zuvor in einem sichtbaren Fenster\n"
+ "     besucht wurde"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "WÃ¤hle besuchten Knoten aus: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Der Verweis ist verschwunden! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr "Fehler in regulÃ¤rem Ausdruck: %s"
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Willkommen bei Info (Version %s). â€ž\\[get-help-window]â€œ eingeben fÃ¼r Hilfe, "
+ "â€ž\\[menu-item]â€œ fÃ¼r MenÃ¼eintrag."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Eine Zeile nach unten bewegen"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Eine Zeile nach oben bewegen"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Zum Ende dieser Zeile bewegen"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Zum Anfang der Zeile bewegen"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "nÃ¤chstes"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Keine weiteren Knoten in diesem Dokument."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Kein â€žvorigesâ€œ (Prev) fÃ¼r diesem Knoten."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr ""
+ "Kein â€žvorigesâ€œ (Prev) oder â€žaufwÃ¤rtsâ€œ (Up) fÃ¼r diesen Knoten innerhalb "
+ "dieses Dokuments."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "VorwÃ¤rts oder abwÃ¤rts durch die Knotenstruktur bewegen"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "ZurÃ¼ck oder aufwÃ¤rts durch die Knotenstruktur bewegen"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "In diesem Fenster vorwÃ¤rts blÃ¤ttern"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr ""
+ "In diesem Fenster vorwÃ¤rts blÃ¤ttern und die Standard-FenstergrÃ¶ÃŸe setzen"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "In diesem Fenster vorwÃ¤rts blÃ¤ttern ohne den Knoten zu verlassen"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "In diesem Fenster vorwÃ¤rts blÃ¤ttern (ohne den Knoten zu verlassen)\n"
+ "     und Standard-FenstergrÃ¶ÃŸe setzen"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "In diesem Fenster zurÃ¼ckblÃ¤ttern"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "In diesem Fenster zurÃ¼ckblÃ¤ttern und die Standard-FenstergrÃ¶ÃŸe setzen"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "In diesem Fenster zurÃ¼ckblÃ¤ttern ohne den Knoten zu verlassen"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "In diesem Fenster zurÃ¼ck blÃ¤ttern (ohne den Knoten zu verlassen)\n"
+ "     und Standard-FenstergrÃ¶ÃŸe setzen"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Zum Anfang dieses Knotens bewegen"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Zum Ende dieses Knotens bewegen"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Zeilenweise vorblÃ¤ttern"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Zeilenweise zurÃ¼ck blÃ¤ttern"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Einen halben Bildschirm vorblÃ¤ttern"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Einen halben Bildschirm zurÃ¼ckblÃ¤ttern"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Das nÃ¤chste Fenster auswÃ¤hlen"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Das vorige Fenster auswÃ¤hlen"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Aktuelles Fenster unterteilen"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Aktuelles Fenster lÃ¶schen"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Ein permanentes Fenster kann nicht gelÃ¶scht werden"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Alle anderen Fenster lÃ¶schen"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Im anderen Fenster vorblÃ¤ttern"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Im anderen Fenster zurÃ¼ck blÃ¤ttern"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Aktuelles Fenster vergrÃ¶ÃŸern (oder verkleinern)"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr ""
+ "Den vorhandenen Bildschirmplatz unter allen sichtbaren Fenstern aufteilen"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Den Status des Zeilenumbruchs im aktuellen Fenster umschalten"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr "Die Verwendung regulÃ¤rer AusdrÃ¼cke in Suchen umschalten"
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr "FÃ¼r Suchen werden regulÃ¤re AusdrÃ¼cke benutzt"
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr "FÃ¼r Suchen werden wortwÃ¶rtliche Zeichenketten benutzt"
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Den â€žnÃ¤chstenâ€œ Knoten (Next) auswÃ¤hlen"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Den â€žvorigenâ€œ Knoten (Prev) auswÃ¤hlen"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Den Ã¼bergeordneten Knoten auswÃ¤hlen (â€žaufwÃ¤rtsâ€œ, Up)"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Den letzten Knoten dieser Datei auswÃ¤hlen"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Dieses Fenster hat keine weiteren Knoten"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Den ersten Knoten dieser Datei auswÃ¤hlen"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Den letzten MenÃ¼eintrag dieses Knotens auswÃ¤hlen"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Diesen MenÃ¼eintrag auswÃ¤hlen"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Es sind keine %d EintrÃ¤ge in diesem MenÃ¼."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "MenÃ¼eintrag (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "MenÃ¼eintrag: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Folge xref (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Folge xref: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Einen MenÃ¼eintrag lesen und seinen Knoten auswÃ¤hlen"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "FuÃŸnote oder Querverweis lesen und den Knoten auswÃ¤hlen"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Zum Anfang des MenÃ¼s dieses Knotens bewegen"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "So viele MenÃ¼eintrÃ¤ge wie mÃ¶glich auf einmal besuchen"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Den Namen eines Knotens lesen und diesen auswÃ¤hlen"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Gehe zu Knoten: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Kein MenÃ¼ im Knoten â€ž%sâ€œ."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Kein MenÃ¼eintrag â€ž%sâ€œ im Knoten â€ž%sâ€œ."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Kann keinen Knoten finden, der von â€ž%sâ€œ in â€ž%sâ€œ referenziert wird."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "MenÃ¼liste lesen; bei â€ždirâ€œ beginnen und ihnen folgen"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Folge MenÃ¼s: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Den Knoten finden, der den Programmaufruf beschreibt"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Finde den Programmaufruf-Knoten von [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Einen Verweis auf eine Manpage lesen und diese auswÃ¤hlen"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Hole Manpage: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Den Knoten â€žTopâ€œ dieser Datei auswÃ¤hlen"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Den Knoten â€ž(dir)â€œ auswÃ¤hlen"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "LÃ¶sche Information Ã¼ber Knoten (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Kann Information Ã¼ber Knoten â€ž%sâ€œ nicht lÃ¶schen"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Information Ã¼ber den letzten Knoten kann nicht gelÃ¶scht werden"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Den zuletzt gewÃ¤hlten Knoten auswÃ¤hlen"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Information Ã¼ber diesen Knoten lÃ¶schen"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Den Namen einer Datei lesen und diese auswÃ¤hlen"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Finde Datei: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Kann â€ž%sâ€œ nicht finden."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Ausgabedatei â€ž%sâ€œ kann nicht angelegt werden."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Fertig."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Knoten â€ž%sâ€œ wird geschrieben..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr ""
+ "Den Inhalt dieses Knotens an INFO_PRINT_COMMAND weiterreichen\n"
+ "     (mittels einer Pipe)"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Kann Daten nicht nach â€ž%sâ€œ weiterreichen (mittels einer Pipe)."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Knoten â€ž%sâ€œ wird gedruckt..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr "Suche vom Ende des Dokuments fortgesetzt."
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr "Suche vom Anfang des Dokuments fortgesetzt."
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Unterdatei â€ž%sâ€œ wird durchsucht..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr ""
+ "Eine Zeichenkette einlesen und danach gemÃ¤ÃŸ GroÃŸ-/Kleinschreibung suchen"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Eine Zeichenkette einlesen und danach suchen"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Eine Zeichenkette einlesen und danach in RÃ¼ckwÃ¤rtsrichtung suchen"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s%s [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr "Suche mit regulÃ¤rem Ausdruck"
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr " gemÃ¤ÃŸ GroÃŸ-/Kleinschreibung"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr " in RÃ¼ckwÃ¤rtsrichtung"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Suche"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Suche fehlgeschlagen."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Letzte Suche in der gleichen Richtung wiederholen"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Keine vorherige Such-Zeichenkette."
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Letzte Suche in der entgegengesetzten Richtung wiederholen"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Interaktiv eine Zeichenkette wÃ¤hrend der Eingabe suchen"
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr "Interaktive Suche mit regulÃ¤rem Ausdruck in RÃ¼ckwÃ¤rtsrichtung: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "Interaktive Suche in RÃ¼ckwÃ¤rtsrichtung: "
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr "Interaktive Suche mit regulÃ¤rem Ausdruck: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "Interaktive Suche: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Fehlschlagende "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Zum vorigen Querverweis bewegen"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Zum nÃ¤chsten Querverweis bewegen"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Verweis oder MenÃ¼eintrag auswÃ¤hlen, der auf dieser Zeile erscheint"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Momentane Operation abbrechen"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Beenden"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Den Cursor zu einer bestimmten Zeile des Fensters bewegen"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Anzeige erneut darstellen"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Info beenden"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr ""
+ "Befehl ausfÃ¼hren, der an die kleingeschriebene Variante dieser\n"
+ "     Taste gebunden ist"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Unbekannter Befehl (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "â€ž%sâ€œ ist ungÃ¼ltig"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "â€ž%sâ€œ ist ungÃ¼ltig"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Diese Zahl dem aktuellen numerischen Argument hinzufÃ¼gen"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Beginne (oder multipliziere mit 4) das aktuelle numerische Argument"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Intern verwendet von \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Kein Speicher mehr!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Wenn â€žOnâ€œ, dann erscheinen und verschwinden FuÃŸnoten automatisch"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "Wenn â€žOnâ€œ, dann werden beim Anlegen oder LÃ¶schen eines Fensters die anderen "
+ "Fenster angepasst"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Wenn â€žOnâ€œ, dann den Bildschirm blinken lassen, kein akustisches Signal"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Wenn â€žOnâ€œ, dann erzeugen Fehler ein akustisches Signal"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ "Wenn â€žOnâ€œ, dann behÃ¤lt Info keine Dateien im Speicher, die ausgepackt werden "
+ "mussten"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr ""
+ "Wenn â€žOnâ€œ, dann wird die Ã¼bereinstimmende gefundene Zeichenkette markiert"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Kontrolliert, was passiert, wenn am Ende eines Knotens geblÃ¤ttert wird"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr "Das gleiche wie scroll-behaviour"
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr ""
+ "Anzahl der Zeilen zu blÃ¤ttern, wenn der Cursor aus dem Fenster bewegt wird"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr "Bestimmt, ob scroll-behavior Cursorbewegungsbefehle beeinflusst"
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Wenn â€žOnâ€œ, dann akzeptiert Info ISO-Latin-Zeichen und zeigt diese an"
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Kontrolliert, was passiert, wenn am Ende eines Knotens geblÃ¤ttert wird"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Den Zweck einer Variablen erklÃ¤ren"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Beschreibe Variable: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Den Wert einer Info-Variablen setzen"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Setze Variable: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Setze %s auf den Wert (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Setze %s auf den Wert (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Tags veraltet ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), Zeilen ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d Zeilen --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d Zeilen --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Unterdatei: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: Warnung: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " fÃ¼r %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tâ€ž%s --helpâ€œ gibt weitere Informationen.\n"
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Aufruf: %s [OPTION]... [INFO-DATEI [VERZEICHNIS-DATEI]]\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ "EintrÃ¤ge in INFO-DATEI hinzufÃ¼gen oder entfernen (in Info-Verzeichnis "
+ "VERZEICHNIS-DATEI)"
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ "Optionen:\n"
+ " --debug           alle VorgÃ¤nge protokollieren\n"
+ " --delete          vorhandene EintrÃ¤ge fÃ¼r INFO-DATEI aus VERZEICHNIS-DATEI\n"
+ "                     lÃ¶schen; keine neuen EintrÃ¤ge einfÃ¼gen\n"
+ " --description=TEXT  die Beschreibung des Eintrags auf TEXT setzen; zusammen "
+ "mit\n"
+ "                     der Option --name benutzt, um synonym zu --entry zu "
+ "werden\n"
+ " --dir-file=NAME   Namen der Info-Verzeichnis-Datei angeben. "
+ "Gleichbedeutend\n"
+ "                     mit dem VERZEICHNIS-DATEI-Argument\n"
+ " --dry-run         gleichbedeutend zu --test"
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ " --entry=TEXT      TEXT als einen Info-Verzeichnis-Eintrag einfÃ¼gen.\n"
+ "                     TEXT wird als Info-MenÃ¼eintragszeile gefolgt von null\n"
+ "                       oder mehr zusÃ¤tzlichen Zeilen, die mit Freiraum\n"
+ "                       beginnen, geschrieben.\n"
+ "                     Wenn mehr als ein Eintrag angegeben wird, werden alle\n"
+ "                       hinzugefÃ¼gt.\n"
+ "                     Wenn gar kein Eintrag angegeben wird, wird der\n"
+ "                       Eintragstext der Info-Datei selbst entnommen.\n"
+ "                     Beim Entfernen gibt TEXT den zu entfernenden Eintrag "
+ "an.\n"
+ "                     TEXT wird nur als letzt MÃ¶glichkeit entfernt, wenn der\n"
+ "                       Eintrag, wie er aus der Info-Datei ermittelt wurde,\n"
+ "                       nicht existiert und der Basisname der Infodatei "
+ "eben-\n"
+ "                       falls nicht gefunden wird."
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ " --help            diese Hilfe zeigen und beenden\n"
+ " --info-dir=VERZ   wie --dir-file=VERZ/dir\n"
+ " --info-file=DATEI Info-Datei angeben, die im Verzeichnis zu installieren "
+ "ist.\n"
+ "                     Gleichbedeutend mit dem INFO-DATEI-Argument\n"
+ " --item=TEXT       wie --entry TEXT\n"
+ " --keep-old        EintrÃ¤ge nicht ersetzen oder leere Abschnitte entfernen\n"
+ " --menuentry=TEXT  wie --name=TEXT\n"
+ " --name=TEXT       der Name des Eintrags ist TEXT;  zusammen mit der Option\n"
+ "                     --description benutzt, um synonym zu --entry zu werden\n"
+ " --no-indent       neue EintrÃ¤ge in der VERZEICHNIS-Datei nicht formatieren\n"
+ " --quiet           Warnungen unterdrÃ¼cken"
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ " --regex=R         die EintrÃ¤ge dieser Datei in allen Abschnitten "
+ "hinzufÃ¼gen,\n"
+ "                     auf die R passt (ohne GroÃŸ-/Kleinschreibung zu "
+ "beachten)\n"
+ " --remove          wie --delete\n"
+ " --remove-exactly  nur lÃ¶schen, wenn der Name der Info-Datei genau "
+ "Ã¼bereinstimmt;\n"
+ "                     Suffixe .info oder .gz werden nicht ignoriert\n"
+ " --section=SEC    die EintrÃ¤ge dieser Datei in den Abschnitt SEC des\n"
+ "                     Verzeichnisses stellen. Wird mehr als ein Abschnitt\n"
+ "                     angegeben, werden alle EintrÃ¤ge in jedem der\n"
+ "                     Abschnitte hinzugefÃ¼gt. Wird gar kein Abschnitt\n"
+ "                     angegeben, wird der Eintragstext der Info-Datei selbst\n"
+ "                     entnommen.\n"
+ " --section R SEC  Ã¤quivalent zu --regex=R --section=SEC --add-once"
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ " --silent          Warnungen unterdrÃ¼cken\n"
+ " --test            die VERZEICHNIS-DATEI nicht Ã¤ndern\n"
+ " --version         Programmversion anzeigen und beenden"
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "Fehlerberichte (auf Englisch, mit LC_ALL=C) per E-Mail an bug-texinfo@gnu."
+ "org\n"
+ "schicken, allgemeine Fragen und Gedankenaustausch an help-texinfo@gnu.org.\n"
+ "Texinfos Homepage: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Dies ist die Datei .../info/dir, die den obersten Knoten der\n"
+ "Info-Hierarchie enthÃ¤lt, genannt (dir)Top.\n"
+ "Beim ersten Aufruf von Info geht es bei diesem Knoten los.\n"
+ "\n"
+ "%s\tDies ist der Beginn des INFO-Baums\n"
+ "\n"
+ "  Dieser Verzeichnis-Knoten zeigt ein MenÃ¼ aller Hauptpunkte an.\n"
+ "  â€žqâ€œ beendet Info, â€ž?â€œ listet alle Info-Befehle auf, â€ždâ€œ kehrt hierher\n"
+ "  zurÃ¼ck, â€žhâ€œ gibt eine Einsteiger-Hilfe, â€žmEmacs<Return>â€œ besucht das\n"
+ "  Emacs-Manual, etc.\n"
+ "\n"
+ "  Im Emacs kann man mit dem zweiten Mausknopf auf einen MenÃ¼eintrag oder\n"
+ "  einen Querverweis klicken, um einen solchen auswÃ¤hlen.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: kann nicht gelesen (%s) und nicht angelegt werden (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: leere Datei"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY ohne END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY ohne START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: Verzeichnisdatei schon vorhanden: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Info-Datei nur einmal angeben.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr "ZusÃ¤tzlicher regulÃ¤rer Ausdruch angegeben, ignoriere â€ž%sâ€œ"
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr "Fehler in regulÃ¤rem Ausdruck â€ž%sâ€œ: %s"
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "Ã¼berflÃ¼ssiges Kommandozeilen-Argument â€ž%sâ€œ wird Ã¼bergangen"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "Keine Eingabe-Datei angegeben; â€ž--helpâ€œ gibt weitere Informationen."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "Keine dir-Datei angegeben; â€ž--helpâ€œ gibt weitere Informationen."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "Kein Info-Verzeichnis-Eintrag in â€ž%sâ€œ"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "keine EintrÃ¤ge fÃ¼r â€ž%sâ€œ gefunden; nichts entfernt"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr "ferror auf stdout\n"
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr "fflush-Fehler auf stdout\n"
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "Argumente zu @%s ignoriert"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "Januar"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "Februar"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "MÃ¤rz"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "April"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "Mai"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "Juni"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "Juli"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "August"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "September"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "Oktober"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "November"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "Dezember"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "wahrscheinlich falsches Zeichen â€ž%câ€œ in @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "Argument von @sc besteht nur aus GroÃŸbuchstaben, somit keine Wirkung"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "â€ž{â€œ erwartet, jedoch â€ž%câ€œ bekommen"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "Dateiende innerhalb eines @verb-Blocks"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "â€ž}â€œ erwartet, jedoch â€ž%câ€œ bekommen"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@strong{Bemerkung...} erzeugt einen Pseudo-Querverweis in Info; "
+ "umformulieren, um das zu vermeiden"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s ist obsolet"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp erfordert ein positives numerisches Argument, nicht â€ž%sâ€œ"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Fehlerhaftes Argument zu %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "genau"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "kein"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Fehlerhafte Argumente zu @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "EinfÃ¼gen"
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Fehlerhafte Argumente zu @%s: %s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr "Erwartete @%s on oder off, nicht â€ž%sâ€œ"
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr "Nur @%s 10 oder 11 unterstÃ¼tzt, nicht â€ž%sâ€œ"
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Fehlende â€ž}â€œ bei @def Argument"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Muss in einer â€ž@%sâ€œ-Umgebung sein, um â€ž@%sâ€œ zu benutzen"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "â€ž%sâ€œ weggelassen vor Ausgabedateiname"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "â€ž%sâ€œ weggelassen, da in Standardausgabe geschrieben wird"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Ausgabepuffer nicht leer."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr "Angeforderter FlieÃŸumgebungstyp â€ž%sâ€œ vorher nicht benutzt"
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Siehe "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "â€ž%c%sâ€œ benÃ¶tigt ein Argument â€ž{...}â€œ, nicht nur â€ž%sâ€œ"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Keine schlieÃŸende Klammer fÃ¼r FuÃŸnote â€ž%sâ€œ"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "FuÃŸnote auÃŸerhalb eines Elternknotens definiert"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "FuÃŸnoten innerhalb von FuÃŸnoten sind nicht erlaubt"
+ 
+ # HTML
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Fu&szlig;noten"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: Konnte CSS-Datei nicht Ã¶ffnen: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: CSS-Datei endete inmitten eines Kommentars"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[unerwartet] kein HTML-Tag fÃ¼r Pop-Operation"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[unerwartet] ungÃ¼ltiger Knotenname: â€ž%sâ€œ"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Unbekannter Index â€ž%sâ€œ"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info kann nicht mit â€ž:â€œ im Indexeintrag â€ž%sâ€œ umgehen"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Index â€ž%sâ€œ existiert bereits"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Unbekannter Index â€ž%sâ€œ und/oder â€ž%sâ€œ in @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(Zeile )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(Zeile %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Unbekannter Index â€ž%sâ€œ in @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Eintrag fÃ¼r Index â€ž%sâ€œ auÃŸerhalb jeglichen Knotens"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(auÃŸerhalb jeglichen Knotens)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@item nicht im Argument fÃ¼r @itemize erlaubt"
+ 
+ # checkit
+ # What does this mean? -ke-
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "â€žBroken-Typeâ€œ bei â€žinsertion_type_pnameâ€œ"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Ãœberlauf bei den Zahlen der AufzÃ¤hlung"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "Ãœberlauf bei den Buchstaben der AufzÃ¤hlung. Beginne wieder bei %c"
+ 
+ # %citem ist ein Texinfo-Befehl
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s benÃ¶tigt ein Argument: den Formatierer fÃ¼r %citem"
+ 
+ # %cfloat ist ein Texinfo-Befehl
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "%cfloat-Umgebungen kÃ¶nnen nicht verschachtelt sein"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "â€ž@endâ€œ erwartete â€ž%sâ€œ, bekam jedoch â€ž%sâ€œ"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Kein Ã¼bereinstimmendes â€ž%cend %sâ€œ"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s benÃ¶tigt einen Buchstaben oder eine Zahl"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "Dateiende innerhalb eines â€žVerbatimâ€œ-Blocks"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s nicht sinnvoll auÃŸerhalb einer â€ž@floatâ€œ-Umgebung"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu vor ersten @node gefunden. â€žTopâ€œ-Knoten wird angelegt"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "vielleicht sollte der @top-Knoten eher von @ifnottex als von @ifinfo "
+ "umschlossen werden?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu vor ersten @node gefunden. â€žTopâ€œ-Knoten wird angelegt"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ "@%s nicht sinnvoll auÃŸerhalb von â€ž@titlepageâ€œ- und â€ž@quotationâ€œ-Umgebungen"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s nicht sinnvoll auÃŸerhalb einer â€ž@titlepageâ€œ-Umgebung"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Nicht Ã¼bereinstimmendes â€ž%c%sâ€œ"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "â€ž%c%sâ€œ benÃ¶tigt etwas nachfolgendes"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Fehlerhaftes Argument â€ž%sâ€œ zu â€ž@%sâ€œ, benutze â€ž%sâ€œ"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s nicht sinnvoll innerhalb eines â€ž@%sâ€œ-Blocks"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx nicht sinnvoll innerhalb eines â€ž%sâ€œ-Blocks"
+ 
+ # checkit
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s auÃŸerhalb eines EinfÃ¼gungsblocks gefunden"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr "kein voreingestelltes Gebiet fÃ¼r die Sprache â€ž%sâ€œ bekannt"
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s ist kein gÃ¼ltiges ISO-639-SprachkÃ¼rzel"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "nicht erkannter Kodierungsname â€ž%sâ€œ"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "Kodierung â€ž%sâ€œ wird leider nicht unterstÃ¼tzt."
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "UngÃ¼ltiges kodiertes Zeichen: â€ž%sâ€œ"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s erwartet â€žiâ€œ oder â€žjâ€œ als Argument, nicht â€ž%câ€œ"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s erwartet einen einzelnen Buchstaben â€žiâ€œ oder â€žjâ€œ als Argument"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "Makro â€ž%sâ€œ frÃ¼her definiert"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "hier ist die frÃ¼here Definition von â€ž%sâ€œ"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ "Dem \\ in der Makro-Erweiterung folgt â€ž%sâ€œ anstelle eines Parameternamens"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Makro â€ž%sâ€œ in Zeile %d mit zuvielen Argumenten aufgerufen"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "%cend Makro nicht gefunden"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr "@allow-recursion ist veraltet; bitte stattdessen @rmacro benutzen"
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ "@quote-arg ist veraltet; Argumente werden standardmÃ¤ÃŸig in AnfÃ¼hrungszeichen "
+ "eingeschlossen"
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "@end %s stimmt nicht mit @%s Ã¼berein"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "Zu viele Fehler! Abbruch.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: Warnung: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "Fehlplazierte %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "â€ž%s --helpâ€œ gibt weitere Informationen.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Aufruf: %s [OPTION]... TEXINFO-DATEI...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Ãœbersetzt Texinfo-Quelldatei-Dokumentation in verschiedene andere Formate,\n"
+ "standardmÃ¤ÃŸig in Info-Dateien, die online mit einem Info-Leser wie\n"
+ "GNU Info (oder auch Emacs, TkInfo, etc.) gelesen werden kÃ¶nnen.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Allgemeine Optionen:\n"
+ "      --error-limit=ZAHL      nach ZAHL Fehlern beenden (Standard %d)\n"
+ "      --document-language=SPR  Locale fÃ¼r die Ãœbersetzung von Texinfo-\n"
+ "                                SchlÃ¼sselwÃ¶rtern im Ausgabedokument "
+ "(Standard: C)\n"
+ "      --force                 Ausgabedatei auch bei Fehlern nicht lÃ¶schen\n"
+ "      --help                  diese Hilfe zeigen und beenden\n"
+ "      --no-validate           ÃœberprÃ¼fen der Knoten-Querverweise "
+ "unterdrÃ¼cken\n"
+ "      --no-warn               Warnungen (aber keine Fehler) unterdrÃ¼cken\n"
+ "  -v, --verbose               ausfÃ¼hrlich die Bearbeitungschritte anzeigen\n"
+ "      --version               Programmversion anzeigen und beenden\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Optionen zur Wahl des Ausgabeformats (Voreinstellung ist Info):\n"
+ "      --docbook               DocBook XML anstelle von Info ausgeben\n"
+ "      --html                  HTML anstelle von Info ausgeben\n"
+ "      --xml                   Texinfo XML anstelle von Info ausgeben\n"
+ "      --plaintext             einfachen Text anstelle von Info ausgeben\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Allgemeine Ausgabe-Optionen:\n"
+ "  -E, --macro-expand DATEI  originalen Quelltext mit expandierten Makros in\n"
+ "                              DATEI ausgeben, dabei @setfilename ignorieren\n"
+ "      --no-headers          Knoten-Unterteiler, â€žKnoten:â€œ-Kopfzeilen und "
+ "MenÃ¼s\n"
+ "                              unterdrÃ¼cken in Info-Ausgabe (also reinen "
+ "Text\n"
+ "                              erstellen) oder HTML (also kÃ¼rzere Ausgabe "
+ "erzeugen);\n"
+ "                              auÃŸerdem in die Standardausgabe schreiben\n"
+ "      --no-split            Aufteilen langer Info- oder HTML-Dateien "
+ "unterdrÃ¼cken,\n"
+ "                              nur eine Ausgabedatei erzeugen\n"
+ "      --number-sections     Kapitel-, Abschnitt- und AnhangzÃ¤hlungen "
+ "ausgeben\n"
+ "  -o, --output=DATEI        Ausgabe in DATEI (Verzeichnis bei aufgeteiltem "
+ "HTML)\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Optionen fÃ¼r Info und Nur-Text:\n"
+ "      --disable-encoding      keine akzentuierten und speziellen Zeichen in "
+ "die\n"
+ "                                 Info-Ausgabe gemÃ¤ÃŸ @documentencoding "
+ "ausgeben\n"
+ "      --enable-encoding       Wirkung von --disable-encoding aufheben "
+ "(Standard)\n"
+ "      --fill-column=ZAHL      Zeilen nach ZAHL Zeichen umbrechen (Standard %"
+ "d)\n"
+ "      --footnote-style=STIL   FuÃŸnoten in Info gemÃ¤ÃŸ STIL ausgeben:\n"
+ "                                â€žseparateâ€œ: FuÃŸnoten in eigenen Knoten\n"
+ "                                            platzieren;\n"
+ "                                â€žendâ€œ: FuÃŸnoten an das Ende des Knotens "
+ "setzen,\n"
+ "                                       in dem sie definiert sind (Standard)\n"
+ "      --paragraph-indent=WERT Info-AbsÃ¤tze mit WERT Leerzeichen einziehen\n"
+ "                                (Standard %d);\n"
+ "                                WERT ist â€žnoneâ€œ: nicht einziehen;\n"
+ "                                WERT ist â€žasisâ€œ: existierende EinzÃ¼ge "
+ "behalten\n"
+ "      --split-size=GRÃ–SSE     in GRÃ–SSE groÃŸe Dateien splitten (Standard %"
+ "d)\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "Optionen fÃ¼r HTML:\n"
+ "      --css-include=DATEI     DATEI in HTML-<style>-Ausgabe einfÃ¼gen;\n"
+ "                                aus Standardeingabe, wenn DATEI â€ž-â€œ ist\n"
+ "      --css-ref=URL           Verweis auf eine CSS-Datei generieren\n"
+ "      --internal-links=DATEI  Liste interner Verweise in DATEI erzeugen\n"
+ "      --transliterate-file-names\n"
+ "                              Dateinamen in ASCII-Transliteration "
+ "produzieren\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "Optionen fÃ¼r XML und Docbook:\n"
+ "      --output-indent=WERT    XML-Elemente mit WERT Leerzeichen einrÃ¼cken\n"
+ "                                (Voreinstellung: %d). Wenn WERT 0 ist, wird\n"
+ "                                ignorierbarer Leerraum weggelassen.\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Eingabedatei-Optionen:\n"
+ "      --commands-in-node-names  @-Befehle in Knotennamen zulassen\n"
+ "  -D VAR                        eine Variable definieren (wie mit @set)\n"
+ "  -I VERZ                       VERZ an den Suchpfad fÃ¼r @include anhÃ¤ngen\n"
+ "  -P VERZ                       VERZ dem Suchpfad fÃ¼r @include voranstellen\n"
+ "  -U VAR                        eine Variable aufheben (wie mit @clear)\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Bedingte Verarbeitung in Eingabe:\n"
+ "  --ifdocbook       @ifdocbook und @docbook bearbeiten, selbst wenn kein "
+ "Docbook\n"
+ "                      erzeugt wird\n"
+ "  --ifhtml          @ifhtml und @html bearbeiten, selbst wenn kein HTML\n"
+ "                      erzeugt wird\n"
+ "  --ifinfo          @ifinfo bearbeiten, selbst wenn kein Info erzeugt wird\n"
+ "  --ifplaintext     @ifplaintext bearbeiten, selbst wenn kein Text erzeugt "
+ "wird\n"
+ "  --iftex           @iftex und @tex bearbeiten; impliziert --no-split\n"
+ "  --ifxml           @ifxml und @xml bearbeiten\n"
+ "  --no-idocbook     @ifdocbook- und @docbook-Text nicht bearbeiten\n"
+ "  --no-ifhtml       @ifhtml- und @html-Text nicht bearbeiten\n"
+ "  --no-ifinfo       @ifinfo-Text nicht bearbeiten\n"
+ "  --no-ifplaintext  @ifplaintext-Text nicht bearbeiten\n"
+ "  --no-iftex        @iftex- und @tex-Text nicht bearbeiten\n"
+ "  --no-ifxml        @ifxml und @xml nicht bearbeiten\n"
+ "\n"
+ "   AuÃŸerdem werden bei den --no-ifFORMAT-Optionen auch die entsprechenden\n"
+ "   @ifnoFORMAT-Abschnitte bearbeitet.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  Die Voreinstellungen fÃ¼r die @if...-Bedingungen hÃ¤ngen vom Ausgabeformat "
+ "ab:\n"
+ "  wird HTML erzeugt, ist --ifhtml an und die anderen sind aus;\n"
+ "  wird Info erzeugt, ist --ifinfo an und die anderen sind aus;\n"
+ "  wird reiner Text erzeugt, ist --ifplaintext an und die anderen sind aus;\n"
+ "  wird XML erzeugt, ist --ifxml an und die anderen sind aus.\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Beispiele:\n"
+ "  makeinfo foo.texi                    Info gemÃ¤ÃŸ @setfilename von foo "
+ "schreiben\n"
+ "  makeinfo --html foo.texi             HTML gemÃ¤ÃŸ @setfilename schreiben\n"
+ "  makeinfo --xml foo.texi              Texinfo XML gemÃ¤ÃŸ @setfilename "
+ "schreiben\n"
+ "  makeinfo --docbook foo.texi          DocBook XML gemÃ¤ÃŸ @setfilename "
+ "schreiben\n"
+ "  makeinfo --no-headers foo.texi       reinen Text in Standardausgabe "
+ "schreiben\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  HTML ohne MenÃ¼s oder â€žKnotenâ€œ-"
+ "Zeilen\n"
+ "  makeinfo --number-sections foo.texi    Info mit nummerierten Abschnitten\n"
+ "  makeinfo --no-split foo.texi           nur eine Info-Datei (kann groÃŸ "
+ "sein)\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: Ignoriere nicht erkannten Wert â€ž%sâ€œ fÃ¼r TEXINFO_OUTPUT_FORMAT.\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: %s Argument muss numerisch sein, nicht â€ž%sâ€œ.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: Makro-Expansions-Ausgabedatei â€ž%sâ€œ kann nicht geÃ¶ffnet werden"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: ignoriere zweite Makro-Expansions-Ausgabedatei â€ž%sâ€œ.\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: konnte Ausagbedatei fÃ¼r interne Verweise â€ž%sâ€œ nicht Ã¶ffnen"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: ignoriere zweite Ausgabedatei fÃ¼r interne Verweise â€ž%sâ€œ.\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: Argument fÃ¼r --paragraph-indent muss numerisch, â€žnoneâ€œ oder â€žasisâ€œ sein, "
+ "nicht â€ž%sâ€œ.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: Argument fÃ¼r --footnote-style muss â€žseparateâ€œ oder â€žendâ€œ sein, nicht â€ž%"
+ "sâ€œ.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: Datei-Angabe fehlt.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Mehrzeilen-Befehl %c%s inkorrekt verwendet"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Habe â€ž%sâ€œ erwartet"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Kann Verzeichnis â€ž%sâ€œ nicht anlegen: %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Kein â€ž%sâ€œ in â€ž%sâ€œ gefunden"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Keine Makro-AuflÃ¶sung nach der Standard-Ausgabe, da auch die Info-"
+ "Ausgabe dorthin geht.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "%s-Datei â€ž%sâ€œ von â€ž%sâ€œ wird erzeugt.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Entferne Makro-Ausgabedatei â€ž%sâ€œ wegen Fehler; --force benutzen, um "
+ "Datei beizubehalten.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Entferne Ausgabedatei â€ž%sâ€œ wegen Fehler; --force benutzen, um diese "
+ "beizubehalten.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Entferne Ausgabedatei fÃ¼r interne Verweise â€ž%sâ€œ wegen Fehler; --force "
+ "benutzen, um diese beizubehalten.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Unbekannter Befehl â€ž%sâ€œ"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr ""
+ "Geschweifte Klammern verwenden, um einen Befehl als Argument an â€ž@%sâ€œ zu "
+ "geben"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s erwartete geschweifte Klammern"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Nicht Ã¼bereinstimmende }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "Kein_NAME!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s fehlende schlieÃŸende Klammer"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image-Datei â€ž%sâ€œ (fÃ¼r HTML) nicht lesbar: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "Kein Datei namens â€ž%sâ€œ"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image-Datei â€ž%sâ€œ (fÃ¼r Text) nicht lesbar: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image fehlt als Argument ein Dateiname"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "undefiniertes Flag: %s"
+ 
+ # checkit
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Kein Wert fÃ¼r â€ž%sâ€œ}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s erfordert einen Namen"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Dateiende vor erforderlichem â€ž@end %sâ€œ erreicht"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "â€ž%.40s...â€œ ist zum Expandieren zu lang; nicht expandiert"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Fehlende â€ž}â€œ bei @multitable-Template"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "nicht interpretierbarer Text â€ž%sâ€œ nach @multitable wird ignoriert"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Zu viele Spalten im â€ž@multitableâ€œ-Eintrag (maximal %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[unerwartet] Spalte %d kann in â€žmultitableâ€œ nicht ausgewÃ¤hlt werden"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "@tab auÃŸerhalb einer â€žmultitableâ€œ wird ignoriert"
+ 
+ # checkit
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Mehrspalten-Ausgabe von der letzten Zeile:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* Spalte %d: Ausgabe = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Knoten â€ž%sâ€œ bereits in Zeile %d definiert"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Knoten â€ž%sâ€œ wird formatiert...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Knoten â€ž%sâ€œ benÃ¶tigt einen Abschnittsbefehl (z.B. %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Kein Knotenname fÃ¼r den Befehl â€ž%c%sâ€œ angegeben"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Anker â€ž%sâ€œ und Knoten â€ž%sâ€œ zeigen auf gleichen Dateinamen."
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ "Dieser @anchor-Befehl wird ignoriert, da Verweise auf ihn nicht funktionieren"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Entweder diesen Anker umbenennen oder Option â€ž--no-splitâ€œ verwenden"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Unerwartete Zeichenkette am Ende der gesplitteten HTML-Datei â€ž%sâ€œ"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Anker â€ž%sâ€œ und â€ž%sâ€œ zeigen auf gleichen Dateinamen."
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ "@anchor-Befehl wird ignoriert, da Referenzen auf ihn nicht funktionieren"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "%sverweis auf nicht existierenden Knoten â€ž%sâ€œ (vielleicht @section statt "
+ "@subsection o.Ã¤.?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "Auf das Feld â€žnÃ¤chstesâ€œ (Next) des Knotens â€ž%sâ€œ wird nicht verwiesen "
+ "(vielleicht @section statt @subsection o.Ã¤.?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr ""
+ "Dieser Knoten (%s) hat den fehlerhaften Eintrag im Feld â€žvorigesâ€œ (Prev)"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Auf das Feld â€žvorigesâ€œ (Prev) des Knotens â€ž%sâ€œ wird nicht verwiesen"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr ""
+ "Dieser Knoten (%s) hat den fehlerhaften Eintrag im Feld â€žnÃ¤chstesâ€œ (Next)"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ "â€ž%sâ€œ hat kein Feld â€žaufwÃ¤rtsâ€œ (Up) (vielleicht @section statt @subsection o."
+ "Ã¤.?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "Dem Knoten â€ž%sâ€œ fehlt ein MenÃ¼eintrag fÃ¼r â€ž%sâ€œ, obwohl er dessen Ziel fÃ¼r "
+ "â€žaufwÃ¤rtsâ€œ (Up) ist"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "Nicht referenzierter Knoten â€ž%sâ€œ"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "Entferne %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Kann Datei â€ž%sâ€œ nicht entfernen: %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Anhang %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Interner Fehler (search_sectioning) â€ž%sâ€œ!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Interner Fehler (search_sectioning) â€ž%sâ€œ!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s ist obsolet; %c%s stattdessen benutzen"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Knoten mit %ctop als Abschnitt existiert bereits"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Hier ist der %ctop-Knoten"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop vor %cnode benutzt, Voreinstellung %s wird genommen"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image-Datei â€ž%sâ€œ nicht lesbar: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "@headitem als letztes Element von @multitable erzeugt ungÃ¼ltige Docbook-"
+ "Dokumente"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "aus"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "ein"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "Erstes Argument fÃ¼r Querverweis darf nicht leer sein."
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr "Leerer Dateiname fÃ¼r HTML-Querverweis in â€ž%sâ€œ"
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr "Dateiende erreicht, wÃ¤hrend â€ž.â€œ oder â€ž,â€œ gesucht wurden"
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "â€ž.â€œ or â€ž,â€œ muss @%s folgen, nicht â€ž%câ€œ"
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "fÃ¼r Querverweise in Klammern @pxref benutzen"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "Erstes Argument fÃ¼r @inforef darf nicht leer sein."
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "diese Hilfe anzeigen"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "Ausgabe nach DATEI schicken"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "Programmversion anzeigen"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Aufruf: %s [OPTION]... DATEI...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Erzeuge einen sortierten Index fÃ¼r jede TeX-Ausgabedatei.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "DATEI... ist normalerweise â€žfoo.%c%câ€œ fÃ¼r ein Dokument â€žfoo.texiâ€œ.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Optionen:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "Fehler beim WiederÃ¶ffnen von â€ž%sâ€œ"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: keine Texinfo-Indexdatei"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Keine Seitenzahl in %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "Eintrag â€ž%sâ€œ direkt nach einem Untereintrag"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-Argument nur sinnvoll, wenn das Makro nur ein Argument hat"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Inhaltsverzeichnis"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "Inhalt in Kurzform"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "temporÃ¤re Dateien nach Programmende nicht entfernen"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "temporÃ¤re Dateien nach Programmende entfernen (Standard)"
+ 
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "â€žâ€œ ist ungÃ¼ltig"
+ 
+ #~ msgid "File exists, but is not a directory"
+ #~ msgstr "Datei existiert, ist aber kein Verzeichnis"
+ 
+ #~ msgid "Node:"
+ #~ msgstr "Knoten:"
+ 
+ #~ msgid "%s: TOC should be here, but it was not found"
+ #~ msgstr "%s: Inhaltsverzeichnis sollte hier sein, jedoch nicht gefunden"
+ 
+ #~ msgid "%s: Specify the Info directory only once.\n"
+ #~ msgstr "%s: Info-Verzeichnis nur einmal angeben.\n"
+ 
+ #~ msgid "No `%s.png' or `.jpg', and no extension supplied"
+ #~ msgstr "Kein .png oder .jpg fÃ¼r â€ž%sâ€œ und keine Erweiterung angegeben."
+ 
+ #~ msgid "`%s' has no Up field"
+ #~ msgstr "â€ž%sâ€œ hat kein â€žUpâ€œ-Feld"
Files texinfo-4.12/po/de_AT.gmo and texinfo-4.13/po/de_AT.gmo differ
diff -Nrc2 texinfo-4.12/po/de_AT.po texinfo-4.13/po/de_AT.po
*** texinfo-4.12/po/de_AT.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/de_AT.po	Thu Sep 18 11:38:31 2008
***************
*** 0 ****
--- 1,2881 ----
+ # German/autrian messages for GNU Texinfo
+ # Copyright © 1999 Free Software Foundation, Inc.
+ # Karl Eichwalder <ke@suse.de>, 1999.
+ #
+ # 1999-02-16 21:11:38 MET
+ # Vorgeschlagen von Guido Flohr <gufl0000@stud.uni-sb.de>.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 3.12d\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 1999-02-16 21:14+01:00\n"
+ "Last-Translator: Karl Eichwalder <ke@suse.de>\n"
+ "Language-Team: German <de@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO-8859-1\n"
+ "Content-Transfer-Encoding: 8-bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr ""
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr ""
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr ""
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr ""
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr ""
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr ""
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr ""
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr ""
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr ""
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr ""
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr ""
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr ""
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr ""
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr ""
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr ""
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr ""
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr ""
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr ""
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr ""
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr ""
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr ""
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr ""
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr ""
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr ""
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr ""
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr ""
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr ""
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr ""
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr ""
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr ""
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr ""
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr ""
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr ""
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr ""
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr ""
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr ""
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr ""
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr ""
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr ""
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr ""
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr ""
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr ""
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr ""
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr ""
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr ""
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr ""
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr ""
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr ""
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr ""
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr ""
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr ""
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr ""
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr ""
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr ""
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr ""
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr ""
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr ""
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr ""
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr ""
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr ""
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr ""
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr ""
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr ""
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr ""
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr ""
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:73
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr ""
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr ""
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr ""
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr ""
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr ""
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr ""
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr ""
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr ""
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr ""
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr ""
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr ""
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr ""
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr ""
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr ""
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr ""
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr ""
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr ""
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr ""
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr ""
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr ""
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr ""
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr ""
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr ""
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr ""
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr ""
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr ""
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr ""
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr ""
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr ""
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr ""
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr ""
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr ""
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr ""
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr ""
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr ""
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr ""
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr ""
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr ""
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr ""
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr ""
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr ""
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr ""
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr ""
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr ""
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr ""
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr ""
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr ""
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr ""
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr ""
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr ""
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr ""
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr ""
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr ""
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr ""
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr ""
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr ""
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr ""
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr ""
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr ""
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr ""
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr ""
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr ""
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr ""
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr ""
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr ""
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr ""
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr ""
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr ""
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr ""
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr ""
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr ""
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr ""
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr ""
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr ""
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr ""
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr ""
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr ""
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr ""
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr ""
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr ""
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr ""
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr ""
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr ""
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr ""
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr ""
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr ""
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr ""
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr ""
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr ""
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr ""
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr ""
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr ""
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr ""
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr ""
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr ""
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr ""
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr ""
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr ""
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr ""
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr ""
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr ""
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr ""
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr ""
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr ""
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr ""
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr ""
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr ""
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr ""
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr ""
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr ""
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr ""
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr ""
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr ""
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr ""
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr ""
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr ""
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr ""
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr ""
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr ""
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr ""
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr ""
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr ""
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr ""
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr ""
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr ""
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr ""
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr ""
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr ""
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr ""
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr ""
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr ""
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr ""
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr ""
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr ""
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr ""
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr ""
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr ""
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr ""
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr ""
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr ""
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr ""
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr ""
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr ""
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr ""
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr ""
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr ""
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr ""
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr ""
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr ""
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr ""
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr ""
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr ""
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr ""
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr ""
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr ""
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr ""
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr ""
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr ""
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr ""
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr ""
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr ""
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr ""
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr ""
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr ""
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr ""
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr ""
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr ""
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr ""
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr ""
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr ""
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr ""
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr ""
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr ""
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "Jänner"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr ""
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr ""
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr ""
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr ""
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr ""
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr ""
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr ""
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr ""
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr ""
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr ""
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr ""
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr ""
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr ""
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr ""
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr ""
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:733
+ #, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr ""
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr ""
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr ""
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr ""
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr ""
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr ""
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr ""
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr ""
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr ""
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr ""
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr ""
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr ""
diff -Nrc2 texinfo-4.12/po/en@boldquot.header texinfo-4.13/po/en@boldquot.header
*** texinfo-4.12/po/en@boldquot.header	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/en@boldquot.header	Tue Sep  3 08:51:40 2002
***************
*** 0 ****
--- 1,25 ----
+ # All this catalog "translates" are quotation characters.
+ # The msgids must be ASCII and therefore cannot contain real quotation
+ # characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+ # and double quote (0x22). These substitutes look strange; see
+ # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+ #
+ # This catalog translates grave accent (0x60) and apostrophe (0x27) to
+ # left single quotation mark (U+2018) and right single quotation mark (U+2019).
+ # It also translates pairs of apostrophe (0x27) to
+ # left single quotation mark (U+2018) and right single quotation mark (U+2019)
+ # and pairs of quotation mark (0x22) to
+ # left double quotation mark (U+201C) and right double quotation mark (U+201D).
+ #
+ # When output to an UTF-8 terminal, the quotation characters appear perfectly.
+ # When output to an ISO-8859-1 terminal, the single quotation marks are
+ # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+ # grave/acute accent (by libiconv), and the double quotation marks are
+ # transliterated to 0x22.
+ # When output to an ASCII terminal, the single quotation marks are
+ # transliterated to apostrophes, and the double quotation marks are
+ # transliterated to 0x22.
+ #
+ # This catalog furthermore displays the text between the quotation marks in
+ # bold face, assuming the VT100/XTerm escape sequences.
+ #
diff -Nrc2 texinfo-4.12/po/en@quot.header texinfo-4.13/po/en@quot.header
*** texinfo-4.12/po/en@quot.header	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/en@quot.header	Tue Sep  3 08:51:40 2002
***************
*** 0 ****
--- 1,22 ----
+ # All this catalog "translates" are quotation characters.
+ # The msgids must be ASCII and therefore cannot contain real quotation
+ # characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+ # and double quote (0x22). These substitutes look strange; see
+ # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+ #
+ # This catalog translates grave accent (0x60) and apostrophe (0x27) to
+ # left single quotation mark (U+2018) and right single quotation mark (U+2019).
+ # It also translates pairs of apostrophe (0x27) to
+ # left single quotation mark (U+2018) and right single quotation mark (U+2019)
+ # and pairs of quotation mark (0x22) to
+ # left double quotation mark (U+201C) and right double quotation mark (U+201D).
+ #
+ # When output to an UTF-8 terminal, the quotation characters appear perfectly.
+ # When output to an ISO-8859-1 terminal, the single quotation marks are
+ # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+ # grave/acute accent (by libiconv), and the double quotation marks are
+ # transliterated to 0x22.
+ # When output to an ASCII terminal, the single quotation marks are
+ # transliterated to apostrophes, and the double quotation marks are
+ # transliterated to 0x22.
+ #
Files texinfo-4.12/po/eo.gmo and texinfo-4.13/po/eo.gmo differ
diff -Nrc2 texinfo-4.12/po/eo.po texinfo-4.13/po/eo.po
*** texinfo-4.12/po/eo.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/eo.po	Thu Sep 18 11:38:31 2008
***************
*** 0 ****
--- 1,3474 ----
+ # Esperanto translations for GNU Texinfo-4.0.
+ # Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc.
+ # Sergio Pokrovskij <sergio.pokrovskij@gmail.com>, 1999-2006
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.7.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2006-11-25 23:35+0600\n"
+ "Last-Translator: Sergio Pokrovskij <sergio.pokrovskij@gmail.com>\n"
+ "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8-bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: opcio Â«%sÂ» estas ambigua\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: opcio â€ž--%sâ€Ÿ ne toleras argumenton\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: opcio â€ž%c%sâ€Ÿ ne toleras argumenton\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: opcio Â«%sÂ» bezonas argumenton\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: nekonata opcio â€ž--%sâ€Ÿ\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: nekonata opcio â€ž%c%sâ€Ÿ\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: misa opcio -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: nevalida opcio -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: opcio bezonas argumenton -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: opcio â€ž-W %sâ€Ÿ estas ambigua\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: opcio â€ž-W %sâ€Ÿ ne toleras argumenton\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr ""
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Unu signon antaÅ­en"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Unu signon malantaÅ­en"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Al la komenco de Ä‰i tiu linio"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Al la fino de Ä‰i tiu linio"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Unu vorton antaÅ­en"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Unu vorton malantaÅ­en"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Forigu la signon subkursoran"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Forigu la signon Äµus antaÅ­ la kursoro"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Rezigno aÅ­ eliro"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Akceptu (aÅ­ kompletigu) Ä‰i tiun linion"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "EnÅ�ovu la tujan signon senÅ�anÄ�e"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "EnÅ�ovu tiun signon"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "EnÅ�ovu TAB-signon"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Permutu la signojn Ä‰e la kursoro"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Engluu la enhavon de la lasta forviÅ�o"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "ViÅ�ringo malplenas"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Regluu antaÅ­an forviÅ�aÄµon"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "ForviÅ�u ekde la kursoro Ä�is la fino de la linio"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "ForviÅ�u ekde la kursoro Ä�is la komenco de la linio"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "ForviÅ�u la vorton tuj post la kursoro"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "ForviÅ�u la vorton Äµus antaÅ­ la kursoro"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Kompletigo malestas"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Nekompleta"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Eligu la eblajn kompletigojn"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Sola kompletigo"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Unu kompletigo:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d kompletigoj:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "EnÅ�ovu la kompletigon"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Kompletigoj estas serÄ‰ataj ..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Rulumu la fenestron de kompletigoj"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "La piednotoj ne eligeblas"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "Montru la piednotojn el Ä‰i tiu nodo en alia fenestro"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- Piednotoj ----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "SerÄ‰u Ä‰enon en la indekso por Ä‰i tiu dosiero"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Estas serÄ‰ataj indeksaj artikoloj ..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Nenia indekso trovita."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Indeksa artikolo: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Pasu al la sekva indeksa ero kongrua al la lasta komando â€ž\\[index-search]â€Ÿ"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Malestas antaÅ­a Ä‰eno por serÄ‰o en indekso."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Neniu indeksa artikolo."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "En la indekso ne estas %sartikoloj kun Â«%sÂ»."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "pli da "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "MALEBLAS VIDI ÄˆI TION"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "Trovita Â«%sÂ» en %s.  (â€ž\\[next-index-match]â€Ÿ serÄ‰os la sekvan.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "SerÄ‰o en la indeksoj de Â«%sÂ» ..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Â«%sÂ» malestas en la indeksoj de la disponeblaj Info-dosieroj"
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr "SerÄ‰u Ä‰enon en Ä‰iuj konataj indeksoj Info-dosieraj kaj faru menuon"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "SerÄ‰u en indekso informon pri: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: Nodoj kies indeksoj entenas Â«%sÂ»:\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Por ricevi pli da informoj uzu la opcion â€ž--helpâ€Ÿ.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "por Â«%sÂ» ne troviÄ�is indeksa artikolo\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr "  -b, --speech-friendly        estu afabla al la parolsinteziloj.\n"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Erarraportojn sendu al <bug-texinfo@nu.org>; Ä�eneralajn\n"
+ "demandojn kaj opiniojn al <help-texinfo@gnu.org>.\n"
+ "La hejmpaÄ�o de Texinfo: <http://www.gnu.org/software/texinfo/>.\n"
+ "Por la diskutoj pri Esperanto-traduko uzu la dissendoliston\n"
+ "<translation-team-eo@lists.sourceforge.net>."
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "La nodo Â«%sÂ» ne troveblas."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "La nodo â€ž(%s)%sâ€Ÿ ne troveblas."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Maleblas trovi fenestron!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "La muskursoro ne estas en Ä‰i-fenestra nodo!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Maleblas forigi la lastan fenestron"
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "En Ä‰i tiu nodo malestas menuo."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Ne estas piednotoj en Ä‰i tiu nodo."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Neniu referenco en Ä‰i tiu nodo."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Mankas ligilo Â«%sÂ» por Ä‰i tiu nodo."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Nekonata Info-komando â€ž%câ€Ÿ; tajpu â€ž?â€Ÿ por helpo."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "La terminaloj de tipo Â«%sÂ» ne estas sufiÄ‰e inteligentaj por Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Tiu paÄ�o jam estas la lasta en Ä‰i tiu nodo"
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Tio jam estas la unua paÄ�o de Ä‰i tiu nodo"
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Nur unu fenestro."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "La fenestro rezultos tro malgranda."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Mankas spaco por helpa fenestro, bv forigi iun fenestron."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Forlasu Ä‰i tiun helpon.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit-help]  Forlasu la tutan Info.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Voku la lernilon pri Info.\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[next-line]  Unu paÄ�on malantaÅ­en.\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  Unu paÄ�on antaÅ­en.\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Unu paÄ�on malantaÅ­en.\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Unu paÄ�on antaÅ­en.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Iru al la komenco de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Iru al la fino de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10[move-to-next-xref]  Saltu sur la sekvan hipertekstan ligilon en Ä‰i "
+ "tiu nodo.\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Iru laÅ­ la subkursora hiperteksta ligo.\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  Revenu al la Lasta nodo vizitita en Ä‰i tiu fenestro.\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr ""
+ "\\%-10[prev-node]  Iru al la ÄµusantaÅ­a (â€žPreviousâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[next-node]  Iru al la tujsekva (â€žNextâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr ""
+ "\\%-10[prev-node]  Iru al la ÄµusantaÅ­a (â€žPreviousâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Iru al la tujsekva (â€žNextâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Iru al la tujsupra (â€žUpâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[end-of-node]  Iru al la fino de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[end-of-node]  Iru al la fino de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  Elektu resp. la unuan ... la naÅ­an eron de Ä‰i-noda menuo.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  Elektu la lastan eron de Ä‰i-noda menuo.\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  Iru al la tajpota menuero.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ "\\%-10[xref-item]  Sekvu referencon  (legante la nomon de la referenco).\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  Vizitu nodon indikotan per la nomo.\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  SerÄ‰u sube indikotan signoÄ‰enon,\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr ""
+ "\\%-10[prev-node]  Iru al la ÄµusantaÅ­a (â€žPreviousâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ "  %-10s  SerÄ‰u indikotan signoÄ‰enon en la indeksaj artikoloj de Ä‰i tiu "
+ "Info-\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  SerÄ‰u aperon de donita signoÄ‰eno en la indeksartikoloj "
+ "de Ä‰i\n"
+ "      tiu info-dosiero kaj elektu la nodon referencatan de la unua trovita "
+ "artikolo.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "Äˆesigu la kurantan operacion"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "La Ä‰efaj komandoj info-fenestraj\n"
+ "*********************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Forlasu Ä‰i tiun helpon.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Forlasu la tutan Info.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Voku la lernilon pri Info.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Iru al la tujsekva (â€žNextâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Iru al la ÄµusantaÅ­a (â€žPreviousâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Iru al la tujsupra (â€žUpâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "\\%-10[menu-item]  Elektu menueron indikitan per nomo.\n"
+ "      Elekto de menuero kaÅ­zas transiron en alian nodon.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Sekvu reFerencon  (legante la nomon de la referenco).\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Revenu al la Lasta nodo vizitita en Ä‰i tiu fenestro.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Saltu sur la sekvan hipertekstan ligilon en Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Iru laÅ­ la subkursora hiperteksta ligo.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Iru al la Ä‰efkataloga nodo.  Ekvivalentas al â€žg (DIR)â€Ÿ.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Iru al la radika nodo.  Ekvivalentas al â€žg Topâ€Ÿ.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Por moviÄ�i ene de nodo:\n"
+ "------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Unu paÄ�on antaÅ­en.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Unu paÄ�on malantaÅ­en.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Iru al la komenco de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Iru al la fino de Ä‰i tiu nodo.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Unu paÄ�on antaÅ­en.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Unu paÄ�on malantaÅ­en.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Ceteraj komandoj:\n"
+ "-----------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Elektu resp. la unuan ... la naÅ­an eron de Ä‰i-noda menuo.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Elektu la lastan eron de Ä‰i-noda menuo.\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10[index-search]  SerÄ‰u aperon de donita signoÄ‰eno en la indeksartikoloj "
+ "de Ä‰i\n"
+ "      tiu info-dosiero kaj elektu la nodon referencatan de la unua trovita "
+ "artikolo.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10[goto-node]  Iru al nodo indikita per nomo.\n"
+ "      AnkaÅ­ la dosiernomon vi povas inkludi, kiel en (DOSIERO)NODO.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  SerÄ‰u sube aperon de donita signoÄ‰eno kaj\n"
+ "      vizitu la nodon en kiu troviÄ�os la sekva apero.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  SerÄ‰u sube aperon de donita signoÄ‰eno kaj\n"
+ "      vizitu la nodon en kiu troviÄ�os la sekva apero.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "La kuranta serÄ‰vojo estas:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Komandoj disponeblaj en Info-fenestroj:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Komandoj disponeblaj en la eÄ¥ozono:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "La sekvaj komandoj vokeblas nur per  %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "La sekvaj komandoj neniel vokeblas:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Eligu helpomesaÄ�on"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Vizitu la Info-nodon â€ž(info)Helpâ€Ÿ"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Eligu la informon pri KLAVO"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Priskribu klavon: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s estas nedifinita."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s estas nedifinita."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s estas ligita al %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Montru, kion tajpi por plenumi koncernan komandon"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Kie estas la komando: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "neniu klavo trovita por la komando Â«%sÂ»"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s vokeblas nur per %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s vokeblas per %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Malestas funkcio nomata Â«%sÂ»"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Por elekti aliajn nodojn:\n"
+ "-------------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "MalÄ�usta nombro da argumentoj"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "ne malfermiÄ�is eniga dosiero Â«%sÂ»"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "maleblas krei eligan dosieron Â«%sÂ»"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "eraro dum skribo en Â«%sÂ»"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "eraro dum fermo de eliga dosiero Â«%sÂ»"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "tro longa klavosekvenco"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "mankanta klavosekvenco"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "NUL-signo (\\000) malpermesitas"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "NUL-signo (^%c) malpermesitas"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "mankas agonomo"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "tro longa sekcio"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "nekonata ago Â«%sÂ»."
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "tro longa agonomo"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "kromaj signoj post la ago Â«%sÂ»"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "mankas nomo de variablo"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "mankas â€ž=â€Ÿ tuj post variablonomo"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "tro longa variablonomo"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "tro longa valoro"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "Â«%sÂ», linio %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Sintakso: %s [OPCIO]... [ENIG-DOSIERO]\n"
+ "\n"
+ "Opcioj:\n"
+ " --output=DOSIERO         Eligu en DOSIEROn (anatataÅ­ $HOME/.info).\n"
+ " --help                   Eligu Ä‰i tiun helpeton kaj finu.\n"
+ " --version                Eligu la version de la programo kaj finu.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "La misa infoklava dosiero Â«%sÂ» ignorita (tro mallonga)"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "La misa infoklava dosiero Â«%sÂ» ignorita (tro longa)"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Eraro dum lego de infoklava dosiero Â«%sÂ» (tro frue elÄ‰erpita)"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr "Misa infoklava dosiero Â«%sÂ» (magiaj nombroj); aktualigu Ä�in per infokey"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "Via infoklava dosiero Â«%sÂ» malaktualas; aktualigu Ä�in per infokey"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Misa infoklava dosiero Â«%sÂ» (misa sekcilongo) -- aktualigu Ä�in per infokey"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr "Misa infoklava dosiero Â«%sÂ» (misa sekcikodo); aktualigu Ä�in per infokey"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "Misaj datumoj en infoklava dosiero -- iuj klavasociaÄµoj ne validos"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ "Misaj datumoj en infoklava dosiero -- iuj valorizoj de variabloj ne validos"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Legu la nomon de Info-komando kaj priskribu Ä�in"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Priskribu komandon: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Legu en la eÄ¥ozono nomon de komando kaj Ä�in plenumu"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Maleblas plenumi eÄ¥ozonan (â€žecho-area-â€Ÿ) komandon Ä‰i tie."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "Nekonata komando:  %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Fiksu la alton de la prezentata fenestro"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Alto de la ekrano estu (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   La fontodosieroj tralaboritaj por fari Ä‰i tiun dosieron:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Maleblas prilabori la dosieron %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menu:\n"
+ "  (Dosiero)Nodo                     Linioj  Longo  Entenanta Dosiero\n"
+ "  --------------                    ------  -----  -----------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Jen la menuo de nodoj kiujn vi lastatempe vizitis.\n"
+ "Elektu iun el la menuo, aÅ­ uzu â€ž\\[history-node]â€Ÿ en alia fenestro.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "Faru fenestron entenantan menuon de Ä‰iuj nune vizititaj nodoj"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Elektu nodon jam vizititan en videbla fenestro"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Elektu vizititan nodon: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "La referenco malaperis! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Bonvenon al Info, versio %s.  Tajpu \\[get-help-window] por helpo, \\[menu-"
+ "item] por menuero."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "MalleviÄ�u al la sekva linio"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "LeviÄ�u al la antaÅ­a linio"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Iru al la fino de la linio"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Iru al la komenco de la linio"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Sekva"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Malestas pluaj referencoj en la dokumento."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Mankas ligilo â€žPrevâ€Ÿ por Ä‰i tiu nodo."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "En la dokumento mankas ligilo(j) â€žPrevâ€Ÿ aÅ­ â€žUpâ€Ÿ por tiu nodo."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Movu antaÅ­en aÅ­ malsupren en la strukturo de nodoj"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Movu malantaÅ­en aÅ­ supren en la strukturo de nodoj"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Rulumu antaÅ­en en Ä‰i tiu fenestro"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "Rulumu antaÅ­en en Ä‰i tiu fenestro kaj fiksu defaÅ­ltan fenestrograndon"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Rulumu antaÅ­en en Ä‰i tiu fenestro sed restu en la nodo"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Rulumu antaÅ­en en Ä‰i tiu fenestro restante en la nodo kaj\n"
+ "fiksu defaÅ­ltan fenestrograndon"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Rulumu malantaÅ­en en Ä‰i tiu fenestro"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr ""
+ "Rulumu malantaÅ­en en Ä‰i tiu fenestro kaj fiksu defaÅ­ltan fenestrograndon"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Rulumu malantaÅ­en en Ä‰i tiu fenestro sed restu en la nodo"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Rulumu malantaÅ­en en Ä‰i tiu fenestro restante en la nodo kaj\n"
+ "     fiksu defaÅ­ltan fenestrograndon"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Iru al la komenco de Ä‰i tiu nodo"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Iru al la fino de Ä‰i tiu nodo"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Linie rulumu suben"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Linie rulumu supren"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Duonekrane rulumu suben"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Duonekrane rulumu supren"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Elektu la sekvan fenestron"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Elektu la antaÅ­an fenestron"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Disfendu la kurantan fenestron"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Forigu la kurantan fenestron"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Maleblas forigi fenestron permanentan"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Forigu Ä‰iujn ceterajn fenestrojn"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Rulumu la alian fenestron"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Rulumu la alian fenestron malantaÅ­en"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "(Mal)pligrandigu Ä‰i tiun fenestron"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Dispartigu la disponeblan ekranspacon inter la videblaj fenestroj"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "BaskulÅ�altu la reÄ�imon de linifaldo en la kuranta fenestro"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Elektu la nodon sekvan (â€žNextâ€Ÿ)"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Elektu la nodon antaÅ­an (â€žPrevâ€Ÿ)"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Elektu la nodon supran (â€žUpâ€Ÿ)"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Elektu la lastan nodon en Ä‰i tiu dosiero"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Äˆi tiu fenestro ne havas pluajn nodojn"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Elektu la unuan nodon en Ä‰i tiu dosiero"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Elektu la lastan eron en la menuo de Ä‰i tiu nodo"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Elektu Ä‰i tiun menueron"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Äˆi tiu menuo ne havas %d erojn."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Menuero (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Menuero: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Sekvu referencon (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Sekvu referencon: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Legu menueron kaj elektu Ä�ian nodon"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "Legu piednoton aÅ­ referencon kaj elektu Ä�ian nodon"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Iru al la komenco de la menuo de Ä‰i tiu nodo"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr ""
+ "Vizitu samtempe kiom eble plej multe da menueroj (Ä‰iun en aparta fenestro)"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Legu nodnomon kaj elektu la nodon"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Iru al la nodo: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "En la nodo Â«%sÂ» malestas menuo."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Menuero Â«%sÂ» malestas en la nodo Â«%sÂ»."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Maleblas trovi nodon referencatan per Â«%sÂ» en Â«%sÂ»."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Legu liston da menuoj, komencante per dir kaj sekvante ilin"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Sekvu menuojn: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Trovu la nodon priskribantan programvokon"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Trovu la voknodon de [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Legu referencon al manlibra paÄ�o kaj Ä�in elektu"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Manlibran paÄ�on: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Elektu la nodon â€žTopâ€Ÿ en Ä‰i tiu dosiero"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Elektu la nodon â€ž(dir)â€Ÿ"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "ForviÅ�u la nodon (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Maleblas forigi la nodon Â«%sÂ»"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Maleblas forigi la lastan nodon"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Elektu nodon plej Äµuse elektitan"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "ForviÅ�u Ä‰i tiun nodon"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Legu la dosiernomon kaj Ä�in elektu"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Trovu la dosieron: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Maleblas trovi Â«%sÂ»."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Maleblas krei eligan dosieron Â«%sÂ»."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Prete."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Estas skribata la nodo Â«%sÂ» ..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "La enhavon de Ä‰i tiu nodo metu en la dukton per INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Ne malfermiÄ�is dukto al Â«%sÂ»."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Estas printata la nodo Â«%sÂ» ..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "ForviÅ�u ekde la kursoro Ä�is la komenco de la linio"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Estas serÄ‰ata la subdosiero Â«%sÂ» ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Legu Ä‰enon kaj serÄ‰u Ä�in usklecodistinge"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Legu Ä‰enon kaj Ä�in serÄ‰u"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Legu Ä‰enon kaj Ä�in serÄ‰u malantaÅ­en"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%spor signoÄ‰eno [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr " usklecodistinge"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "SerÄ‰u malantaÅ­en"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "SerÄ‰u"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "SerÄ‰o fiaskis."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Ripetu la Äµusan serÄ‰on samdirekte"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Malestas pli frua serÄ‰oÄ‰eno."
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Ripetu la Äµusan serÄ‰on alidirekte"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Interaktive serÄ‰u Ä‰enon tajpatan"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "Interaktiva serÄ‰o malantaÅ­en: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "Interaktiva serÄ‰o malantaÅ­en: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "Interaktiva serÄ‰o: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "Interaktiva serÄ‰o: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Fiasko "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Iru al la antaÅ­a referenco"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Iru al la sekva referenco"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Elektu la referencon aÅ­ la menueron de Ä‰i tiu linio"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Äˆesigu la kurantan operacion"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Finu"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Movu la kursoron sur indikitan linion de la fenestro"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "RefreÅ�igi la ekranon"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Eliru el Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Plenumi komandon asociitan kun Ä‰i tiu klavo minuskligita"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Komando nekonata (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "Â«%sÂ» ne validas"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "â€ž%sâ€Ÿ ne validas"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Aldonu tiun ciferon al la kuranta argumento nombra"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Komencu (aÅ­ 4-obligu) la kurantan argumenton nombran"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Uzata interne de \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Virtuala memoro elÄ‰erpita!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Äˆe â€žOnâ€Ÿ, la piednotoj aperas kaj malaperas aÅ­tomate"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "Äˆe â€žOnâ€Ÿ, kreo aÅ­ forigo de fenestro kaÅ­zas rearanÄ�on de la ceteraj"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Äˆe â€žOnâ€Ÿ, anstataÅ­ bleki fulmetu la ekranon"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Äˆe â€žOnâ€Ÿ, signalu pri eraro per bleko"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "Äˆe â€žOnâ€Ÿ, Info traktas makulaturon post malpako de kunpremitaj dosieroj"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "Äˆe â€žOnâ€Ÿ, la peco kongrua al la serÄ‰oÄ‰eno emfaziÄ�as"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Determinas la konduton de rulumo fine de nodo"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr ""
+ "La nombro de linioj rulumataj kiam la kursoro moviÄ�as ekster la fenestron"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Äˆe â€žOnâ€Ÿ, Info akceptas kaj surekranigas la okbitajn signojn"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Determinas la konduton de rulumo fine de nodo"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Klarigu la uzon de variablo"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Priskribu variablon: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Valorizu Info-variablon"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Valorizu variablon: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Variablo %s ricevu la valoron (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "%s ricevu la valoron (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Etikedoj malaktualiÄ�is ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), linioj ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d linioj --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d linioj --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Subdosiero: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: averto: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " por %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tPor ricevi kompletan liston da opcioj tajpu â€ž%s --helpâ€Ÿ.\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Uzmaniero: %s [OPCIO]... TEXINFO-DOSIERO...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Erarraportojn sendu al <bug-texinfo@nu.org>; Ä�eneralajn\n"
+ "demandojn kaj opiniojn al <help-texinfo@gnu.org>.\n"
+ "La hejmpaÄ�o de Texinfo: <http://www.gnu.org/software/texinfo/>.\n"
+ "Por la diskutoj pri Esperanto-traduko uzu la dissendoliston\n"
+ "<translation-team-eo@lists.sourceforge.net>."
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Äˆi tio estas la dosiero .../info/dir, entenanta la pinton de la \n"
+ "la hierarkio Info -- la Ä‰efkatalogan nodon nomatan (dir)Top.\n"
+ "Unuafoje lanÄ‰inte la programon Info, vi trafas en tiun nodon.\n"
+ "\n"
+ "%s\\tLa pinto de la INFO-hierarkio\n"
+ "\n"
+ "  Äˆi tie (en la Info-katalogo) estas menuo de la Ä‰efaj temoj.\n"
+ "  Tajpu â€žqâ€Ÿ por eliri; â€ž?â€Ÿ por eligi Ä‰iujn komandojn de Info;\n"
+ "  â€ždâ€Ÿ por reveni Ä‰i tien; â€žhâ€Ÿ vokas lernilon por komencantoj;\n"
+ "  â€žmEmacs<Return>â€Ÿ disponigas la manlibron pri Emakso; ktp.\n"
+ "\n"
+ "  Se vi legas per Emakso, alklaku menueron aÅ­ referencon per la 2-a\n"
+ "  musbutono por elekti la temon.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: ne povas legi (%s) kaj ne povas krei (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: malplena dosiero"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY sen para END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY sen para START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: dir-dosiero estas jam havigita: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Indiku la Info-dosieron solfoje.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "troa argumento komandlinia: Â«%sÂ»"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "Mankas enigdosiero; provu --help por pluaj informoj."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "Mankas dosiero Info-katalogo (dir); provu --help por pluaj informoj."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "Nenia informo por Info-katalogo troviÄ�is en Â«%sÂ»"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "TroviÄ�is nenia informo Info-kataloga pri Â«%sÂ»; nenio iÄ�is forigita"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "Argumentoj por @%s estas ignoritaj"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "januaro"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "februaro"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "marto"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "aprilo"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "majo"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "junio"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "julio"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "aÅ­gusto"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "septembro"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "oktobro"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "novembro"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "decembro"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "dubinda signo â€ž%câ€Ÿ en @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "argumento de @sc tuta majuskla, do neniel Å�anÄ�ita"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "â€ž{â€Ÿ atendata, sed â€ž%câ€Ÿ ricevita"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "dosierfino ene de pretaranÄ�ita bloko (verb block)"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "â€ž}â€Ÿ atendata, sed â€ž%câ€Ÿ ricevita"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "Â«@strong{Note...}Â» estigas falsan referencon en Info; alivortigu por eviti "
+ "tion"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s arkaikiÄ�is"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp bezonas ne Â«%sÂ» sed pozitivan argumenton nombran"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Misa argumento por %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "asis"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "none"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Misa argumento por @%s"
+ 
+ # set_firstparagraphindent
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "enÅ�ovu"
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Misa argumento por @%s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Mankas â€ž}â€Ÿ en la argumento de @def"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Nur en â€ž@%sâ€Ÿ-bloko uzeblas â€ž@%sâ€Ÿ."
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "La Â«%sÂ» antaÅ­ la eliga dosierindiko estas preterlasita"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "Â«%sÂ» estas preterlasita, Ä‰ar okazas skribado en la Ä‰efeligujon"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Eliga bufro ne malplenas"
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Vidu "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "â€ž%c%sâ€Ÿ bezonas argumenton â€ž{...}â€Ÿ, ne nuran Â«%sÂ»"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Mankas â€ž}â€Ÿ por la piednoto Â«%sÂ»"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Piednoto difinita sen patra nodo"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Maleblas fari piednoton al piednoto"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Piednotoj"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: Ne prosperis malfermi CSS-dosieron: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: CSS-dosiero finiÄ�is en komento"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[neatendite] mankas HTML-etikedo por elstakigo"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[neatendite] misa nodnomo: Â«%sÂ»"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Nekonata indekso Â«%sÂ»"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info ne povas trakti â€ž:â€Ÿ en indeksa artikolo Â«%sÂ»"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Jam estas indekso Â«%sÂ»"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Nekonata indekso Â«%sÂ» kajaÅ­ Â«%sÂ» en @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(linio )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(linio %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Nekonata indekso Â«%sÂ» en @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Artikolo por indekso Â«%sÂ» estas ekster iu ajn nodo"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(ekster iu ajn nodo)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "â€ž@itemizeâ€Ÿ ne rajtas havi argumenton â€ž@itemâ€Ÿ"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Misa tipo en la funkcio insertion_type_pname"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Troo en la stako de enumeracioj"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "mankas sekva enumeracia litero, rekomencite ekde %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s bezonas argumenton: la aranÄ�ilon por %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "La blokoj %cfloat ne rajtas ingiÄ�i unu en alia"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "â€ž@endâ€Ÿ atendis â€ž%sâ€Ÿ, sed renkontis â€ž%sâ€Ÿ"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Mankas para â€ž%cend %sâ€Ÿ"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s bezonas literon aÅ­ ciferon"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "dosierfino ene de pretaranÄ�ita bloko"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s estas sensenca ekster bloko â€ž@floatâ€Ÿ"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu jam antaÅ­ la unua @nodo; nodo â€žTopâ€Ÿ kreitas"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "eble via @top-nodo staru sub @ifnottex anstataÅ­ sub @ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu renkontita jam antaÅ­ la unua nodo; nodo â€žTopâ€Ÿ kreitas"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr "@%s sencas nur en bloko â€ž@titlepageâ€Ÿ aÅ­ â€ž@quotationâ€Ÿ"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s ne sencas ekster bloko â€ž@titlepageâ€Ÿ"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Mankas para â€ž%c%sâ€Ÿ"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "â€ž%c%sâ€Ÿ bezonas post si ion"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Misa argumento Â«%sÂ» por Â«%sÂ»; estos uzata Â«%sÂ»"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s estas sensenca ene de bloko â€ž@%sâ€Ÿ"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx estas sensenca ene de bloko Â«%sÂ»"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s renkontita ekster â€žinsertion blockâ€Ÿ"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s ne estas valida lingvokodo laÅ­ ISO 639"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "Nekonata nomo de kodosistemo: Â«%sÂ»"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "Pardonon, la kodo Â«%sÂ» ne estas disponebla"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "misa kodoprezento: Â«%sÂ»"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s atendas argumenton â€žiâ€Ÿ aÅ­ â€žjâ€Ÿ, ne â€ž%câ€Ÿ"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s akceptas nur solsignan argumenton â€žiâ€Ÿ aÅ­ â€žjâ€Ÿ"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "makroo Â«%sÂ» jam difinita antaÅ­e"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "Ä‰i tie estas la antaÅ­a difino de Â«%sÂ»"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "Dum makrogenerado: \\ sekvata de Â«%sÂ» (anstataÅ­ de nomo de parametro)"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Makroo Â«%sÂ» en la linio %d havas troan argumenton"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "makroo %cend ne troviÄ�is"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "misa @end %s por @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "Tro multe da eraroj!  Halt'.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: averto: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "Misloka %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Por pluaj detaloj tajpu â€ž%s --helpâ€Ÿ.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Uzmaniero: %s [OPCIO]... TEXINFO-DOSIERO...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Traduku fontan Texinfo-dokumenton en diversajn aliajn formojn, defaÅ­lte en\n"
+ "Info-dosierojn taÅ­gajn por dialoga legado per Emakso aÅ­ aÅ­tonoma GNU-Info.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, fuzzy, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Äœeneralaj opcioj:\n"
+ "      --error-limit=NOM\t    Äˆesu post NOM eraroj (defaÅ­lte %d)\n"
+ "      --force\t\t    Retenu eligaÄµon eÄ‰ post eraroj\n"
+ "      --help\t\t    Eligu Ä‰i tiun helpon kaj finu\n"
+ "      --no-validate\t    Ne kontrolu la internodajn referencojn\n"
+ "      --no-warn\t\t    Ne eligu avertojn (ne koncernas erarmesaÄ�ojn)\n"
+ "      --reference-limit=N   Avertu pri pli ol N referencoj (defaÅ­lte %d)\n"
+ "  -v, --verbose\t\t    Rakontu kio estas farata\n"
+ "      --version\t\t    Eligu la versio-informon kaj eliru\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, fuzzy, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Por elekti celformon (defaÅ­lte, Info):\n"
+ "      --docbook\t\t    Generu en DocBook anstataÅ­ en Info\n"
+ "      --html\t\t    Generu en HTML anstataÅ­ en Info\n"
+ "      --xml\t\t    Generu en XML (TexinfoML) anstataÅ­ en Info\n"
+ "      --plaintext\t    Generu platan tekston anstataÅ­ Infoon\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ #, fuzzy
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Äœeneralaj opcioj generadaj:\n"
+ "  -E, --macro-expand DOSIER Konservu makrotraktitan fontaÄµon en DOSIERo,\n"
+ "                              sen atenti Ä‰iajn @setfilename\n"
+ "      --no-headers          Generu platan tekston, sen dispartigi en "
+ "nodojn,\n"
+ "                              sen linioj Â«Node:Â» kaj menuoj; krome, eligu\n"
+ "                              en la Ä‰efeligujon manke de --output\n"
+ "      --no-split            Ne disfendu grandan Info- aÅ­ HTML-dosieron,\n"
+ "                              faru unu solan rezultan dosieron\n"
+ "      --number-sections     Generu kun la numeroj de Ä‰apitroj, sekcioj ktp\n"
+ "  -o, --output=DOSIER       Skribu en DOSIERon (DOSIERujon, por fenda HTML)\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, fuzzy, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Opcioj por Info kaj plata teksto:\n"
+ "      --enable-encoding\t      Eligu diakritaÄµojn kaj specialajn signojn\n"
+ "\t\t\t\tlaÅ­ @documentencoding\n"
+ "      --fill-column=N\t      Rompu Info-liniojn post N signoj (defaÅ­lte %d)\n"
+ "      --footnote-style=STILO  AranÄ�u la piednotojn laÅ­ STILO:\n"
+ "\t\t\t\tâ€žseparateâ€Ÿ -- loku ilin en apartan nodon;\n"
+ "\t\t\t\tâ€žendâ€Ÿ  -- loku ilin fine de la nodo en kiu\n"
+ "\t\t\t\t\t  ili estas difinitaj (la defaÅ­lto)\n"
+ "      --paragraph-indent=VAL  Alinea enÅ�ovo estu VAL spacetoj (defaÅ­lte %"
+ "d);\n"
+ "\t\t\t\tse VAL estas â€žnoneâ€Ÿ, ne enÅ�ovu;\n"
+ "\t\t\t\tse VAL estas â€žasisâ€Ÿ, obeu la fontan enÅ�ovon\n"
+ "      --split-size=N\t      Fendu en dosierojn po N (defaÅ­lte %d)\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ #, fuzzy
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "Opcioj por HTML:\n"
+ "      --css-include=DOSIERO   Inkludu DOSIEROn en <style>-etikedon de "
+ "HTMLaÄµo;\n"
+ "\t\t\t\tlegu la Ä‰efenigujon, se DOSIERO estas â€ž-â€Ÿ\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, fuzzy, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "Opcioj por XML kaj Docbook:\n"
+ "      --output-indent=VAL     DeÅ�ovu XML-elementojn je VAL spacetoj\n"
+ "\t\t\t\t(defaÅ­lte %d).  Se VAL estas 0, forigu\n"
+ "\t\t\t\tsensignifajn spacetojn\n"
+ "\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Opcioj pri la fontodosieroj:\n"
+ "  --commands-in-node-names    Permesu @-komandojn en nodnomoj\n"
+ "  -D VAR\t\t      Difinu la variablon VAR, kvazaÅ­ per @set\n"
+ "  -I UJO\t\t      AlkroÄ‰u dosierUJOn al la serÄ‰vojo de @include\n"
+ "  -P UJO\t\t      AntaÅ­metu dosierUJOn al la serÄ‰vojo de @include\n"
+ "  -U VAR\t\t      Maldifinu la variablon  VAR,  kiel per @clear\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "KondiÄ‰a traktado Ä‰e enigo:\n"
+ "  --ifdocbook\t   Traktu la pecojn sub @ifdocbook kaj @docbook eÄ‰ se\n"
+ "\t\t      ne Docbook estas generata\n"
+ "  --ifhtml\t   Traktu la pecojn sub @ifhtml kaj @html eÄ‰ se ne\n"
+ "\t\t      HTML estas generata\n"
+ "  --ifinfo\t   Traktu la pecojn sub @ifinfo eÄ‰ se ne Info generatas\n"
+ "  --ifplaintext\t   Traktu la pecojn sub @ifplaintext eÄ‰ se alia formo ol\n"
+ "\t\t      plata teksto estas generata\n"
+ "  --iftex\t   Traktu la pecojn sub @iftex kaj @tex; implicas --no-split\n"
+ "  --ifxml\t   Traktu la pecojn sub @ifxml kaj @xml\n"
+ "  --no-ifdocbook   Ne traktu la pecojn sub @ifdocbook kaj @docbook\n"
+ "  --no-ifhtml\t   Ne traktu la pecojn sub @ifhtml kaj @html\n"
+ "  --no-ifinfo\t   Ne traktu la pecojn sub @ifinfo\n"
+ "  --no-ifplaintext Ne traktu la pecojn sub @ifplaintext\n"
+ "  --no-iftex\t   Ne traktu la pecojn sub @iftex kaj @tex\n"
+ "  --no-ifxml\t   Ne traktu la pecojn sub @ifxml kaj @xml\n"
+ "\n"
+ "  Krome, Ä‰e la opcioj --no-ifFORMO, ja traktu la pecojn sub @ifnotFORMO.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "La defaÅ­lta konduto de la @if...-frazoj dependas je la celata formo:\n"
+ "se HTML estas generata, --ifhtml aktivas kaj la ceteraj, malaktivas;\n"
+ "Ä‰e Info-generado, --ifinfo aktivas kaj la ceteraj, malaktivas; \n"
+ "se plata teksto estas generata, --ifplaintext aktivas kaj la ceteraj,\n"
+ "malaktivas; Ä‰e XML-generado, --ifxml aktivas kaj la ceteraj, malaktivas.\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Ekzemploj:\n"
+ " makeinfo UM.texi\t\t      konservu Info laÅ­ @setfilename\n"
+ " makeinfo --html UM.texi\t      konservu HTML laÅ­ @setfilename\n"
+ " makeinfo --xml UM.texi\t\t      konservu Texinfo-XML laÅ­ @setfilename\n"
+ " makeinfo --docbook UM.texi\t      konservu DocBook-XML laÅ­ @setfilename\n"
+ " makeinfo --no-headers -o - UM.texi   sendu platan tekston en Ä‰efeligujon\n"
+ "\n"
+ " makeinfo --html --no-headers UM.texi konservu HTML sen la linioj Â«Node:Â»\n"
+ " makeinfo --number-sections UM.texi   konservu Infoon kun sekcinumeroj\n"
+ " makeinfo --no-split UM.texi\t      faru unu Info-dosieron, kiom ajn "
+ "grandan\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: Nekonata valoro de TEXINFO_OUTPUT_FORMAT: Â«%sÂ».  Ignorita.\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: La argumento %s devas esti nombro, ne Â«%sÂ».\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: Ne prosperis malfermi makrotraktadan eligdosieron Â«%sÂ»"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: Ripeta dosierindiko Â«%sÂ» por makrotraktada eligo estas ignorita.\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: Ne prosperis malfermi makrotraktadan eligdosieron Â«%sÂ»"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: Ripeta dosierindiko Â«%sÂ» por makrotraktada eligo estas ignorita.\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: Post â€ž--paragraph-indentâ€Ÿ estu nombro, â€žnoneâ€Ÿ aÅ­ â€žasisâ€Ÿ, ne â€ž%sâ€Ÿ.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr "%s: Post --footnote-style estu â€žseparateâ€Ÿ aÅ­ â€žendâ€Ÿ, ne â€ž%sâ€Ÿ.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: mankas dosiera argumento.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Misa uzo de plurlinia komando Â«%c%sÂ»."
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Â«%sÂ» atendatas"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Provo krei dosierujon Â«%sÂ» malsukcesis: %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Neniu Â«%sÂ» trovita en Â«%sÂ»"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr "%s: MakrotraktitaÄµo ne trafos en la Ä‰efeligujon Ä‰ar Info iras tien.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "%s-dosiero Â«%sÂ» estas generata el Â«%sÂ».\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: La eligdosiero Â«%sÂ» por makrotraktitaÄµo forigitas Ä‰ar estis eraroj;\n"
+ "uzu la opcion --force por Ä�in reteni.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: La eligdosiero Â«%sÂ» forigitas Ä‰ar estis eraroj;\n"
+ "uzu la opcion --force por Ä�in reteni.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: La eligdosiero Â«%sÂ» forigitas Ä‰ar estis eraroj;\n"
+ "uzu la opcion --force por Ä�in reteni.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Nekonata komando Â«%sÂ»."
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "Uzu vinkulojn por pasigi al â€ž@%sâ€Ÿ komandan argumenton"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s postulas vinkulojn"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Nepara â€ž}â€Ÿ"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "SEN_NOMO!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s sen â€ž}â€Ÿ"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "por HTML, la dosiero Â«%sÂ» en la komando @image estas nelegebla: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "Ne estas tia dosiero: Â«%sÂ»"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "bilddosiero Â«%sÂ» (por teksto) estas nelegebla: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "mankas dosiera argumento en la komando @image"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "Nedifinita flago: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Mankas Valoro Por Â«%sÂ»}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s bezonas nomon"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Pli frue ol la para @end %s renkontiÄ�is dosierfino"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "â€ž%.40s...â€Ÿ tro longas por malvolvo; malvolvo ne okazos"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Mankas â€ž}â€Ÿ en la Å�ablono de @multitable"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "la misa teksto Â«%sÂ» post @multitable estas ignorita"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Tro da kolumnoj en elemento de â€žmultitableâ€Ÿ (%d maksimume)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[neatendite] maleblas elekti %d-an kolumnon en â€žmultitableâ€Ÿ."
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "komando @tab ekster â€žmultitableâ€Ÿ; ignorita"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Multekolumna eligo el la lasta linio:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* kolumno %d-a: eligaÄµo = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Nodo Â«%sÂ» jam difinita en la linio %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Estas aranÄ�ata la nodo Â«%sÂ» ...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Nodo Â«%sÂ» bezonas subdividan komandon (ekz-e %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Mankas nodnomo por la komando â€ž%c%sâ€Ÿ"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Dosiernoma kolizio por la ankro Â«%sÂ» kaj la nodo Â«%sÂ»"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "Äˆi tiu @anchor-komando estas ignorita; la referencoj al Ä�i ne funkcios"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Alinomu la ankron aÅ­ uzu la opcion â€ž--no-splitâ€Ÿ"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Nekonvena signoÄ‰eno fine de disfendita HTML-dosiero Â«%sÂ»"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Dosiernoma kolizio por la ankroj Â«%sÂ» kaj Â«%sÂ»"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "Ignorita @anchor-komando; la referencoj al Ä�i ne funkcios"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr "%s referencas neekzistantan nodon Â«%sÂ» (Ä‰u eraro en sekciaranÄ�o?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "La kampo â€žNextâ€Ÿ de la nodo Â«%sÂ» ne estas reciprokita (Ä‰u misa sekciaranÄ�o?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Äˆi tiu nodo (Â«%sÂ») havas eraran kampon â€žPrevâ€Ÿ"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "La kampo â€žPrevâ€Ÿ de la nodo Â«%sÂ» ne estas reciprokita"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Äˆi tiu nodo (Â«%sÂ») havas eraran kampon â€žNextâ€Ÿ"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "Â«%sÂ» malhavas kampon â€žUpâ€Ÿ (Ä‰u eraro en sekciaranÄ�o?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr "En \"%sâ€ž mankas menuero por â€Ÿ%sâ€ž, malgraÅ­ ties ligilo â€ŸUpâ€žâ€Ÿ"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "la nodo Â«%sÂ» ne estas referencita"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "%s estas forigata\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Ne prosperis forigi dosierujon Â«%sÂ»: %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Aldono %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Interna eraro (search_sectioning) â€ž%sâ€Ÿ!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Interna eraro (search_sectioning) Â«%sÂ»!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s arkaikiÄ�is; uzu %c%s anstataÅ­e"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Jam estas nodo kun sekcio %ctop"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Jen estas la nodo %ctop"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop aperis pli frue ol %cnode; la defaÅ­lto uzota estas %s"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "dosiero Â«%sÂ» en la komando @image estas nelegebla: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "@headitem lastelemente en @multitable rezultigas nevalidajn Docbook-"
+ "dokumentojn"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "de"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "sur"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Neniu referenco en Ä‰i tiu nodo."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "eligu Ä‰i tiun helpon kaj eliru"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "sendu la eligaÄµon en DOSIEROn"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "eligu la uzatan version kaj eliru"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Uzmaniero: %s [OPCIO]... DOSIERO...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Generu ordigitan indekson por Ä‰iu TeX-a elig-DOSIERO.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "Kutime DOSIERO... estas â€žumo.%c%câ€Ÿ por dokumento â€žumo.texiâ€Ÿ.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Opcioj:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "fiasko Ä‰e remalfermo de %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: ne indeksa dosiero laÅ­ Texinfo"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Mankas paÄ�numero en %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "la artikolo %s sekvas artikolon kun kromnomo"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search]  SerÄ‰u sube aperon de donita signoÄ‰eno kaj\n"
+ #~ "      vizitu la nodon en kiu troviÄ�os la sekva apero.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10[goto-node]  Iru al nodo indikita per nomo.\n"
+ #~ "      AnkaÅ­ la dosiernomon vi povas inkludi, kiel en (DOSIERO)NODO.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr ""
+ #~ "\\%-10[next-node]  Iru al la tujsekva (â€žNextâ€Ÿ) nodo de Ä‰i tiu nodo.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  Iru al la Ä‰efkataloga nodo.  Ekvivalentas al \"g (DIR)"
+ #~ "\".\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[top-node]  Iru al la radika nodo.  Ekvivalentas al â€žg Topâ€Ÿ.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  SerÄ‰u supre aperon de donita signoÄ‰eno kaj\n"
+ #~ "      vizitu la nodon en kiu troviÄ�os la ÄµusantaÅ­a apero.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr "--- Uzu â€ž\\[history-node]â€Ÿ aÅ­ â€ž\\[kill-node]â€Ÿ por eliri ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr ""
+ #~ "\\%-10[move-to-prev-xref]  Saltu sur la sekvan hipertekstan ligilon en Ä‰i "
+ #~ "tiu nodo.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "Sintakso: %s [OPCIO]... [MENUERO...]\n"
+ #~ "\n"
+ #~ "Ebligas legi dokumentaron prezentitan en Info.\n"
+ #~ "\n"
+ #~ "Opcioj:\n"
+ #~ "    --apropos=TEMO\t    SerÄ‰u TEMOn en Ä‰iuj indeksoj de Ä‰iuj dokumentoj.\n"
+ #~ "-d, --directory=UJO\t    Aldonu la dosierUJOn al INFOPATH.\n"
+ #~ "    --dribble=DOSIERO\t    Notu la klavofrapojn de la uzanto en DOSIERO.\n"
+ #~ "-f, --file=DOSIERO\t    Vizitu la Info-DOSIEROn.\n"
+ #~ "-h, --help\t\t    Eligu Ä‰i tiun helpeton kaj finu.\n"
+ #~ "    --index-search=ÄˆENO\t    Vizitu nodon referencatan per indeksartikolo "
+ #~ "ÄˆENO.\n"
+ #~ "-n, --node=NODO\t\t    Komencu per NODO.\n"
+ #~ "-o, --output=DOSIERO\t    Eligu la elektitajn nodojn en DOSIEROn.\n"
+ #~ "-R, --raw-escapes\t    Eligu ANSI-eskapilojn Â«krudeÂ» (la defaÅ­lto)\n"
+ #~ "    --no-raw-escapes\t    Eligu ANSI-eskapilojn kiel tekstajn signojn\n"
+ #~ "    --restore=DOSIERO\t    Legu la klavofrapojn el DOSIERO.\n"
+ #~ "-O, --show-options, --usage Montru la nodon pri komandliniaj opcioj.\n"
+ #~ "%s  --subnodes\t\t    Rekursie eligu la menuerojn.\n"
+ #~ " -w, --where, --location    Eligu la fizikan situon de la info-dosiero\n"
+ #~ "    --vi-keys\t\t    Uzu vi-eskan kaj less-eskan klavararanÄ�on\n"
+ #~ "    --version\t\t    Eligu la version de la programo kaj finu.\n"
+ #~ "\n"
+ #~ "La unua neopcia argumento, se donita, estas la nomo de unue vizitenda\n"
+ #~ "menuero, serÄ‰ota en Ä‰iuj â€ždirâ€Ÿ-dosieroj troveblaj per INFOPATH.\n"
+ #~ "Se Ä�i mankas, Info kunfandas Ä‰iujn â€ždirâ€Ÿ-dosierojn kaj eligas la "
+ #~ "rezulton.\n"
+ #~ "La ceteraj argumentoj estas la nomoj de menueroj relative al la unue\n"
+ #~ "vizitenda nodo.\n"
+ #~ "\n"
+ #~ "Ekzemploj:\n"
+ #~ " info\t\t\t    eligu la menuon de la kataloga nodo\n"
+ #~ " info emacs\t\t    komencu per la nodo â€žemacsâ€Ÿ el la kataloga nodo\n"
+ #~ " info emacs buffers\t    komencu per la nodo â€žbuffersâ€Ÿ el Emaksa "
+ #~ "manlibro\n"
+ #~ " info --show-options emacs  komencu per la Emaksaj komandliniaj opcioj\n"
+ #~ " info -f ./um.info\t    eligu la dosieron ./um.info sen atenti â€ždirâ€Ÿ\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr "      Elekto de menuero kaÅ­zas transiron en alian nodon.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "      AnkaÅ­ la dosiernomon vi povas inkludi, kiel en (DOSIERO)NODO.\n"
+ 
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  SerÄ‰u indikotan signoÄ‰enon supre en la dosiero,\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "        kaj vizitu la nodon en kiu troviÄ�os la sekva apero.\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "Estas legata la nodo â€žNextâ€Ÿ ..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "La unua menuero estas elektata ..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "La nodo â€žNextâ€Ÿ estas elektata ..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "%d-foje supren, poste al la sekva (â€žNextâ€Ÿ)."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "Iro al la antaÅ­a nodo â€žPrevâ€Ÿ en Ä‰i tiu fenestro."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "LeviÄ�o al la nodo â€žUpâ€Ÿ en Ä‰i tiu fenestro."
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "Iro al la lasta menuero de la nodo â€žPrevâ€Ÿ."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "Funkcio"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "Makroo"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "Speciala Formo"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "Variablo"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "Uzula opcio"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "Ekzemplera variablo"
+ 
+ #~ msgid "Method"
+ #~ msgstr "Metodo"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "Sen titolo"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "Äˆi tiun dosieron %s generis Makeinfo-%s el %s.\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "Sekva:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "AntaÅ­a:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "Supre:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "Menuo"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "Referenco"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "AntaÅ­a"
+ 
+ #~ msgid "Up"
+ #~ msgstr "Supre"
+ 
+ #, fuzzy
+ #~ msgid "see "
+ #~ msgstr "Vidu "
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "Sintakso: %s [OPCIO]... [INFO-DOSIERO [DIR-DOSIERO]]\n"
+ #~ "\n"
+ #~ "Instalu aÅ­ forigu â€ždirâ€Ÿ-aÄµojn el INFO-DOSIERO en la Info-katalogo\n"
+ #~ "  DIR-DOSIERO.\n"
+ #~ "\n"
+ #~ "Opcioj:\n"
+ #~ "--delete          Forigu la ekzistantajn â€ždirâ€Ÿ-aÄµojn pri INFO-DOSIERO;\n"
+ #~ "                    ne enÅ�ovu iun ajn novan â€ždirâ€Ÿ-aÄµon.\n"
+ #~ "--dir-file=NOMO   Indiku la dosieran NOMOn de Info-katalogo.\n"
+ #~ "                    Samkiel uzi la argumenton DIR-DOSIERO.\n"
+ #~ "--entry=TEKSTO    EnÅ�ovu TEKSTOn kiel â€ždirâ€Ÿ-aÄµojn por Info-katalogo.\n"
+ #~ "                    TEKSTO havu la formon de menuera linio plus nul aÅ­\n"
+ #~ "                    pluraj linioj kromaj, komencantaj per blanka spaco.\n"
+ #~ "                    Se estas pli ol unu â€ždirâ€Ÿ-aÄµo, ili Ä‰iuj aldoniÄ�os.\n"
+ #~ "                    Se estas nenia â€ždirâ€Ÿ-aÄµo, aldoniÄ�os â€ždirâ€Ÿ-aÄµoj\n"
+ #~ "                    determinitaj el la informoj de la Info-dosiero.\n"
+ #~ "--help            Eligu la helpon.\n"
+ #~ "--info-file=DOSIERO Indiku Info-DOSIEROn instalendan en la Info-"
+ #~ "katalogo.\n"
+ #~ "                    Samkiel uzi la argumenton INFO-DOSIERO.\n"
+ #~ "--info-dir=UJO    Sinonimo por --dir-file=UJO/dir.\n"
+ #~ "--item=TEKSTO     Sinonimo por --entry=TEKSTO\n"
+ #~ "                    Äˆiu â€ždirâ€Ÿ-aÄµo fakte estas menuero.\n"
+ #~ "--quiet           Ne eligu avertojn.\n"
+ #~ "--remove          Sinonimo por --delete.\n"
+ #~ "--section=SEKC    Metu la â€ždirâ€Ÿ-aÄµojn en sekcion SEKC de la Info-"
+ #~ "katalogo.\n"
+ #~ "                    Se pli ol unu sekcio estas indikitaj, Ä‰iuj â€ždirâ€Ÿ-"
+ #~ "aÄµoj\n"
+ #~ "                    aldoniÄ�as en ilin Ä‰iujn.  Se neniu sekcio estas "
+ #~ "indikita,\n"
+ #~ "                    ili determiniÄ�os el la informoj de la Info-dosiero.\n"
+ #~ "--version         Eligu la nomon, la version de la programo kaj eliru.\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "menuero Â«%sÂ» jam ekzistas (por la dosiero Â«%sÂ»)"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr ""
+ #~ "\\%-10[menu-digit]  Elektu resp. la unuan ... la naÅ­an eron el Ä‰i-noda "
+ #~ "menuo.\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "la nodo Â«%sÂ» estis referencita %d fojojn"
+ 
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "NENIA garantio estas donita.  Vi rajtas pludoni ekzemplerojn de Ä‰i tiu\n"
+ #~ "programo laÅ­ la kondiÄ‰oj de la GNUa Äœenerala Publika Permesilo.\n"
+ #~ "Pluaj informoj troveblas en la dosieroj COPYING.\n"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "      dosiero kaj elektu la nodon referencatan de la unua trovita "
+ #~ "artikolo.\n"
+ 
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (c) %s Free Software Foundation, Inc.\n"
+ #~ "NENIA garantio estas donita.  Vi rajtas pludoni ekzemplerojn de Ä‰i tiu\n"
+ #~ "programo laÅ­ la kondiÄ‰oj de la GNUa Äœenerala Publika Permesilo.  Pluaj\n"
+ #~ "informoj troveblas en la dosieroj COPYING.\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg utilas nur en sol-argumentaj makrooj"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Enhavtabelo"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "Maldetala enhavtabelo"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "konservu la labordosierojn post la traktado"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "ne konservu la labordosierojn post la traktado (defaÅ­lto)"
Files texinfo-4.12/po/es.gmo and texinfo-4.13/po/es.gmo differ
diff -Nrc2 texinfo-4.12/po/es.po texinfo-4.13/po/es.po
*** texinfo-4.12/po/es.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/es.po	Thu Sep 18 11:38:31 2008
***************
*** 0 ****
--- 1,3424 ----
+ # Spanish translations for texinfo-4.12.94.
+ # Copyright (C) 2008 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the texinfo package.
+ #
+ # Benno Schulenberg <benno@vertaalt.nl>, 2007, 2008.
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo-4.12.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2008-09-04 23:50+0200\n"
+ "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
+ "Language-Team: Spanish <es@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Generator: KBabel 1.11.4\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr "Error de sistema desconocido"
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: la opciÃ³n `%s' es ambigua\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: la opciÃ³n `--%s' no permite argumento alguno\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: la opciÃ³n `%c%s' no permite argumento alguno\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: la opciÃ³n `%s' requiere un argumento\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: opciÃ³n desconocida `--%s'\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: opciÃ³n desconocida `%c%s'\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: opciÃ³n invÃ¡lida -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: opciÃ³n invÃ¡lida -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: la opciÃ³n requiere un argumento -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: la opciÃ³n `-W %s' es ambigua\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: la opciÃ³n `-W %s' no permite argumento alguno\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "no mÃ¡s memoria disponible"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Avanzar un carÃ¡cter"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Retroceder un carÃ¡cter"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Ir al principio de esta lÃ­nea"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Ir al final de esta lÃ­nea"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Avanzar una palabra"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Retroceder una palabra"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Borrar el carÃ¡cter bajo el cursor"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Borrar el cÃ¡racter anterior a la posiciÃ³n del cursor"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Cancelar o abortar la operaciÃ³n"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Aceptar (o forzar el completado de) esta lÃ­nea"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Insertar siguiente carÃ¡cter de forma literal"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Insertar este carÃ¡cter"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Insertar un carÃ¡cter de tabulaciÃ³n (TAB)"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr ""
+ "Intercambiar los caracteres anterior y posterior a la posiciÃ³n del cursor"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Pegar el Ãºltimo bloque de texto borrado"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "No existe informaciÃ³n de anteriores bloques borrados"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Pegar el Ãºltimo borrado en bloque"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Borrar hasta el final de la lÃ­nea"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Borrar hasta el principio de la lÃ­nea"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Borrar la palabra situada tras el cursor"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Borrar la palabra situada antes el cursor"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Nada que completar"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Incompleto"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Listar posibles entradas"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Ãšnica entrada"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Una entrada:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d entradas:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Insertar entrada"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Contruyendo lista de entradas..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Avanzar en la lista de entradas"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Las notas a pie de pÃ¡gina no pudieron ser mostradas"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr ""
+ "Mostar las notas de pie de pÃ¡gina asociadas con este nodo en otra ventana"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---- Notas a pie de pÃ¡gina ----"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Buscar un texto en el Ã­ndice de este fichero"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Buscando en el Ã­ndice..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "No se encontraron Ã­ndices."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Entrada del Ã­ndice: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Ir al siguiente elemento del Ã­ndice que concuerde desde la Ãºltima vez que "
+ "el\n"
+ "comando `\\[index-search]' fue ejecutado"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "No existe constancia previa de texto de bÃºsqueda."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "No existen entradas en el Ã­ndice."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "No existe constancia de entradas de `%sindex' que contengan `%s'."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "mÃ¡s "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "ESTO DEBERÃ�A ESTAR INVISIBLE"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "Encontrado `%s' en %s. (`\\[next-index-match]' tratarÃ¡ de encontrar la "
+ "siguiente.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Buscando Ã­ndices de `%s'..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "No existen ficheros Info que contengan la palabra `%s' en sus Ã­ndices."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Buscar un texto entre todos los ficheros Info disponibles y generar un menÃº"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Ã�ndice de apropos: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* MenÃº: Nodos cuyos Ã­ndices contienen `%s':\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Pruebe la opciÃ³n `--help' para obtener mÃ¡s informaciÃ³n.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "Licencia GPLv3+: GNU GPL versiÃ³n 3 o posterior <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "Esto es software libre: usted es libre de cambiarlo y redistribuirlo.\n"
+ "Dicho software es provisto SIN GARANTÃ�A, hasta donde permite la ley.\n"
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr ""
+ "No se encontraron entradas de Ã­ndice que concuerden con la palabra `%s'\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ "Uso: %s [OPCIÃ“N]... [Ã�TEM DE MENÃš...]\n"
+ "\n"
+ "Muestra documentaciÃ³n escrita en formato Info.\n"
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ "Opciones:\n"
+ "  -k, --apropos=TEXTO          buscar TEXTO en los Ã­ndices de todos los\n"
+ "                                 manuales disponibles.\n"
+ "  -d, --directory=RUTA         aÃ±adir RUTA a la variable INFOPATH.\n"
+ "      --dribble=FICHERO        cargar combinaciones de teclas definidas por\n"
+ "                                 el usuario desde el fichero FICHERO.\n"
+ "  -f, --file=FICHERO           el FICHERO Info que visitar."
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ "  -h, --help                   mostrar este mensaje de ayuda.\n"
+ "      --index-search=TEXTO     visitar el nodo al que el Ã­ndice TEXTO "
+ "apunta.\n"
+ "  -n, --node=NOMBRE_NODO       nodo que mostrar del primero fichero Info.\n"
+ "  -o, --output=FICHERO         guardar los nodos seleccionados en este "
+ "FICHERO."
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ "  -R, --raw-escapes            guardar escapes ANSI tal cual\n"
+ "                                 (comportamiento por defecto).\n"
+ "      --no-raw-escapes         mostrar escapes ANSI de forma \"literal\".\n"
+ "      --restore=FICHERO        leer combinaciones de teclas iniciales del\n"
+ "                                 fichero FICHERO.\n"
+ "  -O, --show-options, --usage  ir al nodo donde se describen las opciones "
+ "de\n"
+ "                                 lÃ­nea de comandos del programa al que el\n"
+ "                                 fichero Info en cuestiÃ³n se refiere."
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ "  -b, --speech-friendly        actÃºa acorde a como sintetizadores de voz\n"
+ "                                 esperan que programas que los usan lo hagan."
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ "      --subnodes               mostrar elementos del menÃº de forma "
+ "recursiva.\n"
+ "      --version                mostrar informaciÃ³n de esta versiÃ³n de "
+ "Info      --vi-keys                usar combinaciones de teclas al estilo de "
+ "los\n"
+ "                                 programas `vi' y `less'.\n"
+ "  -w, --where, --location      mostrar la ruta fÃ­sica del fichero Info en\n"
+ "                                 cuestiÃ³n."
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ "\n"
+ "El primer argumento que no sea una opciÃ³n de las arriba mencionadas, si\n"
+ "hubiera alguno, corresponderÃ­a a la entrada de menÃº que mostrar "
+ "inicialmente;\n"
+ "Ã©sta es buscada en todos los ficheros `directorio' de cada una de las rutas\n"
+ "mencionadas en la variable INFOPATH.  Si Ã©sta no estuviera presente, Info\n"
+ "recavarÃ­a informaciÃ³n `directorio' y mostrarÃ­a el resultado.  Cualquiera "
+ "que\n"
+ "fueran los argumentos restantes serÃ­an tratados como nombres de elementos "
+ "del\n"
+ "menÃº con respecto al nodo inicial visitado."
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ "\n"
+ "Por un resumen de las teclas, teclee <h> dentro de 'info'."
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ "\n"
+ "Ejemplos:\n"
+ "  info                       muestra el directorio\n"
+ "  info info                  muestra el manual general sobre Info-programas\n"
+ "  info info-stnd             muestra el manual de este programa, 'info'\n"
+ "  info emacs                 muestra el nodo `emacs' en base al directorio\n"
+ "  info emacs buffers         muestra el nodo `buffers' del fichero `emacs'\n"
+ "  info --show-options emacs  muestra la pÃ¡gina de opciones de lÃ­nea de\n"
+ "                               comandos para el programa `emacs'\n"
+ "  info --subnodes -o out.txt emacs    escribe el manual de `emacs' al "
+ "completo\n"
+ "                                        en el fichero `out.txt'\n"
+ "  info -f ./foo.info         muestra el fichero `./foo.info', sin buscar en\n"
+ "                               el directorio"
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Reporte cualquier tipo de problema que usted encuentra en el funcionamiento\n"
+ "de esta programa <bug-texinfo@gnu.org>.  Preguntas y discusiones sobre\n"
+ "Texinfo en general pueden ser dirigidas a <help-texinfo@gnu.org>.\n"
+ "El sitio web de Texinfo es: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Nodo `%s' no fue encontrado."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "El nodo `(%s)%s' no fue encontrado."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "No podrÃ­a encontrar una ventana!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "El cursor no parece estar sobre nodo alguno en esta ventana!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "No se puede eliminar la Ãºltima ventana."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "No existe un menÃº en este nodo."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "No hay notas de pie de pÃ¡gina en este nodo."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "No hay enlaces en este nodo."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Este nodo no contiene enlace alguno a `%s'."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr ""
+ "`%c' no es un comando conocido; pruebe usted con `?' para acceder a la ayuda."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "El tipo de terminal `%s' es incapaz de ejecutar Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Usted ya se encuentra en la Ãºltima pÃ¡gina de este nodo."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Usted ya se encuentra en la primera pÃ¡gina de este nodo."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Una Ãºnica ventana."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "La ventana resultante serÃ­a demasiado pequeÃ±a."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr ""
+ "No hay pantalla suficiente como para albergar la ventana de ayuda, elimine "
+ "por favor alguna otra que no estÃ© usando."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr "Comandos bÃ¡sicos para el manejo de Info\n"
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Salir de esta ventana de ayuda.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Finalizar esta aplicaciÃ³n informÃ¡tica.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Invocar el tutorial de uso de Info.\n"
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  Retroceder una lÃ­nea.\n"
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  Avanzar una lÃ­nea.\n"
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Retroceder una pÃ¡gina.\n"
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Avanzar una pÃ¡gina.\n"
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Ir al principio de este nodo.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Ir al final de este nodo.\n"
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "\\%-10[move-to-next-xref]  Ir al siguiente enlace de hiper-texto.\n"
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Seguir el enlace de hiper-texto bajo el "
+ "cursor.\n"
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "\\%-10[history-node]  Ir al Ãºltimo nodo presente en esta ventana.\n"
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[global-prev-node]  Ir al nodo anterior en este documento.\n"
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[global-next-node]  Ir al nodo siguiente en este documento.\n"
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Ir al nodo anterior en este nivel.\n"
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Ir al nodo siguiente en este nivel.\n"
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Ir al nodo un nivel mÃ¡s arriba.\n"
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[top-node]  Ir al nodo cumbre de este documento.\n"
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[dir-node]  Ir al nodo principal o `directorio'.\n"
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr ""
+ "1...9       Seleccionar el primer...noveno elemento del menÃº de este nodo.\n"
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr ""
+ "\\%-10[last-menu-item]  Seleccionar el Ãºltimo elemento en el menÃº de este "
+ "nodo.\n"
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr ""
+ "\\%-10[menu-item]  Seleccionar un elemento del menÃº especificando su "
+ "nombre.\n"
+ 
+ #: info/infodoc.c:73
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  Seguir un enlace, especificando su nombre.\n"
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "\\%-10[goto-node]  Ir al nodo deseado, especificando su nombre.\n"
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "\\%-10[search]  Buscar hacia adelante el texto especificado.\n"
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[search-previous]  Buscar hacia atrÃ¡s la prÃ³xima ocurrencia.\n"
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "\\%-10[search-next]  Buscar hacia adelante la prÃ³xima ocurrencia.\n"
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Buscar texto en el Ã­ndice de este fichero Info, y "
+ "selec-\n"
+ "              cionar el nodo al que el primer elemento encontrado se "
+ "refiere.\n"
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "\\%-10[abort-key]  Cancelar la operaciÃ³n en curso.\n"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Comandos bÃ¡sicos para el manejo de Info\n"
+ "***************************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Salir de esta pantalla de ayuda.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Salir de esta aplicaciÃ³n informÃ¡tica.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Invocar el tutorial de uso de Info.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Ir al nodo que consta como `siguiente' al actual.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Ir al nodo que consta como `anterior' al actual.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Ir al nodo que consta como `superior' al actual.\n"
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "  %-10s  Seleccionar un Ã­tem de menÃº por su nombre.\n"
+ "              Seleccionar un Ã­tem de menÃº causa que otro nodo sea "
+ "seleccionado.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Seguir un enlace.  Lee el nombre del mismo.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Ir al Ãºltimo nodo presente en esta ventana.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Ir al siguiente enlace de hiper-texto en este nodo.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Seguir el enlace de hiper-texto situado bajo el cursor.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr ""
+ "  %-10s  Ir al nodo principal o `directorio'.  Equivalente a `g (DIR)'.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Ir al nodo cumbre.  Equivalente a `g Top'.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "MoviÃ©ndose en torno a un nodo:\n"
+ "------------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Avanzar una pÃ¡gina.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Retroceder una pÃ¡gina.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Ir al principio de este nodo.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Ir al final de este nodo.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Avanzar una lÃ­nea.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Retroceder una lÃ­nea.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Otros comandos:\n"
+ "---------------\n"
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr ""
+ "  %-10s  Seleccionar el primer...noveno elemento del menÃº de este nodo.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Seleccionar el Ãºltimo elemento del menÃº de este nodo.\n"
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "  %-10s   Buscar texto en el Ã­ndice de este fichero Info, y seleccionar\n"
+ "              el nodo al que el primer elemento encontrado se refiere.\n"
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "  %-10s  Ir a un nodo especificado por su nombre.\n"
+ "              Puede incluir un nombre de fichero.  Por ejemplo:\n"
+ "              (NOMBRE-FICHERO)NOMBRE-NODO.\n"
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  Buscar hacia adelante el texto especificado,\n"
+ "              y seleccionar el nodo en que dicho texto es encontrado.\n"
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  Buscar hacia atrÃ¡s el texto especificado,\n"
+ "              y seleccionar el nodo en que dicho texto es encontrado.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "La lista de orden de bÃºsqueda de ficheros actual es:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Comandos disponibles en ventanas Info:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Comandos disponibles en la ventana de mensajes:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Los siguientes comandos sÃ³lo pueden ser especificados vÃ­a %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "Los siguientes comandos no pueden ser invocados en forma alguna:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Mostrar mensaje de ayuda"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Visitar nodo Info `(info)Help'"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Imprimir la documentaciÃ³n relacionada con la tecla KEY"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Describir la tecla: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s no ha sido definido."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s no ha sido definido."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s ha sido definido como %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Muestra quÃ© teclas pulsar para un comando en especÃ­fico"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Comando \"donde estÃ¡\": "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "`%s' no consta como tecla (o combinaciÃ³n de teclas) vÃ¡lida "
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s sÃ³lo puede ser invocado vÃ­a %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s puede ser invocado vÃ­a %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "No existe funciÃ³n alguna llamada `%s'"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Seleccionando otros nodos:\n"
+ "--------------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "nÃºmero de argumentos incorrecto"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "no se pudo abrir el fichero `%s'"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "no se pudo crear el fichero `%s'"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "error mientras se escribÃ­a al fichero `%s'"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "error cerrando fichero `%s'"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "secuencia de teclas demasiado larga"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "secuencia de teclas ausente"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "El caracter `NUL' (\\000), no estÃ¡ permitido aquÃ­"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "El carÃ¡cter nulo (^%c) no estÃ¡ permitido aquÃ­"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "nombre de acciÃ³n ausente"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "secciÃ³n demasiado larga"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "acciÃ³n desconocida `%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "nombre de acciÃ³n demasiado largo"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "extra caracteres tras nombre de acciÃ³n `%s'"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "nombre de variable ausente"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr ""
+ "ausencia del carÃ¡cter `=' inmediatamente despuÃ©s del nombre de la variable"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "nombre de variable demasiado largo"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "valor demasiado largo"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", lÃ­nea %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Uso: %s [OPCIÃ“N]... [FICHERO]\n"
+ "\n"
+ "Compila el fichero FICHERO produciendo un fichero infokey.  Lee el fichero\n"
+ "FICHERO (`$HOME/.infokey' por defecto) y escribe el fichero compilado como\n"
+ "`$HOME/.info' (por defecto).\n"
+ "\n"
+ "Opciones:\n"
+ "  --output FICHERO     escribir en fichero FICHERO, en vez de en $HOME/."
+ "info\n"
+ "  --help               mostrar este mensaje de ayuda.\n"
+ "  --version            mostrar informaciÃ³n de versiÃ³n de esta aplicaciÃ³n\n"
+ "                         informÃ¡tica.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Ignorando fichero infokey `%s' (es demasiado pequeÃ±o)"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Ignorando fichero infokey `%s' (es demasiado grande)"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Error leyendo fichero infokey `%s' - lectura cortada"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "El fichero infokey `%s' es invÃ¡lido (secuencia de identificaciÃ³n invÃ¡lida),\n"
+ "ejecute `infokey' sobre este para acutalizarlo"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ "Su fichero infokey `%s' es demasiado viejo,\n"
+ "ejecute `infokey' sobre este para actualizarlo"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "El fichero infokey `%s' es invÃ¡lido (longitud de secciÃ³n errÃ³nea),\n"
+ "ejecute `infokey' sobre este para actualizarlo"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "El fichero infokey `%s' es invÃ¡lido (nÃºmero de secciÃ³n invÃ¡lido),\n"
+ "ejecute `infokey' sobre este para actualizarlo"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ "Datos errÃ³neos en fichero infokey -- algunas combinaciones de teclas serÃ¡n "
+ "ignoradas"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ "Datos errÃ³neos en fichero infokey -- algunas variables que han sido "
+ "declaradas serÃ¡n ignoradas"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Leer el nombre de un comando de Info y describirlo"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Describir comando: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Leer el nombre de un comando desde el Ã¡rea de mensajes y ejecutarlo"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "No se puede ejecutar el comando `echo-area' aquÃ­."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "El comando `%s' no existe"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Establecer el ancho de la ventana"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Establecer el ancho a (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Los ficheros que han sido muestreados para construir este fichero "
+ "incluyen:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "El fichero `%s' no pudo ser manipulado.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* MenÃº:\n"
+ "  (Fichero)Nodo                    LÃ­neas  TamaÃ±o  Fichero Original\n"
+ "  -------------                    ------  ------  ----------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "El siguiente es el menÃº de nodos que usted ha visitado recientemente.\n"
+ "Seleccione uno, o use `\\[history-node]' en otra ventana.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr ""
+ "Crear una ventana que contenga un menÃº con los nodos visitados hasta ahora"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Seleccionar un nodo que ha sido previamente visitado"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Seleccionar nodo visitado: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "La referencia ha desaparecido! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr "Error en expresiÃ³n regular: %s"
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Este es Info, versiÃ³n %s. Teclee \\[get-help-window] para ayuda, \\[menu-"
+ "item] para seleccionar un Ã­tem de menÃº."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Ir a la siguiente lÃ­nea"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Ir a la lÃ­nea anterior"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Ir al final de la lÃ­nea"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Ir al principio de la lÃ­nea"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Siguiente"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "No hay mÃ¡s nodos en este documento."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "No hay nodo `Anterior' a este."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Este nodo no contiene `Anterior' ni `Superior'."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Moverse hacia adelante o abajo a travÃ©s de la estructura de nodos"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Moverse hacia atrÃ¡s o arriba a travÃ©s de la estructura de nodos"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Avanzar en esta ventana"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "Avanzar en esta ventana y establecer el ancho de la misma"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Avanzar en esta ventana sin salir del nodo actual"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Avanzar en esta ventana sin salir del nodo actual y establecer el ancho de "
+ "la misma"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Retroceder en esta ventana"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "Retroceder en esta ventana y establecer el ancho de la misma"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Retroceder en esta ventana sin salir del nodo actual"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Retroceder en esta ventana sin salir del nodo actual y establecer el ancho "
+ "de la misma"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Moverse al principio de este nodo"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Moverse al final de este nodo"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Avanzar por lÃ­neas"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Retroceder por lÃ­neas"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Avanzar media pantalla"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Retroceder media pantalla"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Seleccionar la siguiente ventana"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Seleccionar la ventana anterior"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Partir la ventana actual en dos mitades"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Eliminar la ventana actual"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "No se puede eliminar una ventana de tipo permanente"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Eliminar todas las otras ventanas"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Avanzar en la otra ventana"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Retroceder en la otra ventana"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Agrandar (o encoger) esta ventana"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr ""
+ "Dividir el espacio disponible de la pantalla entre las ventanas visibles"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Activar o desactivar el modo `envolver-lineas' en la ventana actual"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr "Activar o desactivar el uso de expresiones regulares durante bÃºsquedas"
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr "Usando expresiones regulares durante bÃºsquedas."
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr "Usando texto literal durante bÃºsquedas."
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Seleccionar el nodo siguiente"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Seleccionar el nodo anterior"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Seleccionar el nodo superior"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Seleccionar el Ãºltimo nodo en este fichero"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Esta ventana no dispone de nodos adicionales"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Seleccionar el primer nodo en este fichero"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Seleccionar el Ãºltimo elemento del menÃº de este nodo"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Seleccionar este elemento del menÃº"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "No hay %d elementos en este menÃº."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Elemento del menÃº (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Elemento del menÃº: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Seguir enlace (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Seguir enlace: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Leer un elemento del menÃº y seleccionar el nodo al que corresponda"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr ""
+ "Leer una nota de pie de pÃ¡gina o enlace y seleccionar el nodo resultante"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Ir al principio del menÃº de este nodo"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Visitar de una sÃ³la vez tantos elementos del menÃº como sea posible"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Leer un nombre de nodo y seleccionarlo"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Ir a nodo: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "El nodo `%s' no contiene menÃº alguno."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "No existe elemento de menÃº alguno llamado `%s' en el nodo `%s'."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "No se encontrÃ³ ningÃºn nodo referenciado por `%s' en `%s'."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr ""
+ "Leer una lista de menÃºs comenzando desde el directorio especificado y "
+ "seguirla"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Seguir menÃºs: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Encontrar el nodo que describe la invocaciÃ³n del programa en cuestiÃ³n"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Encontrar nodo de invocaciÃ³n de [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Leer una referencia a pÃ¡ginas del manual y seleccionarla"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "PÃ¡gina de manual a buscar: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Seleccionar el nodo `Top' en este fichero"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Seleccionar el nodo `(dir)'"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Terminar nodo (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "No se pudo terminar el nodo `%s'"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "No se puede terminar el Ãºltimo nodo"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Seleccionar el nodo usado mÃ¡s recientemente"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Terminar este nodo"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Leer el nombre de un fichero y seleccionarlo"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Fichero a buscar: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "No se encontrÃ³ `%s'."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "No se pudo crear el fichero `%s'."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Hecho."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Escribiendo nodo %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "Volcar el contenido de este nodo a travÃ©s de INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "No se pudo volcar sobre `%s'."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Imprimiendo nodo %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr "La bÃºsqueda continuÃ³ desde el final del documento."
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr "La bÃºsqueda continuÃ³ desde el principio del documento."
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Buscando sub-fichero %s ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Leer un texto y buscarlo (mayÃºsculas y minÃºsculas son significantes)"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Leer una cadena de texto y buscarla"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Leer una cadena de texto y buscarla hacia atrÃ¡s"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s%s [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr "Buscar (exp.reg.)"
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr " distinguiendo mayÃºs./minÃºs."
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr " hacia atrÃ¡s"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Buscar"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "La bÃºsqueda finalizÃ³ sin resultados."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Repetir la Ãºltima bÃºsqueda en la misma direcciÃ³n que la anterior"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "No existe constancia de bÃºsqueda anterior"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Repetir la Ãºltima bÃºsqueda en direcciÃ³n contraria"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Buscar de forma interactiva un texto segÃºn usted lo escribe"
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr "BÃºsqueda interactiva hacia atrÃ¡s (exp.reg.): "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "BÃºsqueda interactiva hacia atrÃ¡s: "
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr "BÃºsqueda interactiva (exp.reg.): "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "BÃºsqueda interactiva: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "FallÃ³ "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Ir al enlace anterior"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Ir a la prÃ³xima referencia externa"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Seleccionar la referencia o el elemento del menÃº situado en esta lÃ­nea"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Cancelar la operaciÃ³n en curso"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Cancelado"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Mover el cursor a una lÃ­nea especÃ­fica de la ventana"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Redibujar los contenidos de la pantalla"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Salir de esta aplicaciÃ³n informÃ¡tica"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr ""
+ "Ejecutar comando asociado a la versiÃ³n en minÃºsculas de esta tecla o "
+ "combinaciÃ³n de teclas"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Comando desconocido (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" es invÃ¡lido"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "`%s' is invÃ¡lido"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Sumar este dÃ­gito al argumento numÃ©rico actual"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Comenzar (o multiplicar por 4) el argumento numÃ©rico actual"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Internamente usado por \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: No mÃ¡s memoria virtual disponible!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr ""
+ "Cuando estÃ¡ activado, notas de pie de pÃ¡gina aparecen y desaparecen de forma "
+ "automÃ¡tica"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "Cuando estÃ¡ activado, crear o eliminar ventanas causa que las adyacentes "
+ "sean redimensionadas"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr ""
+ "Cuado estÃ¡ activado, causa que la pantalla parpadee en vez de usar efectos "
+ "sonoros"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Cuando esta activado, errores producen un efecto sonoro"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ "Cuando estÃ¡ activado, Info recolecta ficheros que tuvieron que ser "
+ "descomprimidos"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr ""
+ "Cuando estÃ¡ activado, la porciÃ³n de cadena de texto que concuerda con la "
+ "bÃºsqueda en curso es mostrada en color llamativo"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Controla que ocurre al intentar avanzar al final de un nodo"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr "Lo mismo que `scroll-behaviour'"
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr ""
+ "El nÃºmero de lÃ­neas que avanzar cuando el cursor se mueve fuera de la parte "
+ "visible de la ventana"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ "Controla si `scroll-behavior' afecta a comandos de movimiento del cursor"
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr ""
+ "Cuando estÃ¡ activado, Info acepta y muestra caracteres codificados como ISO "
+ "Latin"
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Controla que ocurre al intentar avanzar al final del Ãºltimo nodo"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Explicar el uso de una variable"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Describir variable: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Establecer el valor de una variable"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Establecer variable: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Dar a %s el valor (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Dar a %s el valor (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Etiquetas antiguas ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), lÃ­neas ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d lÃ­neas --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d lÃ­neas --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Sub-fichero: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: precauciÃ³n: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " para %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr ""
+ "\tPruebe `%s --help' para obtener una lista de las opciones soportadas.\n"
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Uso: %s [OPCIÃ“N]... [FICHERO_INFO [FICHERO_Ã�NDICE]]\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ "AÃ±ade al o elimina del fichero Ã­ndice FICHERO_Ã�NDICE las\n"
+ "entradas encontradas en el fichero FICHERO_INFO."
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ "Opciones:\n"
+ " --debug             reportar que se estÃ¡ haciendo\n"
+ " --delete            eliminar del fichero Ã­ndice FICHERO_Ã�NDICE las "
+ "entradas\n"
+ "                     existentes que referencian el fichero FICHERO_INFO\n"
+ " --description=TEXTO   la descripciÃ³n de la entrada es "
+ "TEXTO;                        usado junto con `--name' equivale al `--"
+ "entry'.\n"
+ " --dir-file=NOMBRE   el nombre del fichero Ã­ndice;\n"
+ "                     equivale al usar el argumento FICHERO_Ã�NDICE.\n"
+ " --dry-run           lo mismo que `--test'."
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ " --entry=TEXTO       insertar el texto TEXTO como entrada en el fichero "
+ "Ã­ndice\n"
+ "                     especificado; TEXTO debe cumplir con el formato usado "
+ "para\n"
+ "                     describir elementos de menu en Info, mÃ¡s cero o mÃ¡s "
+ "lÃ­neas\n"
+ "                     extra que comiencen con un espacio en blanco.  Si "
+ "usted\n"
+ "                     especifica mÃ¡s de un elemento, todos serÃ¡n aÃ±adidos; "
+ "en\n"
+ "                     caso contrario estos vendrÃ¡n determinados por los "
+ "datos\n"
+ "                     existentes en el fichero Info en cuestiÃ³n."
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ " --help              mostrar este texto de ayuda.\n"
+ " --info-dir=DIRECTORIO   alias para `--dir-file=DIRECTORIO/dir.\n"
+ " --info-file=FICHERO     el fichero Info que instalar en el directorio;\n"
+ "                         equivale al usar el argumento FICHERO_INFO.\n"
+ " --item=TEXTO        alias para `--entry=TEXTO'.\n"
+ " --keep-old          no sustituir a entradas, ni eliminar secciones vacÃ­as.\n"
+ " --menuentry=TEXTO   alias para `--name=TEXTO'.\n"
+ " --name=TEXTO        el nombre de la entrada es TEXTO;                      "
+ "usado junto con `--description' equivale al `--entry'.\n"
+ " --no-indent         no bien arreglar nuevas entradas en el FICHERO_Ã�NDICE.\n"
+ " --quiet             suprimir mensajes de precauciÃ³n."
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ " --regex=EXPREG    meter las entradas del fichero Info en cuestiÃ³n en todas "
+ "las\n"
+ "                     secciones que concuerda con la expresiÃ³n regular "
+ "EXPREG\n"
+ "                     (tratando mayÃºsculas y minÃºscualas por iguales)\n"
+ " --remove          alias para `--delete'.\n"
+ " --remove-exactly  eliminar el fichero Info en cuestiÃ³n sÃ³lo si su nombre\n"
+ "                     concuerda de forma exacta; ficheros con extensiones\n"
+ "                     `.info' y/o `.gz' no son ignorados.\n"
+ " --section=SECC    emplazar las entradas existentes en el fichero Info al "
+ "que\n"
+ "                     se hace referencia en la secciÃ³n SECC del fichero "
+ "Ã­ndice.\n"
+ "                     Si usted especifica mÃ¡s de una secciÃ³n, todas las "
+ "entradas\n"
+ "                     serÃ¡n aÃ±adidas en cada una de las secciones. Si "
+ "ninguna,\n"
+ "                     Ã©stas serÃ¡n determinadas a partir de la informaciÃ³n\n"
+ "                     contenida en el fichero Info en cuestiÃ³n.\n"
+ " --section EXPREG SECC  equivale a `--regex=EXPREG --section=SECC --add-"
+ "once'."
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ " --silent          alias para `--quiet'.\n"
+ " --test            suprimir la actualizaciÃ³n del fichero Ã­ndice "
+ "FICHERO_Ã�NDICE.\n"
+ " --version         mostrar informaciÃ³n sobre la versiÃ³n de esta programa."
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "Reporte cualquier tipo de problema que usted encuentra en el funcionamiento\n"
+ "de esta programa <bug-texinfo@gnu.org>.  Preguntas y discusiones sobre\n"
+ "Texinfo en general pueden ser dirigidas a <help-texinfo@gnu.org>.\n"
+ "El sitio web de Texinfo es: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Este es el fichero .../info/dir, el cual contiene el nodo situado\n"
+ "en la cÃºspide de la jerarquÃ­a Info, lo cual se llama (dir)Top.\n"
+ "La primera vez que usted invoque Info comenzarÃ¡ desde este punto.\n"
+ "\n"
+ "%s\tEsta es la cÃºspide de le jerarquÃ­a INFO\n"
+ "\n"
+ "  Este (el Directorio principal) proporciona un menÃº que contiene las "
+ "entradas\n"
+ "  mas usuales. Tecleando \"q\" saldrÃ¡ de esta aplicaciÃ³n informÃ¡tica, "
+ "tecleando\n"
+ "  \"?\" prodrÃ¡ producir un listado de todos los comandos disponibles a modo "
+ "de\n"
+ "  referencia; tecleando \"d\" volverÃ¡ a esta pantalla, \"h\" provee de "
+ "informaciÃ³n\n"
+ "  a usuarios/as primerizos/as; presionando \"m\" y escribiendo la palabra "
+ "\"Emacs\"\n"
+ "  podrÃ¡ visitar el manual de Emacs, etc.\n"
+ "\n"
+ "  TambiÃ©n puede usted usar Info desde Emacs. En la versiÃ³n de Emacs con\n"
+ "  ventanas puede hacer click con el botÃ³n izquierdo del ratÃ³n sobre "
+ "elementos\n"
+ "  de menÃº o sobre enlaces para seleccionarlos o seguirlos.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: No se pudo leer (%s) y no se pudo crear (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: fichero vacÃ­o"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "`START-INFO-DIR-ENTRY' presente, pero sin pareja (END-INFO-DIR-ENTRY)"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "`END-INFO-DIR-ENTRY' presente, pero sin pareja (START-INFO-DIR-ENTRY)"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: ya contiene un fichero Ã­ndice: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: SÃ³lo es necesario especificar el fichero Info una vez.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr "ExpresiÃ³n regular extra especificada, serÃ¡ ignorada `%s'"
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr "Error en la expresiÃ³n regular `%s': %s"
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "Demasiados argumentos en la lÃ­nea de comandos `%s'"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ "No se ha especificado fichero de entrada;\n"
+ "pruebe usted la opciÃ³n `--help' para obetener mÃ¡s informaciÃ³n."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ "Fichero Ã­ndice no especificado;\n"
+ "pruebe usted la opciÃ³n `--help' para obtener mÃ¡s informaciÃ³n."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "No existe constancia de entrada `dir' en `%s'"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "No se encontraron entradas para `%s'; nada serÃ¡ borrado"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr "error `ferror' en descriptor de salida estÃ¡ndar (stdout)\n"
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr "error `fflush' en descriptor de salida estÃ¡ndar (stdout)\n"
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "argumentos para @%s serÃ¡n ignorados"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "Enero"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "Febrero"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "Marzo"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "Abril"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "Mayo"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "Junio"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "Julio"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "Agosto"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "Septiembre"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "Octubre"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "Noviembre"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "Diciembre"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "carÃ¡cter extraÃ±o %c en @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr ""
+ "Todos los argumentos dados a la primitiva `@sc' estÃ¡n en mayÃºsculas. No "
+ "tendrÃ¡n efecto alguno"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr ""
+ "a continuaciÃ³n se esperaba ver el sÃ­mbolo `{', pero el carÃ¡cter `%c' ha sido "
+ "leÃ­do en su lugar"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "fin de fichero dentro de bloque `verb'"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr ""
+ "a continuaciÃ³n se esperaba ver el sÃ­mbolo `}', pero el carÃ¡cter `%c' ha sido "
+ "leÃ­do en su lugar"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@strong{Note...} produce una referencia no deseada en Info; reescrÃ­balo para "
+ "que esto no ocurra"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s es una sintaxis ya obsoleta"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp requiere un argumento numÃ©rico positivo, no `%s'"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Argumento errÃ³neo para %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "asis"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "none"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Argumento errÃ³neo para @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "insert"
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Argumento errÃ³neo para @%s: %s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr "Se esperaba leer @%s \"on\" u \"off\", no `%s'"
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr "SÃ³lo @%s 10 or 11 estÃ¡ soportado, no `%s'"
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "La construcciÃ³n `@def arg' necesita de un sÃ­mbolo `}' al final"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Debe estar bajo la influencia del entorno `@%s' para poder usar `@%s'"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "se ha omitido `%s' antes del nombre de fichero de salida"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr ""
+ "se ha omitido `%s', ya que estamos escribiendo al descriptor de salida "
+ "estÃ¡ndar (stdout)"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "El acumulador (buffer) de salida no estÃ¡ vacÃ­o."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr "El tipo de construccion `float' `%s' no ha sido usado previamente"
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "VÃ©ase "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`%c%s' necesita de un argumento `{...}', y no simplemente de `%s'"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "No se han cerrado llaves para la nota de pie de pÃ¡gina `%s'"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Nota de pie de pÃ¡gina definida sin nodo al que referirse"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "No estÃ¡ permitido anidar notas a pie de pÃ¡gina en sÃ­ mismas"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Notas a pie de pÃ¡gina"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: no se pudo abrir --css-file: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: --css-file finaliza con un comentario"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[inesperado] no etiqueta `html' que procesar"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[inesperado] el nombre de nodo `%s' es invÃ¡lido"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Ã�ndice desconocido `%s'"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info no puede manejar `:' en la entrada de Ã­ndice `%s'"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Ya existe un Ã­ndice llamado `%s'"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Ã�ndice desconocido `%s' y/o `%s' en `@synindex'"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(lÃ­nea )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(lÃ­nea %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Ã�ndice desconocido `%s' en `@printindex'"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "La entrada para el Ã­ndice `%s' se encuentra fuera de nodo alguno"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(fuera de nodo alguno)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "el uso de `@item' no estÃ¡ permitido como argumento de `@itemize'"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Tipo errÃ³neo en `insertion_type_pname'"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Desbordamiento de la pila por enumeraciÃ³n"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr ""
+ "desbordamiento por tamaÃ±o de palabra, comenzando de nuevo en el carÃ¡cter %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "`%s' requiere un argumento: el procesador de formato para %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "entornos `%cfloat' no pueden ser anidados"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "Se esperaba ver `@end' `%s', pero se ha leÃ­do `%s'"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "No hay constancia de final de bloque `%cend %s'"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s require una letra o nÃºmero"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "fin de fichero sobre bloque de texto literal"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s carece de sentido si se da fuera de entornos como `@float'"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "`@menu' ha sido leÃ­do antes que `@node', se crearÃ¡ un nodo `Top'"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "Â¿QuizÃ¡s su nodo `@top' deberÃ­a quedar bajo la influencia de un bloque "
+ "`@ifnottex' en vez de la de un bloque `@ifinfo'?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr ""
+ "`@detailmenu' ha sido leÃ­do antes que nodo alguno, se crearÃ¡ un nodo `Top'"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ "`@%s' carece de sentido fuera de influencias de entornos como `@titlepage' o "
+ "`@quotation'"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr ""
+ "@%s carece de sentido fuera de influencias de entornos como `@titlepage'"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Final de bloque inexistente (`%c%s')"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "`%c%s' necesita de algÃºn argumento tras su declaraciÃ³n"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "`%s' no es un argumento correcto para `@%s', se usarÃ¡ `%s'"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "`@%s' carece de sentido bajo la influencia de un bloque `@%s'"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "`@itemx' carece de sentido bajo la influencia de un bloque `%s'"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "`%c%s' ha sido leÃ­do fuera de un bloque de inserciÃ³n"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr "No existe constancia de territorio por defecto para el lenguaje `%s'"
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr ""
+ "`%s' no es vÃ¡lido como cÃ³digo de lenguaje alguno que cumpla con ISO 639"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "`%s' no se corresponde con ningÃºn tipo de codificaciÃ³n conocido"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "lo sentimos, el tipo de codificaciÃ³n `%s' no estÃ¡ soportado"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "carÃ¡cter codificado no vÃ¡lido `%s'"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr ""
+ "el uso de `%c%s' presupone como siguientes argumentos `i' o `j', no `%c'"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "el uso `%c%s' presupone como argumentos los caracteres `i' o `j'"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "el macro `%s' ya ha sido definido en este documento"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "la definiciÃ³n previa de `%s' se encuentra aquÃ­"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ "\\ fue leÃ­do durante la expansiÃ³n del macro seguido de `%s' en vez de por un "
+ "parÃ¡metro vÃ¡lido"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "La llamada al macro `%s' en la lÃ­nea %d contiene demasiados argumentos"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "no se encontrÃ³ declaraciÃ³n de final de macro (`%cend')"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ "`@allow-recursion' consta como una primitiva obsoleta; use por favor "
+ "`@rmacro' en su lugar"
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ "`@quote-arg' consta como una primitiva obsoleta; sus argumentos son "
+ "entrecomillados por defecto"
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "se esperaba leer `@end %s' pero se ha leÃ­do `@%s'"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr ""
+ "Demasiados errores!  Se da por finalizado el proceso de este fichero aquÃ­.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: precauciÃ³n: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "CarÃ¡cter `%c' fuera de lugar"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Pruebe `%s --help' para obtener mÃ¡s informaciÃ³n.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Uso: %s [OPCIÃ“N]... FICHERO-TEXINFO...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Convierte ficheros escritos en Texinfo a varios otros formatos, por defecto "
+ "a\n"
+ "formato Info, que puede ser leÃ­do con Emacs o el visor de ficheros Info de "
+ "GNU.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Opciones generales;\n"
+ "      --error-limit=NÃšMERO    dar por finalizado el proceso del fichero en\n"
+ "                                cuestiÃ³n tras un nÃºmero de errors mayor o "
+ "igual\n"
+ "                                a NÃšMERO (por defecto %d).\n"
+ "      --document-language=TEXTO\n"
+ "                              locale a usar con el fin de traducir "
+ "primitivas\n"
+ "                                Texinfo para el documento final (C por "
+ "defecto).\n"
+ "      --force                 generar documento de salida incluso si se\n"
+ "                                encontraron errores durante el proceso.\n"
+ "      --help                  mostrar este mensaje de ayuda.\n"
+ "      --no-validate           suprimir la validaciÃ³n de enlaces.\n"
+ "      --no-warn               suprimir mensajes de precauciÃ³n (pero no "
+ "errores).\n"
+ "  -v, --verbose               explicar que se estÃ¡ haciendo durante el "
+ "proceso\n"
+ "                                del documento en cuestiÃ³n.\n"
+ "      --version               mostrar informaciÃ³n sobre la versiÃ³n de esta\n"
+ "                                aplicaciÃ³n informÃ¡tica.\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "SelecciÃ³n de formato de salida (por defecto se producen ficheros Info):\n"
+ "      --docbook               generar un fichero en formato Docbook XML.\n"
+ "      --html                  generar un fichero en formato HTML.\n"
+ "      --xml                   generar un fichero en formato Texinfo XML.\n"
+ "      --plaintext             generar un fichero en texto plano.\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Opciones generales de salida:\n"
+ "  -E, --macro-expand=FICHERO  escribir un fichero FICHERO en el que "
+ "cualquier\n"
+ "                                macro presente es expandido (primitivas\n"
+ "                                `@setfilename' serÃ¡n ignoradas).\n"
+ "      --no-headers            suprimir separadores de nodos, lÃ­neas de "
+ "`Nodo:'\n"
+ "                                y menÃºs del fichero Info (produciendo asÃ­\n"
+ "                                texto plano) o de HTML (produciendo asÃ­ un\n"
+ "                                documento menor); tambiÃ©n se escribe por\n"
+ "                                defecto a la salida estÃ¡ndar (stdout).\n"
+ "      --no-split              no generar un documento Info o HTML multi-"
+ "pÃ¡gina;\n"
+ "                                generar un sÃ³lo documento que ocurre en una\n"
+ "                                sÃ³la pÃ¡gina.\n"
+ "      --number-sections       numerar capÃ­tulos y secciones.\n"
+ "  -o, --output=FICHERO        escribir en fichero FICHERO (se toma como "
+ "nombre\n"
+ "                               de directorio si el formato de salida es "
+ "HTML\n"
+ "                               en modo multi-documento/multi-pÃ¡gina).\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Opciones para Info y texto plano:\n"
+ "      --disable-encoding      no generar acentos y caracteres especiales en "
+ "el\n"
+ "                                documento de salida, ignorar la primitiva\n"
+ "                                `@documentencoding' si estÃ¡ presente.\n"
+ "      --enable-encoding       contradecir `--disable-encoding' (por "
+ "defecto).\n"
+ "      --fill-column=NÃšMERO    no generar lÃ­neas que contengan un nÃºmero de\n"
+ "                                caracteres mayor que NÃšMERO (por defecto %"
+ "d).\n"
+ "      --footnote-style=ESTILO generar notas a pie de pÃ¡gina de acuerdo a "
+ "ESTILO:\n"
+ "                                `separate' para emplazarlas en un nodo "
+ "propio;\n"
+ "                                `end' para emplazarlas al final de cada "
+ "nodo\n"
+ "                                en el que son definidas (este es el estilo "
+ "por\n"
+ "                                defecto).\n"
+ "      --paragraph-indent=NÃšMERO\n"
+ "                              proveer a pÃ¡rrafos con un mÃ¡rgen dado por el\n"
+ "                                nÃºmero de espacios NÃšMERO (por defecto %d). "
+ "Si\n"
+ "                                NÃšMERO fuese `none' no se insertarÃ¡n "
+ "mÃ¡rgenes;\n"
+ "                                si NÃšMERO es `asis', se preservarÃ¡n los "
+ "mÃ¡rgenes\n"
+ "                                tal cual son leÃ­dos desde el fichero.\n"
+ "      --split-size=NÃšMERO     generar un documento multi-pÃ¡gina, en el que "
+ "cada\n"
+ "                                una es de un tamaÃ±o NÃšMERO (por defecto %"
+ "d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "Opciones para HTML:\n"
+ "      --css-include=FICHERO   incluir FICHERO dentro de directivas <style>;\n"
+ "                                leer entrada estÃ¡ndar si FICHERO es -.\n"
+ "      --css-ref=URL           generar referencias a una hoja de estilo CSS.\n"
+ "      --internal-links=FICHERO\n"
+ "                              producir lista de enlaces internos en "
+ "FICHERO.\n"
+ "      --transliterate-file-names\n"
+ "                              producir nombres de ficheros en formato "
+ "ASCII.\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "OpciÃ³n para XML y Docbook:\n"
+ "      --output-indent=NÃšMERO  dar este nÃºmero de espacios de margen (por\n"
+ "                                defecto %d) a elementos XML; si NÃšMERO es "
+ "0,\n"
+ "                                espacios que pueden ser ignorados sin "
+ "alterar\n"
+ "                                el significado del documento lo serÃ¡n.\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Opciones para ficheros de entrada:\n"
+ "      --commands-in-node-names  permitir comandos `@' en nombres de nodo.\n"
+ "  -D VARIABLE                   definir la variable VARIABLE, tal y como si "
+ "asÃ­\n"
+ "                                  hubiera sido especificado en el propio\n"
+ "                                  documento mediante el uso de `@set "
+ "VARIABLE'.\n"
+ "  -I DIRECTORIO                 aÃ±adir el directorio DIRECTORIO al final de "
+ "la\n"
+ "                                  lista de bÃºsqueda para primitivas "
+ "`@include'.\n"
+ "  -P DIRECTORIO                 aÃ±adir el directorio DIRECTORIO al "
+ "principio\n"
+ "                                  de la lista de bÃºsqueda para primitivas\n"
+ "                                  `@include'.\n"
+ "  -U VARIABLE                   definir como nula la variable VARIABLE, tal "
+ "y\n"
+ "                                  como si asÃ­ hubiera sido especificado en "
+ "el\n"
+ "                                  propio documento mediante el uso de\n"
+ "                                  `@clear VARIABLE'.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Opciones para el proceso condicional de ficheros de entrada:\n"
+ "  --ifdocbook       procesar primitivas `@ifdocbook' y `@docbook' incluso "
+ "cuando\n"
+ "                      el formato de salida no es Docbook.\n"
+ "  --ifhtml          procesar primitivas `@ifhtml' y `@html' incluso cuando "
+ "el\n"
+ "                      formato de salida no es HTML.\n"
+ "  --ifinfo          procesar primitivas `@ifinfo' incluso cuando el formato "
+ "de\n"
+ "                      salida no es Info.\n"
+ "  --ifplaintext     procesar primitivas `@ifplaintext' incluso cuando el "
+ "formato\n"
+ "                      de salida no es texto plano.\n"
+ "  --iftex           procesar primitivas `@iftex' y `@tex', conlleva\n"
+ "                      `--no-split'.\n"
+ "  --ifxml           procesar primitivas `@ifxml' y `@xml'.\n"
+ "  --no-ifdocbook    no procesar primitivas `@ifdocbook' o `@docbook'.\n"
+ "  --no-ifhtml       no procesar primitivas `@ifhtml' o `@html'.\n"
+ "  --no-ifinfo       no procesar primitivas `@ifinfo'.\n"
+ "  --no-ifplaintext  no procesar primitivas `@ifplaintext'.\n"
+ "  --no-iftex        no procesar primitivas `@iftex' o `@tex'.\n"
+ "  --no-ifxml        no procesar primitivas `@ifxml' o `@xml'.\n"
+ "\n"
+ "  TambiÃ©n, para las opciones de tipo --no-ifFORMATO, procesar "
+ "`@ifnotFORMATO'.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  Las acciones por defecto para primitivas condicionales del tipo `@if...'\n"
+ "  dependen en gran medida del formato de salida seleccionado:\n"
+ "  si este es HTML, --ifhtml estarÃ¡ activo, mientras el resto no;\n"
+ "  si este es Info, --ifinfo estarÃ¡ activo, mientras el resto no;\n"
+ "  si este es texto plano, --ifplaintext estarÃ¡ activo, mientras el resto "
+ "no;\n"
+ "  si este es XML, --ifxml estarÃ¡ activo, mientras el resto no;\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Ejemplos:\n"
+ "\n"
+ "  makeinfo foo.texi                      escribe el fichero cuyo nombre "
+ "viene\n"
+ "                                         dado por el contenido de la "
+ "primitiva\n"
+ "                                         `@setfilename' en el fichero de\n"
+ "                                         entrada, en formato Info.\n"
+ "\n"
+ "  makeinfo --html foo.texi               escribe el fichero cuyo nombre "
+ "viene\n"
+ "                                         dado por el contenido de la "
+ "primitiva\n"
+ "                                         `@setfilename' en el fichero de\n"
+ "                                         entrada, en formato html.\n"
+ "\n"
+ "  makeinfo --docbook foo.texi            escribe el fichero cuyo nombre "
+ "viene\n"
+ "                                         dado por el contenido de la "
+ "primitiva\n"
+ "                                         `@setfilename' en el fichero de\n"
+ "                                         entrada, en formato docbook.\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  escribe el fichero cuyo nombre "
+ "viene\n"
+ "                                         dado por el contenido de la "
+ "primitiva\n"
+ "                                         `@setfilename' en el fichero de\n"
+ "                                         entrada, en formato HTML, sin menus "
+ "o\n"
+ "                                         informaciÃ³n alguna sobre nodos o\n"
+ "                                         lÃ­neas.\n"
+ "\n"
+ "  makeinfo --number-sections foo.texi    escribe el fichero cuyo nombre "
+ "viene\n"
+ "                                         dado por el contenido de la "
+ "primitiva\n"
+ "                                         `@setfilename' en el fichero de\n"
+ "                                         entrada, en formato Info, "
+ "numerando\n"
+ "                                         secciones y capÃ­tulos.\n"
+ "\n"
+ "  makeinfo --no-split foo.texi           escribe el fichero cuyo nombre "
+ "viene\n"
+ "                                         dado por el contenido de la "
+ "primitiva\n"
+ "                                         `@setfilename' en el fichero de\n"
+ "                                         entrada, en formato Info, todo en "
+ "un\n"
+ "                                         mismo fichero.\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: Ignorando valor desconocido de TEXINFO_OUTPUT_FORMAT (`%s').\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: argumento de %s debe ser numÃ©rico, asÃ­ que `%s' no es vÃ¡lido.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: no se pudo abrir el fichero `%s' para la expansiÃ³n de macros"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: ignorando el segundo argumento `%s' para la expansiÃ³n de macros.\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: no se pudo abrir el fichero `%s' para los enlaces internos"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: ignorando el segundo argumento `%s' para los enlaces internos.\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: `--paragraph-indent' toma un argumento numÃ©rico/`none'/`asis', y no `%"
+ "s'.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: `--footnote-style' toma como argumentos `separate' o `end', no `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: se necesita nombre de fichero que procesar.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Comentario multi-lÃ­nea `%c%s' usado inapropiadamente"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Se esperaba `%s'"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "No se pudo crear el directorio `%s': %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "No se encontrÃ³ `%s' en `%s'"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Ignorando expansiÃ³n de macro a descriptor de salida estÃ¡ndar (stdout) ya "
+ "que la salida Info va a ser escrita en el mismo.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Generando %s fichero `%s' a partir de `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: El fichero de expansiÃ³n de macros `%s' serÃ¡ borrado debido a la cantidad "
+ "de errores encontrados; use `--force' para preservar el mismo.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: El fichero `%s' serÃ¡ borrado debido a la cantidad de errores "
+ "encontrados; use `--force' para preservar el mismo.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: El fichero de enlaces internos `%s' serÃ¡ borrado debido a la cantidad de "
+ "errores encontrados; use `--force' para preservar el mismo.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Comando desconocido `%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "Use llaves para suplir un comando como argumento a @%s"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s se esperaban llaves"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "`}' desemparejada"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "NO SE ENCONTRO FUNCIÃ“N!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s se esperaba leer `}'"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "La imagen `%s' no es vÃ¡lida (para su salida en formato HTML): %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "El fichero `%s' no existe"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr ""
+ "La imagen `%s' no es vÃ¡lida (para su salida en formato texto plano): `%s'"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "la primitiva `@image' carece de referencia a fichero alguno"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "etiqueta indefinida: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{No se ha especificado un valor para `%s'}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "la construcciÃ³n `%c%s' requiere un nombre"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr ""
+ "Se ha alcanzado el fin de fichero y no hay constancia de fin de bloque "
+ "(`@end %s')"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "`%.40s...' es demasiado largo para su expansiÃ³n; no serÃ¡ expandido"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Se esperaba leer `}' en la plantilla `@multitable'"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "ignorando texto incoherente `%s' despuÃ©s de `@multitable'"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Demasiadas columnas para el elemento multi-tabla (max %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[inesperado] no se pudo seleccionar la columna #%d en la multi-tabla"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "ignorando `@tab' no influenciado por el entorno `multitable'"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Salida multi-columna desde la Ãºltima fila:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* columna #%d: salida = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "El nodo `%s' ha sido definido previamente en la lÃ­nea %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Formateando nodo %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "El nodo `%s' requiere un comando de secciÃ³n, como por ejemplo `%c%s'"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "No se ha especificado nombre de nodo alguno para el comando `%c%s'"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "El enlace `%s' y el nodo `%s' apuntan al mismo fichero"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ "Este comando `@anchor' serÃ¡ ignorado; referencias a este no estarÃ¡n "
+ "disponibles"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Renombre este enlace o use la opciÃ³n `--no-split'"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Texto inesperado al final del fichero multi-pÃ¡gina HMTL `%s'"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Los enlaces `%s' y `%s' apuntan al mismo fichero"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ "El comando `@anchor' serÃ¡ ignorado; referencias a este no estarÃ¡n disponibles"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "`%s' hace referencia a un nodo inexistente (`%s'), quizÃ¡s debido a un "
+ "seccionado incorrecto del documento"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "El prÃ³ximo campo del nodo `%s' no apunta a lugar alguno, quizÃ¡s debido a un "
+ "seccionado incorrecto del documento"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Este nodo (%s) contiene una referencia invÃ¡lida en el campo `Prev'"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "El campo `Prev' del nodo `%s' no apunta a sitio alguno"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Este nodo (%s) contiene una referencia invÃ¡lida en el campo `Next'"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ "`%s' no contiene referencia a `Up', quizÃ¡s debido a un seccionado incorrecto "
+ "del documento"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "El nodo `%s' carece de elemento de menÃº alguno para `%s' aunque consta como "
+ "destino para `Up'"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "Nodo `%s' no referenciado"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "Eliminando %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "No se pudo eliminar `%s': %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "ApÃ©ndice %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Error interno (search_sectioning) `%s'!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Error interno (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "`%c%s' es una construcciÃ³n obsoleta; use `%c%s' en su lugar"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Ya existe un nodo con %ctop como secciÃ³n"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "El nodo %ctop estÃ¡ aquÃ­"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "`%ctop' ha sido usado antes de `%cnode', asumirÃ© `%s'"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "El fichero de imagen `%s' no es accesible: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "`@headitem' como Ãºltimo elemento de `@multitable' causa que el documento "
+ "Docbook resultante sea invÃ¡lido"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "de"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "en"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "El primer argumento para un enlace siempre deberÃ­a estar presente"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr "Nombre de fichero no especificado para el enlace HTML `%s'"
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr "Se alcanzÃ³ el fin de fichero mientras se esperaba ver `.' or `,'"
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "`@%s' debe ser precedido por `.' o `,', no por `%c'"
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Para generar enlaces entre parÃ©ntesis utilize `@pxref'"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "El primer argumento de `@inforef' siempre deberÃ­a estar presente"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "mostrar este texto de ayuda"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "enviar la salida al fichero FICHERO"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "mostrar informaciÃ³n sobre la versiÃ³n de esta aplicaciÃ³n informÃ¡tica"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Uso: %s [OPCIÃ“N]... FICHERO...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Genera un Ã­ndice ordenado para cada fichero TeX de salida FICHERO.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ "FICHERO es generalmente especificado como `foo.%c%c' para un documento "
+ "llamado `foo.texi'.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Opciones:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "error al re-abrir %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: no es un fichero Ã­ndice de Info"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "No hay constancia de nÃºmero de pÃ¡gina en %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "la entrada %s sigue un elemento con nombre secundario"
Files texinfo-4.12/po/fr.gmo and texinfo-4.13/po/fr.gmo differ
diff -Nrc2 texinfo-4.12/po/fr.po texinfo-4.13/po/fr.po
*** texinfo-4.12/po/fr.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/fr.po	Thu Sep 18 11:38:31 2008
***************
*** 0 ****
--- 1,3943 ----
+ # Version française du progiciel texinfo
+ # Copyright © 2004 Free Software Foundation, Inc.
+ # Michel Robitaille <robitail@iro.umontreal.ca>, traducteur depuis/since 1996.
+ #
+ # Laurent Bourbeau est le traducteur officiel mais depuis plus d'un 
+ # an, Michel assume la traduction avec l'accord de Laurent.
+ #
+ # Laurent Bourbeau <bourbeau@progiciels-bpi.ca>, 2001.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.7.90\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2004-12-06 08:00-05:00\n"
+ "Last-Translator: Laurent Bourbeau <bourbeau@progiciels-bpi.ca>\n"
+ "Language-Team: French <traduc@traduc.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO-8859-1\n"
+ "Content-Transfer-Encoding: 8-bit\n"
+ "Plural-Forms: nplurals=2; plural=(n > 1);\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: l'option « %s » est ambiguë\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: l'option « --%s » ne permet pas un argument\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: l'option « %c%s » ne permet pas un argument\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: l'option « %s » exige un argument\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: option non reconnue « --%s »\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: option non reconnue « %c%s »\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: option illégale -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: option invalide -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: l'option exige un argument -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: l'option « -W %s » est ambiguë\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: l'option « -W %s » ne permet pas un argument\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, fuzzy, c-format
+ msgid "memory exhausted"
+ msgstr "mémoire virtuelle épuisée"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Avancer d'un caractère"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Reculer d'un caractère"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Se déplacer au début de cette ligne"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Se déplacer à la fin de cette ligne"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Avancer d'un mot"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Reculer d'un mot"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Éliminer le caractère sous le curseur"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Éliminer le caractère précédent le curseur"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Annuler ou opération de quitter"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Accepter cette ligne (ou en forcer la complétion)"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Insérer le prochain caractère textuellement"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Insérer ce caractère"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Insérer un caractère TAB (tabulation)"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Transposer les caractères en position du point courant"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Recoller le contenu du dernier effacement"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "L'anneau des effacements temporaires est vide"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Recoller un effacement antérieur"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Effacer du point courant jusqu'à la fin de la ligne"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Effacer du point courant jusqu'au début de la ligne"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Effacer le mot suivant le curseur"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Effacer le mot précédent le curseur"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Aucune complétion"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Non complet"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Énumérer les complétions possibles"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Une seule complétion"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Une complétion:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d complétions:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Insérer la complétion"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Construction des complétions..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Dérouler la fenêtre des complétions"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Les notes en bas de page ne peuvent pas être affichées"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr ""
+ "Montrer les notes en bas de page associées à ce noeud dans une autre fenêtre"
+ 
+ # Est-ce vraiment un message à traduire?  NON.
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "----- Notes de bas de page ----"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Rechercher une chaîne dans l'index pour ce fichier"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Recherche des entrées d'index..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Aucun indice retrouvé."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Entrée d'index: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Aller à prochaine référence d'index à partir de la dernière commande « "
+ "\\[index-search] » "
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Aucune autre chaîne de fouille d'index."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Aucune entrée d'index."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Aucune entrée %sindex contenant « %s »."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "plus "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "NE PEUT PAS VOIR CECI"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "« %s » repéré dans %s.  (« \\[next-index-match] » cherchera le prochain.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Fouille des indices de « %s »..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Aucun fichier info disponible n'a « %s » dans leurs indices."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Aplatir tous les indices de fichier Info connus pour une chaîne et "
+ "construire un menu"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Index à-propos: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: Noeuds dont les indices contiennent \"%s\":\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Utiliser --help pour plus d'informations.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "aucune entrée d'index retrouvée pour « %s »\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ "  -b, --speech-friendly        Être compatible au synthétiseur de voix.\n"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Rapporter toute anomalie à bug-texinfo@gnu.org et poster\n"
+ "vos questions et autre discussion à help-texinfo@gnu.org.\n"
+ "Site de Texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Ne peut pas trouver le noeud « %s »."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Ne peut pas trouver le noeud « (%s)%s »."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Ne peut pas trouver une fenêtre permanente!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Le point courant n'apparaît pas dans ce noeud de fenêtre!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Ne peut pas éliminer la dernière fenêtre."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Aucun menu dans ce noeud."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Aucune note de bas de page dans ce noeud."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Aucune référence croisée dans ce noeud."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Aucun pointeur « %s » pour ce noeud."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Commande Info « %c> » inconnue; essayer « ? » pour de l'aide."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Le type de terminal « %s » n'est pas en mesure de rouler Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Vous êtes déjà au point terminal de ce noeud."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Vous êtes déjà au point initial de ce noeud."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Une seule fenêtre."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "La fenêtre résultante sera trop petite."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Pas assez de place pour une fenêtre d'aide, fermer svp une fenêtre."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Quitter ce menu d'aide.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Quitter complètement le mode Info.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Faire appel au tutoriel Info.\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  Reculer de 1 ligne.\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  Avancer de 1 ligne.\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Reculer d'une page.\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Avancer d'une page.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Aller au point initial de ce noeud.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Aller au point terminal de ce noeud.\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10[move-to-next-xref]  Sauter au prochain hyperlien à l'intérieur de ce "
+ "noeud.\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Suivre l'hyperlien sous le curseur.\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  Aller au dernier noeud observé dans cette fenêtre.\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[prev-node]  Aller au noeud « previous » de ce noeud.\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[next-node]  Aller au noeud « next » de ce noeud.\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Aller au noeud « previous » de ce noeud.\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Aller au noeud « next » de ce noeud.\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Aller au noeud « up » à partir de ce noeud.\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[end-of-node]  Aller au point terminal de ce noeud.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[end-of-node]  Aller au point terminal de ce noeud.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr ""
+ "  %-10s  Choisir d'abord ... le neuvième item dans le menu de noeuds.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr ""
+ "\\%-10[last-menu-item]  Choisir le dernier item dans le menu de noeuds.\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  Choisir l'item menu indiqué par le nom.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ "\\%-10[xref-item]  Suivre une référence croisée.  Lire le nom de la "
+ "référence.\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  Aller au noeud indiqué par le nom.\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  Fouiller vers l'avant pour une chaîne spécifiée,\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[prev-node]  Aller au noeud « previous » de ce noeud.\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ "  %-10s  Fouiller pour une chaîne spécifiée dans les entrées d'index de ce "
+ "fichier Info,\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Choisir la chaîne spécifiée dans les entrées d'index "
+ "de ce Info\n"
+ "              et sélectionner le noeud référencé par la première entrée "
+ "trouvée.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "Annuler l'opération courante"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Commandes de base en Info Windows\n"
+ "---------------------------------\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Quitter ce menu d'aide.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Quitter complètement le mode Info.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Faire appel au guide Info.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Aller au noeud « next » de ce noeud.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Aller au noeud « previous » de ce noeud.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Aller au noeud « up » à partir de ce noeud.\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "\\%-10[menu-item]  Choisir un item menu à partir de son nom.\n"
+ "              Choisir un item menu provoque la sélection d'un autre noeud.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Suivre une référence croisée.  Lire le nom de la référence.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Aller au dernier noeud observé dans cette fenêtre.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Sauter au prochain hyperlien à l'intérieur de ce noeud.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Suivre l'hyperlien sous le curseur.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Aller au noeud « directory ».  Équivalent à « g (DIR) ».\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Aller au noeud supérieur Top.  Équivalent à « g Top ».\n"
+ 
+ # Est-ce vraiment un message à traduire?  NON.
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Se déplacer à l'intérieur d'un noeud:\n"
+ "------------------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Avancer d'une page.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Reculer d'une page.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Aller au point initial de ce noeud.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Aller au point terminal de ce noeud.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Avancer de 1 ligne.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Reculer de 1 ligne.\n"
+ 
+ # Est-ce vraiment un message à traduire?  NON.
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Autres commandes:\n"
+ "----------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr ""
+ "  %-10s  Choisir d'abord ... le neuvième item dans le menu de noeuds.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Choisir le dernier item dans le menu de noeuds.\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Choisir la chaîne spécifiée dans les entrées d'index "
+ "de ce Info\n"
+ "              et sélectionner le noeud référencé par la première entrée "
+ "trouvée.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10[goto-node]  Aller au noeud spécifié par le nom.\n"
+ "              Vous pouvez aussi bien inclure un nom de fichier, comme dans "
+ "(FILENAME)NODENAME.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Fouiller à reculons pour une chaîne spécifiée\n"
+ "              et sélectionner le noeud dans lequel se trouve la prochaine "
+ "occurrence.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Fouiller à reculons pour une chaîne spécifiée\n"
+ "              et sélectionner le noeud dans lequel se trouve la prochaine "
+ "occurrence.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Le chemin de fouille courant est:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Commandes disponibles en Info Windows:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Commandes disponibles dans la zone « echo area »:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Les commandes suivantes peuvent être invoquées uniquement via %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "Les commandes suivantes ne peuvent pas être invoquées:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Afficher le message d'aide"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Visiter le noeud Info « (info)Help »"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Imprimer la documentation relative à KEY"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Décrire la clé: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s est non défini."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s est non défini."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s est défini à %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Montrer quoi écrire afin d'exécuter une commande donnée"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Où se trouve la commande: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "« %s » ne se trouve pas sur une clé quelconque"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s peut être invoqué uniquement via %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s peut être invoqué via %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Il n'y a pas de fonction nommée « %s »"
+ 
+ # Est-ce vraiment un message à traduire?  NON.
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Sélection d'autres modes:\n"
+ "------------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "nombre incorrect d'arguments"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "Ne peut ouvrir le fichier d'entrée « %s »."
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "Ne peut pas créer le fichier de sortie « %s »."
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "erreur d'écriture dans « %s »"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "erreur de fermeture du fichier de sortie « %s »."
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "séquence de clé trop longue"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "séquence de clé manquante"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "Caractère NUL (\\000) n'est pas permis"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "Caractère NUL (^%c) n'est pas permis"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "nom de l'action manquant"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "section trop longue"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "action inconnue « %s »."
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "nom de l'action trop long"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "caractères superflues détectés après l'action « %s »."
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "nom de variable manquant"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "« = » manquant immédiatement après le nom de la variable"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "nom de variable trop long"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "valeur trop longue"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "« %s », ligne %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Usage: %s [OPTION]... [FICHIER-ENTRÉE]\n"
+ "\n"
+ "Compiler le fichier source infokey en un fichier infokey.  Lire le FICHIER-"
+ "ENTRÉE\n"
+ "(par défaut $HOME/.infokey) et écrire le fichier de clé compilé à $HOME/."
+ "info. (par défaut)\n"
+ "\n"
+ "Options:\n"
+ "  --output FICHIER      Produire la sortie dans le FICHIER au lieu de $HOME/."
+ "info\n"
+ "  --help                Afficher le menu d'aide et quitter.\n"
+ "  --version             Afficher le version du logiciel et quitter.\n"
+ "\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Fichier infokey invalide ignoré « %s » - trop petit"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Fichier infokey invalide ignoré « %s » - trop gros"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Erreur de lecture du fichier infokey « %s » - lecture écourtée"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "Fichier infokey invalide « %s » (nombre magique erroné) -- exécuter infokey "
+ "pour le mettre à jour"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ "Votre fichier infokey « %s » est désuet -- exécuter inforkey pour le mettre à "
+ "jour"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Fichier infokey invalide « %s » (longueur de section erronée) -- exécuter "
+ "infokey pour la mettre à jour"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "Fichier infokey invalide « %s » (code de section erroné) -- exécuter infokey "
+ "pour le mettre à jour"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ "Données erronées dans le fichier infokey -- quelques jumelages de clés "
+ "ignorés"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ "Données erronées dans le fichier infokey -- quelques initialisations de "
+ "variables ignorées"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Lire le nom d'une commande Info et la décrire"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Décrire la commande: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Lire le nom d'une commande dans la zone « echo area » et l'exécuter"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Ne peut pas exécuter une commande « echo-area » en cet endroit."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "commandes indéfinie: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Ajuster la hauteur de la fenêtre affichée"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Ajuster la hauteur de l'écran à (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Les fichiers sources aplatis pour faire ce fichier incluent:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Ne peut pas manipuler le fichier %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menu:\n"
+ "  (Fichier)Noeud                    Lignes  Taille  Contenant Fichier(s)\n"
+ "  --------------                    ------  ------  --------------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Voici le menu de noeuds que vous avez visité récemment.\n"
+ "Sélectionner en un de ce menu, ou utiliser « \\[history-node] » dans une "
+ "autre fenêtre.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr ""
+ "Faire une fenêtre contenant un menu de tous les noeuds actuellement visités"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Sélectionner un noeud qui a déjà été visité dans une fenêtre visible"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Sélectionner un noeud visité: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "La référence est disparue! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Bienvenue au mode Info version %s.\n"
+ "Taper « \\[get-help-window] » pour obtenir de l'aide.\n"
+ "Taper « \\[menu-item] » pour obtenir un item menu."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Descendre à la ligne suivante"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Monter à la ligne précédente"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Aller à la fin de la ligne"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Aller au début de la ligne"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Noeud « Next »"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Aucun autre noeud dans ce document."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Aucun noeud « Prev » pour ce noeud."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Aucun noeud « Prev » ou « Up » pour ce noeud dans ce document."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Avancer ou descendre à travers la structure de noeuds"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Reculer ou monter à travers la structure de noeuds"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Défiler vers l'avant dans cette fenêtre"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr ""
+ "Défiler vers l'avant dans cette fenêtre et en fixer la dimension par défaut"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr ""
+ "Défiler vers l'avant dans cette fenêtre en demeurant à l'intérieur du noeud"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Défiler vers l'avant dans cette fenêtre en demeurant à l'intérieur du noeud "
+ "et en fixer la dimension par défaut"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Défiler à reculons dans cette fenêtre"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr ""
+ "Défiler à reculons dans cette fenêtre et en fixer la dimension par défaut"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr ""
+ "Défiler à reculons dans cette fenêtre en demeurant à l'intérieur de ce noeud"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Défiler à reculons dans cette fenêtre en demeurant à l'intérieur du noeud et "
+ "en fixer la dimension par défaut"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Aller au point initial de ce noeud"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Aller au point terminal de ce noeud"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Défiler vers le bas par pas de N lignes"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Défiler vers le haut par pas de N lignes"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Défiler vers le bas par pas d'un demi écran"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Défiler vers le haut par pas d'un demi écran"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Sélectionner la fenêtre suivante"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Sélectionner la fenêtre précédente"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Diviser en deux la fenêtre courante"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Éliminer la fenêtre courante"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Ne peut pas éliminer une fenêtre permanente"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Éliminer toutes les autres fenêtres"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Défiler l'autre fenêtre"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Défiler l'autre fenêtre à reculons"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Agrandir (ou réduire) cette fenêtre"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Répartir l'espace écran disponible parmi les fenêtres visibles"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Basculer l'état du remplissage de ligne dans la fenêtre courante"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Sélectionner le noeud « Next »"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Sélectionner le noeud « Prev »"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Sélectionner le noeud « Up »"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Sélectionner le dernier noeud dans ce fichier"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Cette fenêtre a aucun noeud additionnel"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Sélectionner le premier noeud dans ce fichier"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Sélectionner le dernier item dans ce menu de noeuds"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Sélectionner cet item menu"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Il n'y a pas %d items dans ce menu."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Item menu (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Item menu: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Suivre xref (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Suivre xref: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Lire un item menu et sélectionner son noeud"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr ""
+ "Lire une note de bas de page ou une référence croisée et sélectionner son "
+ "noeud"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Aller au point initial de ce menu de noeuds"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Visiter d'un seul coup autant d'items menu que possible"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Lire un nom de noeud et sélectionner ce noeud"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Aller au noeud: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Aucun menu dans le noeud « %s »."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Aucun item menu « %s » dans le noeud « %s »."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Incapable de trouver le noeud référencé par « %s » dans « %s »."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Lire une liste de menus en partant de « dir » et les suivre"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Suivre les menus: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Trouver le noeud décrivant l'invocation au programme"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Trouver le noeud Invocation de [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Lire une référence de page-manuel et la sélectionner"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Obtenir la Page-manuel: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Sélectionner le noeud « Top » dans ce fichier"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Sélectionner le noeud « (dir) »"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Effacer le noeud (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Ne peut pas effacer le noeud « %s »"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Ne peut pas effacer le dernier noeud"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Choisir le noeud qui a été le plus récemment sélectionné"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Effacer ce noeud"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Lire le nom d'un fichier et le sélectionner"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Trouver le fichier: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Ne peut pas trouver « %s »."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Ne peut pas créer le fichier de sortie « %s »."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Terminé."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Écriture du noeud « %s »..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "Acheminer les contenus de ce noeud à travers INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Ne peut ouvrir un tube de communication à « %s »."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Impression du noeud « %s »..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "Effacer du point courant jusqu'au début de la ligne"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Fouille du sous-fichier « %s »..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr ""
+ "Lire une chaîne et en faire la fouille en distinguant les majuscules et "
+ "minuscules"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Lire une chaîne et en faire la fouille"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Lire une chaîne et en faire la fouille à reculons"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s pour la chaîne [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr " en distinguant les casses majuscules et minuscules "
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "Fouiller à reculons"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Fouiller"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Fouille infructueuse."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Répéter la dernière fouille dans la même direction"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Aucune chaîne de fouille antérieure"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Répéter la dernière fouille dans la direction inverse"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Fouiller interactivement pour une chaîne telle que vous la tapez"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "Fouille I-search à reculons: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "Fouille I-search à reculons: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "Fouille I-search: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "Fouille I-search: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Échec "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Aller à la référence croisée précédente"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Aller à la prochaine référence croisée"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Sélectionner la référence ou l'item menu apparaissant sur cette ligne"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Annuler l'opération courante"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Quitter"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Déplacer le curseur sur une ligne spécifique de la fenêtre"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Redessiner l'affichage écran"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Quitter en utilisant Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Exécuter la commande liée à cette variante de touche en minuscule"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Commande inconnue (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "« %s » est invalide"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "« %s » est invalide"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Ajouter ce chiffre à l'argument numérique courant"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Enclencher (ou multiplier par 4) l'argument numérique courant"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Utilisé internement par \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "lecture: Mémoire virtuelle épuisée!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr ""
+ "En position « On », les notes en bas de page apparaissent et disparaissent "
+ "automatiquement"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "En position « On », créer ou effacer une fenêtre réajuste la dimension des "
+ "autres fenêtres"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr ""
+ "En position « On », un clignotement d'écran est utilisé plutôt qu'un bruit de "
+ "cloche"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "En position « On », les erreurs sont signalées par un bruit de cloche"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ "En position « On », le ramasse-miette Info récolte les fichiers qui devaient "
+ "être décomprimés"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr ""
+ "En position « On », la portion de la chaîne de fouille appariée est mise en "
+ "surbrillance"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr ""
+ "Contrôler ce qui arrive lorsqu'un défilement est requis à la fin d'un noeud"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Le nombre de lignes à défiler quand le curseur va hors de la fenêtre"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "En position « On », Info accepte et affiche les caractères ISO Latin"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr ""
+ "Contrôler ce qui arrive lorsqu'un défilement est requis à la fin d'un noeud"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Expliquer l'usage d'une variable"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Décrire la variable: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Fixer la valeur d'une variable Info"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Fixer la variable: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Fixer %s à la valeur (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Fixer %s à la valeur (%s): "
+ 
+ # Est-ce vraiment un message à traduire?
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Étiquettes passées Date ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), lignes ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d lignes --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d lignes --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Sous-fichier: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: avertissement: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " pour %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\\tUtiliser « %s --help » pour une liste complète des options.\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Usage: %s [OPTION]... FICHIER-TEXINFO...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Rapporter toute anomalie à bug-texinfo@gnu.org et poster\n"
+ "vos questions et autre discussion à help-texinfo@gnu.org.\n"
+ "Site de Texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Ceci est le fichier .../info/dir, lequel contient le noeud \n"
+ "le plus haut dans la hiérarchie Info, noeud appelé (dir)Top.\n"
+ "La première fois que Info est invoqué, vous démarrez la recherche \n"
+ "à partir de ce noeud.\n"
+ "\n"
+ "%s\tCeci est le haut de l'arborescence INFO\n"
+ "\n"
+ "  Ceci (le noeud Répertoire) fournit un menu des sujets majeurs.\n"
+ "  Taper « q » pour quitter, « ? » pour lister toutes les commandes Info,\n"
+ "  « d » pour revenir à cet endroit,\n"
+ "  « h » fournit un guide d'initiation pour les nouveaux venus,\n"
+ "  « mEmacs<Return> » démarre une consultation du manuel Emacs, etc.\n"
+ "\n"
+ "  En Emacs, vous pouvez cliquer avec le bouton-2 de la souris sur un item "
+ "menu \n"
+ "  ou sur une référence croisée pour le sélectionner.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: ne peut pas lire (%s) et ne peut pas créer (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: fichier vide"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY non apparié avec END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY non apparié avec START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: a déjà un fichier répertoire: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Spécifier le fichier Info seulement une fois.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "excédent d'argument de ligne de commande « %s »"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ "Aucun fichier d'entrée spécifié; utiliser --help pour plus d'informations."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "Aucun fichier dir spécifié; utiliser --help pour plus d'informations."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "aucune entrée répertoire Info dans « %s »"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "aucune entrée trouvée pour « %s »; rien n'a été éliminé"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "arguments à @%s ignorés"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "janvier"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "février"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "mars"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "avril"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "mai"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "juin"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "juillet"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "août"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "septembre"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "octobre"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "novembre"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "décembre"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "caractère %c improbable dans la macro @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "argument de la macro @sc tout en majuscules, alors aucun effet"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "« { » attendu, mais a vu « %c »"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "fin de fichier à l'intérieur du bloc verbe"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "« } » attendu, mais a vu « %c »"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@strong{Note...} produit une table douteuse de références croisées dans "
+ "Info; réécrire pour éviter cela"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s est périmé"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "La macro @sp exige un argument numérique positif, pas « %s »"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Mauvais argument à %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "« asis »"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "« none »"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Mauvais argument à @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "insérer"
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Mauvais argument à @%s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Accolade « } » manquante dans @def arg"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Doit être dans une insertion « @%s » afin d'utiliser « @%s »."
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "« %s » omis avant le nom de fichier de sortie"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "« %s » omis avant l'écriture sur la sortie standard"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Tampon de sortie n'est pas vide."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Voir "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "« %c%s » nécessite un argument « {...} », non pas « %s » uniquement"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Accolade fermante « } » manquante pour la note de bas de page « %s »"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "La note de bas de page est définie sans noeud parent"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Les notes de bas de page récursives ne sont pas permises"
+ 
+ # Est-ce vraiement un message à traduire?
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Notes de bas de page"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: ne peut ouvrir --css-file: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s%d: --css-file terminé dans le commentaire"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[inattendu] pas d'étiquette html à dépiler"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[inattendu] nom de noeud invalide: « %s »"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Nom d'index inconnu « %s »"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info ne peut traiter « : » dans l'entrée d'index « %s »"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "L'index « %s » existe toujours"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Nom d'index « %s » inconnu et/ou « %s » dans @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(ligne )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(ligne %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Nom d'index « %s » inconnu dans @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Entrée pour l'index « %s » à l'extérieure de tout noeud"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(à l'extérieur de tout noeud)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@item n'est pas permis dans l'agument @itemize"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Type impossible dans la fonction insertion_type_pname"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Débordement de la pile d'énumérations"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "débordement du lettrage, reprise à partir de %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s exige un argument: le formateur pour %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "%cenvironnements float ne peuvent être imbriqués"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "« @end » s'attendait à « %s », mais a vu « %s »"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "« %cend %s » non apparié"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s exige une lettre ou un chiffre"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "fin de fichier à l'intérieur du bloc verbatim"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s n'a aucun sens à l'extérieur de l'environnement « @float »"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu vu avant le premier @node, création du noeud « Top »"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "votre noeud @top devrait se retrouver peut-être dans @ifnottex plutôt que "
+ "dans @ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu vu avant le premier noeud, création du noeud « Top »"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ "@%s n'a aucun sens à l'extérieur des environnements « @titlepage » et « "
+ "@quotation »"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s n'a aucun sens à l'extérieur de l'environnement « @titlepage »"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "« %c%s » non apparié"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "« %c%s » a besoin de quelque chose après lui"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Mauvais argument « %s » à « @%s » utilisant « %s »"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "macro @%s inactive à l'intérieur d'un bloc « %s »"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "macro @itemx inactive à l'intérieur d'un bloc « %s »"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s est trouvé à l'extérieur d'un bloc d'insertion"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s n'est pas un code ISO 639 valide pour l'identification de langue"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "nom d'encodage non reconnu « %s »"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "désolé, l'encodage « %s » n'est pas supporté"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "caractère encodé invalide « %s »"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s s'attend à argument « i » ou « j », non pas « %c »"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s attend un argument d'un seul caractère « i » ou « j »"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "macro « %s » déjà définie précédemment"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "ici se trouve la définition précédente de « %s »"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ "\\ dans l'expansion de macro suivie par « %s » au lieu du nom de paramètre"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Macro « %s » appelée à la ligne %d avec trop d'arguments"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "macro %cend non trouvée"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "macro @end %s non balancée avec @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "Beaucoup trop d'erreurs!  Abandon.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: avertissement: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "%c égarée ou mal placée"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Utiliser « %s --help » pour plus d'informations.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Usage: %s [OPTION]... FICHIER-TEXINFO...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Traduire une documentation Texinfo source en divers autres formats:\n"
+ "Fichiers Info adéquats pour lire en ligne avec Emacs ou GNU Info autonome\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, fuzzy, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Options générales:\n"
+ " --error-limit=NUM         Quitter après NUM erreurs (par défaut %d).\n"
+ " --force                   Conserver la sortie même s'il y a des erreurs.\n"
+ " --help                    Afficher ce menu d'aide et quitter.\n"
+ " --no-validate             Supprimer la validation de la table de "
+ "références.\n"
+ " --no-warn                 Supprimer les avertissements (mais pas les "
+ "erreurs).\n"
+ " --reference-limit=NUM     Avertir après plus de NUM références (défaut %"
+ "d).\n"
+ " -v, --verbose             En mode bavard, expliquer ce qui a été fait.\n"
+ " --version                 Afficher la version du logiciel et quitter.\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, fuzzy, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Options de sélection de format de sortie (par défaut produire Info):\n"
+ " --docbook                 Écrire en format DocBook XML plutôt qu'en format Info.\n"
+ " --html                    Écrire en format HTML plutôt qu'en format Info;\n"
+ " --xml                     Produire en Texinfo XML plutôt qu'en format Info.\n"
+ " --plaintext               Produire en formast plein texte plutôt qu'en format Info.\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ #, fuzzy
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Options générales de sortie:\n"
+ "  -E, --macro-expand FICHIER produire dans le FICHIER l'expension source de "
+ "macro.\n"
+ "                            ignorer tout @setfilename.\n"
+ "      --no-headers          Supprimer les séparateurs de noeud Info et "
+ "Node:\n"
+ "                            lignes et écrire une sortie standard sans --"
+ "output.\n"
+ "      --no-split            suprimer les divisions de sortie Info ou HTML,\n"
+ "                            générer seulement un seul fichier de sortie.\n"
+ "      --number-sections     produire les numéros de chapitres et de "
+ "sections.\n"
+ "  -o, --output=FICHIER      produire la sortie dans le FICHIER (répertoire "
+ "si division en HTML),\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, fuzzy, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Options pour Info et texte:\n"
+ " --enable-encoding       produire les caractères accentués et spéciaux\n"
+ "                          dans une sortie Info basée sur @documentencoding.\n"
+ " --fill-column=NUM       briser les lignes Info à chaque NUM caractères (par "
+ "défaut %d).\n"
+ " --footnote-style=STYLE  produire les notes des bas de page en Info selon le "
+ "STYLE:\n"
+ "                          « separate » pour les placer dans leur propre "
+ "noeud;\n"
+ "                          « end » pour les placer à la fin de leur noeud\n"
+ "                           où ils sont définis (par défaut).\n"
+ " --paragraph-indent=NUM  indenter les paragraphes Info par NUM espaces (par "
+ "défaut %d).\n"
+ "                           Si NUM est « none », ne pas indenter; si NUM est\n"
+ "                          « asis », préserver l'indentation existente.\n"
+ " --split-size=NUM        séparer les fichiers Info selon la taille NUM (par "
+ "défaut %d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ #, fuzzy
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "      --css-include=FICHIER       inclure le FICHIER dans le <style> de "
+ "sortie HTML;\n"
+ "                                  lire de stdin si le FICHIER est -.\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, fuzzy, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "      --output-indent=VAL       indenter les éléments XML à l'aide dee VAL "
+ "espaces (par défaut %d).\n"
+ "                                  Si VAL vaut 0, les espaces pouvant être "
+ "ignorés sont éliminés.\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Options portant sur les fichier d'entrée:\n"
+ "      --commands-in-node-names  permet les commandes @ dans les noms de "
+ "noeuds.\n"
+ " -D VAR                    Définir une variable, comme avec @set.\n"
+ " -I DIR                    Ajouter à la fin DIR au chemin de fouille "
+ "@include.\n"
+ " -P DIR                    Ajouter au début DIR au chemin de fouille "
+ "@include.\n"
+ " -U VAR                    Rendre indéfinie une variable, comme avec "
+ "@clear.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Traitement conditionel de l'entrée:\n"
+ "  --ifdocbook              Traiter @ifdocbook et @docbook même s'il\n"
+ "                           n'y a pas de génération Docbook.\n"
+ " --ifhtml                  Traiter le textuel sous @ifhtml et @html même\n"
+ "                            s'il n'y a pas de génération HTML.\n"
+ " --ifinfo                  Traiter le textuel sous @ifinfo même\n"
+ "                            s'il n'y a pas de génération Info.\n"
+ " --ifplaintext             Traiter le textuel sous @ifplaintext même\n"
+ "                            s'il n'y a pas de génération plein texte\n"
+ " --iftex                   Traiter le textuel sous @iftex et @tex.\n"
+ "                             implique l'option --no-split.\n"
+ " --ifxml                   Traiter le textuel sous @ifxml et sous @xml.\n"
+ " --no-ifhtml               Ne pas traiter le textuel sous @ifhtml et @html.\n"
+ " --no-ifinfo               Ne pas traiter le textuel sous @ifinfo.\n"
+ " --no-ifplaintext          Ne pas traiter le textuel sous @ifplaintext.\n"
+ " --no-iftex                Ne pas traiter le textuel sous @iftex et @tex.\n"
+ " --no-ifxml                Ne pas traiter le textuel sous @ifxml et @xml.\n"
+ "\n"
+ "  Aussi pour l'options --no-ifFORMAT, ne pas traiter le textuel "
+ "@ifnotFORMAT.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "Les valeurs par défaut pour le @if... conditionnels dépend du format de "
+ "sortie:\n"
+ "en géneration HTML, --ifhtml est « on » et les autres sont « off » ;\n"
+ "en génération Info, --ifinfo est « on » et les autres sont « off » ;\n"
+ "en génération plein texte, --ifplaintext est « on » et les autres sont « off "
+ "» ;\n"
+ "en génération XML, --ifxml est « on » et les autres sont « off ».\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Examples:\n"
+ "  makeinfo foo.texi                    Écrire en Info dans @setfilename de "
+ "foo\n"
+ "  makeinfo --html foo.texi             Écrire en HTML dans @setfilename de "
+ "foo\n"
+ "  makeinfo --xml foo.texi              Écrire en XML dans @setfilename de "
+ "foo\n"
+ "  makeinfo --docbook foo.texi          Écrire le DocBook en XML dans "
+ "@setfilename\n"
+ "  makeinfo --no-headers foo.texi       Écrire en plein texte en sortie "
+ "standard\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi Écrire en HTML sans les lignes de "
+ "noeuds et de menus\n"
+ "  makeinfo --number-sections foo.texi  Écrire en Info avec sections "
+ "numérotées\n"
+ "  makeinfo --no-split foo.texi         Écrire un fichier Info même "
+ "volumineux\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: valeur TEXINFO_OUTPUT_FORMAT non reconnue est ignoré « %s »\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: l'argument %s doit être numérique, non pas « %s ».\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: ne peut ouvrir la sortie d'expansion de macro « %s »"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: ignorer la sortie de l'expansion de la seconde macro « %s »\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: ne peut ouvrir la sortie d'expansion de macro « %s »"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: ignorer la sortie de l'expansion de la seconde macro « %s »\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: l'argument de l'option --paragraph-indent doit être numérique, « none » "
+ "ou\n"
+ "« asis », non pas « %s ».\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: l'argument de l'option --footnote-style doit être « separate » ou\n"
+ "« end », non pas « %s ».\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: absence d'un argument fichier.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Commande multilignes %c%s utilisé de manière incorrecte"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "« %s » attendue"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Ne peut créer le répertoire « %s »: %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Aucun « %s » trouvé dans « %s »"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Sauter l'expansion de macro qui irait sur stdout comme la sortie Info.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Fabrication du fichier %s « %s » à partir de « %s ».\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Enlèvement du fichier de sortie de macro « %s » à cause d'erreurs;\n"
+ "utiliser l'option --force pour préserver.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Enlèvement du fichier de sortie « %s » à cause d'erreurs;\n"
+ "utiliser l'option --force pour préserver.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Enlèvement du fichier de sortie « %s » à cause d'erreurs;\n"
+ "utiliser l'option --force pour préserver.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Commande inconnue « %s »."
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr ""
+ "Utiliser des accolades pour donner une commande comme argument à « @%s »"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s accolades attendues"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Accolade « } » non appariée"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "NOM_INCONNU!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s accolade fermante manquante"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "commande @image dans un fichier (pour HTML) « %s » illisible: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "Aucun fichier  « %s »"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "commande @image avec un fichier (texte) « %s » illisible: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "commande @image ayant un argument fichier absent"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "fanion indéfini: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Aucune valeur pour « %s »}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s exige un nom"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Fin de fichier rencontré avant l'appariement de @end %s"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "«  %.40s...  » est trop long pour l'expansion; n'a pas fait d'expansion"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Accolade « } » manquante dans un patron @multitable"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "abandon du texte orphelin « %s » après la commande @multitable"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Trop de colonnes dans un item de multitable (%d max)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr ""
+ "[inattendu] ne peut pas sélectionner la colonne #%d dans une multitable."
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "inhibition d'une commande @tab à l'extérieur d'une multitable"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Sortie en multicolonnes à partir de la dernière rangée:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* colonne #%d: sortie = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Le noeud « %s » défini antérieurement à la ligne %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Écriture du noeud « %s »...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Le noeud « %s » exige une commande de subdivision (i.e. %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Aucun nom de noeud spécifié pour la commande « %c%s »"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Ancre « %s » et mode « %s » pointe vers le même nom de fichier"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ "Commande @anchor ignorée; les références vers celle-ci ne fonctionneront pas"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Renommer cette ancre ou utiliser l'option « --no-split »"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Chaîne inattendue à la fin du fichier morcelé HTML « %s »"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Ancre « %s » et mode « %s » pointe vers le même nom de fichier"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ "Commande @anchor ignorée; les références vers celle-ci ne fonctionneront pas"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "%s réfère à un noeud « %s » inexistant (à mois d'un sectionnement incorrect?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "Le champ Next du noeud « %s » n'a pas de pointeur de retour en amont (à moins "
+ "d'un sectionnement incorrect?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Ce noeud (%s) a un noeud « Prev » erroné"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Le champ Prev du noeud « %s » n'a pas de pointeur de retour en amont"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Ce noeud (%s) a un noeud « Next » erroné"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "« %s » n'a pas de champ Up (à moins d'un sectionnement incorrect?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "Le noeud « %s » manque d'un item menu pour « %s » en dépit d'être son noeud « "
+ "Up » cible"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "noeud « %s » non référencé"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "Retrait de %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Ne peut enlever le fichier « %s »: %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Annexe %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Erreur interne (search_sectioning) « %s »!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Erreur interne (search_sectioning) « %s »!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s est périmé; utiliser plutôt %c%s"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Le noeud avec %ctop en tant que section existe déjà"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Le noeud %ctop se trouve ici"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "noeud %ctop utilisé avant %cnode, %s implicitement"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "commande @image avec un fichier « %s » illisible: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "@headitem comme dernier item de @multitable produit des documents Docbook "
+ "invalides"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "de"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "sur"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "Premier argument de références croisée peut ne pas être vide"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, fuzzy, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "« . » ou « , » doit suivre une référence croisée, non pas %c"
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Aucune référence croisée dans ce noeud."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "Premier argument de @inforef peut ne pas être vide"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "afficher cet aide-mémoire et quitter"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "envoyer la sortie dans FICHIER"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "afficher la version du logiciel et quitter"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Usage: %s [OPTION]... FICHIER...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Générer un index trié pour chaque FICHIER de sortie TeX.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ "Habituellement FICHIER... est indiqué comme « foo.%c%c » pour un document « "
+ "foo.texi ».\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Options:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "échec lors de la réouverture de %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: pas un fichier index en format Texinfo"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Aucun numéro de page dans %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "l'entrée %s suit une entrée ayant un nom secondaire"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search]  Fouiller à reculons pour une chaîne spécifiée\n"
+ #~ "              et sélectionner le noeud dans lequel se trouve la prochaine "
+ #~ "occurrence.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10[goto-node]  Aller au noeud spécifié par le nom.\n"
+ #~ "              Vous pouvez aussi bien inclure un nom de fichier, comme "
+ #~ "dans (FILENAME)NODENAME.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "\\%-10[next-node]  Aller au noeud « next » de ce noeud.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  Aller au noeud « directory ».  Équivalent à « g (DIR) ».\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[top-node]  Aller au noeud supérieur Top.  Équivalent à « g Top ».\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[scroll-forward-page-only]  Scroll forward within this node.\n"
+ #~ msgstr "\\%-10[scroll-forward]  Avancer de 1 ligne.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[scroll-backward-page-only]  Scroll backward within this node.\n"
+ #~ msgstr "\\%-10[scroll-backward]  Reculer de 1 ligne.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  Fouiller à reculons pour une chaîne spécifiée\n"
+ #~ "              et sélectionner le noeud dans lequel se trouve la prochaine "
+ #~ "occurrence.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- Utiliser « \\[history-node] » ou « \\[kill-node] » pour sortir ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr ""
+ #~ "\\%-10[move-to-prev-xref]  Sauter au prochain hyperlien à l'intérieur de "
+ #~ "ce noeud.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "Usage: %s [OPTION]... [ITEM-MENU...]\n"
+ #~ "\n"
+ #~ "Lire la documentation en format Info.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=SUJET          Consulter SUJET dans tout indice de tout "
+ #~ "manuel.\n"
+ #~ "  -d, --directory=RÉP          Ajouter le RÉPertoire dans INFOPATH.\n"
+ #~ "      --dribble=FICHIER        Accumuler les clés-clavier de l'usager "
+ #~ "dans FICHIER.\n"
+ #~ "  -f, --file=FICHIER           Spécifier le fichier Info à visiter.\n"
+ #~ "  -h, --help                   Afficher ce menu d'aide et quitter.\n"
+ #~ "      --index-search=CHAÎNE    Aller au noeud pointé par CHAÎNE d'entrée "
+ #~ "d'index.\n"
+ #~ "  -n, --node=NOEUD             Spécifier les NOEUDS dans le fichier Info "
+ #~ "visité en premier.\n"
+ #~ "  -o, --output=FICHIER         Écrire dans FICHIER les noeuds "
+ #~ "sélectionnés.\n"
+ #~ "  -R, --raw-escapes            Ne pas enlever les séquences "
+ #~ "d'échappements ANSI des man pages.\n"
+ #~ "      --no-raw-escapes         Fournir les séquences d'échappements comme "
+ #~ "du texte.\n"
+ #~ "      --restore=FICHIER        Lire du FICHIER les clés-clavier "
+ #~ "initiales.\n"
+ #~ "  -O, --show-options, --usage  Aller au noeud des options de ligne-de-"
+ #~ "commande.\n"
+ #~ "%s    --subnodes               Écrire récursivement les items-menu.\n"
+ #~ "      --vi-keys                Utiliser les raccourcis-clavier comme vi "
+ #~ "et less.\n"
+ #~ "      --version                Afficher la version du logiciel et "
+ #~ "quitter.\n"
+ #~ "\n"
+ #~ "Le premier argument, n'étant pas une option et si présent, est l'entrée "
+ #~ "menu\n"
+ #~ "de départ; il est recherché dans tous les fichiers « dir » le long de "
+ #~ "INFOPATH.\n"
+ #~ "S'il est absent, Info fusionne tous les fichiers « dir » et montre le "
+ #~ "résultat.\n"
+ #~ "Tous les arguments subséquents sont traités comme des noms d'items de "
+ #~ "menu\n"
+ #~ "relatifs au noeud initial visité.\n"
+ #~ "\n"
+ #~ "Exemples:\n"
+ #~ "  info                       Montrer le menu dir de niveau-supérieur\n"
+ #~ "  info emacs                 Partir du noeud emacs dans dir niveau-"
+ #~ "supérieur\n"
+ #~ "  info emacs buffers         Partir du noeud buffers dans le niveau "
+ #~ "emacs\n"
+ #~ "  info --show-options emacs  Partir du noeud --show-options dans niveau "
+ #~ "emacs\n"
+ #~ "  info -f ./foo.info         Montrer le fichier ./foo.info, sans chercher "
+ #~ "dir\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr ""
+ #~ "              Choisir un item menu provoque la sélection d'un autre "
+ #~ "noeud.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              Vous pouvez aussi bien inclure un nom de fichier, comme "
+ #~ "dans (FILENAME)NODENAME.\n"
+ 
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  Fouiller à reculons pour une chaîne spécifiée\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "              et sélectionner le noeud dans lequel se trouve la prochaine "
+ #~ "occurrence.\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "Suivre le noeud « Next »..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "Sélectionner le premier item menu..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "Sélectionner le noeud « Next »..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "Monter via « Up » %d fois, puis passer au noeud « Next »."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "Monter au noeud « Prev » dans cette fenêtre."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "Monter au noeud « Up » dans cette fenêtre."
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "Aller au dernier item menu du noeud « Prev »."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "Fonction"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "Macro"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "Forme Spéciale"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "Variable"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "Option de l'Usager"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "Variable d'Instance"
+ 
+ #~ msgid "Method"
+ #~ msgstr "Méthode"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "Sans titre"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr ""
+ #~ "Ceci est le fichier Info %s, produit par Makeinfo version %s à partir %"
+ #~ "s.\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "Noeud « Next »:"
+ 
+ # Est-ce vraiment un message à traduire?
+ #~ msgid "Previous:"
+ #~ msgstr "Noeud « Previous »:"
+ 
+ # Est-ce vraiment un message à traduire?
+ #~ msgid "Up:"
+ #~ msgstr "Noeud « Up »:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "Menu"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "Référence"
+ 
+ # Est-ce vraiment un message à traduire?
+ #~ msgid "Prev"
+ #~ msgstr "Noeud « Previous »"
+ 
+ # Est-ce vraiment un message à traduire?
+ #~ msgid "Up"
+ #~ msgstr "Noeud « Up »"
+ 
+ #~ msgid "see "
+ #~ msgstr "voir "
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "Usage: %s [OPTION]... [INFO-FICHIER [DIR-FICHIER]]\n"
+ #~ "\n"
+ #~ "Installer ou éliminer des entrées dir à partir de INFO-FICHIER dans le "
+ #~ "fichier\n"
+ #~ "répertoire Info DIR-FICHIER.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --delete          Éliminer les entrées existantes pour INFO-FICHIER à "
+ #~ "partir\n"
+ #~ "                   de DIR-FICHIER; ne pas insérer aucunes nouvelles "
+ #~ "entrées.\n"
+ #~ " --dir-file=NOM    Spécifier le NOM du répertoire de fichiers Info.\n"
+ #~ "                   Ceci équivaut à utiliser l'argument DIR-FICHIER.\n"
+ #~ " --entry=TEXTE     Insérer TEXTE comme une entrée du répertoire Info.\n"
+ #~ "                   TEXTE doit avoir la forme d'une ligne d'item menu "
+ #~ "Info\n"
+ #~ "                   avec zéro ou plusieurs lignes en extra commençant "
+ #~ "avec\n"
+ #~ "                   un blanc.  Si plus d'une entrée est spécifiée, elles\n"
+ #~ "                   seront toutes ajoutées.  Si aucune n'est indiquée,\n"
+ #~ "                   elles seront déterminées à partir de l'information\n"
+ #~ "                   se trouvant dans le fichier Info lui-même.\n"
+ #~ " --help            Afficher ce menu d'aide et quitter.\n"
+ #~ " --info-file=FICHIER Spécifier le FICHIER Info à installer dans le "
+ #~ "répertoire\n"
+ #~ "                   de fichiers Info.  Ceci équivaut à utiliser "
+ #~ "l'argument\n"
+ #~ "                   INFO-FICHIER.\n"
+ #~ " --info-dir=RÉP    Identique à l'option --dir-file=RÉP/dir.\n"
+ #~ " --item=TEXTE      Identique à l'option --entry=TEXTE\n"
+ #~ "                   Une entrée de répertoire Info est en fait un item "
+ #~ "menu.\n"
+ #~ " --quiet           Supprimer les avertissements.\n"
+ #~ " --remove          Identique à l'option --delete.\n"
+ #~ " --section=SEC     Mettre cette entrée de fichier dans la section SEC du\n"
+ #~ "                   répertoire.  Si plus d'une section est spécifiée, "
+ #~ "toutes\n"
+ #~ "                   les entrées sont ajoutées dans chacune des sections.\n"
+ #~ "                   Si aucune section n'est spécifiée, elles seront "
+ #~ "déterminées\n"
+ #~ "                   à partir de l'information dans le fichier Info lui-"
+ #~ "même.\n"
+ #~ " --version         Afficher le nom et la version du logiciel et quitter.\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "item menu « %s » déjà existant, pour le fichier « %s »"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr ""
+ #~ "\\%-10[menu-digit]  Choisir d'abord ... le neuvième item dans le menu de "
+ #~ "noeuds.\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "Le noeud « %s » a été référencé %d fois"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright © %s Free Software Foundation, Inc.\n"
+ #~ "AUCUNE garantie n'est donnée.  Vous pouvez redistribuer des copies\n"
+ #~ "de ce logiciel selon les termes de la licence GNU General Public "
+ #~ "License.\n"
+ #~ "Pour plus d'informations, consultez le fichier COPYING.\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "macro @quote-arg utile seulement pour des macros à un seul argument"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Table des matières"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "Sommaire"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "conserver les fichiers temporaires après le traitement"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr ""
+ #~ "ne pas conserver les fichiers temporaires après le traitement (défaut)"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "              et sélectionner le noeud référencé par la première entrée "
+ #~ "trouvée.\n"
+ 
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "AUCUNE garantie n'est donnée.  Vous pouvez redistribuer des copies\n"
+ #~ "de ce logiciel selon les termes de la licence GNU General Public "
+ #~ "License.\n"
+ #~ "Pour plus d'informations, consultez le fichier COPYING.\n"
+ 
+ # Est-ce que c'est " " ou «   » comme caractères?
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "\"\" est invalide"
+ 
+ #~ msgid "%s: Specify the Info directory only once.\n"
+ #~ msgstr "%s: Spécifier le répertoire Info seulement une fois.\n"
+ 
+ #~ msgid "%s is an invalid ISO code, using %c"
+ #~ msgstr "%s n'est pas un code ISO valide, utilisé %c"
+ 
+ #~ msgid "Cannot specify more than one macro expansion output"
+ #~ msgstr "Ne peut spécifier plus d'une sortie d'expansion de macro"
+ 
+ #~ msgid "File exists, but is not a directory"
+ #~ msgstr "Le fichier existe mais n'est pas un répertoire"
+ 
+ #~ msgid "Node:"
+ #~ msgstr "Noeud:"
+ 
+ #~ msgid "%s: TOC should be here, but it was not found"
+ #~ msgstr "%s: Table des matières devrait être là, elle ne s'y trouve pas"
+ 
+ #~ msgid "No `%s.png' or `.jpg', and no extension supplied"
+ #~ msgstr "Aucun « %s.png » ou « .jpg » et aucune extension fournie"
+ 
+ #~ msgid "%s; for file `%s'.\n"
+ #~ msgstr "%s; pour le fichier « %s ».\n"
+ 
+ #~ msgid "`%s' has no Up field"
+ #~ msgstr "Le noeud %s a un champ « Up » manquant"
+ 
+ #~ msgid ""
+ #~ "Email bug reports to bug-texinfo@gnu.org,\n"
+ #~ "general questions and discussion to help-texinfo@gnu.org."
+ #~ msgstr ""
+ #~ "Rapporter toute anomalie à bug-texinfo@gnu.org et poster\n"
+ #~ "vos questions et autre discussion à help-texinfo@gnu.org"
+ 
+ #~ msgid ""
+ #~ "Basic Commands in Info Windows\n"
+ #~ "******************************\n"
+ #~ "\n"
+ #~ "  \\%-10[quit-help]  Quit this help.\n"
+ #~ "  \\%-10[quit]  Quit Info altogether.\n"
+ #~ "  \\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ #~ "\n"
+ #~ "Selecting other nodes:\n"
+ #~ "----------------------\n"
+ #~ "  \\%-10[next-node]  Move to the \"next\" node of this node.\n"
+ #~ "  \\%-10[prev-node]  Move to the \"previous\" node of this node.\n"
+ #~ "  \\%-10[up-node]  Move \"up\" from this node.\n"
+ #~ "  \\%-10[menu-item]  Pick menu item specified by name.\n"
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ "  \\%-10[xref-item]  Follow a cross reference.  Reads name of reference.\n"
+ #~ "  \\%-10[history-node]  Move to the last node seen in this window.\n"
+ #~ "  \\%-10[move-to-next-xref]  Skip to next hypertext link within this "
+ #~ "node.\n"
+ #~ "  \\%-10[move-to-prev-xref]  Skip to previous hypertext link within this "
+ #~ "node.\n"
+ #~ "  \\%-10[select-reference-this-line]  Follow the hypertext link under "
+ #~ "cursor.\n"
+ #~ "  \\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ "  \\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ "\n"
+ #~ "Moving within a node:\n"
+ #~ "---------------------\n"
+ #~ "  \\%-10[scroll-forward]  Scroll forward a page.\n"
+ #~ "  \\%-10[scroll-backward]  Scroll backward a page.\n"
+ #~ "  \\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ #~ "  \\%-10[end-of-node]  Go to the end of this node.\n"
+ #~ "  \\%-10[1scroll-forward]  Scroll forward 1 line.\n"
+ #~ "  \\%-10[1scroll-backward]  Scroll backward 1 line.\n"
+ #~ "\n"
+ #~ "Other commands:\n"
+ #~ "---------------\n"
+ #~ "  \\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ "  \\%-10[last-menu-item]  Pick last item in node's menu.\n"
+ #~ "  \\%-10[index-search]  Search for a specified string in the index "
+ #~ "entries of this Info\n"
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ "  \\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ "  \\%-10[search]  Search forward through this Info file for a specified "
+ #~ "string,\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ "  \\%-10[search-backward]  Search backward in this Info file for a "
+ #~ "specified string,\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "Commandes de base dans une fenêtre Info\n"
+ #~ "---------------------------------------\n"
+ #~ "\n"
+ #~ "  \\%-10[quit-help]          Quitter ce menu d'aide.\n"
+ #~ "  \\%-10[quit]               Quitter le mode Info aussi.\n"
+ #~ "  \\%-10[get-info-help-node] Invoquer le tutoriel de Info.\n"
+ #~ "\n"
+ #~ "Sélection d'autres noeuds:\n"
+ #~ "-------------------------\n"
+ #~ "  \\%-10[next-node]          Aller au prochain \"next\" noeud de ce "
+ #~ "noeud.\n"
+ #~ "  \\%-10[prev-node]          Aller au noeud précédent \"previous\" de ce "
+ #~ "noeud.\n"
+ #~ "  \\%-10[up-node]            Aller vers le haut \"up\" depuis ce noeud.\n"
+ #~ "  \\%-10[menu-item]          Prendre l'item menu spécifié par le nom.\n"
+ #~ "                              sélectionner un item menu provoque la "
+ #~ "sélection d'un\n"
+ #~ "                              autre noeud\n"
+ #~ "  \\%-10[xref-item]          Suivre une référence croisée.  Lire le nom "
+ #~ "de référence.\n"
+ #~ "  \\%-10[history-node]       Aller au dernier noeud vu dans cette "
+ #~ "fenêtre.\n"
+ #~ "  \\%-10[move-to-next-xref]  Escamoter le prochain lien hypertexte à "
+ #~ "l'intérieur de ce noeud.\n"
+ #~ "  \\%-10[move-to-prev-xref]  Escamoter le lien hypertextre précédent à "
+ #~ "l'intérieur de ce noeud.\n"
+ #~ "  \\%-10[select-reference-this-line]\n"
+ #~ "                             Suivre le lien hypertexte pointé par le "
+ #~ "curseur.\n"
+ #~ "  \\%-10[dir-node]           Se déplacer au noeud répertoire "
+ #~ "`directory'. \n"
+ #~ "                               équivalent à `\\[goto-node] (DIR)'.\n"
+ #~ "  \\%-10[top-node]           Aller au noeud supérieur, équivalent à `"
+ #~ "\\[goto-node] Top'.\n"
+ #~ "\n"
+ #~ "Déplacement à l'intérieur d'un noeud:\n"
+ #~ "------------------------------------\n"
+ #~ "  \\%-10[scroll-forward]     Avancer d'une page.\n"
+ #~ "  \\%-10[scroll-backward]    Reculer d'une page.\n"
+ #~ "  \\%-10[beginning-of-node]  Aller au début de ce noeud.\n"
+ #~ "  \\%-10[end-of-node]        Aller à la fin de ce noeud.\n"
+ #~ "  \\%-10[1scroll-forward]    Avancer d'une ligne.\n"
+ #~ "  \\%-10[1scroll-backward]   Reculer d'une ligne.\n"
+ #~ "\n"
+ #~ "Autres commandes:\n"
+ #~ "----------------\n"
+ #~ "  \\%-10[menu-digit]         Prendre les item du 1er...9e dans le menu "
+ #~ "des noeuds.\n"
+ #~ "  \\%-10[last-menu-item]     Prendre le dernier item dans le menu des "
+ #~ "noeuds.\n"
+ #~ "  \\%-10[index-search]       Rechercher une chaîne spécifique dans "
+ #~ "l'index#n                              du fichier Info et sélectionner le "
+ #~ "noeud\n"
+ #~ "                              référencé par la première entrée trouvée.\n"
+ #~ "  \\%-10[goto-node]          Aller au noeud spécifié par le nom.\n"
+ #~ "                              Vous pouvez inclure une nom du fichier "
+ #~ "aussi\n"
+ #~ "                              comme dans (NOM_DE_FICHIER)NOM_DE_NOEUD.\n"
+ #~ "  \\%-10[search]             Rechercher par en avant à l'aide du fichier "
+ #~ "Info\n"
+ #~ "                              pour une chaîne spécifique et sélectionner "
+ #~ "le noeud\n"
+ #~ "                              de la prochaine occurenre trouvée.\n"
+ #~ "  \\%-10[search-backward]    Rechercher par en arrière à l'aide du "
+ #~ "fichier Info\n"
+ #~ "                              pour une chaîne spécifique et sélectionner "
+ #~ "le noeud\n"
+ #~ "                              de la prochaine occurence trouvée.\n"
+ 
+ #~ msgid "Basic Commands in Info Windows\n"
+ #~ msgstr "Commandes de base de fenêtres Info\n"
+ 
+ #~ msgid "Moving within a node:\n"
+ #~ msgstr "Déplacement dans un noeud:\n"
+ 
+ #~ msgid "Selecting other nodes:\n"
+ #~ msgstr "Sélection des autres noeuds:\n"
+ 
+ #~ msgid "Other commands:\n"
+ #~ msgstr "Autres commandes:\n"
+ 
+ #~ msgid "%s' argument to @image command not found"
+ #~ msgstr "« %s » arguement de la commande @image n'a pas été retrouvé"
+ 
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ #~ "\n"
+ #~ "Translate Texinfo source documentation to various other formats:\n"
+ #~ "Info files suitable for reading online with Emacs or standalone GNU Info\n"
+ #~ "(by default); plain text (with --no-headers); or HTML (with --html).\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --commands-in-node-names  allow @ commands in node names.\n"
+ #~ " -D VAR                    define a variable, as with @set.\n"
+ #~ "--docbook                  output DocBook rather than Info format.\n"
+ #~ " -E, --macro-expand FILE   output macro-expanded source to FILE.\n"
+ #~ " --error-limit=NUM         quit after NUM errors (default %d).\n"
+ #~ " --fill-column=NUM         break Info lines at NUM characters (default %"
+ #~ "d).\n"
+ #~ " --footnote-style=STYLE    output footnotes according to STYLE:\n"
+ #~ "                            `separate' to place footnotes in their own "
+ #~ "node,\n"
+ #~ "                            `end' to place the footnotes at the end of "
+ #~ "the\n"
+ #~ "                             node in which they are defined (the "
+ #~ "default).\n"
+ #~ " --force                   preserve output even if errors.\n"
+ #~ " --help                    display this help and exit.\n"
+ #~ " --html                    output HTML rather than Info format.\n"
+ #~ " -I DIR                    append DIR to the @include search path.\n"
+ #~ " --ifhtml                  process @ifhtml and @html text even when not\n"
+ #~ "                            generating HTML.\n"
+ #~ " --ifinfo                  process @ifinfo text even when generating "
+ #~ "HTML.\n"
+ #~ " --iftex                   process @iftex and @tex text.\n"
+ #~ "                            implies --no-split.\n"
+ #~ msgstr ""
+ #~ "Usage: %s [OPTION]... TEXINFO-FICHIER...\n"
+ #~ "\n"
+ #~ "Traduire une documentation Texinfo source en divers autres formats:\n"
+ #~ "Fichiers Info adéquats pour lire en ligne avec Emacs ou GNU Info "
+ #~ "autonome\n"
+ #~ "(par défaut); format plein texte (avec --no-headers); ou HTML (avec --"
+ #~ "html).\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --commands-in-node-names  Permettre des commandes @ dans les noms de "
+ #~ "noeud.\n"
+ #~ " -D VAR                    Définir une variable, comme avec @set.\n"
+ #~ " -E, --macro-expand FILE   Sortir un source Texinfo avec macros dans "
+ #~ "FILE.\n"
+ #~ " --error-limit=NUM         Quitter après NUM erreurs (par défaut %d).\n"
+ #~ " --fill-column=NUM         Tronquer les lignes Info à NUM caractères "
+ #~ "(défaut %d).\n"
+ #~ " --footnote-style=STYLE    Sortir les notes de bas de page selon option "
+ #~ "STYLE:\n"
+ #~ "                            « separate » pour placer les notes dans leur "
+ #~ "noeud;\n"
+ #~ "                            « end » pour les placer à la fin du noeud "
+ #~ "dans \n"
+ #~ "                            lequel elles ont été définies (par défaut).\n"
+ #~ " --force                   Conserver la sortie même s'il y a des "
+ #~ "erreurs.\n"
+ #~ " --help                    Afficher ce menu d'aide et quitter.\n"
+ #~ " --html                    Écrire en format HTML plutôt qu'en format "
+ #~ "Info;\n"
+ #~ " -I DIR                    Ajouter à la fin DIR au chemin de fouille "
+ #~ "@include.\n"
+ #~ " --ifhtml                  Traiter le textuel sous @ifhtml et @html même\n"
+ #~ "                            lorsqu'on ne génère pas du HTML.\n"
+ #~ " --ifinfo                  Traiter le textuel sous @ifinfo même "
+ #~ "lorsqu'on\n"
+ #~ "                            génère du HTML.\n"
+ #~ " --iftex                   Traiter le textuel sous @iftex et sous @tex.\n"
+ #~ "                             implique l'option --no-split.\n"
+ 
+ #~ msgid ""
+ #~ " --no-headers              suppress Info node separators and Node: "
+ #~ "lines;\n"
+ #~ "                            write to standard output without --output.\n"
+ #~ " --no-ifhtml               do not process @ifhtml and @html text.\n"
+ #~ " --no-ifinfo               do not process @ifinfo text.\n"
+ #~ " --no-iftex                do not process @iftex and @tex text.\n"
+ #~ " --no-split                suppress splitting of Info or HTML output,\n"
+ #~ "                            generate only one output file.\n"
+ #~ " --no-validate             suppress node cross-reference validation.\n"
+ #~ " --no-warn                 suppress warnings (but not errors).\n"
+ #~ " --number-sections         include chapter, section, etc. numbers in "
+ #~ "output.\n"
+ #~ " -o, --output=FILE         output to FILE (directory if split HTML),\n"
+ #~ "                            ignoring any @setfilename.\n"
+ #~ " -P DIR                    prepend DIR to the @include search path.\n"
+ #~ " --paragraph-indent=VAL    indent Info paragraphs by VAL spaces (default %"
+ #~ "d).\n"
+ #~ "                            if VAL is `none', do not indent;\n"
+ #~ "                            if VAL is `asis', preserve existing "
+ #~ "indentation.\n"
+ #~ " --reference-limit=NUM     warn about at most NUM references (default %"
+ #~ "d).\n"
+ #~ " --split-size=NUM          split into files at NUM size. (default %d).\n"
+ #~ " -U VAR                    undefine a variable, as with @clear.\n"
+ #~ " -v, --verbose             explain what is being done.\n"
+ #~ " --version                 display version information and exit.\n"
+ #~ " --xml                     output XML (TexinfoML) rather than Info "
+ #~ "format.\n"
+ #~ msgstr ""
+ #~ " --no-headers              Supprimer les séparateurs de noeud Info et "
+ #~ "Node:\n"
+ #~ "                            lignes et écrire une sortie standard sans --"
+ #~ "output.\n"
+ #~ " --no-ifhtml               Ne pas traiter le textuel sous @ifhtml et "
+ #~ "@html.\n"
+ #~ " --no-ifinfo               Ne pas traiter le textuel sous @ifinfo.\n"
+ #~ " --no-iftex                Ne pas traiter le textuel sous @iftex et "
+ #~ "@tex.\n"
+ #~ " --no-split                Supprimer la troncation de fichiers Info "
+ #~ "volumineux\n"
+ #~ "                           ou la génération d'un fichier HTML par noeud.\n"
+ #~ " --no-validate             Supprimer la validation de la table de "
+ #~ "références.\n"
+ #~ " --no-warn                 Supprimer les avertissements (mais pas les "
+ #~ "erreurs).\n"
+ #~ " --number-sections         Inclure les numéros de chapitre, section, etc. "
+ #~ "en sortie.\n"
+ #~ " -o, --output=FICHIER      Écrire dans FICHIER, ignorer tout "
+ #~ "@setfilename.\n"
+ #~ " -P DIR                    Ajouter au début DIR au chemin de fouille "
+ #~ "@include.\n"
+ #~ " --paragraph-indent=VAL    Indenter les paragraphes de VAL espaces "
+ #~ "(défaut %d).\n"
+ #~ "                            si VAL est « none », ne pas indenter;\n"
+ #~ "                            si VAL est « asis », garder l'indentation "
+ #~ "existante.\n"
+ #~ " --reference-limit=NUM     Avertir après plus de NUM références (défaut %"
+ #~ "d).\n"
+ #~ " --split-size=NUM          Morceler en fichiers de taille NUM. (défaut %"
+ #~ "d).\n"
+ #~ " -U VAR                    Rendre indéfinie une variable, comme avec "
+ #~ "@clear.\n"
+ #~ " -v, --verbose             En mode bavard, expliquer ce qui a été fait.\n"
+ #~ " --version                 Afficher la version du logiciel et quitter.\n"
+ #~ " --xml                     Produire en XML (TexinfoML) plutôt qu'en "
+ #~ "format Info.\n"
Files texinfo-4.12/po/he.gmo and texinfo-4.13/po/he.gmo differ
diff -Nrc2 texinfo-4.12/po/he.po texinfo-4.13/po/he.po
*** texinfo-4.12/po/he.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/he.po	Thu Sep 18 11:38:31 2008
***************
*** 0 ****
--- 1,3482 ----
+ # Hebrew messages for GNU Texinfo          -*- coding: hebrew-iso-8bit -*-
+ # Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ # Eli Zaretskii <eliz@is.elta.co.il>, 2002.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.2\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2002-04-03 12:31+0300\n"
+ "Last-Translator: Eli Zaretskii <eliz@gnu.org>\n"
+ "Language-Team: Hebrew <eliz@gnu.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO-8859-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s úéðëú øåáò éòîùî-ãç åðéà `%s' ïééôàî\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `--%s' ïééôàî\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `%c%s' ïééôàî\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s úéðëú øåáò èðîåâøà áééçî `%s' ïééôàî\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s úéðëú øåáò `--%s' ääåæî-éúìá ïééôàî\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s úéðëú øåáò `%c%s' ääåæî-éúìá ïééôàî\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: é÷åç-éúìá ïééôàî -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s úéðëú øåáò éåâù ïééôàî -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: èðîåâøà áééçî ïééôàî -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s úéðëú øåáò éòîùî-ãç åðéà `-W %s' ïééôàî\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `-W %s' ïééôàî\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, fuzzy, c-format
+ msgid "memory exhausted"
+ msgstr "éìàèøéåä ïåøëæä øîâð"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "äîéã÷ ãçà åú ïîñ ææä"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "äøåçà ãçà åú ïîñ ææä"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "äøåùä úìéçúì ïîñ ææä"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "äøåùä óåñì ïîñ ææä"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "äîéã÷ úçà äìéî ïîñ ææä"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "äøåçà úçà äìéî ïîñ ææä"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "åéìò ïîñäù åúä ÷çî"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "ïîñä éðôìù åúä ÷çî"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "äðåøçà äìåòô ÷ñôä åà ìèá"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "(êøåö ùé íà äúåà íìùä) òåöéáì åæ äøåù ìá÷"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "éìåìéî ïôåàá àáä åúä óñåä"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "äæ åú óñåä"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "TAB óñåä"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "ïîñä ãéìù íéåú éðù ìù øãñ äðù"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "äðåøçà ä÷éçî ìù ïëåú øæçä"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "ä÷éø úå÷éçîä úøéâà úòáè"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "úîãå÷ ä÷éçî ïëåú øæçä"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "äøåùä óåñ ãò ÷çî"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "äøåù úìéçú ãò ÷çî"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "ïîñä éøçàù äìéîä ÷çî"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "ïîñä éðôìù äìéîä ÷çî"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "äîìùä óà ïéà"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "íìù àì"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "úåéøùôà úåîìùä âöä"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "äãéçé äîìùä"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "             :úçà äîìùä\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "             :úåîìùä %d\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "äîìùä óñåä"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "...úåîìùä úîéùø áéëøî"
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "úåîìùää ïåìç úà ìåìâ"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "íééìåù úåøòä âéöäì ïúéð àì"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "åæ ä÷ñéôì íééìåù úåøòä âöä"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- Footnotes ----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "äæ õáå÷ ìù ñ÷ãðéàá úæåøçî ùôç"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "...íéñ÷ãðéàä ìë úà ÷øåñ"
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr ".ñ÷ãðéà óà àöîð àì"
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Index entry: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr "äðåøçà `\\[index-search]' úãå÷ôî úæåøçî íàåúä óñåð ñ÷ãðéà èéøô ùôç"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr ".ñ÷ãðéàá ùåôéçì úîãå÷ úæåøçî ïéà"
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr ".ñ÷ãðéà éèéøô åàöîð àì"
+ 
+ #: info/indices.c:374
+ #, fuzzy, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr ".\"%s\" úæåøçî íéìéëîä ñ÷ãðéà éèéøô%s ïéà"
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr " øúåé"
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "!úåàøéäì êéøö åðéàù èñ÷è"
+ 
+ #: info/indices.c:421
+ #, fuzzy, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "(.ãåò àåöîì äñðé `\\[next-index-match]') .\"%s\" èéøô %s-á éúàöî"
+ 
+ #: info/indices.c:549
+ #, fuzzy, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "...\"%s\" ìù íéñ÷ãðéàä ìë úà ÷øåñ"
+ 
+ #: info/indices.c:604
+ #, fuzzy, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr ".åìù ñ÷ãðéàá \"%s\" ìéëî ïàë íéð÷úåîäî Info õáå÷ óà"
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "úàöîù äîî èéøôú äðáå úæåøçî íäá ùôç ,íéòåãé Info éöá÷ ìù íéñ÷ãðéàä ìëá èèç"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Index apropos: "
+ 
+ #: info/indices.c:662
+ #, fuzzy, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: (úåîéàúîä úåà÷ñôäå \"%s\" íéìéëîä ñ÷ãðéà éèéøô)\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr ".øúåé áø òãéî úâöäì --help äñð\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "`%s' úæåøçî íéìéëîä ñ÷ãðéà éèéøô ïéà\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ "      .øåáéã æúðñîì åîéàúäì éãë êñîì äáéúë ïôåà äðù -b, --speech-friendly\n"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "                       ,bug-texinfo@gnu.org-ì äì÷ú éçååéã çåìùì àð\n"
+ "               .help-texinfo@gnu.org-ì ïåéãì íéàùåðå úåéììë úåìàùå\n"
+ "         .http://www.gnu.org/software/texinfo/ :Texinfo ìù úéáä óã"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr ".äàöîð àì `%s' ä÷ñéô"
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr ".äàöîð àì `%s' õáå÷á `%s' ä÷ñéô"
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "!ïåìç óà àöîð àì"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "!äæ ïåìçá úâöåîä ä÷ñéôá àöîð åðéà ïîñä"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr ".ãéçé ïåìç ÷åçîì ïúéð àì"
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr ".íéèéøôú ïéà åæ ä÷ñéôá"
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr ".íééìåù úåøòä ïéà åæ ä÷ñéôá"
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr ".íéøåùé÷ ïéà åæ ä÷ñéôá"
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr ".%sì äééðôä ïéà åæ ä÷ñéôá"
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr ".äøæò úìá÷ì `?' äñð ;Info-ì úøëåî äðéà `%c' äãå÷ô"
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr ".Info õéøäì éãë åéã ììëåùî åðéà `%s' âåñî âö"
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr ".åæ ä÷ñéô ìù ïåøçàä ãåîòá øáë ä/úà"
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr ".åæ ä÷ñéô ìù ïåùàøä ãåîòá øáë ä/úà"
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr ".ãçà ïåìç ÷ø íéé÷"
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr ".éãî øúåé ïè÷ äéä ïåìçä"
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr ".åäùìë ïåìç ÷åçîì àð ;äøæò ïåìç âéöäì íå÷î ÷éôñî ïéà"
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  äæ äøæò ïåìç øåâñ\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Info úéðëúî éøîâì àö\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Info ùîúùîì êéøãî âöä\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "  %-10s  äøåçà úçà äøåù ïîñ ææä\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "  %-10s  äîéã÷ úçà äøåù ïîñ ææä\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  äøåçà ãçà óã ìåìâ\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  äîéã÷ ãçà óã ìåìâ\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  úéçëåð ä÷ñéô úìéçúì ïîñ ææä\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  úéçëåð ä÷ñéô óåñì ïîñ ææä\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "\\%-10[move-to-next-xref]  úéçëåð ä÷ñéôá àáä øåùé÷ì ïîñ ææä\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr "\\%-10[select-reference-this-line]  åéìò àöîð ïîñäù øåùé÷ éøçà áå÷ò\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "\\%-10[history-node]  äæ ïåìçá äâöåäù äðåøçàä ä÷ñéôì øåæç\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[prev-node]  úéçëåð ä÷ñéô éðôìù ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[next-node]  úéçëåð ä÷ñéô éøçà äàáä ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  úéçëåð ä÷ñéô éðôìù ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  úéçëåð ä÷ñéô éøçà äàáä ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  úéçëåð ä÷ñéô ìù áà-ú÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[end-of-node]  úéçëåð ä÷ñéô óåñì ïîñ ææä\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[end-of-node]  úéçëåð ä÷ñéô óåñì ïîñ ææä\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  úéçëåðä ä÷ñéôä èéøôúá éòéùú ãò ïåùàø óéòñ øçá\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  úéçëåðä ä÷ñéôä èéøôúá ïåøçà óéòñ øçá\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  åîù é\"ôò èéøôúî óéòñ øçá\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  øåùé÷ä íù àøå÷ ;øåùé÷ øçà áå÷ò\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  äîù é\"ôò ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  äæ Info õáå÷á êìéàå ïàëî úæåøçî ùôç\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[prev-node]  úéçëåð ä÷ñéô éðôìù ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "  %-10s  øåáòå äæ Info õáå÷ ìù íéñ÷ãðéàá úæåøçî ùôç\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  øåáòå äæ Info õáå÷ ìù íéñ÷ãðéàá úæåøçî ùôç\n"
+ "                 íàåú àöîðù ïåùàø ñ÷ãðéà èéøô äòéáöî äéìà ä÷ñéôì\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "úéçëåð äìåòô ìèá"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "                     Info úåðåìçá úåéñéñá úåãå÷ô\n"
+ "                     ***************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  äæ äøæò ïåìç øåâñ\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Info úéðëúî éøîâì àö\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Info ùîúùîì êéøãî âöä\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  úéçëåð ä÷ñéô éøçà äàáä ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  úéçëåð ä÷ñéô éðôìù ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  úéçëåð ä÷ñéô ìù áà-ú÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "\\%-10[menu-item]  åîù é\"ôò èéøôúî óéòñ øçá\n"
+ "            .úøçà ä÷ñéôì øáòîì úîøåâ èéøôúî äøéçá\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  øåùé÷ä íù àøå÷ ;øåùé÷ øçà áå÷ò\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  äæ ïåìçá äâöåäù äðåøçàä ä÷ñéôì øåæç\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  úéçëåð ä÷ñéôá àáä øåùé÷ì ïîñ ææä\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  åéìò àöîð ïîñäù øåùé÷ éøçà áå÷ò\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  `g (DIR)'-ì êøò-äååù ;DIR ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  `g Top'-ì êøò-äååù ;Top ä÷ñéôì øåáò\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "                           :ä÷ñéô êåúá ïîñ úòåðú\n"
+ "                           ---------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  äîéã÷ ãçà óã ìåìâ\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  äøåçà ãçà óã ìåìâ\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  úéçëåð ä÷ñéô úìéçúì ïîñ ææä\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s úéçëåð ä÷ñéô óåñì ïîñ ææä\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  äîéã÷ úçà äøåù ïîñ ææä\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  äøåçà úçà äøåù ïîñ ææä\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "                                   :úåøçà úåãå÷ô\n"
+ "                                   -------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  úéçëåðä ä÷ñéôä èéøôúá éòéùú ãò ïåùàø óéòñ øçá\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  úéçëåðä ä÷ñéôä èéøôúá ïåøçà óéòñ øçá\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10[index-search]  øåáòå äæ Info õáå÷ ìù íéñ÷ãðéàá úæåøçî ùôç\n"
+ "                 íàåú àöîðù ïåùàø ñ÷ãðéà èéøô äòéáöî äéìà ä÷ñéôì\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10[goto-node]  äîù é\"ôò ä÷ñéôì øåáò\n"
+ "              .(FILENAME)NODENAME-á åîë ä÷ñéôä íùî ÷ìçë õáå÷ íù ïééöì ïúéð\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  äæ Info õå÷á êìéàå ïàëî úæåøçî ùôç\n"
+ "                    .úæåøçîä äàöîð äá ä÷ñéôì øåáòå\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  äæ Info õå÷á êìéàå ïàëî úæåøçî ùôç\n"
+ "                    .úæåøçîä äàöîð äá ä÷ñéôì øåáòå\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "                               :àéä úéçëåð ùåôéç úîéùø\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "                                 :Info úåðåìçá úåéøùôà úåãå÷ô\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "                                :úåãå÷ôä úøåùá úåéøùôà úåãå÷ô\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "                :ãáìá %s úåòöîàá ìéòôäì ïúéð úåàáä úåãå÷ôä úà\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "                        :ììë äìòôäì úåðúéð ïðéà úåàáä úåãå÷ôä\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "äøæò êñî âöä"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Info úëøòîá ùåîéùì êéøãî âöä"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "íéåñî ù÷î øåáò ãåòéú âöä"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Describe key: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr ".øãâåî åðéà \"ESC %s\""
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr ".øãâåî åðéà \"%s\""
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s is defined to %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "úîéåñî äãå÷ô úìòôäì ãéì÷äì äî âöä"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Where is command: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "åäùìë ù÷îì äøåù÷ äðéà `%s' äãå÷ôä"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr ".`%s' úìòôäì äãéçéä êøãä àåä `%s'"
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr ".%s äãå÷ôä úà ìéòôé %s"
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr ".úîéé÷ äðéà `%s' íùá äéö÷ðåô"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "                           :úåøçà úåà÷ñéôá äøéçá\n"
+ "                           ---------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "éåâù äãå÷ôì íéèðîåâøàä øôñî"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "`%s' èì÷ õáå÷ úçéúôá äì÷ú"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "`%s' èìô õáå÷ úøéöéá äì÷ú"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "`%s'-ì äáéúëá äì÷ú"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "`%s' èìô õáå÷ úøéâñá äì÷ú"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "éãî äëåøà íéù÷î úøãñ"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "äøñç íéù÷î úøãñ"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "øåñà (\\000) ÷éø åúá ùåîéùä"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "øåñà (^%c) ÷éø åúá ùåîéùä"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "äãå÷ô íù øñç"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "éãî êåøà ÷ìç"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "äòåãé äððéà `%s' äãå÷ô"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "éãî êåøà äãå÷ô íù"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "`%s' äãå÷ôì êùîäá íéøúåéî íéåú"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "äðúùîä íù øñç"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "äðúùîä íù éøçà ãéî `=' øñç"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "éãî êåøà äðúùîä íù"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "éãî êåøà êøò"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\" õáå÷á %u äøåùá "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "            %s [ïééôàî]... [èì÷-õáå÷]  :ùåîéùä ïôåà\n"
+ "\n"
+ ":ìãçîä úøéøá) èì÷-õáå÷ àøå÷ .infokey õáå÷ì íéù÷î úåøãâä ìù øå÷î õáå÷ ìôî÷\n"
+ "      .(úøçà úðééö àì íà) $HOME/.info-ì ìôîå÷î õáå÷ áúåëå ($HOME/.infokey\n"
+ "\n"
+ "                                                                :íéðééôàî\n"
+ "       .$HOME/.info-á íå÷îá FILE õáå÷á èìô íåùø   --output FILE\n"
+ "                   .úéðëúäî àöå äæ äøæò êñî âöä   --help\n"
+ "                  .àöå úéðëúä úñøéâ ìò òãéî âöä   --version\n"
+ "\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "ïé÷ú infokey õáå÷ úåéäì éãëá éãî ïè÷ -- `%s' õáå÷î íìòúî"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "ïé÷ú infokey õáå÷ úåéäì éãëá éãî ìåãâ -- `%s' õáå÷î íìòúî"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "àø÷ð õáå÷ä ìë àì - `%s' infokey õáå÷ úàéø÷á äì÷ú"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "åðåëãò êøåöì infokey õøä -- (éåâù íñ÷ øôñî) ïé÷ú åðéà `%s' infokey õáå÷"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "åðåëãò êøåöì infokey õøä -- ïëãåòî åðéà `%s' infokey õáå÷"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "åðåëãò êøåöì infokey õøä -- (éåâù ÷ìç êøåà) ïé÷ú åðéà `%s' infokey õáå÷"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr "åðåëãò êøåöì infokey õøä -- (éåâù ÷ìç ãå÷) ïé÷ú åðéà `%s' infokey õáå÷"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "äðìòôú àì úåãçà íéù÷î úåøãâä -- infokey õáå÷á íééåâù íéðåúð"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr "ó÷åúá àì úåãçà íéðúùî úåøãâä -- infokey õáå÷á íééåâù íéðåúð"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "äúåà øàúå Info úãå÷ô ìù íù àø÷"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Describe command: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "äúåà òöáå úåãå÷ôä úøåùî äãå÷ô ìù íù àø÷"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr ".äæ áöîá `echo-area' úãå÷ô òöáì ïúéð àì"
+ 
+ #: info/m-x.c:153
+ #, fuzzy, c-format
+ msgid "Undefined command: %s"
+ msgstr "`%s' úøëåî-éúìá äàøåä"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "âöåîä ïåìçä äáåâ úà äðù"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Set screen height to (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "                  :íéììåë äæ õáå÷ì åãáåòù øå÷î éöá÷\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr ".%s õáå÷ ãáòì ïúéð àì\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menu:\n"
+ "  (õáå÷)ä÷ñéô                    úåøåù 'ñî  ìãåâ        áà-õáå÷\n"
+ "  -----------                    ---------  ----        -------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "                .äðåøçàì úø÷éá ïäá úåà÷ñéôä úîéùøî ïëåäù èéøôú ïìäì\n"
+ "            .øçà ïåìçá `\\[history-node]' ìòôä åà èéøôúäî ä÷ñéô øçá\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "äðåøçàì úø÷éá ïäá úåà÷ñéôä ìë ìù èéøôú íò ïåìç âöä"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "úåðåìçä ãçàá íãå÷ úâöä äúåà ä÷ñéô øçá"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Select visited node: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "!íìòð (%s) øåùé÷ä ìù ãòéä"
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ ".âöåîä èéøôúäî äøéçáì \\[menu-item] ,àøæò úìá÷ì \\[get-help-window] ù÷ä .%s "
+ "àñøéâ Info úéðëúì íéàáä íéëåøá"
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "äàáä äøåùì ïîñ ææä"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "úîãå÷ä äøåùì ïîñ ææä"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "äøåùä óåñì ïîñ ææä"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "äææ ñîï ìúçéìú äùåøä"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Next äãù"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr ".äæ êîñîá úåà÷ñéô øúåé ïéà"
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr ".åæ ä÷ñéôá `Prev' øåùé÷ ïéà"
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr ".åæ ä÷ñéô øåáò `Up'-å `Prev' ììåë åðéà äæ êîñî"
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr ".úåà÷ñéôä äðáîá øúåé ÷åîò åà äîéã÷ òåð"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr ".úåà÷ñéôä äðáîá äìòî éôìë åà äøåçà òåð"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr ".äæ ïåìçá äîéã÷ ìåìâ"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "ïåìç ìãåâ ìù ç\"îøá êøò äðùå äæ ïåìçá äîéã÷ ìåìâ"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "úéçëåðä ä÷ñéôäî úàöì éìáî äæ ïåìçá äîéã÷ ìåìâ"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "ïåìç ìãåâ ìù ç\"îøá êøò äðùå úéçëåðä ä÷ñéôäî úàöì éìáî äæ ïåìçá äîéã÷ ìåìâ"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "äæ ïåìçá äøåçà ìåìâ"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "ïåìç ìãåâ ìù ç\"îøá êøò äðùå äæ ïåìçá äøåçà ìåìâ"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "úéçëåðä ä÷ñéôäî úàöì éìáî äæ ïåìçá äøåçà ìåìâ"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "ïåìç ìãåâ ìù ç\"îøá êøò äðùå úéçëåðä ä÷ñéôäî úàöì éìáî äæ ïåìçá äøåçà ìåìâ"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "åæ ä÷ñéô úìéçúì ïîñ ææä"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "åæ ä÷ñéô óåñì ïîñ ææä"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "äèî éôìë úåøåù N ìåìâ"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "äìòî éôìë úåøåù N ìåìâ"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "äèî éôìë äâåöú éöç ìåìâ"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "äìòî éôìë äâåöú éöç ìåìâ"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "àáä ïåìçá øçá"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "íãå÷ä ïåìçá øçá"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "íééðùì éçëåðä ïåìçä ÷ìç"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "éçëåðä ïåìçä úà øñä"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "òåá÷ ïåìç øéñäì ïúéð àì"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "éçëåðä ãáìî úåðåìçä ìë úà øñä"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "àáä ïåìçá ìåìâ"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "àáä ïåìçá äøåçà ìåìâ"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "äæ ïåìç (ïè÷ä åà) ìãâä"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "íéâöåîä úåðåìçä ìë ïéá äâåöúä çèù ÷ìç"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "éçëåðä ïåìçá åùìâù úåøåù úâöä áöî äðù"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "äàáä ä÷ñéôá øåáò"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "úîãå÷ä ä÷ñéôì øåáò"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "ìòîù ä÷ñéôì øåáò"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "äæ êîñîá äðåøçàä ä÷ñéôì øåáò"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "äæ ïåìçá úåà÷ñéô øúåé ïéà"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "äæ êîñîá äðåùàøä ä÷ñéôì øåáò"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "åæä ä÷ñéôä èéøôúî ïåøçàä óéòñá øçá"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "èéøôúäî äæ óéòñá øçá"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr ".íéôéòñ %d ïéà äæ èéøôúá"
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Menu item (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Menu item: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Follow xref (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Follow xref: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "äîéàúîä ä÷ñéôì øåáòå èéøôúî óéòñ íù àø÷"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "äîéàúîä ä÷ñéôì øåáòå øåùé÷ åà äøòä ìù íù àø÷"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "åæ ä÷ñéôá èéøôúä úìéçúì ïîñ ææä"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "äæ èéøôúî íéôéòñ ìù øùôàä ìëë áø øôñî âöä"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "äéìà øåáòå ä÷ñéô ìù íù àø÷"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Goto node: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr ".íéèéøôú `%s' ïéà ä÷ñéôá"
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr ".`%s' óéòñ ïéà `%s' ä÷ñéô ìù èéøôúá"
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr ".`%s' óéòñá äéìà øù÷î `%s'-á èéøôúä øùà ä÷ñéô éúàöî àì"
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "íäéøçà áå÷òå dir-î äìéçúîä èéøôú éôéòñ úøãéñ àø÷"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Follow menus: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "úéðëúä õéøäì ãöéë úøàúîä ä÷ñéôä úà àöî"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Find Invocation node of [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "åúåà âöäå manpage-ì äééðôä àø÷"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Get Manpage: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "äæ êîñîá (`Top') úéùàøä ä÷ñéôì øåáò"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "`(dir)' ä÷ñéôì øåáò"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Kill node (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "`%s' ä÷ñéô ÷ìñì úåøùôà ïéà"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "äãéçé ä÷ñéô ÷ìñì úåøùôà ïéà"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "äâöåäù äðåøçàä ä÷ñéôì øåæç"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "åæ ä÷ñéô ÷ìñ"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "åúåà âöäå õáå÷ ìù íù àø÷"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Find file: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr ".àöîð àì `%s' õáå÷"
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr ".`%s' èìô õáå÷ úøéöéá äì÷ú"
+ 
+ # Note that this needs to make sense when displayed to the _right_ of
+ # the translated "Writing node foo..." and  "Printing node foo...",
+ # no matter whether the following word is masculine or feminine!
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "á äçìöä"
+ 
+ # No ellipsis because that would look awkward when the translation of
+ # "Done." is appended.
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "`%s' ä÷ñéô èìô"
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "INFO_PRINT_COMMAND êøã åæ ä÷ñéô ïëåú ñôãä"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr ".`%s'-ì ÷éôà úçéúôá äì÷ú"
+ 
+ # No ellipsis because that would look awkward when the translation of
+ # "Done." is appended.
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "%s ä÷ñéô úñôãä"
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "äøåù úìéçú ãò ÷çî"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "... %s õáå÷-úú ÷øåñ"
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "úåéùéøá úåáùçúä êåú äúåà ùôçå úæåøçî àø÷"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "äúåà ùôçå úæåøçî àø÷"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "äøåçà äúåà ùôçå úæåøçî àø÷"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%sfor string [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr " case-sensitively "
+ 
+ # The following 4 are untranslated because they are used with the
+ # format string above in a prompt, and we don't translate prompts.
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "Search backward"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Search"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr ".äàöîð àì úæåøçîä"
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "ïååéë åúåàá ïåøçà ùåôéç ìò øåæç"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "ïåøçà ùåôéçî úæåøçî ïéà"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "êåôä ïååéëá ïåøçà ùåôéç ìò øåæç"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "äúåà ä/ãéì÷î ä/úàù éãë êåú úæåøçî ùôç"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "I-search backward: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "I-search backward: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "I-search: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "I-search: "
+ 
+ # Untranslated because is used with the I-search: prompt.
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Failing "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "íãå÷ä øåùé÷ì ïîñ ææä"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "àáä øåùé÷ì ïîñ ææä"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "úéçëåðä äøåùá òéôåîä èéøôúî óéòñ åà øåùé÷ øçà áå÷ò"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "úéçëåð äìåòô ìèá"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "ìèåá"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "äæ ïåìçá úîéåñî äøåùì ïîñ ææä"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "äâåöú ùãç"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Info úéðëåúî àö"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "äæ ù÷î ìù úåðè÷ úåéúåà úñøéâì äøåù÷ä äãå÷ô ìòôä"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr ".(%s) úøëåî-éúìá äãå÷ô"
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" äéåâù äãå÷ô"
+ 
+ #: info/session.c:4910
+ #, fuzzy, c-format
+ msgid "`%s' is invalid"
+ msgstr "\"%s\" äéåâù äãå÷ô"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "éçëåð éøîåð èðîåâøàì åæ äøôñ óñåä"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "4-á íéé÷ êøò ìåôë åà ,éøîåð èðîåâøà ìù äãì÷ä ìçúä"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "åæ äãå÷ôá ùîúùî \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "!éåðô ïåøëæ øúåé ïéà :readline\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "úéèîåèåà úåîìòðå úåòéôåî íééìåù úåøòä ,\"On\" áöîá íà"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "íéøçà úåðåìç éãîéî äðùî ïåìç ìù ÷åìéñ åà äøéöé ,\"On\" áöîá íà"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "ìéìö úòîùä íå÷îá êñîä éòáöá ÷æáä ,\"On\" áöîá íà"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "äòøúà ìéìö úòîùäì úîøåâ äàéâù ìë ,\"On\" áöîá íà"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ "äôùà óåñéà êéìäú é\"ò íéñåçã íéöá÷ì äö÷åäù ïåøëæ øæçîî Info ,\"On\" áöîá íà"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "ùåôéç úæåøçîì íéàúäù ñ÷ãðéà éèéøô ìù ÷ìçä ùâãåé ,\"On\" áöîá íà"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "ä÷ñéô óåñá äìéìâä úåâäðúä ìò èìåù"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "ïåìçä úåìåáâî àöåé ïîñäùë äâåöú ìåìâì úåøåù øôñî"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "úåéáéñ 8 éìòá ISO éåú âéöîå èìå÷ Info ,\"On\" áöîá íà"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "ä÷ñéô óåñá äìéìâä úåâäðúä ìò èìåù"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "íéðúùî ìù ãé÷ôú øàú"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Describe variable: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Info äðúùî ìù êøò äðù"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Set variable: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Set %s to value (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Set %s to value (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** úðëãåòî äðéà Tags úìáè ***-- "
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), lines ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d lines --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d lines --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Subfile: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: warning: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " for %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr ".íéðééôàî ìù äàìî äîéùø úìá÷ì `%s --help' äñð\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "%s [íéðééôàî]... TEXINFO-õáå÷... :ùåîéùä ïôåà\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "                       ,bug-texinfo@gnu.org-ì äì÷ú éçååéã çåìùì àð\n"
+ "               .help-texinfo@gnu.org-ì ïåéãì íéàùåðå úåéììë úåìàùå\n"
+ "         .http://www.gnu.org/software/texinfo/ :Texinfo ìù úéáä óã"
+ 
+ #: install-info/install-info.c:597
+ #, fuzzy, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "* Menu:\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s õáå÷ ìù (%s) äàéø÷á ïäå (%s) äøéöéá ïä äì÷ú\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "÷éø åðéä %s õáå÷"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "íàåú END-INFO-DIR-ENTRY àìì START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "íàåú START-INFO-DIR-ENTRY àìì END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr ".ãáìá úçà íòô %s-ì Info õáå÷ ïééöì ïúéð\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "`%s' øúåéî èðîåâøà"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ".äøæò úìá÷ì --help äñð ;èì÷ õáå÷ ïåéö ïéà"
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ".äøæò úìá÷ì --help äñð ;dir õáå÷ ïåéö ïéà"
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "`%s'-á éùàø èéøôú éôéòñ ïéà"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "÷çîð àì íåìë ;`%s' øåáò èéøôú éôéòñ åàöîð àì"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, fuzzy, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "%c%s-ì éåâù èðîåâøà"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "øàåðé"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "øàåøáô"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "õøî"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "ìéøôà"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "éàî"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "éðåé"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "éìåé"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "èñåâåà"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "øáîèôñ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "øáåè÷åà"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "øáîáåð"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "øáîöã"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "@var êåúá %c øéáñ-éúìá åú"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "è÷ôà ìë @sc-ì ïéà ïëì ,úåìåãâ úåéúåàá åìåë @sc ìù èðîåâøà"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "%c àöîð êà ,`{' ì\"ö"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "verb êåúá õáå÷ óåñ"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "%c àöîð êà ,`}' ì\"ö"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "ïùåéî åðéä %c%s"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "`%s' àì ,éáåéç øôñî àåäù èðîåâøà ùøåã @sp"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "%c%s-ì éåâù èðîåâøà"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "àåäù åîë"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "ïéà"
+ 
+ #: makeinfo/cmds.c:2049
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s"
+ msgstr "%c%s-ì éåâù èðîåâøà"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "%c%s-ì éåâù èðîåâøà"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "@def ìù èðîåâøàá `}' øñç"
+ 
+ #: makeinfo/defun.c:711
+ #, fuzzy, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "`%s' êåúá ÷øå êà ùåîéùá øúåî `%sx'"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s úéðëúá %s-å %s øåáò äàéâù ìò çååéã getwd/getcwd\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr ""
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr ""
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr ""
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "See "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`{...}' êåúá úåéäì áééçù ,%c%s ìù èðîåâøà úåéäì íéàúî åðéà `%s'"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "`}'-á úîééúñî äðéà `%s' íééìåù úøòä"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "ä÷ñéôì õåçî íééìåù úøòä"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "íééìåù úåøòä êåúá íééìåù úåøòäá äëéîú ïéà"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "íééìåù úåøòä"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr ""
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr ""
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr ""
+ 
+ #: makeinfo/html.c:800
+ #, fuzzy, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "`%s' :éåâù (node) ä÷ñéô íù"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "`%s' øëåî-éúìá ñ÷ãðéà"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "`%s' ñ÷ãðéà èéøôá `:' ììâá ìùëéé Info"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "øãâåî øáë `%s' ñ÷ãðéà"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "øëåî-éúìá ñ÷ãðéà åðéä @synindex-á `%s' åà `%s'"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr ""
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr ""
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "@printindex-á `%s' øëåî-éúìá ñ÷ãðéà"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "ä÷ñéô ìëì õåçî øãâåî `%s' ñ÷ãðéà èéøô"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(ä÷ñéô ìëì õåçî)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "insertion_type_pname-á éåâù type"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "@enumerate-á úéðñçî úùéìâ"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "%c-á ùãçî ìéçúî ,åìöåð úåéúåàä ìë"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s úàøåäá %citem øåáò áåöéò úèéù :èðîåâøà ùøãð"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "`%s' àöîð íìåà ,`%s' ì\"ö `@end' éøçà"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "íàåú `%cend %s' øñç"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "äøôñ åà úåà ùøåã %s"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "verbatim êåúá õáå÷ óåñ"
+ 
+ #: makeinfo/insertion.c:1942
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "`@%s' êåúá @%s-ì úåòîùî ïéà"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "`Top' ú÷ñéô øöåé ,äðåùàøä ä÷ñéôä éðôì àöîð @menu"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "?@ifinfo íå÷îá @ifnottex-á úô÷åî úåéäì äúéä äëéøö @top ú÷ñéô éë ïëúééä"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "`Top' ú÷ñéô øöåé ,äðåùàøä ä÷ñéôä éðôì àöîð @detailmenu"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2061
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "`@%s' êåúá @%s-ì úåòîùî ïéà"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "âåæ-ïá åì ïéàù `%c%s'"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "åéøçà àåáéù åäùî êéøö `%c%s'"
+ 
+ #: makeinfo/insertion.c:2103
+ #, fuzzy, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "`%s'-ì èðîåâøàë íéàúî åðéà `%s'-ù íåùî `%s'-á éúùîúùä"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "`@%s' êåúá @%s-ì úåòîùî ïéà"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "`%s' êåúá @itemx-ì úåòîùî ïéà"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "äñðëä ÷åìá ìëì õåçî %c%s àöîð"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "ISO 639 é\"ò íéøëåîä ïåùìä éðîéñî ãçà åðéà %s"
+ 
+ #: makeinfo/lang.c:1399
+ #, fuzzy, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "`%s' øëåî-éúìá ãåãé÷ íù"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "êîúð åðéà `%s' ãåãé÷ ,íéøòèöî"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "`%s' éåâù ããå÷î åú"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "`j' åà `i' úåéäì áééç øùà ,%c%s ìù èðîåâøà úåéäì íéàúî åðéà `%c'"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "èðîåâøàë `j' åà `i' ãéçé åú ìá÷î %c%s"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "íãï÷ øãâåä øáë `%s' åø÷àî"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "äðåùàøì øãâåä `%s' ïàë"
+ 
+ #: makeinfo/macro.c:359
+ #, fuzzy, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "øèîøô íù åà \\ íå÷îá ,åø÷àî úáçøäá \\ úåá÷òá `%s'"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "éãî íéáø íéèðîåâøà úììåë `%s' åø÷àîì %d äøåùá äúìéçúù äàéø÷"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "àöîð àì %cend macro"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "@end %s úà íàåú åðéà @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr ".íééãé éúîøä  !úàéâù éãî øúåé\n"
+ 
+ # Not translated because Emacs recognizes warningsby this template.
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: warning: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "åîå÷îá åðéàù %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr ".`%s --help' äñð øúé èåøôì\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "%s [íéðééôàî]... TEXINFO-õáå÷... :ùåîéùä ïôåà\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ " ìãçî úøéøáë ,íéøçà íéðåù íéèîøåôì Texinfo øå÷î úôùá ãåòéú íâøú\n"
+ ".GNU Info  úéðëú åà Emacs úøæòá äàéø÷ì íéîéàúîä Info éöá÷ øöééî \n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, fuzzy, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "                                                          :íééììë íéðééôàî\n"
+ "             .(%d ç\"îøá) úåàéâù NUM éøçà øåöò      --error-limit=NUM\n"
+ "           .úåàéâù åéä íà íâ èìô õáå÷ ÷çîú ìà      --force\n"
+ "                 .úéðëúäî àöå äæ äøæò êñî âöä      --help\n"
+ "         .úåà÷ñéô ïéá úåéðôää úåðé÷ú ÷åãáú ìà      --no-validate\n"
+ " .(äðâöåú úåàéâù úåòãåä) äøäæà úåòãåä âéöú ìà      --no-warn\n"
+ " .(%d ç\"îøá) úåéðôä éáâì úåøäæà NUM-î øúåé àì      --reference-limit=NUM\n"
+ "                    .úéðëúä úìåòô ìò èåøô âöä  -v, --verbose\n"
+ "               .àöå äðëúä úñøéâ éáâì òãéî âöä      --version\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, fuzzy, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "                                                         :èìôä èîøåô úøéçá\n"
+ "           .Info íå÷îá DocBook èîøåôá èìô ïëä      --docbook\n"
+ "              .Info íå÷îá HTML èîøåôá èìô ïëä      --html\n"
+ "               .Info íå÷îá XML èîøåôá èìô ïëä      --xml\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ #, fuzzy
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "                                                       :íééììë èìô éðééôàî\n"
+ "       ,FILE õáå÷ì åø÷àî úáçøä øçàì øå÷î áåúë  -E, --macro-expand FILE\n"
+ "                  .@setfilename-î úåîìòúä êåú\n"
+ "úåà÷ñéô éãéøôîå íéèéøôú ,Node: úåøúåë àìì èìô      --no-headers\n"
+ "                   èñëè õáå÷ ïéëî Info èîøåôá\n"
+ "                 .øúåé øö÷ èìô - HTML èîøåôáå\n"
+ ".éð÷ú èìô õåøòì áåúë ,--output øãòéäá ,ïë-åîë\n"
+ "                      .ãáìá ãçà èìô õáå÷ áåúë      --no-split\n"
+ "               .èìô õáå÷á úåà÷ñéôå íé÷øô øøôñ      --number-sections\n"
+ "     .(HTML èìô íà äé÷éú) FILE õáå÷ì èìô áåúë  -o, --output=FILE\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, fuzzy, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "                                          :èñëè åà Info èîøåôá èìô éðééôàî\n"
+ "      øãâåîä é\"ôò èìôá úåøæ úåôùá úåéúåà áåúë      --enable-encoding\n"
+ "                  .@documentencoding úàøåäá\n"
+ "  .(%d ç\"îøá) íéååú NUM-ì Info úøåù êøåà ìáâä      --fill-column=NUM\n"
+ "  :STYLE ïåðâñá Info èîøåôá íééìåù úåøòä êåøò      --footnote-style=STYLE\n"
+ "   ;úåãøôð úåà÷ñéôá úåøòä æëøì - `separate'\n"
+ "        ä÷ñéôä íåéñá ïúåà íéùì - `end'\n"
+ "             .(ç\"îøá) úåøãâåî ïä äá\n"
+ ".(%d ç\"îøá) íéçååø VAL äîéðô Info úåà÷ñéô ææä      --paragraph-indent=VAL\n"
+ "àåä VAL íà ;ììë ñéðëú ìà ,`none' àåä VAL íà\n"
+ "      .øå÷îá äúéäù éôë äææä ìò øåîù ,`asis'\n"
+ "     .(%d ç\"îøá) NUM ìãåâá íéöá÷-úúì Info ÷ìç      --split-size=NUM\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:426
+ #, fuzzy
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "                                                     :èì÷ éöá÷ ìù íéðééôàî\n"
+ "          .úåà÷ñéôä úåîùá @ úãå÷ôá ùåîéù äùøä     --commands-in-node-names\n"
+ "              .@set äãå÷ôá åîë VAR äðôùî øãâä  -D VAR\n"
+ "       .@include ìù ùåôéç úîéùø óåñá DIR óñåä  -I DIR\n"
+ "       .@include ìù ùåôéç úîéùø ùàøá DIR óñåä  -P DIR\n"
+ "      .@clear úãå÷ôá åîë ,VAR äðúùî úøãâä ìèá  -U VAR\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ #, fuzzy
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "                                                         :èì÷á äðúåî ãåáéò\n"
+ " .HTML åðéà èìôä íà åìéôà @html-å @ifhtml ãáò       --ifhtml\n"
+ "  .Info åðéà èìôä íà åìéôà @ifinfo-á èñëè ãáò       --ifinfo\n"
+ ".é÷ð èñëè åðéà èìôä íà åìéôà @ifplaintext ãáò       --ifplaintext\n"
+ " .--no-split òîúùîá ;@tex-å @iftex-á èñëè ãáò       --iftex\n"
+ "              .@html-å @ifhtml-á èñëè ãáòú ìà       --no-ifhtml\n"
+ "                      .@ifinfo-á èñëè ãáòú ìà       --no-ifinfo\n"
+ "                 .@ifplaintext-á èñëè ãáòú ìà       --no-ifplaintext\n"
+ "                .@tex-å @iftex-á èñëè ãáòú ìà       --no-iftex\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ #, fuzzy
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "                       :èìôä èîøåôá äéåìú @if... úåéðúä øåáò ìãçîä úøéøá\n"
+ "                ;íéìòôåî íðéà øúéä ìëå ìòôåî --ifhtml  ,HTML àåä èìôä íà\n"
+ "        .íéìòôåî íðéà øúéä ìëå ìòôåî --ifinfo  ,èñëè åà Info àåä èìôä íà\n"
+ "           .íéìòôåî íðéà øúéä ìëå ìòôåî --ifplaintext  ,èñëè àåä èìôä íà\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "                                                                 :úåàîâåã\n"
+ "@setfilename é\"ò ïåúðä õáå÷ì Info èìô  makeinfo foo.texi\n"
+ "@setfilename é\"ò ïåúðä õáå÷ì HTML èìô  makeinfo --html foo.texi\n"
+ " @setfilename é\"ò ïåúðä õáå÷ì XML èìô  makeinfo --xml foo.texi\n"
+ "        @setfilename-ì DocBook XML èìô  makeinfo --docbook foo.texi\n"
+ "               éð÷ú èìô õåøòì èñëè èìô  makeinfo --no-headers foo.texi\n"
+ "      íéèéøôú àììå úåøúåë àìì HTML èìô  makeinfo --html --no-headers foo."
+ "texi\n"
+ "             úåà÷ñéô øåøôñ íò Info èìô  makeinfo --number-sections foo.texi\n"
+ "   äéäéù ìëë ìåãâ ,ãéçé õáå÷á Info èìô  makeinfo --no-split foo.texi\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr ".%s ïééôàî øåáò %s é\"ò ùøãðë ,éøîåð èðîåâøà åðéà `%s'\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, fuzzy, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "`%s' åø÷àî úåáçøä èìô úçéúôá äì÷ú"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, fuzzy, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "`%s' åø÷àî úåáçøä èìô úçéúôá äì÷ú"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "`%s' åø÷àî úåáçøä èìô úçéúôá äì÷ú"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "`%s' åø÷àî úåáçøä èìô úçéúôá äì÷ú"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: `%s' àì ,`asis'/`none'/éøîåð úåéäì --paragraph-indent ìù èðîåâøà ìò\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: `%s' àì ,`end' åà `separate' úåéäì --footnote-style ìù èðîåâøà ìò\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr ".õáå÷ íù øñç %s úéðëúì\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "`%s' éåôö äéä ïàë"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "`%s' äé÷éú úøéöéá (%s) äì÷ú"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "`%s' àöîð àì `%s' õáå÷á"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr "%s: .íùì ïååëî èìôù íåùî åèîùåé éð÷ú èìô õåøòì åø÷àî úåáçøä\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr ".%s èîøåôá `%s'-ì `%s' õáå÷ ãáòî\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr "%s: .åøîùì --force-á ùîúùä ;úåì÷ú á÷ò ÷çîéé `%s' åø÷àî úåáçøä õáå÷\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr "%s: .åøîùì --force-á ùîúùä ;úåì÷ú á÷ò ÷çîéé `%s' èìô õáå÷\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr "%s: .åøîùì --force-á ùîúùä ;úåì÷ú á÷ò ÷çîéé `%s' èìô õáå÷\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "`%s' úøëåî-éúìá äàøåä"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "íéìñìåñî íééøâåñá êøåö ùé ,@%s-ì èðîåâøà äéäú äàøåäù éãë"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, fuzzy, c-format
+ msgid "%c%s expected braces"
+ msgstr "`{...}'-ì äôéö %c%s"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "âåæ-ïá åì ïéàù }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "NO_NAME!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s-ì øñç éðîé øâåñ"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "(HTML øåáò ùøãð) @image øåáò `%s' õáå÷ úàéø÷á (%s) äì÷ú"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, fuzzy, c-format
+ msgid "No such file `%s'"
+ msgstr "`%s' àöîð àì `%s' õáå÷á"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "(èñëè øåáò ùøãð) @image øåáò `%s' õáå÷ úàéø÷á (%s) äì÷ú"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image úàøåäá øñç õáå÷ íù"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{No value for `%s'}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "íù ùøåã %c%s"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "íàåú @end %s éðôì øîâð èì÷ õáå÷"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "áçøåé àì ;åáéçøäì éãëî êåøà `%.40s...'"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "} øñç @multitable ìù úéðáúá"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "@multiline éøçà `%s' øúåéî èñëèî éúîìòúä"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "(%d ãò øúåî) multitable ìù @item-á úåãåîò éãî øúåé"
+ 
+ #: makeinfo/multi.c:563
+ #, fuzzy, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "multitable-á %d 'ñî äãåîò úøéçáá äì÷ú"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "multitable-ì õåçî @tab-î éúîìòúä"
+ 
+ # The following two look like debugging output, and aren't compiled.
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Multicolumn output from last row:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* column #%d: output = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "`%s' ä÷ñéô úøãâä øáë %d äøåùá"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "...%s ä÷ñéô ãáòî úòë\n"
+ 
+ #: makeinfo/node.c:714
+ #, fuzzy, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "`%s' ä÷ñéôá (%c%s ïåâë) ÷åñéô úàøåäá êøåö ùé"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "ä÷ñéô íù àìì `%c%s' äàøåä"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "õáå÷ íù åúåàì úåîâøåúî `%s' øåùé÷ úéåúå `%s' ä÷ñéô"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "åìòôé àì åæ úéåú ìà íéøåùé÷ ;òöåáú àì åæ @anchor úàøåä"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "`--no-split' ïééôàîá ùîúùä åà úéåúä íù äðù"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "`%s' ÷ìåçî HTML õáå÷ íåéñá äéåôö-éúìá úæåøçî"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "õáå÷ íù åúåàì úåîâøåúî `%s-å `%s' øåùé÷ úåéåú"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "åìòôé àì åæ úéåú ìà íéøåùé÷ ;òöåáú àì @anchor úàøåä"
+ 
+ #: makeinfo/node.c:1362
+ #, fuzzy, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr "%sá `%s' úîéé÷ äððéàù ä÷ñéôì äééðôä"
+ 
+ #: makeinfo/node.c:1462
+ #, fuzzy, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr "äøæç äòéáöî äðéà `%s' ä÷ñéô ìù Next äãùá ä÷ñéôä"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "éåâù Prev äãù úìòá àéä (%s) åæ ä÷ñéô"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "äøæç äòéáöî äðéà `%s' ä÷ñéô ìù Prev äãùá ä÷ñéôä"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "éåâù Next äãù úìòá àéä (%s) åæ ä÷ñéô"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr "äøæçá òéáöîù èéøôú óéòñ ïéà ìáà ,`%s' ìò òéáöî `%s' ä÷ñéô ìù Up äãù"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "øåùé÷ óà ïéà `%s' ä÷ñéôì"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1731
+ #, fuzzy, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "`%s' äé÷éú úøéöéá (%s) äì÷ú"
+ 
+ #: makeinfo/sectioning.c:122
+ #, fuzzy, c-format
+ msgid "Appendix %c"
+ msgstr "Appendix %c "
+ 
+ #: makeinfo/sectioning.c:467
+ #, fuzzy, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "!\"%s\" (search_sectioning) úéîéðô äðëåú úì÷ú"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "!\"%s\" (search_sectioning) úéîéðô äðëåú úì÷ú"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s-á ùîúùäì óéãò ;úðùåéî äðéä %c%s äàøåä"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "íãå÷ äøãâåä øáë %ctop íò ä÷ñéô"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "%ctop ú÷ñéô ìù íå÷îä åäæ"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "éîöòá @node éúôñåä ,%cnode éðôì %ctop-á äùîúùä %s ä÷ñéô"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image øåáò `%s' õáå÷ úàéø÷á (%s) äì÷ú"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "of"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "on"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "÷éø úåéäì ìåëé åðéà øåùé÷ ìù ïåùàø èðîåâøà"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, fuzzy, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "%c àìå `,' åà `.' àåáì êéøö øåùé÷ éøçà"
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr ".íéøåùé÷ ïéà åæ ä÷ñéôá"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "÷éø úåéäì ìåëé åðéà @inforef ìù ïåùàø èðîåâøà"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "úéðëúäî àöå äæ äøæò êñî âöä"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "FILE õáå÷ì èìô äðôä"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "àöå úéðëúä úñøéâ ìò òãéî âöä"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "%s [OPTION]... FILE... :ùåîéùä ïôåà\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr ".TeX é\"ò áúëðù FILE õáå÷ ìëì ïééåîî ñ÷ãðéà ïëä\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ".`foo.%c%c' íùá íéàø÷ð `foo.texi' êîñî øåáò FILE éöá÷ ììë êøãá\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "                                                :íéðééôàî\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "%s ìù úùãåçî äçéúôá äì÷ú"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "texinfo ìù ñ÷ãðéà õáå÷ åðéà `%s'"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "ãåîò øôñî ïéà %s-á"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "éðùî íù ìòá èéøô úåá÷òá àá %s èéøô"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search]  äæ Info õå÷á êìéàå ïàëî úæåøçî ùôç\n"
+ #~ "                    .úæåøçîä äàöîð äá ä÷ñéôì øåáòå\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10[goto-node]  äîù é\"ôò ä÷ñéôì øåáò\n"
+ #~ "              .(FILENAME)NODENAME-á åîë ä÷ñéôä íùî ÷ìçë õáå÷ íù ïééöì "
+ #~ "ïúéð\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "\\%-10[next-node]  úéçëåð ä÷ñéô éøçà äàáä ä÷ñéôì øåáò\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  `\\[goto-node] (DIR)'-ì êøò-äååù ;DIR ä÷ñéôì øåáò\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr "\\%-10[top-node]  `\\[goto-node] Top'-ì êøò-äååù ;Top ä÷ñéôì øåáò\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[scroll-forward-page-only]  Scroll forward within this node.\n"
+ #~ msgstr "\\%-10[scroll-forward]  äîéã÷ úçà äøåù ïîñ ææä\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[scroll-backward-page-only]  Scroll backward within this node.\n"
+ #~ msgstr "\\%-10[scroll-backward]  äøåçà ãçà óã ìåìâ\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  äæ Info õå÷á äøåçàå ïàëî úæåøçî ùôç\n"
+ #~ "                              .úæåøçîä äàöîð äá ä÷ñéôì øåáòå\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr "--- `\\[kill-node]' åà `\\[history-node]' ù÷ä äàéöéì ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr "\\%-10[move-to-prev-xref]  úéçëåð ä÷ñéôá íãå÷ä øåùé÷ì ïîñ ææä\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "            %s [íéðééôàî]... [...èéøôúî íéôéòñ] :ùåîéù ïôåà\n"
+ #~ "\n"
+ #~ "                        .Info èîøåôá íéëåøòä ãåòéú éöá÷á ïééò\n"
+ #~ "\n"
+ #~ "                                                                :"
+ #~ "íéðééôàî\n"
+ #~ "     .ùîúùîì êéøãî ìë ìù íéñ÷ãðéàä ìëá SUBJECT ùôç      --"
+ #~ "apropos=SUBJECT\n"
+ #~ "                 .INFOPATH-á äîéùøì DIR äé÷éú óñåä  -d, --directory=DIR\n"
+ #~ "          .FILENAME õáå÷á íéù÷îä úåöéçì ìë úà íåùø      --"
+ #~ "dribble=FILENAME\n"
+ #~ "               .FILENAME õáå÷á øùà ùîúùî êéøãî âöä  -f, --file=FILENAME\n"
+ #~ "                      .úéðëúäî àöå äæ äøæò êñî âöä  -h, --help\n"
+ #~ ".äéìà ìéáåî ñ÷ãðéàäù ä÷ñéô âöäå ñ÷ãðéàá úæåøçî ùôç      --index-"
+ #~ "search=STRING\n"
+ #~ "          .ïåùàø Info õáå÷ êåúî NODENAME ä÷ñéô âöä  -n, --node=NODENAME\n"
+ #~ "           .FILENAME õáå÷ êåúì åøçáðù úåà÷ñéô áåúë  -o, --"
+ #~ "output=FILENAME\n"
+ #~ "              .man éôãî ANSI ìù äø÷áä éååú ÷ìñú ìà  -R, --raw-escapes\n"
+ #~ "                 .FILENAME õáå÷î íéù÷î úåöéçì øæçù      --"
+ #~ "restore=FILENAME\n"
+ #~ "         .äãå÷ôä úøåù ìù íéðééôàî úèøôîä ä÷ñéô âöä  -O, --show-options, --"
+ #~ "usage\n"
+ #~ "%s   .èìôì ïìåë áåúëå éáéñøå÷ø øãñá úåà÷ñéô ïéá øåáò      --subnodes\n"
+ #~ "            .Less åà vi-ì äîåãá úåãå÷ôì íéù÷î øåù÷      --vi-keys\n"
+ #~ "                    .àöå úéðëåúä úñøéâ ìò òãéî âöä      --version\n"
+ #~ "\n"
+ #~ ";ìéçúäì ùé åðîîù èéøôúî óéòñ ïééöî ,íéé÷ àåä íà ,ïééôàî åðéàù ïåùàø "
+ #~ "èðîåâøà\n"
+ #~ "                  .INFOPATH úîéùø êøåàì `dir' éöá÷ ìëá äæ óéòñ ùôçú "
+ #~ "úéðëåúä\n"
+ #~ "     .`dir' éöá÷ ìëî áëøåîä èéøôú âéöú info ,ïééôàî åðéàù èðîåâøà óà ïéà "
+ #~ "íà\n"
+ #~ "                èéøôúäî ìçä ,èéøôú éôéòñ úåîùë åùøåôé ïåùàøì øáòî "
+ #~ "íéèðîåâøà\n"
+ #~ "                                                     .äâöåäù äðåùàøä "
+ #~ "ä÷ñéôá\n"
+ #~ "\n"
+ #~ "                                                                   :"
+ #~ "úåàîâåã\n"
+ #~ "                          dir õáå÷î áà-èéøôú âöä  info\n"
+ #~ "       emacs èéøô òéáöî äéìà ä÷ñéôì êì áà-èéøôúî  info emacs\n"
+ #~ "buffers èéøôì êùîä íùîå emacs óéòñì êì áà-èéøôúî  info emacs buffers\n"
+ #~ "   emacs ìù äãå÷ôä úøåù éðééôàî úøàúîä ä÷ñéô âöä  info --show-options "
+ #~ "emacs\n"
+ #~ "    dir èéøôú êøã øåáòì éìáî ./foo.info õáå÷ âöä  info -f ./foo.info\n"
+ #~ "\n"
+ #~ "                           ,bug-texinfo@gnu.org-ì äì÷ú éçååéã çåìùì àð\n"
+ #~ "                   .help-texinfo@gnu.org-ì ïåéãì íéàùåðå úåéììë úåìàùå\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr "              .úøçà ä÷ñéôì øáòîì úîøåâ èéøôúî äøéçá\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              .(FILENAME)NODENAME-á åîë ä÷ñéôä íùî ÷ìçë õáå÷ íù ïééöì "
+ #~ "ïúéð\n"
+ 
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  äæ Info õáå÷á äøåçàå ïàëî úæåøçî ùôç\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "              .úæåøçîä äàöîð äá ä÷ñéôì øåáòå\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "...äàáä ä÷ñéôì øáåò"
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "...èéøôúäî ïåùàø óéòñ øçåá"
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "...äàáä ä÷ñéôá øçåá"
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr ".äàáä ä÷ñéôä øçåá æàå ,úåà÷ñéôä õòá úå/äîø %d äìåò"
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr ".äæ ïåìçá úîãå÷ ä÷ñéôì øáåò"
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr ".äæ ïåìçá íàä ú÷ñôì øáåò"
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr ".úîãå÷ ä÷ñéô ìù èéøôúá ïåøçà óéòñì øáåò"
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ # It would be hilarious to translate those...
+ #~ msgid "Function"
+ #~ msgstr "Function"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "Macro"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "Special Form"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "Variable"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "User Option"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "Instance Variable"
+ 
+ #~ msgid "Method"
+ #~ msgstr "Method"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "úøúåë àìì"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "This is %s, produced by makeinfo version %s from %s.\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "Next:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "Previous:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "Up:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "èéøôú"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "øåùé÷"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "Prev äãù"
+ 
+ #~ msgid "Up"
+ #~ msgstr "Up äãù"
+ 
+ #~ msgid "see "
+ #~ msgstr "see "
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "          %s [OPTION]... [INFO-FILE [DIR-FILE]] :ùåîéùä ïôåà\n"
+ #~ "\n"
+ #~ "                                                                :"
+ #~ "íéðééôàî\n"
+ #~ "  ;INFO-FILE øåáò íéîéé÷ èéøôú éôéòñ DIR-FILE-î ÷çî   --delete\n"
+ #~ "                      .íéùãç èéøôú éôéòñ óéñåú ìà\n"
+ #~ "                   .éùàø Info èéøôú ìù õáå÷ íù ïééö   --dir-file=NAME\n"
+ #~ "            .DIR-FILE èðîåâøàá ùåîéùì êøò-äååù äæ\n"
+ #~ "                  .Info ìù èéøôú óéòñë TEXT-á ùîúùä   --entry=TEXT\n"
+ #~ "    Info èéøôú óéòñ úøåù ìù äøåöá úåéäì êéøö TEXT\n"
+ #~ "     .íéçååøá úåìéçúîä úåøåù äîë úôñåúì úåøùôà íò\n"
+ #~ "     íéôéòñä ìë ,úçà íòôî øúåé --entry-á ùîúùú íà\n"
+ #~ "                                     .åôñåúé åììä\n"
+ #~ "    êåúî åáùåçé èéøôú éôéòñ ,--entry-á ùåîéù ïéàá\n"
+ #~ "                         .åîöò Info õáå÷ ìù ïëåúä\n"
+ #~ "                       .úéðëúäî àöå àæ äøæò êñî âöä   --help\n"
+ #~ "                  .éùàøä èéøôúá äð÷úäì õáå÷ íù ïééö   --info-file=FILE\n"
+ #~ "           .INFO-FILE èðîåâøàá ùåîéùì êøò-äååù äæ\n"
+ #~ "                   .\"--dir-file=DIR/dir\"-ì êøò-äååù   --info-dir=DIR\n"
+ #~ "                         .\"--entry=TEXT\"-ì êøò-äååù   --item=TEXT\n"
+ #~ "        .èéøôú ìù óéòñ äùòîì àåä Info êéøãîá óéòñ\n"
+ #~ "                              .äøäæà úåàãåä âéöú ìà   --quiet\n"
+ #~ "                             .\"--delete\"-ì êøò-äååù   --remove\n"
+ #~ "  .éùàøä èéøôúä ìù SEC ÷ìçá äæ õáå÷ êåúî íéôéòñ í÷î   --section=SEC\n"
+ #~ " èéøôúä éôéòñ ,úçà íòôî øúåé --section-á ùîúùú íà\n"
+ #~ "        .úðééöù éùàøä èéøôúä é÷ìçî ãçà ìëì åôñåúé\n"
+ #~ "        òá÷éé èéøôúá ÷ìçä ,--section-á ùåîéù ïéàá\n"
+ #~ "                    .åîöò Info õáå÷ ìù ïëåúä êåúî\n"
+ #~ "                      .àöå úéðëúä úñøéâ ìò òãéî âöä   --version\n"
+ #~ "\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "`%s' óéòñ éùàøä èéøôúá íéé÷ øáë `%s' õáå÷ì"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr "\\%-10[menu-digit]  úéçëåðä ä÷ñéôä èéøôúá éòéùú ãò ïåùàø óéòñ øçá\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "`%s' ä÷ñéôì íéøåùé÷ %d éúøôñ"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "   Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "åæ äðëåú õéôäì íëúåëæ .úåéøçà áúëá äååìî äðéà åæ úéðëåú\n"
+ #~ "         .GNU General Public License ïåéùøä éàðúì íàúäá\n"
+ #~ "           .COPYING õáå÷á åðééò ,åìà íéðéðòá èåøéô øúéì\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "ãéçé èðîåâøà ìòá åø÷àî êåúá ÷ø éùåîéù @quote-arg"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Table of Contents"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "Short Contents"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "ãåáéòä êìäîá íéøöåðä íééðîæ íéöá÷ ÷çîú ìà"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "(ç\"îøá) ãåáéòä êìäîá íéøöåðä íééðîæ íéöá÷ ÷çî"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr "              íàåú àöîðù ïåùàø ñ÷ãðéà èéøô äòéáöî äéìà ä÷ñéôì\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "   Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "åæ äðëåú õéôäì íëúåëæ .úåéøçà áúëá äååìî äðéà åæ úéðëåú\n"
+ #~ "         .GNU General Public License ïåéùøä éàðúì íàúäá\n"
+ #~ "           .COPYING õáå÷á åðééò ,åìà íéðéðòá èåøéô øúéì\n"
+ 
+ #~ msgid "%s: Specify the Info directory only once.\n"
+ #~ msgstr ".ãáìá úçà íòô %s-ì Info úéé÷éú ïééöì ïúéð\n"
+ 
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "\"\" äéåâù äãå÷ô"
+ 
+ #~ msgid "%s is an invalid ISO code, using %c"
+ #~ msgstr "éåâù ISO ãå÷ åðéä %s éë %c-á ùîúùî"
+ 
+ #~ msgid "Cannot specify more than one macro expansion output"
+ #~ msgstr "åø÷àîä úåáçøä èìôì ãçà õáå÷ ÷ø ïééöì ïúéð"
+ 
+ #~ msgid "File exists, but is not a directory"
+ #~ msgstr "äöéçî åððéàù íéé÷ õáå÷ àöîð"
+ 
+ #~ msgid "Node:"
+ #~ msgstr "Node:"
+ 
+ #~ msgid "%s: TOC should be here, but it was not found"
+ #~ msgstr "àöîð àì êà ,%s õáå÷á úåéäì äéä øåîà íéðééðò ïëåú"
+ 
+ #~ msgid "No `%s.png' or `.jpg', and no extension supplied"
+ #~ msgstr "úøçà úîåéñ äðéåö àìå åàöîð àì .jpg-å `%s.png'"
+ 
+ #~ msgid "%s; for file `%s'.\n"
+ #~ msgstr ".%s äì÷ú äúø÷ `%s' õáå÷á\n"
+ 
+ #~ msgid "`%s' has no Up field"
+ #~ msgstr "Up äãù ïéà `%s'-ì"
Files texinfo-4.12/po/hr.gmo and texinfo-4.13/po/hr.gmo differ
diff -Nrc2 texinfo-4.12/po/hr.po texinfo-4.13/po/hr.po
*** texinfo-4.12/po/hr.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/hr.po	Thu Sep 18 11:38:31 2008
***************
*** 0 ****
--- 1,3406 ----
+ # Texinfo project .po file for hr_HR localization
+ # Copyright (C) 2002 Free Software Foundation, Inc.
+ # Mirsad Todorovac <mtodorov_69@yahoo.com>, 2002.
+ #     ... wishes to thank to everybody who helped in good faith.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.2\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2002-04-26 13:49-MET+DST (UTC+2)\n"
+ "Last-Translator: Mirsad Todorovac <mtodorov_69@yahoo.com>\n"
+ "Language-Team: Croatian <lokalizacija@linux.hr>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=iso-8859-2\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: opcija `%s' nije jednoznaèna\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: opcija `--%s' ne dopu¹ta argument\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: opcija `%c%s' ne dopu¹ta argument\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: opcija `%s' tra¾i neophodan argument\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: nepoznata opcija `--%s'\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: nepoznata opcija `%c%s'\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: nedozvoljena opcija -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: pogre¹na opcija -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: opcija zahtijeva argument -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: opcija `-W %s' nije jednoznaèna\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: opcija `-W %s' ne dopu¹ta argument\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr ""
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Pomakni se znak unaprijed"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Pomakni se znak unazad"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Pomakni se na poèetak tekuæe linije"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Pomakni se na kraj tekuæe linije"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Pomakni se rijeè unaprijed"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Pomakni se rijeè unazad"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Obri¹i znak ispod kursora"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Obri¹i znak iza kursora"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Poni¹ti ili prekini operaciju"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Prihvaæanje (ili tra¾enje kompletiranja) linije"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Umetni slijedeæi znak doslovno"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Umetni tekuæi znak"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Umetni znak TAB"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Zamijeni mjesta znakovima pod kurzorom"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Povrati zadnji obrisani sadr¾aj"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "Spremnik za obrisani sadr¾aj je prazan"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Povrati prije obrisani sadr¾aj"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Obri¹i tekst do kraja retka"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Obri¹i tekst do poèetka retka"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Obri¹i rijeè iza kurzora"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Obri¹i rijeè ispred kurzora"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Ne mogu kompletirati"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Nije dovr¹eno"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Izlistaj moguæe varijante kompletiranja"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Jedino moguæe kompletiranje"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Jedno kompletiranje:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d kompletiranja:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Umetni kompletiranje"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Izgraðujem varijante kompletiranja..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "'Skrolaj' prozor za varijante kompletiranja"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Ne mogu prikazati fusnote"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "Prika¾i fusnote povezane s ovim èvorom u drugom prozoru"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "----------- Fusnote -----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Potra¾i niz u indeksu ove datoteke"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Tra¾im stavke indeksa..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Nije pronaðen indeks."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Stavka indeksa: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Idi na slijedeæu podudarajuæu stavki indeksa zadnje `\\[index-search]' "
+ "naredbe"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Nema prethodnog zadanog niza za pretra¾ivanje indeksa."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Nema stavaka indeksa."
+ 
+ #: info/indices.c:374
+ #, fuzzy, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Nema stavaka %sindeksa koje sadr¾e \"%s\"."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "jo¹ "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "NE MOGU VIDJETI OVO"
+ 
+ #: info/indices.c:421
+ #, fuzzy, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "Prona¹ao \"%s\" u %s. (`\\[next-index-match]' poku¹ava naæi slijedeæi.)"
+ 
+ #: info/indices.c:549
+ #, fuzzy, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Skeniram indekse od \"%s\"..."
+ 
+ #: info/indices.c:604
+ #, fuzzy, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Niti jedna raspolo¾iva info datoteka ne sadr¾i \"%s\" u svom indeksu."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr "Propu¾i kroz sve poznate indekse u potrazi za nizom i slo¾i meni"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Indeks apropos: "
+ 
+ #: info/indices.c:662
+ #, fuzzy, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Meni: Èvorovi èiji indeksi sadr¾e \"%s\":\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Poku¹ajte --help za vi¹e informacija.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "nijedna stavka indeksa nije naðena za `%s'\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ "  -b, --speech-friendly        budi vi¹e prijateljski prema sintetizatorima "
+ "govora.\n"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Izvje¹taje o bugovima molimo slati emailom na bug-texinfo@gnu.org\n"
+ "(na engleskom), generalna pitanja i diskusije na help-texinfo@gnu.org.\n"
+ "Texinfo matièna stranica: http://www.gnu.org/software/texinfo/\n"
+ "Pitanja i kritike glede translacije slati na adresu lokalizacija@linux.hr."
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Ne mogu naæi èvor `%s'."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Ne mogu naæi èvor `(%s)%s'."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Ne mogu naæi prozor!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Toèka se ne nalazi unutar èvora ovog prozora!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Ne mogu dokinuti zadnji prozor."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Nema menija u ovom èvoru."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Nema fusnota u ovom èvoru."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Nema unakrsnih referenci u ovom èvoru."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Nema `%s' pokazivaèa za ovaj èvor."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Nepoznata Info naredba `%c'; poku¹ajte `?' za pomoæ."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Terminal tipa `%s' nema dovoljno sposobnosti da izvodi Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Veæ se nalazite na zadnjoj stranici ovog èvora."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Veæ se nalazite na prvoj stranici ovog èvora."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Samo jedan prozor."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Nastali prozor bi bio premalen."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Nema dovoljno mjesta za prozor za pomoæ, molimo dokinite jedan prozor."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Napusti ovu pomoæ.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Potpuno zavr¹i s radom (Quit).\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Pozovi Info priruènik.\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "  %-10s  'Skrolaj' unazad 1 redak.\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "  %-10s  'Skrolaj' naprijed 1 redak.\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  'Skrolaj' stranicu unazad.\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  'Skrolaj stranicu naprijed.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Idi na poèetak ovog èvora.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Idi na kraj ovog èvora.\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10[move-to-next-xref]  Preskoèi do slijedeæeg hipertekst linka unutar "
+ "ovog èvora.\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Slijedi hipertekst link ispod kursora.\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  Pomakni se do posljednjeg vidljivog èvora u ovom "
+ "prozoru.\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr ""
+ "\\%-10[prev-node]  Idi na prethodni (`previous') èvor u odnosu na ovaj.\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[next-node]  Idi na slijedeæi (`next') èvor u odnosu na ovaj.\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr ""
+ "\\%-10[prev-node]  Idi na prethodni (`previous') èvor u odnosu na ovaj.\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Idi na slijedeæi (`next') èvor u odnosu na ovaj.\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Idi navi¹e (`up') od ovog èvora.\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[end-of-node]  Idi na kraj ovog èvora.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[end-of-node]  Idi na kraj ovog èvora.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  Odaberi prvu ... devetu stavku u èvorovom meniju.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  Odaberi zadnju stavku u meniju èvora.\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  Odaberi stavku menija specificirane imenom.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  Slijedi unakrsnu referencu.  Èita ime reference.\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  Idi na èvor zadan imenom.\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  Tra¾i prema naprijed zadani niz,\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr ""
+ "\\%-10[prev-node]  Idi na prethodni (`previous') èvor u odnosu na ovaj.\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "  %-10s  Tra¾i zadani niz u indeks stavkama ove Info\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Tra¾i zadani niz u indeksnim stavkama ove Info "
+ "datoteke\n"
+ "              i selektiraj èvor referenciran prvom naðenom stavkom.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "Poni¹ti trenutnu operaciju"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Osnovne naredbe u Info prozorima\n"
+ "********************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Napusti ovu pomoæ.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Potpuno zavr¹i s radom (Quit).\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Pozovi Info priruènik.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Idi na slijedeæi (`next') èvor u odnosu na ovaj.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Idi na prethodni (`previous') èvor u odnosu na ovaj.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Idi navi¹e (`up') od ovog èvora.\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "\\%-10[menu-item]  Izaberi stavku menija zadanu imenom.\n"
+ "              Izabiranje stavke menija selektira drugi èvor.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Slijedi unakrsnu referencu.  Èita ime reference.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Pomakni se do posljednjeg vidljivog èvora u ovom prozoru.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Preskoèi do slijedeæeg hipertekst linka unutar ovog èvora.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Slijedi hipertekst link ispod kursora.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Pomakni se na `directory' èvor.  Ekvivalentno `g (DIR)'.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Idi na Top (vr¹ni) èvor.  Ekvivalentno s `g Top'.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Pomicanje unutar èvora:\n"
+ "-----------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  'Skrolaj' stranicu naprijed.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  'Skrolaj' stranicu unazad.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Idi na poèetak ovog èvora.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Idi na kraj ovog èvora.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  'Skrolaj' naprijed 1 redak.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  'Skrolaj' unazad 1 redak.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Druge naredbe:\n"
+ "--------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Odaberi prvu ... devetu stavku u èvorovom meniju.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Odaberi zadnju stavku u èvorovom meniju.\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Tra¾i zadani niz u indeksnim stavkama ove Info "
+ "datoteke\n"
+ "              i selektiraj èvor referenciran prvom naðenom stavkom.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10[goto-node]  Pomakni se na èvor zadan imenom.\n"
+ "              Mo¾ete takoðer ukljuèiti ime datoteke, kao u (DATOTEKA)"
+ "IME_ÈVORA.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Tra¾i unaprijed za zadanim nizom\n"
+ "              i selektiraj èvor u kojem je slijedeæa pojava niza naðena.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Tra¾i unaprijed za zadanim nizom\n"
+ "              i selektiraj èvor u kojem je slijedeæa pojava niza naðena.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Trenutni put pretra¾ivanja je:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Naredbe raspolo¾ive u Info prozorima:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Naredbe raspolo¾ive u echo podruèju:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Slijedeæe naredbe mogu biti pozvane pomoæu %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "Slijedeæe naredbe ne mogu uopæe biti pozvane:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Ispi¹i poruku za pomoæ"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Posjeti Info èvor `(info)Help'"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Ispi¹i dokumentaciju za TIPKU"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Opi¹i tipku: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s nije definiran."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s nije definiran."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s je definiran kao %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Poka¾i ¹to otipkati da se izvr¹i data naredba"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Gdje je naredba: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "`%s' nije niti na jednoj tipki"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s mo¾e biti pozvan samo putem %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s mo¾e biti pozvan putem %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Ne postoji funkcija `%s'"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Izabir drugih èvorova:\n"
+ "----------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "pogre¹an broj argumenata"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "ne mogu otvoriti ulaznu datoteku `%s'"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "ne mogu kreirati izlaznu datoteku `%s'"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "gre¹ka pri pisanju u `%s'"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "gre¹ka pri zatvaranju izlazne datoteke `%s'"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "niz tipaka predugaèak"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "nedostaje niz tipaka"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "NUL znak (\\000) nije dozvoljen"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "NUL znak (^%c) nije dozvoljen"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "nedostaje ime akcije"
+ 
+ # this needs to be clarified and verified against info program, since
+ # I'm not sure what kind of section they're talking about
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "predugaèki odlomak"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "nepoznata akcija `%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "predugaèko ime akcije"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "suvi¹ni znaci slijede akciju `%s'"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "nedostaje ime varijable"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "nedostaje `=' odmah iza imena varijable"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "ime varijable predugaèko"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "predugaèka vrijednost"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", redak %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Kori¹tenje: %s [OPCIJA]... [ULAZNA-DATOTEKA]\n"
+ "\n"
+ "Kompiliraj infokey izvornu datoteku u infokey datoteku.  Èita ULAZNA-"
+ "DATOTEKA\n"
+ "(default $HOME/.infokey) i pi¹e kompiliranu key datoteku u (default)\n"
+ "$HOME/.info.\n"
+ "\n"
+ "Opcije:\n"
+ "  --output DATOTEKA   izlaz u DATOTEKA umjesto u $HOME/.info\n"
+ "  --help              ispi¹i ovu pomoæ i zavr¹i s radom.\n"
+ "  --version           ispi¹i ovu informaciju o verziji i zavr¹i s radom.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Ignoriram neispravnu infokey datoteku `%s' - premalena"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Ignoriram neispravnu infokey datoteku `%s' - prevelika"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Pogre¹ka pri èitanju infokey datoteke `%s' - prekratki read"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "Neispravna infokey datoteka `%s' (pogre¹ni magic number) -- pokreni infokey "
+ "da se obnovi"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ "Va¹a infokey datoteka `%s' je istekla -- pokrenite infokey da se obnovi"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Neispravna infokey datoteka `%s' (bad section length) -- pokrenite infokey "
+ "da se obnovi"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "Neispravna infokey datoteka `%s' (bad section code) -- pokrenite infokey da "
+ "se obnovi"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ "Pogre¹ni podaci u infokey datoteci -- neka povezivanja tipki zanemarena"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr "Pogre¹ni podaci u infokey datoteci -- neke var postavke ignorirane"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Proèitaj ime Info naredbe i opi¹i je"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Opi¹i naredbu: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Proèitaj ime naredbe u echo podruèju i izvr¹i je"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Ne mogu izvr¹iti komandu za echo podruèje ovdje."
+ 
+ #: info/m-x.c:153
+ #, fuzzy, c-format
+ msgid "Undefined command: %s"
+ msgstr "Nepoznata naredba (%s)."
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Postavi visinu prikazanog prozora"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Postavi velièinu screena na (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Izvorne datoteke prepuzane da se ukljuèi ova datoteka:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Neuspjelo rukovanje datotekom %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Meni:\n"
+ "  (Datoteka)Èvor                    Redaka  Vel.   Sadr¾i datoteku\n"
+ "  --------------                    ------  ----   ---------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Ovdje je popis èvorova koje ste nedavno posjetili.\n"
+ "Odaberite jedan s menija, ili koristite `\\[history-node]' u drugom prozoru\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "Naèini prozor sadr¾avajuæi meni svih dosad posjeæenih èvorova"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Izaberi èvor koji je prethodno bio posjeæen u vidljivi prozor"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Izaberi posjeæeni èvor: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Referenca je nestala! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Dobrodo¹li u Info verzija %s. Otipkajte \\[get-help-window] za pomoæ, "
+ "\\[menu-item] za stavku menija."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Pomakni se dolje to slijedeæeg retka"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Pomakni se gore do prethodnog retka"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Pomakni se do kraja retka"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Pomakni se na poèetak retka"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Next"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Nema vi¹e èvorova u ovom dokumentu."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Nema `Prev' (prethodni) za ovaj èvor."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Nema `Prev' ni `Up' za ovaj èvor unutar dokumenta."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Idi naprijed ili nani¾e kruz strukturu èvorova"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Idi unatrag ili gore kroz strukturu èvorova"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "'Skrolaj' prema gore u ovom prozoru"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr ""
+ "'Skrolaj' prema dolje u ovom prozoru i postavi inicijalnu velièinu prozora"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "'Skrolaj' prema dolje u ovom prozoru ostajuæi unutar èvora"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "'Skrolaj' prema dolje u ovom prozoru ostajuæi unutar èvora i postavi "
+ "inicijalnu velièinu prozora"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "'Skrolaj' prema gore u ovom prozoru"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr ""
+ "'Skrolaj' prema gore u ovom prozoru i postavi inicijalnu velièinu prozora"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "'Skrolaj' prema gore u ovom prozoru ostajuæi unutar èvora"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "'Skrolaj' prema gore u ovom prozoru ostajuæi unutar èvora i postavi "
+ "inicijalnu velièinu prozora"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Pomakni se na poèetak trenutnog èvora"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Pomakni se na kraj trenutnog èvora"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "'Skrolaj' dolje za redaka"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "'Skrolaj' gore za redaka"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "'Skrolaj' dolje za polovinu velièine ekrana"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "'Skrolaj' gore za polovinu velièine ekrana"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Selektiraj slijedeæi prozor"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Selektiraj prethodni prozor"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Raspolovi trenutni prozor"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Obri¹i trenutni prozor"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Ne mogu obrisati permanentni prozor"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Obri¹i sve ostale prozore"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "'Skrolaj' drugi prozor"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "'Skrolaj' drugi prozor unazad"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Poveæaj (ili smanji) ovaj prozor"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Podijeli vidljivu povr¹inu ekrana izmeðu vidljivih prozora"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Promijeni stanje prelamanja linija u trenutnom prozoru"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Prika¾i Next (slijedeæi) èvor"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Prika¾i Prev (prethodni) èvor"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Prika¾i Up (gornji) èvor"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Prika¾i posljednji èvor u ovoj datoteci"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Ovaj prozor nema dodatnih èvorova"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Prika¾i prvi èvor u ovoj datoteci"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Prika¾i zadnji èvor u ovoj datoteci"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Selektiraj ovu stavku menija"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Nema %d stavaka u ovom meniju."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Stavka menija (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Stavka menija: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Slijedi xref (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Slijedi xref: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Èitaj stavku menija i selektiraj njen èvor"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "Èitaj fusnotu ili referencu i selektiraj njezin èvor"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Idi na poèetak menija ovog èvora"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Posjeti ¹to je vi¹e moguæe stavki odjednom"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Èitaj ime èvora i selektiraj ga"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Idi na èvor: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Nema menija u èvoru `%s'."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Nema stavke menija `%s' u èvoru `%s'."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Ne mogu naæi èvor referenciran od `%s' u `%s'."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Èitaj listu menija poèev¹i od dir i slijedi ih"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Slijedi menije: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Pronaði èvor koji opisuje pozivanje programa"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Naði èvor pozivanja (Invocation) od [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Proèitaj referentnu man stranicu i selektiraj je"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Dobavi man stranicu: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Selektiraj èvor `Top' u ovoj datoteci"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Selektiraj èvor `(dir)'"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Poni¹ti èvor (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Ne mogu poni¹titi èvor `%s'"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Ne mogu poni¹titi zadnji èvor"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Selektiraj najzadnji odabrani èvor"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Poni¹ti ovaj èvor"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Proèitaj ime datoteke i selektiraj ga"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Naði datoteku: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Ne mogu naæi `%s'."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Ne mogu kreirati izlaznu datoteku `%s'."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Gotovo."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Ispisujem èvor %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr ""
+ "Propusti sadr¾aj ovog èvora kroz cjevovod (pipe) prema INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Ne mogu otvoriti cjevovod (pipe) prema `%s'."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Ispisujem èvor %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "Obri¹i tekst do poèetka retka"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Tra¾im poddatoteku %s ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Èitaj niz znakova i kreni u potragu za njim (case-sensitive)"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Èitaj niz znakova i potra¾i ga"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Èitaj niz znakova i potra¾i ga unatrag"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%sza niz znakova [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr " (case-sensitive) "
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "Tra¾i unazad"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Tra¾i"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Pretra¾ivanje neuspjelo."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Ponovi zadnje pretra¾ivanje u istom pravcu"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Nema prethodnog tra¾enog niza"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Ponovi zadnje pretra¾ivanje u suprotnom pravcu"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Tra¾i niz interaktivno kako ga tipkate"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "I-pretraga unazad: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "I-pretraga unazad: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "I-pretraga: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "I-pretraga: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Neuspjela "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Idi na prethodnu referencu"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Idi na slijedeæu referencu"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Selektiraj referencu ili stavku menija koja se pojavljuje u retku"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Poni¹ti trenutnu operaciju"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Zavr¹i (Quit)"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Pomakni kurzor na specificirani redak prozora"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Osvje¾i prikaz"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Zavr¹i kori¹tenje Info-a"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Izvr¹i naredbu povezanu s malim slovom varijantom ove tipke"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Nepoznata naredba (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" je neispravno"
+ 
+ #: info/session.c:4910
+ #, fuzzy, c-format
+ msgid "`%s' is invalid"
+ msgstr "\"%s\" je neispravno"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Dodaj ovu znamenku trenutnom numerièkom argumentu"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Zapoèni (ili pomno¾i s 4) trenutni numerièki argument"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Interno kori¹ten od \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Premalo virtualne memorije!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Kada je \"On\", fusnote se pojavljuju i nestaju automatski"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "Kada je \"On\", kreiranje ili zatvaranje prozora mijenja velièinu drugih "
+ "prozora"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Kada je \"On\", bljesni ekranom umjesto zvonjenja zvona"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Kada je \"On\", gre¹ke pruzroèuju zvon zvona"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ "Kada je \"On\", Info radi 'garbage collection' s datotekama koje je trebalo "
+ "odkompresirati"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "Kada je \"On\", dio znakovnog niza koji se podudara je osvijetljen"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Kontrolira ¹to se dogaða kad se skrolanje tra¾i na kraju èvora"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Broj redaka koliko treba skrolati kad se kurzor pomakne izvan prozora"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Kada je \"On\", Info prihvaæa i prikazuje ISO Latin znakove"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Kontrolira ¹to se dogaða kad se skrolanje tra¾i na kraju èvora"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Obja¹njava kori¹tenje varijable"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Opi¹i varijablu: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Postavi vrijednost info varijable"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Postavi varijablu: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Postavi %s na vrijednost (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Postavi %s na vrijednost (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Tagovima istekao rok trajanja ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), redaka ----,"
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d redaka --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d redaka --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Poddatoteka: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr ""
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Izvje¹taje o bugovima molimo slati emailom na bug-texinfo@gnu.org\n"
+ "(na engleskom), generalna pitanja i diskusije na help-texinfo@gnu.org.\n"
+ "Texinfo matièna stranica: http://www.gnu.org/software/texinfo/\n"
+ "Pitanja i kritike glede translacije slati na adresu lokalizacija@linux.hr."
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr ""
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr ""
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr ""
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr ""
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr ""
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr ""
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr ""
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr ""
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr ""
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr ""
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr ""
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr ""
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr ""
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr ""
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr ""
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr ""
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1399
+ #, fuzzy, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "%s: nepoznata opcija `%c%s'\n"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:683
+ #, fuzzy, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "Ne mogu kreirati izlaznu datoteku `%s'."
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "Ne mogu kreirati izlaznu datoteku `%s'."
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, fuzzy, c-format
+ msgid "No such file `%s'"
+ msgstr "Nema menija u èvoru `%s'."
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr ""
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr ""
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr ""
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1731
+ #, fuzzy, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "ne mogu kreirati izlaznu datoteku `%s'"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Nema unakrsnih referenci u ovom èvoru."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr ""
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr ""
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr ""
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr ""
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr ""
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr ""
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr ""
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr ""
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr ""
+ 
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search]  Tra¾i unaprijed za zadanim nizom\n"
+ #~ "              i selektiraj èvor u kojem je slijedeæa pojava niza naðena.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10[goto-node]  Pomakni se na èvor zadan imenom.\n"
+ #~ "              Mo¾ete takoðer ukljuèiti ime datoteke, kao u (DATOTEKA)"
+ #~ "IME_ÈVORA.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr ""
+ #~ "\\%-10[next-node]  Idi na slijedeæi (`next') èvor u odnosu na ovaj.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  Pomakni se na `directory' èvor.  Ekvivalentno `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[top-node]  Idi na Top (vr¹ni) èvor.  Ekvivalentno `\\[goto-node] "
+ #~ "Top'.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[scroll-forward-page-only]  Scroll forward within this node.\n"
+ #~ msgstr "\\%-10[scroll-forward]  'Skrolaj' naprijed 1 redak.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[scroll-backward-page-only]  Scroll backward within this node.\n"
+ #~ msgstr "\\%-10[scroll-backward]  'Skrolaj' unazad 1 redak.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  Tra¾i unazad zadani niz\n"
+ #~ "              i selektiraj èvor u kojem je slijedeæa pojava niza naðena.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- Upotrijebi `\\[history-node]' ili `\\[kill-node]' za izlaz ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr ""
+ #~ "\\%-10[move-to-prev-xref]  Preskoèi do slijedeæeg hipertekst linka unutar "
+ #~ "ovog èvora.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "Kori¹tenje: %s [OPCIJA]... [STAVKA-MENIJA...]\n"
+ #~ "\n"
+ #~ "Èitanje dokumentacije u Info formatu.\n"
+ #~ "\n"
+ #~ "Opcije:\n"
+ #~ "     --apropos=SUBJEKT        potra¾i SUBJEKT u svim indeksima svih "
+ #~ "priruènika.\n"
+ #~ " -d, --directory=DIR          dodaj DIR u INFOPATH.\n"
+ #~ "     --dribble=IMEDAT         zapamti korisnikovo tipkanje u IMEDAT.\n"
+ #~ " -f, --file=IMEDATOTEKE       zadaje ime Info datoteke koju se "
+ #~ "posjeæuje.\n"
+ #~ " -h, --help                   ispi¹i ovu pomoæ i zavr¹i s radom.\n"
+ #~ "     --index-search=NIZ       idi na èvor na koji pokazuje stavka indeksa "
+ #~ "NIZ.\n"
+ #~ " -n, --node=IMEÈVORA          zadaje èvorove u prvoj posjeæenoj info "
+ #~ "datoteci.\n"
+ #~ " -o, --output=IMEDATOTEKE     ispi¹i izabrane èvorove u IMEDATOTEKE.\n"
+ #~ " -R, --raw-escapes            ne uklanjaj ANSI escape sekvence iz man "
+ #~ "stranica.\n"
+ #~ "     --restore=IMEDATOTEKE    èitaj inicijalne tipke iz IMEDATOTEKE.\n"
+ #~ " -O, --show-options, --usage  idi na èvor sa opcijama komandne linije.\n"
+ #~ "%s     --subnodes               rekurzivno ispi¹i stavke menija.\n"
+ #~ "     --vi-keys                koristi tipke kao ¹to su u vi-u i less-u.\n"
+ #~ "     --version                ispi¹i informaciju o verziji i zavr¹i s "
+ #~ "radom.\n"
+ #~ "\n"
+ #~ "Prvi argument koji nije opcija, ako je prisutan, je stavka menija od "
+ #~ "koje\n"
+ #~ "se poèinje; nju se tra¾i u svim `dir' datotekama kroz INFOPATH.\n"
+ #~ "Ako nije prisutan, info spaja (merge) sve `dir' datoteke i prikazuje\n"
+ #~ "rezultat. Eventualni preostali argumenti se tretiraju kao imena stavki\n"
+ #~ "menija relativno od inicijalno posjeæenog èvora.\n"
+ #~ "\n"
+ #~ "Primjeri:\n"
+ #~ "  info                       prika¾i vr¹ni dir meni\n"
+ #~ "  info emacs                 zapoèni od emacs èvora iz vr¹nog dir-a\n"
+ #~ "  info emacs buffers         zapoèni u buffers èvoru unutar emacs "
+ #~ "priruènika\n"
+ #~ "  info --show-options emacs  zapoèni u èvoru s emacsovim komandnim "
+ #~ "opcijama\n"
+ #~ "  info -f ./foo.info         prika¾i datoteku ./foo.info, zaobilazeæi "
+ #~ "dir\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr "              Odabiranje stavke menija selektira drugi èvor.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              Mo¾ete takoðer ukljuèiti ime datoteke, kao u (DATOTEKA)"
+ #~ "IME_ÈVORA.\n"
+ 
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  Tra¾i unazad zadani niz,\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "              i selektiraj èvor u kojem je slijedeæa pojava niza naðena.\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "Slijedim Next (slijedeæi) èvor..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "Izabirem prvu stavku menija..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "Selektiram Next (slijedeæi) èvor..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "Pomièem se gore (Up) %d put(a), onda Next."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "Idemo na Prev (prethodni) u ovom prozoru."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "Idem gore (Up) u ovom prozoru."
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "Idem na zadnju stavku `Prev'-ovog menija."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #, fuzzy
+ #~ msgid "Variable"
+ #~ msgstr "Postavi varijablu: "
+ 
+ #, fuzzy
+ #~ msgid "User Option"
+ #~ msgstr "Umetni kompletiranje"
+ 
+ #, fuzzy
+ #~ msgid "Instance Variable"
+ #~ msgstr "Opi¹i varijablu: "
+ 
+ #, fuzzy
+ #~ msgid "Next:"
+ #~ msgstr "Next"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr ""
+ #~ "\\%-10[menu-digit]  Odaberi prvu ... devetu stavku u èvorovom meniju.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "S ovim programom NE DOLAZE GARANCIJE.  Mo¾ete redistribuirati ovaj "
+ #~ "software\n"
+ #~ "pod uvjetima GNU General Public License.\n"
+ #~ "Za vi¹e informacija o ovim stvarima, pogledajte datoteke imena COPYING.\n"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "              datoteke, i selektiraj èvor referenciran prvom naðenom "
+ #~ "stavkom.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "S ovim programom NE DOLAZE GARANCIJE.  Mo¾ete redistribuirati ovaj "
+ #~ "software\n"
+ #~ "pod uvjetima GNU General Public License.\n"
+ #~ "Za vi¹e informacija o ovim stvarima, pogledajte datoteke imena COPYING.\n"
+ 
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "\"\" je neispravno"
+ 
+ #~ msgid ""
+ #~ "Basic Commands in Info Windows\n"
+ #~ "******************************\n"
+ #~ "\n"
+ #~ "  \\%-10[quit-help]  Quit this help.\n"
+ #~ "  \\%-10[quit]  Quit Info altogether.\n"
+ #~ "  \\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ #~ "\n"
+ #~ "Selecting other nodes:\n"
+ #~ "----------------------\n"
+ #~ "  \\%-10[next-node]  Move to the \"next\" node of this node.\n"
+ #~ "  \\%-10[prev-node]  Move to the \"previous\" node of this node.\n"
+ #~ "  \\%-10[up-node]  Move \"up\" from this node.\n"
+ #~ "  \\%-10[menu-item]  Pick menu item specified by name.\n"
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ "  \\%-10[xref-item]  Follow a cross reference.  Reads name of reference.\n"
+ #~ "  \\%-10[history-node]  Move to the last node seen in this window.\n"
+ #~ "  \\%-10[move-to-next-xref]  Skip to next hypertext link within this "
+ #~ "node.\n"
+ #~ "  \\%-10[move-to-prev-xref]  Skip to previous hypertext link within this "
+ #~ "node.\n"
+ #~ "  \\%-10[select-reference-this-line]  Follow the hypertext link under "
+ #~ "cursor.\n"
+ #~ "  \\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ "  \\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ "\n"
+ #~ "Moving within a node:\n"
+ #~ "---------------------\n"
+ #~ "  \\%-10[scroll-forward]  Scroll forward a page.\n"
+ #~ "  \\%-10[scroll-backward]  Scroll backward a page.\n"
+ #~ "  \\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ #~ "  \\%-10[end-of-node]  Go to the end of this node.\n"
+ #~ "  \\%-10[1scroll-forward]  Scroll forward 1 line.\n"
+ #~ "  \\%-10[1scroll-backward]  Scroll backward 1 line.\n"
+ #~ "\n"
+ #~ "Other commands:\n"
+ #~ "---------------\n"
+ #~ "  \\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ "  \\%-10[last-menu-item]  Pick last item in node's menu.\n"
+ #~ "  \\%-10[index-search]  Search for a specified string in the index "
+ #~ "entries of this Info\n"
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ "  \\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ "  \\%-10[search]  Search forward through this Info file for a specified "
+ #~ "string,\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ "  \\%-10[search-backward]  Search backward in this Info file for a "
+ #~ "specified string,\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "Osnovne naredbe u Info Prozorima\n"
+ #~ "********************************\n"
+ #~ "\n"
+ #~ "  \\%-10[quit-help]  Zavr¹i ovu pomoæ.\n"
+ #~ "  \\%-10[quit]  Iziði iz Info programa.\n"
+ #~ "  \\%-10[get-info-help-node]  Pozovi Info priruènik.\n"
+ #~ "\n"
+ #~ "Selektiranje drugih èvorova:\n"
+ #~ "----------------------------\n"
+ #~ "  \\%-10[next-node]  Idi na slijedeæi (\"next\") èvor od ovog èvora.\n"
+ #~ "  \\%-10[prev-node]  Idi na prethodni (\"previous\") èvor od ovog èvora.\n"
+ #~ "  \\%-10[up-node]  Idi gore (\"up\") od ovog èvora.\n"
+ #~ "  \\%-10[menu-item]  Izaberi stavku menija zadanu imenom.\n"
+ #~ "              Odabiranjeim stavke menija se selektira drugi èvor.\n"
+ #~ "  \\%-10[xref-item]  Slijedi unakrsnu referencu. Èita ime reference.\n"
+ #~ "  \\%-10[history-node]  Idi na zadnji vidljiv èvor u ovom prozoru.\n"
+ #~ "  \\%-10[move-to-next-xref]  Idi na slijedeæi hipertekst link u ovom "
+ #~ "èvoru.\n"
+ #~ "  \\%-10[move-to-prev-xref]  Idi na prethodni hipertekst link u ovom "
+ #~ "èvoru.\n"
+ #~ "  \\%-10[select-reference-this-line]  Slijedi hipertekst link pod "
+ #~ "kursorom.\n"
+ #~ "  \\%-10[dir-node]  Idi na èvor `directory'.  Ekvivalentno `\\[goto-node] "
+ #~ "(DIR)'.\n"
+ #~ "  \\%-10[top-node]  Idi na vr¹ni (Top) èvor. Ekvivaletno `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ "\n"
+ #~ "Pomicanje unutar èvora:\n"
+ #~ "-----------------------\n"
+ #~ "  \\%-10[scroll-forward]  Skrolaj stranicu naprijed.\n"
+ #~ "  \\%-10[scroll-backward]  Skrolaj stranicu unazad.\n"
+ #~ "  \\%-10[beginning-of-node]  Idi na poèetak ovog èvora.\n"
+ #~ "  \\%-10[end-of-node]  Idi na kraj ovog èvora.\n"
+ #~ "  \\%-10[1scroll-forward]  Skrolaj naprijed 1 redak.\n"
+ #~ "  \\%-10[1scroll-backward]  Skrolaj unazad 1 redak.\n"
+ #~ "\n"
+ #~ "Druge naredbe:\n"
+ #~ "--------------\n"
+ #~ "  \\%-10[menu-digit]  Odaberi prvu ... devetu stavku u èvorovom meniju.\n"
+ #~ "  \\%-10[last-menu-item]  Odaberi zadnju stavku u èvorovom meniju.\n"
+ #~ "  \\%-10[index-search]  Tra¾i zadani niz u indeks stavkama ove Info\n"
+ #~ "              datoteke, i selektiraj èvor referenciran prvom naðenom "
+ #~ "stavkom.\n"
+ #~ "  \\%-10[goto-node]  Idi na èvor zadan imenom.\n"
+ #~ "              Mo¾ete takoðer ukljuèiti ime datoteke, kao u (DATOTEKA)"
+ #~ "IME_ÈVORA.\n"
+ #~ "  \\%-10[search]  Tra¾i zadani niz prema naprijed kroz ovu Info "
+ #~ "datoteku,\n"
+ #~ "              i selektiraj èvor u kojem je slijedeæa pojava niza naðena.\n"
+ #~ "  \\%-10[search-backward]  Tra¾i zadani niz prema nazad kroz ovu Info "
+ #~ "datoteku,\n"
+ #~ "              i selektiraj èvor u kojem je slijedeæa pojava niza naðena.\n"
+ 
+ #~ msgid "Basic Commands in Info Windows\n"
+ #~ msgstr "Osnovne naredbe u Info Prozorima\n"
+ 
+ #~ msgid "Moving within a node:\n"
+ #~ msgstr "Pomicanje unutar èvora:\n"
+ 
+ #~ msgid "Selecting other nodes:\n"
+ #~ msgstr "Selektiranje drugih èvorova:\n"
+ 
+ #~ msgid "Other commands:\n"
+ #~ msgstr "Druge naredbe:\n"
+ 
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "  --output FILENAME            output to FILENAME instead of $HOME/.info\n"
+ #~ "  --help                       display this help and exit.\n"
+ #~ "  --version                    display version information and exit.\n"
+ #~ "\n"
+ #~ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ #~ "$HOME/.infokey) and writes compiled key file to $HOME/.info.\n"
+ #~ "\n"
+ #~ "Email bug reports to bug-texinfo@gnu.org,\n"
+ #~ "general questions and discussion to help-texinfo@gnu.org.\n"
+ #~ msgstr ""
+ #~ "Kori¹tenje: %s [OPCIJA]... [ULAZNA-DATOTEKA]\n"
+ #~ "\n"
+ #~ "Opcije:\n"
+ #~ "  --output DATOTEKA            izlaz u DATOTEKA umjesto u $HOME/.info\n"
+ #~ "  --help                       ispi¹i ovu pomoæ i zavr¹i.\n"
+ #~ "  --version                    ispi¹i informaciju o verziji i zavr¹i.\n"
+ #~ "\n"
+ #~ "Prevedi infokey izvornu datoteku u infokey datoteku. Èita ULAZNA-"
+ #~ "DATOTEKA\n"
+ #~ "(podrazumno $HOME/.infokey) i ispisuje prevedenu key datoteku u $HOME/."
+ #~ "info.\n"
+ #~ "\n"
+ #~ "©aljite izvje¹zaje u bugovima na email bug-texinfo@gnu.org,\n"
+ #~ "opæa pitanja i diskusije na help-texinfo@gnu.org.\n"
Files texinfo-4.12/po/hu.gmo and texinfo-4.13/po/hu.gmo differ
diff -Nrc2 texinfo-4.12/po/hu.po texinfo-4.13/po/hu.po
*** texinfo-4.12/po/hu.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/hu.po	Thu Sep 18 11:38:32 2008
***************
*** 0 ****
--- 1,3325 ----
+ # translation of info.po to hungarian
+ # Hungarian messages for GNU Texinfo
+ # Copyright Â© 2004, 2006 Free Software Foundation, Inc.
+ #
+ # MÃ¡tÃ© LABÃ�DI <labadimate@freemail.hu>, 2006.
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: info\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2006-02-18 16:00+0100\n"
+ "Last-Translator: Mate LABADI <labadimate@freemail.hu>\n"
+ "Language-Team: hungarian <hu@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Generator: KBabel 1.11\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: â€ž%sâ€œ opciÃ³ fÃ©lreÃ©rthetÅ‘\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: OpciÃ³ â€ž--%sâ€œ nem fogad argumentumot\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: OpciÃ³ â€ž%c%sâ€œ nem fogad argumentumot\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: Option â€ž%sâ€œ argumentumot vÃ¡r\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: ismeretlen opciÃ³ â€ž--%sâ€œ\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: ismeretlen opciÃ³ â€ž%c%sâ€œ\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: Ã©rvÃ©nytelen opciÃ³ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: Ã©rvÃ©nytelen opciÃ³ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: Az opciÃ³ egy argumentumot vÃ¡r -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: Option â€ž-W %sâ€œ nem Ã©rthetÅ‘\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: A  â€ž-W %sâ€œ opciÃ³ nem vÃ¡r argumentumot\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr ""
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "1 karakterrel elÅ‘re"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "1 karakterrel hÃ¡tra"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "UgrÃ¡s a sor elejÃ©re"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "UgrÃ¡s a sor vÃ©gÃ©re"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "1 szÃ³val elÅ‘re"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "1 szÃ³val hÃ¡tra"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "A kurzor alatti karakter tÃ¶rlÃ©se"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "A kurzor elÅ‘tti karakter tÃ¶rlÃ©se"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "MÅ±velet tÃ¶rlÃ©se vagy kilÃ©pÃ©s"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "E sor elfogadÃ¡sa (vagy kiegÃ©szÃ­tÃ©se)"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "A kÃ¶vetkezÅ‘ karakter beszÃºrÃ¡sa"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "E karakter beszÃºrÃ¡sa"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Egy TAB karakter beszÃºrÃ¡sa"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Itteni karakterek felcserÃ©lÃ©se "
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "UtolsÃ³ tÃ¶rlÃ©s tartalmÃ¡nak visszaÃ¡llÃ­tÃ¡sa"
+ 
+ # IMO muss "kill" auch im Folgenden wÃ¶rtlich Ã¼s werden -ke-
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "A tÃ¶rlÃ©snaplÃ³ Ã¼res"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Egy korÃ¡bbi tÃ¶rlÃ©s visszaÃ¡llÃ­tÃ¡sa"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "TÃ¶rlÃ©s a sor vÃ©gÃ©ig"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "TÃ¶rlÃ©s a sor elejÃ©ig"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "A kurzort kÃ¶vetÅ‘ szÃ³ tÃ¶rlÃ©se"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "A kurzort megelÅ‘zÅ‘  szÃ³ tÃ¶rlÃ©se"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Nincs kiegÃ©szÃ­tÃ©s"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Nem teljes"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "LehetsÃ©ges kiegÃ©szÃ­tÃ©sek listÃ¡ja"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "EgyszerÅ± kiegÃ©szÃ­tÃ©s"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "1 kiegÃ©szÃ­tÃ©s:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d kiegÃ©szÃ­tÃ©s:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "KiegÃ©szÃ­tÃ©s beszÃºrÃ¡sa"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "KiegÃ©szÃ­tÃ©sek felÃ©pÃ­tÃ©se ..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "A kiegÃ©szÃ­tÃ©sek ablak gÃ¶rgetÃ©se "
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "A lÃ¡bjegyzetek nem jelenÃ­thetÅ‘k meg"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "E ponthoz tartozÃ³ lÃ¡bjegyzetek megjelenÃ­tÃ©se egy mÃ¡sik ablakban"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- LÃ¡bjegyzetek ----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "SzÃ¶veg keresÃ©se a fÃ¡jl tÃ¡rgymutatÃ³jÃ¡ban"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "TÃ¡rgymutatÃ³bejegyzÃ©sek keresÃ©se..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Nincs tÃ¡rgymutatÃ³."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "TÃ¡rgymutatÃ³bejegyzÃ©s: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "UgrÃ¡s az elÅ‘bbi â€ž\\[index-search]â€œ paranccsal talÃ¡lt tÃ¡rgymutatÃ³ bejegyzÃ©shez"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Nincs korÃ¡bbi keresÃ©si feltÃ©tel"
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Nincs tÃ¡rgymutatÃ³."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Nincs %stÃ¡rgymutatÃ³-bejegyzÃ©s, ami â€ž%s!H-t tartalmaznÃ¡."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "tovÃ¡bb"
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "EZ NEM LÃ�THATÃ“"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "â€ž%sâ€œ szerepel ebben: %s . (kÃ¶vetkezÅ‘ keresÃ©s â€ž\\[next-index-match]â€œ alapjÃ¡n.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "â€ž%sâ€œ tÃ¡rgymutatÃ³inak Ã¡tnÃ©zÃ©se..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Nincs elÃ©rhetÅ‘ fÃ¡jl, amely tÃ¡rgymutatÃ³ja tartalmaznÃ¡  â€ž%sâ€œ-t."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Adott sztring keresÃ©se minden ismert info fÃ¡jl tÃ¡rgymutatÃ³jÃ¡ban Ã©s menÃ¼ "
+ "Ã©pÃ­tÃ©se"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "TÃ¡rgymutatÃ³ apropÃ³k:"
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* MenÃ¼: Oldalak, amelyek tÃ¡rgymutatÃ³i tartalmazzÃ¡k â€ž%sâ€œ-t:\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "A --help tÃ¶bb informÃ¡ciÃ³t ad.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "Nincs tÃ¡rgymutatÃ³ ehhez: %s\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Hibajegyek a bug-texinfo@gnu.org,\n"
+ "Ã¡ltalÃ¡nos kÃ©rdÃ©sek Ã©s Ã¶tletek a help-texinfo@gnu.org\n"
+ "cÃ­mre kÃ¼ldhetÅ‘k.\n"
+ "Texinfo honlap: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "A(z) â€ž%sâ€œ oldal nem talÃ¡lhatÃ³."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "A(z) â€ž(%s)%sâ€œ oldal nem talÃ¡lhatÃ³."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Nem talÃ¡lhatÃ³ ablak!"
+ 
+ # ATNEZNI LM
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "A pont nem jelenik meg az ablakon lÃ¡thatÃ³ oldalon!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Az utolsÃ³ ablak nem tÃ¶rÃ¶lhetÅ‘!"
+ 
+ # node = csomÃ³pont? LM
+ # vagy csak pont? sas
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Nincs menÃ¼ ezen az oldalon."
+ 
+ # node = csomÃ³pont? LM
+ # vagy csak pont? sas
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Nincs lÃ¡bjegyezet ezen az oldalon."
+ 
+ # node = csomÃ³pont? LM
+ # vagy csak pont? sas
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Ez az oldal nem tartalmaz kereszthivatkozÃ¡st."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Nincs â€ž%sâ€œ utalÃ¡s ezen az oldalon."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Ismeretlen Info parancs: â€ž%câ€œ. A â€ž?â€œ sÃºg."
+ 
+ # smart = okos vagy smart = modern vagy smart = fejlett ? LM
+ # sztem fejlett: sas
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "A â€ž%sâ€œ terminÃ¡ltÃ­pus nem elÃ©g fejlett az Info futtatÃ¡sÃ¡hoz."
+ 
+ # tegez/magÃ¡z? LM
+ # talÃ¡n egy kicsit jobb a magÃ¡zÃ¡s itt, de ahogy tetszik, de 1sÃ©ges legyen - sas
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Ã–n mÃ¡r az oldal utolsÃ³ lapjÃ¡t lÃ¡tja."
+ 
+ # tegez/magÃ¡z? LM
+ # talÃ¡n egy kicsit jobb a magÃ¡zÃ¡s itt, de ahogy tetszik, de 1sÃ©ges legyen - sas
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Ã–n mÃ¡r az oldal legelsÅ‘ lapjÃ¡t lÃ¡tja."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Csak egy ablak."
+ 
+ # resulting window = eredmÃ©nyablak
+ # vagy
+ # resulting window = lÃ©trejÃ¶vÅ‘/keletkezÅ‘ ablak
+ # LM
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Az eredmÃ©nyablak tÃºl kicsi lenne."
+ 
+ # tegez/magÃ¡z LM
+ # ha lehet, legjobb elkerÃ¼lni, pÃ©ldÃ¡ul be kell zÃ¡rni egy ablakot, amÃºgy itt: talÃ¡n egy kicsit jobb a magÃ¡zÃ¡s, de ahogy tetszik, de 1sÃ©ges legyen - sas
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Nincs elÃ©g hely sÃºgÃ³ablakhoz, kÃ©rem zÃ¡rjon be egy ablakot!."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  KilÃ©pÃ©s e sÃºgÃ³bÃ³l. \n"
+ 
+ # valahogy hangsÃºlyozni, hogy quit ALTOGETHER? LM
+ # Ãºgy Ã©rzem nem, de vajh mire utal ez? Arra, hogy: is? - sas
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  KilÃ©pÃ©s az Info-bÃ³l.\n"
+ 
+ # tutorial = bevezetÅ‘ ? LM
+ # lehet - sas
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Az Info bevezetÅ‘ indÃ­tÃ¡sa\n"
+ 
+ # hÃ¡tra / felfele ? LM
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  GÃ¶rgetÃ©s 1 sorral hÃ¡tra.\n"
+ 
+ # elÅ‘re / lefele ? LM
+ # elÅ‘re - sas
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  GÃ¶rgetÃ©s 1 sorral elÅ‘re.\n"
+ 
+ # hÃ¡tra / felfele ? LM
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  GÃ¶rgetÃ©s egy oldalt hÃ¡tra.\n"
+ 
+ # elÅ‘re / lefele ? LM
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  GÃ¶rgetÃ©s egy oldalt elÅ‘re.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  UgrÃ¡s az oldal elejÃ©hez.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  UgrÃ¡s az oldal vÃ©gÃ©hez.\n"
+ 
+ # Hypertext ? LM
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10[move-to-next-xref]  UgrÃ¡s az oldalon talÃ¡lhatÃ³ kÃ¶vetkezÅ‘ hypertext "
+ "bejegyzÃ©sre.\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  A kurzor alatti hypertext link "
+ "kÃ¶vetÃ©se.\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  UgrÃ¡s az ebben az ablakban utoljÃ¡ra lÃ¡tott oldalra.\n"
+ 
+ # ATNEZNI LM
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[prev-node]  UgrÃ¡s az elÅ‘zÅ‘ oldalra.\n"
+ 
+ # ATNEZNI LM
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[next-node]  UgrÃ¡s a kÃ¶vetkezÅ‘ oldalra.\n"
+ 
+ # ATNEZNI LM
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  UgrÃ¡s az elÅ‘zÅ‘ oldalra.\n"
+ 
+ # ATNEZNI LM
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  UgrÃ¡s a kÃ¶vetkezÅ‘ oldalra.\n"
+ 
+ # ATNEZNI LM
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  UgrÃ¡s a szÃ¼lÅ‘oldalra.\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[end-of-node]  UgrÃ¡s az oldal vÃ©gÃ©hez.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[end-of-node]  UgrÃ¡s az oldal vÃ©gÃ©hez.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr ""
+ "  %-10s  Az oldalon talÃ¡lhatÃ³ menÃ¼ elsÅ‘ ... kilencedik elemÃ©nek "
+ "kivÃ¡lasztÃ¡sa.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr ""
+ "\\%-10[last-menu-item]  Az oldalhoz tartozÃ³ menÃ¼ utolsÃ³ elemÃ©nek "
+ "kivÃ¡lasztÃ¡sa.\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  MenÃ¼elem kivÃ¡lasztÃ¡sa nÃ©vvel.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ "\\%-10[xref-item]  KereszthivatkozÃ¡s kÃ¶vetÃ©se. A hivatkozÃ¡s nevÃ©nek "
+ "beolvasÃ¡sa.\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  UgrÃ¡s egy nÃ©vvel megadott oldalra\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  Adott szÃ¶veg keresÃ©se visszafele\n"
+ 
+ # ATNEZNI LM
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[prev-node]  UgrÃ¡s az elÅ‘zÅ‘ oldalra.\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "  %-10s  Adott szÃ¶veg keresÃ©se visszafele\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Megadott szÃ¶veg keresÃ©se a mostani Info fÃ¡jlban\n"
+ "              Ã©s az elsÅ‘ talÃ¡lat Ã¡ltal mutatott oldal kivÃ¡lasztÃ¡sa.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "Jelen mÅ±velet tÃ¶rlÃ©se"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Alapparancsok az Info ablakban\n"
+ "******************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  KilÃ©pÃ©s a sÃºgÃ³bÃ³l.\n"
+ 
+ # az altogether le legyen forditva ?
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  KilÃ©pÃ©s az Info-bÃ³l.\n"
+ 
+ # tutorial = bemutatÃ³?
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Az Info bemutatÃ³ indÃ­tÃ¡sa.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  UgrÃ¡s a kÃ¶vetkezÅ‘ oldalra.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  UgrÃ¡s az elÅ‘zÅ‘ oldalra.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  UgrÃ¡s a szÃ¼lÅ‘oldalra.\n"
+ 
+ # ATNEZNI LM
+ # Egy mÃ¡sik oldalt meghÃ­vÃ³ menÃ¼elem kivÃ¡lasztÃ¡sa? - sas
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "              A menÃ¼elem kivÃ¡lasztÃ¡sa miatt egy mÃ¡sik oldal lesz meghÃ­vva.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr ""
+ "  %-10s  KereszthivatkozÃ¡s kÃ¶vetÃ©se. A hivatkozÃ¡s nevÃ©nek beolvasÃ¡sa.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  UgrÃ¡s az ablakban lÃ¡thatÃ³ utolsÃ³ oldalra.\n"
+ 
+ # hypertext link = ? LM
+ # link = lÃ¡nc, hivatkozÃ¡s - sas
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  UgrÃ¡s az oldalon talÃ¡lhatÃ³ kÃ¶vetkezÅ‘ hypertext linkre.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  A kurzor alatti hypertext link kÃ¶vetÃ©se.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  UgrÃ¡s a â€ždirectoryâ€œ-oldalra. EgyenÃ©rtÃ©kÅ± ezzel: â€žg (DIR)â€œ.\n"
+ 
+ # top node = legfelsÅ‘ szintÅ± oldal ? LM
+ # szint nem kell - sas
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  UgrÃ¡s a legfelsÅ‘ oldalra. EgyenÃ©rtÃ©kÅ± ezzel: â€žg Topâ€œ.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "NavigÃ¡ciÃ³ egy oldalon belÃ¼l:\n"
+ "----------------------------\n"
+ 
+ # elÅ‘re / felfele / lefele ? LM
+ # elÅ‘re - sas
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  GÃ¶rgetÃ©s egy oldalt elÅ‘re.\n"
+ 
+ # hÃ¡tra / vissza / felfele / lefele ? LM
+ # hÃ¡tra - sas
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  GÃ¶rgetÃ©s egy oldalt hÃ¡tra.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  UgrÃ¡s az oldal elejÃ©re.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  UgrÃ¡s az oldal vÃ©gÃ©re.\n"
+ 
+ # elÅ‘re / felfele / lefele ? LM
+ # elÅ‘re - sas
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  GÃ¶rgetÃ©s 1 sorral elÅ‘re.\n"
+ 
+ # hÃ¡tra / vissza / felfele / lefele ? LM
+ # hÃ¡tra - sas
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  GÃ¶rgetÃ©s 1 sorral hÃ¡tra.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "EgyÃ©b parancsok:\n"
+ "----------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr ""
+ "  %-10s  Az oldalon talÃ¡lhatÃ³ menÃ¼ elsÅ‘ ... kilencedik elemÃ©nek "
+ "kivÃ¡lasztÃ¡sa.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Az oldal utolsÃ³ menÃ¼elemÃ©nek kivÃ¡lasztÃ¡sa.\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Megadott szÃ¶veg keresÃ©se a mostani Info fÃ¡jlban\n"
+ "              Ã©s az elsÅ‘ talÃ¡lat Ã¡ltal mutatott oldal kivÃ¡lasztÃ¡sa.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10[goto-node]  UgrÃ¡s egy nÃ©vvel megadott oldalra.\n"
+ "              A nÃ©vben akÃ¡r egy fÃ¡jl is szerepelhet, pÃ©ldÃ¡ul (FÃ�JL)"
+ "OLDALNEVE.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Megadott szÃ¶veg keresÃ©se a mostani Info fÃ¡jlban\n"
+ "              Ã©s az elsÅ‘ talÃ¡lat Ã¡ltal mutatott oldal kivÃ¡lasztÃ¡sa.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Megadott szÃ¶veg keresÃ©se a mostani Info fÃ¡jlban\n"
+ "              Ã©s az elsÅ‘ talÃ¡lat Ã¡ltal mutatott oldal kivÃ¡lasztÃ¡sa.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Az aktuÃ¡lis keresÃ©si Ãºtvonal::\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Az Info ablakban elÃ©rhetÅ‘ parancsok:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "A kÃ¶vetkezÅ‘ parancsok csak %s -n keresztÃ¼l hÃ­vhatÃ³k meg:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "A kÃ¶vetkezÅ‘ parancsokat egyÃ¡ltalÃ¡n nem lehet meghÃ­vni:\n"
+ "\n"
+ 
+ # sÃºgÃ³ szÃ¶veg legyen vagy inkÃ¡bb segÃ­tÅ‘ szÃ¶veg ? LM
+ # sÃºgÃ³ - sas
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "SÃºgÃ³ szÃ¶veg megjelenÃ­tÃ©se"
+ 
+ # node = oldal ? LM
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Info oldal â€ž(info)Helpâ€œ meglÃ¡togatÃ¡sa"
+ 
+ # KEY ? LM
+ # utÃ¡na kell nÃ©zni, mire vonatkozik, talÃ¡n dokumentÃ¡ciÃ³ kiÃ­rÃ¡sa a kulcsszÃ³hoz - sas
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "DokumentÃ¡ciÃ³ nyomtatÃ¡sa KEY-hez"
+ 
+ # key = kulcs ?
+ # key = billentyÅ± / karakter ? LM
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "LeÃ­rÃ³ billentyÅ±: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s nincs definiÃ¡lva."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s nincs definiÃ¡lva."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s %s-kÃ©nt van definiÃ¡lva."
+ 
+ # esetleg egy jobb forditas ide ? LM
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Egy adott parancs futtatÃ¡sÃ¡hoz szÃ¼ksÃ©ges utasÃ­tÃ¡s megjelenÃ­tÃ©se"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Hol van a parancs: "
+ 
+ # key = kulcs
+ # key = billentyÅ± ? LM
+ # sztem itt billentyÅ± - sas
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "â€ž%sâ€œ egy billyentyÅ±n sincs"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s csak %s-n Ã¡t hÃ­vhatÃ³ meg."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s meghÃ­vhatÃ³ %s-n keresztÃ¼l."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Nincs â€ž%sâ€œ nevÅ± fÃ¼ggvÃ©ny"
+ 
+ # node = csomÃ³pont? LM
+ # vagy csak pont? sas
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "TovÃ¡bbi oldalak kivÃ¡lasztÃ¡sa:\n"
+ "-----------------------------\n"
+ 
+ # argument = argumentum
+ # argument = paramÃ©ter ? LM
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "Ã©rvÃ©nytelen szÃ¡mÃº argumentum"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "a(z) â€ž%sâ€œ input fÃ¡jl nem nyithatÃ³ meg."
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "a(z) â€ž%sâ€œ output fÃ¡jl nem hozhatÃ³ lÃ©tre."
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "hiba â€ž%sâ€œ Ã­rÃ¡sakor."
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "hiba a(z) â€ž%sâ€œ output fÃ¡jl bezÃ¡rÃ¡sakor"
+ 
+ # key sequence = billentyÅ±kombinÃ¡ciÃ³ ? LM
+ # valsz inkÃ¡bb egymÃ¡s utÃ¡n leÃ¼tendÅ‘ billentyÅ±sorozoat - sas
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "a billentyÅ±kombinÃ¡ciÃ³ tÃºl hosszÃº"
+ 
+ # key sequence = billentyÅ±kombinÃ¡ciÃ³ ? LM
+ # lehet, hogy inkÃ¡bb egymÃ¡s utÃ¡n leÃ¼tendÅ‘ billentyÅ±sorozoat - sas
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "hiÃ¡nyzÃ³ billentyÅ±kombinÃ¡ciÃ³ "
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "A NUL karakter (\\000) tilos"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "A NUL karakter (^%c) tilos"
+ 
+ # action=mÅ±velet ? LM
+ # Ã¡ltalÃ¡ban az - sas
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "hiÃ¡nyzÃ³ mÅ±veletnÃ©v"
+ 
+ # section=szakasz?
+ # A mondat eleje nagybetu vagy kisbetu? LM
+ # tÃºl hosszÃº szakad - ez a biztos - sas
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "tÃºl hosszÃº szakasz"
+ 
+ # action=mÅ±velet ? LM
+ # Ã¡ltalÃ¡ban az - sas
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "ismeretlen mÅ±velet: â€ž%sâ€œ."
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "tÃºl hosszÃº mÅ±veletnÃ©v"
+ 
+ # action=muvelet? LM
+ # Ã¡ltalÃ¡ban az - sas
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "`%s' mÅ±velet utÃ¡ni extra karakterek"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "hiÃ¡nyzÃ³ vÃ¡ltozÃ³nÃ©v"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "hiÃ¡nyzÃ³ â€ž=â€œ jel kÃ¶zvetlen egy vÃ¡ltozÃ³nÃ©v utÃ¡n"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "tÃºl hosszÃº vÃ¡ltozÃ³nÃ©v"
+ 
+ # long = hosszÃº vagy
+ # long = nagy ? LM
+ # nagy - kivÃ¡lÃ³ fordÃ­tÃ¡si stÃ­lus! - sas
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "tÃºl nagy Ã©rtÃ©k"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "â€ž%sâ€œ, %u. sor: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr ""
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr ""
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr ""
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr ""
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Parancs leÃ­rÃ¡sa: "
+ 
+ # FORDITANI
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr ""
+ 
+ # FORDITANI
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr ""
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "DefiniÃ¡latlan parancs: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "A megjelnÃ­tett ablak magassÃ¡gÃ¡nak beÃ¡llÃ­tÃ¡sa"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "A kÃ©pernyÅ‘ magassÃ¡gÃ¡nak beÃ¡llÃ­tÃ¡sa (%d): "
+ 
+ # FORDITANI
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "A(z) â€ž%sâ€œ fÃ¡jl nem mÃ³dosÃ­thatÃ³.\n"
+ 
+ # node = oldal ? LM
+ # containing file ? LM
+ # szerintem itt arrÃ³l a fÃ¡jlrÃ³l van szÃ³, amely tartalmazza ezt. (mondjuk: gazdafÃ¡jl?) - sas
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* MenÃ¼:\n"
+ "  (FÃ¡jl)Oldal                     Sorok  MÃ©ret  FÃ¡jlt tartalmaz\n"
+ "  -----------                     -----  -----  ---------------"
+ 
+ # FORDITANI
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ 
+ # FORDITANI
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr ""
+ 
+ # FORDITANI
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr ""
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "MeglÃ¡togatott oldal kivÃ¡lasztÃ¡sa: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "A hivatkozÃ¡s eltÃ¼nt! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "ÃœdvÃ¶zÃ¶ljÃ¼k az Info %s verziÃ³jÃ¡ban. SegÃ­tsÃ©g kÃ©rÃ©sÃ©hez a(z) â€ž\\[get-help-"
+ "window]â€œ-t, a menÃ¼hÃ¶z ugrÃ¡shoz a(z) â€ž\\[menu-item]â€œ-t kell begÃ©pelni"
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "UgrÃ¡s a kÃ¶vetkezÅ‘ sorra"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "UgrÃ¡s az elÅ‘zÅ‘ sorra"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "UgrÃ¡s a sor vÃ©gÃ©re"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "UgrÃ¡s a sor elejÃ©re"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "KÃ¶vetkezÅ‘"
+ 
+ # node=oldal ? LM
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Nincs tÃ¶bb oldal e dokumentumban."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Nincs â€žElÅ‘zÅ‘â€œ oldala e pontnak."
+ 
+ # ATNEZNI LM
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Nincs ElÅ‘zÅ‘ vagy Fel lehetÅ‘sÃ©g e ponthoz e dokumentumban."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "MozgÃ¡s elÅ‘re vagy le az oldal szerkeztÃ©ben"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "MozgÃ¡s hÃ¡tra vagy fel az oldal szerkezetÃ©ben"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "GÃ¶rgetÃ©s elÅ‘re az ablakban"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "GÃ¶rgetÃ©s elÅ‘re az ablakban Ã©s beÃ¡llÃ­tÃ¡sa alapÃ©rtelmezett mÃ©retre"
+ 
+ # aktuÃ¡lis ? LM
+ # Nem. [semmi], e, jelen, stb. - sas
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "GÃ¶rgetÃ©s elÅ‘re az ablakban ezen oldalon maradva"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "GÃ¶rgetÃ©s elÅ‘re az ablakban ezen oldalon maradva, Ã©s az alap ablakmÃ©ret "
+ "beÃ¡llÃ­tÃ¡sa"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "GÃ¶rgetÃ©s hÃ¡tra az ablakban"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "GÃ¶rgetÃ©s hÃ¡tra az ablakban Ã©s beÃ¡llÃ­tÃ¡sa alapÃ©rtelmezett mÃ©retre"
+ 
+ # aktuÃ¡lis ? LM
+ # Nem. [semmi], e, jelen, stb. - sas
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "GÃ¶rgetÃ©s hÃ¡tra az ablakban ezen oldalon maradva"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "GÃ¶rgetÃ©s hÃ¡tra az ablakban ezen oldalon maradva, Ã©s az alap ablakmÃ©ret "
+ "beÃ¡llÃ­tÃ¡sa"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "UgrÃ¡s az oldal elejÃ©re"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "UgrÃ¡s az oldal vÃ©gÃ©re"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "GÃ¶rgetÃ©s soronkÃ©nt le"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "GÃ¶rgetÃ©s soronkÃ©nt fel"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "GÃ¶rgetÃ©s egy fÃ©l kÃ©pernyÅ‘nyit le"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "GÃ¶rgetÃ©s egy fÃ©l kÃ©pernyÅ‘nyit fel"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "KÃ¶vetkezÅ‘ ablak kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "ElÅ‘zÅ‘ ablak kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Jelen ablak felosztÃ¡sa"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Jelen ablak tÃ¶rlÃ©se"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Egy Ã¡llandÃ³ ablakot nem lehet tÃ¶rÃ¶lni"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "TÃ¶bbi ablak bezÃ¡rÃ¡sa"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "MÃ¡sik ablak gÃ¶rgetÃ©se"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "A mÃ¡sik ablak gÃ¶rgetÃ©se hÃ¡tra"
+ 
+ # aktuÃ¡lis ? LM
+ # Nem. [semmi], e, jelen, stb. - sas
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Jelen ablak nÃ¶velÃ©se (csÃ¶kkentÃ©se)"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "ElÃ©rhetÅ‘ kÃ©pernyÅ‘hely felosztÃ¡sa a lÃ¡thatÃ³ ablakok kÃ¶zt"
+ 
+ # FORDITANI
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr ""
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "KÃ¶vetkezÅ‘ oldal kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "ElÅ‘zÅ‘ oldal kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "SzÃ¼lÅ‘ oldal kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "A fÃ¡jl utolsÃ³ oldala kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Jelen ablaknak nincsenek tovÃ¡bbi oldalai"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "A fÃ¡jl elsÅ‘ oldala kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Az oldal menÃ¼jÃ©ben talÃ¡lhatÃ³ utolsÃ³ elem kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "A menÃ¼elem kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Nincs %d elem e menÃ¼ben."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "MenÃ¼elem (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "MenÃ¼elem: "
+ 
+ # miÃ©rt nem Krhiv? :))) - sas
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Kereszthiv (%s) kÃ¶vetÃ©se: "
+ 
+ # miÃ©rt nem Krhiv? :))) - sas
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Kereszthiv kÃ¶vetÃ©se: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Egy menÃ¼elem elolvasÃ¡sa Ã©s oldalÃ¡nak kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr ""
+ "Egy lÃ¡bjegyzet vagy kereszthivatkozÃ¡s elolvasÃ¡sa Ã©s oldalÃ¡nak kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "UgrÃ¡s az oldalhoz tartozÃ³ menÃ¼ elejÃ©re"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "A lehetÅ‘ legtÃ¶bb menÃ¼elem meglÃ¡togatÃ¡sa egyszerre"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Egy oldalnÃ©v elolvasÃ¡sa Ã©s kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "UgrÃ¡s az oldalra: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Nincs menÃ¼ a(z) â€ž%sâ€œ oldalon."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Nincs â€ž%sâ€œ menÃ¼elem a(z) â€ž%sâ€œ oldalon."
+ 
+ # talÃ¡lhatÃ³ / talÃ¡lom ? LM
+ # lelem, talÃ¡lom, nincs - sas
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Nincs a(z) â€ž%sâ€œ Ã¡ltal hivatkozott oldal ebben: â€ž%sâ€œ."
+ 
+ # FORDITANI
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr ""
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "MenÃ¼k kÃ¶vetÃ©se: "
+ 
+ # FORDITANI
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr ""
+ 
+ # FORDITANI
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr ""
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Egy kÃ©zikÃ¶ny oldal hivatkozÃ¡s olvasÃ¡sa Ã©s kivÃ¡lasztÃ¡sa"
+ 
+ # KÃ©zikÃ¶nyv ? LM
+ # Manpage = kÃ©zikÃ¶nyv oldal. Adott esetben egyszerÅ±en manlapkÃ©nt vagy manoldalkÃ©nt is hivatkozhatunk rÃ¡juk, mivel kissÃ© elavultak. A GNU rendszer alapÃ©rtelemzett dokumentÃ¡ciÃ³formÃ¡tuma az Info. EzÃ©rt is olyan fontos a fordÃ­tÃ¡s, amit kÃ©szÃ­tesz :-) (Ã©s amibe ey icipicit besegÃ­tek ...) - sas
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "KÃ©zikÃ¶nyv oldal: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "LegfelsÅ‘ oldal kivÃ¡lasztÃ¡sa e fÃ¡jban"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "A â€ž(dir)â€œ oldal kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Oldal tÃ¶rlÃ©se (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "A(z) â€ž%sâ€œ oldal nem tÃ¶rÃ¶lhetÅ‘"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Az utolsÃ³ oldal nem tÃ¶rÃ¶lhetÅ‘"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "A legutÃ³bb vÃ¡lasztott oldal kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Ezen oldal tÃ¶rlÃ©se"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "FÃ¡jlnÃ©v beolvasÃ¡sa Ã©s kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "FÃ¡jl keresÃ©se: "
+ 
+ # talÃ¡lhatÃ³ / talÃ¡lom
+ # a mondatszerkezet miatt itt jÃ³ a nem talÃ¡lhatÃ³ - sas
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "â€ž%sâ€œ nem talÃ¡lhatÃ³."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "A kimeneti fÃ¡jl (â€ž%sâ€œ) nem hozhatÃ³ lÃ©tre."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "KÃ©sz."
+ 
+ # Ã­rÃ¡s / mentÃ©s ? LM
+ # Ã­rÃ¡s - sas
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "â€ž%sâ€œ oldal Ã­rÃ¡sa..."
+ 
+ # pipe/csÅ‘ ? LM
+ # elolvasva, nekem a csÅ‘ tetszik - sas
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "Ezen oldal tartalmÃ¡nak csÅ‘be irÃ¡nyÃ­tÃ¡sa INFO_PRINT_COMMAND -al"
+ 
+ # pipe / csÅ‘ ? LM
+ # semmikÃ©pen nem pipe - sas
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Nem hozhatÃ³ lÃ©tre csÅ‘ ehhez:  â€ž%sâ€œ."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "%s oldal nyomtatÃ¡sa..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "TÃ¶rlÃ©s a sor elejÃ©ig"
+ 
+ # alÃ¡llomÃ¡ny ? LM
+ # passz - sas
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "â€ž%sâ€œ alÃ¡llomÃ¡ny keresÃ©se..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "SzÃ¶veg beolvasÃ¡sa Ã©s keresÃ©se kis/nagybetÅ± Ã©rzÃ©kenyen"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "SzÃ¶veg beolvasÃ¡sa Ã©s keresÃ©se "
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "SzÃ¶veg beolvasÃ¡sa Ã©s keresÃ©se fel"
+ 
+ # FORDITANI
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%sa sztringhez [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ # Ã©rzÃ©kenyen / Ã©rzÃ©kenysÃ©g
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr "kis/nagybetÅ± Ã©rzÃ©kenyen"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "KeresÃ©s felfelÃ©"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "KeresÃ©s"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "A keresÃ©s sikertelen volt."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "UtolsÃ³ keresÃ©s ismÃ©tlÃ©se azonos irÃ¡nyba"
+ 
+ # keresÃ©si feltÃ©tel / keresÃ©si szÃ¶veg / keresett szÃ¶veg ? LM
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Nincs korÃ¡bbi keresÃ©si feltÃ©tel"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "UtolsÃ³ keresÃ©s ismÃ©tlÃ©se ellenirÃ¡nyban"
+ 
+ # JAVITANI ?
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Egy szÃ¶veg interaktÃ­v keresÃ©se gÃ©pelÃ©skor"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "I.-keresÃ©s fel: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "I.-keresÃ©s fel: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "I.-keresÃ©s: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "I.-keresÃ©s: "
+ 
+ # checkit
+ # FORDITANI
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Sikertelen"
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "UgrÃ¡s az elÅ‘zÅ‘ kereszthivatkozÃ¡sra"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "UgrÃ¡s a kÃ¶vetkezÅ‘ kereszthivatkozÃ¡sra"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "A sorban megjelenÅ‘ hivatkozÃ¡s vagy menÃ¼elem kivÃ¡lasztÃ¡sa"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Jelen mÅ±velet tÃ¶rlÃ©se"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "KilÃ©pÃ©s"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "A kurzor mogatÃ¡sa az ablak egy adott sorÃ¡ra "
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "KÃ©pernyÅ‘ frissÃ­tÃ©se"
+ 
+ # rÃ¶videbb forma? KilÃ©pÃ©s az Info-bÃ³l ? LM
+ # Ã¡ltalÃ¡ban NAON.! fontos a RÃ–V.SÃ‰G, de itt kivÃ©telesen szerintem maradhat ez - sas
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Az Info hasznÃ¡latÃ¡nak befejezÃ©se"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "E karakter kisbetÅ±s vÃ¡ltozatÃ¡hoz rendelt parancs futtatÃ¡sa"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Ismeretlen parancs (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" Ã©rvÃ©nytelen"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "â€ž%sâ€œ Ã©rvÃ©nytelen"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Add hozzÃ¡ ezt a szÃ¡mjegyet az aktuÃ¡lis numerikus argumentumhoz"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Start (vagy szorozd be 4-gyel) az aktuÃ¡lis numerikus argumentumot"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "BelsÅ‘ hasznÃ¡latra a \\[universal-argument]-nek"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Nincs tÃ¶bb virtuÃ¡lis memÃ³ria!\n"
+ 
+ # on = be ? LM
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "â€žBeâ€œ Ã¡llapotban a lÃ¡bjegyzetek automatikusan jelennek meg Ã©s tÅ±nnek el"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "â€žBeâ€œ Ã¡llapotban egy ablak lÃ©trehozÃ¡sa vagy tÃ¶rlÃ©se a tÃ¶bbi is Ã¡tmÃ©retezi"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "â€žBeâ€œ Ã¡llapotban a kÃ©pernyÅ‘ villog csengÅ‘ helyett"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "â€žBeâ€œ Ã¡llapotban, hibÃ¡nÃ¡l csngetÃ©s"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "â€žBeâ€œ Ã¡llapotban az Info Ã¶sszegyÅ±jti a tÃ¶mÃ¶rÃ­tendÅ‘ fÃ¡jlokat"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "â€žBeâ€œ Ã¡llapotban a megtalÃ¡lt szÃ¶vegrÃ©szlet ki lesz emelve"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "VezÃ©rli, hogy mi tÃ¶rtÃ©njen, ha a gÃ¶rgetÃ©s a lap aljÃ¡n tÃ¶rtÃ©nik"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "A gÃ¶rgetendÅ‘ sorok szÃ¡ma, ha akurzor az ablakon kÃ­vÃ¼lre mozog"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "â€žBeâ€œ Ã¡llapotban az Info elfogadja Ã©s kiÃ­rja az ISO Latin karaktereket"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "VezÃ©rli, hogy mi tÃ¶rtÃ©njen, ha a gÃ¶rgetÃ©s a lap aljÃ¡n tÃ¶rtÃ©nik"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "A vÃ¡ltozÃ³ hasznÃ¡latÃ¡nak elmagyarÃ¡zÃ¡sa"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "VÃ¡ltozÃ³ leÃ­rÃ¡sa: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Egy Info vÃ¡ltozÃ³ beÃ¡llÃ­tÃ¡sa"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "VÃ¡ltozÃ³ beÃ¡llÃ­tÃ¡sa:"
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "%s beÃ¡llÃ­tÃ¡sa (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "%s beÃ¡llÃ­tÃ¡sa (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** lejÃ¡rt dÃ¡tumÃº Tagek ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), sor ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d sor --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d sor --%s--"
+ 
+ # subfile ? LM
+ # Passz - sas
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr "AlfÃ¡jl: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: figyelem: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " ehhez: %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tAz opciÃ³k teljes listÃ¡jÃ¡hoz prÃ³bÃ¡lja meg a â€ž%s --helpâ€œ parancsot!\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "HasznÃ¡lat: %s [OPCIÃ“K] ... TEXINFO-FÃ�JL...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Hibajegyek a bug-texinfo@gnu.org,\n"
+ "Ã¡ltalÃ¡nos kÃ©rdÃ©sek Ã©s Ã¶tletek a help-texinfo@gnu.org\n"
+ "cÃ­mre kÃ¼ldhetÅ‘k.\n"
+ "Texinfo honlap: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s:nem lehet beolvasni (%s) Ã©s nem lehet lÃ©trehozni (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: Ã¼res fÃ¡jl"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY-nek nincs END-INFO-DIR-ENTRY pÃ¡rja"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY-nek nincsSTART-INFO-DIR-ENTRY pÃ¡rja"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: mÃ¡r van dir fÃ¡jl: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Az Info fÃ¡jlt csak egyszer kell megadni!\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "felesleges parancssori argumentum: â€ž%sâ€œ"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ "Nem lett input fÃ¡jl megadva; tovÃ¡bbi informÃ¡ciÃ³Ã©rt prÃ³bÃ¡lja meg a --help-t!"
+ 
+ # dir ? LM
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ "Nem lett dir fÃ¡jl megadva; tovÃ¡bbi informÃ¡ciÃ³Ã©rt prÃ³bÃ¡lja meg a --help-t!"
+ 
+ # dir ? LM
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "nincs info dir bejegyzÃ©s â€ž%sâ€œ-ben"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "â€ž%sâ€œ-hez nem talÃ¡ltam bejegyzÃ©st; nincs mit tÃ¶rÃ¶lni"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "@%s argumentuma(i) figyelmen kÃ­vÃ¼l lett(ek) hagyva"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "JanuÃ¡r"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "FebruÃ¡r"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "MÃ¡rcius"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "Ã�prilis"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "MÃ¡jus"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "JÃºnius"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "JÃºlius"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "Augusztus"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "Szeptember"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "OktÃ³ber"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "November"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "December"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "nem kedvelt karakter %c a @var-ban"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "@sc argumentuma vÃ©gig nagybetÅ±s, Ã­gy nincs hatÃ¡sa"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "â€ž{â€œ-t vÃ¡rtam, de â€ž%câ€œ-t lÃ¡ttam"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "â€ž}â€œ-t vÃ¡rtam, de â€ž%câ€œ-t lÃ¡ttam"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s elavult"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp egy pozitÃ­v szÃ¡m argumentumot vÃ¡r, nem â€ž%sâ€œ-t"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Rossz argumentum ide: %c%s"
+ 
+ # elÃ©g / ahogy van ? LM
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "nincs"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Rossz argumentum ide: @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "beszÃºr"
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Rossz argumentum ide: %s: %s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr "@%s on vagy off-t vÃ¡rtam, â€ž%sâ€œ helyett"
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "HiÃ¡nyzÃ³ â€ž}â€œ a(z) @def arg.-ban"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Csak a(z) â€ž@%sâ€œ kÃ¶rnyezetben hasznÃ¡lhatÃ³ a(z) â€ž@%sâ€œ"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "â€ž%sâ€œ mellÅ‘zve lett a kimeneti fÃ¡jlnÃ©v elÅ‘tt"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "â€ž%sâ€œ mellÅ‘zve lett, mivel a stdout-ra Ã­rok"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "A kimeneti puffer nem Ã¼res."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "LÃ¡sd "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "â€ž%c%sâ€œ argumentumot vÃ¡r â€ž{...}â€œ, nem csak â€ž%sâ€œ-t"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "A(z) â€ž%sâ€œ lÃ¡bjegyzet zÃ¡rÃ³ kapcsoszÃ¡rÃ³jele hiÃ¡nyzik "
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "SzÃ¼lÅ‘ nÃ©lkÃ¼l definiÃ¡lt lÃ¡bjegyzet"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "LÃ¡bjegyzetben nem lehet lÃ¡bjegyzet"
+ 
+ # HTML
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "LÃ¡bjegyzetek"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: A CSS fÃ¡jl nem nyithatÃ³ meg: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: --css-file kommenttel vÃ©gzÅ‘dik"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[vÃ¡ratlan] nincs html tag, amit ki lehetne venni"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[vÃ¡ratlan] Ã©rvÃ©nytelen oldalnÃ©v: â€ž%sâ€œ"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Ismeretlen tÃ¡rgymutatÃ³ â€ž%sâ€œ"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Az Info nem tudja a â€ž:â€œ-t kezelni a â€ž%sâ€œ tÃ¡rgymutatÃ³bejegyzÃ©sben"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "â€ž%sâ€œ tÃ¡rgymutatÃ³ mÃ¡r lÃ©tezik"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Ismeretlen tÃ¡rgymutatÃ³ â€ž%sâ€œ Ã©s/vagy â€ž%sâ€œ itt: @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(sor )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(%*d sor)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Ismeretlen tÃ¡rgymutatÃ³ â€ž%sâ€œ itt: @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "A(z) â€ž%sâ€œ tÃ¡rgymutatÃ³ bejegyzÃ©se az oldalakon kÃ­vÃ¼lre esik"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(az oldalakon kÃ­vÃ¼l)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@item nem szerepelhet az @itemize argumentumakÃ©nt"
+ 
+ # checkit
+ # What does this mean? -ke-
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr ""
+ 
+ # %citem ist ein Texinfo-Befehl
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s egy argumentumot igÃ©nyel: %citem formÃ¡zÃ¡sÃ¡t"
+ 
+ # %cfloat ist ein Texinfo-Befehl
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "A %cfloat kÃ¶rnyezetet nem lehet beÃ¡gyazni"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "â€ž@endâ€œ-t vÃ¡rtam â€ž%sâ€œ, de â€ž%sâ€œ-t talÃ¡ltam"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Nincs egyezÅ‘ â€ž%cend %sâ€œ"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s betÅ±t vagy szÃ¡mjegyet tartalmazhat"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "fÃ¡jlvÃ©gÃ©t talÃ¡ltam egy nyitott blokkban"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "A(z) @%s -nek nincs Ã©rtelme a â€ž@floatâ€œ kÃ¶rnyezeten kÃ­vÃ¼l"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr ""
+ "@menu-t talÃ¡ltam az elsÅ‘ @node elÅ‘tt. LÃ©trehozom a â€žSzÃ¼lÅ‘â€œ (Top) oldalt"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "esetleg a @top oldalt @ifnottex-be kellene tenni, @ifinfo helyett"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr ""
+ "@detailmenu-t talÃ¡ltam az elsÅ‘ @node elÅ‘tt. LÃ©trehozom a â€žSzÃ¼lÅ‘â€œ (Top) oldalt"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ "A(z) @%s -nek nincs Ã©rtelme a â€ž@titlepageâ€œ Ã©s a â€ž@quotationâ€œ kÃ¶rnyezeten "
+ "kÃ­vÃ¼l"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "A(z) @%s -nek nincs Ã©rtelme a â€ž@titlepageâ€œ kÃ¶rnyezeten kÃ­vÃ¼l"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Nem egyezÅ‘ â€ž%c%sâ€œ"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "â€ž%c%sâ€œ utÃ¡n mÃ©g Ã­rni kell valamit"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "â€ž%sâ€œ rossz argument ehhez:: â€ž@%sâ€œ, â€ž%sâ€œ-t hasznÃ¡lom"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s -nek nincs jelentÃ©se a(z) â€ž@%sâ€œ blokkon belÃ¼l"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx -nek nincs jelentÃ©se a(z) â€ž%sâ€œ blokkon belÃ¼l"
+ 
+ # checkit
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s egy beszÃºrÃ¡si blokkon kÃ­vÃ¼l talÃ¡lhatÃ³ "
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s nem egy ISO 639 szabvÃ¡ny szerinti nyelvkÃ³d"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "ismeretlen kÃ³dolÃ¡si nÃ©v: â€ž%sâ€œ"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "bocsÃ¡nat, de a(z) â€ž%sâ€œ kÃ³dolÃ¡s nem tÃ¡mogatott"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "Ã©rvÃ©nytelen kÃ³dolt karakter: â€ž%sâ€œ"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s â€žiâ€œ-t vagy â€žjâ€œ-t vÃ¡r argumentumkÃ©nt, nem â€ž%câ€œ-t"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s egy â€žiâ€œ vagy â€žjâ€œ karakter vÃ¡r argumentumkÃ©nt"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "a(z) â€ž%sâ€œ makrÃ³ mÃ¡r korÃ¡bban definiÃ¡lt lett"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "â€ž%sâ€œ korÃ¡bbi definÃ­ciÃ³ja"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "A(z) â€ž%sâ€œ makrÃ³ tÃºl sok argumentummal lett meghÃ­vva a %d sorban"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "%cend makrÃ³ nem talÃ¡lhatÃ³"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "TÃºl sok hiba! Feladom.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: figyelem: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "Rossz helyen levÅ‘ %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "TovÃ¡bbi informÃ¡ciÃ³Ã©rt prÃ³bÃ¡lja meg a â€ž%s --helpâ€œ-t.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "HasznÃ¡lat: %s [OPCIÃ“K] ... TEXINFO-FÃ�JL...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Kimeneti formÃ¡tum vÃ¡lasztÃ¡s (az alap az Info):\n"
+ "      --docbook               DocBook XML kimenet INfo helyett.\n"
+ "      --html                  HTML kimenet Info helyett\n"
+ "      --xml                   Texinfo XML kimenet Info helyett\n"
+ "      --plaintext             sima szÃ¶veg kimenet Info helyett\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ 
+ # Die "." am Zeilenende habe ich entfernt. -ke-
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ "%s: Figyelmen kÃ­vÃ¼l hagyom a fel nem ismert TEXINFO_OUTPUT_FORMAT Ã©rtÃ©ket (â€ž%"
+ "sâ€œ).\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: a(z) %s argumentumÃ¡nak numerikusnak kell lennie, â€ž%sâ€œ helyett.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: nem tudom a makrÃ³kiterjesztÃ©s â€ž%sâ€œ kimenetÃ©t megnyitni"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr ""
+ "%s: a mÃ¡sodik makrÃ³kiterjesztÃ©s â€ž%sâ€œ kimenetÃ©t figyelmen kÃ­vÃ¼l hagyom.\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: nem tudom a makrÃ³kiterjesztÃ©s â€ž%sâ€œ kimenetÃ©t megnyitni"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr ""
+ "%s: a mÃ¡sodik makrÃ³kiterjesztÃ©s â€ž%sâ€œ kimenetÃ©t figyelmen kÃ­vÃ¼l hagyom.\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: a --paragraph-indent argumentumÃ¡nak numerikusnak,  â€žnoneâ€œ-nak vagy  "
+ "â€žasisâ€œ-nek kell lennie, â€ž%sâ€œ helyett.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: a --footnote-style argumentumÃ¡nak â€žseparateâ€œ-nek vagy  â€žendâ€œ-nek kell "
+ "lennie, â€ž%sâ€œ helyett.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: hiÃ¡nyzÃ³ fÃ¡jl argumentum.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "A tÃ¶bbsoros %c%s parancs helytelenÃ¼l van hasznÃ¡lva"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "â€ž%sâ€œ-t vÃ¡rok"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "A(z) â€ž%sâ€œ kÃ¶nyvtÃ¡r nem hozhatÃ³ lÃ©tre: %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Nem talÃ¡lhatÃ³ â€ž%sâ€œ ebben: â€ž%sâ€œ"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: A makrÃ³kiterjesztÃ©st Ã¡tirÃ¡nyÃ­tom a stdout-ra, mivel az Info kimete oda "
+ "megy.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "%s fÃ¡jl (â€ž%sâ€œ) kÃ©szÃ­tÃ©se â€ž%sâ€œ-bÃ³l.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: A fellÃ©pett hibÃ¡k miatt eltÃ¡volÃ­tom a(z) â€ž%sâ€œ makrÃ³ kimeneti Ã¡llomÃ¡nyt; "
+ "a megtartÃ¡sÃ¡hoz hasznÃ¡lja  --force opciÃ³t.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: A fellÃ©pett hibÃ¡k miatt eltÃ¡volÃ­tom a(z) â€ž%sâ€œ kimeneti Ã¡llomÃ¡nyt; a "
+ "megtartÃ¡sÃ¡hoz hasznÃ¡lja  --force opciÃ³t.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: A fellÃ©pett hibÃ¡k miatt eltÃ¡volÃ­tom a(z) â€ž%sâ€œ kimeneti Ã¡llomÃ¡nyt; a "
+ "megtartÃ¡sÃ¡hoz hasznÃ¡lja  --force opciÃ³t.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Ismeretlen parancs: â€ž%sâ€œ"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "Kapcsos zÃ¡rÃ³jelekkel egy parancsot is megadhat @%s argumentumakÃ©nt"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s kapcsos zÃ¡rÃ³jelpÃ¡rt vÃ¡r"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "PÃ¡r nÃ©lkÃ¼li }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "NINCS_NÃ‰V!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s hiÃ¡nyzÃ³ kapcsos bezÃ¡rÃ³jel"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image a(z) â€ž%sâ€œ fÃ¡jl (HTML) nem olvashatÃ³: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "Nincs ilyen fÃ¡jl: â€ž%sâ€œ"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image a(z) â€ž%sâ€œ fÃ¡jl (szÃ¶veges) nem olvashatÃ³: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image hiÃ¡nyzÃ³ fÃ¡jlnÃ©v argumentum"
+ 
+ # flag ? LM
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "ismeretlen flag: %s"
+ 
+ # checkit
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{â€ž%sâ€œ-hoz nincs Ã©rtÃ©k}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s egy nevet igÃ©nyel"
+ 
+ # AATNEZNI ? LM
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "KorÃ¡bban talÃ¡ltam fÃ¡jl vÃ©ge jelet, mint @end-t %s "
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "HiÃ¡nyzÃ³ } a @multitable sablonban"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr ""
+ "figyelmen kÃ­vÃ¼l hagyom a @multitable utÃ¡n Ã¡llÃ³ felesleges â€ž%sâ€œ szÃ¶veget"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "TÃºl sok oszlop szerepel a multitable elemben (max %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[vÃ¡ratlan] nem lehet a(z) %d. oszlopot a multitable-ben kivÃ¡lasztani"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "figyelmen kÃ­vÃ¼l hagyom a multitable-n kÃ­vÃ¼l esÅ‘ @tab-ot"
+ 
+ # ATNEZNI ? LM
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Multicolumn kimenet az utolsÃ³ sortÃ³l:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* %d. oszlop: kimenet = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "A(z) â€ž%sâ€œ oldal korÃ¡bban mÃ¡r definiÃ¡lva lett a(z) %d. sorban"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "A(z) %s oldal formÃ¡zÃ¡sa...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr ""
+ "A(z) â€ž%sâ€œ oldalon szerepelnie kell szekcionÃ¡lÃ¡s (sectioning) parancsnak (pl. "
+ "%c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "A(z) â€ž%c%sâ€œ parancshoz nem lett oldalnÃ©v rendelve"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "A(z) â€ž%sâ€œ horgony Ã©s a(z) â€ž%sâ€œ oldal ugyanarra a fÃ¡jlnÃ©vre mutatnak"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ "Ez az @anchor parancs figyelmen kÃ­vÃ¼l lett hagyva; bÃ¡rmely rÃ¡ valÃ³ "
+ "hivatkozÃ¡s nem fog mÅ±kÃ¶dni"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Nevezze Ã¡t ezt a horgonyt vagy hasznÃ¡lja a â€ž--no-splitâ€œ opciÃ³t"
+ 
+ # split-HTML ? LM
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Nem vÃ¡rt szÃ¶veg a(z) â€ž%sâ€œ split-HTML fÃ¡jl vÃ©gÃ©n"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "A(z) â€ž%sâ€œ Ã©s â€ž%sâ€œ horgonyok ugyanarra a fÃ¡jlnÃ©vre mutatnak"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ "az @anchor parancs figyelmen kÃ­vÃ¼l lett hagyva; bÃ¡rmely rÃ¡ valÃ³ hivatkozÃ¡s "
+ "nem fog mÅ±kÃ¶dni"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "%s egy nem lÃ©tezÅ‘ oldalra (â€ž%sâ€œ) hivatkozik (esetleg hibÃ¡s szekcionÃ¡lÃ¡s?)"
+ 
+ # ATNEZNI ? LM
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "A(z) â€ž%sâ€œ oldalnak a KÃ¶vetkezÅ‘ (Next) mezÅ‘je nem mutat sehova (esetleg hibÃ¡s "
+ "szekcionÃ¡lÃ¡s?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Ennek az oldalnak (%s) hibÃ¡s az ElÅ‘zÅ‘ (Prev) mezÅ‘je"
+ 
+ # ATNEZNI ? LM
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "A(z) â€ž%sâ€œ oldalnak az ElÅ‘zÅ‘ (Prev) mezÅ‘je nem mutat sehova"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Ennek az oldalnak (%s) hibÃ¡s a KÃ¶vetkezÅ‘ (Next) mezÅ‘je"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "â€ž%sâ€œ-nek nincs SzÃ¼lÅ‘ (Up) mezÅ‘je (esetleg hibÃ¡s szekcionÃ¡lÃ¡s?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "A(z) â€ž%sâ€œ oldal nem tartalmaz menÃ¼elemet â€ž%sâ€œ-hez, bÃ¡r ez uÃ³bbi a szÃ¼lÅ‘je"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "nem hivatkozott oldal â€ž%sâ€œ"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "TÃ¶rlÃ©s: %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Nem tÃ¶rÃ¶lhetÅ‘ fÃ¡jl: `%s': %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "FÃ¼ggelÃ©k: %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "BelsÅ‘ hiba (search_sectioning) â€ž%sâ€œ!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "BelsÅ‘ hiba (search_sectioning) â€ž%sâ€œ!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s mÃ¡r elavult; hasznÃ¡lja %c%s-t helyette"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Olyan oldal mÃ¡r lÃ©tezik, amelynek szekciÃ³ja %ctop"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Ã�me a %ctop oldal"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr ""
+ "%ctop korÃ¡bban szerepel, mint %cnode, az alapÃ©rtelmezett %s-t hasznÃ¡lom"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image a(z) â€ž%sâ€œ fÃ¡jl nem olvashatÃ³: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "ha a @headitem a @multitable utolsÃ³ elemekÃ©nt szerepel, akkor a Docbook "
+ "kimenet hibÃ¡s lesz"
+ 
+ # of ? LM
+ # Na, ezt nem tudjuk. Vagy elÃ­rÃ¡s Ã©s on-off (be-ki), vagy valamibÅ‘l valamire alkalmazva: of, on: innen: ide: . MI EZ??? TESZTELNI KELL!
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr ""
+ 
+ # node = csomÃ³pont? LM
+ # vagy csak pont? sas
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Ez az oldal nem tartalmaz kereszthivatkozÃ¡st."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "kiÃ­rja e sÃºgÃ³t Ã©s kilÃ©p"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "kimenet Ã¡tirÃ¡nyÃ­tÃ¡sa FILE-ba"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "kiÃ­rja a verziÃ³informÃ¡ciÃ³t Ã©s kilÃ©p"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "HasznÃ¡lat: %s [OPCIÃ“K]... FÃ�JL...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Rendezett tÃ¡rgymutatÃ³ generÃ¡lÃ¡sa minden TeX kimeneti fÃ¡jlhoz.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "FÃ�JL... Ã¡ltalÃ¡ban â€žfoo.%c%câ€œ alakÃº egy â€žfoo.texiâ€œ dokumentum esetÃ©n.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "OpciÃ³k:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "Hiba tÃ¶rtÃ©nt â€ž%sâ€œ ÃºjbÃ³li megnyitÃ¡sakor"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: nem Texinfo tÃ¡rgymutatÃ³fÃ¡jl"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Nem talÃ¡lhatÃ³ oldalszÃ¡m ebben: %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "a(z) %s bejegyzÃ©s egy mÃ¡sodlagos nÃ©vvel rendelkezÅ‘ bejegyzÃ©st kÃ¶vet"
+ 
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10[goto-node]  UgrÃ¡s egy nÃ©vvel megadott oldalra.\n"
+ #~ "              A nÃ©vben akÃ¡r egy fÃ¡jl is szerepelhet, pÃ©ldÃ¡ul (FÃ�JL)"
+ #~ "OLDALNEVE.\n"
+ 
+ # ATNEZNI LM
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "\\%-10[next-node]  UgrÃ¡s a kÃ¶vetkezÅ‘ oldalra.\n"
+ 
+ # tegez/magaz ? LM
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- A kilÃ©pÃ©shez hasznÃ¡lja a(z) â€ž\\[history-node]â€œ-t vagy a(z)  â€ž\\[kill-"
+ #~ "node]â€œ-t ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr ""
+ #~ "\\%-10[move-to-next-xref]  UgrÃ¡s az oldalon talÃ¡lhatÃ³ elÅ‘zÅ‘ hypertext "
+ #~ "bejegyzÃ©sre.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              Az Ã¡llomÃ¡nynevet is meg lehet adni: (FÃ�JL)OLDALNEVE.\n"
+ 
+ # kÃ¶vetÃ©se / betÃ¶ltÃ©se ?
+ #~ msgid "Following Next node..."
+ #~ msgstr "KÃ¶vetkezÅ‘ oldal betÃ¶ltÃ©se..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "1. menÃ¼elem kivÃ¡lasztÃ¡sa..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "KÃ¶vetkezÅ‘ oldal kivÃ¡lasztÃ¡sa..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "MozgÃ¡s %d alkalommal felfele, majd a â€žKÃ¶vetkezÅ‘â€œ kivÃ¡lasztÃ¡sa."
+ 
+ # ATNEZNI LM
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "UgrÃ¡s az ElÅ‘zÅ‘re ebben az ablakban."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "MozgÃ¡s Fel ebben az ablakban."
+ 
+ # oldal ? LM
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "UgrÃ¡s az ElÅ‘zÅ‘ utolsÃ³ menÃ¼elemÃ©re."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ # FunkciÃ³ ? LM
+ #~ msgid "Function"
+ #~ msgstr "FÃ¼ggvÃ©ny"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "MakrÃ³"
+ 
+ # checkit
+ # Form ? LM
+ #~ msgid "Special Form"
+ #~ msgstr "KivÃ©teles forma"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "VÃ¡ltozÃ³"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "FelhasznÃ¡lÃ³i opciÃ³"
+ 
+ # Instance ? LM
+ # PÃ©ldÃ¡ny? - sas
+ #~ msgid "Instance Variable"
+ #~ msgstr "PÃ©ldÃ¡ny vÃ¡ltozÃ³"
+ 
+ #~ msgid "Method"
+ #~ msgstr "MetÃ³dus"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "NÃ©vtelen"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "Ez itt %s, ami a makeinfo %s verziÃ³jÃ¡val (%s) lett generÃ¡lva.\n"
+ 
+ # HTML
+ #~ msgid "Next:"
+ #~ msgstr "KÃ¶vetkezÅ‘:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "ElÅ‘zÅ‘:"
+ 
+ # HTML
+ #~ msgid "Up:"
+ #~ msgstr "Fel:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "MenÃ¼"
+ 
+ # ATNEZNI ? LM
+ #~ msgid "Cross"
+ #~ msgstr "Kereszt"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "ElÅ‘zÅ‘"
+ 
+ #~ msgid "Up"
+ #~ msgstr "Fel"
+ 
+ #, fuzzy
+ #~ msgid "see "
+ #~ msgstr "LÃ¡sd "
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "A(z) â€ž%sâ€œ menÃ¼elem mÃ¡r lÃ©tezik a â€ž%sâ€œ fÃ¡jlhoz"
+ 
+ # tegez/magaz ? LM
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr ""
+ #~ "\\%-10[menu-digit]  VÃ¡lassza ki az oldalhoz tartozÃ³ menÃ¼ elsÅ‘ ... "
+ #~ "kilencedik elemÃ©t.\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "a(z) â€ž%sâ€œ oldalra %d hivatkozÃ¡s mutat"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "A @quote-arg csak az egyargumentumos makrÃ³knÃ¡l hasznÃ¡latos"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Tartalom"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "RÃ¶vid tartalom"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "az ideiglenes Ã¡llomÃ¡nyok megtartÃ¡sa a feldolgozÃ¡s utÃ¡n"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr ""
+ #~ "a feldolgozÃ¡s utÃ¡n ne legyenek az ideiglenes Ã¡llomÃ¡nyok megtartva "
+ #~ "(alapÃ©rtelmezett)"
diff -Nrc2 texinfo-4.12/po/insert-header.sin texinfo-4.13/po/insert-header.sin
*** texinfo-4.12/po/insert-header.sin	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/insert-header.sin	Tue Sep  3 08:51:40 2002
***************
*** 0 ****
--- 1,23 ----
+ # Sed script that inserts the file called HEADER before the header entry.
+ #
+ # At each occurrence of a line starting with "msgid ", we execute the following
+ # commands. At the first occurrence, insert the file. At the following
+ # occurrences, do nothing. The distinction between the first and the following
+ # occurrences is achieved by looking at the hold space.
+ /^msgid /{
+ x
+ # Test if the hold space is empty.
+ s/m/m/
+ ta
+ # Yes it was empty. First occurrence. Read the file.
+ r HEADER
+ # Output the file's contents by reading the next line. But don't lose the
+ # current line while doing this.
+ g
+ N
+ bb
+ :a
+ # The hold space was nonempty. Following occurrences. Do nothing.
+ x
+ :b
+ }
Files texinfo-4.12/po/ja.gmo and texinfo-4.13/po/ja.gmo differ
diff -Nrc2 texinfo-4.12/po/ja.po texinfo-4.13/po/ja.po
*** texinfo-4.12/po/ja.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/ja.po	Thu Sep 18 11:38:32 2008
***************
*** 0 ****
--- 1,3737 ----
+ # Japanese message for texinfo 4.0f
+ # Copyright (C) 2002 Free Software Foundation, Inc.
+ # Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 1999-2002
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: GNU texinfo 4.0f\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2002-01-23 20:46+0900\n"
+ "Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
+ "Language-Team: Japanese <ja@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=EUC-JP\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤ÏÛ£Ëæ¤Ç¤¹\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: ¥ª¥×¥·¥ç¥ó `--%s' ¤Ï°ú¿ô¤¬ÉÔÍ×¤Ç¤¹\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: ¥ª¥×¥·¥ç¥ó `%c%s' ¤Ï°ú¿ô¤¬ÉÔÍ×¤Ç¤¹\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: ¥ª¥×¥·¥ç¥ó `%s' ¤Ë¤Ï¡¢°ú¿ô¤¬É¬Í×¤Ç¤¹\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: `--%s' ¤ÏÇ§¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ç¤¹\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: `%c%s' ¤ÏÇ§¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó¤Ç¤¹\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: Ìµ¸ú¤Ê¥ª¥×¥·¥ç¥ó -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: ¥ª¥×¥·¥ç¥ó¤Ï°ú¿ô¤òÍ×µá¤·¤Þ¤¹ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: `-W %s' ¥ª¥×¥·¥ç¥ó¤¬Û£Ëæ¤Ç¤¹\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: `-W %s' ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬ÉÔÍ×¤Ç¤¹\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, fuzzy, c-format
+ msgid "memory exhausted"
+ msgstr "²¾ÁÛ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "°ìÊ¸»úÊ¬¿Ê¤á¤ë"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "°ìÊ¸»úÊ¬Ìá¤¹"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "¹ÔÆ¬¤Ë°ÜÆ°"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "¹ÔËö¤Ë°ÜÆ°"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Ã±¸ì°ì¤ÄÊ¬¿Ê¤á¤ë"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Ã±¸ì°ì¤ÄÊ¬Ìá¤¹"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "¥«¡¼¥½¥ë°ÌÃÖ¤ÎÊ¸»ú¤òºï½ü"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "¥«¡¼¥½¥ë¤Î¸å¤í¤ÎÊ¸»ú¤òºï½ü"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "¥­¥ã¥ó¥»¥ë¡¢Áàºî¤Î¼è¤ê»ß¤á"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "¤³¤Î¹Ô¤ò¼õ¤±Æþ¤ì¤ë(Ëô¤ÏÊä´°¤µ¤»¤ë)"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "¼¡¤ÎÊ¸»ú¤ò¤½¤Î¤Þ¤ÞÁÞÆþ¤¹¤ë"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "¤³¤ÎÊ¸»ú¤òÁÞÆþ¤¹¤ë"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "¥¿¥ÖÊ¸»ú¤òÁÞÆþ¤¹¤ë"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Ê¸»ú¤Î¸ò´¹"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "¥­¥ë¥ê¥ó¥°¤ÎÆâÍÆ¤òÅ½¤ê¤Ä¤±¤ë"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "¥­¥ë¥ê¥ó¥°¤¬¶õ¤Ç¤¹"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "°ÊÁ°¤Î¥­¥ë¥ê¥ó¥°ÆâÍÆ¤òÁÞÆþ¤¹¤ë"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "¹ÔËö¤Þ¤Ç¤òÀÚ¤ê¼è¤ë"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "¹ÔÆ¬¤Þ¤Ç¤òÀÚ¤ê¼è¤ë"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Ã±¸ì¤Î¥«¡¼¥½¥ë¤è¤ê¤â¸å¤òÀÚ¤ê¼è¤ë"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Ã±¸ì¤Î¥«¡¼¥½¥ë¤è¤êÁ°¤òÀÚ¤ê¼è¤ë"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Êä´°¸õÊä¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Êä´°¤Ç¤­¤Þ¤»¤ó"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Êä´°¥ê¥¹¥È"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Êä´°¤ò¹Ê¤ê¹þ¤ß¤Þ¤·¤¿"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "1 ¤Ä¤ÎÊä´°:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d ¸Ä¤ÎÊä´°\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Êä´°¤òÁÞÆþ"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Êä´°¥ê¥¹¥È¤òºîÀ®Ãæ..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Êä´°¥¦¥£¥ó¥É¥¦¤ò¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "µÓÃí¤òÉ½¼¨¤Ç¤­¤Þ¤»¤ó"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "Â¾¤Î¥¦¥£¥ó¥É¥¦Æâ¤Ë¤³¤Î¥Î¡¼¥É¤È´ØÏ¢¤·¤¿µÓÃí¤òÉ½¼¨"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "------------ µÓÃí ------------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "¤³¤Î¥Õ¥¡¥¤¥ë¤Î¸«½Ð¤·¤«¤éÊ¸»úÎó¤ò¸¡º÷¤¹¤ë"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "¸«½Ð¤·¹àÌÜ¤ò¸«¤Ä¤±¤Æ¤¤¤Þ¤¹"
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "¹àÌÜ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "¸«½Ð¤·¹àÌÜ: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr "Ä¾Á°¤Î `\\[index-search]' ¥³¥Þ¥ó¥É¤È°ìÃ×¤·¤¿¸«½Ð¤·¥¢¥¤¥Æ¥à¤òÃ©¤ë"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Á°¤Î¸«½Ð¤·¸¡º÷Ê¸»úÎó¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "¸«½Ð¤·¹àÌÜ¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: info/indices.c:374
+ #, fuzzy, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "\"%2$s\" ¤ò´Þ¤à%1$s¸«½Ð¤·¹àÌÜ¤¬¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "¤³¤ì°Ê¾å¤Î"
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "*¤³¤ì¤ò¸«¤é¤ì¤Þ¤»¤ó*"
+ 
+ #: info/indices.c:421
+ #, fuzzy, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "%1$s ¤«¤é \"%2$s\" ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿¡£(`\\[next-index-match]' ¤Ç¼¡¤òÃµ¤·¤Þ¤¹)"
+ 
+ #: info/indices.c:549
+ #, fuzzy, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "\"%s\" ¤Î¸«½Ð¤·¤òÄ´¤Ù¤Æ¤¤¤Þ¤¹..."
+ 
+ #: info/indices.c:604
+ #, fuzzy, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "¥¤¥ó¥Ç¥Ã¥¯¥¹¤Ë \"%s\" ¤ò»ý¤Ã¤Æ¤¤¤ë info ¥Õ¥¡¥¤¥ë¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr "Á´¤Æ¤Î info ¥Õ¥¡¥¤¥ëÊ¸»úÎó¤«¤é¸«½Ð¤·¤òÁöºº¤·¡¢¥á¥Ë¥å¡¼¤òºîÀ®"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "¸ì¶ç¤ò´Þ¤à¹àÌÜ¤ò¸¡º÷: "
+ 
+ #: info/indices.c:662
+ #, fuzzy, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* ¥á¥Ë¥å¡¼: \"%s\" ¤ò´Þ¤à¸«½Ð¤·¹àÌÜ\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "¾Ü¤·¤¯¤Ï --help ¥ª¥×¥·¥ç¥ó¤ò»î¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "`%s' ¤ËÂÐ¤¹¤ë¹àÌÜ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr " --speech-friendly        ²»À¼¹çÀ®´ï¤ËÂÐ¤¹¤ë¿ÆÏÂÀ­¤ò¹â¤á¤ë\n"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ #, fuzzy
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Email ¤Ë¤è¤ë¥Ð¥°¥ì¥Ý¡¼¥È¤Ï bug-texinfo@gnu.org¡¢\n"
+ "°ìÈÌÅª¤Ê¼ÁÌä¤äµÄÏÀ¤Ï help-texinfo@gnu.org ¤Þ¤Ç¡£\n"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "`%s' ¥Î¡¼¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "`(%s)%s' ¥Î¡¼¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "¥¦¥£¥ó¥É¥¦¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¥Î¡¼¥ÉÆâ¤Ë¥Ý¥¤¥ó¥È¤¬¸½¤ì¤Þ¤»¤ó¡ª"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "ºÇ¸å¤Î¥¦¥£¥ó¥É¥¦¤Ïºï½ü¤Ç¤­¤Þ¤»¤ó"
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "¤³¤Î¥Î¡¼¥É¤Ë¥á¥Ë¥å¡¼¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "¤³¤Î¥Î¡¼¥É¤ËµÓÃí¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "¤³¤Î¥Î¡¼¥É¤ËÁê¸ß»²¾È¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "¤³¤Î¥Î¡¼¥É¤Î `%s' ¥Ý¥¤¥ó¥¿¤¬¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Ì¤ÃÎ¤Î Info ¥³¥Þ¥ó¥É `%c' -- `?' ¤Ç¥Ø¥ë¥×¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£"
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Ã¼Ëö¥¿¥¤¥× `%s' ¤Ï Info ¤òÆ°¤«¤»¤ë¤Û¤ÉÍø¸ý¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "¤³¤³¤Ï¤â¤¦¡¢¤³¤Î¥Î¡¼¥É¤ÎºÇ½ª¥Ú¡¼¥¸¤Ç¤¹¡£"
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "¤³¤³¤Ï¤â¤¦¡¢¤³¤Î¥Î¡¼¥É¤ÎºÇ½é¤Î¥Ú¡¼¥¸¤Ç¤¹¡£"
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Í£°ì¤Î¥¦¥£¥ó¥É¥¦¡£"
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "·ë²Ì¥¦¥£¥ó¥É¥¦¤¬¾®¤µ¤¹¤®¤ëÍÍ¤Ç¤¹"
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr ""
+ "¥Ø¥ë¥×¥¦¥£¥ó¥É¥¦ÍÑ¤Î¾ì½ê¤¬Â­¤ê¤Þ¤»¤ó¡¢¥¦¥£¥ó¥É¥¦¤ò°ì¤Äºï½ü¤·¤Æ¤¯¤À¤µ¤¤¡£"
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "  %-10s  ¤³¤Î¥Ø¥ë¥×¤ò½ªÎ»¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:48
+ #, fuzzy
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "  %-10s  Info ¤â°ì½ï¤Ë½ªÎ»¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:49
+ #, fuzzy
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Info ¥Á¥å¡¼¥È¥ê¥¢¥ë¤òµ¯Æ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "  %-10s  1 ¹ÔÊ¬¸åÊý¤ØÌá¤¹¡£\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "  %-10s  1 ¹ÔÊ¬Á°Êý¤Ø¤¹¤¹¤á¤ë¡£\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "  %-10s  1 ¥Ú¡¼¥¸Ê¬¸åÊý¤ØÌá¤¹¡£\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "  %-10s  1 ¥Ú¡¼¥¸Ê¬Á°Êý¤Ø¿Ê¤á¤ë¡£\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "  %-10s  ¸½ºß¤Î¥Î¡¼¥É¤ÎÀèÆ¬¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:56
+ #, fuzzy
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "  %-10s  ¸½ºß¤Î¥Î¡¼¥É¤ÎÀèÆ¬¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥ÉÆâ¤Î¼¡¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ø¥¹¥­¥Ã¥×¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr "  %-10s  ¥«¡¼¥½¥ë°ÌÃÖ¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤òÃ©¤ë¡£\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "  %-10s  ¤³¤Î¥¦¥£¥ó¥É¥¦¤ÇºÇ¸å¤Ë¸«¤¿¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤Î `Á°' ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤Î `¼¡' ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤Î `Á°' ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤Î `¼¡' ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤«¤é `¾å' ¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "  %-10s  ¸½ºß¤Î¥Î¡¼¥É¤ÎÀèÆ¬¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "  %-10s  ¸½ºß¤Î¥Î¡¼¥É¤ÎÀèÆ¬¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  ¥Î¡¼¥É¥á¥Ë¥å¡¼¤ÎºÇ½é¤«¤é 9 ÈÖÌÜËø¤Î¥¢¥¤¥Æ¥à¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "  %-10s  ¥Î¡¼¥É¥á¥Ë¥å¡¼¤ÎºÇ¸å¤Î¥¢¥¤¥Æ¥à¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  Ì¾Á°¤Ç»ØÄê¤·¤¿¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "  %-10s  Áê¸ß»²¾È¤òÃ©¤ë¡£»²¾ÈÌ¾¤òÆÉ¤ß¼è¤ë¡£\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  Ì¾Á°¤Ç»ØÄê¤µ¤ì¤¿¥Î¡¼¥É¤Ë°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  ¸½ºß¤Î Info ¥Õ¥¡¥¤¥ëÁ´ÂÎ¤ò¡¢»ØÄê¤µ¤ì¤¿Ê¸»úÎó¤ÇÁ°Êý¸¡º÷¤·¡¢\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤Î `Á°' ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ "  %-10s  ¸½ºß¤Î Info ¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¹àÌÜ¤Ç¡¢Ê¸»úÎó¤ò»ØÄê¤·¤Æ¸¡º÷¤·¡¢\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr "          ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿¹àÌÜ¤¬»²¾È¤·¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "¸½ºß¤ÎÁàºî¤òÃæ»ß"
+ 
+ #: info/infodoc.c:89
+ #, fuzzy
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr "Info ¥¦¥£¥ó¥É¥¦Æâ¤Î´ðËÜ¥³¥Þ¥ó¥É\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  ¤³¤Î¥Ø¥ë¥×¤ò½ªÎ»¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Info ¤â°ì½ï¤Ë½ªÎ»¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Info ¥Á¥å¡¼¥È¥ê¥¢¥ë¤òµ¯Æ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤Î `¼¡' ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤Î `Á°' ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤«¤é `¾å' ¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "             ¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¤ÎÁªÂò¤Ç¡¢Â¾¤Î¥Î¡¼¥É¤¬ÁªÂò¤µ¤ì¤ë»ö¤Ë¤Ê¤ë¡£\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Áê¸ß»²¾È¤òÃ©¤ë¡£»²¾ÈÌ¾¤òÆÉ¤ß¼è¤ë¡£\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  ¤³¤Î¥¦¥£¥ó¥É¥¦¤ÇºÇ¸å¤Ë¸«¤¿¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥ÉÆâ¤Î¼¡¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ø¥¹¥­¥Ã¥×¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  ¥«¡¼¥½¥ë°ÌÃÖ¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤òÃ©¤ë¡£\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  `¥Ç¥£¥ì¥¯¥È¥ê' ¥Î¡¼¥É¤Ø°ÜÆ°¡£`g (DIR)' ¤ÈÆ±¤¸¡£\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Top ¥Î¡¼¥É¤Ø°ÜÆ°¡£`g Top' ¤ÈÆ±¤¸¡£\n"
+ 
+ #: info/infodoc.c:110
+ #, fuzzy
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr "¥Î¡¼¥ÉÆâ¤Ç¤Î°ÜÆ°:\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  1 ¥Ú¡¼¥¸Ê¬Á°Êý¤Ø¿Ê¤á¤ë¡£\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  1 ¥Ú¡¼¥¸Ê¬¸åÊý¤ØÌá¤¹¡£\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  ¸½ºß¤Î¥Î¡¼¥É¤ÎÀèÆ¬¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  ¸½ºß¤Î¥Î¡¼¥É¤ÎÀèÆ¬¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  1 ¹ÔÊ¬Á°Êý¤Ø¤¹¤¹¤á¤ë¡£\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  1 ¹ÔÊ¬¸åÊý¤ØÌá¤¹¡£\n"
+ 
+ #: info/infodoc.c:119
+ #, fuzzy
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr "¤½¤ÎÂ¾¤Î¥³¥Þ¥ó¥É:\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  ¥Î¡¼¥É¥á¥Ë¥å¡¼¤ÎºÇ½é¤«¤é 9 ÈÖÌÜËø¤Î¥¢¥¤¥Æ¥à¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  ¥Î¡¼¥É¥á¥Ë¥å¡¼¤ÎºÇ¸å¤Î¥¢¥¤¥Æ¥à¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr "          ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿¹àÌÜ¤¬»²¾È¤·¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "               (¥Õ¥¡¥¤¥ëÌ¾)¥Î¡¼¥ÉÌ¾ ¤ÎÍÍ¤Ë¡¢¥Õ¥¡¥¤¥ëÌ¾¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ"
+ "¤¹¡£\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr "               ¸«¤Ä¤«¤Ã¤¿¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr "               ¸«¤Ä¤«¤Ã¤¿¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "¸½ºß¤Î¸¡º÷¥Ñ¥¹:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr "Info ¥¦¥£¥ó¥É¥¦¤ÇÍøÍÑ²ÄÇ½¤Ê¥³¥Þ¥ó¥É:\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr "¥¨¥³¡¼ÎÎ°è¤ÇÍøÍÑ²ÄÇ½¤Ê¥³¥Þ¥ó¥É:\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¡¢%s ¤òÄÌ¤¸¤Æ¤Î¤ßµ¯Æ°¤Ç¤­¤Þ¤¹:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "°Ê²¼¤Î¥³¥Þ¥ó¥É¤Ï¡¢Á´¤¯µ¯Æ°¤¹¤ë»ö¤¬¤Ç¤­¤Þ¤»¤ó:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "»È¤¤Êý¤òÉ½¼¨¤¹¤ë"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "`(info)Help' ¥Î¡¼¥É¤Ë°ÜÆ°¤¹¤ë"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "¥­¡¼Áàºî¤òÉ½¼¨¤¹¤ë"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "¥­¡¼¤ÎÀâÌÀ: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s ¤Ï %s ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£"
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Í¿¤¨¤é¤ì¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤¹¤ë¤Î¤Ë¡¢²¿¤ò¥¿¥¤¥×¤¹¤ë¤«¤òÉ½¼¨¤¹¤ë"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "¤É¤Î¥³¥Þ¥ó¥É: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "`%s' ¤Ï¥­¡¼³ä¤êÅö¤Æ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s ¤Ï %s ¤òÄÌ¤¸¤Æ¤Î¤ß¸Æ¤Ó½Ð¤»¤Þ¤¹¡£"
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s ¤Ï %s ¤òÄÌ¤¸¤Æ¸Æ¤Ó½Ð¤»¤Þ¤¹"
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "`%s' ¤È¤¤¤¦µ¡Ç½¤Ï¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: info/infodoc.c:96
+ #, fuzzy
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr "Â¾¤Î¥Î¡¼¥É¤òÁªÂò¤¹¤ë:\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "°ú¿ô¤Î¿ô»ú¤¬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë `%s' ¤ò³«¤±¤Þ¤»¤ó"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "`%s' ¤Ø¤Î½ñ¤­¹þ¤ßÃæ¤Î¥¨¥é¡¼"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤òÊÄ¤¸¤ëºÝ¤Î¥¨¥é¡¼"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "¥­¡¼ÆþÎÏÎó¤¬Ä¹¤¹¤®¤Þ¤¹"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "¥­¡¼ÆþÎÏÎó¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "NUL Ê¸»ú (\\000) ¤Ï»È¤¨¤Þ¤»¤ó"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "NUL Ê¸»ú (^%c) ¤Ï»È¤¨¤Þ¤»¤ó"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "¥¢¥¯¥·¥ç¥óÌ¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "¥»¥¯¥·¥ç¥ó¤¬Ä¹¤¹¤®¤Þ¤¹"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "ÉÔÌÀ¤Ê¥¢¥¯¥·¥ç¥ó `%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "¥¢¥¯¥·¥ç¥óÌ¾¤¬Ä¹¤¹¤®¤Þ¤¹"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "¥¢¥¯¥·¥ç¥ó `%s' ¤ËÍ¾Ê¬¤ÊÊ¸»ú¤¬Â³¤¤¤Æ¤¤¤Þ¤¹"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "ÊÑ¿ôÌ¾¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "ÊÑ¿ôÌ¾¤ÎÄ¾¸å¤Î `=' ¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "ÊÑ¿ôÌ¾¤¬Ä¹¤¹¤®¤Þ¤¹"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "ÃÍ¤¬Ä¹¤¹¤®¤Þ¤¹"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", %u ¹ÔÌÜ: "
+ 
+ #: info/infokey.c:906
+ #, fuzzy, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [ÆþÎÏ¥Õ¥¡¥¤¥ë]\n"
+ "\n"
+ "¥ª¥×¥·¥ç¥ó:\n"
+ "  --output FILENAME            ½ÐÎÏÀè¤ò $HOME/.info ¤ÎÂå¤ê¤Ë FILENAME ¤È¤¹"
+ "¤ë\n"
+ "  --help                       ¤³¤Î¥Ø¥ë¥×¤òÉ½¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
+ "  --version                    ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òÉ½¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
+ "\n"
+ "infokey ¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤Æ infokey ¥Õ¥¡¥¤¥ë¤ò½ÐÎÏ¤¹¤ë¡£\n"
+ "ÆþÎÏ¥Õ¥¡¥¤¥ë(¥Ç¥Õ¥©¥ë¥È: $HOME/.infokey) ¤òÆÉ¤ß¼è¤Ã¤Æ¡¢\n"
+ "¥³¥ó¥Ñ¥¤¥ëºÑ¥­¡¼¥Õ¥¡¥¤¥ë $HOME/.info ¤Ë½ñ¤­¹þ¤à¡£\n"
+ "\n"
+ "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï bug-texinfo@gnu.org ¤Ø¡¢\n"
+ "°ìÈÌÅª¤Ê¼ÁÌä¤äµÄÏÀ¤Ï help-texinfo@gnu.org ¤Ø¡£\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "ÉÔÅ¬ÀÚ¤Ê infokey ¥Õ¥¡¥¤¥ë `%s' ¤òÌµ»ë¤·¤Þ¤¹ - ¾®¤µ¤¹¤®¤Þ¤¹"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "ÉÔÅ¬ÀÚ¤Ê infokey ¥Õ¥¡¥¤¥ë `%s' ¤òÌµ»ë¤·¤Þ¤¹ - Âç¤­¤¹¤®¤Þ¤¹"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "infokey ¥Õ¥¡¥¤¥ë `%s' ÆÉ¹þ¤ßÃæ¤Î¥¨¥é¡¼ -- Á´¤ÆÆÉ¹þ¤á¤Þ¤»¤ó¤Ç¤·¤¿"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "infokey ¥Õ¥¡¥¤¥ë `%s' ¤¬ÉÔÅ¬ÀÚ (¥Þ¥¸¥Ã¥¯ÈÖ¹æ¤¬°ã¤¦) ¤Ç¤¹ -- infokey ¤ò¼Â¹Ô¤·"
+ "¤Æ¹¹¿·¤·¤Þ¤·¤ç¤¦"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ "¤¢¤Ê¤¿¤Î infokey ¥Õ¥¡¥¤¥ë `%s' ¤Ï¸Å¤¤¤Ç¤¹ -- infokey ¤ò¼Â¹Ô¤·¤Æ¹¹¿·¤·¤Þ¤·¤ç¤¦"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "infokey ¥Õ¥¡¥¤¥ë `%s' ¤¬ÉÔÅ¬ÀÚ¤Ç¤¹ (¥»¥¯¥·¥ç¥óÄ¹¤¬ÉÔÀµ¤Ç¤¹) -- infokey ¤ò¼Â¹Ô"
+ "¤·¤Æ¹¹¿·¤·¤Þ¤·¤ç¤¦"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "infokey ¥Õ¥¡¥¤¥ë `%s' ¤¬ÉÔÅ¬ÀÚ¤Ç¤¹ (¥»¥¯¥·¥ç¥ó¥³¡¼¥É¤¬ÉÔÀµ¤Ç¤¹) -- infokey ¤ò"
+ "¼Â¹Ô¤·¤Æ¹¹¿·¤·¤Þ¤·¤ç¤¦"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ "infokey ¥Õ¥¡¥¤¥ë¤ËÉÔÀµ¤Ê¥Ç¡¼¥¿¤¬¤¢¤ê¤Þ¤¹ -- ´ö¤Ä¤«¤Î¥­¡¼¥Ð¥¤¥ó¥É¤¬Ìµ»ë¤µ¤ì¤Þ"
+ "¤·¤¿"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ "infokey ¥Õ¥¡¥¤¥ë¤ËÉÔÀµ¤Ê¥Ç¡¼¥¿¤¬¤¢¤ê¤Þ¤¹ -- ´ö¤Ä¤«¤ÎÊÑ¿ôÀßÄê¤¬Ìµ»ë¤µ¤ì¤Þ¤·¤¿"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Info ¥³¥Þ¥ó¥ÉÌ¾¤È¤½¤ÎÀâÌÀ¤òÆÉ¤à"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "ÀâÌÀ¤¹¤ë¥³¥Þ¥ó¥É: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "¥¨¥³¡¼ÎÎ°è¤Ç¥³¥Þ¥ó¥ÉÌ¾¤òÆÉ¤ß¡¢¼Â¹Ô¤¹¤ë"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "¤³¤³¤Ç¤Ï `echo-area' ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¡£"
+ 
+ #: info/m-x.c:153
+ #, fuzzy, c-format
+ msgid "Undefined command: %s"
+ msgstr "ÃÎ¤é¤Ê¤¤¥³¥Þ¥ó¥É `%s'"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "É½¼¨¤µ¤ì¤ë¥¦¥£¥ó¥É¥¦¤Î¹â¤µ¤òÀßÄê"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "¥¹¥¯¥ê¡¼¥ó¤Î¹â¤µ¤ò¥»¥Ã¥È (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   ¤³¤Î¥Õ¥¡¥¤¥ë¤òºî¤ë¸µ¤Ë¤Ê¤Ã¤¿¥Õ¥¡¥¤¥ë:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "¥Õ¥¡¥¤¥ë %s ¤ò¾å¼ê¤¯½èÍý¤Ç¤­¤Þ¤»¤ó¡£\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* ¥á¥Ë¥å¡¼:\n"
+ "  (¥Õ¥¡¥¤¥ë)¥Î¡¼¥É                  ¹Ô¿ô   ¥µ¥¤¥º  ´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë\n"
+ "  ----------------                  -----   ----   ----------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "¤³¤³¤Ï¡¢¤¢¤Ê¤¿¤¬ºÇ¶áË¬¤ì¤¿¥Î¡¼¥É¤Î¥á¥Ë¥å¡¼¤Ç¤¹¡£\n"
+ "¥á¥Ë¥å¡¼¤«¤é°ì¤ÄÁª¤Ö¤«¡¢Â¾¤Î¥¦¥£¥ó¥É¥¦¤Ç `\\[history-node]' ¤ò»È¤Ã¤Æ¤¯¤À¤µ"
+ "¤¤¡£\n"
+ "\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "ºÇ¶áË¬¤ì¤¿¥Î¡¼¥ÉÁ´¤Æ¤Î¥á¥Ë¥å¡¼¤ò´Þ¤ó¤Ç¤¤¤ë¥¦¥£¥ó¥É¥¦¤òºîÀ®"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "É½¼¨¤µ¤ì¤Æ¤¤¤ë¥¦¥£¥ó¥É¥¦Æâ¤Î¡¢°ÊÁ°Ë¬¤ì¤¿»ö¤Î¤¢¤ë¥Î¡¼¥É¤òÁªÂò"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Ë¬¤ì¤¿¥Î¡¼¥É¤òÁªÂò: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "¤½¤Î»²¾È¤Ï¾Ã¤¨¤Þ¤·¤¿! (%s)¡£"
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Info ¥Ð¡¼¥¸¥ç¥ó %s ¤Ë¤è¤¦¤³¤½¡£\\[get-help-window] ¤Ç»È¤¤Êý¡¢\\[menu-item] ¤Ç"
+ "¥á¥Ë¥å¡¼¹àÌÜ¤ò¸Æ¤Ó½Ð¤»¤Þ¤¹¡£"
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "¼¡¤Î¹Ô¤Ë°ÜÆ°"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Á°¤Î¹Ô¤Ë°ÜÆ°"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "¹ÔËö¤Ë°ÜÆ°"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "¹ÔÆ¬¤Ë°ÜÆ°"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "¼¡"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ë¤Ï¡¢¤³¤ì°Ê¾å¤Î¥Î¡¼¥É¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "¤³¤Î¥Î¡¼¥É¤Î `Á°' ¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "¤³¤Î¥É¥­¥å¥á¥ó¥È¤Ç¤Ï¡¢¤³¤Î¥Î¡¼¥É¤Î `Á°' ¤ä `¾å' ¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "¥Î¡¼¥É¹½Â¤¤òÄÌ¤¸¤Æ¿Ê¤á¤¿¤ê²¼¤¬¤Ã¤¿¤ê¤¹¤ë"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "¥Î¡¼¥É¹½Â¤¤òÄÌ¤¸¤ÆÌá¤Ã¤¿¤ê¾å¤¬¤Ã¤¿¤ê¤¹¤ë"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤ò¥¹¥¯¥í¡¼¥ë¥À¥¦¥ó"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤ò¥¹¥¯¥í¡¼¥ë¤·¡¢¥Ç¥Õ¥©¥ë¥È¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤òÀßÄê"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤ò¥Î¡¼¥ÉÈÏ°ÏÆâ¤ÇÁ°Êý¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "¤³¤Î¥¦¥£¥ó¥É¥¦¤ò¥Î¡¼¥ÉÈÏ°ÏÆâ¤ÇÁ°Êý¥¹¥¯¥í¡¼¥ë¤·¡¢¥Ç¥Õ¥©¥ë¥È¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ò"
+ "ÀßÄê"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤òµÕ¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤òµÕ¥¹¥¯¥í¡¼¥ë¤·¡¢¥Ç¥Õ¥©¥ë¥È¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤òÀßÄê"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤ò¥Î¡¼¥ÉÈÏ°ÏÆâ¤Ç¸åÊý¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "¤³¤Î¥¦¥£¥ó¥É¥¦¤ò¥Î¡¼¥ÉÈÏ°ÏÆâ¤Ç¸åÊý¥¹¥¯¥í¡¼¥ë¤·¡¢¥Ç¥Õ¥©¥ë¥È¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ò"
+ "ÀßÄê"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "¤³¤Î¥Î¡¼¥É¤ÎºÇ½é¤Ë°ÜÆ°"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "¤³¤Î¥Î¡¼¥É¤ÎºÇ¸å¤Ë°ÜÆ°"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "¹Ô¿ô¤Ë¤è¤ë¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "¹Ô¿ô¤Ë¤è¤ëµÕ¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "²èÌÌ¥µ¥¤¥º¤ÎÈ¾Ê¬¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "²èÌÌ¥µ¥¤¥º¤ÎÈ¾Ê¬µÕ¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "¼¡¤Î¥¦¥£¥ó¥É¥¦¤òÁªÂò"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Á°¤Î¥¦¥£¥ó¥É¥¦¤òÁªÂò"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "¸½ºß¤Î¥¦¥£¥ó¥É¥¦¤òÊ¬³ä"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "¸½ºß¤Î¥¦¥£¥ó¥É¥¦¤òºï½ü"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "±Êµ×¥¦¥£¥ó¥É¥¦¤Ïºï½ü¤Ç¤­¤Þ¤»¤ó"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Â¾¤Î¥¦¥£¥ó¥É¥¦¤òºï½ü"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Â¾¤Î¥¦¥£¥ó¥É¥¦¤ò¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Â¾¤Î¥¦¥£¥ó¥É¥¦¤òµÕ¥¹¥¯¥í¡¼¥ë"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤òÂç¤­¤¯¤¹¤ë(¤Þ¤¿¤Ï¾®¤µ¤¯¤¹¤ë)"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "²Ä»ë¥¦¥£¥ó¥É¥¦¤ÎÍøÍÑ²ÄÇ½¥¹¥¯¥ê¡¼¥ó¶õ´Ö¤òÊ¬³ä¤¹¤ë"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "¸½ºß¤Î¥¦¥£¥ó¥É¥¦¤Ë¶ØÂ§½èÍý¤ò»Ü¤¹"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "¼¡ ¥Î¡¼¥É¤òÁªÂò"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Á° ¥Î¡¼¥É¤òÁªÂò"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "¾å ¥Î¡¼¥É¤òÁªÂò"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤Î¥Î¡¼¥É¤òÁªÂò"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤Ë¤Ï¥Î¡¼¥É¤¬ÉÕ¤¤¤Æ¤¤¤Þ¤»¤ó"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "¤³¤Î¥Õ¥¡¥¤¥ë¤ÎºÇ½é¤Î¥Î¡¼¥É¤òÁªÂò"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "¤³¤Î¥Î¡¼¥É¤Î¥á¥Ë¥å¡¼Æâ¤Ç¤ÎºÇ¸å¤Î¹àÌÜ¤òÁªÂò"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "¤³¤Î¥á¥Ë¥å¡¼¹àÌÜ¤òÁªÂò"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "¤³¤Î¥á¥Ë¥å¡¼¤Ë %d ¸Ä¤Î¹àÌÜ¤¬¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "¥á¥Ë¥å¡¼¹àÌÜ (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "¥á¥Ë¥å¡¼¹àÌÜ: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "»²¾ÈÀè (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "»²¾ÈÀè: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "¥á¥Ë¥å¡¼¤òÆÉ¤ó¤Ç¡¢¤½¤Î¥Î¡¼¥É¤òÁªÂò¤¹¤ë"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "µÓÃí¤äÁê¸ß»²¾È¤òÆÉ¤ó¤Ç¡¢¤½¤Î¥Î¡¼¥É¤òÁªÂò¤¹¤ë"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "¤³¤Î¥Î¡¼¥É¥á¥Ë¥å¡¼¤ÎÀèÆ¬¤Ë°ÜÆ°¤¹¤ë"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "²ÄÇ½¤Ê¸Â¤êÂ¿¤¯¤Î¥á¥Ë¥å¡¼¹àÌÜ¤Ø°ìÅÙ¤ËË¬¤ì¤ë"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "¥Î¡¼¥ÉÌ¾¤òÆÉ¤ó¤Ç¡¢ÁªÂò¤¹¤ë"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "¥Î¡¼¥É¤Ø°ÜÆ°: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "¥Î¡¼¥É `%s' ¤Ë¥á¥Ë¥å¡¼¤¬¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à `%s' ¤Ï¥Î¡¼¥É `%s' Ãæ¤Ë¤Ï¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "`%s' ¤«¤é»²¾È¤µ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó(`%s' Ãæ)"
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "dir ¤«¤é¥á¥Ë¥å¡¼³«»Ï¥ê¥¹¥È¤òÆÉ¤ß¡¢¤½¤ì¤òÃ©¤ë"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "¥á¥Ë¥å¡¼¤ËÂ³¤¯: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "¥×¥í¥°¥é¥àµ¯Æ°¤Ë´Ø¤¹¤ëÀâÌÀ¤Î¥Î¡¼¥É¤ò¸«¤Ä¤±¤ë"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "[%s] ¤Îµ¯Æ°¥Î¡¼¥É¤ò¸«¤Ä¤±¤ë: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "man ¥Ú¡¼¥¸¤Ø¤Î»²¾È¤òÆÉ¤ó¤Ç¡¢ÁªÂò¤¹¤ë"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Man ¥Ú¡¼¥¸¤òÉ½¼¨: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "¤³¤Î¥Õ¥¡¥¤¥ë¤Î `ÀèÆ¬' ¥Î¡¼¥É¤òÁªÂò"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "`(dir)'¥Î¡¼¥É¤òÁªÂò¤¹¤ë"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "¥Î¡¼¥É¤ÎÀÚ¤ê¼è¤ê (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "`%s' ¥Î¡¼¥É¤òÀÚ¤ê¼è¤ì¤Þ¤»¤ó"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "ºÇ¸å¤Î¥Î¡¼¥É¤ÏÀÚ¤ê¼è¤ì¤Þ¤»¤ó"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "ºÇ¸å¤ËÁªÂò¤µ¤ì¤¿¥Î¡¼¥É¤òÁªÂò¤¹¤ë"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "¤³¤Î¥Î¡¼¥É¤òÀÚ¤ê¼è¤ë"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "¥Õ¥¡¥¤¥ëÌ¾¤òÆÉ¤ó¤ÇÁªÂò¤¹¤ë"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "¥Õ¥¡¥¤¥ë¤ò¸«¤Ä¤±¤ë: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "`%s' ¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¡£"
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¡£"
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "´°Î»¡£"
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "¥Î¡¼¥É %s ¤Î½ñ¤­¹þ¤ß..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "INFO_PRINT_COMMAND ¤Ë¤è¤Ã¤Æ¤³¤Î¥Î¡¼¥É¤ÎÆâÍÆ¤ò¥Ñ¥¤¥×¤¹¤ë"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "`%s' ¤Ø¤Î¥Ñ¥¤¥×¤ò³«¤±¤Þ¤»¤ó¡£"
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "¥Î¡¼¥É `%s' ¤ò°õºþ..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "¹ÔÆ¬¤Þ¤Ç¤òÀÚ¤ê¼è¤ë"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Éû¥Õ¥¡¥¤¥ë %s ¤òÃµ¤·¤Æ¤¤¤Þ¤¹ ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Ê¸»úÎó¤òÆÉ¤ß¡¢ÂçÊ¸»ú¾®Ê¸»ú¤Î¶èÊÌ¤ò¤Ä¤±¤Æ¸¡º÷¤¹¤ë"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Ê¸»úÎó¤òÆÉ¤ó¤Ç¸¡º÷¤¹¤ë"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Ê¸»úÎó¤òÆÉ¤ó¤Ç¸åÊý¸¡º÷¤¹¤ë"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "Ê¸»úÎó¤Ø¤Î%s%s [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr "(ÂçÊ¸»ú¾®Ê¸»ú¤Î¶èÊÌ¤ò¤Ä¤±¤Æ) "
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "¸åÊý¸¡º÷"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "¸¡º÷"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "¸¡º÷¤Ë¼ºÇÔ¡£"
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Æ±°ìÊý¸þ¤ÇºÇ¸å¤Î¸¡º÷¤ò·«¤êÊÖ¤¹"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Á°¤Î¸¡º÷Ê¸»úÎó¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "µÕÊý¸þ¤ÇºÇ¸å¤Î¸¡º÷¤ò·«¤êÊÖ¤¹"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "ÆþÎÏ¤·¤¿Ê¸»úÎó¤ÎÂÐÏÃÅª¤Ê¸¡º÷"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "Ãà¼¡¸åÊý¸¡º÷: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "Ãà¼¡¸åÊý¸¡º÷: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "Ãà¼¡¸¡º÷: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "Ãà¼¡¸¡º÷: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "¼ºÇÔ "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Á°¤ÎÁê¸ß»²¾È¤Ë°ÜÆ°"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "¼¡¤ÎÁê¸ß»²¾È¤Ë°ÜÆ°"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "»²¾È¤Þ¤¿¤Ï¡¢¤³¤Î¹Ô¤Ë¸½¤ì¤¿¥á¥Ë¥å¡¼¹àÌÜ¤òÁªÂò"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "¸½ºß¤ÎÁàºî¤òÃæ»ß"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "»ß¤á¤Þ¤·¤¿"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "¥¦¥£¥ó¥É¥¦¤Î»ØÄê¹Ô¤Ë¥«¡¼¥½¥ë¤ò°ÜÆ°"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "²èÌÌ¤ÎºÆÉÁ²è"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Info ¤Î»ÈÍÑ¤ò½ªÎ»"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "¤³¤Î¥­¡¼¤Î¾®Ê¸»ú¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤¿¥³¥Þ¥ó¥É¤ò¼Â¹Ô"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "ÉÔÌÀ¤Ê¥³¥Þ¥ó¥É (%s) ¤Ç¤¹¡£"
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" ¤ÏÌµ¸ú¤Ç¤¹"
+ 
+ #: info/session.c:4910
+ #, fuzzy, c-format
+ msgid "`%s' is invalid"
+ msgstr "\"%s\" ¤ÏÌµ¸ú¤Ç¤¹"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "¸½ºß¤Î¿ôÃÍ°ú¿ô¤Ë¤³¤Î¿ôÃÍ¤ò²Ã¤¨¤ë"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "¸½ºß¤Î¿ôÃÍ°ú¿ô¤ò³«»Ï(Ëô¤Ï 4 ÇÜ¤¹¤ë)"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "ÆâÉôÅª¤Ë \\[universal-argument] ¤Ë¤è¤Ã¤ÆÍøÍÑ¤µ¤ì¤Þ¤¹"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: ²¾ÁÛ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "\"On\" ¤Î»þ¡¢µÓÃí¤ò¼«Æ°Åª¤ËÉ½¼¨¤·¡¢¾Ãµî¤¹¤ë"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "\"On\" ¤Î»þ¡¢¥¦¥£¥ó¥É¥¦¤ÎºîÀ®¡¦ºï½ü¤Ç¡¢Â¾¤Î¥¦¥£¥ó¥É¥¦¤Î¥µ¥¤¥º¤òÊÑ¹¹"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "\"On\" ¤Î»þ¡¢¥Ù¥ë¤ò¤Ê¤é¤¹Âå¤ï¤ê¤Ë¡¢²èÌÌ¤ò¥Õ¥é¥Ã¥·¥å¤µ¤»¤ë"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "\"On\" ¤Î¤È¤­¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¤é¥Ù¥ë¤òÌÄ¤é¤¹"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "\"On\" ¤Î¤È¤­¡¢Èó°µ½Ì¥Õ¥¡¥¤¥ë¤ò¥¬¡¼¥Ù¥¸¥³¥ì¥¯¥È¤¹¤ë"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "\"On\" ¤Î»þ¡¢¸¡º÷Ê¸»úÎó¤È°ìÃ×¤·¤¿¾ì½ê¤òÈ¿Å¾É½¼¨¤µ¤»¤ë"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "ºÇ¸å¤Î¥Î¡¼¥É¤Ë¤ª¤¤¤Æ¡¢¥¹¥¯¥í¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿¤È¤­¤ËÆ°ºî¤òÄ´Àá"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "¥«¡¼¥½¥ë¤ò¥¦¥£¥ó¥É¥¦¤Î³°¤ËÆ°¤«¤½¤¦¤È¤·¤¿»þ¤Î¥¹¥¯¥í¡¼¥ë¹Ô¿ô"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "\"On\" ¤Î»þ¡¢Info ¤Ï ISO Latin Ê¸»ú¤ÎÉ½¼¨¤¬²ÄÇ½¤Ë¤Ê¤ë"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "ºÇ¸å¤Î¥Î¡¼¥É¤Ë¤ª¤¤¤Æ¡¢¥¹¥¯¥í¡¼¥ë¤ò¹Ô¤Ê¤Ã¤¿¤È¤­¤ËÆ°ºî¤òÄ´Àá"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "ÊÑ¿ô¤Î»È¤¤Êý¤ò²òÀâ¤¹¤ë"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "ÊÑ¿ô¤ÎÀâÌÀ: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Info ÊÑ¿ô¤ÎÃÍ¤òÀßÄê"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "ÊÑ¿ô¤òÀßÄê: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "%s ¤ËÃÍ¤òÀßÄê (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "%s ¤ËÃÍ¤òÀßÄê (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** µì¼°¤Î¥¿¥° ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), ¹Ô¿ô ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d ¹Ô --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d ¹Ô --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Éû¥Õ¥¡¥¤¥ë: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: ·Ù¹ð: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\t´°Á´¤Ê ¥ª¥×¥·¥ç¥ó¥ê¥¹¥È¤òÆÀ¤ë¤Ë¤Ï `%s --help' ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... TEXINFO¥Õ¥¡¥¤¥ë...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Email ¤Ë¤è¤ë¥Ð¥°¥ì¥Ý¡¼¥È¤Ï bug-texinfo@gnu.org¡¢\n"
+ "°ìÈÌÅª¤Ê¼ÁÌä¤äµÄÏÀ¤Ï help-texinfo@gnu.org ¤Þ¤Ç¡£\n"
+ 
+ #: install-info/install-info.c:597
+ #, fuzzy, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "¤³¤ì¤¬¡¢(dir)Top ¤È¸Æ¤Ð¤ì¤ë Info ³¬ÁØ¤ÎºÇ¾å°Ì¥Î¡¼¥É¤Î´Þ¤á¤é¤ì¤Æ¤¤¤ë\n"
+ ".../info/dir ¥Õ¥¡¥¤¥ë¤Ç¤¹¡£\n"
+ "¤¢¤Ê¤¿¤¬¡¢»Ï¤á¤Æ Info ¤òµ¯Æ°¤·¤¿¤Î¤Ê¤é¡¢¤Þ¤º¤³¤Î¥Î¡¼¥É¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£\n"
+ "\n"
+ "%s\t¤³¤ì¤¬¡¢INFO ¥Ä¥ê¡¼¤ÎÄºÅÀ¤Ç¤¹\n"
+ "\n"
+ "  ¤³¤³(the Directory ¥Î¡¼¥É)¤Ç¤Ï¡¢¼ç¤À¤Ã¤¿¼çÂê¤ò°·¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
+ "  ¥­¡¼ \"q\" ¤Ç½ªÎ»¤·¡¢\"?\" ¤Ç Info ¤Î¥³¥Þ¥ó¥É¤ò¥ê¥¹¥È¥¢¥Ã¥×¤·¡¢\"d\" ¤Ç¤³¤³"
+ "¤Ë\n"
+ "  Ìá¤ê¤Þ¤¹¡£\n"
+ "  \"h\" ¤ÇÆ³ÆþÊ¸»ú¤òÆþÎÏ¤·¤Þ¤¹¡£¤¿¤È¤¨¤Ð¡¢\n"
+ "  \"mEmacs<Return>\" ¤Ç Emacs ¥Þ¥Ë¥å¥¢¥ë¤òË¬¤ì¤ë¡¢¤Ê¤É¤Ç¤¹¡£\n"
+ "\n"
+ "  Emacs ¤ÎÆâ¤Ê¤é¤Ð¡¢¥á¥Ë¥å¡¼¹àÌÜ¤äÁê¸ß»²¾È¤ò¡¢¥Þ¥¦¥¹¤Î¥Ü¥¿¥ó 2 ¤ò¥¯¥ê¥Ã¥¯¤·"
+ "¤Æ\n"
+ "  ÁªÂò¤Ç¤­¤Þ¤¹¡£\n"
+ "\n"
+ "* ¥á¥Ë¥å¡¼:\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: (%s) ¤òÆÉ¤á¤º¡¢(%s) ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: ¶õ¤Î¥Õ¥¡¥¤¥ë"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY ¤ËÂÐ±þ¤¹¤ë END-INFO-DIR-ENTRY ¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY ¤ËÂÐ±þ¤¹¤ë START-INFO-DIR-ENTRY ¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Info ¥Õ¥¡¥¤¥ë¤Ï°ìÅÙ¤À¤±»ØÄê¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹ `%s'"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬»ØÄê¤µ¤ì¤Æ¤¤¤Þ¤»¤ó -- ¾Ü¤·¤¯¤Ï --help ÉÕ¤Ç¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£"
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ "dir ¥Õ¥¡¥¤¥ë¤¬»ØÄê¤µ¤ì¤Æ¤¤¤Þ¤»¤ó -- ¾Ü¤·¤¯¤Ï --help ÉÕ¤Ç¼Â¹Ô¤·¤Æ²¼¤µ¤¤¡£"
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "`%s' ¤Ë Info dir ÍÑ¤Î¹àÌÜ¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "`%s' ¹àÌÜ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó -- ²¿¤âºï½ü¤·¤Þ¤»¤ó¤Ç¤·¤¿"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, fuzzy, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "%c%s ¤ËÂÐ¤¹¤ëÉÔÀµ¤Ê°ú¿ô"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "°ì·î"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "Æó·î"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "»°·î"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "»Í·î"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "¸Þ·î"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "Ï»·î"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "¼··î"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "È¬·î"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "¶å·î"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "½½·î"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "½½°ì·î"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "½½Æó·î"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "@var ¤Ç»È¤¨¤½¤¦¤Ë¤Ê¤¤Ê¸»ú %c"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "Á´¤ÆÂçÊ¸»ú¤Î @sc °ú¿ô¡¢½¾¤Ã¤Æ¸ú²Ì¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "`{' ¤¬¤¢¤ë¤Ï¤º¤Ç¤¹¤¬¡¢`%c' ¤Ç¤·¤¿"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "verb ¥Ö¥í¥Ã¥¯Æâ¤Ç¥Õ¥¡¥¤¥ëËöÈø¤È¤Ê¤ê¤Þ¤·¤¿"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "`}' ¤¬¤¢¤ë¤Ï¤º¤Ç¤¹¤¬¡¢`%c' ¤Ç¤·¤¿"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s ¤ÏÇÑ¤ì¤¿Ì¿Îá¤Ç¤¹"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp ¤Ë¤Ï `%s' ¤Ç¤Ï¤Ê¤¯¡¢Àµ¤Î¿ôÃÍ¤òÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "%c%s ¤ËÂÐ¤¹¤ëÉÔÀµ¤Ê°ú¿ô"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "¤½¤Î¤Þ¤Þ"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "¤Ê¤·"
+ 
+ #: makeinfo/cmds.c:2049
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s"
+ msgstr "%c%s ¤ËÂÐ¤¹¤ëÉÔÀµ¤Ê°ú¿ô"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "%c%s ¤ËÂÐ¤¹¤ëÉÔÀµ¤Ê°ú¿ô"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "@def °ú¿ô¤Ë `}' ¤òËº¤ì¤Æ¤¤¤Þ¤¹"
+ 
+ #: makeinfo/defun.c:711
+ #, fuzzy, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "`%2$sx' ¤ò»È¤¦¤¿¤á¤Ë¤Ï `%1$s' ÁÞÆþ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr ""
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr ""
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr ""
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "See "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`%c%s' ¤Ë¤Ï `%s' ¤À¤±¤Ç¤Ê¤¯¡¢`{...}' ·Á¼°¤Î°ú¿ô¤¬É¬Í×¤Ç¤¹"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "µÓÃí `%s' ¤ÎÊÄ¤¸¥Ö¥ì¡¼¥¹¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "µÓÃí¤Ë¿Æ¥Î¡¼¥É¤ÎÄêµÁ¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/footnote.c:209
+ #, fuzzy
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "µÓÃí¤Ë¿Æ¥Î¡¼¥É¤ÎÄêµÁ¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "µÓÃí"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr ""
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr ""
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr ""
+ 
+ #: makeinfo/html.c:800
+ #, fuzzy, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "ÉÔÅ¬ÀÚ¤Ê¥Î¡¼¥ÉÌ¾¤Ç¤¹: `%s'"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "ÉÔÌÀ¤Ê¥¤¥ó¥Ç¥Ã¥¯¥¹ `%s'"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "¸«½Ð¤· `%s' ¤Ï´û¤ËÂ¸ºß¤·¤Þ¤¹"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "@synindex ¤Ë¡¢ÃÎ¤é¤Ê¤¤¸«½Ð¤· `%s' ¤ä `%s' ¤¬¤¢¤ê¤Þ¤¹"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr ""
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr ""
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "@printindex ¤Ë¡¢ÃÎ¤é¤Ê¤¤¸«½Ð¤· `%s' ¤¬¤¢¤ê¤Þ¤¹"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "¸«½Ð¤· `%s' ¤Î¥¨¥ó¥È¥ê¤Ï¤¢¤é¤æ¤ë¥Î¡¼¥É¤Î³°Â¦¤Ç¤¹"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(¤¢¤é¤æ¤ë¥Î¡¼¥É¤Î³°Â¦)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "insertion_type_pname Ãæ¤Ë²õ¤ì¤¿·¿¤¬¤¢¤ê¤Þ¤¹"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "ÎóµóÍÑ¥¹¥¿¥Ã¥¯¤¬¥ª¡¼¥Ð¥Õ¥í¡¼¤·¤Þ¤·¤¿"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "¥é¥Ù¥ëÊ¸»ú¤¬¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¡¢%c ¤ËÌá¤·¤Þ¤¹"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s ¤Ë¤Ï°ú¿ô¤¬É¬Í×¤Ç¤¹: %citem ¤òÀ°·Á¤¹¤ë¤¿¤á"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "`@end' ¤Ë¤Ï `%s' ¤¬É¬Í×¤Ç¤¹¤¬¡¢`%s' ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "`%cend %s' ¤È¤ÎÂÐ±þ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s ¤Ë¤Ï±Ñ¿ôÊ¸»ú¤¬É¬Í×¤Ç¤¹"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "verbatim ¥Ö¥í¥Ã¥¯Ãæ¤Ç¥Õ¥¡¥¤¥ë¤ÎËöÈø¤È¤Ê¤ê¤Þ¤·¤¿"
+ 
+ #: makeinfo/insertion.c:1942
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "`@%2$s' ¥Ö¥í¥Ã¥¯ÆâÂ¦¤Ç¤Î @%1$s ¤Ï¡¢¤¢¤Þ¤ê°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu ¤¬ºÇ½é¤Î @node °ÊÁ°¤Ë¸½¤ì¤Þ¤·¤¿¡£`Top' ¥Î¡¼¥É¤ò¤Ä¤¯¤ê¤Þ¤¹"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "Â¿Ê¬ @top ¥Î¡¼¥É¤Ï @ifinfo ¤è¤ê¤Ï @ifnottex ¤ËÊ¤¤ï¤ì¤ë¤Ù¤­¤Ç¤Ï¡©"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu ¤¬ºÇ½é¤Î¥Î¡¼¥É°ÊÁ°¤Ë¸½¤ì¤Þ¤·¤¿¡£`ÄºÅÀ' ¥Î¡¼¥É¤òºî¤ê¤Þ¤¹"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2061
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "`@%2$s' ¥Ö¥í¥Ã¥¯ÆâÂ¦¤Ç¤Î @%1$s ¤Ï¡¢¤¢¤Þ¤ê°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "`%c%s' ¤È¤ÎÂÐ±þ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "`%c%s' ¤Î¸å¤í¤Ë¤Ï²¿¤«¤¬É¬Í×¤Ç¤¹"
+ 
+ #: makeinfo/insertion.c:2103
+ #, fuzzy, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "`%s' ¤ËÂÐ¤¹¤ëÉÔÀµ¤Ê°ú¿ô `%s'¡£`%s' ¤ò»È¤¤¤Þ¤¹"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "`@%2$s' ¥Ö¥í¥Ã¥¯ÆâÂ¦¤Ç¤Î @%1$s ¤Ï¡¢¤¢¤Þ¤ê°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "`%s' ¥Ö¥í¥Ã¥¯ÆâÂ¦¤Ç¤Î @itemx ¤Ï¡¢¤¢¤Þ¤ê°ÕÌ£¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "ÁÞÆþ¥Ö¥í¥Ã¥¯³°¤Ç¡¢%c%s ¤¬¸«¤Ä¤«¤ê¤Þ¤·¤¿"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s ¤ÏÍ­¸ú¤Ê ISO 639 ¸À¸ì¥³¡¼¥É¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/lang.c:1399
+ #, fuzzy, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°Ì¾ `%s' ¤òÇ§¼±¤Ç¤­¤Þ¤»¤ó"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "»ÄÇ°¤Ê¤¬¤é¡¢¥¨¥ó¥³¡¼¥É `%s' ¤Ï¼õ¤±ÉÕ¤±¤é¤ì¤Þ¤»¤ó"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "¥¨¥ó¥³¡¼¥ÉÊ¸»ú `%s' ¤¬Ìµ¸ú¤Ç¤¹"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s ¤Ï `%c' ¤Ç¤Ï¤Ê¤¯¡¢`i' ¤« `j' ¤ò°ú¿ô¤È¤·¤ÆÉ¬Í×¤È¤·¤Þ¤¹"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s ¤Ï°ú¿ô¤È¤·¤Æ `i' ¤« `j' ¤Î¤¤¤º¤ì¤«°ìÊ¸»ú¤¬É¬Í×¤Ç¤¹"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "¥Þ¥¯¥í `%s' ¤Ï°ÊÁ°¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "¤³¤³¤Ï¡¢`%s' ¤ÎÁ°¤ÎÄêµÁ¤Ç¤¹"
+ 
+ #: makeinfo/macro.c:359
+ #, fuzzy, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "¥Þ¥¯¥íÅ¸³«Æâ¤Î \\ ¤Î¸å¤í¤Ë \\ ¤ä¥Ñ¥é¥á¥¿Ì¾¤Ç¤Ï¤Ê¤¯ `%s' ¤¬Â³¤¤¤Æ¤¤¤Þ¤¹"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "¥Þ¥¯¥í `%s' ¸Æ¤Ó½Ð¤·(%d¹ÔÌÜ)¤Î°ú¿ô¤¬Â¿¤¹¤®¤Þ¤¹"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "%cend ¥Þ¥¯¥í¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "@%2$s ¤È°ìÃ×¤·¤Ê¤¤ @end %1$s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "¥¨¥é¡¼¤¬Â¿¤¹¤®¤Þ¤¹!  Äü¤á¤Þ¤·¤¿¡£\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: ·Ù¹ð: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "´Ö°ã¤Ã¤¿°ÌÃÖ¤Ë %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "¾Ü¤·¤¯¤Ï `%s --help' ¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... TEXINFO¥Õ¥¡¥¤¥ë...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Texinfo ¥½¡¼¥¹Ê¸½ñ¤òÍÍ¡¹¤Ê·Á¼°¤ÇÆÉ¤á¤ë¤è¤¦¤ËÊÑ´¹¤·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï\n"
+ "¥ª¥ó¥é¥¤¥ó¤Ç Emacs ¤äÃ±ÆÈ¤Î GNU Info ¤ÇÆÉ¤à¤Î¤ËÅ¬¤·¤¿ Info ¥Õ¥¡¥¤¥ë¤Ç¤¹¡£\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, fuzzy, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "°ìÈÌÅª¤Ê¥ª¥×¥·¥ç¥ó:\n"
+ "      --error-limit=NUM       ¥¨¥é¡¼¤¬ NUM ¸ÄÈ¯À¸¤·¤¿¤éÃæ»ß¤¹¤ë (default %"
+ "d)¡£\n"
+ "      --force                 ¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤â½ÐÎÏ¤òÊÝÂ¸¤¹¤ë¡£\n"
+ "      --help                  ¤³¤Î»È¤¤Êý¤òÉ½¼¨¤·¤Æ½ªÎ»¤¹¤ë¡£\n"
+ "      --no-validate           ¥Î¡¼¥É´ÖÁê¸ß»²¾È¤Î¸¡¾Ú¤òÍÞÀ©¤¹¤ë¡£\n"
+ "      --no-warn               ·Ù¹ð¤òÍÞÀ©¤¹¤ë (¤¬¡¢¥¨¥é¡¼¤ÏÉ½¼¨¤¹¤ë)¡£\n"
+ "      --reference-limit=NUM   ºÇÂç»²¾È¿ô NUM ¤Ë»ê¤ì¤Ð·Ù¹ð¤¹¤ë (default %"
+ "d)¡£\n"
+ "  -v, --verbose               ¹Ô¤Ê¤ï¤ì¤ë»ö¤òÀâÌÀ¤¹¤ë¡£\n"
+ "      --version               ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òÉ½¼¨¤·¤Æ½ªÎ»¤¹¤ë¡£\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, fuzzy, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "½ÐÎÏ·Á¼°¥»¥¯¥·¥ç¥ó (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï Info ¤òÀ¸À®¤·¤Þ¤¹):\n"
+ "      --docbook             Info ¤Ç¤Ï¤Ê¤¯ DocBook ¤ò½ÐÎÏ¤¹¤ë¡£\n"
+ "      --html                Info ¤Ç¤Ï¤ó¤¯ HTML ¤ò½ÐÎÏ¤¹¤ë¡£\n"
+ "      --no-headers          ¥×¥ì¥¤¥ó¥Æ¥¯¥¹¥È¤ò½ÐÎÏ¤¹¤ë¡£Info ¥Î¡¼¥É¶èÀÚ¤ê»Ò\n"
+ "                              ¤ä Node: ¹Ô¤òÍÞÀ©¡£--output ¥ª¥×¥·¥ç¥ó¤ò\n"
+ "                              ¤Ä¤±¤Ê¤¤¤ÈÉ¸½à½ÐÎÏ¤Ë½ñ¤­¹þ¤à\n"
+ "      --xml                 Info ¤Ç¤Ï¤Ê¤¯ XML (TexinfoML) ·Á¼°¤Ç½ÐÎÏ¤¹¤ë¡£\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ #, fuzzy
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "°ìÈÌ½ÐÎÏ¥ª¥×¥·¥ç¥ó:\n"
+ "  -E, --macro-expand FILE   ¥Þ¥¯¥íÅ¸³«¤µ¤ì¤¿¥½¡¼¥¹¤ò FILE ¤Ë½ÐÎÏ¤¹¤ë¡£\n"
+ "                            @setfilename ¤ÏÌµ»ë¤µ¤ì¤ë¡£\n"
+ "      --no-split            Info ¤ä HTML ¤ÎÊ¬³ä½ÐÎÏ¤òÍÞÀ©¤¹¤ë¡£\n"
+ "                            ¤¿¤À°ì¤Ä¤Î½ÐÎÏ¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¡£\n"
+ "      --number-sections     ¾Ï¤äÀá¤ÎÈÖ¹æ¤ò½ÐÎÏ¤¹¤ë¡£\n"
+ "  -o, --output=FILE         FILE ¤Ø½ÐÎÏ¤¹¤ë (Ê¬³ä HTML ¤Î¾ì¹ç¥Ç¥£¥ì¥¯¥È"
+ "¥ê)¡£\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, fuzzy, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Info ¤ä¥×¥ì¥¤¥ó¥Æ¥¯¥¹¥ÈÍÑ¥ª¥×¥·¥ç¥ó:\n"
+ "      --enable-encoding       @documentencoding ¤Ë´ð¤­¡¢Info ½ÐÎÏ¤Ë\n"
+ "                                ¥¢¥¯¥»¥ó¥È¤äÆÃ¼ìÊ¸»ú¤ò½ÐÎÏ¤¹¤ë¡£\n"
+ "      --fill-column=NUM       NUM Ê¸»ú¤Ç Info ¹Ô¤ò²þ¹Ô¤¹¤ë (default %d)¡£\n"
+ "      --footnote-style=STYLE  STYLE ¤Ë´ð¤Å¤¤¤Æ Info ¤ÎµÓÃí¤ò½ÐÎÏ¤¹¤ë¡£\n"
+ "                                `separate' ¤½¤Î¥Î¡¼¥ÉÃæ¤ËµÓÃí¤òÃÖ¤¯\n"
+ "                                `end' ÄêµÁ¤µ¤ì¤¿¥Î¡¼¥É¤ÎËöÈø¤ËÃÖ¤¯ "
+ "(default)\n"
+ "      --paragraph-indent=VAL  Info ÃÊÍî¤ò VAL ¸Ä¤Î¶õÇò¤Ç»ú²¼¤² (default %"
+ "d)¡£\n"
+ "                                VAL ¤¬ `none' ¤À¤È»ú²¼¤²¤»¤º¡¢VAL ¤¬ `asis'\n"
+ "                                ¤À¤È¡¢´ûÂ¸¤Î»ú²¼¤²¤ò¤½¤Î¤Þ¤Þ»È¤¦¡£\n"
+ "      --split-size=NUM        Info ¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ò NUM ¤ÇÊ¬³ä (default %d)\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:426
+ #, fuzzy
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "ÆþÎÏ¥Õ¥¡¥¤¥ë¥ª¥×¥·¥ç¥ó:\n"
+ "      --commands-in-node-names   ¥Î¡¼¥ÉÌ¾Ãæ¤Î @ ¥³¥Þ¥ó¥É¤òµö²Ä¤¹¤ë¡£\n"
+ "  -D VAR                         ÊÑ¿ô VAR ¤òÄêµÁ¤¹¤ë¡£@set ¤ÈÆ±¤¸¡£\n"
+ "  -I DIR                         @include Ãµº÷¥Ñ¥¹¤Ë DIR ¤òÄÉ²Ã¤¹¤ë¡£\n"
+ "  -P DIR                         @include Ãµº÷¥Ñ¥¹¤ÎÀèÆ¬¤Ë DIR ¤òÁÞÆþ¤¹¤ë¡£\n"
+ "  -U VAR                         ÊÑ¿ô VAR ¤òÌ¤ÄêµÁ¤Ë¤¹¤ë¡£@clear ¤ÈÆ±¤¸¡£\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ #, fuzzy
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "ÆþÎÏ¤Î¾ò·ïÅª½èÍý:\n"
+ "     --ifhtml      HTML À¸À®¤Ç¤Ê¤¯¤Æ¤â¡¢@ifhtml ¤ä @html ¤ò½èÍý¤¹¤ë¡£\n"
+ "     --ifinfo      HTML À¸À®¤¹¤ë¤È¤­¤Ç¤â¡¢@ifinfo ¥Æ¥¯¥¹¥È¤ò½èÍý¤¹¤ë¡£\n"
+ "     --iftex       @iftex ¤ä @tex ¥Æ¥¯¥¹¥È¤ò½èÍý¤¹¤ë -- °ÅÌÛ¤Ë --no-split¡£\n"
+ "     --no-ifhtml   @ifhtml ¤ä @html ¥Æ¥¯¥¹¥È¤ò½èÍý¤·¤Ê¤¤¡£\n"
+ "     --no-ifinfo   @ifinfo ¥Æ¥¯¥¹¥È¤ò½èÍý¤·¤Ê¤¤¡£\n"
+ "     --no-iftex    @iftex ¤ä @tex ¥Æ¥¯¥¹¥È¤ò½èÍý¤·¤Ê¤¤¡£\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ #, fuzzy
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  ÆÃ¤Ë»ØÄê¤¬¤Ê¤±¤ì¤Ð¡¢@if... ¾ò·ï¤Ï½ÐÎÏ·Á¼°¼¡Âè¤È¤Ê¤ê¤Þ¤¹:\n"
+ "  HTML ¤òÀ¸À®¤¹¤ë¤Ê¤é --ifhtml ¤¬Í­¸ú¤ÇÂ¾¤ÏÌµ¸ú¤Ç¤¹¡£\n"
+ "  Info ¤ä¥×¥ì¥¤¥ó¥Æ¥¯¥¹¥È¤òÀ¸À®¤¹¤ë¤Ê¤é --ifinfo ¤¬Í­¸ú¤ÇÂ¾¤ÏÌµ¸ú¤Ç¤¹¡£\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Îã:\n"
+ "  makeinfo foo.texi                    foo ¤Î @setfilename ¤Ë Info ¤ò½ñ¹þ¤à\n"
+ "  makeinfo --html foo.texi             foo ¤Î @setfilename ¤Ë HTML ¤ò½ñ¹þ¤à\n"
+ "  makeinfo --no-headers -o - foo.texi  É¸½à½ÐÎÏ¤Ë¥×¥ì¥¤¥ó¥Æ¥¯¥¹¥È¤ò½ñ¹þ¤à\n"
+ "  makeinfo --number-sections foo.texi  Àá¤ËÈÖ¹æ¤òÉÕ¤±¤¿ Info ¤ò½ÐÎÏ\n"
+ "  makeinfo --no-split foo.texi         Âç¤­¤µ¤Ë´Ø¤ï¤é¤º°ì¤Ä¤Î Info ¤ò½ÐÎÏ\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: %s °ú¿ô¤Ï `%s' ¤Ç¤Ï¤Ê¤¯¤Æ¡¢¿ôÃÍ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, fuzzy, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "¥Þ¥¯¥í³ÈÄ¥½ÐÎÏ `%s' ¤ò³«¤±¤Þ¤»¤ó"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, fuzzy, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "¥Þ¥¯¥í³ÈÄ¥½ÐÎÏ `%s' ¤ò³«¤±¤Þ¤»¤ó"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "¥Þ¥¯¥í³ÈÄ¥½ÐÎÏ `%s' ¤ò³«¤±¤Þ¤»¤ó"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "¥Þ¥¯¥í³ÈÄ¥½ÐÎÏ `%s' ¤ò³«¤±¤Þ¤»¤ó"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: --paragraph-indent °ú¿ô¤Ï `%s' ¤Ç¤Ï¤Ê¤¯¡¢¿ôÃÍ/`none'/`asis' ¤Ç¤Ê¤±¤ì¤Ð\n"
+ "    ¤Ê¤ê¤Þ¤»¤ó¡£\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: --footnote-style °ú¿ô¤Ï `%s' ¤Ç¤Ï¤Ê¤¯¡¢`separate' Ëô¤Ï `end' ¤Ç¤Ê¤±¤ì¤Ð\n"
+ "    ¤Ê¤ê¤Þ¤»¤ó¡£\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: ¥Õ¥¡¥¤¥ë°ú¿ô¤òËº¤ì¤Æ¤¤¤Þ¤¹¤è\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "¤³¤³¤Ç¤Ï `%s' ¤¬Í×µá¤µ¤ì¤Þ¤¹"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "`%2$s' ¤Ë `%1$s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr "%s: Info ¤Î½ÐÎÏ¤ò¹Ô¤Ê¤¦¤Î¤Ç¡¢¥Þ¥¯¥í³ÈÄ¥¤òÉ¸½à½ÐÎÏ¤Ë½ÐÎÏ¤·¤Þ¤»¤ó¡£\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "`%3$s' ¤«¤é %1$s ¥Õ¥¡¥¤¥ë `%2$s' ¤òºîÀ®¤·¤Þ¤¹¡£\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: ¥¨¥é¡¼¤Ë¤è¤ê¡¢¥Þ¥¯¥í½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤·¤Þ¤¹¡£\n"
+ "       -- »Ä¤·¤¿¤¤¾ì¹ç¤Ë¤Ï `--force' ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: ¥¨¥é¡¼¤Ë¤è¤ê¡¢½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤·¤Þ¤¹¡£\n"
+ "       -- »Ä¤·¤¿¤¤¾ì¹ç¤Ë¤Ï `--force' ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: ¥¨¥é¡¼¤Ë¤è¤ê¡¢½ÐÎÏ¥Õ¥¡¥¤¥ë `%s' ¤òºï½ü¤·¤Þ¤¹¡£\n"
+ "       -- »Ä¤·¤¿¤¤¾ì¹ç¤Ë¤Ï `--force' ¥ª¥×¥·¥ç¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "ÃÎ¤é¤Ê¤¤¥³¥Þ¥ó¥É `%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "@%s ¤Ø¤Î°ú¿ô¤È¤·¤Æ¥³¥Þ¥ó¥É¤òÍ¿¤¨¤ë¤Ë¤Ï¡¢¥Ö¥ì¡¼¥¹¤ò»È¤¤¤Þ¤·¤ç¤¦"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, fuzzy, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s ¤Ë¤Ï `{...}' ¤¬É¬Í×¤Ç¤¹"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "ÂÐ±þ¤Î¤Ê¤¤ }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "Ì¾Á°¤¬Ìµ¤¤¡ª"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "ÊÄ¤¸¤ë¥Ö¥ì¡¼¥¹¤Î¤Ê¤¤ %c%s"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image ¥Õ¥¡¥¤¥ë `%s' (HTML ÍÑ) ¤¬ÆÉ¤á¤Þ¤»¤ó: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, fuzzy, c-format
+ msgid "No such file `%s'"
+ msgstr "`%2$s' ¤Ë `%1$s' ¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image ¥Õ¥¡¥¤¥ë `%s' (text ÍÑ) ¤¬ÆÉ¤á¤Þ¤»¤ó: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image ¤Ë¥Õ¥¡¥¤¥ëÌ¾¤¬Í¿¤¨¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{`%s' ¤ÎÃÍ¤¬¤Ê¤¤}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s ¤Ë¤ÏÌ¾Á°¤¬É¬Í×¤Ç¤¹"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "@end %s ¤ÎÂÐ±þ¤ÎÁ°¤Ë¥Õ¥¡¥¤¥ë¤Î½ª¤ê¤Ë½Ð¤¯¤ï¤·¤Þ¤·¤¿"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "@multitable ¥Æ¥ó¥×¥ì¡¼¥È¤Ë } ¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "@multitable ¤Î¸å¤í¤Î¥Æ¥¯¥¹¥È `%s' ¤òÌµ»ë¤·¤Þ¤¹"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "¥Þ¥ë¥Á¥Æ¡¼¥Ö¥ë¹àÌÜÆâ¤Î¥«¥é¥à¿ô¤¬Â¿¤¹¤®¤Þ¤¹(ºÇÂç %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, fuzzy, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "¥Þ¥ë¥Á¥Æ¡¼¥Ö¥ëÆâ¤Ç¤Ï¡¢Âè %d ¹Ô¤òÁªÂò¤Ç¤­¤Þ¤»¤ó"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "¥Þ¥ë¥Á¥Æ¡¼¥Ö¥ë¤Î³°Â¦¤Î @tab ¤òÌµ»ë¤·¤Þ¤¹"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** ¥Þ¥ë¥Á¥«¥é¥à¤ÎºÇ¸å¤ÎÎó¤«¤é½ÐÎÏ\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* Âè %d ¥«¥é¥à: ½ÐÎÏ = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "¥Î¡¼¥É `%s' Á°(%d ¹ÔÌÜ)¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "¥Î¡¼¥É %s ¤òÀ°·ÁÃæ...\n"
+ 
+ #: makeinfo/node.c:714
+ #, fuzzy, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "¥Î¡¼¥É `%s' ¤Ë¤Ï¥»¥¯¥·¥ç¥óÍÑ¥³¥Þ¥ó¥É¤¬É¬Í×¤Ç¤¹(Îã: %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "`%c%s' ¥³¥Þ¥ó¥É¤Ë»ØÄê¤µ¤ì¤¿¥Î¡¼¥ÉÌ¾¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "¥¢¥ó¥«¡¼ `%s' ¤È¥Î¡¼¥É `%s' ¤¬Æ±¤¸¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥×¤·¤Æ¤¤¤Þ¤¹"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "¤³¤Î @anchor ¥³¥Þ¥ó¥É¤ÏÌµ»ë¤µ¤ì¤Þ¤¹ -- ¤½¤³¤Ø¤Î»²¾È¤ÏÆ°ºî¤·¤Þ¤»¤ó"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "¤³¤Î¥¢¥ó¥«¡¼Ì¾¤òÊÑ¹¹¤¹¤ë¤« `--no-split' ¥ª¥×¥·¥ç¥ó¤ò»È¤¤¤Þ¤·¤ç¤¦"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "split-HTML ¥Õ¥¡¥¤¥ë `%s' ¤Î½ª¤ê¤Ë¡¢¤¢¤ë¤Ï¤º¤Î¤Ê¤¤Ê¸»úÎó¤¬¤¢¤ê¤Þ¤¹"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "¥¢¥ó¥«¡¼ `%s' ¤È `%s' ¤¬Æ±¤¸¥Õ¥¡¥¤¥ëÌ¾¤Ë¥Þ¥Ã¥×¤·¤Æ¤¤¤Þ¤¹"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "@anchor ¥³¥Þ¥ó¥É¤ÏÌµ»ë¤µ¤ì¤Þ¤¹ -- ¤½¤³¤Ø¤Î»²¾È¤ÏÆ°ºî¤·¤Þ¤»¤ó"
+ 
+ #: makeinfo/node.c:1362
+ #, fuzzy, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr "%s ¤ÏÂ¸ºß¤·¤Ê¤¤¥Î¡¼¥É `%s' ¤ò»²¾È¤·¤Æ¤¤¤Þ¤¹"
+ 
+ #: makeinfo/node.c:1462
+ #, fuzzy, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr "¥Î¡¼¥É `%s' ¤Î¼¡¤Î¥Õ¥£¡¼¥ë¥É¤¬¥Î¡¼¥É¤ò»Ø¤·¤Æ¤¤¤Þ¤»¤ó -- "
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "¤³¤Î¥Î¡¼¥É (%s) ¤Ï¤­¤Á¤ó¤È Á° ¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "¥Î¡¼¥É `%s' ¤ÎÁ°¤Î¥Õ¥£¡¼¥ë¥É¤¬¥Î¡¼¥É¤ò»Ø¤·¤Æ¤¤¤Þ¤»¤ó -- "
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "¤³¤Î¥Î¡¼¥É (%s) ¤Ï¤­¤Á¤ó¤È ¼¡ ¤ò»ý¤Ã¤Æ¤¤¤Þ¤»¤ó"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "¥Î¡¼¥É `%s' ¤Ë¤Ï ¾å°Ì¹àÌÜ¤¬¤¢¤ë¤Î¤Ë¡¢`%s' ¤Ø¤Î¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¤ò·ç¤¤¤Æ¤¤¤Þ¤¹"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "»²¾È¤µ¤ì¤Æ¤¤¤Ê¤¤¥Î¡¼¥É `%s'"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1731
+ #, fuzzy, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "¥Ç¥£¥ì¥¯¥È¥ê `%s' ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó: %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, fuzzy, c-format
+ msgid "Appendix %c"
+ msgstr "ÉÕÏ¿ %c "
+ 
+ #: makeinfo/sectioning.c:467
+ #, fuzzy, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "ÆâÉô¥¨¥é¡¼ (ÀáÃµº÷Ãæ) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "ÆâÉô¥¨¥é¡¼ (ÀáÃµº÷Ãæ) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s ¤ÏÇÑ»ß¤·¤Þ¤·¤¿¡£ -- Âå¤ï¤ê¤Ë %c%s ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "%ctop ¤Î¥Î¡¼¥É¤Ï¡¢¥»¥¯¥·¥ç¥ó¤È¤·¤Æ´û¤ËÂ¸ºß¤·¤Þ¤¹"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "¤³¤³¤Ï %ctop ¥Î¡¼¥É¤Ç¤¹"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop ¤¬ %cnode ¤ÎÁ°¤Ë»È¤ï¤ì¤Þ¤·¤¿¡¢%s ¤Ë·è¤á¤¦¤Á¤·¤Þ¤¹"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image ¥Õ¥¡¥¤¥ë `%s' ¤¬ÆÉ¤á¤Þ¤»¤ó: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "of"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "on"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "Áê¸ß»²¾È¤Ø¤ÎÂè°ì°ú¿ô¤¬¶õ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, fuzzy, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "`.' ¤ä ',' ¤Ï %c ¤Ç¤Ï¤Ê¤¯¡¢Áê¸ß»²¾È¤ËÂ³¤±¤é¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó"
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "¤³¤Î¥Î¡¼¥É¤ËÁê¸ß»²¾È¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "@inforef ¤Ø¤ÎÂè°ì°ú¿ô¤Ï¶õ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "»È¤¤Êý¤òÉ½¼¨¤·¤Æ½ªÎ»¤·¤Þ¤¹"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "½ÐÎÏ¤ò FILE ¤ËÁ÷¤ê¤Þ¤¹"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òÉ½¼¨¤·¤Æ½ªÎ»¤·¤Þ¤¹"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... ¥Õ¥¡¥¤¥ë...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "TeX ¤Î°Ù¤Î¥½¡¼¥ÈºÑ¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Þ¤¹\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ "`foo.texi' Ê¸½ñ¤ËÂÐ¤·¤Æ¤Ï¡¢ÄÌ¾ï¤Ï¥Õ¥¡¥¤¥ë¤È¤·¤Æ `foo.%c%c' ¤ò»ØÄê¤·¤Þ¤¹¡£\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "¥ª¥×¥·¥ç¥ó:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "%s ¤ÎºÆ¥ª¡¼¥×¥ó¤Ë¼ºÇÔ"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: texinfo ¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "%s ¤Ë¥Ú¡¼¥¸ÈÖ¹æ¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "%s ¹àÌÜ¤ËÆó¤ÄÌÜ¤Î¹àÌÜÌ¾¤¬Â³¤¤¤Æ¤¤¤Þ¤¹"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "               ¸«¤Ä¤«¤Ã¤¿¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "               (¥Õ¥¡¥¤¥ëÌ¾)¥Î¡¼¥ÉÌ¾ ¤ÎÍÍ¤Ë¡¢¥Õ¥¡¥¤¥ëÌ¾¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ"
+ #~ "¤¹¡£\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥É¤Î `¼¡' ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr "  %-10s  `¥Ç¥£¥ì¥¯¥È¥ê' ¥Î¡¼¥É¤Ø°ÜÆ°¡£`g (DIR)' ¤ÈÆ±¤¸¡£\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr "  %-10s  Top ¥Î¡¼¥É¤Ø°ÜÆ°¡£`g Top' ¤ÈÆ±¤¸¡£\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[scroll-forward-page-only]  Scroll forward within this node.\n"
+ #~ msgstr "  %-10s  1 ¹ÔÊ¬Á°Êý¤Ø¤¹¤¹¤á¤ë¡£\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[scroll-backward-page-only]  Scroll backward within this node.\n"
+ #~ msgstr "  %-10s  1 ¹ÔÊ¬¸åÊý¤ØÌá¤¹¡£\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr "               ¸«¤Ä¤«¤Ã¤¿¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- ½ªÎ»¤¹¤ë¤Ë¤Ï `\\[history-node]' ¤« `\\[kill-node]' ¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤ "
+ #~ "---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr "  %-10s  ¤³¤Î¥Î¡¼¥ÉÆâ¤Î¼¡¤Î¥Ï¥¤¥Ñ¡¼¥ê¥ó¥¯¤Ø¥¹¥­¥Ã¥×¤¹¤ë¡£\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥á¥Ë¥å¡¼¹àÌÜ...]\n"
+ #~ "\n"
+ #~ "Info ¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥É¥­¥å¥á¥ó¥È¤òÆÉ¤à¡£\n"
+ #~ "\n"
+ #~ "¥ª¥×¥·¥ç¥ó:\n"
+ #~ " --apropos=SUBJECT        Á´¥Þ¥Ë¥å¥¢¥ë¤Î¹àÌÜ¤«¤é¼çÂê¤ò¸«¤Ä¤±¤ë\n"
+ #~ " --directory=DIR          DIR ¤ò INFOPATH ¤ËÄÉ²Ã¤¹¤ë\n"
+ #~ " --dribble=FILENAME       FILENAME ¤Ë¥æ¡¼¥¶¤Î¥­¡¼¥¹¥È¥í¡¼¥¯¤ò³Ð¤¨¤Æ¤ª¤¯\n"
+ #~ " --file=FILENAME          Ë¬ÌäÀè¥Õ¥¡¥¤¥ë¤ò FIENAME ¤È»ØÄê¤¹¤ë\n"
+ #~ " --help                   ¤³¤Î¥Ø¥ë¥×¤òÉ½¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
+ #~ " --index-search=STRING    ¹àÌÜ¥¨¥ó¥È¥ê STRING ¤Ç»Ø¼¨¤µ¤ì¤¿¥Î¡¼¥É¤Ë¹Ô¤¯\n"
+ #~ " --node=NODENAME          ºÇ½é¤ËË¬¤ì¤ë Info ¥Õ¥¡¥¤¥ë¤Î¥Î¡¼¥É»ØÄê¤¹¤ë\n"
+ #~ " --output=FILENAME        ÁªÂò¤µ¤ì¤¿¥Î¡¼¥É¤ò FILENAME ¤Ë½ÐÎÏ¤¹¤ë\n"
+ #~ " --restore=FILENAME       ºÇ½é¤Î¥­¡¼¥¹¥È¥í¡¼¥¯¤ò FILENAME ¤«¤éÆÉ¹þ¤à\n"
+ #~ " --show-options, --usage  ¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¥Î¡¼¥É¤Ë¹Ô¤¯\n"
+ #~ " --subnodes               ½ÐÎÏ¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¤òºÆµ¢Åª¤Ë½ÐÎÏ¤¹¤ë\n"
+ #~ "%s --subnodes             ¥á¥Ë¥å¡¼¹àÌÜ¤òºÆµ¢Åª¤Ë½ÐÎÏ¤¹¤ë\n"
+ #~ " --vi-keys                vi ¤ä less ¤Î¤è¤¦¤Ê¥­¡¼¥Ð¥¤¥ó¥É¤ò»È¤¦\n"
+ #~ " --version                ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òÉ½¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
+ #~ "\n"
+ #~ "ºÇ½é¤Ë¥ª¥×¥·¥ç¥ó°Ê³°¤Î°ú¿ô¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¤½¤ì¤Ïµ¯ÅÀ¥á¥Ë¥å¡¼¥¨¥ó¥È¥ê¤È¤Ê¤ê¤Þ"
+ #~ "¤¹\n"
+ #~ " -- INFOPATH ¤Ë±è¤Ã¤¿Á´¤Æ¤Î `dir' ¥Õ¥¡¥¤¥ë¤«¤é¤¯¤Þ¤Ê¤¯Ãµ¤·¤Þ¤¹\n"
+ #~ "¤³¤ì¤¬»ØÄê¤µ¤ì¤Ê¤¤¾ì¹ç¡¢¤¹¤Ù¤Æ¤Î `dir' ¥Õ¥¡¥¤¥ë¤ò·Ò¤®¹ç¤ï¤»¤ÆÉ½¼¨¤·¤Þ"
+ #~ "¤¹¡£\n"
+ #~ "»Ä¤ê¤Î°ú¿ô¤ÏºÇ½é¤ËË¬Ìä¤µ¤ì¤ë¥Î¡¼¥É¤Ë´ØÏ¢¤¹¤ë¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¤ÎÌ¾Á°¤È¤·¤Æ\n"
+ #~ "°·¤ï¤ì¤Þ¤¹¡£\n"
+ #~ "\n"
+ #~ "Îã:\n"
+ #~ "  info                       ºÇ¾å°Ì¤Î dir ¥á¥Ë¥å¡¼¤òÉ½¼¨\n"
+ #~ "  info emacs                 ºÇ¾å°Ì dir ¤Î emacs ¥Î¡¼¥É¤«¤é³«»Ï\n"
+ #~ "  info emacs buffers         emacs ¥Þ¥Ë¥å¥¢¥ëÆâ¤Î buffers ¥Î¡¼¥É¤«¤é³«»Ï\n"
+ #~ "  info --show-options emacs  emacs ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¥ª¥×¥·¥ç¥ó¥Î¡¼¥É¤«¤é³«"
+ #~ "»Ï\n"
+ #~ "  info -f ./foo.info         ./foo.info ¤òÉ½¼¨¤·¡¢dir ¤ÏÃµº÷¤·¤Ê¤¤\n"
+ #~ "\n"
+ #~ "Email ¤Ë¤è¤ë¥Ð¥°¥ì¥Ý¡¼¥È¤Ï bug-texinfo@gnu.org¡¢\n"
+ #~ "°ìÈÌÅª¤Ê¼ÁÌä¤äµÄÏÀ¤Ï help-texinfo@gnu.org ¤Þ¤Ç¡£\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr ""
+ #~ "             ¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¤ÎÁªÂò¤Ç¡¢Â¾¤Î¥Î¡¼¥É¤¬ÁªÂò¤µ¤ì¤ë»ö¤Ë¤Ê¤ë¡£\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "               (¥Õ¥¡¥¤¥ëÌ¾)¥Î¡¼¥ÉÌ¾ ¤ÎÍÍ¤Ë¡¢¥Õ¥¡¥¤¥ëÌ¾¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ"
+ #~ "¤¹¡£\n"
+ 
+ #, fuzzy
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr ""
+ #~ "\\\\  %-10s  ¸½ºß¤Î Info ¥Õ¥¡¥¤¥ë¤ò¡¢»ØÄê¤µ¤ì¤¿Ê¸»úÎó¤Ç¸åÊý¸¡º÷¤·¡¢\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "               ¸«¤Ä¤«¤Ã¤¿¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "¼¡ ¤Î¥Î¡¼¥É¤òÃ©¤Ã¤Æ¤¤¤Þ¤¹..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "ºÇ½é¤Î¥á¥Ë¥å¡¼¹àÌÜ¤òÁªÂò..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "¼¡ ¤Î¥Î¡¼¥É¤òÁªÂò..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "%d ²ó ¾å ¤Ë°ÜÆ°¤·¡¢¤½¤³¤Ç ¼¡ ¤Ø¡£"
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤Î Á° ¤Ë°ÜÆ°¤·¤Þ¤¹¡£"
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "¤³¤Î¥¦¥£¥ó¥É¥¦¤Î ¾å ¤Ë°ÜÆ°¤·¤Þ¤¹¡£"
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "`Á°' ¤ÎºÇ¸å¤Î¥á¥Ë¥å¡¼¹àÌÜ¤Ë°ÜÆ°¤·¤Þ¤¹¡£"
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "µ¡Ç½"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "¥Þ¥¯¥í"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "ÆÃ¼ì·¿"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "ÊÑ¿ô"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "¥æ¡¼¥¶¥ª¥×¥·¥ç¥ó"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô"
+ 
+ #~ msgid "Method"
+ #~ msgstr "¥á¥½¥Ã¥É"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "ÌµÂê"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr ""
+ #~ "¤³¤ì¤Ï %1$s¡¢%3$s ¤è¤ê makeinfo ¥Ð¡¼¥¸¥ç¥ó %2$s ¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤Þ¤·¤¿¡£\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "¼¡:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "Á°:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "¾å:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "¥á¥Ë¥å¡¼"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "Áê¸ß"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "Á°"
+ 
+ #~ msgid "Up"
+ #~ msgstr "¾å"
+ 
+ #~ msgid "see "
+ #~ msgstr "see "
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [INFO¥Õ¥¡¥¤¥ë [DIR¥Õ¥¡¥¤¥ë]]\n"
+ #~ "\n"
+ #~ "Info ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë `DIR¥Õ¥¡¥¤¥ë' Æâ¤Î `INFO¥Õ¥¡¥¤¥ë' ¤«¤é\n"
+ #~ "dir ¥¨¥ó¥È¥ê¤ò¥¤¥ó¥¹¥È¡¼¥ë¤Þ¤¿¤Ïºï½ü¤·¤Þ¤¹¡£\n"
+ #~ "\n"
+ #~ "¥ª¥×¥·¥ç¥ó:\n"
+ #~ " --delete          ¸½Â¸¤¹¤ë INFO¥Õ¥¡¥¤¥ë ¤Î¹àÌÜ¤ò DIR¥Õ¥¡¥¤¥ë ¤«¤éºï½ü¤¹"
+ #~ "¤ë\n"
+ #~ "                     -- ¿·¤¿¤Ê¹àÌÜ¤òÁÞÆþ¤·¤Ê¤¤\n"
+ #~ " --dir-file=NAME   Info ¥Ç¥£¥ì¥¯¥È¥ê¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ëÌ¾¤ò»ØÄê¤¹¤ë\n"
+ #~ "                     DIR-FILE °ú¿ô¤òÍøÍÑ¤¹¤ë¤Î¤ÈÆ±¤¸\n"
+ #~ " --entry=TEXT      Info ¥Ç¥£¥ì¥¯¥È¥ê¹àÌÜ¤È¤·¤Æ TEXT ¤òÁÞÆþ¤¹¤ë\n"
+ #~ "                     TEXT ¤Ï¡¢Info ¤Î¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¤Î¹Ô¤Î·Á¼°¤Ç¤Ê¤±¤ì¤Ð"
+ #~ "¤Ê¤é¤º\n"
+ #~ "                     ¤³¤ì¤Ë¡¢¶õÇò¤Ç»Ï¤Þ¤ë¤¤¤¯¤Ä¤«¤Î¹Ô¤òÄÉ²Ã¤Ç¤­¤ë\n"
+ #~ "                     Ê£¿ô¹Ô¤Î¹àÌÜ¤ò»ØÄê¤·¤¿¾ì¹ç¡¢Á´¤Æ¤¬²Ã¤¨¤é¤ì¤ë\n"
+ #~ "                     ¹àÌÜ¤ò»ØÄê¤·¤Ê¤±¤ì¤Ð¡¢Info ¥Õ¥¡¥¤¥ë¼«¿È¤Î¾ðÊó¤Ë¤è¤Ã"
+ #~ "¤Æ\n"
+ #~ "                     ·èÄê¤¹¤ë\n"
+ #~ " --help            »È¤¤Êý¤òÉ½¼¨¤·¤Æ½ªÎ»¤¹¤ë¡£\n"
+ #~ " --info-file=FILE  ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë Info ¥Õ¥¡¥¤¥ë¤ò»ØÄê¤¹"
+ #~ "¤ë\n"
+ #~ "                     INFO-FILE °ú¿ô¤òÍøÍÑ¤¹¤ë¤Î¤ÈÆ±¤¸\n"
+ #~ " --info-dir=DIR    --dir-file=DIR/dir ¥ª¥×¥·¥ç¥ó¤ÈÆ±¤¸\n"
+ #~ " --item=TEXT       --entry TEXT ¥ª¥×¥·¥ç¥ó¤ÈÆ±¤¸\n"
+ #~ "                     Info ¥Ç¥£¥ì¥¯¥È¥ê¹àÌÜ¤Ï¼ÂºÝ¤Ë¥á¥Ë¥å¡¼¹àÌÜ¤Ë¤Ê¤ë\n"
+ #~ " --quiet           ·Ù¹ð¥á¥Ã¥»¡¼¥¸¤òÍÞÀ©¤¹¤ë\n"
+ #~ " --remove          --delete ¥ª¥×¥·¥ç¥ó¤ÈÆ±¤¸\n"
+ #~ " --section=SEC     ¥Ç¥£¥ì¥¯¥È¥ê¤Î SEC ¥»¥¯¥·¥ç¥ó¤Ë¤³¤Î¥Õ¥¡¥¤¥ë¤Î¹àÌÜ¤òÃÖ"
+ #~ "¤¯\n"
+ #~ "                     Ê£¿ô¤Î¥»¥¯¥·¥ç¥ó¤ò»ØÄê¤·¤¿¾ì¹ç¡¢¥»¥¯¥·¥ç¥óËè¤ËÁ´¤Æ¤Î"
+ #~ "¹àÌÜ\n"
+ #~ "                     ¤¬ÄÉ²Ã¤µ¤ì¤ë\n"
+ #~ "                     ¥»¥¯¥·¥ç¥ó¤ò»ØÄê¤·¤Ê¤±¤ì¤Ð¡¢Info ¥Õ¥¡¥¤¥ë¼«¿È¤Î¾ðÊó"
+ #~ "¤Ë\n"
+ #~ "                     ¤è¤Ã¤Æ·èÄê¤¹¤ë\n"
+ #~ " --version         ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òÉ½¼¨¤·¤Æ½ªÎ»¤¹¤ë¡£\n"
+ #~ "\n"
+ #~ "Email ¤Ë¤è¤ë¥Ð¥°¥ì¥Ý¡¼¥È¤Ï bug-texinfo@gnu.org¡¢\n"
+ #~ "°ìÈÌÅª¤Ê¼ÁÌä¤äµÄÏÀ¤Ï help-texinfo@gnu.org ¤Þ¤Ç¡£\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "¥á¥Ë¥å¡¼¹àÌÜ `%s' ¤Ï¡¢`%s' ¤Ë´û¤ËÂ¸ºß¤·¤Þ¤¹"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr "  %-10s  ¥Î¡¼¥É¥á¥Ë¥å¡¼¤ÎºÇ½é¤«¤é 9 ÈÖÌÜËø¤Î¥¢¥¤¥Æ¥à¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "¥Î¡¼¥É `%s' ¤Ï´û¤Ë %d ²ó»²¾È¤µ¤ì¤Æ¤¤¤Þ¤¹"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ "\n"
+ #~ "ÌõÃí: Èó¾ï¤Ë½ÅÍ×¤ÊÊ¸¾Ï¤Î¤¿¤á¡¢¸¶Ê¸¤ò»Ä¤·¤Æ¤¤¤Þ¤¹¡£\n"
+ #~ "  -- »²¹ÍÌõ\n"
+ #~ "°ìÀÚ¤ÎÊÝ¾Ú¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤¢¤Ê¤¿¤Ï¡¢GNU General Public Licence ¤ÎÊ¸¸À¤Î²¼"
+ #~ "¤Ç¡¢\n"
+ #~ "¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤òºÆÇÛÉÛ¤Ç¤­¤Þ¤¹¡£¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Î¤è¤ê¾Ü¤·¤¤ÀâÌÀ¤Ï¡¢"
+ #~ "COPYING\n"
+ #~ "¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg ¤Ï¡¢°ú¿ô¤ò°ì¤ÄÍ¿¤¨¤¿¤È¤­¤Î¤ßÍ­¸ú¤Ç¤¹"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "ÌÜ¼¡"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "´Ê°×ÌÜ¼¡"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "½èÍý¤Î¸å¤Ë¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤ò»Ä¤·¤Æ¤ª¤­¤Þ¤¹"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "½èÍý¤Î¤¢¤È¤Ë¥Æ¥ó¥Ý¥é¥ê¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Þ¤¹ (default)"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr "          ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿¹àÌÜ¤¬»²¾È¤·¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ "\n"
+ #~ "ÌõÃí: Èó¾ï¤Ë½ÅÍ×¤ÊÊ¸¾Ï¤Î¤¿¤á¡¢¸¶Ê¸¤ò»Ä¤·¤Æ¤¤¤Þ¤¹¡£\n"
+ #~ "  -- »²¹ÍÌõ\n"
+ #~ "°ìÀÚ¤ÎÊÝ¾Ú¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤¢¤Ê¤¿¤Ï¡¢GNU General Public Licence ¤ÎÊ¸¸À¤Î²¼"
+ #~ "¤Ç¡¢\n"
+ #~ "¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤òºÆÇÛÉÛ¤Ç¤­¤Þ¤¹¡£¤³¤ì¤é¤Ë¤Ä¤¤¤Æ¤Î¤è¤ê¾Ü¤·¤¤ÀâÌÀ¤Ï¡¢"
+ #~ "COPYING\n"
+ #~ "¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #~ msgid "%s: Specify the Info directory only once.\n"
+ #~ msgstr "%s: Info ¥Ç¥£¥ì¥¯¥È¥ê¤Ï°ìÅÙ¤À¤±»ØÄê¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
+ 
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "\"\" ¤ÏÌµ¸ú¤Ç¤¹"
+ 
+ #~ msgid "%s is an invalid ISO code, using %c"
+ #~ msgstr "%s ¤ÏÉÔÅ¬ÀÚ¤Ê ISO ¥³¡¼¥É¤Ç¤¹¡£%c ¤ò»È¤¤¤Þ¤¹"
+ 
+ #~ msgid "Cannot specify more than one macro expansion output"
+ #~ msgstr "Ê£¿ô¤Î¥Þ¥¯¥í³ÈÄ¥½ÐÎÏ¤ò»ØÄê¤Ç¤­¤Þ¤»¤ó"
+ 
+ #~ msgid "Node:"
+ #~ msgstr "¥Î¡¼¥É:"
+ 
+ #~ msgid "%s: TOC should be here, but it was not found"
+ #~ msgstr "%s: TOC ¤¬¤³¤³¤Ë¤¢¤ë¤Ï¤º¤Ê¤Î¤Ë¡¢¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #~ msgid "No `%s.png' or `.jpg', and no extension supplied"
+ #~ msgstr "`%s.png' ¤ä `.jpg' ¤¬¤Ê¤¯¡¢³ÈÄ¥»Ò¤¬¤Ä¤±¤é¤ì¤Æ¤¤¤Þ¤»¤ó"
+ 
+ #~ msgid "%s; for file `%s'.\n"
+ #~ msgstr "%s -- ¥Õ¥¡¥¤¥ë `%s'¡£\n"
+ 
+ #~ msgid "`%s' has no Up field"
+ #~ msgstr "`%s' ¤Ë ¾å ¥Õ¥£¡¼¥ë¥É¤¬¤¢¤ê¤Þ¤»¤ó"
+ 
+ #~ msgid ""
+ #~ "Email bug reports to bug-texinfo@gnu.org,\n"
+ #~ "general questions and discussion to help-texinfo@gnu.org."
+ #~ msgstr ""
+ #~ "Email ¤Ë¤è¤ë¥Ð¥°¥ì¥Ý¡¼¥È¤Ï bug-texinfo@gnu.org¡¢\n"
+ #~ "°ìÈÌÅª¤Ê¼ÁÌä¤äµÄÏÀ¤Ï help-texinfo@gnu.org ¤Þ¤Ç¡£"
+ 
+ #~ msgid ""
+ #~ "Basic Commands in Info Windows\n"
+ #~ "******************************\n"
+ #~ "\n"
+ #~ "  \\%-10[quit-help]  Quit this help.\n"
+ #~ "  \\%-10[quit]  Quit Info altogether.\n"
+ #~ "  \\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ #~ "\n"
+ #~ "Selecting other nodes:\n"
+ #~ "----------------------\n"
+ #~ "  \\%-10[next-node]  Move to the \"next\" node of this node.\n"
+ #~ "  \\%-10[prev-node]  Move to the \"previous\" node of this node.\n"
+ #~ "  \\%-10[up-node]  Move \"up\" from this node.\n"
+ #~ "  \\%-10[menu-item]  Pick menu item specified by name.\n"
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ "  \\%-10[xref-item]  Follow a cross reference.  Reads name of reference.\n"
+ #~ "  \\%-10[history-node]  Move to the last node seen in this window.\n"
+ #~ "  \\%-10[move-to-next-xref]  Skip to next hypertext link within this "
+ #~ "node.\n"
+ #~ "  \\%-10[move-to-prev-xref]  Skip to previous hypertext link within this "
+ #~ "node.\n"
+ #~ "  \\%-10[select-reference-this-line]  Follow the hypertext link under "
+ #~ "cursor.\n"
+ #~ "  \\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ "  \\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ "\n"
+ #~ "Moving within a node:\n"
+ #~ "---------------------\n"
+ #~ "  \\%-10[scroll-forward]  Scroll forward a page.\n"
+ #~ "  \\%-10[scroll-backward]  Scroll backward a page.\n"
+ #~ "  \\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ #~ "  \\%-10[end-of-node]  Go to the end of this node.\n"
+ #~ "  \\%-10[1scroll-forward]  Scroll forward 1 line.\n"
+ #~ "  \\%-10[1scroll-backward]  Scroll backward 1 line.\n"
+ #~ "\n"
+ #~ "Other commands:\n"
+ #~ "---------------\n"
+ #~ "  \\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ "  \\%-10[last-menu-item]  Pick last item in node's menu.\n"
+ #~ "  \\%-10[index-search]  Search for a specified string in the index "
+ #~ "entries of this Info\n"
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ "  \\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ "  \\%-10[search]  Search forward through this Info file for a specified "
+ #~ "string,\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ "  \\%-10[search-backward]  Search backward in this Info file for a "
+ #~ "specified string,\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "Info ¥¦¥£¥ó¥É¥¦Æâ¤Î´ðËÜ¥³¥Þ¥ó¥É\n"
+ #~ "*******************************\n"
+ #~ "\n"
+ #~ "  \\%-10[quit-help]  ¤³¤Î¥Ø¥ë¥×¤ò½ªÎ»¤¹¤ë¡£\n"
+ #~ "  \\%-10[quit]  Info ¤â°ì½ï¤Ë½ªÎ»¤¹¤ë¡£\n"
+ #~ "  \\%-10[get-info-help-node]  Info ¥Á¥å¡¼¥È¥ê¥¢¥ë¤òµ¯Æ°¤¹¤ë¡£\n"
+ #~ "\n"
+ #~ "Â¾¤Î¥Î¡¼¥É¤òÁªÂò¤¹¤ë:\n"
+ #~ "---------------------\n"
+ #~ "  \\%-10[next-node]  ¤³¤Î¥Î¡¼¥É¤Î \"¼¡\" ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ #~ "  \\%-10[prev-node]  ¤³¤Î¥Î¡¼¥É¤Î \"Á°\" ¤Î¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ #~ "  \\%-10[up-node]  ¤³¤Î¥Î¡¼¥É¤«¤é \"¾å\" ¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ #~ "  \\%-10[menu-item]  Ì¾Á°¤Ç»ØÄê¤·¤¿¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¤òÁªÂò¤¹¤ë¡£\n"
+ #~ "              ¥á¥Ë¥å¡¼¥¢¥¤¥Æ¥à¤ÎÁªÂò¤ÇÂ¾¤Î¥Î¡¼¥É¤¬ÁªÂò¤µ¤ì¤ë»ö¤Ë¤Ê¤ë¡£\n"
+ #~ "  \\%-10[xref-item]  Áê¸ß»²¾È¤òÃ©¤ë¡£»²¾ÈÌ¾¤òÆÉ¤ß¼è¤ë¡£\n"
+ #~ "  \\%-10[history-node]  ¤³¤Î¥¦¥£¥ó¥É¥¦¤ÇºÇ¸å¤Ë¸«¤¿¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ #~ "  \\%-10[move-to-next-xref]  ¤³¤Î¥Î¡¼¥ÉÆâ¤Î¼¡¤Î¥ê¥ó¥¯¤Ø¥¹¥­¥Ã¥×¤¹¤ë¡£\n"
+ #~ "  \\%-10[move-to-prev-xref]  ¤³¤Î¥Î¡¼¥ÉÆâ¤ÎÁ°¤Î¥ê¥ó¥¯¤Ø¥¹¥­¥Ã¥×¤¹¤ë¡£\n"
+ #~ "  \\%-10[select-reference-this-line]  ¥«¡¼¥½¥ë°ÌÃÖ¤Î¥ê¥ó¥¯¤òÃ©¤ë\n"
+ #~ "  \\%-10[dir-node]  `¥Ç¥£¥ì¥¯¥È¥ê' ¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£`\\[goto-node] "
+ #~ "(DIR)' ¤ÈÆ±¤¸¡£\n"
+ #~ "  \\%-10[top-node]  Top ¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£`\\[goto-node] Top' ¤ÈÆ±¤¸¡£\n"
+ #~ "\n"
+ #~ "¥Î¡¼¥ÉÆâ¤Ç¤Î°ÜÆ°:\n"
+ #~ "-----------------\n"
+ #~ "  \\%-10[scroll-forward]  1 ¥Ú¡¼¥¸Ê¬Á°Êý¤Ø¤¹¤¹¤á¤ë¡£\n"
+ #~ "  \\%-10[scroll-backward]  1 ¥Ú¡¼¥¸Ê¬¸åÊý¤ØÌá¤¹¡£\n"
+ #~ "  \\%-10[beginning-of-node]  ¸½ºß¤Î¥Î¡¼¥É¤ÎÀèÆ¬¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ #~ "  \\%-10[end-of-node]  ¸½ºß¤Î¥Î¡¼¥É¤ÎËöÈø¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ #~ "  \\%-10[1scroll-forward]  1 ¹ÔÊ¬Á°Êý¤Ø¤¹¤¹¤á¤ë¡£\n"
+ #~ "  \\%-10[1scroll-backward]  1 ¹ÔÊ¬¸åÊý¤ØÌá¤¹¡£\n"
+ #~ "\n"
+ #~ "¤½¤ÎÂ¾¤Î¥³¥Þ¥ó¥É:\n"
+ #~ "-----------------\n"
+ #~ "  \\%-10[menu-digit]  ¥Î¡¼¥É¥á¥Ë¥å¡¼¤ÎºÇ½é¤«¤é 9 ÈÖÌÜËø¤Î¥¢¥¤¥Æ¥à¤òÁªÂò¤¹"
+ #~ "¤ë¡£\n"
+ #~ "  \\%-10[last-menu-item]  ¥Î¡¼¥É¥á¥Ë¥å¡¼¤ÎºÇ¸å¤Î¥¢¥¤¥Æ¥à¤òÁªÂò¤¹¤ë¡£\n"
+ #~ "  \\%-10[index-search]  ¸½ºß¤Î Info ¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹¹àÌÜ¤ÇÊ¸»úÎó¤ò»Ø"
+ #~ "Äê¤·¤Æ¸¡º÷¤·¡¢\n"
+ #~ "              ºÇ½é¤Ë¸«¤Ä¤«¤Ã¤¿¹àÌÜ¤¬»²¾È¤·¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ #~ "  \\%-10[goto-node]  Ì¾Á°¤Ç»ØÄê¤µ¤ì¤¿¥Î¡¼¥É¤Ø°ÜÆ°¤¹¤ë¡£\n"
+ #~ "              (¥Õ¥¡¥¤¥ëÌ¾)¥Î¡¼¥ÉÌ¾¤ÎÍÍ¤Ë¡¢¥Õ¥¡¥¤¥ëÌ¾¤ò´Þ¤á¤ë¤³¤È¤¬¤Ç¤­"
+ #~ "¤ë¡£\n"
+ #~ "  \\%-10[search]  ¸½ºß¤Î Info ¥Õ¥¡¥¤¥ëÁ´ÂÎ¤ò¡¢»ØÄê¤µ¤ì¤¿Ê¸»úÎó¤ÇÁ°Êý¸¡º÷"
+ #~ "¤·¡¢\n"
+ #~ "              ¸«¤Ä¤«¤Ã¤¿¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ #~ "  \\%-10[search-backward]  ¸½ºß¤Î Info ¥Õ¥¡¥¤¥ë¤ò¡¢»ØÄê¤µ¤ì¤¿Ê¸»úÎó¤Ç¸åÊý"
+ #~ "¸¡º÷¤·¡¢\n"
+ #~ "              ¸«¤Ä¤«¤Ã¤¿¤â¤Î¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¥Î¡¼¥É¤òÁªÂò¤¹¤ë¡£\n"
+ 
+ #~ msgid "******************************\n"
+ #~ msgstr "*******************************\n"
+ 
+ #~ msgid "---------------------\n"
+ #~ msgstr "-----------------\n"
+ 
+ #~ msgid "----------------------\n"
+ #~ msgstr "---------------------\n"
+ 
+ #~ msgid "---------------\n"
+ #~ msgstr "-----------------\n"
+ 
+ #~ msgid "%s' argument to @image command not found"
+ #~ msgstr "@image ¥³¥Þ¥ó¥É¤Ø¤Î %s ¤Î°ú¿ô¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+ 
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ #~ "\n"
+ #~ "Translate Texinfo source documentation to various other formats:\n"
+ #~ "Info files suitable for reading online with Emacs or standalone GNU Info\n"
+ #~ "(by default); plain text (with --no-headers); or HTML (with --html).\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --commands-in-node-names  allow @ commands in node names.\n"
+ #~ " -D VAR                    define a variable, as with @set.\n"
+ #~ " -E, --macro-expand FILE   output macro-expanded source to FILE.\n"
+ #~ " --error-limit=NUM         quit after NUM errors (default %d).\n"
+ #~ " --fill-column=NUM         break Info lines at NUM characters (default %"
+ #~ "d).\n"
+ #~ " --footnote-style=STYLE    output footnotes according to STYLE:\n"
+ #~ "                            `separate' to place footnotes in their own "
+ #~ "node,\n"
+ #~ "                            `end' to place the footnotes at the end of "
+ #~ "the\n"
+ #~ "                             node in which they are defined (the "
+ #~ "default).\n"
+ #~ " --force                   preserve output even if errors.\n"
+ #~ " --help                    display this help and exit.\n"
+ #~ " --html                    output HTML rather than Info format;\n"
+ #~ " -I DIR                    append DIR to the @include search path.\n"
+ #~ " --ifhtml                  process @ifhtml and @html text even when not\n"
+ #~ "                             generating HTML.\n"
+ #~ " --ifinfo                  process @ifinfo text even when generating "
+ #~ "HTML.\n"
+ #~ " --iftex                   process @iftex and @tex text.\n"
+ #~ "                             implies --no-split.\n"
+ #~ msgstr ""
+ #~ "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... TEXINFO¥Õ¥¡¥¤¥ë...\n"
+ #~ "\n"
+ #~ "Texinfo Ê¸½ñ¤Î¥½¡¼¥¹¤ò¤¤¤í¤¤¤í¤Ê·Á¼°¤ÇÆÉ¤á¤ë¤è¤¦¤ËÊÑ´¹¤¹¤ë¡£\n"
+ #~ "Info ¥Õ¥¡¥¤¥ë¤Ï Emacs ¤ä GNU Info ¤Ç¥ª¥ó¥é¥¤¥ó¾å¤ÇÆÉ¤à¤Î¤ËÅ¬¤·¤Þ¤¹\n"
+ #~ "(¥Ç¥Õ¥©¥ë¥È)¡£¥×¥ì¥¤¥ó¥Æ¥­¥¹¥È¤Ï(--no-headers)¡¢HTML ¤Ï(--html)¡£\n"
+ #~ "\n"
+ #~ "¥ª¥×¥·¥ç¥ó:\n"
+ #~ " --commands-in-node-names ¥Î¡¼¥ÉÌ¾¤Ë @ ¥³¥Þ¥ó¥É¤òÃÖ¤±¤ë¤è¤¦¤Ë¤¹¤ë\n"
+ #~ " -D VAR                   ÊÑ¿ô¤òÀßÄê¤¹¤ë¡£@set ¤ÈÆ±¤¸\n"
+ #~ " -E, --macro-expand FILE  ¥Þ¥¯¥í³ÈÄ¥¤µ¤ì¤¿¥½¡¼¥¹¤ò FILE ¤Ë½ÐÎÏ\n"
+ #~ " --error-limit=NUM        ¥¨¥é¡¼¤¬ NUM ¸ÄÈ¯À¸¤·¤¿¤é½èÍý¤òÃæ»ß¤¹¤ë "
+ #~ "(default %d)\n"
+ #~ " --fill-column=NUM        NUM ¤³¤ÎÊ¸»ú¿ô¤Ç²þ¹Ô¤òÆþ¤ì¤ë (default %d)\n"
+ #~ " --footnote-style STYLE   µÓÃí¤ò °Ê²¼¤Î¤è¤¦¤Ê STYLE ¤Ç½ÐÎÏ¤¹¤ë:\n"
+ #~ "                            `separate' ¤½¤Î¥Î¡¼¥É¤ËµÓÃí¤òÃÖ¤¯\n"
+ #~ "                            `end' µÓÃí¤¬ÄêµÁ¤µ¤ì¤¿¥Î¡¼¥É¤ÎºÇ¸å¤ËÃÖ¤¯"
+ #~ "(default)\n"
+ #~ " --force                  ¥¨¥é¡¼¤¬¤¤¤¯¤ÄÈ¯À¸¤·¤Æ¤â¡¢½ÐÎÏ¤òÊÝÂ¸¤¹¤ë¡£\n"
+ #~ " --help                   »È¤¤Êý¤òÉ½¼¨¤¹¤ë¡£\n"
+ #~ " --ifhtml                 HTML ¤òÀ¸À®¤·¤Ê¤¤¤È¤­¤Ë¤â¡¢@ifhtml ¤È @html ¤Î\n"
+ #~ "                            ¥Æ¥­¥¹¥È¤ò½èÍý¤¹¤ë\n"
+ #~ " --ifinfo                 HTML ¤òÀ¸À®¤¹¤ë¤È¤­¤Ë¤â @ifinfo ¤Î¥Æ¥­¥¹¥È¤ò½èÍý"
+ #~ "¤¹¤ë\n"
+ #~ " --iftex                  @iftex ¤È @tex ¤Î¥Æ¥­¥¹¥È¤ò½èÍý¤¹¤ë\n"
+ #~ "                            --no-split ¤ò»ØÄê¤·¤¿¤³¤È¤Ë¤Ê¤ë\n"
+ 
+ #~ msgid ""
+ #~ " --no-headers              suppress Info node separators and Node: lines "
+ #~ "and\n"
+ #~ "                             write to standard output without --output.\n"
+ #~ " --no-ifhtml               do not process @ifhtml and @html text.\n"
+ #~ " --no-ifinfo               do not process @ifinfo text.\n"
+ #~ " --no-iftex                do not process @iftex and @tex text.\n"
+ #~ " --no-split                suppress splitting of large Info output files "
+ #~ "or\n"
+ #~ "                           generation of one HTML file per node.\n"
+ #~ " --no-validate             suppress node cross-reference validation.\n"
+ #~ " --no-warn                 suppress warnings (but not errors).\n"
+ #~ " --number-sections         include chapter, section, etc. numbers in "
+ #~ "output.\n"
+ #~ " -o, --output=FILE         output to FILE, ignoring any @setfilename.\n"
+ #~ " -P DIR                    prepend DIR to the @include search path.\n"
+ #~ " --paragraph-indent=VAL    indent Info paragraphs by VAL spaces (default %"
+ #~ "d).\n"
+ #~ "                             if VAL is `none', do not indent;\n"
+ #~ "                             if VAL is `asis', preserve existing "
+ #~ "indentation.\n"
+ #~ " --reference-limit=NUM     warn about at most NUM references (default %"
+ #~ "d).\n"
+ #~ " -U VAR                    undefine a variable, as with @clear.\n"
+ #~ " -v, --verbose             explain what is being done.\n"
+ #~ " --version                 display version information and exit.\n"
+ #~ msgstr ""
+ #~ " --no-headers              ¥Î¡¼¥ÉÊ¬³äµ­¹æ¤È Node: ¹Ô¤òÍÞÀ©¤·¤Æ¡¢\n"
+ #~ "                             --output ¤Ê¤·¤Ç¤âÉ¸½à½ÐÎÏ¤Ë½ñ¹þ¤à\n"
+ #~ " --no-ifhtml               @ifhtml ¤ä @html ¤Î¥Æ¥­¥¹¥È¤ò½èÍý¤·¤Ê¤¤\n"
+ #~ " --no-ifinfo               @ifinfo ¤Î¥Æ¥­¥¹¥È¤ò½èÍý¤·¤Ê¤¤\n"
+ #~ " --no-iftex                @iftex ¤ä @tex ¤Î¥Æ¥­¥¹¥È¤ò½èÍý¤·¤Ê¤¤\n"
+ #~ " --no-split                Âç¤­¤Ê Info ½ÐÎÏ¥Õ¥¡¥¤¥ë¤ÎÊ¬³ä¤ä¥Î¡¼¥ÉËè¤Î "
+ #~ "HTML\n"
+ #~ "                             ¥Õ¥¡¥¤¥ëÀ¸À®¤òÍÞÀ©¤¹¤ë\n"
+ #~ " --no-validate             ¥Î¡¼¥ÉÁê¸ß»²¾È¤Î³ÎÇ§¤òÍÞÀ©¤¹¤ë\n"
+ #~ " --no-warn                 ·Ù¹ð¤òÍÞÀ©¤¹¤ë (¥¨¥é¡¼¤ÏÉ½¼¨¤µ¤ì¤ë)\n"
+ #~ " --number-sections         ¾Ï¤äÀá¤ËÄÌ¤·ÈÖ¹æ¤òÉÕ¤±¤Æ½ÐÎÏ¤¹¤ë\n"
+ #~ " -o, --output=FILE         @setfilename ¤òÌµ»ë¤·¤Æ¡¢FILE ¤Ø½ÐÎÏ¤¹¤ë\n"
+ #~ " -P DIR                    @include ¸¡º÷¥Ñ¥¹¤Ë DIR ¤òÄÉ²Ã¤¹¤ë\n"
+ #~ " --paragraph-indent=VAL    ÃÊÍî¤ò VAL ¸Ä¤Î¶õÇò¤Ç¥¤¥ó¥Ç¥ó¥È¤¹¤ë (default %"
+ #~ "d)\n"
+ #~ "                             VAL ¤¬ `none' ¤Ê¤é¥¤¥ó¥Ç¥ó¥È¤·¤Ê¤¤\n"
+ #~ "                             VAL ¤¬ `asis' ¤Ê¤é¥¤¥ó¥Ç¥ó¥ÈÎÌ¤ò¤¢¤ë¤Þ¤Þ¤ËÊÝ"
+ #~ "¤Ä\n"
+ #~ " --reference-limit=NUM     ºÇÂç NUM ¸Ä¤Î»²¾È¤Ë¤Ä¤¤¤Æ·Ù¹ð¤¹¤ë (default %"
+ #~ "d)\n"
+ #~ " -U VAR                    @clear ¤ÎÍÍ¤ËÊÑ¿ô VAR ¤òÌ¤ÄêµÁ¤Ë¤¹¤ë\n"
+ #~ " -v, --verbose             ²¿¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë¤«¤òÊó¹ð¤¹¤ë\n"
+ #~ " --version                 ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òÉ½¼¨¤·¤Æ½ªÎ»¤¹¤ë\n"
Files texinfo-4.12/po/nb.gmo and texinfo-4.13/po/nb.gmo differ
diff -Nrc2 texinfo-4.12/po/nb.po texinfo-4.13/po/nb.po
*** texinfo-4.12/po/nb.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/nb.po	Thu Sep 18 11:38:32 2008
***************
*** 0 ****
--- 1,3522 ----
+ # Norwegian translation of messages for GNU Texinfo 4.6 (bokmål dialect).
+ # Copyright (C) 1999 Free Software Foundation, Inc.
+ # Trond Endrestøl <Trond.Endrestol@gtf.ol.no>, 1998.
+ #
+ # Send this file as an gzipped attachment to:
+ # translation@iro.umontreal.ca
+ # with the subject:
+ # TP-Robot PACKAGE-VERSION.TEAM.po
+ #
+ # The subject for the Norwegian bokmål translation of GNU Texinfo 4.7.90
+ # would then be:
+ # TP-Robot texinfo-4.7.90.nb.po
+ #
+ # Here's the URL for the Norwegian translation team:
+ # http://www2.iro.umontreal.ca/~pinard/po/registry.cgi?team=no
+ #
+ # Here's the URL for the current translations of GNU Texinfo:
+ # http://www2.iro.umontreal.ca/~pinard/po/registry.cgi?domain=texinfo
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.7.90\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2004-12-05 15:37+0100\n"
+ "Last-Translator: Trond Endrestøl <Trond.Endrestol@gtf.ol.no>\n"
+ "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO-8859-1\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: valget «%s» er flertydig\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: valget «--%s» tillater ikke et argument\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: valget «%c%s» tillater ikke et argument\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: valget «%s» krever et argument\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: ukjent valg «--%s»\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: ukjent valg «%c%s»\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: ulovlig valg -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: ugyldig valg -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: valget krever et argument -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: valget «-W %s» er flertydig\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: valget «-W %s» tillater ikke et argument\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr ""
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Flytte forover et tegn"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Flytte bakover et tegn"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Flytte til starten av denne linjen"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Flytte til slutten av denne linjen"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Flytte forover et ord"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Flytte tilbake et ord"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Slette tegnet under markøren"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Slette tegnet bak markøren"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Avbryte eller avslutte operasjon"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Godta (eller tvinge fullføring av) denne linjen"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Sette inn neste tegn ordrett"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Sette inn dette tegnet"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Sette inn en tabulator"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Transponere tegnet ved punktet"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Rykke tilbake innholdet fra forrige felling"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "Fellingsringen er tom"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Rykke tilbake en tidligere felling"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Slette til slutten av linjen"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Slette til begynnelsen av linjen"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Slette ordet etter markøren"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Slette ordet før markøren"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Ingen fullføringer"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Ikke fullstendig"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Liste mulige fullføringer"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Eneste fullføring"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "En fullføring:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d fullføringer:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Sett inn fullføring"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Bygger fullføringer..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Rulle fullføringsvinduet"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Fotnoter kunne ikke vises"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "Vise fotnotene assosiert med denne noden i et annet vindu"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- Fotnoter -----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Lete opp en streng i indeksen til denne filen"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Finner indeksinnslag..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Ingen indekser funnet."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Indeksinnslag: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Gå til det neste passende indeksinnslaget fra forrige '\\[index-search]'-"
+ "kommando"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Ingen tidligere indekssøkestrenger."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Ingen indeksinnslag."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Ingen %sindeksinnslag inneholdende «%s»."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "mer "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "KAN IKKE SE DETTE"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "Fant «%s» i %s. («\\[next-index-match]» prøver å finne den neste.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Sjekker indekser i «%s»..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Ingen av de tilgjengelig infofilene har «%s» i deres indekser."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Kravle gjennom alle kjente infofilers indekser etter en streng\n"
+ "       og bygge opp en meny"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Indeksapropos: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: Noder med indekser som inneholder «%s»:\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Prøv --help for mer informasjon.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "ingen innslag funnet for «%s»\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ "  -b, --speech-friendly        vær vennlig ovenfor talesyntetisatorer.\n"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Send bugrapporter til bug-texinfo@gnu.org,\n"
+ "generelle spørsmål og diskusjoner til help-texinfo@gnu.org.\n"
+ "Websida for Texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Kan ikke finne noden «%s»."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Kan ikke finne noden «(%s)%s»."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Kan ikke finne et vindu!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Markøren vises ikke innen dette vinduets node!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Kan ikke slette det siste vinduet."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Ingen meny i denne noden."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Ingen fotnoter i denne noden."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Ingen kryssreferanser i denne noden."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Ingen «%s»-peker for denne noden."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Ukjent Info-kommando «%c»; prøv «?» for hjelp."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Terminaltypen «%s» er ikke smart nok for å kjøre Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Du er allerede på den siste siden av denne noden."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Du er allerede på den første siden til denne noden."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Bare et vindu."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Resulterende vindu ville blitt for lite."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Ikke nok plass for et hjelpevindu, vennligst slett et vindu."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Avslutte denne hjelpen.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Avslutte Info fullstendig.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Starte Infoopplæring.\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  Rulle bakover 1 linje.\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  Rulle forover 1 linje.\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Rulle bakover en side.\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Rulle forover en side.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Gå til begynnelsen av denne noden.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Gå til slutten av denne noden.\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10[move-to-prev-xref]  Flytte til neste hypertekstlenke innen denne "
+ "noden.\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr "\\%-10[dir-node]  Følge hypertekstlenken under markøren.\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  Flytte til den siste noden sett i dette vinduet.\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[prev-node]  Flytte til forrige node før denne noden.\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[next-node]  Flytte til neste node etter denne noden.\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Flytte til forrige node før denne noden.\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Flytte til neste node etter denne noden.\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Flytte «opp» fra denne noden.\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[end-of-node]  Gå til slutten av denne noden.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[end-of-node]  Gå til slutten av denne noden.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  Velge første ... niende punkt i nodens meny.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  Velge det siste punktet i nodens meny.\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  Velge menypunkt spesifisert ved navn.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ "\\%-10[history-node]  Følge en kryssreferanse.  Leser navnet til "
+ "referansen.\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  Flytte til noden spesifisert av navn.\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr ""
+ "  %-10s  Søke forlengs gjennom denne Infofilen for en spesifikk streng,\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[prev-node]  Flytte til forrige node før denne noden.\n"
+ 
+ # This translation is connected to the next one
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "  %-10s  Søke etter en spesifikk streng i indeksinnslagene i denne\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Søke etter en angitt streng blant indeksinnslagene i "
+ "denne\n"
+ "              infofilen og velge noden til det første innslaget som blir "
+ "funnet.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "Avbryte gjeldende operasjon"
+ 
+ # The next translation should match the length of this one
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Grunnleggende kommandoer i infovinduer\n"
+ "**************************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Avslutte denne hjelpen.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Avslutte Info fullstendig.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Starte Infoopplæring.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Flytte til «neste»-noden etter denne noden.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Flytte til «forrige»-noden før denne noden.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Flytte «opp» fra denne noden.\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "\\%-10[menu-item]  Velge et menypunkt angitt ved navn.\n"
+ "              Valg av et menypunkt fører til at en annen node blir valgt.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Følge en kryssreferanse.  Leser navnet til referansen.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Flytte til den siste noden sett i dette vinduet.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Flytte til neste hypertekstlenke innen denne noden.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Følge hypertekstlenken under markøren.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Flytte til «katalog»-noden.  Det samme som «g (DIR)».\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Flytte til «Top»-noden.  Det samme som «g Top».\n"
+ 
+ # The next translation should match the length of this one
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Flytte innen en node:\n"
+ "---------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Rulle forover en side.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Rulle bakover en side.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Gå til begynnelsen av denne noden.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Gå til slutten av denne noden.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Rulle forover 1 linje.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Rulle bakover 1 linje.\n"
+ 
+ # The next translation should match the length of this one
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Andre kommandoer:\n"
+ "-----------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Velge første ... niende punkt i nodens meny.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Velge det siste punktet i nodens meny.\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Søke etter en angitt streng blant indeksinnslagene i "
+ "denne\n"
+ "              infofilen og velge noden til det første innslaget som blir "
+ "funnet.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10[goto-node]  Flytte til en node angitt ved navn.\n"
+ "              Du kan like godt inkludere et filnavn, som i (FILNAVN)"
+ "NODENAVN.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Søke forover etter en angitt streng\n"
+ "              og velge den noden som den neste forekomsten blir funnet i.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Søke forover etter en angitt streng\n"
+ "              og velge den noden som den neste forekomsten blir funnet i.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Gjeldende søkesti er:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Kommandoer tilgjengelig i Infovinduer:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Kommandoer tilgjengelig i ekkoområdet:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Følgende kommandoer kan bare bli påkallet via %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "Følgende kommandoer kan ikke bli påkallet i det hele tatt:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Vise hjelpemelding"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Vise infonoden «(info)Help»"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Skrive ut dokumentasjonen for KEY"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Beskriv tast: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s er udefinert."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s er udefinert."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s er definert som %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Vise hva som må tastes for å utføre en gitt kommando"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Hvor er kommandoen: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "«%s» er ikke på noen taster"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s kan bare bli påkallet via %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s kan bli påkallet via %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Det finnes ingen funksjon ved navn «%s»"
+ 
+ # The next translation should match the length of this one
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Velger andre noder:\n"
+ "-------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "unøyaktig antall argumenter"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "Kan ikke åpne inputfilen «%s»"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "Kunne ikke opprette outputfila «%s»"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "feil ved skriving til «%s»"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "Feil ved lukking av outputfila «%s»"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "tastesekvensen er for lang"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "manglende tastesekvens"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "NULL-tegn (\\000) er ikke tillatt"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "NULL-tegn (^%c) er ikke tillatt"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "manglende handlingsnavn"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "avdeling for lang"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "Ukjent handling «%s»"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "handlingsnavn for langt"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "ekstra tegn følger handlingen «%s»"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "manglende variabelnavn"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "manglende «=» umiddelbart etter variabelnavn"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "variabelnavn for langt"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "verdi for lang"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "«%s», linje %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Bruksmåte: %s [VALG]... [INPUTFIL]\n"
+ "\n"
+ "Kompilere infokey-kildefil til infokeyfil.  Leser INPUTFIL (standard\n"
+ "$HOME/.infokey) og skriver kompilert keyfil til $HOME/.info.\n"
+ "\n"
+ "Valg:\n"
+ "  --output FIL                 skrive ut til FIL istedet for $HOME/.info.\n"
+ "  --help                       vise denne hjelpen og avslutte.\n"
+ "  --version                    vise programversjon og avslutte.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Ignorerer ugyldig infokeyfil «%s» - for liten"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Ignorerer ugyldig infokeyfil «%s» - for stor"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Feil ved lesing av infokeyfil «%s» - for kort"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "Ugyldig infokeyfil «%s» (feil magiske tall) -- kjør infokey for å oppdatere "
+ "den"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "Din infokeyfil «%s» er utdatert -- kjør infokey for å oppdatere den"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Ugyldig infokeyfil «%s» (feil avdelingslengde) -- kjør infokey for å "
+ "oppdatere den"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "Ugyldig infokeyfil «%s» (feil avdelingskode) -- kjør infokey for å oppdatere "
+ "den"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "Feil data i infokeyfil -- noen tastebindinger ble ignorert"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr "Feil data i infokeyfil -- noen variabelinnstillinger ble ignorert"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Lese inn navnet på en infokommando og beskrive den"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Beskriv kommandoen: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Lese et kommandonavn i ekkoområdet og utføre den"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Kan ikke utføre en «echo-area»-kommando her."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "udefinert kommando: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Sette høyden på det viste vinduet"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Sette skjermhøyde til (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Kildefiler søkt gjennom for å lage denne filen inkluderer:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Kunne ikke manipulere filen %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menu:\n"
+ "  (Fil)Node                         Linjer  Str.   Inneholdene fil\n"
+ "  ---------                         ------  ----   ---------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Her er menyen over nodene du har nylig besøkt.\n"
+ "Velg en fra denne menyen, eller bruk «\\[history-node]» i et annet vindu.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "Lag et vindu inneholdene en meny over alle de nylig besøkte nodene"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Velge en node som har blitt tidligere besøkt i et synlig vindu"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Velg besøkt node: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Referansen forsvant! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Velkommen til Info versjon %s. Trykk «\\[get-help-window]» for hjelp,\n"
+ "«\\[menu-item]» for menypunkt."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Flytte ned til neste linje"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Flytte opp til den forrige linjen"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Flytte til slutten av linjen"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Flytte til starten av linjen"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "neste"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Ingen flere noder i dette dokumentet."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Ingen «forrige» for denne noden."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Ingen «forrige» eller «opp» for denne noden i dette dokumentet."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Flytte forover eller ned gjennom nodestrukturen"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Flytte tilbake eller opp gjennom nodestrukturen"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Rulle forover i dette vinduet"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "Rulle forover i dette vinduet og sette standard vindustørrelse"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Rulle forover i dette vinduet, men forbli innenfor noden"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Rulle forover i dette vinduet, forbli innenfor noden og sette standard "
+ "vindustørrelse"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Rulle bakover i dette vinduet"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "Rulle bakover i dette vinduet og sette standard vindustørrelse"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Rulle bakover i dette vinduet, men forbli innenfor noden"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Rulle bakover i dette vinduet, forbli innenfor noden og sette standard "
+ "vindustørrelse"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Flytte til starten av denne noden"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Flytte til slutten av denne noden"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Rulle ned pr. antall linjer"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Rulle opp pr. antall linjer"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Rulle ned en halv side"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Rulle opp en halv side"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Velge neste vindu"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Velge forrige vindu"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Dele gjeldende vindu"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Slette den gjeldende vindu"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Kan ikke slette et permanent vindu"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Slette alle andre vinduer"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Rulle det andre vinduet"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Rulle det andre vinduet bakover"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Øke (eller minke) dette vinduet"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Dele den tilgjengelige skjermplassen mellom de synlige vinduene"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Veksle tilstanden til linjebryting i gjeldende vindu"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Velge neste node"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Velge forrige node"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Velge oppnoden"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Velge den siste noden i denne filen"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Dette vinduet har ingen andre noder"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Velge første node i denne filen"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Velge det siste punktet i nodens meny"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Velge dette menypunktet"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Det er ikke %d punkter i denne menyen."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Menypunkt (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Menypunkt: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Følge kryssreferanse (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Følge kryssreferanse: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Lese et menyvalg og velge dens node"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "Lese en fotnote eller kryssreferanse og velge dens node"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Flytte til starten av denne nodens meny"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Besøke så mange menypunkter som mulig samtidig"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Lese et nodenavn og velge det"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Gå til node: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Ingen meny i noden «%s»."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Ingen menypunkt «%s» i noden «%s»."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Klarte ikke å finne noden referert av «%s» i «%s»."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Lese en liste over menyer fra dir og følge dem"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Følge menyer: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Finne noden som beskriver bruksmåten for programmet"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Finne Invocation-noden til [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Lese en manualside-referanse og velge den"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Hent manualsiden: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Velge «Top»-noden i denne filen"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Velge noden «(dir)»"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Slette noden (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Kan ikke slette noden «%s»"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Kan ikke slette den forrige noden"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Velge den sist valgte noden"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Slette denne noden"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Lese inn navnet på en fil og velge den"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Finne fil: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Kan ikke finne «%s»."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Kunne ikke opprette utskriftsfil «%s»."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Ferdig."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Skriver noden «%s»..."
+ 
+ # I need a better substitute for the verb «to pipe».
+ # «Å pipe» sounds no good to me.
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "«Pipe» innholdet av denne noden gjennom INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Kan ikke åpne «pipe» til «%s»."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Skriver ut noden «%s»..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "Slette til begynnelsen av linjen"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Søker i delfil «%s»..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr ""
+ "Lese inn en streng og søke etter den med skille på store og små bokstaver"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Lese inn en streng og søke etter den"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Lese inn en streng og søke bakover etter den"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%setter streng [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr " med skille på store og små bokstaver "
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "Søke bakover"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Søke"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Søk mislyktes"
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Gjenta forrige søk i samme retning"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Ingen tidligere søkestreng"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Gjenta forrige søk i motsatt retning"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Søke interaktivt for en streng mens du skriver"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "I-søk bakover: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "I-søk bakover: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "I-søk: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "I-søk: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Mislyktes "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Flytte til forrige kryssreferanse"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Flytte til neste kryssreferanse"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Velge referanse eller menypunkt på denne linjen"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Avbryte gjeldende operasjon"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Avbrutt"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Flytte markøren til en angitt linje i vinduet"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Tegne skjermen på nytt"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Avslutte Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Kjør kommandoen knyttet til denne tastens «liten-bokstav-variant»"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Ukjent kommando (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "«%s» er ugyldig"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "«%s» er ugyldig"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Legge til dette siffret til det gjeldende numeriske argumentet"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Starte (eller multiplisere med 4) den gjeldende numeriske argumentet"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Brukt internt av \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Tomt for virtuelt minne!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Når «On», oppstår og forsvinner fotnoter automatisk"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "Når «On», laging eller fjerning av vinduer endrer størrelsen på andre vinduer"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Når «On», blink skjermen istedet for å ringe i bjellen."
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Når «On», feil får bjellen til å ringe"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "Når «On», Info søppelhenter filer som måtte dekomprimeres"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "Når «On», den delen av en matchende søkestreng blir uthevet"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr ""
+ "Kontrollerer hva som skjer når rulling er ønsket ved slutten av en node"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Antall linjer som skal rulles når markøren flyttes utenfor vinduet"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Når «On», aksepterer og viser Info ISO-Latin-tegn"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr ""
+ "Kontrollerer hva som skjer når rulling er ønsket ved slutten av en node"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Forklar bruken av en variabel"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Beskriv variabel: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Sette verdien til en Infovariabel"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Sett variabel: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Sette %s til verdien (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Sette %s til verdien (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Tagger er ute av synk ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), linjer ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d linjer --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d linjer --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Delfil: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: advarsel: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " for %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tPrøv «%s --help» for en komplett liste over valg.\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Bruksmåte: %s [VALG]... TEXINFOFIL...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Send bugrapporter til bug-texinfo@gnu.org,\n"
+ "generelle spørsmål og diskusjoner til help-texinfo@gnu.org.\n"
+ "Websida for Texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Dette er filen .../info/dir, som inneholder den øverste\n"
+ "noden i Info-hierarkiet, kalt (dir)Top.\n"
+ "Første gangen du starter Info begynner du i denne noden.\n"
+ "\n"
+ "%s\tDette er toppen av INFO-treet\n"
+ "\n"
+ "  Denne katalognoden gir en meny over alle hovedemner.\n"
+ "  Inntasting av «q» avslutter, «?» lister alle Info-kommandoene, «d» returner "
+ "hit,\n"
+ "  «h» gir en innføring for nybegynnere,\n"
+ "  «mEmacs<Return>» besøker Emacs-manualen, osv.\n"
+ "\n"
+ "  I Emacs kan du klikke med musknapp 2 på et menypunkt eller kryssreferanse\n"
+ "  for å velge den.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: kunne ikke lese (%s) og kunne ikke opprette (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: tom fil"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY uten tilhørende END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY uten tilhørende START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: har allerede en dirfil: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Spesifiser infofilen bare en gang.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "overflødig argument på kommandolinjen «%s»"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "Ingen innfil angitt; prøv --help for mer informasjon."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "Ingen dir-fil angitt; prøv --help for mer informasjon."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "ingen info-dir-oppføring i «%s»"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "fant ingen oppføringer for «%s»; ingenting slettet"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "argumentene til @%s ble ignorert"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "januar"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "februar"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "mars"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "april"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "mai"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "juni"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "juli"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "august"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "september"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "oktober"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "november"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "desember"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "usannsynlig tegn %c i @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "@sc-argument med store bokstaver, dermed ingen effekt"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "«{» forventet, men så «%c»"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "slutt-på-fila inne i verb-blokk"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "«{» forventet, men så «%c»"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@strong{Note...} lager en overflødig kryssreferanse i Info; skriv om for å "
+ "unngå dette"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s er utgått"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp krever et positivt numerisk argument, ikke `%s'"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Ugyldig argument til %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "asis"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "none"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Ugyldig argument til @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "insert"
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Ugyldig argument til @%s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Manglende «}» i @def-arg"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Må være i et «@%s»-miljø for å bruke «@%s»"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "`%s' utelatt før outputfilnavn"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "`%s' utelatt pga skriving til stdout"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Outputbuffer er ikke tomt."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Se "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "«%c%s» trenger et argument «{...}», ikke bare «%s»"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Ingen avsluttende krøllparentes for fotnoten «%s»"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Fotnote definert uten foreldrenode"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Fotnoter i fotnoter er ikke tillatt"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Fotnoter"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: kunne ikke åpne --css-file: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: --css-file endte i en kommentar"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[uforventet] kunne ikke poppe neste htmltagg"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[uforventet] ugyldig nodenavn: «%s»"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Ukjent indeks «%s»"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info kan ikke håndtere `:' i indeksinnslaget `%s'"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Indeksen «%s» eksisterer allerede"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Ukjent indeks «%s» og/eller «%s» i @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(linje )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(linje %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Ukjent indeks «%s» i @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Innslag for indeksen «%s» utenfor node"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(utenfor noder)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@item er ikke tillatt som argument til @itemize"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Broken-Type i insertion_type_pname"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Stakkoverflyt ved oppramsing"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "bokstavoverflyt, starter på nytt ved %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s krever et argument: formattereren for %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "%cfloat-miljøer kan ikke nøstes"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "`@end' forventet «%s», men så «%s»"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Ingen tilsvarende «%cend %s»"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s krever en bokstav eller et siffer"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "slutt-på-filen inne i verbatimblokk"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s er meningsløs utenfor et «@float»-miljø"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu sett før første @node, oppretter «Top»-noden"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "kanskje burde din @top-node bli pakket inn i @ifnottex istedet for @ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu sett før første node, oppretter «Top»-noden"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr "@%s gir ikke mening utenfor «@titlepage»- og «@quotation»-miljøer"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s er meningsløs utenfor et «@titlepage»-miljø"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Umatchet «%c%s»"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "«%c%s» trenger noe etter den"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Ugyldig argument «%s» til «%s», bruker «%s»"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s er meningsløs innenfor en «@%s»-blokk"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx er meningsløs innenfor en «@%s»-blokk"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s funnet utenfor en innsettingsblokk"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s er ikke en gyldig ISO 639-språkkode"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "ugjenkjennelig kodingsnavn «%s»"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "beklager, kodingen «%s» er ikke støttet"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "Ugyldig kodet tegn «%s»"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s forventer «i» eller «j» som argument, ikke «%c»"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s forventer et enkelt tegn, «i» eller «j» som argument"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "makroen «%s» er tidligere definert"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "her er den tidligere definisjonen av «%s»"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "\\ i makroekspansjon fulgt av «%s» istedet for parameternavn"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Makroen «%s» kalt på linje %d med for mange argumenter"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "%cend macro ikke funnet"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "umatchet @end %s med @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "For mange feil!  Ga opp.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: advarsel: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "Feilplassert %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Prøv «%s --help» for mer informasjon.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Bruksmåte: %s [VALG]... TEXINFOFIL...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Oversette Texinfodokumentasjon til forskjellige andre formater:\n"
+ "Infofiler for lesing online med Emacs eller den frittstående GNU Info.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, fuzzy, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Generelle valg:\n"
+ "      --error-limit=ANT       avbryte etter ANT feil (standard %d).\n"
+ "      --force                 bevare output selv med feil.\n"
+ "      --help                  vise denne hjelpen og avslutte.\n"
+ "      --no-validate           undertrykke sjekking av kryssreferanser.\n"
+ "      --no-warn               undertrykke advarsler (men ikke feil).\n"
+ "      --reference-limit=ANT   advare om på det meste ANT referanser "
+ "(standard %d).\n"
+ "  -v, --verbose               forklare hva som blir gjort.\n"
+ "      --version               vise programversjon og avslutte.\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, fuzzy, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Valg av outputformat (standard er å produsere Info):\n"
+ "      --docbook             generere DocBook XML i stedet for Info.\n"
+ "      --html                generere HTML i stedet for Info.\n"
+ "      --xml                 generere Texinfo XML i stedet for Info.\n"
+ "      --plaintext           generere ren tekst i stedet for Info.\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ #, fuzzy
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Generelle outputvalg:\n"
+ "  -E, --macro-expand FIL    sende makroekspandert kilde til FIL,\n"
+ "                              ignorerer enhver @setfilename.\n"
+ "      --no-headers          undertrykke nodeseparatorer, Node:-linjer og "
+ "menyer\n"
+ "                              fra Info-output (og dermed produsere ren "
+ "tekst)\n"
+ "                              eller fra HTML (og dermed produsere kortere "
+ "output);\n"
+ "                              standard er å skrive til standard ut.\n"
+ "      --no-split            undertrykke splitting av Info- eller HTML-"
+ "output,\n"
+ "                              generere bare en outputfil.\n"
+ "      --number-sections     nummerere kapitler og avdelinger (section).\n"
+ "  -o, --output=FIL          sende output til FIL (eller katalog dersom "
+ "splittet HTML),\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, fuzzy, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Valg for Infooutput og ren tekst:\n"
+ "      --enable-encoding       skrive ut spesialtegn og tegn med aksenter i\n"
+ "                                Infooutput basert på @documentencoding.\n"
+ "      --fill-column=ANT       bryte Infolinjer ved ANT tegn (standard %d).\n"
+ "      --footnote-style=STIL   generere fotnoter i Info i henhold til STIL:\n"
+ "                                «separate» for å legge fotnotene i egne "
+ "noder;\n"
+ "                                «end» for å legge fotnotene i slutten av hver "
+ "node\n"
+ "                                  der fotnotene er definert (standard).\n"
+ "      --paragraph-indent=ANT  rykke inn Infoavsnitt med ANT mellomrom "
+ "(standard %d).\n"
+ "                                Dersom ANT er «none» rykkes ikke avsnittene "
+ "inn;\n"
+ "                                Dersom ANT er «asis» bevares eksisterende "
+ "innrykk.\n"
+ "      --split-size=ANT        splitte Infofilene ved lengde ANT (standard %"
+ "d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ #, fuzzy
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "Valg for HTML:\n"
+ "      --css-include=FIL         inkluder FIL i HTML <style>-taggen;\n"
+ "                                  les stdin dersom FIL er -.\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, fuzzy, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "Valg for XML og DocBook:\n"
+ "      --output-index=ANT         innrykk XML-elementer med ANT mellomrom "
+ "(standard %d).\n"
+ "                                  Dersom ANT er 0, blir ignorerbart tomrom "
+ "ikke brukt.\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Valg for inputfil:\n"
+ "      --commands-in-node-names   tillate @-kommandoer i nodenavn.\n"
+ "  -D VAR                         definer variabelen VAR, som om @set "
+ "brukes.\n"
+ "  -I KAT                         legg til KAT på slutten av @include-"
+ "søkestien.\n"
+ "  -P KAT                         legg til KAT på starten av @include-"
+ "søkestien.\n"
+ "  -U VAR                         udefiner variabelen VAR, som om @clear "
+ "brukes.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Betinget behandling av input:\n"
+ "  --ifdocbook        behandle @ifdocbook og @docbook selv om\n"
+ "                       DocBook ikke skal genereres.\n"
+ "  --ifhtml           behandle @ifhtml og @html selv om HTML ikke skal "
+ "genereres.\n"
+ "  --ifinfo           behandle @ifinfo selv når info ikke skal genereres.\n"
+ "  --ifplaintext      behandle @ifplaintext selv om ren tekst ikke skal "
+ "genereres.\n"
+ "  --iftex            behandle @iftex og @tex; innebærer --no-split.\n"
+ "  --ifxml            behandle @ifxml og @xml.\n"
+ "  --no-ifdocbook     ikke behandle @ifdocbook og @docbook.\n"
+ "  --no-ifhtml        ikke behandle @ifhtml og @html.\n"
+ "  --no-ifinfo        ikke behandle @ifinfo.\n"
+ "  --no-ifplaintext   ikke behandle @ifplaintext.\n"
+ "  --no-iftex         ikke behandle @iftex og @tex.\n"
+ "  --no-ifxml         ikke behandle @ifxml og @xml.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  Standardverdiene for @if...-betingelsene avhenger av outputformatet:\n"
+ "  dersom HTML genereres er --ifhtml påslått og de andre av;\n"
+ "  dersom Info genereres er --ifinfo påslått og de andre av;\n"
+ "  dersom ren tekst genereres er --ifplaintext påslått og de andre av;\n"
+ "  dersom XML genereres er --ifxml påslått og de andre av.\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Eksempler:\n"
+ "  makeinfo foo.texi                     skrive Info til foos @setfilename\n"
+ "  makeinfo --html foo.texi              skrive HTML til @setfilename\n"
+ "  makeinfo --xml foo.texi               skrive Texinfo XML til @setfilename\n"
+ "  makeinfo --docbook foo.texi           skrive Docbook XML til @setfilename\n"
+ "  makeinfo --no-headers foo.texi        skrive ren tekst til standard ut\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi skrive HTML uten nodelinjer\n"
+ "  makeinfo --number-sections foo.texi   skrive Info med nummererte avsnitt\n"
+ "  makeinfo --no-split foo.texi          skrive en Infofil uansett størrelse\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: Ignorerer ugjenkjennelig TEXINFO_OUTPUT_FORMAT-verdi «%s».\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: %s arg må være numerisk, ikke «%s».\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: kunne ikke åpne makroekspansjonoutput «%s»"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: ignorerer sekundær makroekspansjonoutpur «%s».\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: kunne ikke åpne makroekspansjonoutput «%s»"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: ignorerer sekundær makroekspansjonoutpur «%s».\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr "%s: --paragraph-indent arg må være numerisk/«none»/«asis», ikke «%s».\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr "%s: --footnote-style arg må være «separate» eller «end», ikke «%s».\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: mangler filargument.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Flerlinjekommandoen %c%s brukes ikke riktig"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Forventet «%s»"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Kan ikke opprette katalogen «%s»: %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Ingen «%s» funnet i «%s»"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Hopper over makroekspansjon til stdout siden Info-output også sendes "
+ "dit.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Lager %s-filen «%s» fra «%s».\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Fjerner makroutskriftsfilen «%s» på grunn av feil; bruk --force for å "
+ "bevare.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Fjerner utskriftsfilen «%s» på grunn av feil; bruk --force for å bevare.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Fjerner utskriftsfilen «%s» på grunn av feil; bruk --force for å bevare.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Ukjent kommando «%s»"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "Bruk krøllparenteser for å gi en kommando som et argument til @%s"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s forventet krøllparanteser"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Umatchet }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "INTET_NAVN!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s mangler avsluttende krøllparentes"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image-fil «%s» (for HTML) er uleselig: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "«%s» er ingen fil"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image-fil «%s» (for tekstformat) er uleselig: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image mangler filnavn"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "udefinert flagg: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Ingen verdi for «%s»}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s krever et navn"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Traff slutt-på-filen før matchende @end %s"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "`%.40s...' er for lang for ekspansjon; ikke ekspandert"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Manglende «}» i @multitable-mal"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "ignorerer løs tekst «%s» etter @multitable"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "For mange kolonner i multitabellrad (maks %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[uforventet] kan ikke velge kolonne #%d i multitabell"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "ignorerer @tab utenfor multitabell"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Multikolonne-output fra siste rad:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* kolonne #%d output = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Noden «%s» er tidligere definert ved linje %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Skriver noden %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Noden «%s» krever en inndelingskommando (f.eks. %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Ingen nodenavn spesifisert for «%c%s»-kommandoen"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Ankeret «%s» og noden «%s» blir knyttet til det samme filnavnet"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ "Denne @anchor-kommandoen ble ignorert, referanser til den vil ikke virke"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Omdøpe dette ankeret eller bruk «--no-split»-valget"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Uforventet streng ved slutten av splitt-HTML-fila «%s»"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Ankrene «%s» og «%s» peker til det samme filnavnet"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "@anchor-kommando ignorert; referanser til den vil ikke virke"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "%s referanse til ikke-eksisterende node «%s» (kanskje ugyldig inndeling?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr "Nestefeltet til noden «%s» er ikke pekt på (kanskje ugyldig inndeling?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Denne noden (%s) har den dårlige forrigepekeren"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Forrigefeltet til noden «%s» er ikke pekt på"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Denne noden (%s) har den dårlige nestepekeren"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "`%s' har ingen Up-felt (kanskje feil inndeling?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr "Noden «%s» mangler et menypunkt for «%s» selv om den er dens oppmål"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "ureferert node «%s»"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "Fjerner %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Kan ikke slette filen «%s»: %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Vedlegg %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Intern feil (search_sectioning) «%s»!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Intern feil (search_sectioning) «%s»!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s er avlegs; bruk %c%s i stedet"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Node med %ctop som en seksjon eksisterer allerede"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Her er %ctop-noden"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop brukt før %cnode, benytter %s"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image-fil «%s» er uleselig: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "@headitem som siste punkt i en @multitable fører til uyldige DocBook-"
+ "dokumenter"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "av"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "på"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Ingen kryssreferanser i denne noden."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "vise denne hjelpen og avslutte"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "sende utdata til FILE"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "vise programversjon og avslutte"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Bruksmåte: %s [VALG]... FIL...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Generere en sortert indeks for hver TeX-outputfil.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "Vanligvis er FIL... angitt som «foo.%c%c» for et dokument «foo.texi».\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Valg:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "feil ved gjenåpning av %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: ikke en texinfo-indeksfil"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Ingen sidenummer i %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "oppføring %s følger en oppføring med et annet navn"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search]  Søke forover etter en angitt streng\n"
+ #~ "              og velge den noden som den neste forekomsten blir funnet "
+ #~ "i.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10[goto-node]  Flytte til en node angitt ved navn.\n"
+ #~ "              Du kan like godt inkludere et filnavn, som i (FILNAVN)"
+ #~ "NODENAVN.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "\\%-10[next-node]  Flytte til neste node etter denne noden.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  Flytte til «katalog»-noden.  Det samme som «\\[goto-node] "
+ #~ "(DIR)».\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[top-node]  Flytte til «Top»-noden.  Det samme som «\\[goto-node] "
+ #~ "Top».\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  Søke baklengs etter en angitt streng\n"
+ #~ "              og velge den noden som den neste forekomsten blir funnet "
+ #~ "i.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- Bruk «\\[history-node]» eller «\\[kill-node]» for å avslutte ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr ""
+ #~ "\\%-10[move-to-prev-xref]  Flytte til neste hypertekstlenke innen denne "
+ #~ "noden.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "Bruksmåte: %s [VALG]... [MENYPUNKT...]\n"
+ #~ "\n"
+ #~ "Lese dokumentasjon i Infoformat.\n"
+ #~ "\n"
+ #~ "Valg:\n"
+ #~ "     --apropos=EMNE           søke etter EMNE i alle indeksene til alle "
+ #~ "Infofilene.\n"
+ #~ " -d, --directory=KAT          legge til KAT til INFOPATH.\n"
+ #~ "     --dribble=FILNAVN        huske brukerens tastetrykk i FILNAVN.\n"
+ #~ " -f, --file=FILNAVN           angi Infofilen som skal besøkes.\n"
+ #~ " -h, --help                   vise denne hjelpen og avslutte.\n"
+ #~ "     --index-search=STRENG    gå til noden pekt på av indeksoppslaget "
+ #~ "STRENG.\n"
+ #~ " -n, --node=NODENAVN          angi noder i første besøkte Infofil.\n"
+ #~ " -o, --output=FILNAVN         skrive ut utvalgte noder til FILNAVN.\n"
+ #~ " -R, --raw-escapes            ikke fjern ANSI-escapes fra mansider.\n"
+ #~ "     --restore=FILNAVN        lese innledende tastetrykk fra FILNAVN.\n"
+ #~ " -O, --show-options, --usage  gå til kommandolinje-valg-noden.\n"
+ #~ "%s     --subnodes               rekursivt skrive ut menypunkter.\n"
+ #~ "     --vi-keys                bruke vi-aktige og less-aktige "
+ #~ "tastebindinger.\n"
+ #~ "     --version                vise programversjon og avslutte.\n"
+ #~ "\n"
+ #~ "Det første ikke-valg-argumentet, dersom tilstede, er menypunktet som du\n"
+ #~ "starter fra; det blir søkt etter i alle «dir»-filer langs med INFOPATH.\n"
+ #~ "Dersom menypunktet ikke er tilstede, vil info flette sammen alle\n"
+ #~ "«dir»-filene og vise resultatet.  Øvrige gjenværende argumenter blir\n"
+ #~ "behandlet som navnene til menypunktene relativ til den første besøkte\n"
+ #~ "noden.\n"
+ #~ "\n"
+ #~ "Eksempler:\n"
+ #~ "  info                       vise toppnivå dirmeny\n"
+ #~ "  info emacs                 starte ved emacs-noden fra toppnivå dir\n"
+ #~ "  info emacs buffers         starte ved buffers-noden i emacs-manualen\n"
+ #~ "  info --show-options emacs  starte ved emacs kommandolinjevalg\n"
+ #~ "  info -f ./foo.info         vise filen ./foo.info, ikke søke gjennom "
+ #~ "dir\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr ""
+ #~ "              Valg av menypunkt fører til at en annen node blir valgt.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              Du kan like godt inkludere et filnavn, som i (FILNAVN)"
+ #~ "NODENAVN.\n"
+ 
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr ""
+ #~ "  %-10s  Søke baklengs gjennom denne Infofilen for en spesifikk streng,\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "              og velge den noden som i det neste tilfellet blir funnet.\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "Følger nestenoden..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "Velger første menypunkt..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "Velger nestenoden..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "Flytter opp %d gang(er), deretter neste."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "Flytter til forrige i dette vinduet."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "Flytter opp i dette vinduet."
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "Flytter til «forrige»s siste menypunkt."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "Funksjon"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "Makro"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "Spesiell form"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "Variabel"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "Brukervalg"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "Forekomst"
+ 
+ #~ msgid "Method"
+ #~ msgstr "Metode"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "Uten navn"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "Dette er %s, produsert av makeinfo versjon %s fra %s.\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "Neste:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "Forrige:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "Opp:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "Meny"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "Kryss"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "forrige"
+ 
+ #~ msgid "Up"
+ #~ msgstr "opp"
+ 
+ #, fuzzy
+ #~ msgid "see "
+ #~ msgstr "Se "
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "Bruksmåte: %s [VALG]... [INFOFIL [DIRFIL]]\n"
+ #~ "\n"
+ #~ "Installere eller slette dir-innslag fra INFOFIL i Info-katalogfilen\n"
+ #~ "DIRFIL.\n"
+ #~ "\n"
+ #~ "Valg:\n"
+ #~ " --delete          slette eksisterende innslag for INFOFIL fra DIRFIL;\n"
+ #~ "                     ikke sett inn noe nye innslag.\n"
+ #~ " --dir-file=NAVN   angi filnavnet til Info-katalogfilen.\n"
+ #~ "                     Dette er det samme som å bruke DIRFIL-argumentet.\n"
+ #~ " --entry=TEKST     sette inn TEKST som en Info-kataloginnslag.\n"
+ #~ "                     TEKST bør ha form som et Info-menypunkt\n"
+ #~ "                     pluss null eller flere linjer som starter med "
+ #~ "whitespace.\n"
+ #~ "                     Dersom du angir mer enn et innslag, blir alle lagt "
+ #~ "til.\n"
+ #~ "                     Dersom du ikke angir noen innslag, blir de bestemt\n"
+ #~ "                     fra informasjon i selve Infofilen.\n"
+ #~ " --help            vise denne hjelpen og avslutte.\n"
+ #~ " --info-file=FIL   angi Infofilen som skal installeres i katalogen.\n"
+ #~ "                     Dette er det samme som å bruke INFOFIL-argumentet.\n"
+ #~ " --info-dir=DIR    det samme som --dir-file=DIR/dir.\n"
+ #~ " --item=TEKST      det samme som --entry TEKST.\n"
+ #~ "                     Et Info-kataloginnslag er egentlig et menypunkt.\n"
+ #~ " --quiet           undertrykke advarsler.\n"
+ #~ " --remove          det samme som --delete.\n"
+ #~ " --section=AVS     putte denne filens innslag i avsnittet AVS i "
+ #~ "katalogen.\n"
+ #~ "                     Dersom du angir mer enn et avsnitt, blir alle "
+ #~ "innslagene\n"
+ #~ "                     lagt til i hver av avsnittene.\n"
+ #~ "                     Dersom du ikke angir noen avsnitt, blir de bestemt\n"
+ #~ "                     fra informasjon i selve Infofilen.\n"
+ #~ " --version         vise programversjon og avslutte.\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "menypunktet «%s» eksisterer allerede for filen «%s»"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr "\\%-10[menu-digit]  Velge første ... niende punkt i nodens meny.\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "noden «%s» har blitt referert %d ganger"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "Det finnes INGEN garanti.  Du kan redistribuere denne programvaren\n"
+ #~ "etter betingelsene i GNU General Public License.  For mer informasjon\n"
+ #~ "om dette, se filen COPYING.\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg bare brukbart når makroen bare tar et argument"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Innholdsfortegnelse"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "Kort innholdsfortegnelse"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "bevar midlertidige filer etter behandling"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "ikke bevar midlertidige filer etter behandling (standard)"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "              infofil, og velge noden referert av det første oppslaget "
+ #~ "funnet.\n"
+ 
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "Det finnes INGEN garanti.  Du kan redistribuere denne programvaren\n"
+ #~ "etter betingelsene i GNU General Public License.  For mer informasjon\n"
+ #~ "om dette, se filen COPYING.\n"
Files texinfo-4.12/po/nl.gmo and texinfo-4.13/po/nl.gmo differ
diff -Nrc2 texinfo-4.12/po/nl.po texinfo-4.13/po/nl.po
*** texinfo-4.12/po/nl.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/nl.po	Thu Sep 18 11:38:32 2008
***************
*** 0 ****
--- 1,3239 ----
+ # Dutch translations for texinfo-4.12.94.
+ # Copyright (C) 2008 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the texinfo package.
+ #
+ # Ivo Timmermans <zarq@iname.com>, 1998.
+ # Freek de Kruijf <f.de.kruijf@hetnet.nl>, 2004, 2005, 2007.
+ # Benno Schulenberg <benno@vertaalt.nl>, 2007, 2008.
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo-4.12.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2008-08-17 23:34+0200\n"
+ "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
+ "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Generator: KBabel 1.11.4\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr "Onbekende systeemfout"
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: optie '%s' is niet eenduidig\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: optie '--%s' staat geen argument toe\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: optie '%c%s' staat geen argument toe\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: optie '%s' vereist een argument\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: onbekende optie '--%s'\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: onbekende optie '%c%s'\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: ongeldige optie -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: ongeldige optie -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: optie vereist een argument -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: optie '-W %s' is niet eenduidig\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: optie '-W %s' staat geen argument toe\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "onvoldoende geheugen beschikbaar"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "EÃ©n teken verder"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "EÃ©n teken terug"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Naar het begin van de regel"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Naar het einde van de regel"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "EÃ©n woord verder"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "EÃ©n woord terug"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Het teken onder de cursor verwijderen"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Het teken na de cursor verwijderen"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Operatie annuleren of beÃ«indigen"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Deze regel accepteren (of de voltooiing ervan forceren)"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "De volgende toets verbatim invoegen"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Dit teken invoegen"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Een TAB-teken invoegen"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "De tekens op dit punt transponeren"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Het laatst verwijderde terughalen"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "De verwijderingsbuffer is leeg."
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Een eerdere verwijdering terughalen"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Tot aan het eind van de regel verwijderen"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Tot aan het begin van de regel verwijderen"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Het woord na de cursor verwijderen"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Het woord voor de cursor verwijderen"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Geen voltooiingen"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Niet compleet"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "De mogelijke voltooiingen tonen"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Enige voltooiing"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "EÃ©n mogelijkheid:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "Er zijn %d mogelijkheden:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Een voltooiing invoegen"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Opbouwen van voltooiingen..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Het voltooiingsvenster scrollen"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "De voetnoten kunnen niet weergegeven worden"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr ""
+ "In een ander venster de voetnoten tonen die met deze pagina verbonden zijn"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- Voetnoten ----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Een tekenreeks opzoeken in de index van dit bestand"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Zoeken naar index-items..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Geen indexen gevonden."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Index-item: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Naar het volgende overeenkomende item van het laatste '\\[index-search]'-"
+ "commando"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Geen eerdere index-zoektekenreeks."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Geen index-items."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Er zijn geen index-items %s die '%s' bevatten."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "meer "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "KAN DIT NIET ZIEN"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "'%s' gevonden in %s -- ('\\[next-index-match]' zoekt de volgende)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Zoeken in de indexen van '%s'..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Geen van de beschikbare Info-bestanden heeft '%s' in z'n index."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Alle Info-bestandsindexen doorzoeken naar een tekenreeks en een menu maken"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Index-apropos: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: Pagina's waarvan de indexen '%s' bevatten:\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Gebruik '--help' voor meer informatie.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden.\n"
+ "De precieze licentie is GPLv3+: GNU GPL versie 3 of later;\n"
+ "zie http://gnu.org/licenses/gpl.html voor de volledige tekst.\n"
+ "Er is GEEN GARANTIE, voor zover de wet dit toestaat.\n"
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "geen index-items gevonden voor '%s'\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ "Gebruik:  %s [OPTIE]... [MENU-ITEM...]\n"
+ "\n"
+ "Documentatie in Info-opmaak lezen.\n"
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ "Opties:\n"
+ "      --apropos=TEKENREEKS     in alle Info-indexen naar deze tekenreeks "
+ "zoeken\n"
+ "  -d, --directory=MAP          deze map toevoegen aan het zoekpad "
+ "'INFOPATH'\n"
+ "      --dribble=BESTAND        toetsaanslagen in dit bestand opslaan\n"
+ "  -f, --file=BESTAND           het te bekijken Info-bestand"
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ "  -h, --help                   deze hulptekst tonen en stoppen\n"
+ "      --index-search=NAAM      de pagina tonen waarnaar dit index-item "
+ "verwijst\n"
+ "  -n, --node=PAGINANAAM        een te bezoeken pagina\n"
+ "  -o, --output=BESTAND         de gekozen pagina's naar dit bestand schrijven"
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ "  -R, --raw-escapes            \"ruwe\" ANSI-stuurcodes schrijven "
+ "(standaard)\n"
+ "      --no-raw-escapes         stuurcodes als tekst uitschrijven\n"
+ "      --restore=BESTAND        de eerste toetsaanslagen uit dit bestand "
+ "lezen\n"
+ "  -O, --show-options, --usage  de pagina met de commandoregelopties tonen"
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ "  -b, --speech-friendly        uitvoer toesnijden op spraaksynthesizers"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ "      --subnodes               recursief alle menu-items uitvoeren\n"
+ "      --vi-keys                toetsbindingen als in 'vi' en 'less' "
+ "gebruiken\n"
+ "      --version                versie-informatie tonen en stoppen\n"
+ "  -w, --where, --location      het volledige pad van het Info-bestand tonen"
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ "\n"
+ "Als 'info' zonder argumenten gestart wordt, dan toont het een overzicht van\n"
+ "alle beschikbare documenten.  Als er argumenten gegeven worden, dan wordt "
+ "het\n"
+ "eerste argument begrepen als het te kiezen menu-item uit dat overzicht.\n"
+ "Eventuele overige argumenten worden steeds begrepen als het te kiezen\n"
+ "menu-item in de op dat moment bereikte pagina."
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ "\n"
+ "Voor een overzicht van de commandotoetsen, typ 'h' in Info."
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ "\n"
+ "Voorbeelden:\n"
+ "  info                         het inhoudsmenu tonen (een compleet "
+ "overzicht)\n"
+ "  info info                    de algemene handleiding voor Info-lezers "
+ "tonen\n"
+ "  info info-stnd               de handleiding voor 'info' zelf tonen\n"
+ "  info emacs                   de eerste pagina van het Emacs-document "
+ "tonen\n"
+ "  info emacs buffers           de 'Buffers'-pagina van het Emacs-document "
+ "tonen\n"
+ "  info --show-options emacs    de pagina met de Emacs-commandoregelopties "
+ "tonen\n"
+ "  info --subnodes -o em.txt emacs  het gehele Emacs-document in 'em.txt' "
+ "dumpen\n"
+ "  info -f ./foo.info           het bestand './foo.info' tonen"
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Stuur foutrapportages naar <bug-texinfo@gnu.org>,\n"
+ "algemene vragen en commentaar naar <help-texinfo@gnu.org>,\n"
+ "en opmerkingen over de vertaling naar <vertaling@vrijschrift.org>.\n"
+ "Texinfo-homepagina: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Kan pagina '%s' niet vinden."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Kan pagina '(%s)%s' niet vinden."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Kan geen venster vinden!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Het punt bevindt zich niet in de pagina van dit venster!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Het laatste venster kan niet gesloten worden."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Er is geen menu op deze pagina."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Er zijn geen voetnoten op deze pagina."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Er zijn geen kruisverwijzingen op deze pagina."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Er is geen '%s'-koppeling op deze pagina."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Onbekend Info-commando '%c'; typ '?' voor hulp."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Terminaltype '%s' is niet krachtig genoeg voor Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "U bent al aan het eind van deze pagina."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "U bent al aan het begin van deze pagina."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Slechts Ã©Ã©n venster."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Het resulterende venster zou te klein zijn."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Niet genoeg ruimte voor een hulp-venster; sluit een venster."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr "=====  Basiscommando's van 'info'  =====\n"
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Dit hulpvenster sluiten.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Info afsluiten.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Een korte Info-cursus oproepen.\n"
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  EÃ©n regel omhoog.\n"
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  EÃ©n regel omlaag.\n"
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  EÃ©n blad terug (<Backspace>).\n"
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  EÃ©n blad verder (<Spatiebalk>).\n"
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Naar het begin van deze pagina.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Naar het einde van deze pagina.\n"
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "\\%-10[move-to-next-xref]  Naar de volgende koppeling springen.\n"
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  De koppeling onder de cursor volgen "
+ "(<Enter>).\n"
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  Terug naar de laatst geziene pagina in dit venster.\n"
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[global-prev-node]  Naar de voorgaande pagina.\n"
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[global-next-node]  Naar de volgende pagina.\n"
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Naar de voorgaande pagina op dit niveau.\n"
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Naar de volgende pagina op dit niveau.\n"
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Naar de bovenliggende pagina.\n"
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[top-node]  Naar de eerste pagina van dit document.\n"
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[dir-node]  Naar de hoofd-inhoudspagina.\n"
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr ""
+ "1...9       Het eerste...negende item uit het menu op deze pagina kiezen.\n"
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr ""
+ "\\%-10[last-menu-item]  Het laatste item uit het menu op deze pagina "
+ "kiezen.\n"
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "\\%-10[menu-item]  Een menu-item kiezen door diens naam op te geven.\n"
+ 
+ #: info/infodoc.c:73
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ "\\%-10[xref-item]  Een kruisverwijzing volgen door diens naam op te geven.\n"
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "\\%-10[goto-node]  Naar een pagina gaan door diens naam op te geven.\n"
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "\\%-10[search]  Voorwaarts zoeken naar een tekenreeks.\n"
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[search-previous]  Vorige zoeken.\n"
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "\\%-10[search-next]  Volgende zoeken.\n"
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Naar een tekenreeks zoeken in de index van dit Info-"
+ "bestand,\n"
+ "              en de pagina behorend bij het eerste gevonden item "
+ "selecteren.\n"
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "\\%-10[abort-key]  Huidige operatie annuleren of beÃ«indigen.\n"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Basiscommando's van 'info'\n"
+ "==========================\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Dit hulpvenster sluiten.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Info afsluiten.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Een korte Info-cursus oproepen.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Naar de volgende pagina.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Naar de voorgaande pagina.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Naar de bovenliggende pagina.\n"
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "  %-10s  Een menu-item kiezen door diens naam op te geven;\n"
+ "              dit selecteert een andere pagina.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Een kruisverwijzing volgen door diens naam op te geven.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Terug naar de laatst geziene pagina in dit venster.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Naar de volgende koppeling springen.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  De koppeling onder de cursor volgen.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Naar de hoofd-inhoudspagina.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Naar de eerste pagina van dit document.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Bewegen binnen een pagina:\n"
+ "--------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  EÃ©n blad verder.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  EÃ©n blad terug.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Naar het begin van deze pagina.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Naar het einde van deze pagina.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  EÃ©n regel omlaag.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  EÃ©n regel omhoog.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Enkele andere commando's:\n"
+ "-------------------------\n"
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr ""
+ "  %-10s  Het eerste...negende item uit het menu op deze pagina kiezen.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Het laatste item uit het menu op deze pagina kiezen.\n"
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "  %-10s  Naar een tekenreeks zoeken in de index van dit Info-bestand,\n"
+ "              en de pagina behorend bij het eerste gevonden item "
+ "selecteren.\n"
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "  %-10s  Naar een pagina gaan door diens naam op te geven; er mag een\n"
+ "              bestandsnaam meegegeven worden via (BESTANDSNAAM)PAGINANAAM.\n"
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr "  %-10s  Voorwaarts zoeken naar een tekenreeks.\n"
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr "  %-10s  Achterwaarts zoeken naar een tekenreeks.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Het huidige zoekpad voor Info-bestanden is:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Alle beschikbare commando's in Info-vensters:\n"
+ "=============================================\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Beschikbare commando's in de echoregel:\n"
+ "=======================================\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "De volgende commando's kunnen alleen aangeroepen worden via %s:\n"
+ "================================================================\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "De volgende commando's kunnen helemaal niet aangeroepen worden:\n"
+ "===============================================================\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Deze hulptekst tonen"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Naar Info-pagina '(info)Help'"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Uitleg geven over een toets"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Te beschrijven toets: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s is niet gedefinieerd."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s is niet gedefinieerd."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s is gedefinieerd als %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Tonen wat ingetypt moet worden om een gegeven commando uit te voeren"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Waar is het commando: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "'%s' is aan geen enkele toetscombinatie toegekend"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s kan alleen aangeroepen worden via %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s kan aangeroepen worden via %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Er is geen functie met de naam '%s'"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Selecteren van andere pagina's:\n"
+ "-------------------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "onjuist aantal argumenten"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "kan invoerbestand '%s' niet openen"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "kan uitvoerbestand '%s' niet aanmaken"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "fout bij het schrijven naar '%s'"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "fout bij het sluiten van uitvoerbestand '%s'"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "toetsenreeks is te lang"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "ontbrekende toetsenreeks"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "NUL-teken (\\000) is niet toegestaan"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "NUL-teken (^%c) is niet toegestaan"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "ontbrekende actienaam"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "sectie is te lang"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "onbekende actie '%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "actienaam is te lang"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "extra tekens na actie '%s'"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "ontbrekende naam van variabele"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "ontbrekende '=' na naam van variabele"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "naam van variabele is te lang"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "waarde is te lang"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", regel %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Gebruik:  %s [OPTIE]... [INVOERBESTAND]\n"
+ "\n"
+ "Een infokey-bronbestand naar een binair infokey-bestand compileren.\n"
+ "Dit leest een INVOERBESTAND (standaard $HOME/.infokey) en schrijft\n"
+ "het gecompileerde infokey-bestand (standaard) naar $HOME/.info.\n"
+ "\n"
+ "Opties:\n"
+ "  --output BESTAND     uitvoer naar dit bestand schrijven\n"
+ "  --help               deze hulptekst tonen en stoppen\n"
+ "  --version            versie-informatie tonen en stoppen\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Infokey-bestand '%s' is te klein -- wordt genegeerd"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Infokey-bestand '%s' is te groot -- wordt genegeerd"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Fout bij lezen van infokey-bestand '%s' -- te weinig gelezen"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "Ongeldig infokey-bestand '%s' (onjuiste magische nummers) --\n"
+ "voer 'infokey' uit om het op orde te brengen"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ "Uw infokey-bestand '%s' is verouderd --\n"
+ "voer 'infokey' uit om het op orde te brengen"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Ongeldig infokey-bestand '%s' (onjuiste sectielengte) --\n"
+ "voer 'infokey' uit om het op orde te brengen"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "Ongeldig infokey-bestand '%s' (onjuiste sectiecode) --\n"
+ "voer 'infokey' uit om het op orde te brengen"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ "Foute gegevens in infokey-bestand -- enkele toetstoewijzingen zijn genegeerd"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr "Foute gegevens in infokey-bestand -- sommige definities zijn genegeerd"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "De naam van een Info-commando lezen en een omschrijving ervan geven"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Te omschrijven commando: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "De naam van een commando in de echoregel lezen en deze uitvoeren"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Kan hier geen 'echoregel'-commando uitvoeren."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "Onbekend commando: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "De hoogte van het weergavevenster instellen"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Schermhoogte instellen op (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Doorzochte bronbestanden om dit bestand te maken omvatten:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Kan het bestand %s niet manipuleren.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menu:\n"
+ "  (Bestand)Pagina                   Regels  Bytes  Volledig pad\n"
+ "  ---------------                   ------  -----  ------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Hier is een menu van pagina's die u recent bezocht hebt.\n"
+ "Selecteer er een, of gebruik `\\[history-node]' in een ander venster.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "Een venster openen met een menu van reeds bezochte pagina's"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Een pagina selecteren die recent bekeken werd in een zichtbaar venster"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Te selecteren bezochte pagina: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "De verwijzing is verdwenen! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr "fout in reguliere expressie: %s"
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Welkom bij Info versie %s.  Typ <\\[get-help-window]> voor hulp, "
+ "<Spatiebalk> om te bladeren."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Naar de volgende regel"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Naar de vorige regel"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Naar het einde van de regel"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Naar het begin van de regel"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Volgende"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Dit is de laatste pagina van dit document."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Er is geen voorgaande pagina op dit niveau."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Dit is de eerste pagina van dit document."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Voorwaarts door alle pagina's van een document bladeren"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Achterwaarts door alle pagina's van een document bladeren"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Verderscrollen in dit venster"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "Verderscrollen in dit venster en de venstergrootte instellen"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Binnen de pagina verderscrollen in dit venster"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Binnen de pagina verderscrollen in dit venster en de venstergrootte instellen"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Terugscrollen in dit venster"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "Terugscrollen in dit venster en de venstergrootte instellen"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Binnen de pagina terugscrollen in dit venster"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Binnen de pagina terugscrollen in dit venster en de venstergrootte instellen"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Naar het begin van deze pagina"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Naar het einde van deze pagina"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Een aantal regels omlaagscrollen"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Een aantal regels omhoogscrollen"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Een halve pagina omlaagscrollen"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Een halve pagina omhoogscrollen"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Het volgende venster selecteren"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Het vorige venster selecteren"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Het huidige venster splitsen"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Het huidige venster sluiten"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Een permanent venster kan niet gesloten worden."
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Alle andere vensters sluiten"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "In het andere venster verderscrollen"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "In het andere venster terugscrollen"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Dit venster vergroten of verkleinen"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "De beschikbare schermruimte verdelen tussen de zichtbare vensters"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Regelafbreking in het huidige venster omschakelen"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr "Het gebruik van reguliere expressies bij zoekopdrachten aan-/uitzetten"
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr "Zoeken gebruikt reguliere expressies."
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr "Zoeken gebruikt letterlijke tekst."
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Naar de volgende pagina op dit niveau"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Naar de voorgaande pagina op dit niveau"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Naar de bovenliggende pagina"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Naar de laatste pagina van dit document"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Dit venster heeft geen extra pagina's."
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Naar de eerste pagina van dit document"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Het laatste menu-item op deze pagina selecteren"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Het huidige menu-item selecteren"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Dit menu heeft minder dan %d items."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Te kiezen menu-item (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Te kiezen menu-item: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Te volgen verwijzing (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Te volgen kruisverwijzing: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "De naam van een menu-item lezen en diens pagina selecteren"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr ""
+ "De naam van een voetnoot of kruisverwijzing lezen en diens pagina selecteren"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Naar het begin van het menu op deze pagina"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Zo veel mogelijk menu-items tegelijk bezoeken"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "De naam van een pagina lezen en deze selecteren"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Te bezoeken pagina: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Er is geen menu in pagina '%s'."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Er is geen menu-item '%s' op pagina '%s'."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Kan de pagina waarnaar verwezen werd door '%s' niet vinden in '%s'."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Een reeks menu-items lezen en deze vanaf de inhoudspagina volgen"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Te volgen reeks menu-items: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "De pagina zoeken die de aanroepwijze van het programma beschrijft"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Aanroepbeschrijving bekijken van [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Een man-paginaverwijzing lezen en deze selecteren"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Te bekijken man-pagina: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Naar de eerste pagina van dit bestand"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Naar de hoofd-inhoudspagina"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Te sluiten pagina (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Kan pagina '%s' niet sluiten"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Kan niet verder terug dan de eerste pagina."
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Terug naar de laatst geziene pagina"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Deze pagina sluiten"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "De naam van een bestand lezen en deze selecteren"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Te bezoeken bestand: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Kan '%s' niet vinden."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Kan uitvoerbestand '%s' niet aanmaken."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Klaar."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Schrijven van pagina %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "De inhoud van deze pagina doorsluizen naar het INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Kan de pijp naar '%s' niet openen."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Afdrukken van pagina %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr "Het zoeken is verdergegaan vanaf het einde."
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr "Het zoeken is verdergegaan vanaf het begin."
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Zoeken naar subbestand %s..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Een tekenreeks lezen en daar hoofdlettergevoelig naar zoeken"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Een tekenreeks lezen en daar naar zoeken"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Een tekenreeks lezen en daar achterwaarts naar zoeken"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s%s [\"%s\"]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr "Zoeken naar expressie"
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr " (hooflettergevoelig)"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr " (achterwaarts)"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Zoeken"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Niet gevonden."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "De laatste zoekopdracht in dezelfde richting herhalen"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Geen eerdere zoektekenreeks."
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "De laatste zoekopdracht in tegenovergestelde richting herhalen"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Naar een tekenreeks zoeken terwijl u deze intypt"
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr "Achterwaarts typend-zoeken naar expressie: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "Achterwaarts typend-zoeken: "
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr "Typend-zoeken naar expressie: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "Typend-zoeken: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "*Ongevonden* "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Naar de vorige kruisverwijzing springen"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Naar de volgende kruisverwijzing springen"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "De verwijzing of het menu-item in deze regel volgen"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Huidige operatie annuleren"
+ 
+ # Dit is een reactie op bovenstaande 'Cancel current operation'.
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Geannuleerd"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "De cursor op een bepaalde regel in het venster zetten"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Het venster opnieuw schrijven"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Info afsluiten"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr ""
+ "Commando uitvoeren dat behoort bij de kleinelettervariant van deze toets"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Onbekend commando (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" is ongeldig"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "'%s' is ongeldig"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Dit cijfer toevoegen aan het huidige numerieke argument"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr ""
+ "Een nieuw numeriek argument beginnen (of het huidige met 4 vermenigvuldigen)"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Intern gebruikt door \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: onvoldoende geheugen beschikbaar\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Bij 'On' worden voetnoten automatisch getoond"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "Bij 'On' worden venstergroottes automatisch aangepast"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Bij 'On' flitst het scherm in plaats van een belsignaal"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Bij 'On' geven fouten een belsignaal"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "Bij 'On' worden gedecomprimeerde teksten vergeten"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "Bij 'On' staat het overeenkomende deel in hoofdletters"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Hoe te scrollen aan het eind van een pagina"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr "Hoe te scrollen aan het eind van een pagina"
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Aantal te scrollen regels wanneer cursor buiten venster komt"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr "Bij 'On' werkt pijltjestoets ook op paginagrens"
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Bij 'On' accepteert en toont Info ISO-Latin-tekens"
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Hoe te scrollen aan het eind van de laatste pagina"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "De betekenis van een variabele uitleggen"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Te omschrijven variabele: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "De waarde van een Info-variabele instellen"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "In te stellen variabele: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Variabele %s deze waarde geven (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Variabele %s deze waarde geven (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Tags zijn verouderd ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), regels ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d regels --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d regels --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Subbestand: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: waarschuwing: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " voor %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tTyp '%s --help' voor een volledige lijst van opties.\n"
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Gebruik:  %s [OPTIE]... [INFO-BESTAND [INHOUDSBESTAND]]\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ "De items die voorkomen in INFO-BESTAND toevoegen aan of\n"
+ "verwijderen uit het Info-inhoudsbestand INHOUDSBESTAND."
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ "Opties:\n"
+ " --debug              tonen wat er gedaan wordt\n"
+ " --delete             de items van INFO-BESTAND uit INHOUDSBESTAND "
+ "verwijderen;\n"
+ "                        geen nieuwe items toevoegen\n"
+ " --description=TEKST  de beschrijving van een item; wanneer samen gebruikt "
+ "met\n"
+ "                        '--name', is dit equivalent aan '--entry'\n"
+ " --dir-file=NAAM      de bestandsnaam van het Info-inhoudsbestand;\n"
+ "                        equivalent aan het argument INHOUDSBESTAND\n"
+ " --dry-run            hetzelfde als '--test'"
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ " --entry=TEKST        deze tekst toevoegen als een Info-inhoudsitem;\n"
+ "                        de TEKST moet de vorm van een Info-menu-item "
+ "hebben,\n"
+ "                        met nul of meer extra regels beginnend met "
+ "witruimte;\n"
+ "                        indien u meer dan Ã©Ã©n item opgeeft, worden ze "
+ "allemaal\n"
+ "                        toegevoegd; als u geen items opgeeft, worden deze "
+ "uit\n"
+ "                        het gegeven Info-bestand gehaald"
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ " --help               deze hulptekst tonen en stoppen\n"
+ " --info-dir=MAP       hetzelfde als '--dir-file=MAP/dir'\n"
+ " --info-file=BESTAND  een Info-bestand waarvan de items opgenomen moeten "
+ "worden;\n"
+ "                        equivalent aan het argument INFO-BESTAND\n"
+ " --item=TEKST         hetzelfde als '--entry=TEKST'\n"
+ " --keep-old           geen items vervangen, en lege secties niet "
+ "verwijderen\n"
+ " --menuentry=TEKST    hetzelfde als '--name=TEKST'\n"
+ " --no-indent          nieuwe items in het inhoudsbestand niet opmaken\n"
+ " --quiet              waarschuwingen onderdrukken"
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ " --regex=EXPRESSIE    de gevonden items toevoegen aan alle secties die aan "
+ "deze\n"
+ "                        reguliere expressie voldoen (daarbij verschil "
+ "tussen\n"
+ "                        hoofd- en kleine letters negeren)\n"
+ " --remove             hetzelfde als '--delete'\n"
+ " --remove-exactly     alleen verwijderen als de infobestandsnaam exact "
+ "klopt;\n"
+ "                        achtervoegsels als .info en .gz worden genegeerd\n"
+ " --section=SECTIE     de gevonden items aan deze sectie van de inhoud "
+ "toevoegen;\n"
+ "                        als u meer dan Ã©Ã©n sectie opgeeft, worden de items "
+ "aan\n"
+ "                        al die secties toegevoegd; als u geen secties "
+ "opgeeft,\n"
+ "                        wordt de informatie uit het Info-bestand zelf "
+ "gehaald\n"
+ " --section EXP SEC    hetzelfde asl '--regex=EXP --section=SEC --add-once'"
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ " --silent             waarschuwingen onderdrukken\n"
+ " --test               het INHOUDSBESTAND niet bijwerken, slechts doen alsof\n"
+ " --version            versie-informatie tonen en stoppen"
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "Stuur foutrapportages naar <bug-texinfo@gnu.org>,\n"
+ "algemene vragen en commentaar naar <help-texinfo@gnu.org>,\n"
+ "en opmerkingen over de vertaling naar <vertaling@vrijschrift.org>.\n"
+ "Texinfo-homepagina: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Dit is het bestand .../info/dir, dat de bovenste pagina van\n"
+ "de Info-documentenhiÃ«rarchie bevat, genaamd '(dir)Top'.\n"
+ "Info gestart zonder argumenten begint op deze pagina.\n"
+ "\n"
+ "%s\tDit is de top van de INFO-boom\n"
+ "\n"
+ "  Deze inhoudspagina toont een menu met hoofdonderwerpen.\n"
+ "  Een \"q\" sluit het programma af, een \"d\" brengt u hier terug,\n"
+ "  \"?\" toont een hulpvenster met alle Info-commando's,\n"
+ "  \"h\" gaat naar een handleiding voor nieuwe gebruikers,\n"
+ "  \"mls<Enter>\" toont u de pagina's van het 'ls'-commando, enzovoort.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: kan deze niet lezen (%s) en niet aanmaken (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: is een leeg bestand"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY zonder bijpassende END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY zonder bijpassende START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: hebben al een inhoudsbestand: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Geef het Info-bestand slechts Ã©Ã©n keer op.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr "Extra reguliere expressie opgegeven; '%s' wordt genegeerd"
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr "Fout in reguliere expressie '%s': %s"
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "commandoregel-argument '%s' is overbodig"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "Geen invoerbestand gegeven; gebruik '--help' voor meer informatie."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "Geen inhoudsbestand gegeven; gebruik '--help' voor meer informatie."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "geen Info-inhoudsitem in '%s'"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "geen items voor '%s' gevonden; er is niets verwijderd"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr "ferror() op standaarduitvoer\n"
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr "fflush()-fout op standaarduitvoer\n"
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "argumenten van @%s zijn genegeerd"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "januari"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "februari"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "maart"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "april"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "mei"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "juni"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "juli"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "augustus"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "september"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "oktober"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "november"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "december"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "onwaarschijnlijk teken '%c' in @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "argument van @sc is in hoofdletters, heeft dus geen effect"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "'{' werd verwacht, maar '%c' gevonden"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "einde van bestand in een \"verb\"-blok"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "'}' werd verwacht, maar '%c' gevonden"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@strong{Noot...} produceert een loze kruisverwijzing in Info; kies een ander "
+ "woord om dat te vermijden"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s is verouderd"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp vereist een postief numeriek argument, niet '%s'"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Fout argument van %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "asis"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "none"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Fout argument van @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "invoegen"
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Fout argument van @%s: %s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr "@%s 'on' of 'off' werd verwacht, niet '%s'"
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr "Bij @%s is alleen 10 of 11 mogelijk, niet '%s'"
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Ontbrekende '}' in het argument van @def"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Moet in een '@%s'-omgeving zitten om '@%s' te kunnen gebruiken"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "'%s' wordt weggelaten voor een uitvoerbestandsnaam"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "'%s' wordt weggelaten vanwege het schrijven naar standaarduitvoer"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Uitvoerbuffer is niet leeg."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr "Het gevraagde drijvendekommatype '%s' werd niet eerder gebruikt"
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Zie "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "'%c%s' vereist een argument '{...}', niet slechts '%s'"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Ontbrekende sluitaccolade voor voetnoot '%s'"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Voetnoot gedefinieerd zonder referentiepagina"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Voetnoten binnen een voetnoot zijn niet toegestaan"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Voetnoten"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: kan '--css'-bestand '%s' niet openen"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: '--css'-bestand eindigt in commentaar"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[onverwacht] geen html-tag aanwezig"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[onverwacht] ongeldige paginanaam: '%s'"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Onbekende index '%s'"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info kan ':' in indexitem '%s' niet aan"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Index '%s' bestaat al"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Onbekende index '%s' en/of '%s' in @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(regel )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(regel %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Onbekende index '%s' in @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Item voor index '%s' valt buiten elke pagina"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(buiten alle pagina's)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@item niet toegestaan in argument van @itemize"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr ""
+ "**Interne fout**: niet-bestaande uitvoersoort in insertion_type_pname()"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Overloop van enumeratiestapel"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "de letters zijn op; herbegonnen bij %c"
+ 
+ # FIXME: formatter?
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s vereist een argument: de formatteerder voor %c-item"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "%cfloat-omgevingen kunnen niet genest worden"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "'@end' verwachtte '%s', maar vond '%s'"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Geen overeenkomende '%cend %s'"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s vereist een letter of cijfer"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "einde van bestand binnen een verbatim blok"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s is niet zinvol buiten een '@float'-omgeving"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu gevonden vÃ³Ã³r de eerste @node; aanmaken van Top-pagina"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "uw @top-pagina moet mogelijk ingepakt worden in @ifnottex in plaats van "
+ "@ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu gevonden voor de eerste pagina; aanmaken van Top-pagina"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr "@%s is niet zinvol buiten '@titlepage'- en '@quotation'-omgevingen"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s is nietÂ zinvolÂ buiten '@titlepage'-omgeving"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Ongepaarde '%c%s'"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "'%c%s' vereist een argument"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Verkeerd argument '%s' van '@%s'; '%s' wordt gebruikt"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s is zinloos in een '@%s'-blok"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx is zinloos in een '%s'-blok"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s gevonden buiten een invoeg-blok"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr "geen standaardterritorium bekend voor taal '%s'"
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s is geen geldige ISO 639-taalcode"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "onbekende coderingsnaam '%s'"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "sorry, codering '%s' wordt niet ondersteund"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "ongeldig gecodeerd teken '%s'"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s verwacht 'i' of 'j' als argument, niet '%c'"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s verwacht Ã©Ã©n enkele 'i' of 'j' als argument"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "macro '%s' is al eerder gedefinieerd"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "hier was de eerdere definitie van '%s'"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ "'\\' in macro-expansie werd gevolgd door '%s' in plaats van een parameternaam"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Macro '%s' in regel %d wordt aangeroepen met te veel argumenten"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "%cend-macro niet gevonden"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr "@allow-recursion is verouderd; gebruik @rmacro"
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr "@quote-arg is verouderd; argumenten hebben standaard aanhalingstekens"
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "@end %s komt niet overeen met @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "Te veel fouten!  Gestopt.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: waarschuwing: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "Verkeerd geplaatste %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Typ '%s --help' voor meer informatie.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Gebruik:  %s [OPTIE]... TEXINFO-BESTAND...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Texinfo-bestanden omzetten naar een bepaalde opmaak.\n"
+ "Standaard worden 'Info'-bestanden aangemaakt.  Deze kunnen\n"
+ "gelezen worden met 'emacs' of met het zelfstandige 'info'.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Algemene opties:\n"
+ "      --error-limit=AANTAL    na dit aantal fouten stoppen (standaard %d)\n"
+ "      --document-language=TAALCODE  te gebruiken taalregio (standaard C) "
+ "bij\n"
+ "                                      het vertalen van Texinfo-"
+ "sleutelwoorden\n"
+ "      --force                 uitvoerbestand behouden ook bij fouten\n"
+ "      --help                  deze hulptekst tonen en stoppen\n"
+ "      --no-validate           controle van kruisverwijzingen onderdrukken\n"
+ "      --no-warn               waarschuwingen onderdrukken (maar fouten "
+ "niet)\n"
+ "  -v, --verbose               tonen wat er gedaan wordt\n"
+ "      --version               versie-informatie tonen en stoppen\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Opmaakselectie (standaard wordt Info-opmaak geproduceerd):\n"
+ "      --docbook               Docbook-XML produceren\n"
+ "      --html                  HTML produceren\n"
+ "      --plaintext             platte tekst produceren\n"
+ "      --xml                   Texinfo-XML produceren\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Algemene uitvoeropties:\n"
+ "  -E, --macro-expand=BESTAND  macro-geÃ«xpandeerde brontekst naar dit "
+ "bestand\n"
+ "                                schrijven, eventuele @setfilename's negeren\n"
+ "      --no-headers            kopregels en menu's weglaten, zodat Info-"
+ "uitvoer\n"
+ "                                platte tekst wordt en HTML-uitvoer korter;\n"
+ "                                standaard naar standaarduitvoer schrijven\n"
+ "      --no-split              splitsing van Info- of HTML-uitvoer "
+ "onderdrukken,\n"
+ "                                slechts Ã©Ã©n uitvoerbestand aanmaken\n"
+ "      --number-sections       hoofdstuk- en sectienummers produceren\n"
+ "  -o, --output=BESTAND        uitvoerbestand (of map indien gesplitste "
+ "HTML)\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Opties voor Info en platte tekst:\n"
+ "      --disable-encoding      geen tekens met accenten in de uitvoer "
+ "produceren\n"
+ "      --enable-encoding       tekens met accenten toestaan (standaard)\n"
+ "      --fill-column=AANTAL    regels afbreken op deze lengte (standaard %d)\n"
+ "      --footnote-style=STIJL  voetnoten produceren volgens deze stijl; "
+ "indien\n"
+ "                                'end', dan aan het einde van de pagina "
+ "waarin\n"
+ "                                ze zijn gedefinieerd (standaard); indien\n"
+ "                                'separate', dan in een aparte pagina\n"
+ "      --paragraph-indent=XX   alinea's inspringen met XX spaties (standaard %"
+ "d);\n"
+ "                                indien 'none', dan niet inspringen; indien\n"
+ "                                'asis', dan bestaande inspringing behouden\n"
+ "      --split-size=GETAL      bestanden opsplitsen vanaf deze grootte\n"
+ "                                (standaard %d bytes)\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "Opties voor HTML:\n"
+ "      --css-include=BESTAND   dit bestand in de uitvoer opnemen;\n"
+ "                                als BESTAND '-' is, dan standaardinvoer "
+ "lezen\n"
+ "      --css-ref=URL           een referentie naar een CSS-bestand genereren\n"
+ "      --internal-links=BSTAND tabel met interne verwijzingen hierin opslaan\n"
+ "      --transliterate-file-names\n"
+ "                              bestandsnamen met alleen ASCII-tekens "
+ "produceren\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "Opties voor XML en Docbook:\n"
+ "      --output-indent=GETAL   XML-elementen met dit aantal spaties "
+ "inspringen\n"
+ "                                (standaard %d); indien 0, dan witruimte die\n"
+ "                                weggelaten mag worden laten vervallen\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Invoerbestandopties:\n"
+ "      --commands-in-node-names  @-commando's in paginanamen toestaan\n"
+ "  -D VAR                      de variabele VAR definiÃ«ren (als met '@set')\n"
+ "  -I MAP                      MAP achteraantoevoegen aan @include-zoekpad\n"
+ "  -P MAP                      MAP vooraantoevoegen aan @include-zoekpad\n"
+ "  -U VAR                      variabele VAR wissen (als met '@clear')\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Conditionele verwerking van de invoer:\n"
+ "  --ifdocbook       '@ifdocbook' en '@docbook' altijd verwerken\n"
+ "  --ifhtml          '@ifhtml' en '@html' altijd verwerken\n"
+ "  --ifinfo          '@ifinfo' altijd verwerken\n"
+ "  --ifplaintext     '@ifplaintext' altijd verwerken\n"
+ "  --iftex           '@iftex' en '@tex' verwerken; impliceert '--no-split'\n"
+ "  --ifxml           '@ifxml' en '@xml' verwerken\n"
+ "  --no-ifdocbook    '@ifdocbook' en '@docbook' niet verwerken\n"
+ "  --no-ifhtml       '@ifhtml' en '@html' niet verwerken\n"
+ "  --no-ifinfo       '@ifinfo' niet verwerken\n"
+ "  --no-ifplaintext  '@ifplaintext' niet verwerken\n"
+ "  --no-iftex        '@iftex' en '@tex' niet verwerken\n"
+ "  --no-ifxml        '@ifxml' en '@xml' niet verwerken\n"
+ "\n"
+ "  Voor de '--no-ifOPMAAK'-opties geldt: '@ifnotOPMAAK' _wel_ verwerken.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  De standaarden voor de '@if...'-opdrachten hangen af van de "
+ "uitvoeropmaak:\n"
+ "  als HTML gemaakt wordt, staat '--ifhtml' aan en de anderen niet;\n"
+ "  als Info gemaakt wordt, staat '--ifinfo' aan en de anderen niet;\n"
+ "  als platte tekst gemaakt wordt, staat '--ifplaintext' aan en de anderen "
+ "niet;\n"
+ "  als XML gemaakt wordt, staat '--ifxml' aan en de anderen niet.\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Voorbeelden:\n"
+ "  makeinfo foo.texi                 Info schrijven (naar foo's "
+ "@setfilename)\n"
+ "  makeinfo --html foo.texi          HTML schrijven (naar foo's "
+ "@setfilename)\n"
+ "  makeinfo --xml foo.texi           Texinfo-XML schrijven (naar "
+ "@setfilename)\n"
+ "  makeinfo --docbook foo.texi       DocBook-XML schrijven (naar "
+ "@setfilename)\n"
+ "  makeinfo --no-headers foo.texi    platte tekst naar standaarduitvoer\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  HTML zonder kopregels en menu's\n"
+ "  makeinfo --number-sections foo.texi    Info met genummerde secties\n"
+ "  makeinfo --no-split foo.texi           Ã©Ã©n Info-bestand ongeacht de "
+ "grootte\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: Onbekende waarde '%s' van TEXINFO_OUTPUT_FORMAT wordt genegeerd.\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: Argument van %s moet numeriek zijn, niet '%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: Kan uitvoerbestand '%s' voor macro-expansies niet openen"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: Tweede uitvoerbestand '%s' voor macro-expansies wordt genegeerd.\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: Kan uitvoerbestand '%s' voor interne verwijzingen niet openen"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr ""
+ "%s: Tweede uitvoerbestand '%s' voor interne verwijzingen wordt genegeerd.\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: Argument van --paragraph-indent moet numeriek, 'none' of 'asis' zijn, "
+ "niet '%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: Argument van --footnote-style moet 'separate' of 'end' zijn, niet '%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: Ontbrekend bestandsargument.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Multi-regelcommando %c%s wordt onjuist gebruikt"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Verwachtte '%s'"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Kan map '%s' niet aanmaken: %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Geen '%s' gevonden in '%s'"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Macro-expansie naar standaarduitvoer wordt overgeslagen,\n"
+ "want de uitvoer van Info gaat daar al heen.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Aanmaken van een %s-bestand '%s' uit '%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Macro-uitvoerbestand '%s' wordt verwijderd wegens fouten;\n"
+ "gebruik '--force' om het te behouden.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Uitvoerbestand '%s' wordt verwijderd wegens fouten;\n"
+ "gebruik '--force' om het te behouden.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Uitvoerbestand '%s' voor interne verwijzingen wordt\n"
+ "verwijderd wegens fouten; gebruik '--force' om het te behouden.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Onbekend commando '%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "Gebruik '{...}' om een commando als argument mee te geven aan @%s"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s verwachtte '{...}'"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Ongepaarde }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "GEEN_NAAM!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s ontbrekende sluitaccolade"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image-bestand '%s' (voor HTML) is niet leesbaar: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "Geen bestand '%s' gevonden"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image-bestand '%s' (voor tekst) is niet leesbaar: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "ontbrekend bestandsnaamargument van @image"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "ongedefinieerde vlag: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Geen waarde voor '%s'}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s vereist een naam"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Bestandseinde werd bereikt vÃ³Ã³r een bijbehorende @end %s"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "'%.40s...' is te lang voor expansie; is niet geÃ«xpandeerd"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Ontbrekende } in @multitable-sjabloon"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "loze tekst '%s' na @multitable wordt genegeerd"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Te veel kolommen in 'multitable'-item (maximaal %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[onverwacht] kan kolom #%d niet selecteren in 'multitabel'"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "@tab buiten een 'multitabel' wordt genegeerd"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** 'Multikolom'-uitvoer van de laatste rij:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* kolom #%d: uitvoer = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "macro '%s' is al eerder gedefinieerd op regel %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Pagina %s wordt opgemaakt...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Pagina '%s' vereist een sectiemakend commando (bijvoorbeeld %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Er is geen paginanaam opgegeven voor commando '%c%s'"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Het anker '%s' en pagina '%s' verwijzen naar dezelfde bestandsnaam"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ "Dit @anchor-commando wordt genegeerd; verwijzingen ernaar zullen niet werken"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Geef dit anker een andere naam of gebruik de optie '--no-split'"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Onverwachte tekenreeks aan het eind van 'split-HTML'-bestand '%s'"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Ankers '%s' en '%s' verwijzen naar dezelfde bestandsnaam"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "@anchor-commandoÂ wordtÂ genegeerd;Â verwijzingÂ ernaarÂ werktÂ niet"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "%s verwijst naar niet-bestaande pagina '%s' (misschien een onjuiste "
+ "sectieindeling?)"
+ 
+ # In de volgende meldingen zijn Next, Prev en Up duidelijker indien onvertaald.
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "Het 'Next'-veld van pagina '%s' wijst nergens naar (misschien een onjuiste "
+ "sectieindeling?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Deze pagina (%s) heeft het foute 'Prev'-veld"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Het 'Prev'-veld van pagina '%s' wijst nergens naar"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Deze pagina (%s) heeft het foute 'Next'-veld"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "'%s' heeft geen 'Up'-veld (misschien een onjuiste sectieindeling?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "Pagina '%s' bevat geen menu-item voor '%s'\n"
+ "ondanks dat de eerste het 'Up'-doel van de laatste is"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "naar pagina '%s' wordt niet verwezen"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "Verwijderen van %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Kan bestand '%s' niet verwijderen: %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Appendix %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "**Interne fout**: search_sectioning('%s')!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "**Interne fout**: search_sectioning('%s')!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s is verouderd; gebruik in plaats daarvan %c%s"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Pagina met %ctop als sectie bestaat al"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Hier is de %ctop-pagina"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop wordt vÃ³Ã³r %cnode gebruikt; de standaard %s wordt nu gebruikt"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image-bestand '%s' is onleesbaar: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "@headitem als laatste item in @multitable produceert foutieve Docbook-"
+ "documenten"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "van"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "aan"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "Het eerste argument in een kruisverwijzing mag niet leeg zijn"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr "Lege bestandsnaam voor HTML-kruisverwijzing in '%s'"
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr "Einde van bestand werd bereikt tijdens zoeken naar '.' of ','"
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "'.' of ',' moet volgen op @%s, niet '%c'"
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Gebruik @pxref voor kruisverwijzingen tussen haakjes"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "Het eerste argument van @inforef mag niet leeg zijn"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "deze hulptekst tonen en stoppen"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "de uitvoer naar BESTAND sturen"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "versie-informatie tonen en stoppen"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Gebruik:  %s [OPTIE]... BESTAND...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Een gesorteerde index maken voor elk TeX-uitvoerbestand.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ "Voor een document 'foo.texi' wordt het BESTAND gewoonlijk opgegeven als 'foo."
+ "%c%c'.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Opties:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "fout bij het heropenen van %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: is geen Texinfo-inhoudsbestand"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Geen paginanummer in %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "item %s volgt op een item met een alternatieve naam"
Files texinfo-4.12/po/pl.gmo and texinfo-4.13/po/pl.gmo differ
diff -Nrc2 texinfo-4.12/po/pl.po texinfo-4.13/po/pl.po
*** texinfo-4.12/po/pl.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/pl.po	Thu Sep 18 11:38:32 2008
***************
*** 0 ****
--- 1,3229 ----
+ # Polish translation for texinfo.
+ # Copyright (C) 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the texinfo package.
+ # Jakub Bogusz <qboosh@pld-linux.org>, 2003-2008.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.12.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2008-08-16 22:12+0200\n"
+ "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
+ "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO-8859-2\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr "Nieznany b³±d systemowy"
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: opcja `%s' jest niejednoznaczna\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: opcja `--%s' nie mo¿e mieæ argumentów\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: opcja `%c%s' nie mo¿e mieæ argumentów\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: opcja `%s' musi mieæ argument\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: nieznana opcja `--%s'\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: nieznana opcja `%c%s'\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: niew³a¶ciwa opcja -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: b³êdna opcja -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: opcja musi mieæ argument -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: opcja `-W %s' jest niejednoznaczna\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: opcja `-W %s' nie mo¿e mieæ argumentów\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "pamiêæ wyczerpana"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Przesuniêcie do przodu o znak"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Przesuniêcie do ty³u o znak"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Przej¶cie na pocz±tek tej linii"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Przej¶cie na koniec tej linii"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Przesuniêcie do przodu o s³owo"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Przesuniêcie do ty³u o s³owo"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Usuniêcie znaku pod kursorem"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Usuniêcie znaku za kursorem"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Anulowanie lub rezygnacja z operacji"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Przyjêcie (lub wymuszenie dokoñczenia) tej linii"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Wstawienie nastêpnego znaku dos³ownie"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Wstawienie tego znaku"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Wstawienie znaku TAB"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Przestawienie znaków w miejscu"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Wstawienie zawarto¶ci ostatniego wyciêcia"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "Zakres wyciêcia jest pusty"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Wstawienie poprzedniego wyciêcia"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Wyciêcie na koniec linii"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Wyciêcie na pocz±tek linii"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Wyciêcie s³owa za kursorem"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Wyciêcie s³owa przed kursorem"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Brak uzupe³nieñ"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Nie dokoñczono"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Wypisanie mo¿liwych uzupe³nieñ"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Jedyne uzupe³nienie"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Jedno uzupe³nienie:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d uzupe³nieñ:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Wstawienie uzupe³nienia"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Tworzenie uzupe³nieñ..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Przewijanie okna uzupe³nieñ"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Przypisy nie mog± byæ wy¶wietlone"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "Pokazanie przypisów zwi±zanych z tym wêz³em w innym oknie"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- Przypisy -----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Szukanie ³añcucha w indeksie tego pliku"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Szukanie wpisów w indeksie..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Nie znaleziono indeksów."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Wpis indeksu: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Przej¶cie do nastêpnego pasuj±cego elementu z ostatniego `\\[index-search]'"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Brak poprzedniego ³añcucha szukanego w indeksie."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Brak wpisów w indeksie."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Nie ma %swpisów w indeksie zawieraj±cych `%s'."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "wiêcej "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "NIE MO¯NA TEGO ZOBACZYÆ"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "Znaleziono `%s' w %s. (`\\[next-index-match]' próbuje znale¼æ nastêpne.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Przeszukiwanie indeksów `%s'..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "¯aden z dostêpnych plików info nie zawiera `%s' w swoich indeksach."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr "Szukanie ³añcucha w znanych indeksach plików info i zbudowanie menu"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Indeks dla ³añcucha: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: Wêz³y, których indeksy zawieraj± `%s':\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Wiêcej informacji mo¿na uzyskaæ przez --help.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "Licencja GPLv3+: GNU GPL wersja 3 lub pó¼niejsza <http://www.gnu.org/"
+ "licenses/gpl.html>\n"
+ "To jest oprogramowanie wolnodostêpne: mo¿na je modyfikowaæ i "
+ "rozpowszechniaæ.\n"
+ "Nie ma ¯ADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n"
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "nie znaleziono wpisów w indeksie dla `%s'\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ "Sk³adnia: %s [OPCJA]... [ELEMENT-MENU...]\n"
+ "\n"
+ "Przegl±danie dokumentacji w formacie Info.\n"
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ "Opcje:\n"
+ "      --apropos=£AÑCUCH        szukanie £AÑCUCHA we wszystkich indeksach\n"
+ "                                 wszystkich podrêczników.\n"
+ "  -d, --directory=KATALOG      dodanie KATALOGU do INFOPATH.\n"
+ "      --dribble=PLIK           zapamiêtanie sekwencji klawiszy w PLIKU.\n"
+ "  -f, --file=PLIK              podanie pliku Info do odwiedzenia."
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ "  -h, --help                   wy¶wietlenie tego opisu i zakoñczenie "
+ "dzia³ania.\n"
+ "      --index-search=£AÑCUCH   przej¶cie do wêz³a za £AÑCUCHEM w indeksie.\n"
+ "  -n, --node=WÊZE£             podanie wêz³a w pierwszym odwiedzanym pliku.\n"
+ "  -o, --output=PLIK            zapis wybranych wêz³ów do PLIKU."
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ "  -R, --raw-escapes            wypisywanie sekwencji ANSI (domy¶lne).\n"
+ "      --no-raw-escapes         wypisywanie sekwencji jako dos³ownego "
+ "tekstu.\n"
+ "      --restore=PLIK           czytanie pocz±tkowej sekwencji klawiszy z "
+ "PLIKU.\n"
+ "  -O, --show-options, --usage  przej¶cie do wêz³a z opcjami linii poleceñ."
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr "  -b, --speech-friendly        tryb przyjazny dla syntezatorów mowy."
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ "      --subnodes               rekurencyjne wypisanie elementów menu.\n"
+ "      --vi-keys                u¿ywanie klawiszy w stylu programów vi i "
+ "less.\n"
+ "      --version                wy¶wietlenie informacji o wersji i "
+ "zakoñczenie.\n"
+ "  -w, --where, --location      wy¶wietlenie fizycznego po³o¿enia pliku Info."
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ "\n"
+ "Pierwszy argument nie bêd±cy opcj±, je¶li jest obecny, jest wpisem menu, od\n"
+ "którego program ma zacz±æ pracê; jest poszukiwany we wszystkich plikach "
+ "`dir'\n"
+ "le¿±cych w INFOPATH.\n"
+ "Je¶li nie jest obecny, info ³±czy wszystkie pliki `dir' i pokazuje wynik.\n"
+ "Wszystkie pozosta³e argumenty s± traktowane jako nazwy elementów menu "
+ "wzglêdem\n"
+ "pocz±tkowo odwiedzonego wêz³a."
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ "\n"
+ "Opis dzia³ania klawiszy jest dostêpny pod h w Info."
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ "\n"
+ "Przyk³ady:\n"
+ "  info                       pokazanie menu katalogów g³ównego poziomu\n"
+ "  info info                  pokazanie ogólnego podrêcznika dla czytelników "
+ "Info\n"
+ "  info info-stnd             pokazanie podrêcznika dla tego programu Info\n"
+ "  info emacs                 rozpoczêcie od wêz³a emacs z g³ównego katalogu\n"
+ "  info emacs buffers         rozpoczêcie od wêz³a buffers w podrêczniku "
+ "emacsa\n"
+ "  info --show-options emacs  rozpoczêcie od wêz³a z opisem linii poleceñ "
+ "emacsa\n"
+ "  info --subnodes -o out.txt emacs  zapisanie ca³ego podrêcznika do out.txt\n"
+ "  info -f ./foo.info         pokazanie pliku ./foo.info bez szukania w "
+ "katalogu"
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Raporty o b³êdach prosimy wysy³aæ poczt± elektroniczn± na adres\n"
+ "bug-texinfo@gnu.org, a ogólne pytania i dyskusjê na help-texinfo@gnu.org.\n"
+ "Strona domowa texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Nie mo¿na znale¼æ wêz³a `%s'."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Nie mo¿na znale¼æ wêz³a `(%s)%s'."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Nie mo¿na znale¼æ okna!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Kropka nie wystêpuje w wê¼le z tego okna!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Nie mo¿na usun±æ ostatniego okna."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Brak menu w tym wê¼le."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Brak przypisów w tym wê¼le."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Brak odsy³aczy w tym wê¼le."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Brak wska¼nika `%s' dla tego wêz³a."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Nieznane polecenie Info `%c'; `?' przywo³uje pomoc."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Typ terminala `%s' nie jest wystarczaj±cy do uruchomienia Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "To ju¿ jest ostatnia strona tego wêz³a."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "To ju¿ jest pierwsza strona tego wêz³a."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Tylko jedno okno."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Wynikowe okno by³oby zbyt ma³e."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Za ma³o miejsca na okno pomocy, proszê usun±æ okno."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr "Podstawowe klawisze poleceñ Info\n"
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Opuszczenie tego okna pomocy.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Opuszczenie ca³ego Info.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Uruchomienie tutoriala Info.\n"
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  Przej¶cie w górê o jedn± liniê.\n"
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  Przewiniêcie w dó³ o jedn± liniê.\n"
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Przewiniêcie do ty³u o stronê ekranu.\n"
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Przewiniêcie do przodu o stronê ekranu.\n"
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Przej¶cie na pocz±tek tego wêz³a.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Przej¶cie na koniec tego wêz³a.\n"
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10[move-to-next-xref]  Przej¶cie do nastêpnego odno¶nika "
+ "hipertekstowego.\n"
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Przej¶cie za odno¶nikiem hipertekstowym "
+ "pod kursorem.\n"
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  Przej¶cie do ostatniego wêz³a widocznego w tym oknie.\n"
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[global-prev-node]  Przej¶cie do poprzeniego wêz³a dokumentu.\n"
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[global-next-node]  Przej¶cie do nastêpnego wêz³a dokumentu.\n"
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Przej¶cie do poprzedniego wêz³a danego poziomu.\n"
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Przej¶cie do nastêpnego wêz³a danego poziomu.\n"
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Przej¶cie o jeden poziom w górê.\n"
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[top-node]  Przej¶cie do g³ównego wêz³a dokumentu.\n"
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[dir-node]  Przej¶cie do wêz³a g³ównego katalogu.\n"
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr ""
+ "1...9       Wybranie pierwszego ... dziewi±tego elementu z menu wêz³a.\n"
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  Wybranie ostatniego elementu z menu wêz³a.\n"
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "\\%-10[menu-item]  Wybranie elementu menu zadanego nazw±.\n"
+ 
+ #: info/infodoc.c:73
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  Przej¶cie za odsy³aczem zadanym nazw±.\n"
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "\\%-10[goto-node]  Przej¶cie do wêz³a zadanego nazw±.\n"
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "\\%-10[search]  Szukanie podanego ³añcucha w przód\n"
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[search-previous]  Szukanie poprzedniego wyst±pienia.\n"
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "\\%-10[search-next]  Szukanie nastêpnego wyst±pienia.\n"
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Szukanie podanego ³añcucha we wpisach indeksu tego "
+ "pliku Info\n"
+ "              i wybranie wêz³a wskazywanego przez pierwszy znaleziony wpis.\n"
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "\\%-10[abort-key]  Anulowanie bie¿±cej operacji.\n"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Podstawowe polecenia w oknach Info\n"
+ "**********************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Opuszczenie tej pomocy.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Opuszczenie ca³ego Info.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Uruchomienie tutoriala Info.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Przej¶cie do wêz³a `nastêpny' tego wêz³a.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Przej¶cie do wêz³a `poprzedni' tego wêz³a.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Przej¶cie do wêz³a `w górê' tego wêz³a.\n"
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "  %-10s  Wybranie elementu menu zadanego nazw±.\n"
+ "              Wybranie elementu menu powoduje wybranie innego wêz³a.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Przej¶cie za odsy³aczem. Odczytuje nazwê odsy³acza.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Przej¶cie do ostatniego wêz³a widocznego w tym oknie.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr ""
+ "  %-10s  Przej¶cie do nastêpnego odno¶nika hipertekstowego w tym wê¼le.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Przej¶cie za odno¶nikiem hipertekstowym pod kursorem.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr ""
+ "  %-10s  Przej¶cie do wêz³a `directory' (katalog). Równoznaczne `g (DIR)'.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Przej¶cie do wêz³a Szczytowy. Równoznaczne `g Top'.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Poruszanie siê w ramach wêz³a:\n"
+ "------------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Przewiniêcie do przodu o stronê.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Przewiniêcie do ty³u o stronê.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Przej¶cie na pocz±tek tego wêz³a.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Przej¶cie na koniec tego wêz³a.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Przewiniêcie do przodu o 1 liniê.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Przewiniêcie do ty³u o 1 liniê.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Inne polecenia:\n"
+ "---------------\n"
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Wybranie pierwszego ... dziewi±tego elementu z menu wêz³a.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Wybranie ostatniego elementu z menu wêz³a.\n"
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "  %-10s  Szukanie podanego ³añcucha we wpisach indeksu tego pliku Info\n"
+ "              i wybranie wêz³a wskazywanego przez pierwszy znaleziony wpis.\n"
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "  %-10s  Przej¶cie do wêz³a zadanego nazw±.\n"
+ "              Mo¿na do³±czyæ tak¿e nazwê pliku w postaci (PLIK)WÊZE£.\n"
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  Szukanie podanego ³añcucha w przód\n"
+ "              i wybranie wêz³a, w którym znaleziono nastêpne wyst±pienie.\n"
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  Szukanie podanego ³añcucha w ty³\n"
+ "              i wybranie wêz³a, w którym znaleziono nastêpne wyst±pienie.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Aktualna ¶cie¿ka poszukiwania to:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Polecenia dostêpne w oknach Info:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Polecenia dostêpne w obszarze echo:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Nastêpuj±ce polecenia mo¿na wywo³aæ tylko przez %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "Nastêpuj±cych poleceñ nie mo¿na w ogóle wywo³aæ:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Wy¶wietlenie pomocy"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Odwiedzenie wêz³a Info `(info)Help'"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Wy¶wietlenie dokumentacji dla KLAWISZA"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Opis klawisza: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s jest niezdefiniowany."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s jest niezdefiniowany."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s jest zdefiniowany na %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Pokazanie co nacisn±æ, aby wykonaæ zadane polecenie"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Polecenie do znalezienia: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "`%s' nie ma pod ¿adnym klawiszem"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s mo¿na wywo³aæ tylko przez %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s mo¿na wywo³aæ przez %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Nie ma funkcji o nazwie `%s'"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Wybór innych wêz³ów:\n"
+ "--------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "b³êdna liczba argumentów"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "nie mo¿na otworzyæ pliku wej¶ciowego `%s'"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "nie mo¿na utworzyæ pliku wyj¶ciowego `%s'"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "b³±d podczas zapisu do `%s'"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "b³±d podczas zamykania pliku wyj¶ciowego `%s'"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "sekwencja klawiszy zbyt d³uga"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "brak sekwencji klawiszy"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "znak NUL (\\000) nie jest dozwolony"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "znak NUL (^%c) nie jest dozwolony"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "brakuj±ca nazwa akcji"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "sekcja zbyt d³uga"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "nieznana akcja `%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "nazwa akcji zbyt d³uga"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "nadmiarowe znaki po akcji `%s'"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "brakuj±ca nazwa zmiennej"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "brakuj±cy `=' bezpo¶rednio po nazwie zmiennej"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "nazwa zmiennej zbyt d³uga"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "warto¶æ zbyt d³uga"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", linia %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Sk³adnia: %s [OPCJA]... [PLIK-WEJ¦CIOWY]\n"
+ "\n"
+ "Kompilowanie pliku ¼ród³owego infokey do pliku infokey. Odczytywany jest\n"
+ "PLIK-WEJ¦CIOWY (domy¶lnie $HOME/.infokey), a skompilowany plik klawiszy\n"
+ "zapisywany jest (domy¶lnie) do $HOME/.info.\n"
+ "\n"
+ "Opcje:\n"
+ "  --output PLIK        zapis do PLIKU zamiast do $HOME/.info\n"
+ "  --help               wy¶wietlenie tej pomocy i zakoñczenie.\n"
+ "  --version            wy¶wietlenie informacji o wersji i zakoñczenie.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Zignorowany b³êdny plik infokey `%s' - zbyt ma³y"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Zignorowany b³êdny plik infokey `%s' - zbyt du¿y"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "B³±d podczas czytania pliku infokey `%s' - skrócony odczyt"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "B³êdny plik infokey `%s' (z³e liczby magiczne) - mo¿na go uaktualniæ infokey"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ "Plik infokey `%s' jest przestarza³y - mo¿na go uaktualniæ poleceniem infokey"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "B³êdny plik infokey `%s' (z³a d³ugo¶æ sekcji) - mo¿na go uaktualniæ infokey"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "B³êdny plik infokey `%s' (z³y kod sekcji) - mo¿na go uaktualniæ przez infokey"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "B³êdne dane w pliku infokey - czê¶æ przypisañ klawiszy zignorowana"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr "B³êdne dane w pliku infokey - czê¶æ ustawieñ zmiennych zignorowana"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Odczytanie nazwy polecenia Info i opisanie go"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Opis polecenia: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Odczytanie nazwy polecenia w obszarze echo i wykonanie go"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Nie mo¿na tutaj wykonaæ polecenia `echo-area'."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "Niezdefiniowane polecenie: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Ustawienie wysoko¶ci wy¶wietlanego okna"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Ustawienie wysoko¶ci ekranu na (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Pliki ¼ród³owe przeszukane, aby ten plik zawiera³:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Nie mo¿na obrabiaæ pliku %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menu:\n"
+ "  (Plik)Wêze³                       Linie  Rozmiar Zawiera plik\n"
+ "  -----------                       -----  ------- ------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Oto jest menu ostatnio odwiedzonych wêz³ów.\n"
+ "Mo¿na wybraæ jeden z tego menu lub u¿yæ `\\[history-node]' w innym oknie.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr ""
+ "Utworzenie okna zawieraj±cego menu wszystkich aktualnie odwiedzanych wêz³ów"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Wybranie wêz³a, który by³ poprzednio odwiedzony w widocznym oknie"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Wybranie widocznego wêz³a: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Odsy³acz znikn±³! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr "b³±d wyra¿enia regularnego: %s"
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Witamy w Info w wersji %s. \\[get-help-window] pokazuje pomoc, \\[menu-item] "
+ "wybiera element menu."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Przej¶cie w dó³ do nastêpnej linii"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Przej¶cie w górê do poprzedniej linii"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Przej¶cie na koniec linii"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Przej¶cie na pocz±tek linii"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Nastêpny"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Nie ma wiêcej wêz³ów w tym dokumencie."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Nie ma wêz³a `Poprzedni' dla tego wêz³a."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr ""
+ "Nie ma wêz³ów `Poprzedni' ani `W górê' dla tego wêz³a w tym dokumencie."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Przej¶cie do przodu lub w dó³ struktury wêz³a"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Przej¶cie do ty³u lub w górê struktury wêz³a"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Przewijanie do przodu w tym oknie"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr ""
+ "Przewijanie do przodu w tym oknie i ustawienie domy¶lnego rozmiaru okna"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Przewijanie do przodu w tym oknie pozostaj±c wewn±trz wêz³a"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Przewijanie do przodu w tym oknie wewn. wêz³a i ust. domy¶lnego rozmiaru okna"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Przewijanie do ty³u w tym oknie"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "Przewijanie do ty³u w tym oknie i ustawienie domy¶lnego rozmiaru okna"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Przewijanie do ty³u w tym oknie pozostaj±c wewn±trz wêz³a"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Przewijanie do ty³u w tym oknie wewn. wêz³a i ust. domy¶lnego rozmiaru okna"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Przej¶cie na pocz±tek tego wêz³a"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Przej¶cie na koniec tego wêz³a"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Przewijanie w dó³ po linii"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Przewijanie w górê po linii"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Przewijanie w dó³ po po³owie rozmiaru ekranu"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Przewijanie w górê po po³owie rozmiaru ekranu"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Wybranie nastêpnego okna"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Wybranie poprzedniego okna"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Podzielenie aktualnego okna"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Usuniêcie aktualnego okna"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Nie mo¿na usun±æ sta³ego okna"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Usuniêcie wszystkich innych okien"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Przewijanie innego okna"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Przewijanie innego okna do ty³u"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Powiêkszenie (lub zmniejszenie) tego okna"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Podzielenie dostêpnego miejsca na ekranie miêdzy widoczne okna"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Zmiana stanu zawijania linii w aktualnym oknie"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr "Prze³±czenie u¿ywania wyra¿eñ regularnych przy wyszukiwaniu"
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr "U¿ywanie wyra¿eñ regularnych przy wyszukiwaniu."
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr "U¿ywanie dos³ownego tekstu przy wyszukiwaniu."
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Wybranie wêz³a Nastêpny"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Wybranie wêz³a Poprzedni"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Wybranie wêz³a W górê"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Wybranie ostatniego wêz³a w tym pliku"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "To okno nie ma dodatkowych wêz³ów"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Wybranie pierwszego wêz³a w tym pliku"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Wybranie ostatniego elementu w menu tego wêz³a"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Wybranie tego elementu menu"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Nie ma %d elementów w tym menu."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Element menu (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Element menu: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Przej¶cie za odno¶nikiem (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Przej¶cie za odno¶nikiem: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Odczytanie elementu menu i wybranie jego wêz³a"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "Odczytanie przypisu lub odsy³acza i wybranie jego wêz³a"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Przej¶cie na pocz±tek menu tego wêz³a"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Odwiedzenie jednocze¶nie jak najwiêkszej liczby elementów menu"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Odczytanie nazwy wêz³a i wybranie go"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Przej¶cie do wêz³a: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Brak menu w wê¼le `%s'."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Brak elementu menu `%s' w wê¼le `%s'."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Nie mo¿na znale¼æ wêz³a wskazywanego przez `%s' w `%s'."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Odczytanie listy menu pocz±wszy od katalogu i pod±¿anie za ni±"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Pod±¿anie za menu: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Szukanie wêz³a opisuj±cego wywo³anie programu"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Szukanie wêz³a Invocation dla [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Odczytanie odno¶nika do strony podrêcznika i wybranie go"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Pobranie strony podrêcznika: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Wybranie wêz³a `Szczytowy' w tym pliku"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Wybranie wêz³a `(dir)'"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Zabicie wêz³a (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Nie mo¿na zabiæ wêz³a `%s'"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Nie mo¿na zabiæ ostatniego wêz³a"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Wybranie ostatnio wybranego wêz³a"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Zabicie tego wêz³a"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Odczytanie nazwy pliku i wybranie go"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Szukanie pliku: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Nie mo¿na znale¼æ `%s'."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Nie mo¿na utworzyæ pliku wyj¶ciowego `%s'."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Gotowe."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Zapisywanie wêz³a %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "Przepuszczenie zawarto¶ci tego pliku przez INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Nie mo¿na otworzyæ potoku do `%s'."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Drukowanie wêz³a %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr "Kontynuacja szukania od koñca dokumentu."
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr "Kontynuacja szukania od pocz±tku dokumentu."
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Szukanie podpliku %s ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Odczytanie ³añcucha i poszukiwanie go uwzglêdniaj±c wielko¶æ liter"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Odczytanie ³añcucha i poszukiwanie go"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Odczytanie ³añcucha i poszukiwanie go w ty³"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s%s [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr "Szukanie wyr.reg."
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr " uwzgl. wielko¶æ liter"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr " wstecz"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Szukanie"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Wyszukiwanie nie powiod³o siê."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Powtórzenie ostatniego poszukiwania w tym samym kierunku"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Brak poprzedniego szukanego ³añcucha"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Powtórzenie ostatniego poszukiwania w odwrotnym kierunku"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Interaktywne poszukiwanie ³añcucha w trakcie wpisywania go"
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr "Interaktywne szukanie wyr.reg. wstecz: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "Interaktywne szukanie wstecz: "
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr "Interaktywne szukanie wyr.reg.: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "Interaktywne szukanie: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Bez powodzenia "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Przej¶cie do poprzedniego odsy³acza"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Przej¶cie do nastêpnego odsy³acza"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Wybranie odsy³acza lub elementu menu wystêpuj±cego w tej linii"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Anulowanie bie¿±cej operacji"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Wyj¶cie"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Przesuniêcie kursora do podanej linii w oknie"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Odrysowanie ekranu"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Wyj¶cie z Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Uruchomienie polecenia przypisanego do wariantu klawisza z ma³± liter±"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Nieznane polecenie (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" jest niepoprawne"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "`%s' jest niepoprawne"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Dodanie tej cyfry do aktualnego argumentu liczbowego"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Rozpoczêcie (lub pomno¿enie przez 4) aktualnego argumentu liczbowego"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Wewnêtrznie u¿ywane przez \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Zabrak³o pamiêci wirtualnej!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Je¶li \"On\", przypisy pojawiaj± siê i znikaj± automatycznie"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "Je¶li \"On\", tworzenie lub usuwanie okna zmienia rozmiar innych okien"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Je¶li \"On\", migniêcie ekranu zamiast d¼wiêkowego dzwonka"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Je¶li \"On\", b³êdy wywo³uj± sygna³ ostrzegawczy"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "Je¶li \"On\", Info sprz±ta pliki, które musia³y zostaæ rozpakowane"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "Je¶li \"On\", dopasowana czê¶æ szukanego ³añcucha jest pod¶wietlana"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Kontrola, co dzieje siê przy próbie przewijania na koñcu wêz³a"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr "To samo co scroll-behaviour"
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Liczba linii do przewiniêcia kiedy kursor wychodzi za okno"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr "Kontrola, czy scroll-behaviour dotyczy poleceñ przesuwaj±cych kursor"
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Je¶li \"On\", Info przyjmuje i wy¶wietla znaki ISO Latin"
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Co robiæ kiedy polecenie przewijania wydano na koñcu ostatniego wêz³a"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Wyja¶nienie u¿ycia zmiennej"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Opisanie zmiennej: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Ustawienie warto¶ci zmiennej Info"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Ustawienie zmiennej: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Ustawienie %s na warto¶æ (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Ustawienie %s na warto¶æ (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Znaczniki s± nieaktualne ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), linii ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d linii --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d linii --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Podplik: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: uwaga: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " dla %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\t`%s --help' poda pe³n± listê opcji.\n"
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Sk³adnia: %s [OPCJA]... [PLIK-INFO [PLIK-DIR]]\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ "Dodanie lub usuniêcie wpisów dla PLIKU-INFO w pliku katalogu PLIK-KATALOGU."
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ " --debug              informowanie o wykonywanych dzia³aniach.\n"
+ " --delete             usuniêcie istniej±cych wpisów dla PLIKU-INFO\n"
+ "                        z PLIKU-KATALOGU; nie wstawianie nowych wpisów.\n"
+ " --description=TEKST  opis wpisu to TEKST; u¿ywane z opcj± --name jest\n"
+ "                        odpowiednikiem opcji --entry.\n"
+ " --dir-file=NAZWA     podanie nazwy pliku z katalogiem Info;\n"
+ "                        odpowiednik u¿ycia argumentu PLIK-KATALOGU.\n"
+ " --dry-run            to samo co --test."
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ " --entry=TEKST        wstawienie TEKSTU jako wpisu katalogu Info.\n"
+ "                        TEKST powinien mieæ formê linii elementu menu Info\n"
+ "                        z zerem lub wiêcej linii zaczynaj±cymi siê od "
+ "spacji.\n"
+ "                      Je¶li podano wiêcej ni¿ jeden wpis, wszystkie s± "
+ "dodawane.\n"
+ "                      Je¶li nie podano ¿adnego wpisu, s± okre¶lane na "
+ "podstawie\n"
+ "                        informacji w samym pliku Info.\n"
+ "                      Przy usuwaniu TEKST okre¶la wpis do usuniêcia.\n"
+ "                      TEKST jest usuwany tylko w ostateczno¶ci, je¶li nie "
+ "ma\n"
+ "                        wpisu okre¶lonego przez plik Info ani nazwy pliku "
+ "Info."
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ " --help               wy¶wietlenie tego opisu i zakoñczenie.\n"
+ " --info-dir=KATALOG   to samo co --dir-file=KATALOG/dir.\n"
+ " --info-file=PLIK     podanie pliku Info do zainstalowania w katalogu;\n"
+ "                        odpowiednik u¿ycia argumentu PLIK-INFO.\n"
+ " --item=TEKST         to samo co --entry=TEKST.\n"
+ " --keep-old           nie zastêpowanie wpisów, nie usuwanie pustych sekcji.\n"
+ " --menuentry=TEKST    to samo co --name=TEKST.\n"
+ " --name=TEKST         nazwa wpisu to TEKST; u¿ywane wraz z --description "
+ "jest\n"
+ "                        odpowiednikiem opcji --entry.\n"
+ " --no-indent          nie formatowanie nowych wpisów w pliku DIR.\n"
+ " --quiet              pominiêcie ostrze¿eñ."
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ " --regex=WYRA¯ENIE    umieszczenie wpisów tego pliku we wszystkich sekcjach\n"
+ "                        pasuj±cych do WYRA¯ENIA regularnego (bez "
+ "uwzglêdnienia\n"
+ "                        wielko¶ci liter).\n"
+ " --remove             to samo co --delete.\n"
+ " --remove-exactly     usuniêcie tylko je¶li nazwa pliku info pasuje "
+ "dok³adnie;\n"
+ "                        przyrostki takie jak .info i .gz nie s± ignorowane.\n"
+ " --section=SEKCJA     umieszczenie wpisów dla tego pliku w danej SEKCJI\n"
+ "                        katalogu.\n"
+ "                      Je¶li podano wiêcej ni¿ jedn± sekcjê, wszystkie wpisy "
+ "s±\n"
+ "                        dodawane do ka¿dej z sekcji.\n"
+ "                      Je¶li nie podano ¿adnej sekcji, s± okre¶lane na "
+ "podstawie\n"
+ "                        informacji w samym pliku Info.\n"
+ " --section WYR SEK    odpowiednik --regex=WYR --section=SEK --add-once."
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ " --silent             pominiêcie ostrze¿eñ.\n"
+ " --test               pominiêcie uaktualniania PLIKU-KATALOGU.\n"
+ " --version            wy¶wietlenie informacji o wersji i zakoñczenie."
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "Raporty o b³êdach prosimy wysy³aæ poczt± elektroniczn± na adres\n"
+ "bug-texinfo@gnu.org, a ogólne pytania i dyskusjê na help-texinfo@gnu.org.\n"
+ "Strona domowa texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "To jest plik .../info/dir, zawieraj±cy najwy¿szy\n"
+ "wêze³ hierarchii Info, o nazwie (dir)Top.\n"
+ "Przy pierwszym uruchomieniu Info zaczyna siê od tego wêz³a.\n"
+ "\n"
+ "%s\tOto wierzcho³ek drzewa INFO\n"
+ "\n"
+ "  To (wêze³ Katalog) zawiera menu dla g³ównych tematów.\n"
+ "  Naci¶niêcie \"q\" koñczy przegl±danie, \"?\" wy¶wietla wszystkie "
+ "polecenia\n"
+ "  Info, \"d\" wraca tutaj, \"h\" pokazuje wprowadzenie dla nowicjuszy,\n"
+ "  \"mEmacs<Return>\" odwiedza podrêcznik Emacsa itd.\n"
+ "\n"
+ "  W Emacsie mo¿na klikn±æ drugim przyciskiem myszy na elemencie menu lub\n"
+ "  odsy³aczu, aby go wybraæ.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: nie mo¿na odczytaæ (%s) ani utworzyæ (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: pusty plik"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY bez odpowiadaj±cego END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY bez odpowiadaj±cego START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: plik katalogu ju¿ istnieje: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Nale¿y podaæ plik Info tylko raz.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr "Podano dodatkowe wyra¿enie regularne, zignorowano `%s'"
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr "B³±d w wyra¿eniu regularnym `%s': %s"
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "nadmiarowy argument linii poleceñ `%s'"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "Nie podano pliku wej¶ciowego; --help mo¿e podaæ wiêcej informacji."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "Nie podano pliku katalogu; --help mo¿e podaæ wiêcej informacji."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "brak wpisu do katalogu info w `%s'"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "nie znaleziono wpisów dla `%s'; nic nie usuniêto"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr "ferror dla standardowego wyj¶cia\n"
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr "b³±d fflush dla standardowego wyj¶cia\n"
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "zignorowano argumenty dla @%s"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "stycznia"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "lutego"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "marca"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "kwietnia"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "maja"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "czerwca"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "lipca"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "sierpnia"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "wrze¶nia"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "pa¼dziernika"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "listopada"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "grudnia"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "niechciany znak %c w @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "argument @sc zawiera same wielkie litery, wiêc brak efektu"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "oczekiwano `{', ale napotkano `%c'"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "koniec pliku wewn±trz bloku verb"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "oczekiwano `}', ale napotkano `%c'"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@string{Note...} tworzy nieprawdziwe odniesienia w Info; nale¿y "
+ "przeredagowaæ aby zapobiec temu"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s jest przestarza³e"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp wymaga argumentu bêd±cego liczb± dodatni±, a nie `%s'"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Z³y argument dla %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "zachowaj"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "brak"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Z³y argument dla @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "wstaw"
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Z³y argument dla @%s: %s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr "Oczekiwano @%s on lub off, a nie `%s'"
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr "Obs³ugiwane s± tylko @%s 10 lub 11, a nie `%s'"
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Brakuje `}' w argumencie @def"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Trzeba byæ w ¶rodowisku `@%s', aby u¿yæ `@%s'"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "Pominiêto `%s' przed nazw± pliku wyj¶ciowego"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "Pominiêto `%s' przy zapisie na standardowe wyj¶cie"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Bufor wyj¶ciowy niepusty."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr "¯±dany rodzaj ¶rodowiska float `%s' nie by³ wcze¶niej u¿yty"
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Patrz "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`%c%s' wymaga argumentu `{...}', a nie tylko `%s'"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Nie zamkniêty nawias dla przypisu `%s'"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Zdefiniowano przypis bez wêz³a nadrzêdnego"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Przypisy wewn±trz przypisów nie s± dozwolone"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Przypisy"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: nie mo¿na otworzyæ pliku css: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: plik css zakoñczy³ siê wewn±trz komentarza"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[nieoczekiwane] brak znacznika html do zdjêcia"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[nieoczekiwane] b³êdna nazwa wêz³a: `%s'"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Nieznany indeks `%s'"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info nie mo¿e obs³u¿yæ `:' we wpisie indeksu `%s'"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Indeks `%s' ju¿ istnieje"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Nieznany indeks `%s' i/lub `%s' w @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(linia )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(linia %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Nieznany indeks `%s' w @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Wpis dla indeksu `%s' poza jakimkolwiek wêz³em"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(poza jakimkolwiek wêz³em)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@item nie jest dozwolone w argumencie @itemize"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Broken-Type w insertion_type_pname"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Przepe³nienie stosu numerowania"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "przepe³nienie, restart od %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s wymaga argumentu: formatowania dla %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "¦rodowiska %cfloat nie mog± byæ zagnie¿d¿one"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "`@end' oczekiwa³o `%s', ale napotkano `%s'"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Brak pasuj±cego `%cend %s'"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s wymaga litery lub cyfry"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "koniec pliku wewn±trz bloku dos³ownego"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s nic nie znaczy poza ¶rodowiskiem `@float'"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "napotkano @menu przed pierwszym @node, tworzenie wêz³a `Top'"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "mo¿e wêze³ @top powinien byæ otoczony @ifnottex, a nie @ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "napotkano @detailmenu przed pierwszym wêz³em, tworzenie wêz³a `Top'"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr "@%s nic nie znaczy poza ¶rodowiskami `@titlepage' i `@quotation'"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s nic nie znaczy poza ¶rodowiskiem `@titlepage'"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Niedopasowane `%c%s'"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "`%c%s' wymaga czego¶ po sobie"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Z³y argument `%s' dla `@%s', u¿ycie `%s'"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s nic nie znaczy wewn±trz bloku `@%s'"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx nic nie znaczy wewn±trz bloku `%s'"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "znaleziono %c%s na zewn±trz bloku wstawki"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr "nieznane domy¶lne terytorium dla jêzyka `%s'"
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s nie jest poprawnym kodem jêzyka zgodnym z ISO 639"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "nierozpoznana nazwa kodowania `%s'"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "niestety kodowanie `%s' nie jest obs³ugiwane"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "b³êdnie zakodowany znak `%s'"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s oczekuje `i' lub `j' jako argumentu, a nie `%c'"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s oczekuje pojedynczego znaku `i' lub `j' jako argumentu"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "makro `%s' ju¿ zosta³o zdefiniowane"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "oto poprzednia definicja `%s'"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "po \\ w rozwiniêciu makra wystêpuje `%s' zamiast nazwy parametru"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Makro `%s' wywo³ane w linii %d ze zbyt du¿± liczb± argumentów"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "nie znaleziono makra %cend"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr "@allow-recursion jest przestarza³e; proszê u¿ywaæ zamiast tego @rmacro"
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr "@quote-arg jest przestarza³e; argumenty s± domy¶lnie cytowane"
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "niedopasowane @end %s do @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "Zbyt du¿o b³êdów! Poddajê siê.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: uwaga: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "¬le umieszczone %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Polecenie `%s --help' poda wiêcej informacji.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Sk³adnia: %s [OPCJA]... PLIK-TEXINFO...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "T³umaczenie ¼ród³owej dokumentacji Texinfo do ró¿nych innych formatów,\n"
+ "domy¶lnie plików Info nadaj±cych siê do czytania pod Emacsem lub "
+ "samodzielnym\n"
+ "GNU Info.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Opcje ogólne:\n"
+ "      --error-limit=ILE       zakoñczenie po ILU b³êdach (domy¶lnie %d).\n"
+ "      --document-language=£AÑC lokalizacja u¿ywana przy t³umaczeniu s³ów\n"
+ "                                kluczowych Texinfo dla dokumentu "
+ "wyj¶ciowego\n"
+ "                                (domy¶lnie C).\n"
+ "      --force                 zachowanie wyj¶cia nawet w przypadku b³êdów.\n"
+ "      --help                  wy¶wietlenie tego opisu i zakoñczenie.\n"
+ "      --no-validate           pominiêcie kontroli odsy³aczy miêdzy wêz³ami.\n"
+ "      --no-warn               pominiêcie ostrze¿eñ (ale nie b³êdów).\n"
+ "  -v, --verbose               wyja¶nianie co siê dzieje.\n"
+ "      --version               wy¶wietlenie informacji o wersji i "
+ "zakoñczenie.\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Wybór formatu wyj¶ciowego (domy¶lnym jest info):\n"
+ "      --docbook               wyprodukowanie DocBook XML zamiast Info.\n"
+ "      --html                  wyprodukowanie HTML zamiast Info.\n"
+ "      --xml                   wyprodukowanie Texinfo XML zamiast Info.\n"
+ "      --plaintext             wyprodukowanie czystego tekstu zamiast Info.\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Ogólne opcje dotycz±ce wyj¶cia:\n"
+ "  -E, --macro-expand=PLIK     zapis ¼róde³ z rozwiniêtymi makrami do PLIKU.\n"
+ "      --no-headers            pominiêcie separatorów wêz³ów, linii Node "
+ "oraz\n"
+ "                                menu z wyj¶cia Info (zapisanie czystego "
+ "tekstu)\n"
+ "                                lub z HTML (zapisanie krótszego pliku);\n"
+ "                                tak¿e pisanie domy¶lnie na standardowe "
+ "wyj¶cie.\n"
+ "      --no-split              pominiêcie dzielenia Info lub HTML, "
+ "generowanie\n"
+ "                                tylko jednego pliku wyj¶ciowego.\n"
+ "      --number-sections       zapisywanie numerów rozdzia³ów i sekcji.\n"
+ "  -o, --output=PLIK           zapisanie do PLIKU (lub katalogu w przypadku\n"
+ "                                dzielonego HTML),\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Opcje dla Info i czystego tekstu:\n"
+ "      --disable-encoding      bez zapisu znaków z akcentami i specjalnych "
+ "do\n"
+ "                                pliku Info w zale¿no¶ci od "
+ "@documentencoding.\n"
+ "      --fill-column=ILE       ³amanie linii Info po ILU znakach (domy¶lnie %"
+ "d).\n"
+ "      --footnote-style=STYL   zapis stopek w Info zgodnie ze STYLEM:\n"
+ "                                `separate' - umieszczenie ich we w³asnym "
+ "wê¼le;\n"
+ "                                `end' - umieszczenie na koñcu wêz³a, w "
+ "którym\n"
+ "                                  zosta³y zdefiniowane (domy¶lne).\n"
+ "      --paragraph-indent=ILE  wciêcia akapitów Info o ILE spacji (domy¶lnie %"
+ "d).\n"
+ "                                Je¶li ILE to `none' lub `brak', bez wciêæ;\n"
+ "                                je¶li ILE to `asis' lub `zachowaj', "
+ "zachowanie\n"
+ "                                istniej±cych wciêæ.\n"
+ "      --split-size=ROZMIAR    podzia³ Info na pliki o ROZMIARZE (domy¶lnie %"
+ "d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "Opcje dla HTML:\n"
+ "      --css-include=PLIK      do³±czenie PLIKU w wyj¶ciu HTML <style>;\n"
+ "                                je¶li PLIK to -, czytane jest standardowe\n"
+ "                                wej¶cie\n"
+ "      --css-ref=URL           wygenerowanie odniesienia do pliku CSS.\n"
+ "      --internal-links=PLIK   zapisanie listy wewnêtrznych odno¶ników do "
+ "PLIKU.\n"
+ "      --transliterate-file-names\n"
+ "                              tworzenie nazw plików w transliteracji ASCII.\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "Opcje dla XML i Docbooka:\n"
+ "      --output-indent=ILE     wciêcia elementów XML o ILE spacji (domy¶lnie\n"
+ "                                %d). Je¶li ILE jest 0, pomijalne spacje s±\n"
+ "                                usuwane.\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Opcje dla pliku wej¶ciowego:\n"
+ "      --commands-in-node-names  dopuszczenie poleceñ @ w nazwach wêz³ów.\n"
+ "  -D ZMIENNA                    zdefiniowanie ZMIENNEJ, tak jak przez @set.\n"
+ "  -I KATALOG                    do³±czenie KATALOGU na pocz±tku ¶cie¿ki\n"
+ "                                  poszukiwañ dla @include.\n"
+ "  -P KATALOG                    do³±czenie KATALOGU na koñcu ¶cie¿ki\n"
+ "                                  poszukiwañ dla @include.\n"
+ "  -U ZMIENNA                    usuniêcie definicji ZMIENNEJ, tak jak "
+ "@clear.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Warunkowe przetwarzanie wej¶cia:\n"
+ "  --ifdocbook       przetwarzanie @ifdocbook i @docbook nawet je¶li nie "
+ "jest\n"
+ "                      generowany Docbook.\n"
+ "  --ifhtml          przetwarzanie @ifhtml i @html nawet je¶li nie jest\n"
+ "                      generowany HTML.\n"
+ "  --ifinfo          przetwarzanie @ifinfo nawet je¶li nie jest generowane "
+ "Info.\n"
+ "  --ifplaintext     przetwarzanie @ifplaintext nawet je¶li nie jest "
+ "generowany\n"
+ "                      czysty tekst.\n"
+ "  --iftex           przetwarzanie @iftex i @tex; wymusza --no-split.\n"
+ "  --ifxml           przetwarzanie @ifxml i @xml.\n"
+ "  --no-ifdocbook    nie przetwarzanie tekstu @ifdocbook i @docbook.\n"
+ "  --no-ifhtml       nie przetwarzanie tekstu @ifhtml i @html.\n"
+ "  --no-ifinfo       nie przetwarzanie tekstu @ifinfo.\n"
+ "  --no-ifplaintext  nie przetwarzanie tekstu @ifplaintext.\n"
+ "  --no-iftex        nie przetwarzanie tekstu @iftex i @tex.\n"
+ "  --no-ifxml        nie przetwarzanie tekstu @ifxml i @xml.\n"
+ "\n"
+ "  Ponadto opcje --no-ifFORMAT powoduj± przetwarzanie tekstu @ifnotFORMAT.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  Domy¶lne opcje dla warunków @if... zale¿± od formatu wyj¶ciowego:\n"
+ "  je¶li generowany jest HTML, --ifhtml jest w³±czone, a reszta wy³±czona;\n"
+ "  je¶li generowane jest Info, --ifinfo jest w³±czone, a reszta wy³±czona;\n"
+ "  je¶li generowany jest tekst, --ifplaintext jest w³±czony, a inne "
+ "wy³±czone;\n"
+ "  je¶li generowany jest XML, --ifxml jest w³±czone, a reszta wy³±czona.\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Przyk³ady:\n"
+ "  makeinfo foo.texi                       zapisanie Info do @setfilename z "
+ "foo\n"
+ "  makeinfo --html foo.texi                zapisanie HTML do @setfilename\n"
+ "  makeinfo --xml foo.texi                 zapisanie Texinfo XML do "
+ "@setfilename\n"
+ "  makeinfo --docbook foo.texi             zapisanie DocBook XML do "
+ "@setfilename\n"
+ "  makeinfo --no-headers foo.texi          zapisanie czystego tekstu na\n"
+ "                                            standardowe wyj¶cie\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi   zapisanie HTML bez linii wêz³ów i "
+ "menu\n"
+ "  makeinfo --number-sections foo.texi     zapisanie Info z numerowanymi "
+ "sekcjami\n"
+ "  makeinfo --no-split foo.texi            zapisanie jednego wielkiego pliku "
+ "Info\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: Zignorowano nierozpoznan± warto¶æ TEXINFO_OUTPUT_FORMAT `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: argument %s musi byæ liczb±, a nie `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: nie mo¿na otworzyæ wyj¶cia `%s' do zapisu rozwiniêæ makr"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: zignorowano drugie wyj¶cie `%s' do zapisu rozwiniêæ makr.\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: nie mo¿na otworzyæ wyj¶cia wewnêtrznych odno¶ników `%s'"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: zignorowano drugie wyj¶cie wewnêtrznych odno¶ników `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: argument --paragraph-indent musi byæ liczb±/`none'/`asis', a nie `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: argumentem --footnote-style musi byæ `separate' lub `end', a nie `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: brakuj±cy argument plikowy.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Niew³a¶ciwie u¿yte wieloliniowe polecenie %c%s"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Oczekiwano `%s'"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Nie mo¿na utworzyæ katalogu `%s': %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Nie znaleziono `%s' w `%s'"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: nie zapisywanie rozwiniêæ makr na stdout, bo tam zapisywane jest Info.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Tworzenie pliku %s `%s' z `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Usuwanie pliku wyj¶cia makr `%s' z powodu b³êdów; --force pozwoli go "
+ "zachowaæ.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Usuwanie pliku wyj¶ciowego `%s' z powodu b³êdów; --force pozwoli go "
+ "zachowaæ.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Usuwanie pliku wyj¶ciowego wewnêtrznych odno¶ników `%s' z powodu b³êdów; "
+ "--force pozwoli go zachowaæ.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Nieznane polecenie `%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr ""
+ "Nale¿y u¿yæ nawiasów klamrowych, aby podaæ polecenie jako argument dla @%s"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s oczekiwa³o nawiasów klamrowych"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Niedopasowany }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "BEZ_NAZWY!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "w %c%s brakuje klamry zamykaj±cej"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "Plik @image `%s' (dla HTML) nieczytelny: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "Nie ma pliku `%s'"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "Plik @image `%s' (dla tekstu) nieczytelny: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "Po @image brakuje argumentu plikowego"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "niezdefiniowana flaga: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Brak warto¶ci dla `%s'}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s wymaga nazwy"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Osi±gniêto koniec pliku przed znalezieniem @end %s"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "`%.40s...' jest zbyt d³ugie do rozwiniêcia; nie rozwiniêto"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Brakuj±cy } we wzorcu @multitable"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "zignorowano zab³±kany tekst `%s' po @multitable"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Zbyt du¿o kolumn w elemencie multitable (maksymalnie %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[nieoczekiwane] nie mo¿na wybraæ kolumny #%d w multitable"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "zignorowano @tab poza multitable"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Wielokolumnowe wyj¶cie z ostatniego wiersza:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* kolumna #%d: wyj¶cie = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Wêze³ `%s' poprzednio zdefiniowany w linii %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Formatowanie wêz³a %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Wêze³ `%s' wymaga polecenia wybieraj±cego (np. %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Nie podano nazwy wêz³a dla polecenia `%c%s'"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Znacznik `%s' i wêze³ `%s' odwzorowuj± siê na t± sam± nazwê pliku"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "Zignorowano to polecenie @anchor; wskazania na nie nie bêd± dzia³a³y"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Nale¿y zmieniæ ten znacznik lub u¿yæ opcji `--no-split'"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Nieoczekiwany ³añcuch na koñcu pliku dzielonego HTML `%s'"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Znaczniki `%s' i `%s' odwzorowuj± siê na t± sam± nazwê pliku"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "zignorowano polecenie @anchor; wskazania na nie nie bêd± dzia³a³y"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "%s wskazuje na nieistniej±cy wêze³ `%s' (mo¿e b³êdny podzia³ na sekcje?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "Pole Nastêpny wêz³a `%s' nie wskazywane (mo¿e b³êdny podzia³ na sekcje?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Ten wêze³ (%s) ma z³e pole Poprzedni"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Pole Poprzedni wêz³a `%s' nie wskazywane"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Ten wêze³ (%s) ma z³e pole Nastêpny"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "`%s' nie ma pola W górê (mo¿e b³êdny podzia³ na sekcje?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "Wêze³ `%s' nie ma elementu menu dla `%s' pomimo bycia jego celem W górê"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "nie wskazywany wêze³ `%s'"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "Usuwanie %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Nie mo¿na usun±æ pliku `%s': %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Za³±cznik %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "B³±d wewnêtrzny (search_sectioning) `%s'!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "B³±d wewnêtrzny (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s jest przestarza³e; nale¿y u¿yæ %c%s"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Wêze³ z %ctop jako sekcj± ju¿ istnieje"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Tutaj jest wêze³ %ctop"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop u¿yty przed %cnode, u¿ycie domy¶lnego %s"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "Plik @image `%s' nieczytelny: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "@headitem jako ostatni element @multitable tworzy niepoprawne dokumenty "
+ "Docbook"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "typu"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "na"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "Pierwszy argument odsy³acza nie mo¿e byæ pusty"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr "Pusta nazwa pliku dla odsy³acza HTML w `%s'"
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr "Osi±gniêto koniec pliku podczas szukania `.' lub `,'"
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "Po @%s musi wyst±piæ `.' lub `,', a nie `%c'"
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "dla odsy³aczy w nawiasach nale¿y u¿yæ @pxref"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "Pierwszy argument @inforef nie mo¿e byæ pusty"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "wy¶wietlenie tego opisu i zakoñczenie"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "zapisanie wyj¶cia do PLIKU"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "wy¶wietlenie informacji o wersji i zakoñczenie"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Sk³adnia: %s [OPCJA]... PLIK...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr ""
+ "Generowanie posortowanego indeksu dla ka¿dego PLIKU wyj¶ciowego w TeXu.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ "Zazwyczaj PLIK... podaje siê jako `foo.%c%c' dla dokumentu `foo.texi'.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Opcje:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "b³±d podczas ponownego otwierania %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: nie jest plikiem indeksu texinfo"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Brak numeru strony w %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "wpis %s wyst±pi³ po wpisie z dodatkow± nazw±"
diff -Nrc2 texinfo-4.12/po/quot.sed texinfo-4.13/po/quot.sed
*** texinfo-4.12/po/quot.sed	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/quot.sed	Tue Sep  3 08:51:40 2002
***************
*** 0 ****
--- 1,6 ----
+ s/"\([^"]*\)"/â€œ\1â€�/g
+ s/`\([^`']*\)'/â€˜\1â€™/g
+ s/ '\([^`']*\)' / â€˜\1â€™ /g
+ s/ '\([^`']*\)'$/ â€˜\1â€™/g
+ s/^'\([^`']*\)' /â€˜\1â€™ /g
+ s/â€œâ€�/""/g
diff -Nrc2 texinfo-4.12/po/remove-potcdate.sin texinfo-4.13/po/remove-potcdate.sin
*** texinfo-4.12/po/remove-potcdate.sin	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/remove-potcdate.sin	Tue Sep  3 08:51:40 2002
***************
*** 0 ****
--- 1,19 ----
+ # Sed script that remove the POT-Creation-Date line in the header entry
+ # from a POT file.
+ #
+ # The distinction between the first and the following occurrences of the
+ # pattern is achieved by looking at the hold space.
+ /^"POT-Creation-Date: .*"$/{
+ x
+ # Test if the hold space is empty.
+ s/P/P/
+ ta
+ # Yes it was empty. First occurrence. Remove the line.
+ g
+ d
+ bb
+ :a
+ # The hold space was nonempty. Following occurrences. Do nothing.
+ x
+ :b
+ }
Files texinfo-4.12/po/ro.gmo and texinfo-4.13/po/ro.gmo differ
diff -Nrc2 texinfo-4.12/po/ro.po texinfo-4.13/po/ro.po
*** texinfo-4.12/po/ro.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/ro.po	Thu Sep 18 11:38:32 2008
***************
*** 0 ****
--- 1,3546 ----
+ # Mesajele în limba românã pentru texinfo.
+ # Copyright (C) 2003 Free Software Foundation, Inc.
+ # Acest fiºier este distribuit sub aceeaºi licenþã ca ºi pachetul texinfo.
+ # Laurentiu Buzdugan <lbuz@rolix.org>, 2003, 2004, 2005.
+ #
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.7.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2005-05-03 12:00+05\n"
+ "Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n"
+ "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO-8859-2\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: opþiunea `%s' este ambiguã\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: opþiunea `--%s' nu permite un argument\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: opþiunea `%c%s' nu permite un argument\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: opþiunea `%s' necesitã un argument\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: opþiune nerecunoscutã `--%s'\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: opþiune nerecunoscutã `%c%s'\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: opþiune ilegalã -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: opþiune invalidã -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: opþiunea necesitã un argument -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: opþiunea `-W %s' este ambiguã\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: opþiunea `-W %s' nu permite un argument\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr ""
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Mergi înainte un caracter"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Mergi înapoi un caracter"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Mergi la începutul acestei linii"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Mergi la sfârºitul acestei linii"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Mergi înainte un cuvânt"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Mergi înapoi un cuvânt"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "ªterge caracterul de sub cursor"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "ªterge caracterul din stânga cursorului"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Renunþã sau terminã operaþiunea"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Acceptã (sau forþeazã completarea) acestei linii"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Insereazã urmãtorul caracter identic (verbatim)"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Insereazã acest caracter"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Insereazã un caracter TAB"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Transpune caracterele la acest punct"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Extrage înapoi conþinutul ultimei ºtergeri (kill)"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "Inelul de ºtergeri (kill) e gol"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Extrage înapoi o ºtergere (kill) anterioarã"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "ªterge (kill) pânã la sfârºitul liniei"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "ªterge (kill) pânã la începutul liniei"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "ªterge (kill) cuvântul din dreapta cursorului"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "ªterge (kill) cuvãntul din stânga cursorului"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Nici o completare"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Nu e completat"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Enumerã completãrile posibile"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "O singurã completare"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "O completare:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d completãri:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Insereazã completarea"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Construim completãrile..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Scroll fereastra de completãri"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Notele de subsol nu pot fi afiºate"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "Aratã notele de subsol asociate cu acest nod în aceastã fereastrã"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "------- Note de subsol  -------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Cautã un ºir în indexul acestui fiºier"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Cãutãm intrãri în index..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Nici am gãsit nici un index."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Intrare în index: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Mergi la urmãtorul articol de index ce se potriveºte ultimei comenzi `"
+ "\\[index-search]'"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Nu existã nici un ºir cãutat anterior."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Nici o intrare în index."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Nici o intrare în %sindex conþinând `%s'."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "mai mult"
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "NU POT VEDEA ACEASTA"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "Am gãsit `%s' în %s. (`\\[next-index-match]' încearcã sã gãseascã urmãtorul.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Scanãm indexurile pentru `%s'..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Nici un fiºier info nu are `%s' în indexurile lor."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Cautã în toþi indexurile fiºierului pentru un ºir ºi contruieºte un meniu"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Index apropos: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Meniu: Noduri a cãror indexurile conþin `%s':\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Încercaþi --help pentru informaþii suplimentare.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "nici o intrare de index a fost gãsitã pentru `%s'\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ "  -b, --speech-friendly        fii prietenos cu sintetizatoarele de "
+ "vorbire.\n"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Trimiteþi emailuri raportând bug-uri la bug-texinfo@gnu.org,\n"
+ "întrebãri generale ºi discuþii la help-texinfo@gnu.org.\n"
+ "Texinfo homepage: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Nu pot gãsi nodul `%s'."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Nu pot gãsi nodul `(%s)%s'."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Nu pot gãsi o fereastrã!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Punctul nu apare în interiorul nodului acestei ferestre!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Nu pot ºterge ultima fereastrã."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Nici un meniu în acest nod"
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Nici o notã de subsol în acest nod."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Nici o referinþã la acelaºi pasaj în acest nod."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Nici un pointer `%s' pentru acest nod."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Comandã Info necunoscutã `%c';încercaþi `?' pentru ajutor."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Terminalul de tip `%s' nu e destul de deºtept sã ruleze Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Sunteþi deja la ultima paginã a acestui nod."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Sunteþi deja la prima paginã a acestui nod."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "O singurã fereastrã."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Fereastra rezultantã ar fi prea micã."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Nu e destul spaþiu pentru o fereastrã de ajutor, ºtergeþi o fereastrã."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Terminã acest ajutor.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Terminã Info complet.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Invocaþi tutorialul Info.\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  Scroll înapoi 1 linie.\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  Scroll înainte 1 linie.\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Scroll înapoi o paginã.\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Scroll înainte o paginã.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Mergi la începutul acestui nod.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Mergi la sfârºitul acestui nod.\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10[move-to-next-xref]  Sari la urmãtoarea legãturã hypertext din acest "
+ "nod.\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Urmeazã legãtura hypertext de sub "
+ "cursor.\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  Mergi la ultimul nod vãzut în aceastã fereastrã.\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[prev-node]  Mergi la nodul \"precedent\" al acestui nod.\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[next-node]  Mergi la \"urmãtorul\" nod al acestui nod.\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Mergi la nodul \"precedent\" al acestui nod.\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Mergi la \"urmãtorul\" nod al acestui nod.\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Mergi în \"sus\" de la acest nod.\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[end-of-node]  Mergi la sfârºitul acestui nod.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[end-of-node]  Mergi la sfârºitul acestui nod.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  Alege primul ... al nouãlea articol în meniul nodului.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  Alege ultimul articol în meniul nodului.\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  Alege articolul de meniu specificat prin nume.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ "\\%-10[xref-item]  Urmeazã o referinþã încruciºatã. Citeºte numele "
+ "referinþei.\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  Mergi la nodul specificat prin nume.\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  Cautã înainte un ºir specificat,\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[prev-node]  Mergi la nodul \"precedent\" al acestui nod.\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ "  %-10s  Cautã ºirul specificat în intrãrile indexului acestui fiºier Info\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Cautã ºirul specificat în intrãrile indexului acestui\n"
+ "            fiºier Info ºi selecteazã nodul referit de prima intrare "
+ "gãsitã.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "Renunþã la operaþia curentã"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Comenzi de bazã în Fereastra Info\n"
+ "*********************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Terminã acest ajutor.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Terminã Info complet.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Invocã tuturialul Info.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Mergi la nodul `urmãtor' acestui nod.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Mergi la nodul `precedent' acestui nod.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Mergi în `sus' de la acest nod.\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "\\%-10[menu-item]  Alege articol meniu specificat prin nume.\n"
+ "              Alegând un articol de meniu face ca alt nod sã fie selectat.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr ""
+ "  %-10s  Urmeazã referinþã la acelaºi pasaj. Citeºte numele referinþei.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Mergi la ultimul nod vãzut în aceastã fereastrã.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Sari la urmãtoarea legãturã hypertext din acest nod.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Sari la legãtura hypertext de sub cursor.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Mergi la nodul `director'.  Echivalent cu `g (DIR)'.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Mergi la nodul Vârf.  Echivalent cu `g Top'.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Mergi în interiorul nodului:\n"
+ "----------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Scroll înainte o paginã.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Scroll înapoi o paginã.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Mergi la începutul acestui nod.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Mergi la sfârºitul acestui nod.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Scroll înainte 1 linie.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Scroll înapoi 1 linie.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Alte comenzi:\n"
+ "-------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Alege primul ... al nouãlea articol în meniul nodului.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Alege ultimul articol în meniul nodului.\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Cautã ºirul specificat în intrãrile indexului acestui\n"
+ "            fiºier Info ºi selecteazã nodul referit de prima intrare "
+ "gãsitã.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10[goto-node]  Mergi la nodul specificat prin nume.\n"
+ "             Puteþi include ºi un nume de fiºier, ca în (NUMEFIªIER)"
+ "NUMENOD.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Cautã înainte un ºir specificat\n"
+ "              ºi selecteazã nodul în care acesta este gãsit.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  Cautã înainte un ºir specificat\n"
+ "              ºi selecteazã nodul în care acesta este gãsit.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Calea curentã de cãutare este:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Comenzile disponibile în fereastra Info:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Comenzile disponibile în zona de ecou:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Urmãtoarele comenzi pot fi invocate via %s\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "Urmãtoarele comenzi nu pot fi deloc invocate:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Afiºeazã mesaj de ajutor"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Viziteazã nodul Info `(info)Ajutor'"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Tipãreºte documentaþie pentru tastã (KEY)"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Descrie tastã (key): %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s nu este definit(ã)."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s nu este definit(ã)."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s este definit(ã) ca %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Aratã ce trebuie tasta pentru a executa o anumitã comandã"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Unde este comanda: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "`%s' nu este pe nici o tastã"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s poate fi invocat doar via %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s poate fi invocat via %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Nu existã nii o funcþie numitã `%s'"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Selectaþi alte noduri:\n"
+ "----------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "numãr incorect de argumente"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "nu pot deschide fiºierul de intrare `%s'"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "nu pot crea fiºierul de ieºire `%s'"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "eroare la scrierea în `%s'"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "eroare la închiderea fiºierului de ieºire `%s'"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "secvenþã de taste prea lungã"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "secvenþã de taste inexistentã"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "caracterul NUL (\\000) nu este permis"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "caracterul NUL (^%c) nu este permis"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "nume de acþiune inexistent"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "secþiune prea lungã"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "acþiune necunoscutã `%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "nume de acþiune prea lung"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "extra caractere dupã acþiunea `%s'"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "nume de variabilã inexistent"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "caracterul `=' lipseºte imediat dupã numele de variabilã"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "nume de variabilã prea lung"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "valoare prea lungã"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", linia %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Folosire: %s [OPÞIUNE]... [FIªIER-INTRAre]\n"
+ "\n"
+ "Compileazã fiºierul sursã infokey în fiºier infokey. Citeºte FIªIER-INTRARE\n"
+ "(implicit $HOME/.infokey) ºi scrie fiºierul cod compilat în (implicit)\n"
+ "$HOME/.info.\n"
+ "\n"
+ "Opþiuni:\n"
+ "  --output FIªIER\tieºire în FIªIER în loc de $HOME/.info\n"
+ "  --help\t\tafiºeazã acest ajutor ºi terminã.\n"
+ "  --version\t\tafiºeazã informaþii versiune ºi terminã.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Ignorãm fiºier infokey incorect `%s' - prea mic"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Ignorãm fiºier infokey incorect `%s' - prea mare"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Eroare la citirea fiºierului infokey `%s' - citit scurt"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "Fiºier infokey incorect `%s' (bad magic numbers) -- rulaþi infokey pentru a-"
+ "l actualiza"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ "Fiºierul d-voastrã infokey `%s' este vechi - rulaþi infokey pentru a-l "
+ "actualiza"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Fiºier infokey incorect `%s' (bad section length) -- rulaþi infokey pentru a-"
+ "l actualiza"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "Fiºier infokey incorect `%s' (bad section code) -- rulaþi infokey pentru a-l "
+ "actualiza"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "Date incorecte în fiºierul infokey -- unele legãturi de taste ignorate"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ "Date incorecte în fiºierul infokey -- unele setãri de variabile ignorate"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "citeºte numele unei comenzi Info ºi descrie-o"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Descrie comanda: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Citeºte un nume de comandã în zona ecou ºi executã-o"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Nu pot executa o comandã `zonã ecou' aici."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "Comandã nedefinitã: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Seteazã înãlþimea ferestrei de afiºare"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Seteazã înãlþimea ecranului ls (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Fiºierele sursã (groveled) pentru a include acest fiºier:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Nu ap putut manipula fiºierul %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Meniu:\n"
+ "  (Fiºier)Nod                        Linii   Mãrime   Conþine fiºier\n"
+ "  -----------                        -----   ------   --------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Aici este meniul cu nodurile pe care le-aþi vizitat recent.\n"
+ "Selectaþi un nod din acest meniu, sau folosiþi `\\[history-node]' în altã "
+ "fereastrã\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr ""
+ "Creazã o fereastrã care conþine un meniu cu toate nodurile vizitate recent"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr ""
+ "Selecteazã un nod care a fost vizitat anterior într-o fereastrã vizibilã"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Selecteazã nodul vizitat: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Referinþa a dispãrut! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Bine aþi venit la Info versiunea %s. Tastaþi \\[get-help-window] pentru "
+ "ajutor, \\[menu-item] pentru un articol din meniu."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Mergi la linia urmãtoare"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Mergi la linia precedentã"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Mergi la sfârºitul liniei"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Mergi la începutul liniei"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Urmãtor"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Nu mai sunt alte noduri în acest document."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Nici un `Prec' pentru acest nod."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Nici un `Prec' sau `Sus' pentru acest nod în acest document."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Mergi înainte sau jos prin structura de noduri"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Mergi înapoi sau sus prin structura de noduri"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Scroll înainte în aceastã fereastrã"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr ""
+ "Scroll înainte în aceastã fereastrã ºi seteazã dimensiunea implicitã a "
+ "ferestrei"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Scroll înainte în aceastã fereastrã, rãmâi în nod"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Scroll înainte în aceastã fereastrã, rãmâi în nod ºi seteazã dimensiunea "
+ "implicitã a ferestrei"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Scroll înapoi în acestã fereastrã"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr ""
+ "Scroll înapoi în acestã fereastrã ºi seteazã dimensiunea implicitã a "
+ "ferestrei"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Scroll înapoi în aceastã fereastrã, rãmâi în nod"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Scroll înapoi în aceastã fereastrã, rãmâi în nod ºi seteazã dimensiunea "
+ "implicitã a ferestrei"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Mergi la începutul acestui nod"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Mergi la sfârºitul acestui nod"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Scroll jos pe linii"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Scroll sus pe linii"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Scroll jos jumãtate de ecran"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Scroll sus jumãtate de ecran"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Selecteazã fereastra urmãtoare"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Selecteazã fereastra precedentã"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Împarte fereastra curentã"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "ªterge fereastra curentã"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Nu pot ºterge o fereastrã permanentã"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "ªterge toate celelalte ferestre"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Scroll-eazã cealaltã fereastrã"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Scroll-eazã cealaltã fereastrã înapoi"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Creºte sau micºoreazã aceastã fereastrã"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Împarte spaþiul de ecran disponibil între ferestrele vizibile"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Comutã starea reformatãrii de linie (wrapping) în fereastra curentã"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Selecteazã nodul Urmãtor"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Selectezã nodul Prec"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Selecteazã nodul Sus"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Selecteazã ultimul nod din acest fiºier"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Acestã fereastrã nu mai are nici un nod"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Selecteazã primul nod din acest fiºier"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Selecteazã ultimul articol din meniul acestui nod"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Selecteazã acest articol de meniu"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Nu existã %d articole în acest meniu"
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Articol meniu (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Articol meniu: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Urmeazã ref (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Urmeazã ref: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Citeºte un articol de meniu ºi selecteazã nodul sãu"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "Citeºte o notã de subsol sau referinþã ºi selecteazã nodul sãu"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Mergi la începutul meniului acestui nod"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Viziteazã cât mai multe articole de meniu posibile deodatã"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Citeºte numele unui nod ºi selecteazã-l"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Du-te la nod: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Nici un meniu în nod `%s'."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Nici un articol de meniu `%s' în nod `%s'."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Nu pot gãsi nodul referit de `%s' în `%s'."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Citeºte o listã de meniuri pornind din dir ºi urmãreºte-le"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Urmeazã meniurile: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Gãseºte nodul ce descrie invocarea programului"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Gãseºte nodul Invocare pentru [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Citeºte o referinþã de paginã de manul ºi selecteazã-o"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Obþine paginã manual (manpage): "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Selecteazã nodul `Vârf' în acest fiºier"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Selecteazã nodul `(dir)'"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Distruge nodul (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Nu pot distruge nodul `%s'"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Nu pot distruge ultimul nod"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Selecteazã cel mai recent nod selectat"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Distruge acest nod"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Citeºte numele unui fiºier ºi selecteazã-l"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Gãseºte fiºier: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Nu pot gãsi `%s'."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Nu am putut crea fiºier ieºire `%s'."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Terminat."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Scriu nod %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "Conectez (pipe) conþinutul acestui nod prin INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Nu pot deschide conexiune (pipe) cãtre `%s'."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Tipãresc nod %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "ªterge (kill) pânã la începutul liniei"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Caut subfiºier %s ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Citeºte un ºir ºi cautã-l þinând cont de litere mari/mici"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Citeºte un ºir ºi cautã-l"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Citeºte un ºir ºi cautã-l înapoi"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s pentru ºir [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr " þinând cont de litere mari/mici"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "Cautã înapoi"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Cautã"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Cãutare eºuatã."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Repetã ultima cãutare în aceeaºi direcþie"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Nici un ºir cãutat anterior"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Repetã ultima cãutare în direcþie opusã"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Cautã interactiv pentru un ºir pe mãsurã ce este introdus"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "I-cautã înapoi: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "I-cautã înapoi: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "I-cautã: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "I-cautã: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Eºuez "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Mergi la referinþa precedentã"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Mergi la referinþa urmãtoare"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Selecteazã referinþa sau articolul de meniu ce apare pe acestã linie"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Renunþã la operaþia curentã"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Ieºi"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Mutã cursorul la o anumitã linie din fereastrã"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Redeseneazã ecranul"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Ieºi din Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Ruleazã comanda legatã de litera micã de pe tastã"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Comandã necunoscutã (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" este invalid"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "`%s' este invalid"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Adaugã aceastã cifrã la argumentul numeric curent"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Începe (sau înmulþeºte cu 4) argumentul numeric curent"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Folosit intern de \\[argument-universal]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Nu mai am memorie virtualã!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Când \"Activ\", notele de subsol apar ºi dispar automatic"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "Când \"Activ\", crearea ºi ºtergere unei ferestre redimensioneazã alte "
+ "ferestre"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Când \"Activ\", scânteiazã ecreanul în loc sã suni clopoþelul"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Când \"Activ\", erorile face sã sune clopoþelul"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ "Când \"Activ\", Info colecteazã la gunoi fiºierele care au trebuit "
+ "decompresate"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "Când \"Activ\", porþiunea din ºir care s-a potrivit este evidenþiatã"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr ""
+ "Controleazã ce se întâmplã când este cerut scroll la sfârºitul unui nod"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr ""
+ "Numãrul de linii pentru scroll când cursorul se mutã în afara ferestrei"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Când \"Activ\", Info acceptã ºi afiºeazã caractere ISO Latin"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr ""
+ "Controleazã ce se întâmplã când este cerut scroll la sfârºitul unui nod"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Explicã folosirea unei variabile"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Descrie variabila: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Seteazã valoarea unei variabile Info"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Seteazã variabilã: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Seteazã %s cu valoarea (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Seteazã %s cu valoarea (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Tag-uri Vechi ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), linii ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d linii --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d linii --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Subfiºier: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: avertisment: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " pentru %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tÎncercaþi `%s --help' pentru o lipsã completã de opþiuni.\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Folosire: %s [OPÞIUNE]... FIªIER-TEXINFO...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Trimiteþi emailuri raportând bug-uri la bug-texinfo@gnu.org,\n"
+ "întrebãri generale ºi discuþii la help-texinfo@gnu.org.\n"
+ "Texinfo homepage: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Acesta este fiºierul .../info/dir, care conþine nodul\n"
+ "cel mai de sus din ierarhia Info, numit (dir)Top.\n"
+ "Prima datã când porniþi Info veþi vedea acest nod.\n"
+ "\n"
+ "%s\tAcesta este vârful arborelui INFO\n"
+ "\n"
+ "  Acesta (nodul Director) furnizeazã un meniu cu subiecte majore.\n"
+ "  Apãsând \"q\" terminã, \"?\" enumerã toate comenzile Info, \"d\" vã aduce "
+ "aici,\n"
+ "  \"h\" furnizeazã un tutorial pentru începãtori,\n"
+ "  \"mEmacs<Return>\" viziteazã manualul Emacs, etc.\n"
+ "\n"
+ "  În Emacs, puteþi face clic cu butonul 2 al mausului pe un articol de "
+ "meniu\n"
+ "  sau o referinþã pentru a o selecta.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: nu am putut citi (%s) ºi nu am putut crea (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: fiºier gol"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY fãrã un END-INFO-DIR-ENTRY corespunzãtor"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY fãrã un  START-INFO-DIR-ENTRY corespunzãtor"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: are deja fiºier dir: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Specificã fiºierul Info o singurã datã.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "argument suplimentar în linia de comandã `%s'"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ "Nici un fiºier de intrare specificat; încercaþi --help pentru informaþii "
+ "suplimentare."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ "Nici un fiºier dir specificat; încercaþi --help pentru informaþii "
+ "suplimentare."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "nici o intrare dir info în `%s'"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "nici o intrare gãsitã pentru `%s'; n-am ºters nimic"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "argumentele pentru @%s ignorate"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "Ianuarie"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "Februarie"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "Martie"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "Aprilie"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "Mai"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "Iunie"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "Iulie"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "August"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "Septembrie"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "Octombrie"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "Noiembrie"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "Decembrie"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "caracter neverosimil %c în @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "argumentul @sc în litere mari, prin urmare fãrã efect"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "`{' aºteptat, dar am vãzut `%c'"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "sfârºit de fiºier în interiorul blocului de verb"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "`}' aºteptat, dar am vãzut `%c'"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@strong{Notã...] produce o referinþã încruciºatã falsã în Info; reformulaþi "
+ "pentru a o evita"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s este depãsit"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp necesitã un argument numeric pozitiv, nu `%s'"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Argument nepotrivit pentru %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "aºacume"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "nimic"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Argument nepotrivit pentru @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "insereazã"
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Argument nepotrivit pentru @%s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Lipseºte `}' în @def arg"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Trebuie sã fiþi în mediul `@%s' pentru a folosi `@%s'"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "`%s' omis înainte de numele fiºierului de ieºire"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "`%s' omis întrucât scriu la ieºirea standard (stdout)"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Buffer-ul de ieºire nu este gol."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Vezi "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`%c%s' necesitã un argument `{...}', nu numai `%s'"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Nici o parantezã de închidere pentru nota de subsol `%s'"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Nota de subsol definitã fãrã nod pãrinte"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Nu sun permise note de subsol în note de subsol"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Note de subsol"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: nu am putut deschide --css-file: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: --css-file s-a terminat cu un comentariu"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[neaºteptat] nici un tag html de ridicat"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[neaºteptat] nume de nod invalid: `%s'"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Index necunoscut `%s'"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info nu poate folosi `:' în intrarea de index `%s'"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Indez-ul `%s' existã deja"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Index-ul necunoscut `%s' ºi/sau `%s' în @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(linie )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(linia %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Index necunoscut `%s' în @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Intrarea pentru index-ul `%s' în afara oricãrui nod"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(în afara oricãrui nod)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@item nu este permis în argument la @itemize"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Tip-Greºit în insertion_type_pname"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Stivã de enumerare inundatã (overflow)"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "inundate (overflow) la tipãrire, reîncep la %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s necesitã un argument: formatatorul pentru %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "mediile %cfloat nu pot fi încuibãrite"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "`@end' a aºteptat `%s', dar a vãzut `%s'"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Nici o potrivire %cend %s'"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s necesitã litere sau cifre"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "sfârºit de fiºier în interiorul blocului neformatat (verbatim)"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s nu are sens în exteriorul mediului `@float'"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu vãzut înainte de primul @node, creez nodul `Vârf'"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "probabil cã nodul d-voastrã @top ar trebui împachetat în @ifnottex în loc de "
+ "@ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu vãzut înainte de primul nod, creez nodul `Vârf'"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr "@%s nu are sens în exteriorul mediilor `@titlepage' ºi `@quotation'"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s nu are sens în exteriorul mediului `@titlepage'"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "`%c%s' fãrã pereche"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "`%c%s' necesitã ceva dupã el"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Argument greºit `%s' pentru `@%s', folosesc `%s'"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s nu are sens în interiorul blocului `@%s'"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx nu are sens în interiorul blocului `%s'"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s gãsit în afara unui bloc de inserare"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s nu este un cod de limbã valid conform ISO 639"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "nume de codare nerecunoscut `%s'"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "ne pare rãu, codarea `%s' nu este suportatã"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "caracter codat invalid `%s'"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s aºteaptã `i' sau `j' ca argument, nu `%c'"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s aºteaptã un singur caracter `i' sau `j' ca argument"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "macro-ul `%s' definit anterior"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "aici este definiþia anterioarã a lui `%s'"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "\\ in expansiunea macro urmatã de `%s' în loc de nume parametru"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Macro `%s' chemat pe linia %d cu prea multe argumente"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "%cend macro nu a fost gãsit"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "nepotrivire @end %s cu @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "Prea multe erori!  Am renunþat.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: avertisment: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "%c nelalocul lui"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Încercaþi `%s --help' pentru informaþii suplimentare.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Folosire: %s [OPÞIUNE]... FIªIER-TEXINFO...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Translateazã documentaþia sursã Texinfo în diferite alte formate, implicit\n"
+ "fiºiere Info potrivite pentru citit online cu Emacs sau GNU Info.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, fuzzy, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "General options:\n"
+ "      --error-limit=NUM       terminã dupã NUM erori (implicit %d).\n"
+ "      --force                 pãstreazã ieºire echiar ºi dacã sunt erori.\n"
+ "      --help                  afiºeazã acest mesaj ºi terminã.\n"
+ "      --no-validate           eliminã validarea referinþelor.\n"
+ "      --no-warn               eliminã avertismentele (dar nu erorile).\n"
+ "      --reference-limit=NUM   avertizeazã despre cel mult NUM referinþe "
+ "(implicit %d).\n"
+ "  -v, --verbose               explicã ce se executã.\n"
+ "      --version               afiºeazã informaþii despre versiune ºi "
+ "terminã.\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, fuzzy, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Selecþia formatului de ieºire (implicit este sã creeze Info):\n"
+ "      --docbook             ieºire DocBook XML în loc de Info.\n"
+ "      --html                ieºire HTML în loc de Info.\n"
+ "      --xml                 ieºire Texinfo XML în loc de Info.\n"
+ "      --plaintext           ieºire text simplu în loc de Info.\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ #, fuzzy
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Opþiuni de ieºire generale:\n"
+ "  -E, --macro-expand FIªIER ieºire macro-expandatã în FIªIER.\n"
+ "                            ignorînd orice @setfilename.\n"
+ "      --no-headers          eliminã noduri separatoare, Nod: linii ºi "
+ "meniuri\n"
+ "                             din ieºire Info (producând text simplu)\n"
+ "                             sau din HTML (producând ieºire mai scurtã);\n"
+ "                             de asemenea, scrie implicit la ieºirea "
+ "standard.\n"
+ "      --no-split            eliminã împãrþirea ieºirii Info sau HTML,\n"
+ "                            genereazã un singur fiºier de ieºire.\n"
+ "      --number-sections     scrie numere de capitole ºi secþiuni.\n"
+ "  -o, --output=FIªIER       scrie în FIªIER (director dacã multiple HTML),\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, fuzzy, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Options for Info and plain text:\n"
+ "      --enable-encoding      genereazã caractere accentuate ºi speciale în\n"
+ "                                ieºire Info bazat pe @documentencoding.\n"
+ "      --fill-column=NUM      sparge liniile Info la NUM caractere (implicit %"
+ "d).\n"
+ "      --footnote-style=STIL  genereazã note de subsol în Info conform cu "
+ "STIL:\n"
+ "                                `separate' pentru a le pune in propriul lor "
+ "nod;\n"
+ "                                `end' pentru a le pune la sfârºitul nodului\n"
+ "                                  în care sunt definite (implicit).\n"
+ "      --paragraph-indent=VAL  precede paragrafele Info cu VAL spaþii "
+ "(implicit %d).\n"
+ "                                dacã VAL este `none', nu pune spaþii; dacã "
+ "VAL\n"
+ "                                este `asis', pãstrezã spaþiile existente.\n"
+ "      --split-size=NUM        împarte fiºierele Info de dimens. NUM "
+ "(implicit %d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ #, fuzzy
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "Opþiuni pentru HTML:\n"
+ "      --css-include=FIªIER      include FIªIER în HTML <stil> ieºire;\n"
+ "                                  citeºte stdin dacã FIªIER este -.\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, fuzzy, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "Opþiuni pentru HTML:\n"
+ "      --css-include=FIªIER      aliniazã elemente XML cu VAL spaþii "
+ "(implicit %d)\n"
+ "                                  dacã VAL e 0, spaþiile goale ce pot fi "
+ "ignorate nu sunt afiºate.\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Opþiuni fiºier de intrare:\n"
+ "      --commands-in-node-names  permite comenzi @ în numele nodurilor.\n"
+ "  -D VAR                        defineºte variabila VAR, ca ºi @set.\n"
+ "  -I DIR                        adaugã DIR la calea de cãutare @include.\n"
+ "  -P DIR                        prepend DIR la calea de cãutare @include.\n"
+ "  -U VAR                        nedefineºte variabila VAR, ca ºi @clear.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Procesare condiþionalã în intrare:\n"
+ "  --ifdocbook       proceseazã @ifdocbook º @docbook chiar dacã\n"
+ "                      nu generezi Docbook.\n"
+ "  --ifhtml          proceseazã @ifhtml ºi @html chiar dacã nu generezi "
+ "HTML.\n"
+ "  --ifinfo          proceseazã @ifinfo chiar dacã nu generezi Info.\n"
+ "  --ifplaintext     proceseazã @ifplaintext chiar dacã nu generezi text "
+ "simplu.\n"
+ "  --iftex           proceseazã @iftex ºi @tex; implicã --no-split.\n"
+ "  --ifxml           proceseazã @ifxml ºi @xml.\n"
+ "  --no-ifdocbook    nu procesa text @ifdocbook ºi @docbook.\n"
+ "  --no-ifhtml       nu procesa text @ifhtml ºi @html.\n"
+ "  --no-ifinfo       nu procesa text @ifinfo.\n"
+ "  --no-ifplaintext  nu procesa text @ifplaintext.\n"
+ "  --no-iftex        nu procesa text @iftex ºi @tex.\n"
+ "  --no-ifxml        nu procesa text @ifxml ºi @xml.\n"
+ "\n"
+ "  De asemenea, pentru opþiunile --no-ifFORMAT, proceseazã text "
+ "@ifnotFORMAT.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  Valori implicite pentru condiþionalele @if... depind de formatul de "
+ "ieºire:\n"
+ "  dacã generaþi HTML, --ifhtml este selectat iar restul sunt deselectate;\n"
+ "  dacã generaþi, --ifinfo este selectat iar restul sunt deselectate;\n"
+ "  dacã generaþi text simplu, --ifplaintext este selectat iar restul sunt "
+ "deselectate;\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Exemple:\n"
+ "  makeinfo foo.texi                     scrie Info în @setfilename-ul lui "
+ "foo\n"
+ "  makeinfo --html foo.texi              scrie HTML în @setfilename\n"
+ "  makeinfo --xml foo.texi               scrie Texinfo XML în @setfilename\n"
+ "  makeinfo --docbook foo.texi           scrie DocBook XML în @setfilename\n"
+ "  makeinfo --no-headers foo.texi        scrie text simplu la ieºirea "
+ "standard\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi scrie html fãrã linii de noduri, "
+ "meniuri\n"
+ "  makeinfo --number-sections foo.texi   scrie Info fãrã secþiuni numerotate\n"
+ "  makeinfo --no-split foo.texi          scrie un singur fiºier Info "
+ "indiferent cât de mare\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: Ignor valoare nerecunoscutã TEXINFO_OUTPUT_FORMAT `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: %s arg trebuie sã fie numeric, nu `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: nu am putut deschide ieºirea expansiunii macro-ului `%s'"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: nu am putut deschide ieºirea expansiunii macro-ului `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: nu am putut deschide ieºirea expansiunii macro-ului `%s'"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: nu am putut deschide ieºirea expansiunii macro-ului `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: --paragraph-indent arg trebuie sã fie numeric/`none'/`asis', nu `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: --footnote-style arg trebuie sã fie `separate' sau `end', nu `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: lipseºte fiºierul argument.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Comandã pe multiple linii %c%s folositã incorect"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Am aºteptat `%s'"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Nu pot crea directorul `%s': %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Nici un `%s' nu a fost gãsit în `%s'"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Omite expasiunea macro la ieºire întrucât ieºirea Info merge acolo.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Creez fiºierul %s `%s' din `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: ªterg fiºierul de ieºire macro `%s' din cauza erorilor; folosiþi --force "
+ "pentru a-l pãstra.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: fiºierul de ieºire `%s' din cauza erorilor; folosiþi --force pentru a-l "
+ "pãstra.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: fiºierul de ieºire `%s' din cauza erorilor; folosiþi --force pentru a-l "
+ "pãstra.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Comandã necunoscutã `%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "Folosiþi paranteze pentru a da o comandã ca argument lui @%s"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s am aºteptat paranteze"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "} fãrã pereche"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "NICI_UN_NUME!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s lipseºte paranteza de închidere"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "Fiºierul @image `%s' (pentru HTML) nu poate fi citit: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "Nici un fiºier `%s'"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "Fiºierul @image `%s' (pentru text) nu poate fi citit: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image lipseºte fiºierul argument."
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "marcaj nedefinit: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Nici o valoare pentru `%s'}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s necesitã un nume"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Am ajuns la eof înainte de a potrivi @end %s"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "`%.40s...' este prea lung pentru expansiune; nu a fost expandat"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "} lipsã în ºablonul @multitable"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "ignor text aiurea `%s' dupã @multitable"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Prea multe coloane în articol multitabel (max %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[neaºteptat] nu pot selecta coloana #%d în multitabel"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "ignor @tab în afara multitabelului"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Ieºirea multitabel din ultimul rând:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* coloana #%d: ieºire = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Nodul `%s' definit anterior la linia %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Formatez nodul %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Nodul `%s' cere o comandã de secþionare (ex., %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Nici un nume specificat pentru comanda `%c%s'"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Ancoraj `%s' ºi nodul `%s' aratã cãtre acelaºi nume de fiºier"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ "Aceastã comandã @anchor ignoratã; referinþele cãtre acesta nu vor merge"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Redenumeºte acest ancoraj sau foloseºte opþiunea `--no-split'"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "ªir neaºteptat la sfârºitul fiºierului HTML spart `%s'"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Ancoraj `%s' ºi `%s' aratã cãtre acelaºi nume de fiºier"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "Comandã @anchor ignoratã; referinþele cãtre acesta nu vor merge"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "referinþa %s cãtre nodul inexistent `%s' (probabil secþionare incorectã?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "Urmãtorul câmp de nod `%s' nu este referit (probabil secþionare incorectã?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Acest nod (%s) are un Prec incorect"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Câmpul Prec al nodului `%s' nu este referit"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Acest nod (%s) are referinþa Urmãtor incorectã"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "`%s' nu are nici un câmp Sus (probabil secþionare incorectã?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr "Nodului `%s' îi lipseºte articolul pentru `%s' deºi îi este þinta Sus"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "nod nereferit `%s'"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "ªterg %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Nu pot ºterge fisierul `%s': %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Anexã %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Eroare internã (search_sectioning) `%s'!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Eroare internã (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s este depãºitã; foloseºte %c%s în schimb"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Nodul cu %ctop ca ºi secþiune existã deja"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Aici este nodul %ctop"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop folosit înaintea lui %cnode, implicit cãtre %s"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "Fiºierul @image `%s' nu poate fi citit: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "@headitem ca ultimul articol din @multitable produce documenteDocbook "
+ "invalide"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "din"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "pe"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Nici o referinþã la acelaºi pasaj în acest nod."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "afiºeazã acest mesaj ºi terminã"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "trimite ieºire în FIªIER"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "afiºeazã informaþii despre versiune ºi terminã"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Folosire: %s [OPÞIUNI]... FIªIER...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Genereazã un index sortat pentru fiecare FIªIER de ieºire TeX.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ "De obicei FIªIER... este specificat ca `foo.%c%c' pentru un document 'foo."
+ "texi'.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Opþiuni:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "am eºuat sã redeschid %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: nu este un fiºier index texinfo"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Nici un numãr de paginã în %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "intrarea %s urmeazã o intrare cu nume secundar"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search]  Cautã înainte un ºir specificat\n"
+ #~ "              ºi selecteazã nodul în care acesta este gãsit.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10[goto-node]  Mergi la nodul specificat prin nume.\n"
+ #~ "             Puteþi include ºi un nume de fiºier, ca în (NUMEFIªIER)"
+ #~ "NUMENOD.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "\\%-10[next-node]  Mergi la \"urmãtorul\" nod al acestui nod.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  Mergi la nodul `director'.  Echivalent cu `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[top-node]  Mergi la nodul Vârf.  Echivalent cu `\\[goto-node] "
+ #~ "Top'.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  Cautã înapoi un ºir specificat\n"
+ #~ "              ºi selecteazã nodul în care acesta este gãsit.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- Folosiþi `\\[history-node]' sau `\\[kill-node]' pentru a termina ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr ""
+ #~ "\\%-10[move-to-prev-xref]  Sari la legãtura hypertext precedentã din "
+ #~ "acest nod.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "Folosire: %s [OPÞIUNE]... [ARTICOL-MENIU...]\n"
+ #~ "\n"
+ #~ "Citeºte documentaþie în formatul Info.\n"
+ #~ "\n"
+ #~ "Opþiuni:\n"
+ #~ "      --apropos=ªIR            cautã ªIR în toþi indexurile tuturor "
+ #~ "manualelor.\n"
+ #~ "  -d, --directory=DIR          adaugã DIR la INFOPATH.\n"
+ #~ "      --dribble=NUMEFIªIER     aminteºte ce tasteazã utilizatorul în "
+ #~ "NUMEFIªIER.\n"
+ #~ "  -f, --file=NUMEFIªIER        specificã fiºierul Info de vizitat.\n"
+ #~ "  -h, --help                   afiºeazã acest mesaj ºi terminã.\n"
+ #~ "      --index-search=STRING    mergi la nodul referit de intrarea "
+ #~ "indexului ªIR.\n"
+ #~ "  -n, --node=NUMENOD           specificã nodurile în primul fiºier Info "
+ #~ "vizitat.\n"
+ #~ "  -o, --output=NUMEFIªIER      scrie nodurile selectate în NUMEFIªIER.\n"
+ #~ "  -R, --raw-escapes            scrie \"raw\" escape-uri ANSI (implicit).\n"
+ #~ "      --no-raw-escapes         scrie escape-urile ca text normal.\n"
+ #~ "      --restore=NUMEFIªIER     citeºte apãsãrile de teste iniþiale din "
+ #~ "NUMEFIªIER.\n"
+ #~ "  -O, --show-options, --usage  mergi la nodul cu opþiunile liniei de "
+ #~ "comandã.\n"
+ #~ "%s      --subnodes             afiºeazã recursiv articolele de meniu.\n"
+ #~ "  -w, --where, --location      afiºeazã locaþia fizicã a fiºierului "
+ #~ "Info.\n"
+ #~ "      --vi-keys                foloseºte key bindings similare cu cele "
+ #~ "din vi ºi less.\n"
+ #~ "      --version                afiºeazã informaþii versiune ºi terminã.\n"
+ #~ "\n"
+ #~ "Primul argument ce nu e o opþiune, dacã e prezent, este articolul de "
+ #~ "meniu\n"
+ #~ "de la care se începe; acesta este cãutat în toate fiºierele `dir' din\n"
+ #~ "INFOPATH. Dacã acesta nu este prezent, info combinã toate fiºierele "
+ #~ "`dir'\n"
+ #~ "ºi aratã rezultatul. Restul argumentelor sunt tratate ca nume de "
+ #~ "articole\n"
+ #~ "de meniu relative la nodul vizitat iniþial.\n"
+ #~ "\n"
+ #~ "Exemple:\n"
+ #~ "  info                      aratã conþinutul dir-ectorului din meniul\n"
+ #~ "                              nivelului de vârf\n"
+ #~ "  info emacs                începe la nodul emacs din dir-ectorul "
+ #~ "nivelului\n"
+ #~ "                              de vârf\n"
+ #~ "  info emacs buffers        începe la nodul buffere din manualul emacs\n"
+ #~ "  info --show-options emacs începe la nodul cu opþiunile liniei de\n"
+ #~ "                               comandã pentru emacs\n"
+ #~ "  info -f ./foo.info        aratã fiºierul ./foo.info, nu cãuta dir\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr ""
+ #~ "              Alegând un articol de meniu face ca alt nod sã fie "
+ #~ "selectat.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              Puteþi include ºi un nume de fiºier, ca în (NUMEFIªIER)"
+ #~ "NUMENOD.\n"
+ 
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  Cautã înapoi un ºir specificat\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "              ºi selecteazã nodul în care acesta este gãsit.\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "Urmeazã nodul Urmãtor..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "Selectare primul articol din meniu..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "Selectare nod Urmãtor..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "Merg în Sus %d ori, apoi Urmãtor."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "Mut Prec în aceatã fereastã"
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "Merg în Sus în aceastã fe"
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "Merg la ultimul articol din meniul `Prec'"
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "Funcþie"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "Macro"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "Formã Specialº"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "Variabilã"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "Opþiune Utilizator"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "Instanþiere Variabilã"
+ 
+ #~ msgid "Method"
+ #~ msgstr "Metodã"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "Fãrã titlu"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "Acesta este %s, produs de makeinfo versiunea %s din %s.\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "Urmãtor:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "Precedent:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "Sus:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "Meniu"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "Traverseazã"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "Prec"
+ 
+ #~ msgid "Up"
+ #~ msgstr "Sus"
+ 
+ #, fuzzy
+ #~ msgid "see "
+ #~ msgstr "Vezi "
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "Usage: %s [OPÞIUNE]... [FIªIER-INFO [FIªIER-DIR]]\n"
+ #~ "\n"
+ #~ "Instaleazã sau ºterge intrãri dir din FIªIER-INFO în fiºier director "
+ #~ "Info \n"
+ #~ "FIªIER-DIR.\n"
+ #~ "\n"
+ #~ "Opþiuni:\n"
+ #~ " --delete          ºterge intrãri existente pentru FIªIER-INFO din FIªIER-"
+ #~ "DIR;\n"
+ #~ "                     nu insera nici o nouã intrare.\n"
+ #~ " --dir-file=NUME   specificã nume fiºier pentru fiºierul director Info.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insereazã TEXT ca o intrare de director Info.\n"
+ #~ "                     TEXT ar trebui sã aibã forma unei linii articol "
+ #~ "meniu Info \n"
+ #~ "                     plus zero sau mai multe extra linii începând cu "
+ #~ "spaþiu.\n"
+ #~ "                     Dacã precizaþi mai mult de o intrare, toate sunt "
+ #~ "adãugate.\n"
+ #~ "                     Dacã nu precizaþi nici o intrare, ele sunt "
+ #~ "determinate\n"
+ #~ "                     din informaþiile din fiºierul Info.\n"
+ #~ " --help            afiºeazã acest mesaj ºi terminã.\n"
+ #~ " --info-file=FIªIER  specificã fiºierul Info de instalat în director.\n"
+ #~ "                     Acesta este echivalent cu folosirea argumentului "
+ #~ "FIªIER-INFO.\n"
+ #~ " --info-dir=DIR    acelaºi efect ca --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       acelaºi efect ca --entry TEXT.\n"
+ #~ "                     O intrare director Info este de fapt un articol de "
+ #~ "meniu.\n"
+ #~ " --quiet           suprimã avertismentele.\n"
+ #~ " --remove          acelaºi efect ca --delete.\n"
+ #~ " --section=SEC     pune intrãrile acestui fiºier în secþiunea SEC, toate\n"
+ #~ "                     intrãrile sunt adãugate în fiecare dintre secþiuni.\n"
+ #~ "                     Dacã nu specificaþi nici o secþiune, acestea sunt\n"
+ #~ "                     determinate din informaþiile din fiºierul Info.\n"
+ #~ " --version         afiºeazã informaþii depre versiune ºi terminã.\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "articol meniu `%s' existã deja, pentru fiºier `%s'"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr ""
+ #~ "\\%-10[menu-digit]  Alege primul ... al nouãlea articol în meniul "
+ #~ "nodului.\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "nodul `%s' a fost referit de %d ori"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "Nu existã NICI o garanþie.  Puteþi redistribui acest software conform\n"
+ #~ "termenilor Licenþei Publice Generale GNU (GNU GPL). Pentru informaþii\n"
+ #~ "suplimentare despre aceste chestiuni, vedeþi fiºierul numit COPYING.\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg folositor numai pentru macro-uri cu un singur argument"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Cuprins"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "Rezumate"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "pãstreazã fiºierele temporare dupã procesare"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "nu pãstra fiºierele temporare dupã procesare (implicit)"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "              ºi selecteazã nodul referit de prima intrare gãsitã.\n"
+ 
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "Nu existã NICI o garanþie.  Puteþi redistribui acest software conform\n"
+ #~ "termenilor Licenþei Publice Generale GNU (GNU GPL). Pentru informaþii\n"
+ #~ "suplimentare despre aceste chestiuni, vedeþi fiºierul numit COPYING.\n"
Files texinfo-4.12/po/ru.gmo and texinfo-4.13/po/ru.gmo differ
diff -Nrc2 texinfo-4.12/po/ru.po texinfo-4.13/po/ru.po
*** texinfo-4.12/po/ru.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/ru.po	Thu Sep 18 11:38:33 2008
***************
*** 0 ****
--- 1,3537 ----
+ # ðÅÒÅ×ÏÄÙ ÓÏÏÂÝÅÎÉÊ ÄÌÑ GNU Texinfo.
+ # Copyright (C) 1999 Free Software Foundation, Inc.
+ # Oleg S. Tihonov <ost@tatnipi.ru>, 1999, 2001, 2002, 2003, 2004, 2005
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.7.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2005-02-07 09:27+0300\n"
+ "Last-Translator: Oleg S. Tihonov <ost@tatnipi.ru>\n"
+ "Language-Team: Russian <ru@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=koi8-r\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s'\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: ËÌÀÞ %c ÄÏÌÖÅÎ ÂÙ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s'\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr ""
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÉÍ×ÏÌ ×ÐÅÒÅÄ"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÉÍ×ÏÌ ÎÁÚÁÄ"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "óÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÓÔÒÏËÉ"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "óÍÅÓÔÉÔØÓÑ × ËÏÎÅÃ ÓÔÒÏËÉ"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÌÏ×Ï ×ÐÅÒÅÄ"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÌÏ×Ï ÎÁÚÁÄ"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "õÄÁÌÉÔØ ÓÌÅÄÕÀÝÉÊ ÓÉÍ×ÏÌ"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "õÄÁÌÉÔØ ÐÒÅÄÙÄÕÝÉÊ ÓÉÍ×ÏÌ"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "ïÔÍÅÎÉÔØ ÉÌÉ ÐÒÅÒ×ÁÔØ ÄÅÊÓÔ×ÉÅ"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "ðÒÉÎÑÔØ (ÉÌÉ ÚÁ×ÅÒÛÉÔØ) ÔÅËÕÝÕÀ ÓÔÒÏËÕ"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "÷ÓÔÁ×ÉÔØ ÓÌÅÄÕÀÝÉÊ ÓÉÍ×ÏÌ \"ËÁË ÅÓÔØ\""
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "÷ÓÔÁ×ÉÔØ ÜÔÏÔ ÓÉÍ×ÏÌ"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "÷ÓÔÁ×ÉÔØ ÓÉÍ×ÏÌ ÔÁÂÕÌÑÃÉÉ"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "ðÅÒÅÓÔÁ×ÉÔØ ÓÉÍ×ÏÌÙ ×ÏËÒÕÇ ÔÏÞËÉ"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "÷ÏÓÓÔÁÎÏ×ÉÔØ ÐÏÓÌÅÄÎÉÊ ÕÎÉÞÔÏÖÅÎÎÙÊ ÔÅËÓÔ"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "ëÏÌØÃÏ ÕÎÉÞÔÏÖÅÎÉÊ ÐÕÓÔÏ"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "÷ÏÓÓÔÁÎÏ×ÉÔØ ÐÒÅÄÛÅÓÔ×ÕÀÝÉÊ ÕÎÉÞÔÏÖÅÎÎÙÊ ÔÅËÓÔ"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "õÎÉÞÔÏÖÉÔØ ÔÅËÓÔ ÄÏ ËÏÎÃÁ ÓÔÒÏËÉ"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "õÎÉÞÔÏÖÉÔØ ÔÅËÓÔ ÄÏ ÎÁÞÁÌÁ ÓÔÒÏËÉ"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "õÎÉÞÔÏÖÉÔØ ÓÌÅÄÕÀÝÅÅ ÓÌÏ×Ï"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "õÎÉÞÔÏÖÉÔØ ÐÒÅÄÙÄÕÝÅÅ ÓÌÏ×Ï"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "úÁ×ÅÒÛÅÎÉÊ ÎÅÔ"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "îÅ ÚÁ×ÅÒÛÅÎÏ"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "ðÏËÁÚÁÔØ ×ÏÚÍÏÖÎÙÅ ÚÁ×ÅÒÛÅÎÉÑ"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "åÄÉÎÓÔ×ÅÎÎÏÅ ÚÁ×ÅÒÛÅÎÉÅ"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "åÄÉÎÓÔ×ÅÎÎÏÅ ÚÁ×ÅÒÛÅÎÉÅ:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "úÁ×ÅÒÛÅÎÉÊ: %d :\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "÷ÓÔÁ×ÉÔØ ÚÁ×ÅÒÛÅÎÉÅ"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "óÏÓÔÁ×ÌÅÎÉÅ ÚÁ×ÅÒÛÅÎÉÊ..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÏËÎÏ ÚÁ×ÅÒÛÅÎÉÊ"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "óÎÏÓËÉ ÎÅ ÍÏÇÕÔ ÂÙÔØ ÐÏËÁÚÁÎÙ"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "ðÏËÁÚÁÔØ ÓÎÏÓËÉ, Ó×ÑÚÁÎÎÙÅ Ó ÜÔÏÊ ÎÏÄÏÊ, × ÄÒÕÇÏÍ ÏËÎÅ"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "----------   óÎÏÓËÉ  ----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "îÁÊÔÉ ÓÔÒÏËÕ × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ ÄÌÑ ÄÁÎÎÏÇÏ ÆÁÊÌÁ"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "ðÏÉÓË  × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "îÅ ÎÁÊÄÅÎ ÁÌÆÁ×ÉÔÎÙÊ ÕËÁÚÁÔÅÌØ."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "ðÕÎËÔ × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "ðÅÒÅÊÔÉ Ë ÓÌÅÄÕÀÝÅÍÕ ÐÕÎËÔÕ ÁÌÆÁ×ÉÔÎÏÇÏ ÕËÁÚÁÔÅÌÑ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÍÕ\n"
+ "ÐÏÓÌÅÄÎÅÊ ËÏÍÁÎÄÅ `\\[index-search]'"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "óÔÒÏËÁ ÐÏÉÓËÁ × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ ÎÅ ÂÙÌÁ ÒÁÎØÛÅ ÚÁÄÁÎÁ."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "îÅ ÎÁÊÄÅÎ ÁÌÆÁ×ÉÔÎÙÊ ÕËÁÚÁÔÅÌØ."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "÷ ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ %s ÎÅ ÎÁÊÄÅÎÏ ÐÕÎËÔÏ×, ÓÏÄÅÒÖÁÝÉÈ `%s'."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "ÂÏÌØÛÅ "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "üÔÏ ÎÅ×ÉÄÉÍÙÊ ÔÅËÓÔ!"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "îÁÊÄÅÎÁ `%s' × %s. (`\\[next-index-match]' ÎÁÈÏÄÉÔ ÓÌÅÄÕÀÝÅÅ ÓÏ×ÐÁÄÅÎÉÅ.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "ðÏÉÓË × ÁÌÆÁ×ÉÔÎÏÍ ÕËÁÚÁÔÅÌÅ ÆÁÊÌÁ `%s'..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "îÉ ÏÄÉÎ ÉÚ info-ÆÁÊÌÏ× ÎÅ ÓÏÄÅÒÖÉÔ `%s' × ÁÌÆÁ×ÉÔÎÙÈ ÕËÁÚÁÔÅÌÑÈ."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "úÁÐÕÓËÁÅÔ ÐÏÉÓË ÓÔÒÏËÉ × ÁÌÆÁ×ÉÔÎÙÈ ÕËÁÚÁÔÅÌÑÈ ×ÓÅÈ Info-ÆÁÊÌÏ× É ÓÏÚÄÁÅÔ "
+ "ÍÅÎÀ"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "ëÌÀÞÅ×ÏÅ ÓÌÏ×Ï ÄÌÑ ÐÏÉÓËÁ: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: îÏÄÙ, ÞØÉ ÁÌÆÁ×ÉÔÎÙÅ ÕËÁÚÁÔÅÌÉ ÓÏÄÅÒÖÁÔ `%s':\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "ðÏÐÒÏÂÕÊÔÅ --help ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "ÄÌÑ `%s' ÎÅ ÎÁÊÄÅÎÏ ×ÈÏÖÄÅÎÉÊ × ÉÍÅÎÎÏÍ ÕËÁÚÁÔÅÌÅ\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ "  -b, --speech-friendly       ×Ù×ÏÄÉÔØ × ÆÏÒÍÁÔÅ, ÕÄÏÂÎÏÍ ÄÌÑ ÓÉÎÔÅÚÁÔÏÒÏ× "
+ "ÒÅÞÉ.\n"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "ïÂ ÏÛÉÂËÁÈ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ bug-texinfo@gnu.org,\n"
+ "ÏÂÝÅÅ ÏÂÓÕÖÄÅÎÉÅ É ×ÏÐÒÏÓÙ ÎÁÐÒÁ×ÌÑÊÔÅ ÐÏ ÁÄÒÅÓÕ help-texinfo@gnu.org.\n"
+ "äÏÍÁÛÎÁÑ ÓÔÒÁÎÉÃÁ Texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÎÏÄÕ `%s'."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÎÏÄÕ `(%s)%s'."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÏËÎÏ!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "ôÏÞËÁ ÎÁÈÏÄÉÔÓÑ ×ÎÅ ÎÏÄÙ ÜÔÏÇÏ ÏËÎÁ!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏÓÌÅÄÎÅÅ ÏËÎÏ."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "÷ ÜÔÏÊ ÎÏÄÅ ÎÅÔ ÍÅÎÀ."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "îÁ ÜÔÏÊ ÎÏÄÅ ÎÅÔ ÓÓÙÌÏË."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "îÁ ÜÔÏÊ ÎÏÄÅ ÎÅÔ ÓÓÙÌÏË."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "äÌÑ ÜÔÏÊ ÎÏÄÙ ÎÅÔ ÓÓÙÌËÉ `%s'."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "ëÏÍÁÎÄÁ Info `%c' ÎÅÉÚ×ÅÓÔÎÁ; ÐÏÐÒÏÂÕÊÔÅ `?' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÓÐÒÁ×ËÉ."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr ""
+ "ôÅÒÍÉÎÁÌ ÔÉÐÁ `%s' ÎÅ ÏÂÌÁÄÁÅÔ ÄÏÓÔÁÔÏÞÎÙÍÉ ×ÏÚÍÏÖÎÏÓÔÑÍÉ ÄÌÑ ÚÁÐÕÓËÁ Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "÷Ù ÕÖÅ ÎÁÈÏÄÉÔÅÓØ ÎÁ ÐÏÓÌÅÄÎÅÊ ÓÔÒÁÎÉÃÅ ÜÔÏÊ ÎÏÄÙ."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "÷Ù ÕÖÅ ÎÁÈÏÄÉÔÅÓØ ÎÁ ÐÅÒ×ÏÊ ÓÔÒÁÎÉÃÅ ÜÔÏÊ ÎÏÄÙ."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "ôÏÌØËÏ ÏÄÎÏ ÏËÎÏ."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "ðÏÌÕÞÉ×ÛÅÅÓÑ ÏËÎÏ ÂÙÌÏ ÂÙ ÓÌÉÛËÏÍ ÍÁÌÅÎØËÉÍ."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr ""
+ "îÅ È×ÁÔÁÅÔ ÍÅÓÔÁ ÄÌÑ ÓÐÒÁ×ÏÞÎÏÇÏ ÏËÎÁ, ÐÏÖÁÌÕÊÓÔÁ, ÕÄÁÌÉÔÅ ËÁËÏÅ-ÎÉÂÕÄØ ÏËÎÏ."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  ðÏËÉÎÕÔØ ÜÔÕ ÓÐÒÁ×ËÕ.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  ðÏËÉÎÕÔØ ÔÁËÖÅ Info.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  ÷ÙÚ×ÁÔØ ÏÂÕÞÁÀÝÅÅ ÒÕËÏ×ÏÄÓÔ×Ï.\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ÎÁÚÁÄ.\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ×ÐÅÒÅÄ.\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ÎÁÚÁÄ.\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ×ÐÅÒÅÄ.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  ðÅÒÅÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÜÔÏÊ ÎÏÄÙ.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  ðÅÒÅÍÅÓÔÉÔØÓÑ × ËÏÎÅÃ ÜÔÏÊ ÎÏÄÙ.\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10[move-to-next-xref]  ðÅÒÅÍÅÓÔÉÔØÓÑ Ë ÓÌÅÄÕÀÝÅÊ ÇÉÐÅÒÓÓÙÌËÅ × ÜÔÏÊ "
+ "ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  ðÅÒÅÊÔÉ ÐÏ ÇÉÐÅÒÓÓÙÌËÅ ÐÏÄ ËÕÒÓÏÒÏÍ.\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "\\%-10[history-node]  ðÅÒÅÊÔÉ ÎÁ ÐÏÓÌÅÄÎÀÀ ÎÏÄÕ × ÜÔÏÍ ÏËÎÅ.\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[prev-node]  ðÅÒÅÊÔÉ Ë \"ÐÒÅÄÙÄÕÝÅÊ\" ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[next-node]  ðÅÒÅÊÔÉ Ë \"ÓÌÅÄÕÀÝÅÊ\" ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  ðÅÒÅÊÔÉ Ë \"ÐÒÅÄÙÄÕÝÅÊ\" ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  ðÅÒÅÊÔÉ Ë \"ÓÌÅÄÕÀÝÅÊ\" ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  ðÅÒÅÊÔÉ Ë ÎÏÄÅ \"××ÅÒÈ\".\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[end-of-node]  ðÅÒÅÍÅÓÔÉÔØÓÑ × ËÏÎÅÃ ÜÔÏÊ ÎÏÄÙ.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[end-of-node]  ðÅÒÅÍÅÓÔÉÔØÓÑ × ËÏÎÅÃ ÜÔÏÊ ÎÏÄÙ.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  ÷ÙÂÒÁÔØ ÐÅÒ×ÙÊ ... ÄÅ×ÑÔÙÊ ÐÕÎËÔ ÍÅÎÀ × ÔÅËÕÝÅÊ ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  ÷ÙÂÒÁÔØ ÐÏÓÌÅÄÎÉÊ ÐÕÎËÔ ÍÅÎÀ × ÔÅËÕÝÅÊ ÎÏÄÅ\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ Ë ÚÁÄÁÎÎÏÍÕ ÐÕÎËÔÕ ÍÅÎÀ.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  ðÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ.  óÞÉÔÙ×ÁÅÔ ÉÍÑ ÓÓÙÌËÉ.\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ Ë ÚÁÄÁÎÎÏÊ ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  îÁÊÔÉ ÚÁÄÁÎÎÕÀ ÓÔÒÏËÕ, É ÐÅÒÅÊÔÉ Ë\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[prev-node]  ðÅÒÅÊÔÉ Ë \"ÐÒÅÄÙÄÕÝÅÊ\" ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ "  %-10s  ðÒÏÉÚ×ÅÓÔÉ ÐÏÉÓË ÚÁÄÁÎÎÏÊ ÓÔÒÏËÉ ÓÒÅÄÉ ×ÈÏÖÄÅÎÉÊ ÉÍÅÎÎÙÈ ÕËÁÚÁÔÅÌÅÊ "
+ "ÜÔÏÇÏ\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  éÓËÁÔØ ÚÁÄÁÎÎÕÀ ÓÔÒÏËÕ × ÁÌÆÁ×ÉÔÎÙÈ ÕËÁÚÁÔÅÌÑÈ\n"
+ "              Info-ÆÁÊÌÁ É ×ÙÂÒÁÔØ ÎÏÄÕ ÐÏ ÐÅÒ×ÏÊ ÎÁÊÄÅÎÎÏÊ ÓÓÙÌËÅ.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "ïÔÍÅÎÉÔØ ×ÙÐÏÌÎÅÎÉÅ ÔÅËÕÝÅÊ ËÏÍÁÎÄÙ"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "ïÓÎÏ×ÎÙÅ ËÏÍÁÎÄÙ × ÏËÎÁÈ Info\n"
+ "******************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  ðÏËÉÎÕÔØ ÜÔÕ ÓÐÒÁ×ËÕ.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  ðÏËÉÎÕÔØ ÔÁËÖÅ Info.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  ÷ÙÚ×ÁÔØ ÏÂÕÞÁÀÝÅÅ ÒÕËÏ×ÏÄÓÔ×Ï.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ Ë `ÓÌÅÄÕÀÝÅÊ' ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ Ë `ÐÒÅÄÙÄÕÝÅÊ' ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ Ë ÎÏÄÅ `××ÅÒÈ'.\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "\\%-10[menu-item]  ðÅÒÅÊÔÉ Ë ÐÕÎËÔÕ ÍÅÎÀ, ÚÁÄÁ×ÁÅÍÏÍÕ ÐÏ ÉÍÅÎÉ.\n"
+ "              ðÒÉ ÐÅÒÅÈÏÄÅ Ë ÚÁÄÁÎÎÏÍÕ ÐÕÎËÔÕ ÍÅÎÀ ×ÙÂÉÒÁÅÔÓÑ ÄÒÕÇÁÑ ÎÏÄÁ.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ.  óÞÉÔÙ×ÁÅÔ ÉÍÑ ÓÓÙÌËÉ.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ ÎÁ ÐÏÓÌÅÄÎÀÀ ÎÏÄÕ × ÜÔÏÍ ÏËÎÅ.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  ðÅÒÅÍÅÓÔÉÔØÓÑ Ë ÓÌÅÄÕÀÝÅÊ ÇÉÐÅÒÓÓÙÌËÅ × ÜÔÏÊ ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ ÐÏ ÇÉÐÅÒÓÓÙÌËÅ ÐÏÄ ËÕÒÓÏÒÏÍ.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ Ë ËÏÒÎÅ×ÏÊ ÎÏÄÅ.  üË×É×ÁÌÅÎÔÎÏ `g (DIR)'.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  ðÅÒÅÊÔÉ Ë ÎÏÄÅ Top.  üË×É×ÁÌÅÎÔÎÏ `g Top'.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "ðÅÒÅÍÅÝÅÎÉÅ ×ÎÕÔÒÉ ÎÏÄÙ:\n"
+ "------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ×ÐÅÒÅÄ.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ÎÁÚÁÄ.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  ðÅÒÅÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÜÔÏÊ ÎÏÄÙ.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  ðÅÒÅÍÅÓÔÉÔØÓÑ × ËÏÎÅÃ ÜÔÏÊ ÎÏÄÙ.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ×ÐÅÒÅÄ.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  ðÒÏËÒÕÔÉÔØ ÎÁ ÓÔÒÁÎÉÃÕ ÎÁÚÁÄ.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "äÒÕÇÉÅ ËÏÍÁÎÄÙ:\n"
+ "---------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  ÷ÙÂÒÁÔØ ÐÅÒ×ÙÊ ... ÄÅ×ÑÔÙÊ ÐÕÎËÔ ÍÅÎÀ × ÔÅËÕÝÅÊ ÎÏÄÅ.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  ÷ÙÂÒÁÔØ ÐÏÓÌÅÄÎÉÊ ÐÕÎËÔ ÍÅÎÀ × ÔÅËÕÝÅÊ ÎÏÄÅ\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10[index-search]  éÓËÁÔØ ÚÁÄÁÎÎÕÀ ÓÔÒÏËÕ × ÁÌÆÁ×ÉÔÎÙÈ ÕËÁÚÁÔÅÌÑÈ\n"
+ "              Info-ÆÁÊÌÁ É ×ÙÂÒÁÔØ ÎÏÄÕ ÐÏ ÐÅÒ×ÏÊ ÎÁÊÄÅÎÎÏÊ ÓÓÙÌËÅ.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10[goto-node]  ðÅÒÅÊÔÉ Ë ÎÏÄÅ, ÚÁÄÁÎÎÏÊ ÐÏ ÉÍÅÎÉ.\n"
+ "              ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÔÁËÖÅ ÉÍÑ ÆÁÊÌÁ, ÎÁÐÒÉÍÅÒ (æáêì)îïäá.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  éÓËÁÔØ ÕËÁÚÁÎÎÕÀ ÓÔÒÏËÕ × ÔÅËÕÝÅÍ Info-ÆÁÊÌÅ É ÏÓÔÁÎÏ×ÉÔØÓÑ "
+ "×\n"
+ "              ÎÏÄÅ, × ËÏÔÏÒÏÊ ÎÁÊÄÅÎÏ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10[search]  éÓËÁÔØ ÕËÁÚÁÎÎÕÀ ÓÔÒÏËÕ × ÔÅËÕÝÅÍ Info-ÆÁÊÌÅ É ÏÓÔÁÎÏ×ÉÔØÓÑ "
+ "×\n"
+ "              ÎÏÄÅ, × ËÏÔÏÒÏÊ ÎÁÊÄÅÎÏ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "ôÅËÕÝÉÊ ÐÕÔØ ÐÏÉÓËÁ:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "ëÏÍÁÎÄÙ, ÄÏÓÔÕÐÎÙÅ × ÏËÎÁÈ Info:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "ëÏÍÁÎÄÙ, ÄÏÓÔÕÐÎÙÅ × ÜÈÏ-ÏÂÌÁÓÔÉ:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "óÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ ÍÏÇÕÔ ÂÙÔØ ×ÙÚ×ÁÎÙ ÔÏÌØËÏ Ó ÐÏÍÏÝØÀ %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "óÌÅÄÕÀÝÉÅ ËÏÍÁÎÄÙ ×ÏÏÂÝÅ ÎÅ ÍÏÇÕÔ ÂÙÔØ ×ÙÚ×ÁÎÙ:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "ðÏËÁÚÁÔØ ÓÐÒÁ×ËÕ"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "ïÂÒÁÔÉÔØÓÑ Ë Info-ÎÏÄÅ `(info)Help'"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "ðÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ëìá÷éûå"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "ïÐÉÓÁÔØ ËÌÁ×ÉÛÕ: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s ÎÅÏÐÒÅÄÅÌÅÎÏ."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s ÎÅÏÐÒÅÄÅÌÅÎÏ."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s ÐÒÉ×ÑÚÁÎÏ Ë %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "ðÏËÁÚÙ×ÁÅÔ, ÞÔÏ ÎÕÖÎÏ ÎÁÐÅÞÁÔÁÔØ, ÞÔÏÂÙ ×ÙÐÏÌÎÉÔØ ÄÁÎÎÕÀ ËÏÍÁÎÄÕ"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "ëÏÍÁÎÄÁ: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "`%s' ÎÅ ÐÒÉ×ÑÚÁÎÁ ÎÉ Ë ËÁËÉÍ ËÌÁ×ÉÛÁÍ"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎÁ ÔÏÌØËÏ Ó ÐÏÍÏÝØÀ %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s ÍÏÖÅÔ ÂÙÔØ ×ÙÚ×ÁÎÁ Ó ÐÏÍÏÝØÀ %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "æÕÎËÃÉÉ Ó ÉÍÅÎÅÍ `%s' ÎÅÔ"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "÷ÙÂÏÒ ÄÒÕÇÏÊ ÎÏÄÙ:\n"
+ "------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "ÎÅÐÒÁ×ÉÌØÎÏÅ ÞÉÓÌÏ ÁÒÇÕÍÅÎÔÏ×"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ `%s'"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ `%s'"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ × `%s'"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÚÁËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ `%s'"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ËÌÀÞÅÊ ÓÌÉÛËÏÍ ÄÌÉÎÎÁÑ"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "ÐÒÏÐÕÝÅÎÁ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ËÌÀÞÅÊ"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "ÚÎÁË NUL (\\000) ÎÅÄÏÐÕÓÔÉÍ"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "ÚÎÁË NUL (^%c) ÎÅÄÏÐÕÓÔÉÍ"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "ÐÒÏÐÕÝÅÎÏ ÉÍÑ ÄÅÊÓÔ×ÉÑ"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "ÒÁÚÄÅÌ ÓÌÉÛËÏÍ ×ÅÌÉË"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "îÅÉÚ×ÅÓÔÎÏÅ ÄÅÊÓÔ×ÉÅ `%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "ÉÍÑ ÄÅÊÓÔ×ÉÑ ÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "ÌÉÛÎÉÅ ÚÎÁËÉ ÐÏÓÌÅ ÄÅÊÓÔ×ÉÑ `%s'"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "ÐÒÏÐÕÝÅÎÏ ÉÍÑ ÐÅÒÅÍÅÎÎÏÊ"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "ÐÒÏÐÕÝÅÎ ÚÎÁË `=' ÓÒÁÚÕ ÐÏÓÌÅ ÉÍÅÎÉ ÐÅÒÅÍÅÎÎÏÊ"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "ÉÍÑ ÐÅÒÅÍÅÎÎÏÊ ÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "ÚÎÁÞÅÎÉÅ ÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", ÓÔÒÏËÁ %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... [÷èïäîïê-æáêì]\n"
+ "\n"
+ "ëÏÍÐÉÌÉÒÕÅÔ ÉÓÈÏÄÎÙÊ ÆÁÊÌ infokey × ÆÁÊÌ infokey.  óÞÉÔÙ×ÁÅÔÓÑ\n"
+ "÷èïäîïê-æáêì (ÐÏ ÕÍÏÌÞÁÎÉÀ $HOME/.infokey) É ÚÁÐÉÓÙ×ÁÅÔ\n"
+ "ÓËÏÍÐÉÌÉÒÏ×ÁÎÎÙÊ ÆÁÊÌ Ó ÐÒÉ×ÑÚËÁÍÉ ËÌÁ×ÉÛ × $HOME/.info.\n"
+ "\n"
+ "ëÌÀÞÉ:\n"
+ "  --output éíñ-æáêìá           ×Ù×ÏÄÉÔØ × ÕËÁÚÁÎÎÙÊ ÆÁÊÌ, Á ÎÅ × $HOME/."
+ "info\n"
+ "  --help                       ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ\n"
+ "  --version                    ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "îÅÐÒÁ×ÉÌØÎÙÊ ÆÁÊÌ infokey `%s' ÉÇÎÏÒÉÒÕÅÔÓÑ - ÓÌÉÛËÏÍ ÍÁÌÅÎØËÉÊ"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "îÅÐÒÁ×ÉÌØÎÙÊ ÆÁÊÌ infokey `%s' ÉÇÎÏÒÉÒÕÅÔÓÑ - ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "ïÛÉÂËÁ ÞÔÅÎÉÑ ÆÁÊÌÁ infokey `%s' - ÞÔÅÎÉÅ ÐÒÅÒ×ÁÎÏ"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "æÁÊÌ infokey `%s' ÎÅÐÒÉÅÍÌÅÍ (ÎÅ×ÅÒÎÁÑ ÓÉÇÎÁÔÕÒÁ) -- ÚÁÐÕÓÔÉÔÅ infokey, "
+ "ÞÔÏÂÙ ÏÂÎÏ×ÉÔØ ÅÇÏ"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "æÁÊÌ infokey `%s' ÕÓÔÁÒÅÌ -- ÚÁÐÕÓÔÉÔÅ infokey, ÞÔÏÂÙ ÏÂÎÏ×ÉÔØ ÅÇÏ"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "æÁÊÌ infokey `%s' ÎÅÐÒÉÅÍÌÅÍ (ÎÅ×ÅÒÎÙÊ ËÏÄ ÒÁÚÄÅÌÁ) -- ÚÁÐÕÓÔÉÔÅ infokey, "
+ "ÞÔÏÂÙ ÏÂÎÏ×ÉÔØ ÅÇÏ"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ "ðÏ×ÒÅÖÄÅÎÎÙÅ ÄÁÎÎÙÅ × ÆÁÊÌÅ infokey -- ÎÅËÏÔÏÒÙÅ ÐÒÉ×ÑÚËÉ ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎÙ"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ "ðÏ×ÒÅÖÄÅÎÎÙÅ ÄÁÎÎÙÅ × ÆÁÊÌÅ infokey -- ÎÅËÏÔÏÒÙÅ ÕÓÔÁÎÏ×ËÉ ÐÅÒÅÍÅÎÎÙÈ "
+ "ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎÙ"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "óÞÉÔÁÔØ ÉÍÑ ËÏÍÁÎÄÙ Info É ÐÏËÁÚÁÔØ ÅÅ ÏÐÉÓÁÎÉÅ"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "ïÐÉÓÁÔØ ËÏÍÁÎÄÕ: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "óÞÉÔÁÔØ ÉÍÑ ËÏÍÁÎÄÙ × ÜÈÏ-ÏÂÌÁÓÔÉ É ÉÓÐÏÌÎÉÔØ ÅÅ"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "úÄÅÓØ ÎÅÌØÚÑ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ ÜÈÏ-ÏÂÌÁÓÔÉ."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "îÅÏÐÒÅÄÅÌÅÎÎÁÑ ËÏÍÁÎÄÁ: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "õÓÔÁÎÏ×ÉÔØ ×ÙÓÏÔÕ ÏÔÏÂÒÁÖÁÅÍÏÇÏ ÏËÎÁ"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "õÓÔÁÎÏ×ÉÔØ ×ÙÓÏÔÕ ÜËÒÁÎÁ ÒÁ×ÎÏÊ (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   üÔÏÔ ÆÁÊÌ ×ËÌÀÞÁÅÔ:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÂÒÁÂÏÔÁÔØ ÆÁÊÌ %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menu:\n"
+ "  (æÁÊÌ)îÏÄÁ                         óÔÒÏË  òÁÚÍÅÒ  æÁÊÌ\n"
+ "  ----------                         -----  ------  ----"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "üÔÏ ÍÅÎÀ ÒÁÎÅÅ ÐÏÓÅÝÅÎÎÙÈ ×ÁÍÉ ÎÏÄ.\n"
+ "÷ÙÂÅÒÉÔÅ ÏÄÎÕ ÉÚ ÍÅÎÀ ÉÌÉ ÉÓÐÏÌØÚÕÊÔÅ `\\[history-node]' × ÄÒÕÇÏÍ ÏËÎÅ.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "óÏÚÄÁÔØ ÏËÎÏ, ÓÏÄÅÒÖÁÝÅÅ ÍÅÎÀ ÐÏÓÅÝÅÎÎÙÈ ÒÁÎÅÅ ÎÏÄ"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "÷ÙÂÒÁÔØ ÒÁÎÅÅ ÐÏÓÅÝÅÎÎÕÀ ÎÏÄÕ × ×ÉÄÉÍÏÍ ÏËÎÅ"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "÷ÙÂÒÁÔØ ÐÏÓÅÝÅÎÎÕÀ ÒÁÎÅÅ ÎÏÄÕ: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "óÓÙÌËÁ ÉÓÞÅÚÌÁ! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ × Info ×ÅÒÓÉÉ %s. \\[get-help-window] -- ÓÐÒÁ×ËÁ, \\[menu-"
+ "item] ×ÙÂÉÒÁÅÔ ÐÕÎËÔ ÍÅÎÀ."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÔÒÏËÕ ÎÉÖÅ"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "óÍÅÓÔÉÔØÓÑ ÎÁ ÓÔÒÏËÕ ×ÙÛÅ"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "óÍÅÓÔÉÔØÓÑ × ËÏÎÅÃ ÓÔÒÏËÉ"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "óÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÓÔÒÏËÉ"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "óÌÅÄÕÀÝÁÑ"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "÷ ÜÔÏÍ ÄÏËÕÍÅÎÔÅ ÂÏÌØÛÅ ÎÅÔ ÎÏÄ."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "äÌÑ ÜÔÏÊ ÎÏÄÙ ÎÅÔ ÓÓÙÌËÉ `ðÒÅÄÙÄÕÝÁÑ'."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "÷ ÜÔÏÍ ÄÏËÕÍÅÎÔÅ ÎÅÔ ÓÓÙÌËÉ `ðÒÅÄÙÄÕÝÁÑ' ÉÌÉ `÷×ÅÒÈ' ÄÌÑ ÜÔÏÊ ÎÏÄÙ."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "ðÒÏÄ×ÉÇÁÔØÓÑ ×ÐÅÒÅÄ ÉÌÉ ×ÎÉÚ ÐÏ ÓÔÒÕËÔÕÒÅ ÎÏÄ"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "ðÒÏÄ×ÉÇÁÔØÓÑ ÎÁÚÁÄ ÉÌÉ ××ÅÒÈ ÐÏ ÓÔÒÕËÔÕÒÅ ÎÏÄ"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "ðÒÏËÒÕÔÉÔØ ×ÐÅÒÅÄ ÔÅËÕÝÅÅ ÏËÎÏ"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ ×ÐÅÒÅÄ É ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÍÅÒ ÏËÎÁ ÐÏ ÕÍÏÌÞÁÎÉÀ"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "ðÒÏËÒÕÔÉÔØ ×ÐÅÒÅÄ ÔÅËÕÝÅÅ ÏËÎÏ, ÏÓÔÁ×ÁÑÓØ × ÔÅËÕÝÅÊ ÎÏÄÅ"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "ðÒÏËÒÕÔÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ ×ÐÅÒÅÄ, ÏÓÔÁ×ÁÑÓØ × ÔÅËÕÝÅÊ ÎÏÄÅ, É ÕÓÔÁÎÏ×ÉÔØ "
+ "ÒÁÚÍÅÒ ÏËÎÁ ÐÏ ÕÍÏÌÞÁÎÉÀ"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÎÁÚÁÄ ÔÅËÕÝÅÅ ÏËÎÏ"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ ÎÁÚÁÄ É ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÍÅÒ ÏËÎÁ ÐÏ ÕÍÏÌÞÁÎÉÀ"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÎÁÚÁÄ ÔÅËÕÝÅÅ ÏËÎÏ, ÏÓÔÁ×ÁÑÓØ × ÔÅËÕÝÅÊ ÎÏÄÅ"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "ðÒÏËÒÕÔÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ ÎÁÚÁÄ, ÏÓÔÁ×ÁÑÓØ × ÔÅËÕÝÅÊ ÎÏÄÅ, É ÕÓÔÁÎÏ×ÉÔØ ÒÁÚÍÅÒ "
+ "ÏËÎÁ ÐÏ ÕÍÏÌÞÁÎÉÀ"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "ðÅÒÅÍÅÓÔÉÔØÓÑ × ÎÁÞÁÌÏ ÎÏÄÙ"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "ðÅÒÅÍÅÓÔÉÔØÓÑ × ËÏÎÅÃ ÎÏÄÙ"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÎÁ ÎÅÓËÏÌØËÏ ÓÔÒÏË ×ÎÉÚ"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÎÁ ÎÅÓËÏÌØËÏ ÓÔÒÏË ××ÅÒÈ"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÎÁ ÐÏÌÜËÒÁÎÁ ×ÎÉÚ"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÎÁ ÐÏÌÜËÒÁÎÁ ××ÅÒÈ"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "÷ÙÂÒÁÔØ ÓÌÅÄÕÀÝÅÅ ÏËÎÏ"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "÷ÙÂÒÁÔØ ÐÒÅÄÙÄÕÝÅÅ ÏËÎÏ"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "òÁÚÂÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "õÄÁÌÉÔØ ÔÅËÕÝÅÅ ÏËÎÏ"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏÓÔÏÑÎÎÏÅ ÏËÎÏ"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "õÄÁÌÉÔØ ×ÓÅ ÏÓÔÁÌØÎÙÅ ÏËÎÁ"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÄÒÕÇÏÅ ÏËÎÏ"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "ðÒÏËÒÕÔÉÔØ ÄÒÕÇÏÅ ÏËÎÏ ÎÁÚÁÄ"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "õ×ÅÌÉÞÉÔØ (ÉÌÉ ÕÍÅÎØÛÉÔØ) ÔÅËÕÝÅÅ ÏËÎÏ"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "òÁÚÄÅÌÉÔØ ÄÏÓÔÕÐÎÏÅ ÍÅÓÔÏ ÎÁ ÜËÒÁÎÅ ÍÅÖÄÕ ×ÉÄÉÍÙÍÉ ÏËÎÁÍÉ"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "ðÅÒÅËÌÀÞÉÔØ ÒÅÖÉÍ ÒÁÚÂÉ×ÁÎÉÑ ÓÔÒÏË × ÔÅËÕÝÅÍ ÏËÎÅ"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "ðÅÒÅÊÔÉ ÎÁ `óÌÅÄÕÀÝÕÀ' ÎÏÄÕ"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "ðÅÒÅÊÔÉ ÎÁ `ðÒÅÄÙÄÕÝÕÀ' ÎÏÄÕ"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "ðÅÒÅÊÔÉ ÎÁ `÷ÅÒÈÎÀÀ' ÎÏÄÕ"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "ðÅÒÅÊÔÉ ÎÁ ÐÏÓÌÅÄÎÀÀ ÎÏÄÕ × ÆÁÊÌÅ"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "üÔÏ ÏËÎÏ ÎÅ ÉÍÅÅÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÎÏÄ"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "ðÅÒÅÊÔÉ ÎÁ ÐÅÒ×ÕÀ ÎÏÄÕ × ÆÁÊÌÅ"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "÷ÙÂÒÁÔØ ÐÏÓÌÅÄÎÉÊ ÐÕÎËÔ ÍÅÎÀ × ÔÅËÕÝÅÊ ÎÏÄÅ"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "÷ÙÂÒÁÔØ ÚÁÄÁÎÎÙÊ ÐÕÎËÔ ÍÅÎÀ"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "÷ ÜÔÏÍ ÍÅÎÀ ÎÅÔ %d ÐÕÎËÔÏ×."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "ðÕÎËÔ ÍÅÎÀ (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "ðÕÎËÔ ÍÅÎÀ: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "ðÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "ðÅÒÅÊÔÉ ÐÏ ÓÓÙÌËÅ: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "óÞÉÔÁÔØ ÉÍÑ ÐÕÎËÔÁ ÍÅÎÀ É ÐÅÒÅÊÔÉ Ë ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ÎÏÄÅ"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "óÞÉÔÁÔØ ÉÍÑ ÓÓÙÌËÉ ÉÌÉ ÓÎÏÓËÉ É ÐÅÒÅÊÔÉ Ë ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ÎÏÄÅ"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "óÍÅÓÔÉÔØÓÑ Ë ÎÁÞÁÌÕ ÍÅÎÀ ÔÅËÕÝÅÊ ÎÏÄÙ"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "ðÒÏÓÍÏÔÒÅÔØ ÏÄÎÏ×ÒÅÍÅÎÎÏ ËÁË ÍÏÖÎÏ ÂÏÌØÛÅ ÎÏÄ"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "óÞÉÔÁÔØ ÉÍÑ ÎÏÄÙ É ÐÅÒÅÊÔÉ Ë ÎÅÊ"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "ðÅÒÅÊÔÉ Ë ÎÏÄÅ: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "÷ ÎÏÄÅ `%s' ÎÅÔ ÍÅÎÀ."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "ðÕÎËÔ ÍÅÎÀ `%s' ÏÔÓÕÔÓÔ×ÕÅÔ × ÎÏÄÅ `%s'."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ ÎÏÄÕ ÐÏ ÓÓÙÌËÅ `%s' × `%s'."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "óÞÉÔÁÔØ ÓÐÉÓÏË ÍÅÎÀ, ÎÁÞÉÎÁÀÝÉÊÓÑ Ó dir É ÐÒÏÓÌÅÄÏ×ÁÔØ ÐÏ ÎÉÍ"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "ðÒÏÓÌÅÄÏ×ÁÔØ ÐÏ ÍÅÎÀ: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "îÁÈÏÄÉÔ ÎÏÄÕ, ÒÁÓÓËÁÚÙ×ÁÀÝÕÀ, ËÁË ×ÙÚÙ×ÁÔØ ÐÒÏÇÒÁÍÍÕ"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "îÁÊÔÉ ÎÏÄÕ Invocation ÄÌÑ [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "óÞÉÔÁÔØ ÉÍÑ manpage É ÐÅÒÅÊÔÉ Ë ÎÅÊ"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "ðÒÏÓÍÏÔÒÅÔØ manpage: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "ðÅÒÅÊÔÉ ÎÁ `ðÅÒ×ÕÀ' ÎÏÄÕ"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "ðÅÒÅÊÔÉ ÎÁ ÎÏÄÕ `(dir)'"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "õÄÁÌÉÔØ ÎÏÄÕ (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÎÏÄÕ `%s'"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÐÏÓÌÅÄÎÀÀ ÎÏÄÕ"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "ðÅÒÅÊÔÉ Ë ÐÏÓÌÅÄÎÅÊ ×ÙÂÒÁÎÎÏÊ ÎÏÄÅ"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "õÄÁÌÉÔØ ÔÅËÕÝÕÀ ÎÏÄÕ"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "óÞÉÔÁÔØ ÉÍÑ ÆÁÊÌÁ É ÐÅÒÅÊÔÉ Ë ÎÅÍÕ"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "ïÂÒÁÔÉÔØÓÑ Ë ÆÁÊÌÕ: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÎÁÊÔÉ `%s'."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ `%s'."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "úÁ×ÅÒÛÅÎÏ."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "úÁÐÉÓØ ÎÏÄÙ %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "îÁÐÒÁ×ÉÔØ ÓÏÄÅÒÖÉÍÏÅ ÜÔÏÊ ÎÏÄÙ ÎÁ ×ÈÏÄ ËÏÍÁÎÄÙ INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ËÁÎÁÌ Ë `%s'."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "ðÅÞÁÔØ ÎÏÄÙ %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "õÎÉÞÔÏÖÉÔØ ÔÅËÓÔ ÄÏ ÎÁÞÁÌÁ ÓÔÒÏËÉ"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "ðÏÉÓË ÆÁÊÌÁ %s ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "óÞÉÔÁÔØ ÓÔÒÏËÕ É ÚÁÐÕÓÔÉÔØ ÒÅÇÉÓÔÒÏÚÁ×ÉÓÉÍÙÊ ÐÏÉÓË"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "óÞÉÔÁÔØ ÓÔÒÏËÕ É ÚÁÐÕÓÔÉÔØ ÐÏÉÓË"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "óÞÉÔÁÔØ ÓÔÒÏËÕ É ÚÁÐÕÓÔÉÔØ ÐÏÉÓË × ÏÂÒÁÔÎÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s ÓÔÒÏËÉ [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr " c ÕÞÅÔÏÍ ÒÅÇÉÓÔÒÁ "
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "ïÂÒÁÔÎÙÊ ÐÏÉÓË"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "ðÏÉÓË"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "îÅ ÎÁÊÄÅÎÏ"
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "ðÏ×ÔÏÒÉÔØ ÐÏÓÌÅÄÎÉÊ ÐÏÉÓË × ÔÏÍ ÖÅ ÎÁÐÒÁ×ÌÅÎÉÉ"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "îÅÔ ÓÔÒÏËÉ ÐÒÅÄÙÄÕÝÅÇÏ ÐÏÉÓËÁ"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "ðÏ×ÔÏÒÉÔØ ÐÏÓÌÅÄÎÉÊ ÐÏÉÓË × ÏÂÒÁÔÎÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "úÁÐÕÓÔÉÔØ ÉÎÔÅÒÁËÔÉ×ÎÙÊ ÎÁÒÁÝÉ×ÁÅÍÙÊ ÐÏÉÓË"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "îÁÒÁÝÉ×ÁÅÍÙÊ ÏÂÒÁÔÎÙÊ ÐÏÉÓË: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "îÁÒÁÝÉ×ÁÅÍÙÊ ÏÂÒÁÔÎÙÊ ÐÏÉÓË: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "îÁÒÁÝÉ×ÁÅÍÙÊ ÐÏÉÓË: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "îÁÒÁÝÉ×ÁÅÍÙÊ ÐÏÉÓË: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "îÅ ÎÁÊÄÅÎÏ "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "óÍÅÓÔÉÔØÓÑ Ë ÐÒÅÄÙÄÕÝÅÊ ÓÓÙÌËÅ"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "óÍÅÓÔÉÔØÓÑ Ë ÓÌÅÄÕÀÝÅÊ ÓÓÙÌËÅ"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "÷ÙÂÒÁÔØ ÓÓÙÌËÕ ÉÌÉ ÐÕÎËÔ ÍÅÎÀ, ÎÁÈÏÄÑÝÉÊÓÑ ÎÁ ÄÁÎÎÏÊ ÓÔÒÏËÅ"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "ïÔÍÅÎÉÔØ ×ÙÐÏÌÎÅÎÉÅ ÔÅËÕÝÅÊ ËÏÍÁÎÄÙ"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "÷ÙÈÏÄ"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "ðÅÒÅÍÅÓÔÉÔØ ËÕÒÓÏÒ Ë ÚÁÄÁÎÎÏÊ ÓÔÒÏËÅ ÏËÎÁ"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "ðÅÒÅÒÉÓÏ×ÁÔØ ÜËÒÁÎ"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "÷ÙÊÔÉ ÉÚ Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "úÁÐÕÓÔÉÔØ ËÏÍÁÎÄÕ, ÐÒÉ×ÑÚÁÎÎÕÀ Ë ÜÔÏÊ ËÌÁ×ÉÛÅ × ÎÉÖÎÅÍ ÒÅÇÉÓÔÒÅ"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "îÅÉÚ×ÅÓÔÎÁÑ ËÏÍÁÎÄÁ (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" ÎÅ×ÅÒÎÁÑ ËÏÍÁÎÄÁ"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "`%s' ÎÅ×ÅÒÎÏ"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "äÏÂÁ×ÌÑÅÔ ÃÉÆÒÕ Ë ÔÅËÕÝÅÍÕ ÞÉÓÌÏ×ÏÍÕ ÁÒÇÕÍÅÎÔÕ"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "îÁÞÁÔØ (ÉÌÉ ÕÍÎÏÖÉÔØ ÎÁ 4) ÔÅËÕÝÉÊ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "éÓÐÏÌØÚÕÅÔÓÑ ÆÕÎËÃÉÅÊ \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: ÷ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ÓÎÏÓËÉ ÐÏÑ×ÌÑÀÔÓÑ É ÉÓÞÅÚÁÀÔ Á×ÔÏÍÁÔÉÞÅÓËÉ"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ÓÏÚÄÁÎÉÅ ÉÌÉ ÕÄÁÌÅÎÉÅ ÏËÎÁ ÉÚÍÅÎÑÅÔ ÒÁÚÍÅÒ ÄÒÕÇÉÈ "
+ "ÏËÏÎ"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ×ÍÅÓÔÏ Ú×ÕËÏ×ÏÇÏ ÓÉÇÎÁÌÁ ÍÉÇÁÅÔ ÜËÒÁÎ"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ÏÛÉÂËÉ ×ÙÚÙ×ÁÀÔ Ú×ÕËÏ×ÏÊ ÓÉÇÎÁÌ"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ÐÒÏÉÚ×ÏÄÉÔØ ÓÂÏÒËÕ ÍÕÓÏÒÁ ÄÌÑ ÓÖÁÔÙÈ ÆÁÊÌÏ×"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), ×ÙÄÅÌÑÔØ ÐÒÉ ÐÏÉÓËÅ ÓÏ×ÐÁ×ÛÕÀ ÓÔÒÏËÕ"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "ïÐÒÅÄÅÌÑÅÔ ÐÏ×ÅÄÅÎÉÅ ÐÒÏËÒÕÔËÉ × ËÏÎÃÅ ÎÏÄÙ"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "þÉÓÌÏ ÐÒÏËÒÕÞÉ×ÁÅÍÙÈ ÓÔÒÏË, ËÏÇÄÁ ËÕÒÓÏÒ ÐÅÒÅÍÅÝÁÅÔÓÑ ÚÁ ÐÒÅÄÅÌÙ ÏËÎÁ"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎÏ (\"On\"), Info ÏÔÏÂÒÁÖÁÅÔ ÓÉÍ×ÏÌÙ ISO Latin"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "ïÐÒÅÄÅÌÑÅÔ ÐÏ×ÅÄÅÎÉÅ ÐÒÏËÒÕÔËÉ × ËÏÎÃÅ ÎÏÄÙ"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "ïÐÉÓÁÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÅÒÅÍÅÎÎÏÊ"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "ïÐÉÓÁÔØ ÐÅÒÅÍÅÎÎÕÀ: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "õÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "õÓÔÁÎÏ×ÉÔØ ÐÅÒÅÍÅÎÎÕÀ: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "õÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ %s ÒÁ×ÎÙÍ (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "õÓÔÁÎÏ×ÉÔØ ÚÎÁÞÅÎÉÅ %s ÒÁ×ÎÙÍ (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** ôÅÇÉ ÕÓÔÁÒÅÌÉ ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), ÓÔÒÏË ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, ÓÔÒÏË: %d --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, ÓÔÒÏË: %d --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " æÁÊÌ: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " ÄÌÑ %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\túÁÐÕÓÔÉÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÐÏÌÎÏÇÏ ÓÐÉÓËÁ ËÌÀÞÅÊ.\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... TEXINFO-æáêì...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "ïÂ ÏÛÉÂËÁÈ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ bug-texinfo@gnu.org,\n"
+ "ÏÂÝÅÅ ÏÂÓÕÖÄÅÎÉÅ É ×ÏÐÒÏÓÙ ÎÁÐÒÁ×ÌÑÊÔÅ ÐÏ ÁÄÒÅÓÕ help-texinfo@gnu.org.\n"
+ "äÏÍÁÛÎÁÑ ÓÔÒÁÎÉÃÁ Texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "üÔÏ ÆÁÊÌ .../info/dir, ÓÏÄÅÒÖÁÝÉÊ ËÏÒÎÅ×ÕÀ ÎÏÄÕ ÉÅÒÁÒÈÉÉ Info,\n"
+ "ÎÁÚÙ×ÁÅÍÕÀ (dir)Top.  ðÒÉ ×ÙÚÏ×Å Info ×Ù ×ÉÄÉÔÅ ÜÔÕ ÎÏÄÕ.\n"
+ "\n"
+ "%s\tüÔÏ ËÏÒÎÅ×ÁÑ ÎÏÄÁ ÉÅÒÁÒÈÉÉ Info\n"
+ "\n"
+ "  úÄÅÓØ (× ËÁÔÁÌÏÇÅ Info) ÐÒÅÄÓÔÁ×ÌÅÎÏ ÍÅÎÀ ÐÏ ÏÓÎÏ×ÎÙÍ ÔÅÍÁÍ.\n"
+ "  îÁÖÍÉÔÅ \"q\" ÞÔÏÂÙ ×ÙÊÔÉ, \"?\" ÞÔÏÂÙ ÐÏÓÍÏÔÒÅÔØ ×ÓÅ ËÏÍÁÎÄÙ Info,\n"
+ "  \"d\" ÞÔÏÂÙ ×ÅÒÎÕÔØÓÑ ÓÀÄÁ, \"h\" ÞÔÏÂÙ ÐÒÏÞÉÔÁÔØ ÒÕËÏ×ÏÄÓÔ×Ï ÄÌÑ "
+ "ÎÏ×ÉÞËÏ×,\n"
+ "  \"mEmacs<Return>\" ÞÔÏÂÙ ÐÒÏÞÉÔÁÔØ ÒÕËÏ×ÏÄÓÔ×Ï ÐÏ Emacs.\n"
+ "\n"
+ "  ÷ Emacs ×Ù ÍÏÖÅÔÅ ÎÁÖÁÔØ ×ÔÏÒÕÀ ËÎÏÐËÕ ÍÙÛÉ ÎÁ ÐÕÎËÔÅ ÍÅÎÀ ÉÌÉ ÓÓÙÌËÅ,\n"
+ "  ÞÔÏÂÙ ÐÅÒÅÊÔÉ Ë ÎÅÍÕ.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ (%s) É ÓÏÚÄÁÔØ (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: ÐÕÓÔÏÊ ÆÁÊÌ"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY ÂÅÚ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY ÂÅÚ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ ÆÁÊÌ dir: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: íÏÖÎÏ ÚÁÄÁÔØ ÔÏÌØËÏ ÏÄÉÎ Info-ÆÁÊÌ.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "ÉÚÌÉÛÎÉÊ ÁÒÇÕÍÅÎÔ `%s'"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ "îÅ ÚÁÄÁÎ ×ÈÏÄÎÏÊ ÆÁÊÌ.\n"
+ "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ "îÅ ÚÁÄÁÎ ÆÁÊÌ ËÁÔÁÌÏÇÁ.\n"
+ "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "× `%s' ÎÅÔ ×ÈÏÖÄÅÎÉÑ ÄÌÑ ËÁÔÁÌÏÇÁ Info"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "ÎÅ ÎÁÊÄÅÎÏ ×ÈÏÖÄÅÎÉÊ ÄÌÑ `%s'; ÎÉÞÅÇÏ ÎÅ ÕÄÁÌÅÎÏ"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "ÁÒÇÕÍÅÎÔÙ ÄÌÑ @%s ÉÇÎÏÒÉÒÏ×ÁÎÙ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "ÑÎ×ÁÒÑ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "ÆÅ×ÒÁÌÑ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "ÍÁÒÔÁ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "ÁÐÒÅÌÑ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "ÍÁÑ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "ÉÀÎÑ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "ÉÀÌÑ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "Á×ÇÕÓÔÁ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "ÓÅÎÔÑÂÒÑ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "ÏËÔÑÂÒÑ"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "ÎÏÑÂÒÑ"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "ÄÅËÁÂÒÑ"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "ÍÁÌÏ×ÅÒÏÑÔÎÙÊ ÚÎÁË %c × @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "×ÅÓØ ÁÒÇÕÍÅÎÔ @sc ÎÁÂÒÁÎ ÚÁÇÌÁ×ÎÙÍÉ ÂÕË×ÁÍÉ, ÒÅÚÕÌØÔÁÔÁ ÎÅ ÂÕÄÅÔ"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "ÏÖÉÄÁÌÏÓØ `{', ×ÓÔÒÅÞÅÎÏ `%c'"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "ËÏÎÅÃ ÆÁÊÌÁ ×ÓÔÒÅÞÅÎ ×ÎÕÔÒÉ ÎÅÏËÏÎÞÅÎÎÏÇÏ ÂÌÏËÁ"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "ÏÖÉÄÁÌÏÓØ `}', ×ÓÔÒÅÞÅÎÏ `%c'"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@strong{Note...} ÓÏÚÄÁÅÔ × Info ÌÏÖÎÕÀ ÐÅÒÅËÒÅÓÔÎÕÀ ÓÓÙÌËÕ; ÐÅÒÅÆÒÁÚÉÒÕÊÔÅ "
+ "ÔÅËÓÔ, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ÜÔÏÇÏ"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "ëÏÍÁÎÄÁ %c%s ÕÓÔÁÒÅÌÁ É ÎÅ ÉÓÐÏÌØÚÕÅÔÓÑ"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "ËÏÍÁÎÄÅ @sp ÎÕÖÎÏ ÕËÁÚÁÔØ ÐÏÌÏÖÉÔÅÌØÎÙÊ ÞÉÓÌÏ×ÏÊ ÁÒÇÕÍÅÎÔ, Á ÎÅ `%s'"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "ðÌÏÈÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "asis"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "none"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "ðÌÏÈÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ @%s"
+ 
+ # ???
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "insert"
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "ðÌÏÈÏÊ ÁÒÇÕÍÅÎÔ ÄÌÑ @%s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "÷ ÁÒÇÕÍÅÎÔÅ @def ÐÒÏÐÕÝÅÎÁ `}'"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "îÕÖÎÏ ÂÙÔØ × ÂÌÏËÅ `@%s', ÞÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ `@%s'"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "ÐÅÒÅÄ ÉÍÅÎÅÍ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ ÏÐÕÝÅÎÏ `%s'"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "`%s' ÏÐÕÝÅÎÏ, ÐÏÓËÏÌØËÕ ÐÅÞÁÔØ ÉÄÅÔ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "÷ÙÈÏÄÎÏÊ ÂÕÆÅÒ ÎÅ ÐÕÓÔ."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "óÍÏÔÒÉÔÅ "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`%c%s' ÔÒÅÂÕÅÔ ÁÒÇÕÍÅÎÔ `{...}', Á ÎÅ ÐÒÏÓÔÏ `%s'"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "äÌÑ ÓÎÏÓËÉ `%s' ÎÅÔ ÚÁËÒÙ×ÁÀÝÅÊ ÆÉÇÕÒÎÏÊ ÓËÏÂËÉ"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "óÎÏÓËÁ ÏÐÒÅÄÅÌÅÎÁ ÂÅÚ ÒÏÄÉÔÅÌØÓËÏÊ ÎÏÄÙ"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "óÎÏÓËÉ ÉÚ ÓÎÏÓÏË ÚÁÐÒÅÝÅÎÙ"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "óÎÏÓËÉ"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ css-ÆÁÊÌ: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: css-ÆÁÊÌ ÏÂÒÙ×ÁÅÔÓÑ × ËÏÍÍÅÎÔÁÒÉÉ"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr ""
+ "[ÎÅÐÒÅÄ×ÉÄÅÎÎÁÑ ÓÉÔÕÁÃÉÑ] × ÓÔÅËÅ html-ÔÅÇÏ× ÎÅÔ ÜÌÅÍÅÎÔÁ ÄÌÑ ×ÙÔÁÌËÉ×ÁÎÉÑ"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[ÎÅÐÒÅÄ×ÉÄÅÎÎÁÑ ÓÉÔÕÁÃÉÑ] ÎÅ×ÅÒÎÏÅ ÉÍÑ ÎÏÄÙ: `%s'"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "éÍÅÎÎÏÊ ÕËÁÚÁÔÅÌØ `%s' ÎÅÉÚ×ÅÓÔÅÎ"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr ""
+ "Info ÎÅ ÍÏÖÅÔ ÏÂÒÁÂÏÔÁÔØ ÚÎÁË `:' ×Ï ×ÈÏÖÄÅÎÉÉ ÁÌÆÁ×ÉÔÎÏÇÏ ÕËÁÚÁÔÅÌÑ `%s'"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "éÍÅÎÎÏÊ ÕËÁÚÁÔÅÌØ `%s' ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "îÅÉÚ×ÅÓÔÅÎ ÉÍÅÎÎÏÊ ÕËÁÚÁÔÅÌØ `%s' É/ÉÌÉ `%s' × @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(ÓÔÒÏËÁ )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(ÓÔÒÏËÁ %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "îÅÉÚ×ÅÓÔÅÎ ÉÍÅÎÎÏÊ ÕËÁÚÁÔÅÌØ `%s' × @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "÷ÈÏÖÄÅÎÉÅ ÄÌÑ ÉÍÅÎÎÏÇÏ ÕËÁÚÁÔÅÌÑ `%s' ×ÎÅ ÎÏÄÙ"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(×ÎÅ ËÁËÏÊ-ÌÉÂÏ ÎÏÄÙ)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "ÎÅÌØÚÑ ÚÁÄÁ×ÁÔØ @item × ÁÒÇÕÍÅÎÔÅ ÄÌÑ @itemize"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Broken-Type × insertion_type_pname"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "ðÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ ÐÅÒÅÞÉÓÌÅÎÉÑ"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "ÚÁËÏÎÞÉÌÓÑ ÁÌÆÁ×ÉÔ, ×ÏÚ×ÒÁÔ ÎÁ %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s ÄÏÌÖÎÁ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ: ÆÏÒÍÁÔÏÍ ÄÌÑ %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "ÂÌÏËÉ %cfloat ÎÅÌØÚÑ ×ËÌÁÄÙ×ÁÔØ ÄÒÕÇ × ÄÒÕÇÁ"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "ÏÖÉÄÁÌÏÓØ `@end' Ó `%s', ×ÓÔÒÅÞÅÎÏ `%s'"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "îÅÔ ÐÁÒÎÏÊ `%cend %s'"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s ÔÒÅÂÕÅÔ ÂÕË×Ù ÉÌÉ ÃÉÆÒÙ"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "ËÏÎÅÃ ÆÁÊÌÁ ×ÓÔÒÅÞÅÎ ×ÎÕÔÒÉ ÎÅÏËÏÎÞÅÎÎÏÇÏ ÂÌÏËÁ"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s ÎÅ ÉÍÅÅÔ ÓÍÙÓÌÁ ×ÎÅ ÂÌÏËÁ `@float'"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu ×ÓÔÒÅÞÅÎÏ ÐÅÒÅÄ ÐÅÒ×ÏÊ @node, ÂÕÄÅÔ ÓÏÚÄÁÎÁ ÎÏÄÁ `Top'"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "×ÅÒÏÑÔÎÏ, ×ÁÛÁ ÎÏÄÁ @top ÄÏÌÖÎÁ ÂÙÔØ × ÂÌÏËÅ @ifnottex, Á ÎÅ × @ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu ×ÓÔÒÅÞÅÎÏ ÐÅÒÅÄ ÐÅÒ×ÏÊ @node, ÂÕÄÅÔ ÓÏÚÄÁÎÁ ÎÏÄÁ `Top'"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr "@%s ÎÅ ÉÍÅÅÔ ÓÍÙÓÌÁ ×ÎÅ ÂÌÏËÁ `@titlepage' ÉÌÉ `@quotation'"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s ÎÅ ÉÍÅÅÔ ÓÍÙÓÌÁ ×ÎÅ ÂÌÏËÁ `@titlepage'"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "îÅÐÁÒÎÁÑ `%c%s'"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "ðÏÓÌÅ `%c%s' ÄÏÌÖÎÏ ÞÔÏ-ÔÏ ÉÄÔÉ"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "ðÌÏÈÏÊ ÁÒÇÕÍÅÎÔ `%s' ÄÌÑ `@%s', ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ `%s'"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s ÎÅ ÉÍÅÅÔ ÓÍÙÓÌÁ ×ÎÕÔÒÉ ÂÌÏËÁ `@%s'"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx ÎÅ ÉÍÅÅÔ ÓÍÙÓÌÁ ×ÎÕÔÒÉ ÂÌÏËÁ `%s'"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s ×ÓÔÒÅÞÅÎÁ ×ÎÅ ÂÌÏËÁ ×ÓÔÁ×ËÉ"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s ÎÅ Ñ×ÌÑÅÔÓÑ ×ÅÒÎÙÍ ËÏÄÏÍ ÑÚÙËÁ ÉÚ ISO 639"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "ÉÍÑ ËÏÄÉÒÏ×ËÉ `%s' ÎÅ ÒÁÓÐÏÚÎÁÎÏ"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "ÉÚ×ÉÎÉÔÅ, ËÏÄÉÒÏ×ËÁ `%s' ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "ÎÅÐÒÁ×ÉÌØÎÏ ÚÁËÏÄÉÒÏ×ÁÎÎÙÊ ÚÎÁË `%s'"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s ÏÖÉÄÁÅÔ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ `i' ÉÌÉ `j', Á ÎÅ `%c'"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s ÏÖÉÄÁÅÔ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ ÏÄÉÎ ÓÉÍ×ÏÌ `i' ÉÌÉ `j'"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "ÍÁËÒÏ `%s' ÂÙÌÏ ÏÐÒÅÄÅÌÅÎÏ ÒÁÎØÛÅ"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "ÍÅÓÔÏ ÐÒÅÄÙÄÕÝÅÇÏ ÏÐÒÅÄÅÌÅÎÉÑ `%s'"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "ÐÏÓÌÅ \\ × ÒÁÓËÒÙÔÉÉ ÍÁËÒÏ ÓÔÏÉÔ `%s', Á ÎÅ ÉÍÑ ÐÁÒÁÍÅÔÒÁ"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "íÁËÒÏ `%s' ×ÙÚ×ÁÎÏ ÎÁ ÓÔÒÏËÅ %d Ó ÉÚÌÉÛÎÉÍÉ ÁÒÇÕÍÅÎÔÁÍÉ"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "ÎÅ ×ÓÔÒÅÞÅÎÏ %cend macro"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "ÎÅÐÁÒÎÙÅ @end %s É @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ÏÛÉÂÏË! ïÓÔÁÎÏ×ËÁ.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "úÄÅÓØ ÎÅ ÄÏÌÖÎÏ ÂÙÔØ %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... TEXINFO-æáêì...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "ðÒÅÏÂÒÁÚÕÅÔ ÄÏËÕÍÅÎÔÁÃÉÀ × ÆÏÒÍÁÔÅ Texinfo × ÄÒÕÇÉÅ ÆÏÒÍÁÔÙ, ÐÏ\n"
+ "ÕÍÏÌÞÁÎÉÀ × Info-ÆÁÊÌÙ, ËÏÔÏÒÙÅ ÍÏÖÎÏ ÞÉÔÁÔØ Ó ÐÏÍÏÝØÀ Emacs ÉÌÉ\n"
+ "ÏÔÄÅÌØÎÏÊ ÐÒÏÇÒÁÍÍÙ GNU Info.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, fuzzy, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "ïÂÝÉÅ ËÌÀÞÉ:\n"
+ "      --error-limit=þéóìï       ÏÓÔÁÎÏ×ÉÔØÓÑ ÐÏÓÌÅ þéóìá ÏÛÉÂÏË (ÐÏ "
+ "ÕÍÏÌÞÁÎÉÀ %d).\n"
+ "      --force                   ÓÏÈÒÁÎÑÔØ ×Ù×ÏÄ, ÄÁÖÅ ÅÓÌÉ ÂÙÌÉ ÏÛÉÂËÉ.\n"
+ "      --help                    ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ.\n"
+ "      --no-validate             ÎÅ ÐÒÏÉÚ×ÏÄÉÔØ ÐÒÏ×ÅÒËÕ ÐÅÒÅËÒÅÓÔÎÙÈ "
+ "ÓÓÙÌÏË.\n"
+ "      --no-warn                 ÎÅ ÐÏËÁÚÙ×ÁÔØ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ (ÎÏ ÎÅ "
+ "ÏÛÉÂËÉ).\n"
+ "      --reference-limit=î       ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÓÓÙÌÏË, ÎÅ ×ÙÚÙ×ÁÀÝÅÅ\n"
+ "                                  ×Ù×ÏÄ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ %d).\n"
+ "  -v, --verbose                 ÐÏÑÓÎÑÔØ ÄÅÊÓÔ×ÉÑ.\n"
+ "      --version                 ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ.\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, fuzzy, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "÷ÙÂÏÒ ×ÙÈÏÄÎÏÇÏ ÆÏÒÍÁÔÁ (ÐÏ ÕÍÏÌÞÁÎÉÀ ×Ù×ÏÄÉÔÓÑ Info):\n"
+ "      --docbook             ×Ù×ÏÄÉÔØ × ÆÏÒÍÁÔÅ DocBook XML, Á ÎÅ Info.\n"
+ "      --html                ×Ù×ÏÄÉÔØ × ÆÏÒÍÁÔÅ HTML, Á ÎÅ Info.\n"
+ "      --xml                 ×Ù×ÏÄÉÔØ × ÆÏÒÍÁÔÅ Texinfo XML, Á ÎÅ × Info.\n"
+ "      --plaintext           ×Ù×ÏÄÉÔØ ÐÒÏÓÔÏÊ ÔÅËÓÔ, Á ÎÅ Info.\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ #, fuzzy
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "ïÂÝÉÅ ËÌÀÞÉ, ÕÐÒÁ×ÌÑÀÝÉÅ ×Ù×ÏÄÏÍ:\n"
+ " -E, --macro-expand æáêì   ×Ù×ÅÓÔÉ × æáêì ÐÅÒ×ÏÎÁÞÁÌØÎÙÊ Texinfo-ÆÁÊÌ Ó\n"
+ "                           ÒÁÓËÒÙÔÙÍÉ ÍÁËÒÏÓÁÍÉ.\n"
+ "     --no-headers          ×Ù×ÏÄÉÔØ ÐÒÏÓÔÏÊ ÔÅËÓÔ, ÐÒÏÐÕÓËÁÑ ÒÁÚÄÅÌÉÔÅÌÉ "
+ "ÎÏÄ\n"
+ "                           Info É ÓÔÒÏËÉ Node:; ÐÉÓÁÔØ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ "
+ "×Ù×ÏÄ,\n"
+ "                           ÅÓÌÉ ÎÅ ÚÁÄÁÎ ËÌÀÞ --output.\n"
+ "     --no-split            ÐÏÄÁ×ÉÔØ ÒÁÚÂÉÅÎÉÅ ÂÏÌØÛÉÈ Info- ÉÌÉ HTML-"
+ "ÆÁÊÌÏ×,\n"
+ "                           ÓÏÚÄÁ×ÁÔØ ÔÏÌØËÏ ÏÄÉÎ ×ÙÈÏÄÎÏÊ ÆÁÊÌ.\n"
+ "     --number-sections     ×ËÌÀÞÁÔØ × ×Ù×ÏÄ ÎÏÍÅÒÁ ÇÌÁ×, ÒÁÚÄÅÌÏ× É "
+ "ÐÒÉÌÏÖÅÎÉÊ.\n"
+ " -o, --output=æáêì         ×Ù×ÏÄÉÔØ × ÕËÁÚÁÎÎÙÊ æáêì (ËÁÔÁÌÏÇ ÄÌÑ HTML Ó \n"
+ "                           ÒÁÚÂÉÅÎÉÅÍ).\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, fuzzy, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "ëÌÀÞÉ ÄÌÑ Info É ÐÒÏÓÔÏÇÏ ÔÅËÓÔÁ:\n"
+ "      --enable-encoding       ×Ù×ÏÄÉÔØ ÚÎÁËÉ Ó ÁËÃÅÎÔÁÍÉ É ÓÐÅÃÉÁÌØÎÙÅ "
+ "ÚÎÁËÉ,\n"
+ "                                ÏÓÎÏ×Ù×ÁÑÓØ ÎÁ @documentencoding.\n"
+ "      --fill-column=þéóìï     ÒÁÚÂÉ×ÁÔØ ÓÔÒÏËÉ ÄÌÉÎÎÅÅ þéóìá ÚÎÁËÏ× (ÐÏ\n"
+ "                                ÕÍÏÌÞÁÎÉÀ %d).\n"
+ "      --footnote-style=óôéìø  ×Ù×ÏÄÉÔØ ÓÎÏÓËÉ ÏÄÎÉÍ ÉÚ óôéìåê:\n"
+ "                                `separate' -- ÐÏÍÅÝÁÔØ ÓÎÏÓËÉ × ÏÔÄÅÌØÎÕÀ "
+ "ÎÏÄÕ,\n"
+ "                                `end' -- ÐÏÍÅÝÁÔØ ÓÎÏÓËÉ × ËÏÎÅÃ ÎÏÄÙ, ÇÄÅ "
+ "ÏÎÉ ÂÙÌÉ\n"
+ "                                ÏÐÒÅÄÅÌÅÎÙ (ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
+ "      --paragraph-indent=î    ÄÅÌÁÔØ ÏÔÓÔÕÐÙ ÛÉÒÉÎÏÊ î ÐÒÏÂÅÌÏ× (ÐÏ "
+ "ÕÍÏÌÞÁÎÉÀ %d).\n"
+ "                                åÓÌÉ î ÒÁ×ÎÏ `none', ÎÅ ÄÅÌÁÔØ ÏÔÓÔÕÐÙ, "
+ "ÅÓÌÉ\n"
+ "                                `asis', ÓÏÈÒÁÎÑÔØ ÓÕÝÅÓÔ×ÕÀÝÉÅ ÏÔÓÔÕÐÙ.\n"
+ "      --split-size=òáúíåò     ÒÁÚÂÉ×ÁÔØ ÎÁ ÆÁÊÌÙ ÚÁÄÁÎÎÏÇÏ òáúíåòá (ÐÏ\n"
+ "                                ÕÍÏÌÞÁÎÉÀ %d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ #, fuzzy
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "ëÌÀÞÉ ÄÌÑ HTML:\n"
+ "      --css-include=æáêì        ×ËÌÀÞÉÔØ æáêì × ÔÅÇ <style> × ×Ù×ÏÄÅ HTML;\n"
+ "                                ÞÉÔÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ, ÅÓÌÉ æáêì ÚÁÄÁÎ ËÁË "
+ "-.\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, fuzzy, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "ëÌÀÞÉ ÄÌÑ XML É Docbook:\n"
+ "      --output-indent=þéóìï     ÄÅÌÁÔØ ÄÌÑ XML-ÜÌÅÍÅÎÔÏ× ÏÔÓÔÕÐÙ ÎÁ "
+ "ÚÁÄÁÎÎÏÅ \n"
+ "                                  þéóìï ÐÒÏÂÅÌÏ× (ÐÏ ÕÍÏÌÞÁÎÉÀ %d).\n"
+ "                                åÓÌÉ þéóìï ÒÁ×ÎÏ ÎÕÌÀ, ÎÅÚÎÁÞÁÝÉÅ ÐÒÏÂÅÌÙ "
+ "ÏÐÕÓËÁÀÔÓÑ.\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "ëÌÀÞÉ, ÕÐÒÁ×ÌÑÀÝÉÅ ×ÈÏÄÎÙÍÉ ÆÁÊÌÁÍÉ:\n"
+ "      --commands-in-node-names   ÐÏÚ×ÏÌÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ @-ËÏÍÁÎÄ × ÉÍÅÎÁÈ "
+ "ÎÏÄ.\n"
+ " -D ðåòåíåîîáñ           ÏÐÒÅÄÅÌÉÔØ ðåòåíåîîõà, ÁÎÁÌÏÇÉÞÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ "
+ "@set.\n"
+ " -I ëáôáìïç              ÄÏÂÁ×ÉÔØ ëáôáìïç × ËÏÎÅÃ ÓÐÉÓËÁ ÐÏÉÓËÁ ×ËÌÀÞÁÅÍÙÈ\n"
+ "                           ÆÁÊÌÏ× @include.\n"
+ " -P ëáôáìïç              ÄÏÂÁ×ÉÔØ ëáôáìïç × ÎÁÞÁÌÏ ÓÐÉÓËÁ ÐÏÉÓËÁ ×ËÌÀÞÁÅÍÙÈ\n"
+ "                           ÆÁÊÌÏ× @include.\n"
+ " -U ðåòåíåîîáñ           ÓÄÅÌÁÔØ ðåòåíåîîõà ÎÅÏÐÒÅÄÅÌÅÎÎÏÊ, ÁÎÁÌÏÇÉÞÎÏ\n"
+ "                           ÉÓÐÏÌØÚÏ×ÁÎÉÀ @clear.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "õÓÌÏ×ÎÁÑ ÏÂÒÁÂÏÔËÁ ÉÓÈÏÄÎÏÇÏ ÔÅËÓÔÁ:\n"
+ "  --ifhtml          ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifhtml É @html,\n"
+ "                      ÄÁÖÅ ÐÒÉ ×Ù×ÏÄÅ ÎÅ × ÆÏÒÍÁÔÅ HTML.\n"
+ "  --ifinfo          ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifinfo, ÄÁÖÅ ÐÒÉ\n"
+ "                      ×Ù×ÏÄÅ ÎÅ × ÆÏÒÍÁÔÅ Info.\n"
+ "  --ifplaintext     ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifplaintext, ÄÁÖÅ ÐÒÉ\n"
+ "                      ×Ù×ÏÄÅ ÎÅ × ÆÏÒÍÁÔÅ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÁ.\n"
+ "  --iftex           ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @iftex É @tex;\n"
+ "                      ÐÏÄÒÁÚÕÍÅ×ÁÅÔ --no-split.\n"
+ "  --ifxml           ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifxml É @xml.\n"
+ "  --no-ifhtml       ÎÅ ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifhtml É @html.\n"
+ "  --no-ifinfo       ÎÅ ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifinfo.\n"
+ "  --no-ifplaintext  ÎÅ ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifplaintext.\n"
+ "  --no-iftex        ÎÅ ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @iftex É @tex.\n"
+ "  --no-ifxml        ÎÅ ÏÂÒÁÂÁÔÙ×ÁÔØ ÔÅËÓÔ ×ÎÕÔÒÉ ÂÌÏËÏ× @ifxml É @xml.\n"
+ "\n"
+ "  ëÒÏÍÅ ÔÏÇÏ, ÄÌÑ ËÌÀÞÅÊ --no-ifæïòíáô, ÏÂÒÁÂÁÔÙ×ÁÔØ ÂÌÏËÉ @ifnotæïòíáô.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "ðÏ ÕÍÏÌÞÁÎÉÀ ÏÂÒÁÂÏÔËÁ ÕÓÌÏ×ÎÙÈ ËÏÍÁÎÄ @if... ÚÁ×ÉÓÉÔ ÏÔ ×ÙÈÏÄÎÏÇÏ ÆÏÒÍÁÔÁ:\n"
+ "  ÐÒÉ ×Ù×ÏÄÅ HTML ×ËÌÀÞÅÎ --ifhtml, Á ÏÓÔÁÌØÎÙÅ ×ÙËÌÀÞÅÎÙ;\n"
+ "  ÐÒÉ ×Ù×ÏÄÅ Info ×ËÌÀÞÅÎ --ifinfo, Á ÏÓÔÁÌØÎÙÅ ×ÙËÌÀÞÅÎÙ;\n"
+ "  ÐÒÉ ×Ù×ÏÄÅ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÁ ×ËÌÀÞÅÎ --ifplaintext, ÏÓÔÁÌØÎÙÅ ×ÙËÌÀÞÅÎÙ;\n"
+ "  ÐÒÉ ×Ù×ÏÄÅ XML ×ËÌÀÞÅÎ --ifxml, ÏÓÔÁÌØÎÙÅ ×ÙËÌÀÞÅÎÙ.\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "ðÒÉÍÅÒÙ:\n"
+ "  makeinfo foo.texi                    ÚÁÐÉÓÁÔØ Info × @setfilename ÉÚ foo\n"
+ "  makeinfo --html foo.texi             ÚÁÐÉÓÁÔØ HTML × @setfilename\n"
+ "  makeinfo --xml foo.texi              ÚÁÐÉÓÁÔØ Texinfo XML × @setfilename\n"
+ "  makeinfo --docbook foo.texi          ÚÁÐÉÓÁÔØ DocBook XML × @setfilename\n"
+ "  makeinfo --no-headers -o - foo.texi  ÚÁÐÉÓÁÔØ ÐÒÏÓÔÏÊ ÔÅËÓÔ ÎÁ "
+ "ÓÔÁÎÄÁÒÔÎÙÊ\n"
+ "                                         ×Ù×ÏÄ\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi ÚÁÐÉÓÁÔØ HTML ÂÅÚ ÍÅÎÀ É ÓÔÒÏË ÎÏÄÙ\n"
+ "  makeinfo --number-sections foo.texi  ÚÁÐÉÓÁÔØ Info Ó ÎÕÍÅÒÏ×ÁÎÎÙÍÉ "
+ "ÒÁÚÄÅÌÁÍÉ\n"
+ "  makeinfo --no-split foo.texi         ÚÁÐÉÓÁÔØ ÏÄÉÎ ÂÏÌØÛÏÊ Info-ÆÁÊÌ\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: ÎÅÉÚ×ÅÓÔÎÏÅ ÚÎÁÞÅÎÉÅ TEXINFO_OUTPUT_FORMAT `%s' ÉÇÎÏÒÉÒÏ×ÁÎÏ.\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: %s ÁÒÇÕÍÅÎÔ ÄÏÌÖÅÎ ÂÙÔØ ÞÉÓÌÏ×ÙÍ, ÎÅ `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ ÍÁËÒÏÒÁÓÛÉÒÅÎÉÑ `%s'"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: ×ÔÏÒÏÊ ×ÙÈÏÄÎÏÊ ÆÁÊÌ ÍÁËÒÏÒÁÓÛÉÒÅÎÉÑ `%s' ÉÇÎÏÒÉÒÏ×ÁÎ.\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ ×ÙÈÏÄÎÏÊ ÆÁÊÌ ÍÁËÒÏÒÁÓÛÉÒÅÎÉÑ `%s'"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: ×ÔÏÒÏÊ ×ÙÈÏÄÎÏÊ ÆÁÊÌ ÍÁËÒÏÒÁÓÛÉÒÅÎÉÑ `%s' ÉÇÎÏÒÉÒÏ×ÁÎ.\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: ÁÒÇÕÍÅÎÔ --paragraph-indent ÄÏÌÖÅÎ ÂÙÔØ ÞÉÓÌÏ×ÙÍ, ÉÌÉ\n"
+ "`none', ÉÌÉ `asis'; ÎÅ `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: ÁÒÇÕÍÅÎÔ --footnote-style ÄÏÌÖÅÎ ÂÙÔØ `separate' ÉÌÉ `end'; Á ÎÅ `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: ÐÒÏÐÕÝÅÎ ÁÒÇÕÍÅÎÔ, ÚÁÄÁÀÝÉÊ ÆÁÊÌ.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "îÅÐÒÁ×ÉÌØÎÏ ÉÓÐÏÌØÚÏ×ÁÎÁ ÍÎÏÇÏÓÔÒÏÞÎÁÑ ËÏÍÁÎÄÁ %c%s"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "ïÖÉÄÁÅÔÓÑ `%s'"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ËÁÔÁÌÏÇ `%s': %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "`%s' ÎÅ ÎÁÊÄÅÎ × `%s'"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: òÁÓËÒÙÔÉÅ ÍÁËÒÏÓÏ× × ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ ÎÅ ÐÒÏÉÚ×ÏÄÉÔÓÑ,\n"
+ "ÔÁË ËÁË ÔÕÄÁ ÎÁÐÒÁ×ÌÅÎ ×Ù×ÏÄ × ÆÏÒÍÁÔÅ Info.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "óÏÚÄÁÎÉÅ %s-ÆÁÊÌÁ `%s' ÉÚ `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: õÄÁÌÅÎÉÅ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ ÍÁËÒÏÒÁÓÛÉÒÅÎÉÊ `%s' -- ÂÙÌÉ ÏÛÉÂËÉ;\n"
+ "ÉÓÐÏÌØÚÕÊÔÅ --force, ÞÔÏÂÙ ÐÒÉÎÕÄÉÔÅÌØÎÏ ÓÏÈÒÁÎÉÔØ ÒÅÚÕÌØÔÁÔÙ.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: õÄÁÌÅÎÉÅ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ `%s' -- ÂÙÌÉ ÏÛÉÂËÉ;\n"
+ "ÉÓÐÏÌØÚÕÊÔÅ --force, ÞÔÏÂÙ ÐÒÉÎÕÄÉÔÅÌØÎÏ ÓÏÈÒÁÎÉÔØ ÒÅÚÕÌØÔÁÔÙ.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: õÄÁÌÅÎÉÅ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ `%s' -- ÂÙÌÉ ÏÛÉÂËÉ;\n"
+ "ÉÓÐÏÌØÚÕÊÔÅ --force, ÞÔÏÂÙ ÐÒÉÎÕÄÉÔÅÌØÎÏ ÓÏÈÒÁÎÉÔØ ÒÅÚÕÌØÔÁÔÙ.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "îÅÉÚ×ÅÓÔÎÁÑ ËÏÍÁÎÄÁ `%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr ""
+ "éÓÐÏÌØÚÕÊÔÅ ÆÉÇÕÒÎÙÅ ÓËÏÂËÉ, ÞÔÏÂÙ ÐÅÒÅÄÁÔØ @%s ËÏÍÁÎÄÕ × ËÁÞÅÓÔ×Å ÁÒÇÕÍÅÎÔÁ"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s ÐÏÄÒÁÚÕÍÅ×ÁÅÔ ÆÉÇÕÒÎÙÅ ÓËÏÂËÉ"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "îÅÐÁÒÎÁÑ }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "âåú_éíåîé!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s ÐÒÏÐÕÝÅÎÁ ÚÁËÒÙ×ÁÀÝÁÑ ÓËÏÂËÁ"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ `%s' × ËÏÍÁÎÄÅ @image (ÄÌÑ HTML): %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "æÁÊÌ `%s' ÎÅ ÓÕÝÅÓÔ×ÕÅÔ"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ ÆÁÊÌ `%s' × ËÏÍÁÎÄÅ @image (ÄÌÑ ÔÅËÓÔÁ): %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "ÐÏÓÌÅ @image ÐÒÏÐÕÝÅÎ ÁÒÇÕÍÅÎÔ ÚÁÄÁÀÝÉÊ ÆÁÊÌ "
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "ÎÅÏÐÒÅÄÅÌÅÎÎÙÊ ÆÌÁÇ: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{úÎÁÞÅÎÉÅ `%s' ÎÅ ÚÁÄÁÎÏ}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "ËÏÍÁÎÄÅ %c%s ÎÕÖÎÏ ÕËÁÚÁÔØ ÉÍÑ"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "ëÏÎÅÃ ÆÁÊÌÁ ÒÁÎØÛÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ËÏÍÁÎÄÙ @end %s"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "`%.40s...' ÓÌÉÛËÏÍ ×ÅÌÉËÏ; ÎÅ×ÏÚÍÏÖÎÏ ÒÁÓËÒÙÔØ"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "÷ ÛÁÂÌÏÎÅ @multitable ÐÒÏÐÕÝÅÎÁ `}'"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "ÔÅËÓÔ `%s' ÐÏÓÌÅ @multitable ÉÇÎÏÒÉÒÏ×ÁÎ"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "óÌÉÛËÏÍ ÍÎÏÇÏ ËÏÌÏÎÏË × ÜÌÅÍÅÎÔÅ ÔÁÂÌÉÃÙ (ÍÁËÓÉÍÕÍ %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[ÎÅÐÒÅÄ×ÉÄÅÎÎÁÑ ÓÉÔÕÁÃÉÑ] ÎÅ×ÏÚÍÏÖÎÏ ×ÙÂÒÁÔØ ËÏÌÏÎËÕ #%d × ÔÁÂÌÉÃÅ"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "@tab ×ÎÅ ÔÁÂÌÉÃÙ ÉÇÎÏÒÉÒÏ×ÁÎ"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** íÎÏÇÏËÏÌÏÎÏÞÎÙÊ ×Ù×ÏÄ ÉÚ ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÉ:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* ËÏÌÏÎËÁ %d: ×Ù×ÏÄ = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "îÏÄÁ `%s' ÂÙÌÁ ÒÁÎÅÅ ÏÐÒÅÄÅÌÅÎÁ × ÓÔÒÏËÅ %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "æÏÒÍÁÔÉÒÏ×ÁÎÉÅ ÎÏÄÙ %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "äÌÑ ÎÏÄÙ `%s' ÔÒÅÂÕÅÔÓÑ ËÏÍÁÎÄÁ ÏÐÉÓÁÎÉÑ ÓÔÒÕËÔÕÒÙ ÇÌÁ× (ÎÁÐÒ. %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "äÌÑ ËÏÍÁÎÄÙ `%c%s' ÎÅ ÚÁÄÁÎÏ ÉÍÑ ÎÏÄÙ"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "íÁÒËÅÒ `%s' É ÎÏÄÁ `%s' ÓÓÙÌÁÀÔÓÑ ÎÁ ÏÄÎÏ É ÔÏ ÖÅ ÉÍÑ ÆÁÊÌÁ"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "äÁÎÎÁÑ ËÏÍÁÎÄÁ @anchor ÉÇÎÏÒÉÒÕÅÔÓÑ; ÓÓÙÌËÉ ÎÁ ÎÅÅ ÎÅ ÂÕÄÕÔ ÒÁÂÏÔÁÔØ"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "ðÅÒÅÉÍÅÎÕÊÔÅ ÜÔÏÔ ÍÁÒËÅÒ ÉÌÉ ÉÓÐÏÌØÚÕÊÔÅ ËÌÀÞ `--no-split'"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "îÅÏÖÉÄÁÎÎÁÑ ÓÔÒÏËÁ × ËÏÎÃÅ ÒÁÚÂÉÔÏÇÏ HTML-ÆÁÊÌÁ `%s'"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "íÁÒËÅÒÙ `%s' É `%s' ÓÓÙÌÁÀÔÓÑ ÎÁ ÏÄÎÏ É ÔÏ ÖÅ ÉÍÑ ÆÁÊÌÁ"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "ëÏÍÁÎÄÁ @anchor ÉÇÎÏÒÉÒÕÅÔÓÑ; ÓÓÙÌËÉ ÎÁ ÎÅÅ ÎÅ ÂÕÄÕÔ ÒÁÂÏÔÁÔØ"
+ 
+ #  ÚÄÅÓØ %s ÍÏÖÅÔ ÂÙÔØ `cross' ÉÌÉ `menu'
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "%s ÎÁ ÎÅÓÕÝÅÓÔ×ÕÀÝÕÀ ÎÏÄÕ `%s' (×ÏÚÍÏÖÎÏ, ÎÅÐÒÁ×ÉÌØÎÏ ÏÐÉÓÁÎÁ ÓÔÒÕËÔÕÒÁ "
+ "ÇÌÁ×?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "îÁ ÐÏÌÅ Next ÎÏÄÙ `%s' ÎÅÔ ÓÓÙÌÏË (×ÏÚÍÏÖÎÏ, ÎÅÐÒÁ×ÉÌØÎÏ ÏÐÉÓÁÎÁ ÓÔÒÕËÔÕÒÁ "
+ "ÇÌÁ×?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "÷ ÜÔÏÊ ÎÏÄÅ (%s) ÎÅÐÒÁ×ÉÌØÎÙÊ ÕËÁÚÁÔÅÌØ Prev"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "îÁ ÐÏÌÅ Prev ÎÏÄÙ `%s' ÎÅÔ ÓÓÙÌÏË"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "÷ ÜÔÏÊ ÎÏÄÅ (%s) ÎÅÐÒÁ×ÉÌØÎÙÊ ÕËÁÚÁÔÅÌØ Next"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ "÷ ÎÏÄÅ `%s' ÎÅÔ ÐÏÌÑ Up (×ÏÚÍÏÖÎÏ, ÎÅÐÒÁ×ÉÌØÎÏ ÏÐÉÓÁÎÁ ÓÔÒÕËÔÕÒÁ ÇÌÁ×?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr "îÏÄÁ `%s' ÎÅ ÉÍÅÅÔ ÐÕÎËÔÁ ÍÅÎÀ ÄÌÑ `%s', ÈÏÔÑ ÎÁ ÎÅÅ ÓÓÙÌÁÅÔÓÑ ÐÏÌÅ Up"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "ÎÁ ÎÏÄÕ `%s' ÎÅÔ ÓÓÙÌÏË"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "õÄÁÌÅÎÉÅ %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "îÅ×ÏÚÍÏÖÎÏ ÕÄÁÌÉÔØ ÆÁÊÌ `%s': %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "ðÒÉÌÏÖÅÎÉÅ %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ (search_sectioning) `%s'!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "ëÏÍÁÎÄÁ %c%s ÕÓÔÁÒÅÌÁ; ÉÓÐÏÌØÚÕÊÔÅ ×ÍÅÓÔÏ ÎÅÅ %c%s"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "îÏÄÁ Ó %ctop × ËÁÞÅÓÔ×Å ÒÁÚÄÅÌÁ ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "úÄÅÓØ ÎÁÈÏÄÉÔÓÑ ÎÏÄÁ %ctop"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop ×ÓÔÒÅÞÅÎÁ ÐÅÒÅÄ %cnode, ÐÏ ÕÍÏÌÞÁÎÉÀ ÉÓÐÏÌØÚÕÅÔÓÑ %s"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ @image ÆÁÊÌ `%s': %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "ÉÓÐÏÌØÚÏ×ÁÎÉÅ @headitem × ËÁÞÅÓÔ×Å ÐÏÓÌÅÄÎÅÇÏ ÜÌÅÍÅÎÔÁ @multitable ×ÙÄÁÅÔ "
+ "ÎÅËÏÒÒÅËÔÎÙÅ ÄÏËÕÍÅÎÔÙ Docbook"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "ÉÚ"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "ÎÁÄ"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "îÁ ÜÔÏÊ ÎÏÄÅ ÎÅÔ ÓÓÙÌÏË."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "ÚÁÐÉÓÁÔØ ×Ù×ÏÄ × æáêì"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... æáêì...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr ""
+ "óÏÚÄÁÅÔ ÓÏÒÔÉÒÏ×ÁÎÎÙÊ ÁÌÆÁ×ÉÔÎÙÊ ÕËÁÚÁÔÅÌØ ÄÌÑ\n"
+ "ËÁÖÄÏÇÏ ×ÙÈÏÄÎÏÇÏ TeX-ÆÁÊÌÁ.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "æáêì... ÄÌÑ ÄÏËÕÍÅÎÔÁ `foo.texi' ÏÂÙÞÎÏ ÚÁÄÁÅÔÓÑ ËÁË `foo.%c%c'.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "ëÌÀÞÉ:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "ÏÛÉÂËÁ ÐÏ×ÔÏÒÎÏÇÏ ÏÔËÒÙÔÉÑ %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: ÎÅ texinfo-ÆÁÊÌ Ó ÁÌÆÁ×ÉÔÎÙÍ ÕËÁÚÁÔÅÌÅÍ"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "÷ %s ÎÅÔ ÎÏÍÅÒÁ ÓÔÒÁÎÉÃÙ"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "ÚÁ ×ÈÏÖÄÅÎÉÅÍ %s ÓÌÅÄÕÅÔ ×ÈÏÖÄÅÎÉÅ Ó ×ÔÏÒÉÞÎÙÍ ÉÍÅÎÅÍ"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search]  éÓËÁÔØ ÕËÁÚÁÎÎÕÀ ÓÔÒÏËÕ × ÔÅËÕÝÅÍ Info-ÆÁÊÌÅ É "
+ #~ "ÏÓÔÁÎÏ×ÉÔØÓÑ ×\n"
+ #~ "              ÎÏÄÅ, × ËÏÔÏÒÏÊ ÎÁÊÄÅÎÏ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10[goto-node]  ðÅÒÅÊÔÉ Ë ÎÏÄÅ, ÚÁÄÁÎÎÏÊ ÐÏ ÉÍÅÎÉ.\n"
+ #~ "              ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÔÁËÖÅ ÉÍÑ ÆÁÊÌÁ, ÎÁÐÒÉÍÅÒ (æáêì)îïäá.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "\\%-10[next-node]  ðÅÒÅÊÔÉ Ë \"ÓÌÅÄÕÀÝÅÊ\" ÎÏÄÅ.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  ðÅÒÅÊÔÉ Ë ËÏÒÎÅ×ÏÊ ÎÏÄÅ.  üË×É×ÁÌÅÎÔÎÏ `g (DIR)'.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr "\\%-10[top-node]  ðÅÒÅÊÔÉ Ë ÎÏÄÅ Top.  üË×É×ÁÌÅÎÔÎÏ `g Top'.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  éÓËÁÔØ ÕËÁÚÁÎÎÕÀ ÓÔÒÏËÕ × ÔÅËÕÝÅÍ Info-ÆÁÊÌÅ ×\n"
+ #~ "              ÎÏÄÅ, × ËÏÔÏÒÏÊ ÎÁÊÄÅÎÏ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- éÓÐÏÌØÚÕÊÔÅ `\\[history-node]' ÉÌÉ `\\[kill-node]' ÄÌÑ ×ÙÈÏÄÁ ---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr ""
+ #~ "\\%-10[move-to-prev-xref]  ðÅÒÅÍÅÓÔÉÔØÓÑ Ë ÓÌÅÄÕÀÝÅÊ ÇÉÐÅÒÓÓÙÌËÅ × ÜÔÏÊ "
+ #~ "ÎÏÄÅ.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... [ðõîëô-íåîà...]\n"
+ #~ "\n"
+ #~ "ðÏÚ×ÏÌÑÅÔ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÄÏËÕÍÅÎÔÁÃÉÀ × ÆÏÒÍÁÔÅ Info.\n"
+ #~ "\n"
+ #~ "ëÌÀÞÉ:\n"
+ #~ "      --apropos=ôåíá      ÉÓËÁÔØ ôåíõ ×Ï ×ÓÅÈ ÁÌÆÁ×ÉÔÎÙÈ ÕËÁÚÁÔÅÌÑÈ\n"
+ #~ "                          ×ÓÅÈ ÒÕËÏ×ÏÄÓÔ×.\n"
+ #~ "  -d, --directory=ëáôáìïç ÄÏÂÁ×ÉÔØ ëáôáìïç Ë INFOPATH.\n"
+ #~ "      --dribble=æáêì      ÚÁÐÉÓÁÔØ ××ÏÄÉÍÙÅ ÐÏÌØÚÏ×ÁÔÅÌÅÍ ÚÎÁËÉ × æáêì.\n"
+ #~ "  -f, --file=æáêì         ÐÏËÁÚÁÔØ ÚÁÄÁÎÎÙÊ æáêì.\n"
+ #~ "  -h, --help              ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ.\n"
+ #~ "      --index-search=óôòïëá    ÐÅÒÅÊÔÉ Ë ÎÏÄÅ, ÎÁ ËÏÔÏÒÕÀ ÓÓÙÌÁÅÔÓÑ "
+ #~ "ÚÁÄÁÎÎÏÅ\n"
+ #~ "                          óôòïëïê ×ÈÏÖÄÅÎÉÅ ÉÍÅÎÎÏÇÏ ÕËÁÚÁÔÅÌÑ.\n"
+ #~ "  -n, --node=îïäá         ÎÁÞÁÔØ ÐÒÏÓÍÏÔÒ Ó ÚÁÄÁÎÎÏÊ îïäù.\n"
+ #~ "  -o, --output=æáêì       ÚÁÐÉÓÁÔØ ×ÙÂÒÁÎÎÙÅ ÎÏÄÙ × æáêì.\n"
+ #~ "  -R, --raw-escapes       ×Ù×ÏÄÉÔØ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ANSI (ÐÏ "
+ #~ "ÕÍÏÌÞÁÎÉÀ).\n"
+ #~ "      --no-raw-escapes    ×Ù×ÏÄÉÔØ escape-ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ËÁË "
+ #~ "ÂÕË×ÁÌØÎÙÊ ÔÅËÓÔ.\n"
+ #~ "      --restore=æáêì      ÐÒÏÞÉÔÁÔØ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÎÁÖÁÔÙÈ ËÌÁ×ÉÛ ÉÚ "
+ #~ "æáêìá.\n"
+ #~ "  -O, --show-options, --usage ÐÅÒÅÊÔÉ Ë ÎÏÄÅ, ÏÐÉÓÙ×ÁÀÝÅÊ ËÌÀÞÉ ËÏÍÁÎÄÎÏÊ "
+ #~ "ÓÔÒÏËÉ.\n"
+ #~ "%s      --subnodes          ÒÅËÕÒÓÉ×ÎÏ ×Ù×ÏÄÉÔØ ÐÕÎËÔÙ ÍÅÎÀ.\n"
+ #~ "      --vi-keys           ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÉ×ÑÚËÉ ËÌÁ×ÉÛ ËÁË × vi É less.\n"
+ #~ "      --version           ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ.\n"
+ #~ "\n"
+ #~ "ðÅÒ×ÙÊ ÎÅ Ñ×ÌÑÀÝÉÊÓÑ ËÌÀÞÏÍ ÁÒÇÕÍÅÎÔ, ÅÓÌÉ ÏÎ ÅÓÔØ, ÚÁÄÁÅÔ ÉÍÑ\n"
+ #~ "ÎÁÞÁÌØÎÏÇÏ ÐÕÎËÔÁ ÍÅÎÀ; ÏÎ ÉÝÅÔÓÑ ×Ï ×ÓÅÈ ÆÁÊÌÁÈ `dir' × INFOPATH.\n"
+ #~ "åÓÌÉ ÏÎ ÎÅ ÎÁÊÄÅÎ, info ÏÂßÅÄÉÎÑÅÔ ×ÓÅ ÆÁÊÌÙ `dir' É ÐÏËÁÚÙ×ÁÅÔ\n"
+ #~ "ÒÅÚÕÌØÔÁÔ.  ÷ÓÅ ÏÓÔÁÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ ÒÁÓÓÍÁÔÒÉ×ÁÀÔÓÑ ËÁË ÉÍÅÎÁ ÐÕÎËÔÏ×\n"
+ #~ "ÍÅÎÀ ÏÔÎÏÓÉÔÅÌØÎÏ ÐÅÒ×ÏÊ ÐÏÓÅÝÅÎÎÏÊ ÎÏÄÙ.\n"
+ #~ "\n"
+ #~ "ðÒÉÍÅÒÙ:\n"
+ #~ "  info                       ÐÏËÁÚÁÔØ ÍÅÎÀ ËÁÔÁÌÏÇÁ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ\n"
+ #~ "  info emacs                 ÎÁÞÁÔØ Ó ÎÏÄÙ emacs ÉÚ ËÁÔÁÌÏÇÁ ×ÅÒÈÎÅÇÏ "
+ #~ "ÕÒÏ×ÎÑ\n"
+ #~ "  info emacs buffers         ÎÁÞÁÔØ Ó ÎÏÄÙ buffers × ÒÕËÏ×ÏÄÓÔ×Å emacs\n"
+ #~ "  info --show-options emacs  ÎÁÞÁÔØ Ó ÎÏÄÙ, ÏÐÉÓÙ×ÁÀÝÅÊ ËÌÀÞÉ emacs\n"
+ #~ "  info -f ./foo.info         ÐÏËÁÚÁÔØ ÆÁÊÌ ./foo.info, ÎÅ ÉÓËÁÔØ dir\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr ""
+ #~ "              ðÒÉ ÐÅÒÅÈÏÄÅ Ë ÚÁÄÁÎÎÏÍÕ ÐÕÎËÔÕ ÍÅÎÀ ×ÙÂÉÒÁÅÔÓÑ ÄÒÕÇÁÑ "
+ #~ "ÎÏÄÁ.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              ÷Ù ÍÏÖÅÔÅ ÚÁÄÁÔØ ÔÁËÖÅ ÉÍÑ ÆÁÊÌÁ, ÎÁÐÒÉÍÅÒ (æáêì)îïäá.\n"
+ 
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr ""
+ #~ "  %-10s  îÁÊÔÉ ÚÁÄÁÎÎÕÀ ÓÔÒÏËÕ × ÏÂÒÁÔÎÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ, É ÐÅÒÅÊÔÉ Ë\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "              ÎÏÄÅ, × ËÏÔÏÒÏÊ ÎÁÊÄÅÎÏ ÓÌÅÄÕÀÝÅÅ ×ÈÏÖÄÅÎÉÅ.\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "ðÅÒÅÈÏÄ ÎÁ ÎÏÄÕ \"óÌÅÄÕÀÝÁÑ\"..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "÷ÙÂÉÒÁÅÔÓÑ ÐÅÒ×ÙÊ ÐÕÎËÔ ÍÅÎÀ..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "÷ÙÂÉÒÁÅÔÓÑ ÎÏÄÁ \"óÌÅÄÕÀÝÁÑ\"..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "ðÅÒÅÍÅÝÅÎÉÅ \"÷×ÅÒÈ\" %d ÒÁÚ(Á), ÚÁÔÅÍ \"óÌÅÄÕÀÝÁÑ\"."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "ðÅÒÅÈÏÄ ÎÁ ÎÏÄÕ \"ðÒÅÄÙÄÕÝÁÑ\" × ÜÔÏÍ ÏËÎÅ."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "ðÅÒÅÈÏÄ ÎÁ ÎÏÄÕ \"÷×ÅÒÈ\" × ÜÔÏÍ ÏËÎÅ."
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "ðÅÒÅÈÏÄ ÎÁ ÐÏÓÌÅÄÎÉÊ ÐÕÎËÔ ÍÅÎÀ ÎÏÄÙ `ðÒÅÄÙÄÕÝÁÑ'."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "æÕÎËÃÉÑ"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "íÁËÒÏ"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "óÐÅÃÉÁÌØÎÁÑ ÆÏÒÍÁ"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "ðÅÒÅÍÅÎÎÁÑ"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "ðÏÌØÚÏ×ÁÔÅÌØÓËÉÊ ÐÁÒÁÍÅÔÒ"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "ðÅÒÅÍÅÎÎÁÑ ÜËÚÅÍÐÌÑÒÁ"
+ 
+ #~ msgid "Method"
+ #~ msgstr "íÅÔÏÄ"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "âÅÚ ÚÁÇÏÌÏ×ËÁ"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "üÔÏ %s, ÓÏÚÄÁÎÎÙÊ makeinfo ×ÅÒÓÉÉ %s ÉÚ %s.\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "óÌÅÄÕÀÝÁÑ:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "ðÒÅÄÙÄÕÝÁÑ:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "÷×ÅÒÈ:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "óÓÙÌËÁ ÉÚ ÍÅÎÀ"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "ðÅÒÅËÒÅÓÔÎÁÑ ÓÓÙÌËÁ"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "ðÒÅÄÙÄÕÝÁÑ"
+ 
+ #~ msgid "Up"
+ #~ msgstr "÷×ÅÒÈ"
+ 
+ #, fuzzy
+ #~ msgid "see "
+ #~ msgstr "óÍÏÔÒÉÔÅ "
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... [INFO-æáêì [DIR-æáêì]]\n"
+ #~ "\n"
+ #~ "õÓÔÁÎÁ×ÌÉ×ÁÅÔ ÉÌÉ ÕÄÁÌÑÅÔ ×ÈÏÖÄÅÎÉÑ ËÁÔÁÌÏÇÁ ÄÌÑ INFO-æáêìá ÉÚ\n"
+ #~ "ÆÁÊÌÁ-ËÁÔÁÌÏÇÁ Info DIR-æáêì.\n"
+ #~ "\n"
+ #~ "ëÌÀÞÉ:\n"
+ #~ " --delete          ÕÄÁÌÉÔØ ÓÕÝÅÓÔ×ÕÀÝÉÅ ×ÈÏÖÄÅÎÉÑ ÄÌÑ INFO-æáêìá ÉÚ DIR-"
+ #~ "æáêìá;\n"
+ #~ "                   ÎÅ ×ÓÔÁ×ÌÑÔØ ÎÏ×ÙÅ ×ÈÏÖÄÅÎÉÑ.\n"
+ #~ " --dir-file=éíñ    ÚÁÄÁÅÔ ÉÍÑ ËÁÔÁÌÏÇÅ Info,\n"
+ #~ "                   ÜË×É×ÁÌÅÎÔÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ ÁÒÇÕÍÅÎÔÁ DIR-æáêì.\n"
+ #~ " --entry=ôåëóô     ×ÓÔÁ×ÉÔØ ôåëóô × ËÁÞÅÓÔ×Å ×ÈÏÖÄÅÎÉÑ ËÁÔÁÌÏÇÁ Info.\n"
+ #~ "                   ôÅËÓÔ ÄÏÌÖÅÎ ÉÍÅÔØ ÆÏÒÍÕ ÐÕÎËÔÁ ÍÅÎÀ ÐÌÀÓ (×ÏÚÍÏÖÎÏ)\n"
+ #~ "                   ÎÅÓËÏÌØËÏ ÓÔÒÏË, ÎÁÞÉÎÁÀÝÉÈÓÑ ÐÒÏÂÅÌØÎÙÍÉ ÓÉÍ×ÏÌÁÍÉ.  "
+ #~ "åÓÌÉ ×Ù\n"
+ #~ "                   ÚÁÄÁÄÉÔÅ ÎÅÓËÏÌØËÏ ×ÈÏÖÄÅÎÉÊ, ×ÓÅ ÏÎÉ ÂÕÄÕÔ "
+ #~ "×ÓÔÁ×ÌÅÎÙ.  åÓÌÉ\n"
+ #~ "                   ×Ù ÎÅ ÚÁÄÁÄÉÔÅ ×ÈÏÖÄÅÎÉÊ, ÂÕÄÅÔ ×ÓÔÁ×ÌÅÎ ÔÅËÓÔ ÉÚ Info-"
+ #~ "ÆÁÊÌÁ.\n"
+ #~ " --help            ÐÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ.\n"
+ #~ " --info-file=æáêì  ÚÁÄÁÅÔ ÉÍÑ ÕÓÔÁÎÁ×ÌÉ×ÁÅÍÏÇÏ Info-ÆÁÊÌÁ,\n"
+ #~ "                   ÜË×É×ÁÌÅÎÔÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ ÁÒÇÕÍÅÎÔÁ INFO-æáêì.\n"
+ #~ " --info-dir=éíñ    ÓÉÎÏÎÉÍ --dir-file=éíñ/dir.\n"
+ #~ " --item=ôåëóô      ÓÉÎÏÎÉÍ --entry ôåëóô.\n"
+ #~ "                   ÷ÈÏÖÄÅÎÉÅ ËÁÔÁÌÏÇÁ Info ÎÁ ÓÁÍÏÍ ÄÅÌÅ Ñ×ÌÑÅÔÓÑ ÐÕÎËÔÏÍ "
+ #~ "ÍÅÎÀ.\n"
+ #~ " --quiet           ÎÅ ×Ù×ÏÄÉÔØ ÐÒÅÄÕÐÒÅÖÄÅÎÉÑ.\n"
+ #~ " --remove          ÓÉÎÏÎÉÍ --delete.\n"
+ #~ " --section=óåë     ÐÏÍÅÓÔÉÔØ ×ÈÏÖÄÅÎÉÑ × ÚÁÄÁÎÎÕÀ ÓÅËÃÉÀ ËÁÔÁÌÏÇÁ.\n"
+ #~ "                   åÓÌÉ ×Ù ÚÁÄÁÄÉÔÅ ÎÅÓËÏÌØËÏ ÓÅËÃÉÊ, ×ÈÏÖÄÅÎÉÑ ÂÕÄÕÔ "
+ #~ "×ÓÔÁ×ÌÅÎÙ ×\n"
+ #~ "                   ËÁÖÄÕÀ. åÓÌÉ ×Ù ÎÅ ÚÁÄÁÄÉÔÅ ÓÅËÃÉÊ, ×ÈÏÖÄÅÎÉÑ ÂÕÄÕÔ "
+ #~ "×ÓÔÁ×ÌÅÎÙ\n"
+ #~ "                   × ÓÅËÃÉÉ, ÚÁÄÁÎÎÙÅ × Info-ÆÁÊÌÅ.\n"
+ #~ " --version         ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ.\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "ÐÕÎËÔ ÍÅÎÀ `%s' ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ, ÄÌÑ ÆÁÊÌÁ `%s'"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr ""
+ #~ "\\%-10[menu-digit]  ÷ÙÂÒÁÔØ ÐÅÒ×ÙÊ ... ÄÅ×ÑÔÙÊ ÐÕÎËÔ ÍÅÎÀ × ÔÅËÕÝÅÊ "
+ #~ "ÎÏÄÅ.\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "ÎÁ ÎÏÄÕ `%s' ÐÏÑ×ÉÌÏÓØ %d ÓÓÙÌÏË"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "íÙ îå ÐÒÅÄÏÓÔÁ×ÌÑÅÍ ÇÁÒÁÎÔÉÊ.  ÷Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÜÔÉ ÐÒÏÇÒÁÍÍÙ, "
+ #~ "ÐÒÉ\n"
+ #~ "ÓÏÂÌÀÄÅÎÉÉ ÕÓÌÏ×ÉÊ õÎÉ×ÅÒÓÁÌØÎÏÊ ïÂÝÅÓÔ×ÅÎÎÏÊ ìÉÃÅÎÚÉÉ GNU.\n"
+ #~ "äÌÑ ÐÏÌÕÞÅÎÉÑ ÐÏÄÒÏÂÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ×ÏÚÍÏÖÎÏÓÔÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ "
+ #~ "ÓÍÏÔÒÉÔÅ\n"
+ #~ "ÆÁÊÌ COPYING.\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg ÐÏÌÅÚÎÁ, ÔÏÌØËÏ ÅÓÌÉ ÍÁËÒÏ ÐÒÉÎÉÍÁÅÔ ÏÄÉÎ ÁÒÇÕÍÅÎÔ"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "óÏÄÅÒÖÁÎÉÅ"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "ëÒÁÔËÏÅ ÓÏÄÅÒÖÁÎÉÅ"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "ÓÏÈÒÁÎÑÔØ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ ÐÏÓÌÅ ÒÁÂÏÔÙ"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "ÎÅ ÓÏÈÒÁÎÑÔØ ×ÒÅÍÅÎÎÙÅ ÆÁÊÌÙ (ÐÏ ÕÍÏÌÞÁÎÉÀ)"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "              Info-ÆÁÊÌÁ É ×ÙÂÒÁÔØ ÎÏÄÕ ÐÏ ÐÅÒ×ÏÊ ÎÁÊÄÅÎÎÏÊ ÓÓÙÌËÅ.\n"
+ 
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "íÙ îå ÐÒÅÄÏÓÔÁ×ÌÑÅÍ ÇÁÒÁÎÔÉÊ.  ÷Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÜÔÉ ÐÒÏÇÒÁÍÍÙ, "
+ #~ "ÐÒÉ\n"
+ #~ "ÓÏÂÌÀÄÅÎÉÉ ÕÓÌÏ×ÉÊ õÎÉ×ÅÒÓÁÌØÎÏÊ ïÂÝÅÓÔ×ÅÎÎÏÊ ìÉÃÅÎÚÉÉ GNU.\n"
+ #~ "äÌÑ ÐÏÌÕÞÅÎÉÑ ÐÏÄÒÏÂÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ×ÏÚÍÏÖÎÏÓÔÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ "
+ #~ "ÓÍÏÔÒÉÔÅ\n"
+ #~ "ÆÁÊÌ COPYING.\n"
Files texinfo-4.12/po/rw.gmo and texinfo-4.13/po/rw.gmo differ
diff -Nrc2 texinfo-4.12/po/rw.po texinfo-4.13/po/rw.po
*** texinfo-4.12/po/rw.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/rw.po	Thu Sep 18 11:38:33 2008
***************
*** 0 ****
--- 1,3540 ----
+ # Kinyarwanda translations for texinfo package.
+ # Copyright (C) 2005 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the texinfo package.
+ # Steve Murphy <murf@e-tools.com>, 2005.
+ # Steve performed initial rough translation from compendium built from translations provided by the following translators:
+ # Philibert Ndandali  <ndandali@yahoo.fr>, 2005.
+ # Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
+ # NoÃ«lla Mupole <s24211045@tuks.co.za>, 2005.
+ # Carole Karema <karemacarole@hotmail.com>, 2005.
+ # JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
+ # Augustin KIBERWA  <akiberwa@yahoo.co.uk>, 2005.
+ # Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005.
+ # Antoine Bigirimana <antoine@e-tools.com>, 2005.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.7.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2005-04-04 10:55-0700\n"
+ "Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
+ "Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, fuzzy, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s:Ihitamo ni"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, fuzzy, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s:Ihitamo Kwemerera"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, fuzzy, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s:Ihitamo Kwemerera"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, fuzzy, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s:Ihitamo"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, fuzzy, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s:Ihitamo"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, fuzzy, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s:Ihitamo"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, fuzzy, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s:Ihitamo"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, fuzzy, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s:Sibyo Ihitamo"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, fuzzy, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s:Ihitamo"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, fuzzy, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s:Ihitamo ni"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, fuzzy, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s:Ihitamo Kwemerera"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr ""
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ #, fuzzy
+ msgid "Move forward a character"
+ msgstr "Imbere a Inyuguti"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ #, fuzzy
+ msgid "Move backward a character"
+ msgstr "subira inyuma a Inyuguti"
+ 
+ #: info/echo-area.c:307
+ #, fuzzy
+ msgid "Move to the start of this line"
+ msgstr "Kuri i Gutangira Bya iyi Umurongo"
+ 
+ #: info/echo-area.c:312
+ #, fuzzy
+ msgid "Move to the end of this line"
+ msgstr "Kuri i Impera Bya iyi Umurongo"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ #, fuzzy
+ msgid "Move forward a word"
+ msgstr "Imbere a ijambo"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ #, fuzzy
+ msgid "Move backward a word"
+ msgstr "subira inyuma a ijambo"
+ 
+ #: info/echo-area.c:400
+ #, fuzzy
+ msgid "Delete the character under the cursor"
+ msgstr "i Inyuguti i indanga"
+ 
+ #: info/echo-area.c:430
+ #, fuzzy
+ msgid "Delete the character behind the cursor"
+ msgstr "i Inyuguti i indanga"
+ 
+ #: info/echo-area.c:451
+ #, fuzzy
+ msgid "Cancel or quit operation"
+ msgstr "Cyangwa Kuvamo"
+ 
+ #: info/echo-area.c:466
+ #, fuzzy
+ msgid "Accept (or force completion of) this line"
+ msgstr "Cyangwa Bya iyi Umurongo"
+ 
+ #: info/echo-area.c:471
+ #, fuzzy
+ msgid "Insert next character verbatim"
+ msgstr "Komeza>> Inyuguti"
+ 
+ #: info/echo-area.c:479
+ #, fuzzy
+ msgid "Insert this character"
+ msgstr "iyi Inyuguti"
+ 
+ #: info/echo-area.c:498
+ #, fuzzy
+ msgid "Insert a TAB character"
+ msgstr "a Inyuguti"
+ 
+ #: info/echo-area.c:505
+ #, fuzzy
+ msgid "Transpose characters at point"
+ msgstr "Inyuguti ku Akadomo"
+ 
+ #: info/echo-area.c:556
+ #, fuzzy
+ msgid "Yank back the contents of the last kill"
+ msgstr "Inyuma i Ibigize Bya i Iheruka"
+ 
+ #: info/echo-area.c:563
+ #, fuzzy
+ msgid "Kill ring is empty"
+ msgstr "Kuvuza Inzogera ni ubusa"
+ 
+ #: info/echo-area.c:576
+ #, fuzzy
+ msgid "Yank back a previous kill"
+ msgstr "Inyuma a Ibanjirije"
+ 
+ #: info/echo-area.c:609
+ #, fuzzy
+ msgid "Kill to the end of the line"
+ msgstr "Kuri i Impera Bya i Umurongo"
+ 
+ #: info/echo-area.c:622
+ #, fuzzy
+ msgid "Kill to the beginning of the line"
+ msgstr "Kuri i Itangiriro Bya i Umurongo"
+ 
+ #: info/echo-area.c:634
+ #, fuzzy
+ msgid "Kill the word following the cursor"
+ msgstr "i ijambo i indanga"
+ 
+ #: info/echo-area.c:654
+ #, fuzzy
+ msgid "Kill the word preceding the cursor"
+ msgstr "i ijambo i indanga"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr ""
+ 
+ #: info/echo-area.c:872
+ #, fuzzy
+ msgid "Not complete"
+ msgstr "Byuzuye"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr ""
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr ""
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr ""
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr ""
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr ""
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr ""
+ 
+ #: info/echo-area.c:1342
+ #, fuzzy
+ msgid "Scroll the completions window"
+ msgstr "i Idirishya"
+ 
+ #: info/footnotes.c:212
+ #, fuzzy
+ msgid "Footnotes could not be displayed"
+ msgstr "OYA"
+ 
+ #: info/footnotes.c:238
+ #, fuzzy
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "i Ubusobanuro mpezarupapuro Na: iyi in Idirishya"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr ""
+ 
+ #: info/indices.c:171
+ #, fuzzy
+ msgid "Look up a string in the index for this file"
+ msgstr "Hejuru a Ikurikiranyanyuguti in i Umubarendanga kugirango iyi IDOSIYE"
+ 
+ #: info/indices.c:198
+ #, fuzzy
+ msgid "Finding index entries..."
+ msgstr "Umubarendanga Ibyinjijwe"
+ 
+ #: info/indices.c:206
+ #, fuzzy
+ msgid "No indices found."
+ msgstr "ibimenyetso Byabonetse"
+ 
+ # sw/source\ui\inc\swmn.hrc:_MN_EDIT.FN_EDIT_IDX_ENTRY_DLG.text
+ #: info/indices.c:216
+ #, fuzzy
+ msgid "Index entry: "
+ msgstr "Ikinjizwa mu mubarendanga...."
+ 
+ #: info/indices.c:324
+ #, fuzzy
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Kuri i Komeza>> Umubarendanga Ikintu Bivuye i Iheruka Umubarendanga Gushaka "
+ "Komandi:"
+ 
+ #: info/indices.c:334
+ #, fuzzy
+ msgid "No previous index search string."
+ msgstr "Ibanjirije Umubarendanga Gushaka Ikurikiranyanyuguti"
+ 
+ #: info/indices.c:341
+ #, fuzzy
+ msgid "No index entries."
+ msgstr "Umubarendanga Ibyinjijwe"
+ 
+ #: info/indices.c:374
+ #, fuzzy, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Ibyinjijwe"
+ 
+ # framework/source\services\logindialog.src:RID_DLG_LOGIN.RID_PB_ADDITIONALSETTINGS.text
+ #: info/indices.c:375
+ #, fuzzy
+ msgid "more "
+ msgstr "Birenzeho"
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr ""
+ 
+ #: info/indices.c:421
+ #, fuzzy, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "in Komeza>> Umubarendanga BIHUYE Kuri Gushaka Komeza>>"
+ 
+ #: info/indices.c:549
+ #, fuzzy, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "ibimenyetso Bya"
+ 
+ #: info/indices.c:604
+ #, fuzzy, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Bihari Ibisobanuro Idosiye in ibimenyetso"
+ 
+ #: info/indices.c:630
+ #, fuzzy
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Byose Ibisobanuro ibimenyetso kugirango a Ikurikiranyanyuguti Na a "
+ "Ibikubiyemo"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr ""
+ 
+ #: info/indices.c:662
+ #, fuzzy, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr "*bya ibimenyetso"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, fuzzy, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Ifashayobora kugirango Birenzeho Ibisobanuro"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, fuzzy, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "Oya Umubarendanga Ibyinjijwe Byabonetse kugirango"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr "-B Kuri"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ #, fuzzy
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr "org."
+ 
+ #: info/info.c:691
+ #, fuzzy, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Gushaka"
+ 
+ #: info/info.c:692
+ #, fuzzy, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Gushaka"
+ 
+ #: info/info.c:693
+ #, fuzzy
+ msgid "Cannot find a window!"
+ msgstr "Gushaka a Idirishya"
+ 
+ #: info/info.c:694
+ #, fuzzy
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Kugaragara muri iyi"
+ 
+ #: info/info.c:695
+ #, fuzzy
+ msgid "Cannot delete the last window."
+ msgstr "Gusiba i Iheruka Idirishya"
+ 
+ #: info/info.c:696
+ #, fuzzy
+ msgid "No menu in this node."
+ msgstr "Ibikubiyemo in iyi"
+ 
+ #: info/info.c:697
+ #, fuzzy
+ msgid "No footnotes in this node."
+ msgstr "Ubusobanuro mpezarupapuro in iyi"
+ 
+ #: info/info.c:698
+ #, fuzzy
+ msgid "No cross references in this node."
+ msgstr "Kwambukiranya Indango in iyi"
+ 
+ #: info/info.c:699
+ #, fuzzy, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Mweretsi kugirango iyi"
+ 
+ #: info/info.c:700
+ #, fuzzy, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Komandi: kugirango Ifashayobora"
+ 
+ #: info/info.c:701
+ #, fuzzy, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Ubwoko ni OYA Cyiza Kuri Gukoresha"
+ 
+ #: info/info.c:702
+ #, fuzzy
+ msgid "You are already at the last page of this node."
+ msgstr "ku i Iheruka Ipaji Bya iyi"
+ 
+ #: info/info.c:703
+ #, fuzzy
+ msgid "You are already at the first page of this node."
+ msgstr "ku i Itangira Ipaji Bya iyi"
+ 
+ #: info/info.c:704
+ #, fuzzy
+ msgid "Only one window."
+ msgstr "Idirishya"
+ 
+ #: info/info.c:705
+ #, fuzzy
+ msgid "Resulting window would be too small."
+ msgstr "Idirishya Gitoya"
+ 
+ #: info/info.c:706
+ #, fuzzy
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "kugirango a Ifashayobora Idirishya Gusiba a Idirishya"
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10 Kuvamo Ifashayobora iyi Ifashayobora"
+ 
+ #: info/infodoc.c:48
+ #, fuzzy
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10 Kuvamo"
+ 
+ #: info/infodoc.c:49
+ #, fuzzy
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10 Kubona Ibisobanuro Ifashayobora i"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10 Umurongo subira inyuma 1. Umurongo"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10 Komeza>> Umurongo Imbere 1. Umurongo"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10 subira inyuma subira inyuma a Ipaji"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10 Imbere Imbere a Ipaji"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10 Itangiriro Bya Kuri i Itangiriro Bya iyi"
+ 
+ #: info/infodoc.c:56
+ #, fuzzy
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10 Impera Bya Kuri i Impera Bya iyi"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ "\\%-10 Kwimura Kuri Komeza>> X- Ngenderwaho Kuri Komeza>> Ihuza muri iyi"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr "\\%-10 Guhitamo Indango iyi Umurongo i Ihuza indanga"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "\\%-10 Urutonde Kuri i Iheruka in iyi Idirishya"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10 Kuri i Ibanjirije Bya iyi"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10 Komeza>> Kuri i Komeza>> Bya iyi"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10 Kuri i Ibanjirije Bya iyi"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10 Komeza>> Kuri i Komeza>> Bya iyi"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10 Hejuru Hejuru Bivuye iyi"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10 Impera Bya Kuri i Impera Bya iyi"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10 Impera Bya Kuri i Impera Bya iyi"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "%-10sItangira Ikintu in Ibikubiyemo"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10 Iheruka Ibikubiyemo Ikintu Iheruka Ikintu in Ibikubiyemo"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "%-10sIbikubiyemo Ikintu ku Izina:"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ "\\%-10 X- Ngenderwaho Ikintu a Kwambukiranya Indango Izina: Bya Indango"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "%-10sKuri ku Izina:"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "%-10sImbere kugirango a Ikurikiranyanyuguti"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10 Kuri i Ibanjirije Bya iyi"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ "%-10skugirango a Ikurikiranyanyuguti in i Umubarendanga Ibyinjijwe Bya iyi"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10 Umubarendanga Gushaka kugirango a Ikurikiranyanyuguti in i "
+ "Umubarendanga Ibyinjijwe Bya iyi IDOSIYE Na Guhitamo i ku i Itangira "
+ "Icyinjijwe Byabonetse"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "KIGEZWEHO"
+ 
+ #: info/infodoc.c:89
+ #, fuzzy
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr "in"
+ 
+ #: info/infodoc.c:92
+ #, fuzzy, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "%-10siyi Ifashayobora"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:94
+ #, fuzzy, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "%-10si"
+ 
+ #: info/infodoc.c:98
+ #, fuzzy, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "%-10sKuri i Bya iyi"
+ 
+ #: info/infodoc.c:99
+ #, fuzzy, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "%-10sKuri i Bya iyi"
+ 
+ #: info/infodoc.c:100
+ #, fuzzy, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "%-10sBivuye iyi"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "\\%-10 Ibikubiyemo Ikintu Ibikubiyemo Ikintu ku Izina: a Ibikubiyemo Ikintu "
+ "Kuri Byahiswemo"
+ 
+ #: info/infodoc.c:103
+ #, fuzzy, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "%-10sa Kwambukiranya Indango Izina: Bya Indango"
+ 
+ #: info/infodoc.c:104
+ #, fuzzy, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "%-10sKuri i Iheruka in iyi Idirishya"
+ 
+ #: info/infodoc.c:105
+ #, fuzzy, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "%-10sKuri Komeza>> Ihuza muri iyi"
+ 
+ #: info/infodoc.c:106
+ #, fuzzy, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "%-10si Ihuza indanga"
+ 
+ #: info/infodoc.c:107
+ #, fuzzy, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "%-10sKuri i Kuri g"
+ 
+ #: info/infodoc.c:108
+ #, fuzzy, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "%-10sKuri i Kuri g"
+ 
+ #: info/infodoc.c:110
+ #, fuzzy
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr "muri a"
+ 
+ #: info/infodoc.c:112
+ #, fuzzy, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "%-10sImbere a Ipaji"
+ 
+ #: info/infodoc.c:113
+ #, fuzzy, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "%-10ssubira inyuma a Ipaji"
+ 
+ #: info/infodoc.c:114
+ #, fuzzy, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "%-10sKuri i Itangiriro Bya iyi"
+ 
+ #: info/infodoc.c:115
+ #, fuzzy, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "%-10sKuri i Impera Bya iyi"
+ 
+ #: info/infodoc.c:116
+ #, fuzzy, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "%-10sImbere 1. Umurongo"
+ 
+ #: info/infodoc.c:117
+ #, fuzzy, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "%-10ssubira inyuma 1. Umurongo"
+ 
+ #: info/infodoc.c:119
+ #, fuzzy
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr "Amabwiriza"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "%-10sItangira Ikintu in Ibikubiyemo"
+ 
+ #: info/infodoc.c:122
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "%-10sIheruka Ikintu in Ibikubiyemo"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "\\%-10 Umubarendanga Gushaka kugirango a Ikurikiranyanyuguti in i "
+ "Umubarendanga Ibyinjijwe Bya iyi IDOSIYE Na Guhitamo i ku i Itangira "
+ "Icyinjijwe Byabonetse"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "\\%-10 Kuri ku Izina: Gicurasi Gushyiramo a Izina ry'idosiye: Nka Nka in"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10 Gushaka Imbere kugirango a Na Guhitamo i in i Komeza>> ukugaragara ni "
+ "Byabonetse"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "\\%-10 Gushaka Imbere kugirango a Na Guhitamo i in i Komeza>> ukugaragara ni "
+ "Byabonetse"
+ 
+ #: info/infodoc.c:312
+ #, fuzzy
+ msgid "The current search path is:\n"
+ msgstr "KIGEZWEHO Gushaka Inzira ni"
+ 
+ #: info/infodoc.c:316
+ #, fuzzy
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr "Bihari in"
+ 
+ #: info/infodoc.c:320
+ #, fuzzy
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr "Bihari in i Ubuso"
+ 
+ #: info/infodoc.c:343
+ #, fuzzy, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr "Amabwiriza Biturutse"
+ 
+ #: info/infodoc.c:347
+ #, fuzzy
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr "Amabwiriza ku Byose"
+ 
+ #: info/infodoc.c:477
+ #, fuzzy
+ msgid "Display help message"
+ msgstr "Ifashayobora Ubutumwa"
+ 
+ #: info/infodoc.c:495
+ #, fuzzy
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Ibisobanuro"
+ 
+ #: info/infodoc.c:633
+ #, fuzzy
+ msgid "Print documentation for KEY"
+ msgstr "kugirango"
+ 
+ #: info/infodoc.c:645
+ #, fuzzy, c-format
+ msgid "Describe key: %s"
+ msgstr "Urufunguzo"
+ 
+ #: info/infodoc.c:656
+ #, fuzzy, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ni kidasobanuye"
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, fuzzy, c-format
+ msgid "%s is undefined."
+ msgstr "%sni kidasobanuye"
+ 
+ #: info/infodoc.c:722
+ #, fuzzy, c-format
+ msgid "%s is defined to %s."
+ msgstr "%sni Kuri"
+ 
+ #: info/infodoc.c:1146
+ #, fuzzy
+ msgid "Show what to type to execute a given command"
+ msgstr "Kuri Ubwoko Kuri Gukora a Komandi:"
+ 
+ #: info/infodoc.c:1150
+ #, fuzzy
+ msgid "Where is command: "
+ msgstr "ni Komandi:"
+ 
+ #: info/infodoc.c:1172
+ #, fuzzy, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "`%s'ni OYA ku Utubuto"
+ 
+ #: info/infodoc.c:1179
+ #, fuzzy, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%sBiturutse"
+ 
+ #: info/infodoc.c:1183
+ #, fuzzy, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%sBiturutse"
+ 
+ #: info/infodoc.c:1188
+ #, fuzzy, c-format
+ msgid "There is no function named `%s'"
+ msgstr "ni Oya Umumaro"
+ 
+ #: info/infodoc.c:96
+ #, fuzzy
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr "Ikindi"
+ 
+ #: info/infokey.c:170
+ #, fuzzy
+ msgid "incorrect number of arguments"
+ msgstr "Umubare Bya ingingo"
+ 
+ #: info/infokey.c:201
+ #, fuzzy, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "Gufungura Iyinjiza IDOSIYE"
+ 
+ #: info/infokey.c:215
+ #, fuzzy, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "Kurema Ibisohoka IDOSIYE"
+ 
+ #: info/infokey.c:226
+ #, fuzzy, c-format
+ msgid "error writing to `%s'"
+ msgstr "Ikosa Kuri"
+ 
+ #: info/infokey.c:232
+ #, fuzzy, c-format
+ msgid "error closing output file `%s'"
+ msgstr "Ikosa Ibisohoka IDOSIYE"
+ 
+ #: info/infokey.c:450
+ #, fuzzy
+ msgid "key sequence too long"
+ msgstr "Urufunguzo"
+ 
+ #: info/infokey.c:529
+ #, fuzzy
+ msgid "missing key sequence"
+ msgstr "Ibuze Urufunguzo"
+ 
+ #: info/infokey.c:610
+ #, fuzzy
+ msgid "NUL character (\\000) not permitted"
+ msgstr "Inyuguti OYA"
+ 
+ #: info/infokey.c:641
+ #, fuzzy, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "Inyuguti OYA"
+ 
+ #: info/infokey.c:665
+ #, fuzzy
+ msgid "missing action name"
+ msgstr "Ibuze Igikorwa Izina:"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ #, fuzzy
+ msgid "section too long"
+ msgstr "Icyiciro"
+ 
+ #: info/infokey.c:688
+ #, fuzzy, c-format
+ msgid "unknown action `%s'"
+ msgstr "Kitazwi Igikorwa"
+ 
+ #: info/infokey.c:698
+ #, fuzzy
+ msgid "action name too long"
+ msgstr "Igikorwa Izina:"
+ 
+ #: info/infokey.c:712
+ #, fuzzy, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "Birenga Inyuguti Igikorwa"
+ 
+ #: info/infokey.c:723
+ #, fuzzy
+ msgid "missing variable name"
+ msgstr "Ibuze IMPINDURAGACIRO Izina:"
+ 
+ #: info/infokey.c:733
+ #, fuzzy
+ msgid "missing `=' immediately after variable name"
+ msgstr "Ibuze Ako kanya Nyuma IMPINDURAGACIRO Izina:"
+ 
+ #: info/infokey.c:741
+ #, fuzzy
+ msgid "variable name too long"
+ msgstr "IMPINDURAGACIRO Izina:"
+ 
+ #: info/infokey.c:765
+ #, fuzzy
+ msgid "value too long"
+ msgstr "Agaciro"
+ 
+ #: info/infokey.c:890
+ #, fuzzy, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\",Umurongo"
+ 
+ #: info/infokey.c:906
+ #, fuzzy, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr "Ibisobanuro."
+ 
+ #: info/infomap.c:955
+ #, fuzzy, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Kwirengagiza Sibyo IDOSIYE Gitoya"
+ 
+ #: info/infomap.c:958
+ #, fuzzy, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Kwirengagiza Sibyo IDOSIYE"
+ 
+ #: info/infomap.c:971
+ #, fuzzy, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "IDOSIYE Gusoma"
+ 
+ #: info/infomap.c:990
+ #, fuzzy, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr "IDOSIYE Imibare Gukoresha Kuri Kuvugurura"
+ 
+ #: info/infomap.c:999
+ #, fuzzy, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "IDOSIYE ni Inyuma Bya Itariki Gukoresha Kuri Kuvugurura"
+ 
+ #: info/infomap.c:1015
+ #, fuzzy, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr "IDOSIYE Icyiciro Uburebure Gukoresha Kuri Kuvugurura"
+ 
+ #: info/infomap.c:1036
+ #, fuzzy, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr "IDOSIYE Icyiciro ITEGEKONGENGA Gukoresha Kuri Kuvugurura"
+ 
+ #: info/infomap.c:1171
+ #, fuzzy
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "Ibyatanzwe in IDOSIYE Urufunguzo Ibyafataranyijwe"
+ 
+ #: info/infomap.c:1221
+ #, fuzzy
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr "Ibyatanzwe in IDOSIYE VAR Amagenamiterere"
+ 
+ #: info/m-x.c:68
+ #, fuzzy
+ msgid "Read the name of an Info command and describe it"
+ msgstr "i Izina: Bya Komandi: Na"
+ 
+ #: info/m-x.c:72
+ #, fuzzy
+ msgid "Describe command: "
+ msgstr "Komandi:"
+ 
+ #: info/m-x.c:95
+ #, fuzzy
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "a Komandi: Izina: in i Ubuso Na Gukora"
+ 
+ #: info/m-x.c:139
+ #, fuzzy
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Gukora Komandi:"
+ 
+ #: info/m-x.c:153
+ #, fuzzy, c-format
+ msgid "Undefined command: %s"
+ msgstr "Komandi:"
+ 
+ #: info/m-x.c:159
+ #, fuzzy
+ msgid "Set the height of the displayed window"
+ msgstr "i Ubuhagarike Bya i Idirishya"
+ 
+ #: info/m-x.c:172
+ #, fuzzy, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Mugaragaza Ubuhagarike Kuri"
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, fuzzy, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr "Idosiye Kuri Ubwoko iyi IDOSIYE Gushyiramo"
+ 
+ #: info/makedoc.c:556
+ #, fuzzy, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "i IDOSIYE"
+ 
+ #: info/nodemenu.c:30
+ #, fuzzy
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr "*Idosiye"
+ 
+ #: info/nodemenu.c:201
+ #, fuzzy
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "ni i Ibikubiyemo Bya Bivuye iyi Ibikubiyemo Cyangwa Gukoresha Urutonde in "
+ "Idirishya"
+ 
+ #: info/nodemenu.c:223
+ #, fuzzy
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "a Idirishya a Ibikubiyemo Bya Byose Bya i"
+ 
+ #: info/nodemenu.c:303
+ #, fuzzy
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "a in a Kigaragara Idirishya"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr ""
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, fuzzy, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Indango"
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, fuzzy, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Kuri Verisiyo Kubona Ifashayobora Idirishya kugirango Ifashayobora "
+ "Ibikubiyemo Ikintu kugirango Ibikubiyemo Ikintu"
+ 
+ #: info/session.c:625
+ #, fuzzy
+ msgid "Move down to the next line"
+ msgstr "Hasi Kuri i Komeza>> Umurongo"
+ 
+ #: info/session.c:661
+ #, fuzzy
+ msgid "Move up to the previous line"
+ msgstr "Hejuru Kuri i Ibanjirije Umurongo"
+ 
+ #: info/session.c:931
+ #, fuzzy
+ msgid "Move to the end of the line"
+ msgstr "Kuri i Impera Bya i Umurongo"
+ 
+ #: info/session.c:942
+ #, fuzzy
+ msgid "Move to the start of the line"
+ msgstr "Kuri i Gutangira Bya i Umurongo"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Ikurikira"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ #, fuzzy
+ msgid "No more nodes within this document."
+ msgstr "Birenzeho muri iyi Inyandiko"
+ 
+ #: info/session.c:1309
+ #, fuzzy
+ msgid "No `Prev' for this node."
+ msgstr "kugirango iyi"
+ 
+ #: info/session.c:1329
+ #, fuzzy
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Cyangwa kugirango iyi muri iyi Inyandiko"
+ 
+ #: info/session.c:1391
+ #, fuzzy
+ msgid "Move forwards or down through node structure"
+ msgstr "Cyangwa Hasi Gihinguranya Imiterere"
+ 
+ #: info/session.c:1407
+ #, fuzzy
+ msgid "Move backwards or up through node structure"
+ msgstr "Inyuma Cyangwa Hejuru Gihinguranya Imiterere"
+ 
+ #: info/session.c:1508
+ #, fuzzy
+ msgid "Scroll forward in this window"
+ msgstr "Imbere in iyi Idirishya"
+ 
+ #: info/session.c:1516
+ #, fuzzy
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "Imbere in iyi Idirishya Na Gushyiraho Mburabuzi Idirishya Ingano"
+ 
+ #: info/session.c:1524
+ #, fuzzy
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Imbere in iyi Idirishya muri"
+ 
+ #: info/session.c:1532
+ #, fuzzy
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr "Imbere in iyi Idirishya muri Na Gushyiraho Mburabuzi Idirishya Ingano"
+ 
+ #: info/session.c:1540
+ #, fuzzy
+ msgid "Scroll backward in this window"
+ msgstr "subira inyuma in iyi Idirishya"
+ 
+ #: info/session.c:1548
+ #, fuzzy
+ msgid "Scroll backward in this window and set default window size"
+ msgstr ""
+ "subira inyuma in iyi Idirishya Na Gushyiraho Mburabuzi Idirishya Ingano"
+ 
+ #: info/session.c:1557
+ #, fuzzy
+ msgid "Scroll backward in this window staying within node"
+ msgstr "subira inyuma in iyi Idirishya muri"
+ 
+ #: info/session.c:1565
+ #, fuzzy
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "subira inyuma in iyi Idirishya muri Na Gushyiraho Mburabuzi Idirishya Ingano"
+ 
+ #: info/session.c:1573
+ #, fuzzy
+ msgid "Move to the start of this node"
+ msgstr "Kuri i Gutangira Bya iyi"
+ 
+ #: info/session.c:1580
+ #, fuzzy
+ msgid "Move to the end of this node"
+ msgstr "Kuri i Impera Bya iyi"
+ 
+ #: info/session.c:1587
+ #, fuzzy
+ msgid "Scroll down by lines"
+ msgstr "Hasi ku Imirongo"
+ 
+ #: info/session.c:1604
+ #, fuzzy
+ msgid "Scroll up by lines"
+ msgstr "Hejuru ku Imirongo"
+ 
+ #: info/session.c:1622
+ #, fuzzy
+ msgid "Scroll down by half screen size"
+ msgstr "Hasi ku Mugaragaza Ingano"
+ 
+ #: info/session.c:1648
+ #, fuzzy
+ msgid "Scroll up by half screen size"
+ msgstr "Hejuru ku Mugaragaza Ingano"
+ 
+ #: info/session.c:1677
+ #, fuzzy
+ msgid "Select the next window"
+ msgstr "i Komeza>> Idirishya"
+ 
+ #: info/session.c:1716
+ #, fuzzy
+ msgid "Select the previous window"
+ msgstr "i Ibanjirije Idirishya"
+ 
+ #: info/session.c:1767
+ #, fuzzy
+ msgid "Split the current window"
+ msgstr "i KIGEZWEHO Idirishya"
+ 
+ #: info/session.c:1848
+ #, fuzzy
+ msgid "Delete the current window"
+ msgstr "i KIGEZWEHO Idirishya"
+ 
+ #: info/session.c:1856
+ #, fuzzy
+ msgid "Cannot delete a permanent window"
+ msgstr "Gusiba a Idirishya"
+ 
+ #: info/session.c:1888
+ #, fuzzy
+ msgid "Delete all other windows"
+ msgstr "Byose Ikindi"
+ 
+ #: info/session.c:1934
+ #, fuzzy
+ msgid "Scroll the other window"
+ msgstr "i Ikindi Idirishya"
+ 
+ #: info/session.c:1955
+ #, fuzzy
+ msgid "Scroll the other window backward"
+ msgstr "i Ikindi Idirishya subira inyuma"
+ 
+ #: info/session.c:1961
+ #, fuzzy
+ msgid "Grow (or shrink) this window"
+ msgstr "Cyangwa Kugabanuka iyi Idirishya"
+ 
+ #: info/session.c:1972
+ #, fuzzy
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "i Bihari Mugaragaza Umwanya i Kigaragara"
+ 
+ #: info/session.c:1979
+ #, fuzzy
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "i Leta Bya Umurongo in i KIGEZWEHO Idirishya"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ #, fuzzy
+ msgid "Select the Next node"
+ msgstr "i"
+ 
+ #: info/session.c:2170
+ #, fuzzy
+ msgid "Select the Prev node"
+ msgstr "i"
+ 
+ #: info/session.c:2178
+ #, fuzzy
+ msgid "Select the Up node"
+ msgstr "i"
+ 
+ #: info/session.c:2185
+ #, fuzzy
+ msgid "Select the last node in this file"
+ msgstr "i Iheruka in iyi IDOSIYE"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ #, fuzzy
+ msgid "This window has no additional nodes"
+ msgstr "Idirishya Oya"
+ 
+ #: info/session.c:2218
+ #, fuzzy
+ msgid "Select the first node in this file"
+ msgstr "i Itangira in iyi IDOSIYE"
+ 
+ #: info/session.c:2252
+ #, fuzzy
+ msgid "Select the last item in this node's menu"
+ msgstr "i Iheruka Ikintu in iyi Ibikubiyemo"
+ 
+ #: info/session.c:2258
+ #, fuzzy
+ msgid "Select this menu item"
+ msgstr "iyi Ibikubiyemo Ikintu"
+ 
+ #: info/session.c:2291
+ #, fuzzy, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "in iyi Ibikubiyemo"
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, fuzzy, c-format
+ msgid "Menu item (%s): "
+ msgstr "Ikintu"
+ 
+ #: info/session.c:2489
+ #, fuzzy
+ msgid "Menu item: "
+ msgstr "Ikintu"
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, fuzzy, c-format
+ msgid "Follow xref (%s): "
+ msgstr "X- Ngenderwaho"
+ 
+ #: info/session.c:2500
+ #, fuzzy
+ msgid "Follow xref: "
+ msgstr "X- Ngenderwaho"
+ 
+ #: info/session.c:2629
+ #, fuzzy
+ msgid "Read a menu item and select its node"
+ msgstr "a Ibikubiyemo Ikintu Na Guhitamo"
+ 
+ #: info/session.c:2637
+ #, fuzzy
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "a Ubusobanuro mpezarupapuro Cyangwa Kwambukiranya Indango Na Guhitamo"
+ 
+ #: info/session.c:2643
+ #, fuzzy
+ msgid "Move to the start of this node's menu"
+ msgstr "Kuri i Gutangira Bya iyi Ibikubiyemo"
+ 
+ #: info/session.c:2667
+ #, fuzzy
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Nka Ibikubiyemo ku Rimwe Nka"
+ 
+ #: info/session.c:2695
+ #, fuzzy
+ msgid "Read a node name and select it"
+ msgstr "a Izina: Na Guhitamo"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr ""
+ 
+ #: info/session.c:2819
+ #, fuzzy, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Ibikubiyemo in"
+ 
+ #: info/session.c:2865
+ #, fuzzy, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Ibikubiyemo Ikintu in"
+ 
+ #: info/session.c:2895
+ #, fuzzy, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Kuri Gushaka ku in"
+ 
+ #: info/session.c:2945
+ #, fuzzy
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "a Urutonde Bya Ibikubiyemo Bivuye Na"
+ 
+ #: info/session.c:2947
+ #, fuzzy
+ msgid "Follow menus: "
+ msgstr "Ibikubiyemo"
+ 
+ #: info/session.c:3140
+ #, fuzzy
+ msgid "Find the node describing program invocation"
+ msgstr "i Porogaramu"
+ 
+ #: info/session.c:3142
+ #, fuzzy, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Bya"
+ 
+ #: info/session.c:3180
+ #, fuzzy
+ msgid "Read a manpage reference and select it"
+ msgstr "a Indango Na Guhitamo"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr ""
+ 
+ #: info/session.c:3214
+ #, fuzzy
+ msgid "Select the node `Top' in this file"
+ msgstr "i in iyi IDOSIYE"
+ 
+ #: info/session.c:3220
+ #, fuzzy
+ msgid "Select the node `(dir)'"
+ msgstr "i"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr ""
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr ""
+ 
+ #: info/session.c:3301
+ #, fuzzy
+ msgid "Cannot kill the last node"
+ msgstr "i Iheruka"
+ 
+ #: info/session.c:3387
+ #, fuzzy
+ msgid "Select the most recently selected node"
+ msgstr "i Byahiswemo"
+ 
+ #: info/session.c:3393
+ #, fuzzy
+ msgid "Kill this node"
+ msgstr "iyi"
+ 
+ #: info/session.c:3401
+ #, fuzzy
+ msgid "Read the name of a file and select it"
+ msgstr "i Izina: Bya a IDOSIYE Na Guhitamo"
+ 
+ #: info/session.c:3405
+ #, fuzzy
+ msgid "Find file: "
+ msgstr "IDOSIYE"
+ 
+ #: info/session.c:3422
+ #, fuzzy, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Gushaka"
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, fuzzy, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "OYA Kurema Ibisohoka IDOSIYE"
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Byakozwe."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr ""
+ 
+ #: info/session.c:3610
+ #, fuzzy
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "i Ibigize Bya iyi Gihinguranya"
+ 
+ #: info/session.c:3645
+ #, fuzzy, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Gufungura Kuri"
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr ""
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "Kuri i Itangiriro Bya i Umurongo"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr ""
+ 
+ #: info/session.c:3979
+ #, fuzzy
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "a Ikurikiranyanyuguti Na Gushaka kugirango"
+ 
+ #: info/session.c:3986
+ #, fuzzy
+ msgid "Read a string and search for it"
+ msgstr "a Ikurikiranyanyuguti Na Gushaka kugirango"
+ 
+ #: info/session.c:3994
+ #, fuzzy
+ msgid "Read a string and search backward for it"
+ msgstr "a Ikurikiranyanyuguti Na Gushaka subira inyuma kugirango"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%sforIkurikiranyanyuguti"
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr ""
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "Gushaka usubira inyuma"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Gushaka"
+ 
+ #: info/session.c:4079
+ #, fuzzy
+ msgid "Search failed."
+ msgstr "Byanze"
+ 
+ #: info/session.c:4097
+ #, fuzzy
+ msgid "Repeat last search in the same direction"
+ msgstr "Iheruka Gushaka in i Icyerekezo"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ #, fuzzy
+ msgid "No previous search string"
+ msgstr "Ibanjirije Gushaka Ikurikiranyanyuguti"
+ 
+ #: info/session.c:4107
+ #, fuzzy
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Iheruka Gushaka in i Ihindurakerekezo Icyerekezo"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ #, fuzzy
+ msgid "Search interactively for a string as you type it"
+ msgstr "kugirango a Ikurikiranyanyuguti Nka Ubwoko"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "Gushaka subira inyuma"
+ 
+ #: info/session.c:4213
+ #, fuzzy
+ msgid "I-search backward: "
+ msgstr "Gushaka subira inyuma"
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "Gushaka"
+ 
+ #: info/session.c:4216
+ #, fuzzy
+ msgid "I-search: "
+ msgstr "Gushaka"
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr ""
+ 
+ #: info/session.c:4734
+ #, fuzzy
+ msgid "Move to the previous cross reference"
+ msgstr "Kuri i Ibanjirije Kwambukiranya Indango"
+ 
+ #: info/session.c:4752
+ #, fuzzy
+ msgid "Move to the next cross reference"
+ msgstr "Kuri i Komeza>> Kwambukiranya Indango"
+ 
+ #: info/session.c:4774
+ #, fuzzy
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Indango Cyangwa Ibikubiyemo Ikintu ku iyi Umurongo"
+ 
+ #: info/session.c:4797
+ #, fuzzy
+ msgid "Cancel current operation"
+ msgstr "KIGEZWEHO"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Kuvamo"
+ 
+ #: info/session.c:4813
+ #, fuzzy
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "i indanga Kuri a Umurongo Bya i Idirishya"
+ 
+ #: info/session.c:4845
+ #, fuzzy
+ msgid "Redraw the display"
+ msgstr "i Kugaragaza"
+ 
+ #: info/session.c:4882
+ #, fuzzy
+ msgid "Quit using Info"
+ msgstr "ikoresha"
+ 
+ #: info/session.c:4895
+ #, fuzzy
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Komandi: Kuri iyi Inyuguti nto"
+ 
+ #: info/session.c:4906
+ #, fuzzy, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Komandi:"
+ 
+ #: info/session.c:4909
+ #, fuzzy, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\"ni Sibyo"
+ 
+ #: info/session.c:4910
+ #, fuzzy, c-format
+ msgid "`%s' is invalid"
+ msgstr "`%s'ni Sibyo"
+ 
+ #: info/session.c:5125
+ #, fuzzy
+ msgid "Add this digit to the current numeric argument"
+ msgstr "iyi Kuri i KIGEZWEHO Bikurikije umubare"
+ 
+ #: info/session.c:5134
+ #, fuzzy
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Gutangira Cyangwa Gukuba ku 4. i KIGEZWEHO Bikurikije umubare"
+ 
+ #: info/session.c:5149
+ #, fuzzy
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "ku Ky'isi yose"
+ 
+ #: info/tilde.c:336
+ #, fuzzy, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "Bya Kitaboneka Ububiko"
+ 
+ #: info/variables.c:37
+ #, fuzzy
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Ubusobanuro mpezarupapuro Kugaragara Na Kubura ku buryo bwikora"
+ 
+ #: info/variables.c:41
+ #, fuzzy
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "Cyangwa a Idirishya Ikindi"
+ 
+ #: info/variables.c:45
+ #, fuzzy
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Umurabyo i Mugaragaza Bya i"
+ 
+ #: info/variables.c:49
+ #, fuzzy
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Amakosa i Kuri Kuvuza Inzogera"
+ 
+ #: info/variables.c:53
+ #, fuzzy
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "Idosiye Kuri"
+ 
+ #: info/variables.c:56
+ #, fuzzy
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "i Bya i Gushaka Ikurikiranyanyuguti ni"
+ 
+ #: info/variables.c:60
+ #, fuzzy
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Ryari: ni ku i Impera Bya a"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ #, fuzzy
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Umubare Imirongo Kuri Ryari: i indanga Inyuma Bya i Idirishya"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ #, fuzzy
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Na Inyuguti"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Ryari: ni ku i Impera Bya a"
+ 
+ #: info/variables.c:88
+ #, fuzzy
+ msgid "Explain the use of a variable"
+ msgstr "i Gukoresha Bya a IMPINDURAGACIRO"
+ 
+ #: info/variables.c:94
+ #, fuzzy
+ msgid "Describe variable: "
+ msgstr "IMPINDURAGACIRO"
+ 
+ #: info/variables.c:113
+ #, fuzzy
+ msgid "Set the value of an Info variable"
+ msgstr "i Agaciro Bya IMPINDURAGACIRO"
+ 
+ # sw/source\ui\fldui\fldui.src:STR_SETFLD.text
+ #: info/variables.c:119
+ #, fuzzy
+ msgid "Set variable: "
+ msgstr "Gushyiraho igihinduka"
+ 
+ #: info/variables.c:137
+ #, fuzzy, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Kuri Agaciro"
+ 
+ #: info/variables.c:178
+ #, fuzzy, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Kuri Agaciro"
+ 
+ #: info/window.c:1026
+ #, fuzzy
+ msgid "--*** Tags out of Date ***"
+ msgstr "--***Inyuma Bya"
+ 
+ #: info/window.c:1037
+ #, fuzzy
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Imirongo"
+ 
+ #: info/window.c:1044
+ #, fuzzy, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info:%s,%dImirongo"
+ 
+ #: info/window.c:1048
+ #, fuzzy, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info:(%s)%s,%dImirongo"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:221
+ #, fuzzy, c-format
+ msgid "%s: warning: "
+ msgstr "%s:Iburira"
+ 
+ #: install-info/install-info.c:270
+ #, fuzzy, c-format
+ msgid " for %s"
+ msgstr "ya:"
+ 
+ #: install-info/install-info.c:500
+ #, fuzzy, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "kugirango a Byuzuye Urutonde Bya Amahitamo"
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr "org."
+ 
+ #: install-info/install-info.c:597
+ #, fuzzy, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "ni i IDOSIYE Ibisobanuro Kirimo Bya i Itangira Igihe Gutangira Bidakora ku "
+ "iyi ni i Hejuru: Bya i i a Ibikubiyemo Bya Q Intonde Byose Amabwiriza D h a "
+ "kugirango Itangira i Bikorwa Kanda Imbeba Akabuto 2. ku a Ibikubiyemo Ikintu "
+ "Cyangwa Kwambukiranya Kuri Guhitamo"
+ 
+ #: install-info/install-info.c:622
+ #, fuzzy, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s:OYA Gusoma Na OYA Kurema"
+ 
+ #: install-info/install-info.c:715
+ #, fuzzy, c-format
+ msgid "%s: empty file"
+ msgstr "%s:ubusa IDOSIYE"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, fuzzy, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s:IDOSIYE"
+ 
+ #: install-info/install-info.c:2036
+ #, fuzzy, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s:i IDOSIYE Rimwe"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, fuzzy, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "Komandi: Umurongo"
+ 
+ #: install-info/install-info.c:2143
+ #, fuzzy
+ msgid "No input file specified; try --help for more information."
+ msgstr "Iyinjiza IDOSIYE Ifashayobora kugirango Birenzeho Ibisobanuro"
+ 
+ #: install-info/install-info.c:2146
+ #, fuzzy
+ msgid "No dir file specified; try --help for more information."
+ msgstr "IDOSIYE Ifashayobora kugirango Birenzeho Ibisobanuro"
+ 
+ #: install-info/install-info.c:2288
+ #, fuzzy, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "Oya Ibisobanuro Icyinjijwe in"
+ 
+ #: install-info/install-info.c:2536
+ #, fuzzy, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "Oya Ibyinjijwe Byabonetse kugirango Cyasibwe"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, fuzzy, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "ingingo Kuri"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "Mutarama"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "Gashyantare"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "Werurwe"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "Mata"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "Gicurasi"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "Kamena"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "Nyakanga"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "Kanama"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "Nzeri"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "Ukwakira"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "Ugushyingo"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "Ukuboza"
+ 
+ #: makeinfo/cmds.c:1131
+ #, fuzzy, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "Inyuguti in VAR"
+ 
+ #: makeinfo/cmds.c:1174
+ #, fuzzy
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "@Byose Inyuguti nkuru Oya INGARUKA"
+ 
+ #: makeinfo/cmds.c:1229
+ #, fuzzy, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "`{'Ikitezwe:"
+ 
+ #: makeinfo/cmds.c:1269
+ #, fuzzy
+ msgid "end of file inside verb block"
+ msgstr "Impera Bya IDOSIYE Mo Imbere Ishinga Funga"
+ 
+ #: makeinfo/cmds.c:1277
+ #, fuzzy, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "`}'Ikitezwe:"
+ 
+ #: makeinfo/cmds.c:1308
+ #, fuzzy
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr "@a Kwambukiranya Indango in Kuri"
+ 
+ #: makeinfo/cmds.c:1504
+ #, fuzzy, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%sni"
+ 
+ #: makeinfo/cmds.c:1612
+ #, fuzzy, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@SP a Bikurikije umubare OYA"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, fuzzy, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Kuri"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "ntacyo"
+ 
+ #: makeinfo/cmds.c:2049
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Kuri"
+ 
+ # basctl/source\basicide\basidesh.src:RID_POPUP_TABBAR.RID_INSERT.text
+ #: makeinfo/cmds.c:2063
+ #, fuzzy
+ msgid "insert"
+ msgstr "Kongeramo"
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Kuri"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ #, fuzzy
+ msgid "Missing `}' in @def arg"
+ msgstr "in"
+ 
+ #: makeinfo/defun.c:711
+ #, fuzzy, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "in Kuri Gukoresha"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr ""
+ 
+ #: makeinfo/files.c:637
+ #, fuzzy, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "`%s'Mbere Ibisohoka Izina ry'idosiye:"
+ 
+ #: makeinfo/files.c:645
+ #, fuzzy, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "`%s'guhera Kuri"
+ 
+ #: makeinfo/files.c:693
+ #, fuzzy
+ msgid "Output buffer not empty."
+ msgstr "OYA ubusa"
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:149
+ #, fuzzy, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`%c%s'OYA"
+ 
+ #: makeinfo/footnote.c:164
+ #, fuzzy, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "kugirango Ubusobanuro mpezarupapuro"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:209
+ #, fuzzy
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Mo Imbere Ubusobanuro mpezarupapuro OYA"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Ubusobanuro mpezarupapuro"
+ 
+ #: makeinfo/html.c:91
+ #, fuzzy, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s:OYA Gufungura IDOSIYE"
+ 
+ #: makeinfo/html.c:180
+ #, fuzzy, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d:--IDOSIYE in Icyo wongeraho"
+ 
+ #: makeinfo/html.c:426
+ #, fuzzy
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[Oya HTML Itagi: Kuri"
+ 
+ #: makeinfo/html.c:800
+ #, fuzzy, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[Sibyo Izina:"
+ 
+ #: makeinfo/index.c:167
+ #, fuzzy, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Umubarendanga"
+ 
+ #: makeinfo/index.c:232
+ #, fuzzy, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "in Umubarendanga Icyinjijwe"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr ""
+ 
+ #: makeinfo/index.c:453
+ #, fuzzy, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Umubarendanga Na Cyangwa in"
+ 
+ #: makeinfo/index.c:676
+ #, fuzzy
+ msgid "(line )"
+ msgstr "(Umurongo"
+ 
+ #: makeinfo/index.c:684
+ #, fuzzy, c-format
+ msgid "(line %*d)"
+ msgstr "(Umurongo"
+ 
+ #: makeinfo/index.c:765
+ #, fuzzy, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Umubarendanga in"
+ 
+ #: makeinfo/index.c:834
+ #, fuzzy, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "kugirango Umubarendanga Hanze Bya"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ #, fuzzy
+ msgid "(outside of any node)"
+ msgstr "(Hanze Bya"
+ 
+ #: makeinfo/insertion.c:161
+ #, fuzzy
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@Ikintu OYA in Kuri"
+ 
+ #: makeinfo/insertion.c:242
+ #, fuzzy
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "in"
+ 
+ #: makeinfo/insertion.c:338
+ #, fuzzy
+ msgid "Enumeration stack overflow"
+ msgstr "Byarenze urugero"
+ 
+ #: makeinfo/insertion.c:370
+ #, fuzzy, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "Byarenze urugero ku"
+ 
+ #: makeinfo/insertion.c:639
+ #, fuzzy, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%si kugirango"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:981
+ #, fuzzy, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "`@Ikitezwe:"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1618
+ #, fuzzy, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%sIbaruwa... Cyangwa"
+ 
+ #: makeinfo/insertion.c:1718
+ #, fuzzy
+ msgid "end of file inside verbatim block"
+ msgstr "Impera Bya IDOSIYE Mo Imbere Funga"
+ 
+ #: makeinfo/insertion.c:1942
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%sOYA Hanze"
+ 
+ #: makeinfo/insertion.c:1978
+ #, fuzzy
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@Ibikubiyemo Mbere Itangira"
+ 
+ #: makeinfo/insertion.c:1979
+ #, fuzzy
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "Hejuru: in"
+ 
+ #: makeinfo/insertion.c:1991
+ #, fuzzy
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@Mbere Itangira"
+ 
+ #: makeinfo/insertion.c:2047
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr "@%sOYA Hanze Na"
+ 
+ #: makeinfo/insertion.c:2061
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%sOYA Hanze"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2097
+ #, fuzzy, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "`%c%s'Nyuma"
+ 
+ #: makeinfo/insertion.c:2103
+ #, fuzzy, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Kuri ikoresha"
+ 
+ #: makeinfo/insertion.c:2200
+ #, fuzzy, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%sOYA Mo Imbere Funga"
+ 
+ #: makeinfo/insertion.c:2209
+ #, fuzzy, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@OYA Mo Imbere Funga"
+ 
+ #: makeinfo/insertion.c:2383
+ #, fuzzy, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%sByabonetse Hanze Bya Iyinjizamo Funga"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, fuzzy, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%sni OYA a Byemewe Ururimi ITEGEKONGENGA"
+ 
+ #: makeinfo/lang.c:1399
+ #, fuzzy, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "Imisobekere: Izina:"
+ 
+ #: makeinfo/lang.c:1407
+ #, fuzzy, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "Imisobekere: OYA"
+ 
+ #: makeinfo/lang.c:1492
+ #, fuzzy, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "Sibyo Inyuguti"
+ 
+ #: makeinfo/lang.c:1800
+ #, fuzzy, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%sCyangwa Nka OYA"
+ 
+ #: makeinfo/lang.c:1804
+ #, fuzzy, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%sa UMWE Inyuguti Cyangwa Nka"
+ 
+ #: makeinfo/macro.c:128
+ #, fuzzy, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "Makoro"
+ 
+ #: makeinfo/macro.c:132
+ #, fuzzy, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "ni i Ibanjirije Insobanuro Bya"
+ 
+ #: makeinfo/macro.c:359
+ #, fuzzy, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "\\ in Makoro ku Bya Izina:"
+ 
+ #: makeinfo/macro.c:401
+ #, fuzzy, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "ku Umurongo Na:"
+ 
+ #: makeinfo/macro.c:580
+ #, fuzzy, c-format
+ msgid "%cend macro not found"
+ msgstr "%cendMakoro OYA Byabonetse"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, fuzzy, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "Impera Na:"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, fuzzy, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "Amakosa Hejuru"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, fuzzy, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d:Iburira"
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:344
+ #, fuzzy, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "kugirango Birenzeho Ibisobanuro"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:350
+ #, fuzzy
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Inkomoko Kuri Ikindi Imiterere ku Idosiye kugirango kiri kuri interineti Na: "
+ "Cyangwa"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, fuzzy, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Amahitamo Ikosa Kuvamo Nyuma Amakosa Mburabuzi Ibisohoka ATARIIGIHARWE NIBA "
+ "Amakosa Ifashayobora Kugaragaza iyi Ifashayobora Na Gusohoka Oya Kwemeza "
+ "Kwambukiranya Indango Kwemeza Oya Iburira OYA Amakosa Indango Ibyerekeye ku "
+ "Indango Mburabuzi v ni Byakozwe Verisiyo Kugaragaza Verisiyo Ibisobanuro Na "
+ "Gusohoka"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, fuzzy, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr "Imiterere Ihitamo Mburabuzi ni Kuri InyandikoGitabo Ibisohoka HTML Ibisohoka xml Ibisohoka Ibisohoka Byuzuye Umwandiko"
+ 
+ #: makeinfo/makeinfo.c:377
+ #, fuzzy
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Ibisohoka Amahitamo E Makoro Kwagura Ibisohoka Makoro Cyagutse Inkomoko Kuri "
+ "Oya Imitwe Imirongo Na Bivuye Ibisohoka Byuzuye Umwandiko Cyangwa Bivuye "
+ "Ibisohoka Kwandika Kuri Bisanzwe Ibisohoka ku Mburabuzi Oya Gutandukanya Bya "
+ "Cyangwa Ibisohoka Ibisohoka IDOSIYE Umubare Ibyatoranyijwe Ibisohoka Umutwe "
+ "Na Imibare o Ibisohoka Ibisohoka Kuri bushyinguro NIBA Gutandukanya"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, fuzzy, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "kugirango Na Byuzuye Umwandiko Gushoboza Imisobekere: Ibisohoka Na "
+ "Bidasanzwe Inyuguti Ibisohoka ku Kuzuza Inkingi itandukanya Imirongo ku "
+ "Inyuguti Mburabuzi Ubusobanuro mpezarupapuro IMISUSIRE Ibisohoka Ubusobanuro "
+ "mpezarupapuro in Kuri Kuri Gushyira in Kuri Gushyira ku i Impera Bya i in "
+ "Mburabuzi Igika Ikurura Ikurura Ibika ku Imyanya Mburabuzi ni OYA Ikurura "
+ "NIBA Gutandukanya Ingano Gutandukanya Idosiye ku Ingano Mburabuzi"
+ 
+ #: makeinfo/makeinfo.c:409
+ #, fuzzy
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr "kugirango Gushyiramo Gushyiramo in IMISUSIRE Ibisohoka Gusoma NIBA ni"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, fuzzy, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "kugirango Na Ibisohoka Ikurura Ikurura Ibintu ku Imyanya Mburabuzi ni 0 ni"
+ 
+ #: makeinfo/makeinfo.c:426
+ #, fuzzy
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "IDOSIYE Amahitamo Amabwiriza in Amazina Kwemerera Amabwiriza in Amazina "
+ "Kugaragaza... i IMPINDURAGACIRO Nka Na: Gushyiraho Kongeraho... Kuri i "
+ "Gushyiramo Gushaka Inzira Kuri i Gushyiramo Gushaka Inzira U i "
+ "IMPINDURAGACIRO Nka Na: Gusiba"
+ 
+ #: makeinfo/makeinfo.c:435
+ #, fuzzy
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Inonosora in Iyinjiza Na InyandikoGitabo ATARIIGIHARWE OYA Na HTML "
+ "ATARIIGIHARWE NIBA OYA ATARIIGIHARWE NIBA OYA ATARIIGIHARWE NIBA OYA Byuzuye "
+ "Umwandiko Na Oya Gutandukanya Na xml Oya OYA Na InyandikoGitabo Umwandiko "
+ "Oya OYA Na HTML Umwandiko Oya OYA Umwandiko Oya OYA Umwandiko Oya OYA Na "
+ "Umwandiko Oya OYA Na xml Umwandiko kugirango i Oya Amahitamo Umwandiko"
+ 
+ #: makeinfo/makeinfo.c:454
+ #, fuzzy
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "kugirango i NIBA ku i Ibisohoka Imiterere NIBA ni ku Na i Ibindi Bidakora "
+ "NIBA ni ku Na i Ibindi Bidakora NIBA Byuzuye Umwandiko ni ku Na i Ibindi "
+ "Bidakora NIBA ni ku Na i Ibindi Bidakora"
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Kwandika Kuri HTML Kwandika Kuri xml Kwandika Kuri InyandikoGitabo Kwandika "
+ "Kuri Oya Imitwe Kwandika Byuzuye Umwandiko Kuri Bisanzwe HTML Oya Imitwe "
+ "Kwandika HTML Imirongo Umubare Ibyatoranyijwe Kwandika Na: Iriho Imibare Oya "
+ "Gutandukanya Kwandika IDOSIYE"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, fuzzy, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s:Kwirengagiza Agaciro"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, fuzzy, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s:%sBikurikije umubare OYA"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, fuzzy, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s:OYA Gufungura Makoro Ibisohoka"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, fuzzy, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s:ISEGONDA Makoro Ibisohoka"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s:OYA Gufungura Makoro Ibisohoka"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s:ISEGONDA Makoro Ibisohoka"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, fuzzy, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr "%s:--Igika Ikurura Bikurikije umubare OYA"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, fuzzy, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr "%s:--Ubusobanuro mpezarupapuro IMISUSIRE Cyangwa OYA"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, fuzzy, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s:Ibuze IDOSIYE"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, fuzzy, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Komandi:"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, fuzzy, c-format
+ msgid "Expected `%s'"
+ msgstr "Ikitezwe:"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, fuzzy, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Kurema bushyinguro"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, fuzzy, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Byabonetse in"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, fuzzy, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr "%s:Makoro Kuri Nka Ibisohoka ni"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, fuzzy, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "IDOSIYE Bivuye"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr "%s:Makoro Ibisohoka IDOSIYE Kuri Amakosa Gukoresha Kuri"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, fuzzy, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr "%s:Ibisohoka IDOSIYE Kuri Amakosa Gukoresha Kuri"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr "%s:Ibisohoka IDOSIYE Kuri Amakosa Gukoresha Kuri"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, fuzzy, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Komandi:"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, fuzzy, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "Ingirwadusodeko Kuri a Komandi: Nka Kuri"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, fuzzy, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%sIkitezwe: Ingirwadusodeko"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr ""
+ 
+ # 4203
+ #: makeinfo/makeinfo.c:2455
+ #, fuzzy
+ msgid "NO_NAME!"
+ msgstr "nta zina"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, fuzzy, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%sIbuze Gufunga"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, fuzzy, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@Ishusho IDOSIYE kugirango OYA"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, fuzzy, c-format
+ msgid "No such file `%s'"
+ msgstr "IDOSIYE"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, fuzzy, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@Ishusho IDOSIYE kugirango Umwandiko"
+ 
+ #: makeinfo/makeinfo.c:3633
+ #, fuzzy
+ msgid "@image missing filename argument"
+ msgstr "@Ishusho Ibuze Izina ry'idosiye:"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, fuzzy, c-format
+ msgid "undefined flag: %s"
+ msgstr "kidasobanuye Ibendera"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, fuzzy, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Agaciro kugirango"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, fuzzy, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%sa Izina:"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, fuzzy, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Mbere Impera"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, fuzzy, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr ""
+ "`%.Project- Id- Version: basctl\n"
+ "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
+ "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
+ "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
+ "Content- Type: text/ plain; charset= UTF- 8\n"
+ "Content- Transfer- Encoding: 8bit\n"
+ "X- Generator: KBabel 1. 0\n"
+ "."
+ 
+ #: makeinfo/multi.c:116
+ #, fuzzy
+ msgid "Missing } in @multitable template"
+ msgstr "in Inyandikorugero"
+ 
+ #: makeinfo/multi.c:260
+ #, fuzzy, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "Umwandiko Nyuma"
+ 
+ #: makeinfo/multi.c:400
+ #, fuzzy, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Inkingi in Ikintu KININI"
+ 
+ #: makeinfo/multi.c:563
+ #, fuzzy, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[Guhitamo Inkingi in"
+ 
+ #: makeinfo/multi.c:592
+ #, fuzzy
+ msgid "ignoring @tab outside of multitable"
+ msgstr "Isunika Hanze Bya"
+ 
+ #: makeinfo/multi.c:640
+ #, fuzzy, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "**Ibisohoka Bivuye Iheruka Urubariro"
+ 
+ #: makeinfo/multi.c:643
+ #, fuzzy, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "*Inkingi Ibisohoka"
+ 
+ #: makeinfo/node.c:279
+ #, fuzzy, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "ku Umurongo"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:714
+ #, fuzzy, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "g."
+ 
+ #: makeinfo/node.c:878
+ #, fuzzy, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Izina: kugirango Komandi:"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, fuzzy, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Na Kuri i IDOSIYE Izina:"
+ 
+ #: makeinfo/node.c:922
+ #, fuzzy
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "Agafashi Komandi: Indango Kuri OYA Akazi"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ #, fuzzy
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "iyi Agafashi Cyangwa Gukoresha i Oya Ihitamo"
+ 
+ #: makeinfo/node.c:954
+ #, fuzzy, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Ikurikiranyanyuguti ku Impera Bya Gutandukanya IDOSIYE"
+ 
+ #: makeinfo/node.c:1160
+ #, fuzzy, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Na Kuri i IDOSIYE Izina:"
+ 
+ #: makeinfo/node.c:1165
+ #, fuzzy
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "@Agafashi Komandi: Indango Kuri OYA Akazi"
+ 
+ #: makeinfo/node.c:1362
+ #, fuzzy, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr "%sIndango Kuri"
+ 
+ #: makeinfo/node.c:1462
+ #, fuzzy, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr "Umwanya Bya OYA Kuri"
+ 
+ #: makeinfo/node.c:1465
+ #, fuzzy, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "i"
+ 
+ #: makeinfo/node.c:1520
+ #, fuzzy, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Umwanya Bya OYA Kuri"
+ 
+ #: makeinfo/node.c:1524
+ #, fuzzy, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "i"
+ 
+ #: makeinfo/node.c:1536
+ #, fuzzy, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "`%s'Oya Umwanya"
+ 
+ #: makeinfo/node.c:1605
+ #, fuzzy, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr "Ibikubiyemo Ikintu kugirango Intego"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1731
+ #, fuzzy, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Gukuraho... IDOSIYE"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:467
+ #, fuzzy, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Ikosa"
+ 
+ #: makeinfo/sectioning.c:563
+ #, fuzzy, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Ikosa"
+ 
+ #: makeinfo/sectioning.c:624
+ #, fuzzy, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%sni Gukoresha"
+ 
+ #: makeinfo/sectioning.c:640
+ #, fuzzy, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "Na: Nka a Icyiciro"
+ 
+ #: makeinfo/sectioning.c:648
+ #, fuzzy, c-format
+ msgid "Here is the %ctop node"
+ msgstr "ni i"
+ 
+ #: makeinfo/sectioning.c:664
+ #, fuzzy, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctopMbere Kuri"
+ 
+ #: makeinfo/xml.c:1669
+ #, fuzzy, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@Ishusho IDOSIYE"
+ 
+ #: makeinfo/xml.c:2014
+ #, fuzzy
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr "@Nka i Iheruka Ikintu Bya Sibyo Inyandiko"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "ya"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "kuri"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Kwambukiranya Indango in iyi"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ #, fuzzy
+ msgid "display this help and exit"
+ msgstr "Kugaragaza iyi Ifashayobora Na Gusohoka"
+ 
+ #: util/texindex.c:225
+ #, fuzzy
+ msgid "send output to FILE"
+ msgstr "Kohereza Ibisohoka Kuri"
+ 
+ #: util/texindex.c:227
+ #, fuzzy
+ msgid "display version information and exit"
+ msgstr "Kugaragaza Verisiyo Ibisobanuro Na Gusohoka"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr ""
+ 
+ #: util/texindex.c:238
+ #, fuzzy, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "a bishunguwe Umubarendanga kugirango Ibisohoka"
+ 
+ #: util/texindex.c:241
+ #, fuzzy, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "ni Nka kugirango a Inyandiko"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Amahitamo:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr ""
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, fuzzy, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s:OYA a Umubarendanga IDOSIYE"
+ 
+ #: util/texindex.c:993
+ #, fuzzy, c-format
+ msgid "No page number in %s"
+ msgstr "Ipaji Umubare in"
+ 
+ #: util/texindex.c:1066
+ #, fuzzy, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "Icyinjijwe Icyinjijwe Na: a Izina:"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10 Gushaka Imbere kugirango a Na Guhitamo i in i Komeza>> ukugaragara "
+ #~ "ni Byabonetse"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "\\%-10 Kuri ku Izina: Gicurasi Gushyiramo a Izina ry'idosiye: Nka Nka in"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "\\%-10 Komeza>> Kuri i Komeza>> Bya iyi"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr "\\%-10 Kuri i Kuri"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr "\\%-10 Hejuru: Kuri i Kuri"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10 Gushaka subira inyuma subira inyuma kugirango a Na Guhitamo i in i "
+ #~ "Ibanjirije ukugaragara ni Byabonetse"
+ 
+ #, fuzzy
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr "---Urutonde Cyangwa Kuri Gusohoka"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr "\\%-10 Kwimura Kuri X- Ngenderwaho Kuri Ibanjirije Ihuza muri iyi"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "in Imiterere Hejuru in Byose ibimenyetso Bya Byose D bushyinguro "
+ #~ "Kongeramo Kuri Ukoresha: in F IDOSIYE IDOSIYE Kuri h Ifashayobora "
+ #~ "Kugaragaza iyi Ifashayobora Na Gusohoka Umubarendanga Gushaka Gyayo Kuri "
+ #~ "ku Umubarendanga Icyinjijwe N in Itangira IDOSIYE o Ibisohoka Ibisohoka "
+ #~ "Byahiswemo Kuri Ibisohoka Mburabuzi Oya Ibisohoka Nka Umwandiko Kugarura "
+ #~ "Gusoma Bivuye Garagaza Amahitamo Ikoresha: Gyayo Kuri Komandi: Umurongo "
+ #~ "Amahitamo Ibisohoka Ibikubiyemo W Ahantu Gucapa Ifatika Ahantu Bya "
+ #~ "IDOSIYE Utubuto Gukoresha nka Na Birutwa nka Urufunguzo Ibyafataranyijwe "
+ #~ "Verisiyo Kugaragaza Verisiyo Ibisobanuro Na Gusohoka Itangira Ihitamo "
+ #~ "NIBA ni i Ibikubiyemo Icyinjijwe Kuri Gutangira Bivuye ni kugirango in "
+ #~ "Byose Idosiye ni OYA Ibisobanuro Byose Idosiye Na i Igisubizo ingingo Nka "
+ #~ "i Amazina Bya Bifitanye isano Kuri i Ibisobanuro Garagaza Hejuru: urwego "
+ #~ "Ibisobanuro Gutangira ku Bivuye Hejuru: urwego Ibisobanuro Gutangira ku "
+ #~ "muri Ibisobanuro Garagaza Amahitamo Gutangira ku Na: Komandi: Umurongo "
+ #~ "Ibisobanuro F Ibisobanuro Garagaza IDOSIYE Ibisobanuro OYA Ishakisha"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr "a Ibikubiyemo Ikintu Kuri Byahiswemo"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr "Gicurasi Gushyiramo a Izina ry'idosiye: Nka Nka in"
+ 
+ #, fuzzy
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "%-10ssubira inyuma kugirango a"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "Na Guhitamo i in i Komeza>> ukugaragara ni Byabonetse"
+ 
+ #, fuzzy
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "Itangira Ibikubiyemo Ikintu"
+ 
+ #, fuzzy
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "Igihe S Hanyuma"
+ 
+ #, fuzzy
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "in iyi Idirishya"
+ 
+ #, fuzzy
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "in iyi Idirishya"
+ 
+ #, fuzzy
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "Kuri Iheruka Ibikubiyemo Ikintu"
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "Umumaro"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "Makoro"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "Imburabuzi"
+ 
+ #, fuzzy
+ #~ msgid "Instance Variable"
+ #~ msgstr "Imburabuzi"
+ 
+ #~ msgid "Method"
+ #~ msgstr "Uburyo"
+ 
+ # filter/source\xsltdialog\xmlfilterdialogstrings.src:STR_DEFAULT_UI_NAME.text
+ #~ msgid "Untitled"
+ #~ msgstr "Nta mutwe"
+ 
+ #, fuzzy
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "ni ku Verisiyo Bivuye"
+ 
+ #, fuzzy
+ #~ msgid "Next:"
+ #~ msgstr "Ibikurikira>"
+ 
+ #, fuzzy
+ #~ msgid "Previous:"
+ #~ msgstr "Ibanjirije"
+ 
+ # #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+ # sc/source\ui\src\menue.src:SCCFG_PLUGINMENU.SUBMENU_EDIT.SUBMENU_FILL.FID_FILL_TO_TOP.text
+ # #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+ # sc/source\ui\src\menue.src:SCCFG_MENUBAR.SUBMENU_EDIT.SUBMENU_FILL.FID_FILL_TO_TOP.text
+ # #-#-#-#-#  sc.pot (PACKAGE VERSION)  #-#-#-#-#
+ # sc/source\ui\src\miscdlgs.src:RID_SCDLG_FILLSERIES.BTN_TOP.text
+ #, fuzzy
+ #~ msgid "Up:"
+ #~ msgstr "Hejuru"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "Ibikubiyemo"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "Kwambukiranya"
+ 
+ #, fuzzy
+ #~ msgid "Prev"
+ #~ msgstr "Ibanjirije"
+ 
+ #~ msgid "Up"
+ #~ msgstr "Hejuru"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "Cyangwa Gusiba Ibyinjijwe Bivuye in i bushyinguro Gusiba Gusiba "
+ #~ "Ibyinjijwe kugirango Bivuye Kongeramo Gishya Ibyinjijwe IDOSIYE IDOSIYE "
+ #~ "Izina: Bya bushyinguro IDOSIYE ni Kuri ikoresha i Icyinjijwe Kongeramo "
+ #~ "Nka bushyinguro Icyinjijwe i Ifishi Bya Ibikubiyemo Ikintu Guteranya Zeru "
+ #~ "Cyangwa Birenzeho Birenga Imirongo Na: Birenzeho Icyinjijwe Byose "
+ #~ "Kyongewe Ibyinjijwe Bivuye Ibisobanuro in i IDOSIYE Ifashayobora "
+ #~ "Kugaragaza iyi Ifashayobora Na Gusohoka Ibisobanuro IDOSIYE IDOSIYE Kuri "
+ #~ "Kwinjiza porogaramu in i bushyinguro ni Kuri ikoresha i Ibisobanuro Nka "
+ #~ "IDOSIYE Ikintu Nka Icyinjijwe bushyinguro Icyinjijwe ni a Ibikubiyemo "
+ #~ "Ikintu Iburira Gukuraho... Nka Gusiba Icyiciro Gushyira iyi Ibyinjijwe in "
+ #~ "Icyiciro Bya i bushyinguro Birenzeho Icyiciro Byose i Kyongewe in Bya i "
+ #~ "Ibyatoranyijwe Ibyatoranyijwe Bivuye Ibisobanuro in i IDOSIYE Verisiyo "
+ #~ "Kugaragaza Verisiyo Ibisobanuro Na Gusohoka"
+ 
+ #, fuzzy
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "Ibikubiyemo Ikintu kugirango IDOSIYE"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr "\\%-10 Ibikubiyemo Itangira Ikintu in Ibikubiyemo"
+ 
+ #, fuzzy
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "Times"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "C ni Gicurasi iyi i Bya i Birenzeho Ibisobanuro Ibyerekeye i Idosiye"
+ 
+ #, fuzzy
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@Gushyiraho akugarizo kugirango UMWE Makoro"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "Ishakiro"
+ 
+ #, fuzzy
+ #~ msgid "Short Contents"
+ #~ msgstr "Ishakiro"
+ 
+ #, fuzzy
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "Gumana: By'igihe gito Idosiye Nyuma Inonosora"
+ 
+ #, fuzzy
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "OYA Gumana: By'igihe gito Idosiye Nyuma Inonosora Mburabuzi"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr "IDOSIYE Na Guhitamo i ku i Itangira Icyinjijwe Byabonetse"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr "ni Gicurasi iyi i Bya i Birenzeho Ibisobanuro Ibyerekeye i Idosiye"
diff -Nrc2 texinfo-4.12/po/stamp-po texinfo-4.13/po/stamp-po
*** texinfo-4.12/po/stamp-po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/stamp-po	Thu Sep 18 11:38:58 2008
***************
*** 0 ****
--- 1 ----
+ timestamp
Files texinfo-4.12/po/sv.gmo and texinfo-4.13/po/sv.gmo differ
diff -Nrc2 texinfo-4.12/po/sv.po texinfo-4.13/po/sv.po
*** texinfo-4.12/po/sv.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/sv.po	Thu Sep 18 11:38:33 2008
***************
*** 0 ****
--- 1,3862 ----
+ # Swedish messages for texinfo.
+ # Copyright (C) 2001, 2002, 2003, 2004, 2008 Free Software Foundation, Inc.
+ # Christian Rose <menthos@menthos.com>, 2001, 2002, 2003, 2004, 2008.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.11.93\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2008-03-09 20:35+0100\n"
+ "Last-Translator: Christian Rose <menthos@menthos.com>\n"
+ "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr "OkÃ¤nt systemfel"
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: flaggan \"%s\" Ã¤r flertydig\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: flaggan \"--%s\" tillÃ¥ter inget argument\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: flaggan \"%c%s\" tillÃ¥ter inget argument\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: flaggan \"%s\" krÃ¤ver ett argument\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: okÃ¤nd flagga \"--%s\"\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: okÃ¤nd flagga \"%c%s\"\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: otillÃ¥ten flagga -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: ogiltig flagga -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: flaggan krÃ¤ver ett argument -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: flaggan \"-W %s\" Ã¤r flertydig\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: flaggan \"-W %s\" tillÃ¥ter inget argument\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "minne slut"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "GÃ¥ ett tecken framÃ¥t"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "GÃ¥ ett tecken bakÃ¥t"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "GÃ¥ till bÃ¶rjan pÃ¥ raden"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "GÃ¥ till slutet pÃ¥ raden"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "GÃ¥ ett ord framÃ¥t"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "GÃ¥ ett ord bakÃ¥t"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Ta bort tecknet under markÃ¶ren"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Ta bort tecknet bakom markÃ¶ren"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Avbryt eller avsluta operation"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Acceptera (eller tvinga komplettering av) denna rad"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Infoga nÃ¤sta tecken ordagrant"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Infoga detta tecken"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Infoga ett TABULATOR-tecken"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Transponera tecken vid punkt"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Ryck tillbaka innehÃ¥llet i det senaste dÃ¶dandet"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "DÃ¶dsringen Ã¤r tom"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Ryck tillbaka ett tidigare dÃ¶dande"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "DÃ¶da till slutet pÃ¥ raden"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "DÃ¶da till bÃ¶rjan pÃ¥ raden"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "DÃ¶da ordet efter markÃ¶ren"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "DÃ¶da ordet fÃ¶re markÃ¶ren"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Inga kompletteringar"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Inte fullstÃ¤ndig"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Visa mÃ¶jliga kompletteringar"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Enda komplettering"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "En komplettering:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d kompletteringar:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Infoga komplettering"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Bygger kompletteringar..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Rulla kompletteringsfÃ¶nstret"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Fotnoter kunde inte visas"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "Visa fotnoterna som Ã¤r associerade med denna nod i ett annat fÃ¶nster"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- Fotnoter -----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "SlÃ¥ upp en strÃ¤ng i indexet fÃ¶r denna fil"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "SÃ¶ker indexposter..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Inga index hittades."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Indexpost: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "GÃ¥ till nÃ¤sta matchande indexpost frÃ¥n det senaste \"\\[index-search]\"-"
+ "kommandot"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Det finns ingen tidigare indexsÃ¶kstrÃ¤ng."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Inga indexposter."
+ 
+ # This is broken
+ #
+ #  info_error (_("No %sindex entries containing \"%s\"."),
+ #              index_offset > 0 ? _("more ") : "", index_search);
+ #
+ # Please don't use this type of construct, use two complete sentences
+ # instead and an outer if statement.
+ #
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "Inga %sindexposter som innehÃ¥ller \"%s\"."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "fler "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "KAN INTE SE DETTA"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "Hittade \"%s\" i %s. (\"\\[next-index-match]\" fÃ¶rsÃ¶ker hitta nÃ¤sta)."
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "GenomsÃ¶ker index av \"%s\"..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Inga tillgÃ¤ngliga infofiler har \"%s\" i deras index."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr "GrÃ¤v i alla kÃ¤nda infofilers index efter en strÃ¤ng och bygg en meny"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Index-apropos: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Meny: Noder vars index innehÃ¥ller \"%s\":\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Prova --help fÃ¶r mer information.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ "Copyright Â© %s Free Software Foundation, Inc.\n"
+ "Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "(FÃ¶ljande text Ã¤r en informell Ã¶versÃ¤ttning som enbart tillhandahÃ¥lls\n"
+ " i informativt syfte. FÃ¶r alla juridiska tolkningar gÃ¤ller den engelska\n"
+ " originaltexten.)\n"
+ "Det hÃ¤r Ã¤r fri programvara. Du kan fritt modifiera det och\n"
+ "vidaredistribuera det. Det finns INGEN GARANTI, i den omfattning som\n"
+ "medges av gÃ¤llande lag.\n"
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "inga indexposter fÃ¶r \"%s\" hittades\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ "AnvÃ¤ndning: %s [FLAGGA]... [MENYPOST...]\n"
+ "\n"
+ "LÃ¤s dokumentation i Info-format.\n"
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ "Flaggor:\n"
+ "  -k, --apropos=STRÃ„NG         slÃ¥ upp STRÃ„NG i alla index i alla manualer.\n"
+ "  -d, --directory=KATALOG      lÃ¤gg till KATALOG till INFOPATH.\n"
+ "      --dribble=FILNAMN        kom ihÃ¥g anvÃ¤ndarens tangentnedtryckningar i\n"
+ "                               FILNAMN.\n"
+ "  -f, --file=FILNAMN           ange den Info-fil som ska besÃ¶kas."
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ "  -h, --help                   visa denna hjÃ¤lptext och avsluta.\n"
+ "      --index-search=STRÃ„NG    gÃ¥ till noden som utpekas av indexpost\n"
+ "                               STRÃ„NG.\n"
+ "  -n, --node=NODNAMN           ange noder i den fÃ¶rst besÃ¶kta Info-filen.\n"
+ "  -o, --output=FILNAMN         skriv ut valda noder till FILNAMN."
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ "  -R, --raw-escapes            skriv ut \"rÃ¥a\" ANSI-styrkoder (standard).\n"
+ "      --no-raw-escapes         skriv ut styrkoder som text.\n"
+ "      --restore=FILNAMN        lÃ¤s initiala tangentnedtryckningar frÃ¥n\n"
+ "                               FILNAMN.\n"
+ "  -O, --show-options, --usage  gÃ¥ till noden fÃ¶r kommandoradsflaggor."
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr "  -b, --speech-friendly        var vÃ¤nlig mot talsyntesprogram."
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ "      --subnodes               skriv ut menyposter rekursivt.\n"
+ "      --vi-keys                anvÃ¤nd vi- och less-liknande\n"
+ "                               snabbtangenter.\n"
+ "      --version                visa versionsinformation och avsluta.\n"
+ "  -w, --where, --location      skriv ut den fysiska platsen fÃ¶r Info-filen."
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ "\n"
+ "Det fÃ¶rsta argumentet som inte Ã¤r en flagga Ã¤r, om det finns, menyposten\n"
+ "att bÃ¶rja frÃ¥n. Det sÃ¶ks efter i alla \"dir\"-filer i INFOPATH.\n"
+ "Om den inte finns slÃ¥r info samman alla \"dir\"-filer och visar resultatet.\n"
+ "Alla Ã¥terstÃ¥ende argument betraktas som namnen pÃ¥ menyposter relativa till\n"
+ "den fÃ¶rst besÃ¶kta noden."
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ #, fuzzy
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ "\n"
+ "Exempel:\n"
+ "  info                       visa Ã¶versta katalogmenyn\n"
+ "  info emacs                 bÃ¶rja pÃ¥ emacs-noden frÃ¥n Ã¶versta katalogen\n"
+ "  info emacs buffers         bÃ¶rja pÃ¥ buffertnoden inom emacs-manualen\n"
+ "  info --show-options emacs  bÃ¶rja pÃ¥ noden med emacs kommandoradsflaggor\n"
+ "  info --subnodes -o ut.txt emacs  dumpa hela manualen till ut.txt\n"
+ "  info -f ./foo.info         visa filen ./foo.info, sÃ¶k inte i katalogen"
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Skicka felrapporter till bug-texinfo@gnu.org,\n"
+ "allmÃ¤nna frÃ¥gor och diskussion till help-texinfo@gnu.org\n"
+ "och synpunkter pÃ¥ Ã¶versÃ¤ttningen till sv@li.org.\n"
+ "Hemsida fÃ¶r texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "Kan inte hitta noden \"%s\"."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "Kan inte hitta noden \"(%s)%s\"."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Kan inte hitta ett fÃ¶nster!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Punkten finns inte inom detta fÃ¶nsters nod!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Kan inte ta bort det sista fÃ¶nstret."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Ingen meny i denna nod."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Inga fotnoter i denna nod."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Inga korsreferenser i denna nod."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Ingen \"%s\"-pekare fÃ¶r denna nod."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "OkÃ¤nt Info-kommando \"%c\". Prova \"?\" fÃ¶r hjÃ¤lp."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Terminaltypen \"%s\" Ã¤r inte tillrÃ¤ckligt smart fÃ¶r att kÃ¶ra Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Du Ã¤r redan pÃ¥ sista sidan fÃ¶r denna nod."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Du Ã¤r redan pÃ¥ fÃ¶rsta sidan fÃ¶r denna nod."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Endast ett fÃ¶nster."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Resulterande fÃ¶nstret skulle bli fÃ¶r litet."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr ""
+ "Inte tillrÃ¤ckligt med utrymme fÃ¶r ett hjÃ¤lpfÃ¶nster, ta bort ett fÃ¶nster."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr "GrundlÃ¤ggande Info-kommandotangenter\n"
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  StÃ¤ng detta hjÃ¤lpfÃ¶nster.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Avsluta Info helt.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Starta Info-handboken.\n"
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-node]  GÃ¥ en rad uppÃ¥t.\n"
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  GÃ¥ en rad nedÃ¥t.\n"
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Rulla en skÃ¤rmlÃ¤ngd bakÃ¥t.\n"
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Rulla en skÃ¤rmlÃ¤ngd framÃ¥t.\n"
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  GÃ¥ till bÃ¶rjan pÃ¥ denna nod.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  GÃ¥ till slutet pÃ¥ denna nod.\n"
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "\\%-10[move-to-next-xref]  Hoppa till nÃ¤sta hypertextlÃ¤nk.\n"
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  FÃ¶lj hypertextlÃ¤nken under markÃ¶ren.\n"
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "\\%-10[history-node]  GÃ¥ till den sista noden i detta fÃ¶nster.\n"
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[global-prev-node]  GÃ¥ till fÃ¶regÃ¥ende nod i dokumentet.\n"
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[global-next-node]  GÃ¥ till nÃ¤sta nod i dokumentet.\n"
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  GÃ¥ till fÃ¶regÃ¥ende nod pÃ¥ denna nivÃ¥.\n"
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  GÃ¥ till nÃ¤sta nod pÃ¥ denna nivÃ¥.\n"
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  GÃ¥ en nivÃ¥ uppÃ¥t.\n"
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[top-node]  GÃ¥ till den Ã¶versta noden i detta dokument.\n"
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[dir-node]  GÃ¥ till huvudkatalognoden.\n"
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "1...9       VÃ¤lj fÃ¶rsta...nionde objektet i denna nods meny.\n"
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  VÃ¤lj sista objektet i denna nods meny.\n"
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "\\%-10[menu-item]  VÃ¤lj den namngivna menyposten.\n"
+ 
+ #: info/infodoc.c:73
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  FÃ¶lj den namngivna korsreferensen.\n"
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "\\%-10[goto-node]  GÃ¥ till den namngivna noden.\n"
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "\\%-10[search]  SÃ¶k framÃ¥t efter en angiven strÃ¤ng.\n"
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[search-previous]  SÃ¶k efter fÃ¶regÃ¥ende fÃ¶rekomst.\n"
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "\\%-10[search-next]  SÃ¶k efter nÃ¤sta fÃ¶rekomst.\n"
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  SÃ¶k efter en angiven strÃ¤ng i indexet, och vÃ¤lj\n"
+ "              noden som refereras av den fÃ¶rsta posten som hittas.\n"
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "\\%-10[abort-key]  Avbryt pÃ¥gÃ¥ende Ã¥tgÃ¤rd.\n"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "GrundlÃ¤ggande kommandon i Info-fÃ¶nster\n"
+ "**************************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Avsluta denna hjÃ¤lp.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Avsluta Info helt.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Starta Info-handboken.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  GÃ¥ till nÃ¤sta nod frÃ¥n denna nod.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  GÃ¥ till fÃ¶regÃ¥ende nod frÃ¥n denna nod.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  GÃ¥ upp frÃ¥n denna nod.\n"
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "  %-10s  VÃ¤lj den namngivna menyposten.\n"
+ "              Att vÃ¤lja en menypost gÃ¶r att en annan nod vÃ¤ljs.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  FÃ¶lj en korsreferens. LÃ¤ser namnet pÃ¥ en referens.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  GÃ¥ till den sista noden i detta fÃ¶nster.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Hoppa till nÃ¤sta hypertextlÃ¤nk i denna nod.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  FÃ¶lj hypertextlÃ¤nken under markÃ¶ren.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  GÃ¥ till \"directory\"-noden. LikvÃ¤rdigt med \"g (DIR)\".\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  GÃ¥ till den Ã¶versta noden. LikvÃ¤rdigt med \"g Top\".\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "FÃ¶rflyttning inom en nod:\n"
+ "-------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Rulla en sida framÃ¥t.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Rulla en sida bakÃ¥t.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  GÃ¥ till bÃ¶rjan pÃ¥ denna nod.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  GÃ¥ till slutet pÃ¥ denna nod.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Rulla en rad framÃ¥t.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Rulla en rad bakÃ¥t.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Andra kommandon:\n"
+ "----------------\n"
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  VÃ¤lj fÃ¶rsta...nionde objektet i nodens meny.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  VÃ¤lj det sista objektet i nodens meny.\n"
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "  %-10s  SÃ¶k efter en angiven strÃ¤ng i indexposterna i denna Info-fil,\n"
+ "              och vÃ¤lj noden som refereras av den fÃ¶rsta posten som\n"
+ "              hittas.\n"
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "  %-10s  GÃ¥ till den namngivna noden.\n"
+ "              Du kan Ã¤ven inkludera ett filnamn, som exempelvis\n"
+ "              (FILNAMN)NODNAMN.\n"
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  SÃ¶k framÃ¥t efter en angiven strÃ¤ng\n"
+ "              och vÃ¤lj den nod i vilken nÃ¤sta fÃ¶rekomst hittas.\n"
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  SÃ¶k bakÃ¥t efter en angiven strÃ¤ng\n"
+ "              och vÃ¤lj den nod i vilken nÃ¤sta fÃ¶rekomst hittas.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Den aktuella sÃ¶kvÃ¤gen Ã¤r:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Kommandon som Ã¤r tillgÃ¤ngliga i Info-fÃ¶nster:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Kommandon som Ã¤r tillgÃ¤ngliga i echo-omrÃ¥det:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "FÃ¶ljande kommandon kan endast startas via %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "FÃ¶ljande kommandon kan inte startas alls:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Visa hjÃ¤lpmeddelande"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "BesÃ¶k Info-noden \"(info)Help\""
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "Visa dokumentationen fÃ¶r NYCKEL"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Beskriv nyckel: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s Ã¤r odefinierad."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s Ã¤r odefinierad."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s Ã¤r definierad till %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Visa vad som ska anges fÃ¶r att kÃ¶ra ett angivet kommando"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Var Ã¤r kommando: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "\"%s\" finns inte pÃ¥ nÃ¥gra tangenter"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s kan endast startas via %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s kan startas via %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "Det finns ingen funktion med namnet \"%s\""
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "VÃ¤lja andra noder:\n"
+ "------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "felaktigt antal argument"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "kan inte Ã¶ppna indatafilen \"%s\""
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "kan inte skapa utdatafilen \"%s\""
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "fel vid skrivning till \"%s\""
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "fel vid stÃ¤ngning av utdatafilen \"%s\""
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "nyckelsekvensen Ã¤r fÃ¶r lÃ¥ng"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "nyckelsekvens saknas"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "NUL-tecknet (\\000) Ã¤r inte tillÃ¥tet"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "NUL-tecknet (^%c) Ã¤r inte tillÃ¥tet"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "Ã¥tgÃ¤rdsnamn saknas"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "avsnittet Ã¤r fÃ¶r lÃ¥ngt"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "okÃ¤nd Ã¥tgÃ¤rd \"%s\""
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "Ã¥tgÃ¤rdsnamnet Ã¤r fÃ¶r lÃ¥ngt"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "extra tecken fÃ¶ljer pÃ¥ Ã¥tgÃ¤rden \"%s\""
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "variabelnamn saknas"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "\"=\" saknas direkt efter variabelnamnet"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "variabelnamnet Ã¤r fÃ¶r lÃ¥ngt"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "vÃ¤rdet Ã¤r fÃ¶r lÃ¥ngt"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", rad %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "AnvÃ¤ndning: %s [FLAGGA]... [INDATAFIL]\n"
+ "\n"
+ "Kompilera infonyckelkÃ¤llfil till infonyckelfil. LÃ¤ser INDATAFIL (som\n"
+ "standard $HOME/.infokey) och skriver (som standard) den kompilerade\n"
+ "nyckelfilen till $HOME/.info.\n"
+ "\n"
+ "Flaggor:\n"
+ "  --output FIL         generera till FIL istÃ¤llet fÃ¶r $HOME/.info\n"
+ "  --help               visa denna hjÃ¤lptext och avsluta.\n"
+ "  --version            visa versionsinformation och avsluta.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Ignorerar ogiltig infonyckelfil \"%s\" - fÃ¶r liten"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Ignorerar ogiltig infonyckelfil \"%s\" - fÃ¶r stor"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Fel vid lÃ¤sning av infonyckelfilen \"%s\" - kort lÃ¤sning"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "Ogiltig infonyckelfil \"%s\" (felaktiga magiska nummer) -- kÃ¶r infokey fÃ¶r\n"
+ "att uppdatera den"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ "Din infonyckelfil \"%s\" Ã¤r fÃ¶r gammal -- kÃ¶r infokey fÃ¶r att uppdatera den"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Ogiltig infonyckelfil \"%s\" (felaktig asvnittslÃ¤ngd) -- kÃ¶r infokey fÃ¶r\n"
+ "att uppdatera den"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "ogiltig infonyckelfil \"%s\" (felaktig avsnittskod) -- kÃ¶r infokey fÃ¶r att\n"
+ "uppdatera den"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "Felaktig data i infonyckelfil -- en del bindningar ignorerades"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr "Felaktig data i infonyckelfil -- en del instÃ¤llningar ignorerades"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "LÃ¤s namnet pÃ¥ ett Info-kommando och beskriv det"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Beskriv kommando: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "LÃ¤s ett kommandonamn i echo-omrÃ¥det och kÃ¶r det"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Kan inte kÃ¶ra ett \"echo-area\"-kommando hÃ¤r."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "Odefinierat kommando: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "StÃ¤ll in hÃ¶jden pÃ¥ det visade fÃ¶nstret"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "StÃ¤ll in skÃ¤rmhÃ¶jden till (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   KÃ¤llkodsfiler som grÃ¤vdes igenom fÃ¶r att gÃ¶ra att denna fil inkluderar:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "Kunde inte manipulera filen %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Meny:\n"
+ "  (Fil)Nod                          Rader   Storl. InnehÃ¥llande fil\n"
+ "  --------                          -----   ------ ----------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "HÃ¤r Ã¤r menyn med de noder som du har besÃ¶kt nyligen.\n"
+ "VÃ¤lj en frÃ¥n denna meny eller anvÃ¤nd\"\\[history-node]\" i ett annat "
+ "fÃ¶nster.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr ""
+ "Skapa ett fÃ¶nster som innehÃ¥ller en meny med alla nyligen besÃ¶kta noder"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "VÃ¤lj en nod som har besÃ¶kts nyligen i ett synligt fÃ¶nster"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "VÃ¤lj besÃ¶kt nod: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Referensen fÃ¶rsvann! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr "fel i reguljÃ¤rt uttryck: %s"
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "VÃ¤lkommen till Info version %s. Skriv in \\[get-help-window] fÃ¶r hjÃ¤lp, "
+ "\\[menu-item] fÃ¶r menypost."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "GÃ¥ ned till nÃ¤sta rad"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "GÃ¥ upp till fÃ¶regÃ¥ende rad"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "GÃ¥ till slutet pÃ¥ raden"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "GÃ¥ till bÃ¶rjan pÃ¥ raden"
+ 
+ # src/menus.c:332
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "NÃ¤sta"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Inga fler noder i detta dokument."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Ingen \"FÃ¶reg\" fÃ¶r denna nod."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Inget \"Prev\" eller \"Up\" fÃ¶r denna nod inom detta dokument."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "GÃ¥ framÃ¥t eller nedÃ¥t i nodstrukturen"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "GÃ¥ bakÃ¥t eller upp i nodstrukturen"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Rulla framÃ¥t i detta fÃ¶nster"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "Rulla framÃ¥t i detta fÃ¶nster och stÃ¤ll in standardfÃ¶nsterstorleken"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Rulla framÃ¥t i detta fÃ¶nster och stanna inom noden"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Rulla framÃ¥t i detta fÃ¶nster och stanna inom noden och stÃ¤ll in "
+ "standardfÃ¶nsterstorleken"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Rulla bakÃ¥t i detta fÃ¶nster"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "Rulla bakÃ¥t i detta fÃ¶nster och stÃ¤ll in standardfÃ¶nsterstorleken"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Rulla bakÃ¥t i detta fÃ¶nster och stanna inom noden"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Rulla bakÃ¥t i detta fÃ¶nster och stanna inom noden och stÃ¤ll in "
+ "standardfÃ¶nsterstorleken"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "GÃ¥ till bÃ¶rjan pÃ¥ denna nod"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "GÃ¥ till slutet pÃ¥ denna nod"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Rulla nedÃ¥t radvis"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Rulla uppÃ¥t radvis"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Rulla nedÃ¥t med halva skÃ¤rmstorleken"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Rulla uppÃ¥t med halva skÃ¤rmstorleken"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "VÃ¤lj nÃ¤sta fÃ¶nster"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "VÃ¤lj fÃ¶regÃ¥ende fÃ¶nster"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Dela aktuellt fÃ¶nster"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Ta bort aktuellt fÃ¶nster"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Kan inte ta bort ett permanent fÃ¶nster"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Ta bort alla andra fÃ¶nster"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Rulla det andra fÃ¶nstret"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Rulla det andra fÃ¶nstret bakÃ¥t"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "VÃ¤x (eller krymp) detta fÃ¶nster"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Dela det tillgÃ¤ngliga skÃ¤rmutrymmet mellan de synliga fÃ¶nstren"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "VÃ¤xla tillstÃ¥ndet fÃ¶r radbrytning i det aktuella fÃ¶nstret"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr "VÃ¤xla anvÃ¤ndningen av reguljÃ¤ra uttryck i sÃ¶kningar"
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr "AnvÃ¤nder reguljÃ¤ra uttryck i sÃ¶kningar."
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr "AnvÃ¤nder ordagranna strÃ¤ngar i sÃ¶kningar."
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "VÃ¤lj nÃ¤sta nod"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "VÃ¤lj fÃ¶regÃ¥ende nod"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "VÃ¤lj uppnoden"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "VÃ¤lj den sista noden i denna fil"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Detta fÃ¶nster har inga ytterligare noder"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "VÃ¤lj den fÃ¶rsta noden i denna fil"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "VÃ¤lj det sista objektet i denna nods meny"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "VÃ¤lj denna menypost"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Det finns inte %d poster i denna meny."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Menypost (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Menypost: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "FÃ¶lj xref (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "FÃ¶lj xref: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "LÃ¤s en menypost och vÃ¤lj dess nod"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "LÃ¤s en fotnot eller korsreferens och vÃ¤lj dess nod"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "GÃ¥ till bÃ¶rjan pÃ¥ denna nods meny"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "BesÃ¶k sÃ¥ mÃ¥nga menyposter som mÃ¶jligt samtidigt"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "LÃ¤s ett nodnamn och vÃ¤lj det"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "GÃ¥ till nod: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Ingen meny i noden \"%s\"."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "Ingen menypost \"%s\" i noden \"%s\"."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "Kan inte hitta noden som refereras av \"%s\" i \"%s\"."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "LÃ¤s en lista med menyer som bÃ¶rjar med katalog, och fÃ¶lj dem"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "FÃ¶lj menyer: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Hitta den nod som beskriver start av programmet"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "Hitta programstartnod fÃ¶r [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "LÃ¤s en referens till manualsida och vÃ¤lj den"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "HÃ¤mta manualsida: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "VÃ¤lj noden \"Top\" i denna fil"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "VÃ¤lj noden \"(dir)\""
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "DÃ¶da noden (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Kan inte dÃ¶da noden \"%s\""
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Kan inte dÃ¶da den sista noden"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "VÃ¤lj den senast valda noden"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "DÃ¶da denna nod"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "LÃ¤s namnet pÃ¥ en fil och vÃ¤lj den"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "SÃ¶k fil: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "Kan inte hitta \"%s\"."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Kunde inte skapa utdatafilen \"%s\"."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "FÃ¤rdig."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Skriver noden %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "Skicka innehÃ¥llet i denna nod i rÃ¶r till INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Kan inte Ã¶ppna rÃ¶r till \"%s\"."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Skriver ut noden %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr "SÃ¶kningen fortsatte frÃ¥n slutet av dokumentet."
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr "SÃ¶kningen fortsatte frÃ¥n bÃ¶rjan av dokumentet."
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "SÃ¶ker i underfilen %s..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "LÃ¤s en strÃ¤ng och sÃ¶k efter den skiftlÃ¤geskÃ¤nsligt"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "LÃ¤s en strÃ¤ng och sÃ¶k efter den"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "LÃ¤s en strÃ¤ng och sÃ¶k baklÃ¤nges efter den"
+ 
+ # This is broken
+ #
+ #  sprintf (prompt, _("%s%sfor string [%s]: "),
+ #           direction < 0 ? _("Search backward") : _("Search"),
+ #           case_sensitive ? _(" case-sensitively ") : _(" "),
+ #           search_string);
+ #
+ # Never split a sentence like this, use multiple complete messages instead.
+ # If you split a sentence like this, you actually mark them for seperate
+ # translation, but they shouldn't be translated seperately, since they
+ # belong to the same sentence! All grammar/wording/sentence rules affect
+ # how the words interact in the sentence, and you cannot take them out of
+ # their sentence context and expect the same grammar to be valid. If you do,
+ # you assume things about languages that are hardly true for any language
+ # but the original one.
+ # Make this several, complete messages, and move the logic out of the
+ # messages themselves. Yes, this will result in many more messages, but
+ # those will be translatable, while the current design isn't.
+ #
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s%s [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr "SÃ¶kning med reguljÃ¤ra uttryck"
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr " skiljandes pÃ¥ VERSALER/gemener"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr " baklÃ¤nges"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "SÃ¶k"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "SÃ¶kningen misslyckades."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Upprepa den senaste sÃ¶kningen i samma riktning"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Ingen tidigare sÃ¶kstrÃ¤ng"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Upprepa den senaste sÃ¶kningen i omvÃ¤nd riktning"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "SÃ¶k interaktivt efter en strÃ¤ng allteftersom du skriver den"
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr "I-sÃ¶k med reguljÃ¤rt uttryck baklÃ¤nges: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "I-sÃ¶k baklÃ¤nges: "
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr "I-sÃ¶k med reguljÃ¤rt uttryck: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "I-sÃ¶k: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Misslyckas "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "GÃ¥ till fÃ¶regÃ¥ende korsreferens"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "GÃ¥ till nÃ¤sta korsreferens"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "VÃ¤lj referens eller menypost som finns pÃ¥ denna rad"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Avbryt pÃ¥gÃ¥ende Ã¥tgÃ¤rd"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Avsluta"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Flytta markÃ¶ren till en specifik rad i fÃ¶nstret"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Rita om displayen"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Avsluta anvÃ¤ndandet av Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "KÃ¶r kommando som Ã¤r knutet till denna tangents gemena variant"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "OkÃ¤nt kommando (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" Ã¤r ogiltigt"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "\"%s\" Ã¤r ogiltigt"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "LÃ¤gg till denna siffra till det aktuella numeriska argumentet"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "BÃ¶rja (eller multiplicera med 4) det numeriska argumentet"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "AnvÃ¤nds internt av \\[universal-argument]"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: Slut pÃ¥ virtuellt minne!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "NÃ¤r detta Ã¤r \"On\" visas och fÃ¶rsvinner fotnoter automatiskt"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "NÃ¤r detta Ã¤r \"On\" Ã¤ndrar skapande eller borttagande av ett fÃ¶nster\n"
+ "storleken pÃ¥ andra fÃ¶nster"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr ""
+ "NÃ¤r detta Ã¤r \"On\" blinkar skÃ¤rmen till istÃ¤llet fÃ¶r att klockan ringer"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "NÃ¤r detta Ã¤r \"On\" gÃ¶r fel att klockan ringer"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "NÃ¤r detta Ã¤r \"On\" skrÃ¤psamlar Info filer som behÃ¶vde packas upp"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "NÃ¤r detta Ã¤r \"On\" markeras delen av den matchade sÃ¶kstrÃ¤ngen"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Styr vad som hÃ¤nder dÃ¥ rullning begÃ¤rs i slutet pÃ¥ en nod"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr "Samma som \"scroll-behaviour\""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Antalet rader att rulla dÃ¥ markÃ¶ren flyttas utanfÃ¶r fÃ¶nstret"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr "Styr huruvida \"scroll-behavior\" pÃ¥verkar flyttkommandon fÃ¶r markÃ¶ren"
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "NÃ¤r detta Ã¤r \"On\" accepterar och visar Info ISO Latin-tecken"
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr ""
+ "Vad som ska gÃ¶ras dÃ¥ ett rullningskommando ges i slutet pÃ¥ den sista noden"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "FÃ¶rklara anvÃ¤ndandet av en variabel"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Beskriv variabel: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "StÃ¤ll in vÃ¤rdet pÃ¥ en Info-variabel"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "StÃ¤ll in variabel: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "StÃ¤ll in %s till vÃ¤rdet (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "StÃ¤ll in %s till vÃ¤rdet (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** FÃ¶r gamla taggar ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), rader ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d rader --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d rader --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Underfil: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: varning: "
+ 
+ # char *s = concat ("", strerror (errno), _(" for %s"));
+ #
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " fÃ¶r %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tProva \"%s --help\" fÃ¶r en fullstÃ¤ndig lista med flaggor.\n"
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "AnvÃ¤ndning: %s [FLAGGA]... [INFO-FIL [KATALOGFIL]]\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ "LÃ¤gg till eller ta bort poster i INFO-FIL frÃ¥n Info-katalogen KATALOGFIL."
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ "Flaggor:\n"
+ " --debug             rapportera vad som gÃ¶rs.\n"
+ " --delete            ta bort existerande poster fÃ¶r INFO-FIL frÃ¥n "
+ "KATALOGFIL\n"
+ "                      och infoga inte nÃ¥gra nya poster.\n"
+ " --description=TEXT  postens beskrivning Ã¤r TEXT. Detta anvÃ¤nds tillsammans\n"
+ "                      med flaggan --name fÃ¶r att den ska bli likvÃ¤rdig med\n"
+ "                      flaggan --entry.\n"
+ " --dir-file=NAMN     ange filnamnet pÃ¥ Info-katalogfilen. Detta motsvarar\n"
+ "                      anvÃ¤ndning av argumentet KATALOGFIL.\n"
+ " --dry-run           samma som --test."
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ " --entry=TEXT        infoga TEXT som en Info-katalogpost.\n"
+ "                      TEXT skrivs som en Info-menypostrad som fÃ¶ljs av\n"
+ "                      noll eller fler extra rader som bÃ¶rjar med tomrum.\n"
+ "                     Om du anger mer Ã¤n en post kommer alla att lÃ¤ggas\n"
+ "                      till. Om du inte anger nÃ¥gra poster kommer de att\n"
+ "                      avgÃ¶ras frÃ¥n information i sjÃ¤lva Info-filen.\n"
+ "                     Vid borttagning anger TEXT posten som ska tas bort.\n"
+ "                     TEXT tas endast bort som en sista utvÃ¤g, om den\n"
+ "                     post som anges utav Info-filen inte finns och\n"
+ "                     basnamnet fÃ¶r Info-filen inte heller kan hittas."
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ " --help              visa denna hjÃ¤lptext och avsluta.\n"
+ " --info-dir=KAT      samma som --dir-file=KAT/dir.\n"
+ " --info-file=FIL     ange Info-fil att installera i katalogen.\n"
+ "                      Detta motsvarar anvÃ¤ndning av argumentet INFO-FIL.\n"
+ " --item=TEXT         samma som --entry=TEXT.\n"
+ " --keep-old          ersÃ¤tt inte poster och ta inte bort tomma avsnitt.\n"
+ " --menuentry=TEXT    samma som --name=TEXT.\n"
+ " --name=TEXT         namnet pÃ¥ posten Ã¤r TEXT. AnvÃ¤nds tillsammans med\n"
+ "                      --description fÃ¶r att bli likvÃ¤rdigt med flaggan\n"
+ "                      --entry.\n"
+ " --no-indent         formatera inte nya poster i filen KAT.\n"
+ " --quiet             undertryck varningar."
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ " --regex=R           placera denna fils poster i alla avsnitt som matchar\n"
+ "                      det reguljÃ¤ra uttrycket R (och ignorera skiftlÃ¤ge).\n"
+ " --remove            samma som --delete.\n"
+ " --remove-exactly    ta endast bort om Info-filnamnet matchar exakt.\n"
+ "                      FilÃ¤ndelser som till exempel .info- och .gz ignoreras\n"
+ "                      inte.\n"
+ " --section=AVSNITT   placera poster i avsnittet AVSNITT i katalogen. Om du\n"
+ "                      anger mer Ã¤n ett avsnitt kommer alla poster att "
+ "lÃ¤ggas\n"
+ "                      till i varje avsnitt. Om du inte anger nÃ¥gra avsnitt\n"
+ "                      kommer de att bestÃ¤mmas utifrÃ¥n information i sjÃ¤lva\n"
+ "                      Info-filen.\n"
+ " --section R AVSNITT likvÃ¤rdigt med --regex=R --section=AVSNITT --add-once."
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ " --silent            undertryck varningar.\n"
+ " --test              undertryck uppdatering av KATALOGFIL.\n"
+ " --version           visa versionsinformation och avsluta."
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "Skicka felrapporter till bug-texinfo@gnu.org,\n"
+ "allmÃ¤nna frÃ¥gor och diskussion till help-texinfo@gnu.org\n"
+ "och synpunkter pÃ¥ Ã¶versÃ¤ttningen till tp-sv@listor.tp-sv.se.\n"
+ "Hemsida fÃ¶r texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Detta Ã¤r filen .../info/dir som innehÃ¥ller den Ã¶versta noden i\n"
+ "Info-hierarkin som kallas (kat)Top.\n"
+ "FÃ¶rsta gÃ¥ngen du anvÃ¤nder Info bÃ¶rjar du med denna nod.\n"
+ "\n"
+ "%s\tDetta Ã¤r Ã¶versta noden i INFO-trÃ¤det\n"
+ "\n"
+ "  Denna nod (katalognoden) erbjuder en meny med huvudrubriker.\n"
+ "  Att skriva \"q\" avslutar, \"?\" visar alla Info-kommandon, \"d\"\n"
+ "  Ã¥tervÃ¤nder hit, \"h\" visar en hjÃ¤lp fÃ¶r fÃ¶rstagÃ¥ngsanvÃ¤ndare,\n"
+ "  \"mEmacs<Retur>\" besÃ¶ker Emacs-manualen, osv.\n"
+ "\n"
+ "  I Emacs kan du klicka med musknapp 2 pÃ¥ en menypost eller korsreferens\n"
+ "  fÃ¶r att vÃ¤lja den.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: kunde inte lÃ¤sa (%s) och kunde inte skapa (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: tom fil"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY utan matchande END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY utan matchande START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: har redan katalogfilen: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Ange Info-filen endast en gÃ¥ng.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr "Extra reguljÃ¤rt uttryck angivet, ignorerar \"%s\""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr "Fel i reguljÃ¤ra uttrycket \"%s\": %s"
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "fÃ¶r mÃ¥nga kommandoradsargument \"%s\""
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "Ingen indatafil angiven; prova --help fÃ¶r mer information."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "Ingen katalogfil angiven; prova --help fÃ¶r mer information."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "ingen info-katalogpost i \"%s\""
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "inga poster hittades fÃ¶r \"%s\"; ingenting togs bort"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr "ferror-fel pÃ¥ standard ut\n"
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr "fflush-fel pÃ¥ standard ut\n"
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "argument till @%s ignorerades"
+ 
+ # This is broken
+ #
+ # The translator should not need to translate this - it is all present
+ # in libc and can be used with nl_langinfo(), strftime() and friends.
+ #
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "januari"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "februari"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "mars"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "april"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "maj"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "juni"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "juli"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "augusti"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "september"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "oktober"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "november"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "december"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "osannolikt tecken %c i @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr ""
+ "@sc-argumentet Ã¤r enbart med stora bokstÃ¤ver, dÃ¤rfÃ¶r har det ingen effekt"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "\"{\" fÃ¶rvÃ¤ntades, men sÃ¥g \"%c\""
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "filslut inuti verb-block"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "\"}\" fÃ¶rvÃ¤ntades, men sÃ¥g \"%c\""
+ 
+ # Ã„r det kombinationen "@strong{Note:.." eller bara @strong{} rent allmÃ¤nt som
+ # orsakar problem?
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@strong{Obs...} skapar en falsk korsreferens i Info; formulera om fÃ¶r att "
+ "undvika detta"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s Ã¤r fÃ¶rÃ¥ldrat"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp krÃ¤ver ett positivt numeriskt argument, inte \"%s\""
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Felaktigt argument till %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "ofÃ¶rÃ¤ndrad"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "ingen"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Felaktigt argument till @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "infoga"
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Felaktigt argument till @%s: %s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr "FÃ¶rvÃ¤ntade @%s on eller off, inte \"%s\""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr "Endast @%s 10 eller 11 stÃ¶ds, inte \"%s\""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "\"}\" saknas i @def-argumentet"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "MÃ¥ste vara i \"@%s\"-omgivning fÃ¶r att anvÃ¤nda \"@%s\""
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "\"%s\" utelÃ¤mnades innan utdatafilnamnet"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "\"%s\" utelÃ¤mnades efter skrivning till standard ut"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Utdatabufferten Ã¤r inte tom."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr "BegÃ¤rda flyttalstypen \"%s\" har inte tidigare anvÃ¤nts"
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Se "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "\"%c%s\" behÃ¶ver ett argument \"{...}\", inte bara \"%s\""
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Ingen avslutande klammer fÃ¶r fotnoten \"%s\""
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Fotnoten definierad utan fÃ¶rÃ¤ldernod"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Fotnoter inuti fotnoter Ã¤r inte tillÃ¥tet"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Fotnoter"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: kunde inte Ã¶ppna --css-fil: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: --css-fil slutade med kommentar"
+ 
+ # to pop?
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[ovÃ¤ntat] ingen html-tagg att poppa"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[ovÃ¤ntat] ogiltigt nodnamn: \"%s\""
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "OkÃ¤nt index \"%s\""
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info kan inte hantera \":\" i indexposten \"%s\""
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Indexet \"%s\" finns redan"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "OkÃ¤nt index \"%s\" och/eller \"%s\" i @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(rad )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(rad %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "OkÃ¤nt index \"%s\" i @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Posten fÃ¶r index \"%s\" Ã¤r utanfÃ¶r alla noder"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(utanfÃ¶r alla noder)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@item Ã¤r inte tillÃ¥tet i argument till @itemize"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "Felaktig typ i insertion_type_pname"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "UpprÃ¤kningsstacken har flÃ¶dat Ã¶ver"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "bokstaveringen har flÃ¶dat Ã¶ver, startar om vid %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s krÃ¤ver ett argument: formateraren fÃ¶r %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "%cfloat-omgivningar kan inte nÃ¤stlas"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "\"@end\" fÃ¶rvÃ¤ntade \"%s\", men sÃ¥g \"%s\""
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Inget matchande \"%cend %s\""
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s krÃ¤ver bokstav eller siffra"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "filslut inuti bokstavligt block"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s Ã¤r inte meningsfullt utanfÃ¶r \"@float\"-omgivning"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu sÃ¥gs innan fÃ¶rsta @node, skapar \"Top\"-nod"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "din @top-nod ska kanske packas i @ifnottex istÃ¤llet fÃ¶r @ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu sÃ¥gs innan fÃ¶rsta noden, skapar \"Top\"-nod"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ "@%s Ã¤r inte meningsfullt utanfÃ¶r \"@titlepage\"- och \"@quotation\"-omgivning"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s Ã¤r inte meningsfullt utanfÃ¶r \"@titlepage\"-omgivning"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Ensamt \"%c%s\""
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "\"%c%s\" krÃ¤ver nÃ¥gonting efter sig"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Felaktigt argument \"%s\" till \"@%s\", anvÃ¤nder \"%s\""
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s Ã¤r inte meningsfullt inuti \"@%s\"-block"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx Ã¤r inte meningsfullt inuti \"%s\"-block"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s hittades utanfÃ¶r ett insÃ¤ttningsblock"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr "inget standardterritorium Ã¤r kÃ¤nt fÃ¶r sprÃ¥ket \"%s\""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s Ã¤r inte en giltig landskod enligt ISO 639"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "okÃ¤nt kodningsnamn \"%s\""
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "tyvÃ¤rr, kodningen \"%s\" stÃ¶ds inte"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "ogiltigt kodat tecken \"%s\""
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s fÃ¶rvÃ¤ntar \"i\" eller \"j\" som argument, inte \"%c\""
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s fÃ¶rvÃ¤ntar ett ensamt tecken \"i\" eller \"j\" som argument"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "makrot \"%s\" Ã¤r redan definierat"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "hÃ¤r Ã¤r den tidigare definitionen av \"%s\""
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "\\ i makroutÃ¶kning fÃ¶ljdes av \"%s\" istÃ¤llet fÃ¶r parameternamn"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Makrot \"%s\" anropades pÃ¥ rad %d med fÃ¶r mÃ¥nga argument"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "Makrot %cend hittades inte"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr "@allow-recursion Ã¤r fÃ¶rÃ¥ldrat; anvÃ¤nd @rmacro istÃ¤llet"
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr "@quote-arg Ã¤r fÃ¶rÃ¥ldrat; argument Ã¤r citerade som standard"
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "@end %s och @%s passar inte"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "FÃ¶r mÃ¥nga fel! Gav upp.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: varning: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "Felplacerat %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Prova \"%s --help\" fÃ¶r mer information.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "AnvÃ¤ndning: %s [FLAGGA]... TEXINFO-FIL...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Ã–versÃ¤tt Texinfo-kÃ¤lldokumentation till diverse andra format, som standard\n"
+ "infofiler som Ã¤r lÃ¤mpliga fÃ¶r lÃ¤sning med Emacs eller GNU Info.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "AllmÃ¤nna flaggor:\n"
+ "      --error-limit=ANTAL     avsluta efter ANTAL fel (standardvÃ¤rde %d).\n"
+ "      --document-language=STR lokal att anvÃ¤nda vid Ã¶versÃ¤ttning av\n"
+ "                                Texinfo-nyckelord fÃ¶r utdatadokumentet\n"
+ "                                (standardvÃ¤rde C).\n"
+ "      --force                 bevara utdata Ã¤ven om fel.\n"
+ "      --help                  visa denna hjÃ¤lptext och avsluta.\n"
+ "      --no-validate           undertryck korsreferensvalidering av noder.\n"
+ "      --no-warn               undertryck varningar (men inte fel).\n"
+ "  -v, --verbose               fÃ¶rklara vad som gÃ¶rs.\n"
+ "      --version               visa versionsinformation och avsluta.\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Val av utdataformat (standard Ã¤r att producera Info):\n"
+ "      --docbook               generera Docbook XML istÃ¤llet fÃ¶r Info.\n"
+ "      --html                  generera HTML istÃ¤llet fÃ¶r Info.\n"
+ "      --xml                   generera Texinfo XML istÃ¤llet fÃ¶r Info.\n"
+ "      --plaintext             generera vanlig text istÃ¤llet fÃ¶r Info.\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "AllmÃ¤nna utdataflaggor:\n"
+ "  -E, --macro-expand=FIL      generera makroexpanderad kÃ¤llkod till FIL,\n"
+ "                              ignorera alla @setfilename.\n"
+ "      --no-headers            undertryck nodseparatorer, Node:-rader och\n"
+ "                                menyer frÃ¥n Info-utdata (och skapa\n"
+ "                                dÃ¤rigenom vanlig text) eller frÃ¥n HTML\n"
+ "                                (och producera dÃ¤rigenom kortare utdata).\n"
+ "                                Skriv Ã¤ven till standard ut som standard.\n"
+ "      --no-split              undertryck delning av Info eller HTML-utdata,\n"
+ "                              generera endast en utdatafil.\n"
+ "      --number-sections       generera kapitel- och avsnittsnummer.\n"
+ "  -o, --output=FIL            generera till FIL (katalog om delad HTML).\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Flaggor fÃ¶r Info och vanlig text:\n"
+ "      --disable-encoding      generera inte tecken med accent och\n"
+ "                                specialtecken i Info-utdata baserat pÃ¥\n"
+ "                                @documentencoding.\n"
+ "      --enable-encoding       Ã¥sidosÃ¤tt --disable-encoding (standard).\n"
+ "      --fill-column=ANTAL     radbryt Info-rader vid ANTAL tecken\n"
+ "                                (standardvÃ¤rde %d).\n"
+ "      --footnote-style=STIL   generera fotnoter i Info som fÃ¶ljer STIL:\n"
+ "                                \"separate\" fÃ¶r att placera fotnoter i sin\n"
+ "                                egen nod,\n"
+ "                                \"end\" fÃ¶r att placera fotnoter i slutet\n"
+ "                                av den nod dÃ¤r de Ã¤r definierade\n"
+ "                                (standardalternativ).\n"
+ "      --paragraph-indent=VÃ„RDE gÃ¶r indrag i Info-stycken med VÃ„RDE\n"
+ "                                blanksteg (standardvÃ¤rde %d).\n"
+ "                                Om VÃ„RDE Ã¤r \"none\" gÃ¶rs inga indrag; om\n"
+ "                                VÃ„RDE Ã¤r \"asis\" bevaras befintliga\n"
+ "                                indrag.\n"
+ "      --split-size=ANTAL      dela upp Info-filer vid storleken ANTAL\n"
+ "                                (standardvÃ¤rde %d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ #, fuzzy
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "Flaggor fÃ¶r HTML:\n"
+ "      --css-include=FIL       inkludera FIL i HTML <style>-utdata;\n"
+ "                                lÃ¤s standard in om FIL Ã¤r -.\n"
+ "      --css-ref=URL           generera referens till en CSS-fil.\n"
+ "      --transliterate-file-names\n"
+ "                              producera filnamn i ASCII-translitteration.\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "Flaggor fÃ¶r XML och Docbook:\n"
+ "      --output-indent=VÃ„RDE   dra in XML-element med VÃ„RDE blanksteg\n"
+ "                                (standard %d). Om VÃ„RDE Ã¤r 0 kastas\n"
+ "                                mellanrum som kan ignoreras.\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Flaggor fÃ¶r indatafil:\n"
+ "      --commands-in-node-names   tillÃ¥t @-kommandon i nodnamn.\n"
+ "  -D VARIABEL                    definiera variabeln VARIABEL, som med "
+ "@set.\n"
+ "  -I KATALOG                     lÃ¤gg till KATALOG till @include-sÃ¶kvÃ¤gen.\n"
+ "  -P KATALOG                     lÃ¤gg till KATALOG fÃ¶rst i @include-"
+ "sÃ¶kvÃ¤gen.\n"
+ "  -U VARIABEL                    odefiniera variabeln VARIABEL, som med "
+ "@clear.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Villkorlig behandling i indata:\n"
+ "  --ifdocbook       behandla @ifdocbook och @docbook Ã¤ven om inte\n"
+ "                      Docbook genereras.\n"
+ "  --ifhtml          behandla @ifhtml och @html Ã¤ven om inte HTML genereras.\n"
+ "  --ifinfo          behandla @ifinfo-text Ã¤ven om inte Info genereras.\n"
+ "  --ifplaintext     behandla @ifplaintext Ã¤ven om inte vanlig text\n"
+ "                    genereras.\n"
+ "  --iftex           behandla @iftex och @tex-text; medfÃ¶r --no-split.\n"
+ "  --ifxml           behandla @ifxml och @xml.\n"
+ "  --no-ifdocbook    behandla inte @ifdocbook- och @docbook-text.\n"
+ "  --no-ifhtml       behandla inte @ifhtml- och @html-text.\n"
+ "  --no-ifinfo       behandla inte @ifinfo-text.\n"
+ "  --no-ifplaintext  behandla inte @ifplaintext-text.\n"
+ "  --no-iftex        behandla inte @iftex- och @tex-text.\n"
+ "  --no-ifxml        behandla inte @ifxml- och @xml-text.\n"
+ "\n"
+ "  Dessutom, fÃ¶r flaggorna --no-ifFORMAT, behandla @ifnotFORMAT-text.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  StandardvÃ¤rdena fÃ¶r @if...-villkoren beror pÃ¥ utdataformatet:\n"
+ "  om HTML genereras Ã¤r --ifhtml pÃ¥ och de andra av;\n"
+ "  om Info genereras Ã¤r --ifinfo pÃ¥ och de andra av;\n"
+ "  om vanlig text genereras Ã¤r --ifplaintext pÃ¥ och de andra av;\n"
+ "  om XML genereras Ã¤r --ifxml pÃ¥ och de andra av.\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Exempel:\n"
+ "  makeinfo apa.texi                      skriv Info till apas @setfilename\n"
+ "  makeinfo --html apa.texi               skriv HTML till @setfilename\n"
+ "  makeinfo --xml apa.texi                skriv Texinfo XML till "
+ "@setfilename\n"
+ "  makeinfo --docbook apa.texi            skriv DocBook XML till "
+ "@setfilename\n"
+ "  makeinfo --no-headers apa.texi         skriv vanlig text till standard ut\n"
+ "  makeinfo --html --no-headers apa.texi  skriv html utan nodrader och "
+ "menyer\n"
+ "  makeinfo --number-sections apa.texi    skriv Info med numrerade avsnitt\n"
+ "  makeinfo --no-split apa.texi           skriv en Info-fil hur stor den Ã¤n "
+ "Ã¤r\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: Ignorerar okÃ¤nt TEXINFO_OUTPUT_FORMAT-vÃ¤rde \"%s\".\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: argumentet %s mÃ¥ste vara numeriskt, inte \"%s\".\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: kunde inte Ã¶ppna makroexpansionsutdata \"%s\""
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: ignorerar andra makroexpansionsutdata \"%s\".\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: kunde inte Ã¶ppna makroexpansionsutdata \"%s\""
+ 
+ #: makeinfo/makeinfo.c:738
+ #, fuzzy, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: ignorerar andra makroexpansionsutdata \"%s\".\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: argumentet --paragraph-indent mÃ¥ste vara numeriskt/\"none\"/\"asis\", "
+ "inte \"%s\".\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: argumentet --footnote-style mÃ¥ste vara \"separate\" eller \"end\", inte "
+ "\"%s\".\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: filargument saknas.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Flerradskommandot %c%s anvÃ¤nds felaktigt"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "\"%s\" fÃ¶rvÃ¤ntades"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "Kan inte skapa katalogen \"%s\": %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "Inget \"%s\" hittades i \"%s\""
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Hoppar Ã¶ver makroexpansionen till standard ut eftersom Info-utdatan gÃ¥r "
+ "dit.\n"
+ 
+ # printf (_("Making %s file `%s' from `%s'.\n"),
+ #         no_headers ? "text" : (html ? "HTML" : "info"),
+ #         output_filename, input_filename);
+ #
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Skapar %s-fil \"%s\" frÃ¥n \"%s\".\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Tar bort makroutdatafilen \"%s\" pÃ¥ grund av fel; anvÃ¤nd --force fÃ¶r att "
+ "bevara.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Tar bort utdatafilen \"%s\" pÃ¥ grund av fel; anvÃ¤nd --force fÃ¶r att "
+ "bevara.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Tar bort utdatafilen \"%s\" pÃ¥ grund av fel; anvÃ¤nd --force fÃ¶r att "
+ "bevara.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "OkÃ¤nt kommando \"%s\""
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "AnvÃ¤nd klamrar fÃ¶r att ge ett komamndo som ett argument till @%s"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s fÃ¶rvÃ¤ntade klamrar"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Ensam }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "INGET_NAMN!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s saknar avslutande klammer"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image-filen \"%s\" (fÃ¶r HTML) Ã¤r olÃ¤slig: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "Det finns ingen sÃ¥dan fil \"%s\""
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image-filen \"%s\" (fÃ¶r text) Ã¤r olÃ¤slig: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image saknar filnamnsargument"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "odefinierad flagga: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{Inget vÃ¤rde fÃ¶r \"%s\"}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s krÃ¤ver ett namn"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "NÃ¥dde filslut innan matchande @end %s"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "\"%.40s...\" Ã¤r fÃ¶r lÃ¥ng fÃ¶r expansion; inte expanderad"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Ett } saknas i @multitable-mall"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "ignorerar lÃ¶s text \"%s\" efter @multitable"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "FÃ¶r mÃ¥nga kolumner i multitabellsobjekt (max %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[ovÃ¤ntat] kan inte vÃ¤lja kolumn %d i multitabell"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "ignorerar @tab utanfÃ¶r multitabell"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Utdata pÃ¥ flera kolumner frÃ¥n senaste raden:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* kolumn %d: utdata = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Noden \"%s\" Ã¤r tidigare definierad pÃ¥ rad %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Formaterar noden %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Noden \"%s\" krÃ¤ver ett kommando fÃ¶r avsnittsindelning (t.ex. %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "Inget nodnamn angivet fÃ¶r kommandot \"%c%s\""
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Ankaret \"%s\" och noden \"%s\" mappas till samma filnamn"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ "Detta @anchor-kommando ignoreras; referenser till det kommer inte att fungera"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Byt namn pÃ¥ detta ankare eller anvÃ¤nd flaggan \"--no-split\""
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "OvÃ¤ntad strÃ¤ng vid slutet pÃ¥ den delade HTML-filen \"%s\""
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Ankarna \"%s\" och \"%s\" mappas till samma filnamn"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ "@anchor-kommandot ignoreras; referenser till det kommer inte att fungera"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "%s-referens till ickeexisterande noden \"%s\" (kanske felaktig "
+ "avsnittsindelning?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "NÃ¤sta fÃ¤lt i noden \"%s\" pekas inte till (kanske felaktig "
+ "avsnittsindelning?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Denna nod (%s) har den felaktiga fÃ¶regÃ¥ende-noden"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "FÃ¶regÃ¥ende-fÃ¤ltet i noden \"%s\" pekas inte till"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Denna nod (%s) har den felaktiga nÃ¤sta-noden"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "\"%s\" har inget upp-fÃ¤lt (kanske felaktig avsnittsindelning?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr "Noden \"%s\" saknar menypost fÃ¶r \"%s\" trots att den Ã¤r dess Upp-mÃ¥l"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "orefererad nod \"%s\""
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "Tar bort %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "Kan inte ta bort filen \"%s\": %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Appendix %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Internt fel (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Internt fel (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s Ã¤r fÃ¶rÃ¥ldrat; anvÃ¤nd %c%s istÃ¤llet"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "En nod med %ctop som ett avsnitt finns redan"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "HÃ¤r Ã¤r %ctop-noden"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop anvÃ¤ndes innan %cnode, anvÃ¤nder %s som standard"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image-filen \"%s\" Ã¤r olÃ¤slig: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "@headitem som det sista objektet i @multitable genererar ogiltiga Docbook-"
+ "dokument"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "av"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "pÃ¥"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "FÃ¶rsta argumentet till korsreferens kan inte vara tomt"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr "Tomt filnamn fÃ¶r HTML-korsreferens i \"%s\""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr "Slutet pÃ¥ filen nÃ¥ddes dÃ¥ \".\" eller \",\" eftersÃ¶ktes"
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "\".\" eller \",\" mÃ¥ste fÃ¶lja pÃ¥ @%s, inte \"%c\""
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "anvÃ¤nd @pxref fÃ¶r korsreferenser inuti parenteser"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "FÃ¶rsta argumentet till @inforef kan inte vara tomt"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "visa denna hjÃ¤lptext och avsluta"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "skicka utdata till FIL"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "visa versionsinformation och avsluta"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "AnvÃ¤ndning: %s [FLAGGA]... FIL...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Generera ett sorterat index fÃ¶r varje TeX-utdataFIL.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ "Vanligtvis anges FIL... som \"apa.%c%c\" fÃ¶r ett dokument \"apa.texi\".\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Flaggor:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "misslyckande vid Ã¥terÃ¶ppnande av %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: inte en texinfo-indexfil"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "Inget sidnummer i %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "posten %s fÃ¶ljer pÃ¥ en post med ett sekundÃ¤rt namn"
+ 
+ #~ msgid "Cancel the current operation"
+ #~ msgstr "Avbryt aktuell Ã¥tgÃ¤rd"
+ 
+ #~ msgid "Search backward"
+ #~ msgstr "SÃ¶k baklÃ¤nges"
+ 
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "AnvÃ¤ndning: %s [FLAGGA]... [MENYPOST...]\n"
+ #~ "\n"
+ #~ "LÃ¤s dokumentation i Info-format.\n"
+ #~ "\n"
+ #~ "Flaggor:\n"
+ #~ "      --apropos=STRÃ„NG         slÃ¥ upp STRÃ„NG i alla index i alla "
+ #~ "manualer.\n"
+ #~ "  -d, --directory=KATALOG      lÃ¤gg till KATALOG till INFOPATH.\n"
+ #~ "      --dribble=FILNAMN        kom ihÃ¥g anvÃ¤ndarens tangentnedtryckningar "
+ #~ "i\n"
+ #~ "                               FILNAMN.\n"
+ #~ "  -f, --file=FILNAMN           ange den Info-fil som ska besÃ¶kas.\n"
+ #~ "  -h, --help                   visa denna hjÃ¤lptext och avsluta.\n"
+ #~ "      --index-search=STRÃ„NG    gÃ¥ till noden som utpekas av indexpost\n"
+ #~ "                               STRÃ„NG.\n"
+ #~ "  -n, --node=NODNAMN           ange noder i den fÃ¶rst besÃ¶kta Info-"
+ #~ "filen.\n"
+ #~ "  -o, --output=FILNAMN         skriv ut valda noder till FILNAMN.\n"
+ #~ "  -R, --raw-escapes            skriv ut \"rÃ¥a\" ANSI-styrkoder "
+ #~ "(standard).\n"
+ #~ "      --no-raw-escapes         skriv ut styrkoder som text.\n"
+ #~ "      --restore=FILNAMN        lÃ¤s initiala tangentnedtryckningar frÃ¥n\n"
+ #~ "                               FILNAMN.\n"
+ #~ "  -O, --show-options, --usage  gÃ¥ till noden fÃ¶r kommandoradsflaggor.\n"
+ #~ "%s      --subnodes               skriv ut menyposter rekursivt.\n"
+ #~ "  -w, --where, --location      skriv ut den fysiska platsen fÃ¶r Info-"
+ #~ "filen.\n"
+ #~ "      --vi-keys                anvÃ¤nd vi- och less-liknande\n"
+ #~ "                               snabbtangenter.\n"
+ #~ "      --version                visa versionsinformation och avsluta.\n"
+ #~ "\n"
+ #~ "Det fÃ¶rsta argumentet som inte Ã¤r en flagga Ã¤r, om det finns, menyposten\n"
+ #~ "att bÃ¶rja frÃ¥n. Det sÃ¶ks efter i alla \"dir\"-filer i INFOPATH.\n"
+ #~ "Om den inte finns slÃ¥r info samman alla \"dir\"-filer och visar "
+ #~ "resultatet.\n"
+ #~ "Alla Ã¥terstÃ¥ende argument betraktas som namnen pÃ¥ menyposter relativa "
+ #~ "till\n"
+ #~ "den fÃ¶rst besÃ¶kta noden.\n"
+ #~ "\n"
+ #~ "Exampel:\n"
+ #~ "  info                       visa Ã¶versta katalogmenyn\n"
+ #~ "  info emacs                 bÃ¶rja pÃ¥ emacs-noden frÃ¥n Ã¶versta katalogen\n"
+ #~ "  info emacs buffers         bÃ¶rja pÃ¥ buffertnoden inom emacs-manualen\n"
+ #~ "  info --show-options emacs  bÃ¶rja pÃ¥ noden med emacs "
+ #~ "kommandoradsflaggor\n"
+ #~ "  info --subnodes -o ut.txt emacs  dumpa hela manualen till ut.txt\n"
+ #~ "  info -f ./foo.info         visa filen ./foo.info, sÃ¶k inte i katalogen\n"
+ 
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr ""
+ #~ "\\%-10[move-to-prev-xref]  Hoppa till fÃ¶regÃ¥ende hypertextlÃ¤nk [*].\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  GÃ¥ till \"directory\"-noden. LikvÃ¤rdigt med \"g (DIR)"
+ #~ "\".\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[top-node]  GÃ¥ till den Ã¶versta noden. LikvÃ¤rdigt med \"g Top\".\n"
+ 
+ #~ msgid ""
+ #~ "[*]    Command acts within this node or the entire document, depending "
+ #~ "on\n"
+ #~ "the value of cursor-movement-scrolls variable\n"
+ #~ msgstr ""
+ #~ "[*]    Kommandot agerar inuti denna nod eller hela dokumentet, beroende "
+ #~ "pÃ¥\n"
+ #~ "vÃ¤rdet av variabeln cursor-movement-scrolls\n"
+ 
+ #~ msgid "\\%-10[prev-line]  Scroll backward 1 line.\n"
+ #~ msgstr "\\%-10[prev-line]  Rulla en rad bakÃ¥t.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search]  SÃ¶k framÃ¥t efter en angiven strÃ¤ng\n"
+ #~ "              och vÃ¤lj den nod i vilken nÃ¤sta fÃ¶rekomst hittas.\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  SÃ¶k bakÃ¥t efter en angiven strÃ¤ng\n"
+ #~ "              och vÃ¤lj den nod i vilken nÃ¤sta fÃ¶rekomst hittas.\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr "              Att vÃ¤lja en menypost gÃ¶r att en annan nod vÃ¤ljs.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr ""
+ #~ "              Du kan Ã¤ven inkludera ett filnamn, som exempelvis\n"
+ #~ "              (FILNAMN)NODNAMN.\n"
+ 
+ # This is broken
+ #
+ #  N_("  %-10s  Search backward in this Info file for a specified string,\n"),
+ #  N_("              and select the node in which the next occurrence is found.\n"),
+ #
+ # Please don't split a single sentence like this in multiple messages,
+ # use one single message instead. Sentences have to be kept together when
+ # translating, you can't split a sentence into parts and mark them for
+ # separate translation and expect it to work with word ordering,
+ # grammar, and everything else in other languages. Splitting sentences
+ # just makes it harder for translators when having not just to translate,
+ # but also puzzle the pieces of the sentence together again so that it
+ # makes some sense, in order to be able to translate in the first place.
+ #
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  SÃ¶k bakÃ¥t efter en angiven strÃ¤ng,\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "              och vÃ¤lj den nod i vilken nÃ¤sta fÃ¶rekomst hittas.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr ""
+ #~ "--- AnvÃ¤nd \"\\[history-node]\" eller \"\\[kill-node]\" fÃ¶r att avsluta "
+ #~ "---\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "FÃ¶ljer nÃ¤sta-nod..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "VÃ¤ljer fÃ¶rsta menyposten..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "VÃ¤ljer nÃ¤sta nod..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "GÃ¥r upp %d gÃ¥ng(er), sedan NÃ¤sta."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "GÃ¥ till fÃ¶regÃ¥ende i detta fÃ¶nster."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "GÃ¥r upp i detta fÃ¶nster."
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "GÃ¥ till \"FÃ¶reg\"s senaste menypost."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "Function"
+ #~ msgstr "Funktion"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "Makro"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "Specialform"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "Variabel"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "AnvÃ¤ndarflagga"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "Instansvariabel"
+ 
+ #~ msgid "Method"
+ #~ msgstr "Metod"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "NamnlÃ¶s"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "Detta Ã¤r %s, skapad av makeinfo version %s frÃ¥n %s.\n"
+ 
+ # src/menus.c:332
+ #~ msgid "Next:"
+ #~ msgstr "NÃ¤sta:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "FÃ¶regÃ¥ende:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "Upp:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "Meny"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "Kors"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "FÃ¶reg"
+ 
+ #~ msgid "Up"
+ #~ msgstr "Upp"
+ 
+ #~ msgid "see "
+ #~ msgstr "se "
+ 
+ #~ msgid "See section ``%s'' in "
+ #~ msgstr "Se avsnittet \"%s\" i "
+ 
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "AnvÃ¤ndning: %s [FLAGGA]... [INFO-FIL [KATALOGFIL]]\n"
+ #~ "\n"
+ #~ "Installera eller ta bort katalogposter frÃ¥n INFO-FIL i Info-katalogfilen\n"
+ #~ "KATALOGFIL.\n"
+ #~ "\n"
+ #~ "Flaggor:\n"
+ #~ " --debug           rapportera vad som gÃ¶rs.\n"
+ #~ " --delete          ta bort existerande poster fÃ¶r INFO-FIL frÃ¥n "
+ #~ "KATALOGFIL;\n"
+ #~ "                     infoga inte nÃ¥gra nya poster.\n"
+ #~ " --dir-file=NAMN   ange filnamnet pÃ¥ Info-katalogfilen.\n"
+ #~ "                     Detta motsvarar anvÃ¤ndning av argumentet "
+ #~ "KATALOGFIL.\n"
+ #~ " --entry=TEXT      infoga TEXT som en Info-katalogpost.\n"
+ #~ "                     TEXT bÃ¶r vara i formen av en Info-menypostsrad plus\n"
+ #~ "                     noll eller fler extra rader som bÃ¶rjar med tomrum.\n"
+ #~ "                     Om du anger mer Ã¤n en post kommer alla att lÃ¤ggas\n"
+ #~ "                     till. Om du inte anger nÃ¥gra poster kommer de att\n"
+ #~ "                     avgÃ¶ras frÃ¥n information i sjÃ¤lva Info-filen.\n"
+ #~ " --help            visa denna hjÃ¤lptext och avsluta.\n"
+ #~ " --info-file=FIL   ange Info-fil att installera i katalogen.\n"
+ #~ "                     Detta motsvarar anvÃ¤ndning av argumentet INFO-FIL.\n"
+ #~ " --info-dir=KAT    samma som --dir-file=KAT/kat.\n"
+ #~ " --item=TEXT       samma som --entry TEXT.\n"
+ #~ "                     En Info-katalogpost Ã¤r egentligen en menypost.\n"
+ #~ " --quiet           undertryck varningar.\n"
+ #~ " --remove          samma som --delete.\n"
+ #~ " --remove-exactly  ta endast bort om Info-filnamnet matchar exakt.\n"
+ #~ "                     .info- och/eller .gz-filÃ¤ndelser ignoreras inte.\n"
+ #~ " --section=AVSNITT placera denna fils poster i avsnittet AVSNITT i\n"
+ #~ "                     katalogen. Om du anger mer Ã¤n ett avsnitt kommer "
+ #~ "alla\n"
+ #~ "                     poster att lÃ¤ggas till i varje avsnitt. Om du inte\n"
+ #~ "                     anger nÃ¥gra avsnitt kommer de att bestÃ¤mmas frÃ¥n\n"
+ #~ "                     information i sjÃ¤lva Info-filen.\n"
+ #~ " --section-regex=R om en post lÃ¤ggs till i ett avsnitt som saknas,\n"
+ #~ "                     leta efter ett avsnitt som matchar det "
+ #~ "grundlÃ¤ggande\n"
+ #~ "                     reguljÃ¤ra uttrycket R (och ignorera skiftlÃ¤ge) "
+ #~ "innan\n"
+ #~ "                     ett nytt avsnitt pÃ¥bÃ¶rjas.\n"
+ #~ " --test            undertryck varning av KATALOGFIL.\n"
+ #~ " --silent          undertryck varningar.\n"
+ #~ " --version         visa versionsinformation och avsluta.\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "menyposten \"%s\" finns redan, fÃ¶r filen \"%s\""
+ 
+ #~ msgid "virtual memory exhausted"
+ #~ msgstr "virtuellt minne slut"
+ 
+ #~ msgid "Same as scroll-behavior"
+ #~ msgstr "Samma som \"scroll-behavior\""
+ 
+ #~ msgid "off"
+ #~ msgstr "av"
+ 
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "Det finns INGEN garanti. Du kan vidaredistribuera denna programvara\n"
+ #~ "under villkoren i GNU General Public License.\n"
+ #~ "Se filen COPYING fÃ¶r mer information om detta.\n"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr ""
+ #~ "\\%-10[menu-digit]  VÃ¤lj fÃ¶rsta ... nionde objektet i nodens meny.\n"
+ 
+ # This is broken
+ #
+ #  N_("  %-10s  Search for a specified string in the index entries of this Info\n"),
+ #  N_("              file, and select the node referenced by the first entry found.\n"),
+ #
+ # Please don't split a single sentence like this in multiple messages,
+ # use one single message instead. Sentences have to be kept together when
+ # translating, you can't split a sentence into parts and mark them for
+ # separate translation and expect it to work with word ordering,
+ # grammar, and everything else in other languages. Splitting sentences
+ # just makes it harder for translators when having not just to translate,
+ # but also puzzle the pieces of the sentence together again so that it
+ # makes some sense, in order to be able to translate in the first place.
+ #
+ #~ msgid ""
+ #~ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ #~ msgstr "  %-10s  SÃ¶k efter en angiven strÃ¤ng i indexposterna i denna\n"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "              Info-fil, och vÃ¤lj noden som refereras av den fÃ¶rsta "
+ #~ "posten\n"
+ #~ "              som hittas.\n"
+ 
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright Â© %s Free Software Foundation, Inc.\n"
+ #~ "Det finns INGEN garanti. Du kan vidaredistribuera denna programvara\n"
+ #~ "under villkoren i GNU General Public License.\n"
+ #~ "Se filen COPYING fÃ¶r mer information om detta.\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg Ã¤r endast anvÃ¤ndbart fÃ¶r makron med ett argument"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "noden \"%s\" har refererats %d gÃ¥nger"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "InnehÃ¥llsfÃ¶rteckning"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "Kort innehÃ¥llsfÃ¶rteckning"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "behÃ¥ll temporÃ¤ra filer efter behandling"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "behÃ¥ll inte temporÃ¤ra filer efter behandling (standardalternativ)"
+ 
+ #~ msgid "%s: Specify the Info directory only once.\n"
+ #~ msgstr "%s: Ange Info-katalogen endast en gÃ¥ng.\n"
+ 
+ #~ msgid "(line)"
+ #~ msgstr "(rad)"
+ 
+ #~ msgid "line"
+ #~ msgstr "rad"
+ 
+ #~ msgid "line %*d"
+ #~ msgstr "rad %*d"
+ 
+ #~ msgid "(line %d)"
+ #~ msgstr "(rad %d)"
+ 
+ #~ msgid "line %d"
+ #~ msgstr "rad %d"
+ 
+ #~ msgid "Appendix %c "
+ #~ msgstr "Appendix %c "
+ 
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "\"\" Ã¤r ogiltigt"
+ 
+ #~ msgid "%s is an invalid ISO code, using %c"
+ #~ msgstr "%s Ã¤r en ogiltig ISO-kod, anvÃ¤nder %c"
+ 
+ #~ msgid "Cannot specify more than one macro expansion output"
+ #~ msgstr "Kan inte ange mer Ã¤n en makroexpansionsutdata"
+ 
+ #~ msgid "File exists, but is not a directory"
+ #~ msgstr "Filen finns men Ã¤r ingen katalog"
+ 
+ #~ msgid "Node:"
+ #~ msgstr "Nod:"
+ 
+ #~ msgid "%s: TOC should be here, but it was not found"
+ #~ msgstr "%s: InnehÃ¥llsfÃ¶rteckningen skulle vara hÃ¤r, men hittades inte"
+ 
+ #~ msgid "No `%s.png' or `.jpg', and no extension supplied"
+ #~ msgstr "Ingen \"%s.png\" eller \".jpg\" och ingen filÃ¤ndelse angiven"
+ 
+ #~ msgid "%s; for file `%s'.\n"
+ #~ msgstr "%s; fÃ¶r filen \"%s\".\n"
+ 
+ #~ msgid "`%s' has no Up field"
+ #~ msgstr "\"%s\" har inget upp-fÃ¤lt"
+ 
+ #~ msgid "\\%-10[scroll-forward]  Scroll forward 1 line.\n"
+ #~ msgstr "\\%-10[scroll-forward]  Rulla en rad framÃ¥t.\n"
+ 
+ #~ msgid "\\%-10[scroll-backward]  Scroll backward 1 line.\n"
+ #~ msgstr "\\%-10[scroll-backward]  Rulla en rad bakÃ¥t.\n"
+ 
+ #~ msgid ""
+ #~ "Email bug reports to bug-texinfo@gnu.org,\n"
+ #~ "general questions and discussion to help-texinfo@gnu.org."
+ #~ msgstr ""
+ #~ "Skicka felrapporter till bug-texinfo@gnu.org,\n"
+ #~ "allmÃ¤nna frÃ¥gor och diskussion till help-texinfo@gnu.org\n"
+ #~ "och synpunkter pÃ¥ Ã¶versÃ¤ttningen till sv@li.org."
+ 
+ #~ msgid "%s' argument to @image command not found"
+ #~ msgstr "%s argument till @image-kommandot hittades inte"
+ 
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ #~ "\n"
+ #~ "Translate Texinfo source documentation to various other formats:\n"
+ #~ "Info files suitable for reading online with Emacs or standalone GNU Info\n"
+ #~ "(by default); plain text (with --no-headers); or HTML (with --html).\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --commands-in-node-names  allow @ commands in node names.\n"
+ #~ " -D VAR                    define a variable, as with @set.\n"
+ #~ "--docbook                  output DocBook rather than Info format.\n"
+ #~ " -E, --macro-expand FILE   output macro-expanded source to FILE.\n"
+ #~ " --error-limit=NUM         quit after NUM errors (default %d).\n"
+ #~ " --fill-column=NUM         break Info lines at NUM characters (default %"
+ #~ "d).\n"
+ #~ " --footnote-style=STYLE    output footnotes according to STYLE:\n"
+ #~ "                            `separate' to place footnotes in their own "
+ #~ "node,\n"
+ #~ "                            `end' to place the footnotes at the end of "
+ #~ "the\n"
+ #~ "                             node in which they are defined (the "
+ #~ "default).\n"
+ #~ " --force                   preserve output even if errors.\n"
+ #~ " --help                    display this help and exit.\n"
+ #~ " --html                    output HTML rather than Info format.\n"
+ #~ " -I DIR                    append DIR to the @include search path.\n"
+ #~ " --ifhtml                  process @ifhtml and @html text even when not\n"
+ #~ "                            generating HTML.\n"
+ #~ " --ifinfo                  process @ifinfo text even when generating "
+ #~ "HTML.\n"
+ #~ " --iftex                   process @iftex and @tex text.\n"
+ #~ "                            implies --no-split.\n"
+ #~ msgstr ""
+ #~ "AnvÃ¤ndning: %s [FLAGGA]... TEXINFO-FIL...\n"
+ #~ "\n"
+ #~ "Ã–versÃ¤tt Texinfo-kÃ¤lldokumentation till diverse andra format:\n"
+ #~ "Info-filer som Ã¤r lÃ¤mpliga fÃ¶r lÃ¤sning pÃ¥ skÃ¤rm med Emacs eller separat\n"
+ #~ "GNU Info (standardalternativ), vanlig text (med --no-headers), eller\n"
+ #~ "HTML (med --html).\n"
+ #~ "\n"
+ #~ "Flaggor:\n"
+ #~ " --commands-in-node-names  tillÃ¥t @-kommandon i nodnamn.\n"
+ #~ " -D VARIABEL               definiera en variabel, som med @set.\n"
+ #~ "--docbook                  generera DocBook istÃ¤llet fÃ¶r Info-format.\n"
+ #~ " -E, --macro-expand FIL    generera makroexpanderad kÃ¤llkod till FIL.\n"
+ #~ " --error-limit=ANTAL       avsluta efter ANTAL fel (standard %d).\n"
+ #~ " --fill-column=ANTAL       radbryt Info-rader vid ANTAL tecken (standard %"
+ #~ "d).\n"
+ #~ " --footnote-style=STIL     generera fotnoter enligt STIL:\n"
+ #~ "                            \"separate\" fÃ¶r att placera fotnoter i sin\n"
+ #~ "                            egen nod,\n"
+ #~ "                            \"end\" fÃ¶r att placera fotnoter i slutet pÃ¥\n"
+ #~ "                            den nod dÃ¤r de Ã¤r definierade (standard).\n"
+ #~ " --force                   bevara utdata Ã¤ven om fel pÃ¥trÃ¤ffas.\n"
+ #~ " --help                    visa denna hjÃ¤lptext och avsluta.\n"
+ #~ " --html                    generera HTML istÃ¤llet fÃ¶r Info-format.\n"
+ #~ " -I KATALOG                lÃ¤gg till KATALOG till @include-sÃ¶kvÃ¤gen.\n"
+ #~ " --ifhtml                  behandla @ifhtml- och @html-text Ã¤ven om inte\n"
+ #~ "                            HTML genereras.\n"
+ #~ " --ifinfo                  behandla @ifinfo-text Ã¤ven dÃ¥ HTML genereras.\n"
+ #~ " --iftex                   behandla @iftex- och @tex-text.\n"
+ #~ "                            medfÃ¶r --no-split.\n"
+ 
+ #~ msgid ""
+ #~ " --no-headers              suppress Info node separators and Node: "
+ #~ "lines;\n"
+ #~ "                            write to standard output without --output.\n"
+ #~ " --no-ifhtml               do not process @ifhtml and @html text.\n"
+ #~ " --no-ifinfo               do not process @ifinfo text.\n"
+ #~ " --no-iftex                do not process @iftex and @tex text.\n"
+ #~ " --no-split                suppress splitting of Info or HTML output,\n"
+ #~ "                            generate only one output file.\n"
+ #~ " --no-validate             suppress node cross-reference validation.\n"
+ #~ " --no-warn                 suppress warnings (but not errors).\n"
+ #~ " --number-sections         include chapter, section, etc. numbers in "
+ #~ "output.\n"
+ #~ " -o, --output=FILE         output to FILE (directory if split HTML),\n"
+ #~ "                            ignoring any @setfilename.\n"
+ #~ " -P DIR                    prepend DIR to the @include search path.\n"
+ #~ " --paragraph-indent=VAL    indent Info paragraphs by VAL spaces (default %"
+ #~ "d).\n"
+ #~ "                            if VAL is `none', do not indent;\n"
+ #~ "                            if VAL is `asis', preserve existing "
+ #~ "indentation.\n"
+ #~ " --reference-limit=NUM     warn about at most NUM references (default %"
+ #~ "d).\n"
+ #~ " --split-size=NUM          split into files at NUM size. (default %d).\n"
+ #~ " -U VAR                    undefine a variable, as with @clear.\n"
+ #~ " -v, --verbose             explain what is being done.\n"
+ #~ " --version                 display version information and exit.\n"
+ #~ " --xml                     output XML (TexinfoML) rather than Info "
+ #~ "format.\n"
+ #~ msgstr ""
+ #~ " --no-headers              undertryck Info-nodavskiljare och \"Node:\"-"
+ #~ "rader,\n"
+ #~ "                            skriv till standard ut utan --output.\n"
+ #~ " --no-ifhtml               behandla inte @ifhtml- och @html-text.\n"
+ #~ " --no-ifinfo               behandla inte @ifinfo-text.\n"
+ #~ " --no-iftex                behandla inte @iftex- och @tex-text.\n"
+ #~ " --no-split                undertryck delning av Info- eller HTML-"
+ #~ "utdata,\n"
+ #~ "                            skapa endast en utdatafil.\n"
+ #~ " --no-validate             undertryck nod-korsreferensvalidering.\n"
+ #~ " --no-warn                 undertryck varningar (men inte fel).\n"
+ #~ " --number-sections         inkludera kapitel-, sektionsnummer osv i "
+ #~ "utdata.\n"
+ #~ " -o, --output=FIL          skriv till FIL (katalog om delad HTML),\n"
+ #~ "                            ignorerar alla @setfilename.\n"
+ #~ " -P KATALOG                lÃ¤gg till KATALOG till @include-sÃ¶kvÃ¤gen.\n"
+ #~ " --paragraph-indent=VÃ„RDE  gÃ¶r indrag i Info-stycken med VÃ„RDE blanksteg\n"
+ #~ "                            (standardvÃ¤rde %d).\n"
+ #~ "                            om VÃ„RDE Ã¤r \"none\" gÃ¶rs inget indrag;\n"
+ #~ "                            om VÃ„RDE Ã¤r \"asis\" bevaras befintlig "
+ #~ "indragning.\n"
+ #~ " --reference-limit=ANTAL   varna om hÃ¶gst ANTAL referenser\n"
+ #~ "                            (standardvÃ¤rde %d).\n"
+ #~ " --split-size=ANTAL        dela i filer vid storleken ANTAL\n"
+ #~ "                            (standardvÃ¤rde %d).\n"
+ #~ " -U VARIABEL               odefiniera en variabel, som med @clear.\n"
+ #~ " -v, --verbose             fÃ¶rklara vad som gÃ¶rs.\n"
+ #~ " --version                 visa versionsinformation och avsluta.\n"
+ #~ " --xml                     generera XML (TexinfoML) istÃ¤llet fÃ¶r Info-"
+ #~ "format.\n"
diff -Nrc2 texinfo-4.12/po/texinfo.pot texinfo-4.13/po/texinfo.pot
*** texinfo-4.12/po/texinfo.pot	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/texinfo.pot	Thu Sep 18 11:38:30 2008
***************
*** 0 ****
--- 1,2880 ----
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR Free Software Foundation, Inc.
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.13\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr ""
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr ""
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr ""
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr ""
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr ""
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr ""
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr ""
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr ""
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr ""
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr ""
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr ""
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr ""
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr ""
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr ""
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr ""
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr ""
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr ""
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr ""
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr ""
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr ""
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr ""
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr ""
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr ""
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr ""
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr ""
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr ""
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr ""
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr ""
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr ""
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr ""
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr ""
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr ""
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr ""
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr ""
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr ""
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr ""
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr ""
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr ""
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr ""
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr ""
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr ""
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr ""
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr ""
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr ""
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr ""
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr ""
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr ""
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr ""
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr ""
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr ""
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr ""
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr ""
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr ""
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr ""
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr ""
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr ""
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr ""
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr ""
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr ""
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr ""
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr ""
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr ""
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr ""
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr ""
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr ""
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:73
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr ""
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr ""
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr ""
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr ""
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr ""
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr ""
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr ""
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr ""
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr ""
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr ""
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr ""
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr ""
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr ""
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr ""
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr ""
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr ""
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr ""
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr ""
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr ""
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr ""
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr ""
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr ""
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr ""
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr ""
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr ""
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr ""
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr ""
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr ""
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr ""
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr ""
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr ""
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr ""
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr ""
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr ""
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr ""
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr ""
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr ""
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr ""
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr ""
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr ""
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr ""
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr ""
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr ""
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr ""
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr ""
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr ""
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr ""
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr ""
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr ""
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr ""
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr ""
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr ""
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr ""
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr ""
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr ""
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr ""
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr ""
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr ""
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr ""
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr ""
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr ""
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr ""
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr ""
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr ""
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr ""
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr ""
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr ""
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr ""
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr ""
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr ""
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr ""
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr ""
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr ""
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr ""
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr ""
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr ""
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr ""
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr ""
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr ""
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr ""
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr ""
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr ""
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr ""
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr ""
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr ""
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr ""
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr ""
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr ""
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr ""
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr ""
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr ""
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr ""
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr ""
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr ""
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr ""
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr ""
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr ""
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr ""
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr ""
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr ""
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr ""
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr ""
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr ""
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr ""
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr ""
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr ""
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr ""
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr ""
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr ""
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr ""
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr ""
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr ""
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr ""
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr ""
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr ""
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr ""
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr ""
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr ""
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr ""
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr ""
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr ""
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr ""
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr ""
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr ""
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr ""
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr ""
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr ""
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr ""
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr ""
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr ""
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr ""
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr ""
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr ""
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr ""
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr ""
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr ""
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr ""
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr ""
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr ""
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr ""
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr ""
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr ""
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr ""
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr ""
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr ""
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr ""
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr ""
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr ""
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr ""
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr ""
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr ""
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr ""
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr ""
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr ""
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr ""
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr ""
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr ""
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr ""
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr ""
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr ""
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr ""
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr ""
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr ""
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr ""
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr ""
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr ""
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr ""
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr ""
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr ""
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr ""
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr ""
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr ""
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr ""
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr ""
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr ""
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr ""
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr ""
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr ""
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr ""
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr ""
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr ""
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr ""
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr ""
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr ""
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr ""
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr ""
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr ""
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr ""
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr ""
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:733
+ #, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr ""
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr ""
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr ""
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr ""
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr ""
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr ""
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr ""
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr ""
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr ""
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr ""
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr ""
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr ""
Files texinfo-4.12/po/tr.gmo and texinfo-4.13/po/tr.gmo differ
diff -Nrc2 texinfo-4.12/po/tr.po texinfo-4.13/po/tr.po
*** texinfo-4.12/po/tr.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/tr.po	Thu Sep 18 11:38:33 2008
***************
*** 0 ****
--- 1,3221 ----
+ # translation of texinfo-4.12.94.po to Turkish
+ # Copyright (C) 2002, 2004, 2007, 2008 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the texinfo package.
+ # texinfo-4.12.94 Türkçe Çevirisi
+ # Eyüp Hakan Duran <hakan_duran@hotmail.com>, 2002, 2004, 2007, 2008.
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.12.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2008-08-25 21:25-0500\n"
+ "Last-Translator: Eyüp Hakan Duran <hakan_duran@hotmail.com>\n"
+ "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO-8859-9\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "X-Generator: KBabel 1.11.4\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr "Bilinmeyen sistem hatasý"
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: `%s' seçeneði belirsiz\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: `--%s' seçeneði argümansýz kullanýlýr\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: `%c%s' seçeneði argümansýz kullanýlýr\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: `%s' seçeneði bir argümanla kullanýlýr\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: `--%s' seçeneði bilinmiyor\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: `%c%s' seçeneði bilinmiyor\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: kuraldýþý seçenek -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: geçersiz seçenek -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: seçenek bir argümanla kullanýlýr -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: `-W %s' seçeneði belirsiz\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: `-W %s' seçeneði argümansýz kullanýlýr\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "bellek tükendi"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Bir karakter ileri gider"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "Bir karakter geri gider"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Satýrýn baþlangýcýna gider"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Satýrýn sonuna gider"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Bir kelime ileri gider"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "Bir kelime geri gider"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "Ýmlecin altýndaki karakteri siler"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "Ýmleçden önceki karakteri siler"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Ýþlemi keser ya da çýkar"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Bu satýrý kabul eder (ya da tamamlanmasý için zorlar)"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "Sonraki karakteri aynen yerleþtirir"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "Bu karakteri yerleþtirir"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "Bir TAB karakteri yerleþtirir"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Verilen yerde karakterleri yer deðiþtirir"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Son silinenin içeriði kadar geri çeker"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "Silinen zincir boþ"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Bir önceki silinen kadar geri çeker"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Satýrýn sonuna kadar siler"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Satýrýn baþýna kadar siler"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Ýmleçten sonraki kelimeyi siler"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Ýmleçten önceki kelimeyi siler"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "Tamamlama yok"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "Bitmedi"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Olasý tamamlamalarý listeler"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Tek tamamlama"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Bir tamamlama:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d tamamlama:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "Tamamlamayý yerleþtir"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Tamamlamalarý oluþturuyor..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Tamamlama penceresini kaydýrýr"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "Dipnotlar gösterilemedi"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "Diðer penceredeki bu düðümle iliþkili dipnotlarý gösterir"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "----------- Dipnotlar ---------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Bu dosyada indeks içinde bir dizgeyi arar"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "indeks girdilerini buluyor..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "Hiç indis yok."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "indeks giriþi: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Son `\\[index-search]'komutundan bir sonraki eþleþen indeks öðesine gider"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "Daha önce bir indeks arama dizgesi yok."
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "Hiç indeks girdisi yok."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "`%s' içeren %sindex girdisi yok."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "daha"
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "BU GÖRÜLMEZ"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "`%s' bulundu - %s içinde. (`\\[next-index-match]' sonrakini bulmayý dener.)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "`%s' indislerini tarýyor..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "Mevcut bilgi dosyalarýndan hiçbirisinin indisinde `%s' yok."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Bir dizge için tüm bilinen bilgi dosyalarýnýn indislerinide ekleyerek bir "
+ "menu oluþturur"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Ýndeks hakkýnda:"
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menü: `%s' indislerini içeren düðümler:\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "Daha fazla bilgi için --help seçeneðini kullanýn.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ "Telif Hakký (C) %s Özgür Yazýlým Vakfý Inc.\n"
+ "Lisans GPLv3+: GNU GPL sürüm 3 ya da sonrasý <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "Bu özgür yazýlýmdýr: deðiþtirip daðýtma özgürlüðüne sahipsiniz.\n"
+ "Yasalarýn elverdiði ölçüde HÝÇBÝR GARANTÝ yoktur.\n"
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "`%s' için indeks girdisi yok.\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ "Kullaným: %s [SEÇENEK]... [MENÜ ÖGESÝ...]\n"
+ "\n"
+ "Info biçemindeki belgeleri okuyun.\n"
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ "Seçenekler:\n"
+ "  -k, --apopros=DÝZGE         tüm manüellerin tüm indekslerinde DÝZGE'yi "
+ "arar.\n"
+ "  -d, --directory=DÝZ         DÝZ'i INFO YOLU'na ekler.\n"
+ "      --dribble=DOSYAADI       DOSYAADI'ndaki kullanýcý tuþbasýmlarýný "
+ "anýmsar.\n"
+ "  -f, --file=DOSYAADI          ziyaret edilecek Info dosyasýný belirler."
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ "  -h, --help                   bu yardýmý görüntüler ve çýkar.\n"
+ "      --index-search=DÝZGE    Ýndeks girdisi DÝZGE tarafýndan iþaret edilen "
+ "düðüme gider.\n"
+ "  -n, --node=DÜÐÜMADI          Ýlk ziyaret edilen Info dosyasýnda düðümleri "
+ "belirler.\n"
+ "  -o, --output=DOSYAADI        Seçili düðümlerden DOSYAAYDI'na çýktý alýr."
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ "  -R, --raw-escapes            \"ham\" ANSI kaçýþlardan çýktý alýr "
+ "(öntanýmlý).\n"
+ "      --no-raw-escapes         kaçýþlarýn okunur metin gibi çýktýsýný alýr.\n"
+ "      --restore=DOSYAADI       ilk tuþbasýmlarýný DOSYAADI'ndan okur.\n"
+ "  -Q, --show-options, --usage  komut satýrý seçenekler düðümüne gider."
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr "  -b, --speech-friendly       konuþma sentezcilerine dostça davranýr."
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ "      --subnotes               menü ögelerinin özyineli çýktýsýný alýr.\n"
+ "      --vi-keys                vi ve less benzeri tuþ baðlantýlarýný "
+ "kullanýr.\n"
+ "      --version                sürüm bilgisini gösterir ve çýkar.\n"
+ "  -w, --where, --location      Info dosyasýnýn fiziksel konumunu yazdýrýr."
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ "\n"
+ "Eðer mevcutsa, ilk seçenek-olmayan argüman baþlanacak menü girdisidir;\n"
+ "bu, tüm INFO YOLU içindeki `dir' dosyalarýnda aranýr.\n"
+ "Mevcut deðilse, info tüm `dir' dosyalarýný birleþtirir ve sonucu gösterir.\n"
+ "Kalan tüm argümanlar, ilk ziyaret edilen düðüme göreceli menü\n"
+ "ögesi isimleri olarak iþlem görür."
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ "\n"
+ "Tuþ baðlantýlarýnýn bir özeti için Info içinden h tuþlayýn."
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ "\n"
+ "Örnekler:\n"
+ "  info                       en üst düzey dir menüsünü gösterir\n"
+ "  info info                  Info okuyucularý için genel el kitabýný "
+ "gösterir\n"
+ "  info info-stnd             bu Info programýna özgü el kitabýný gösterir\n"
+ "  info emacs                 en üst düzey dir'den emacs düðümünden baþlatýr\n"
+ "  info emasc buffers         emacs elkitabý içinden tampon düðümünden "
+ "baþlatýr\n"
+ "  info --show-options emacs  emacs'ýn komut satýrý seçenekleri bulunan "
+ "düðümden baþlatýr\n"
+ "  info --subnodes -o out.txt emacs  tüm elkitabýný out.txt'e çýkartýr\n"
+ "  info -f ./foo.info         dir aramadan ./foo.info dosyasýný gösterir"
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "Yazýlým hatalarýný bug-texinfo@gnu.org'a,\n"
+ "genel soru ve tartýþmalarý help-texinfo@gnu.org'a gönderiniz.\n"
+ "Texinfo anasayfasý: http://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "`%s' düðümü bulunamadý."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "`(%s)%s' düðümü bulunamadý."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "Bir pencere bulunamadý!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Orasý bu pencerenin düðümü gibi görünmüyor!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "Son pencere silinemez."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "Bu düðümde menü yok."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "Bu düðümde dipnot yok."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "Bu düðümde çapraz baþvuru yok."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "Bu düðüm için `%s' yer gösterici yok."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "Info komutu `%c' bilinmiyor; yardým almak için `?' deneyin."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "`%s' terminal türü Info çalýþtýrmak için yeterince akýllý deðil."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Zaten bu düðümün son sayfasýndasýnýz."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Zaten bu düðümün ilk sayfasýndasýnýz."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Sadece bir pencere."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Pencere çok küçük olacaktý."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "Bir yardým penceresi için yer yok, lütfen bir pencere silin."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr "Temel Info komut tuþlarý\n"
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit help]  Bu yardým penceresini kapatýr.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  Info'dan büsbütün çýkar.\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  Info öðreticiyi çaðýrýr.\n"
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  Bir satýr yukarý git.\n"
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  Bir satýr aþaðý git.\n"
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Geriye doðru bir ekran kaydýrýr.\n"
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Ýleriye doðru bir ekran kaydýrýr.\n"
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Bu düðümün baþlangýcýna gider.\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Bu düðümün sonuna gider.\n"
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "\\%-10[move-to-next-xref]  Bir sonraki yardýmlý metin linkine atlar.\n"
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Ýmleç altýndaki yardýmlý metin linkini "
+ "izler.\n"
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "\\%-10[history-node]  Bu pencerede görünen en son düðüme gider.\n"
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[global-prev-node]  Belgede bundan önceki düðüme gider.\n"
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[global-next-node]  Belgede bundan sonraki düðüme gider.\n"
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Bu düzeydeki bundan önceki düðüme gider.\n"
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Bu düzeydeki bundan sonraki düðüme gider.\n"
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Bir düzey üste gider.\n"
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[top-node]  Bu belgenin en üst düðümüne gider.\n"
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[dir-node]  Ana `directory' düðümüne gider.\n"
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "1...9       Bu düðümün menüsündeki ilk...dokuzuncu öðeyi seçer.\n"
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  Bu düðümün menüsündeki son öðeyi seçer.\n"
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "\\%-10[menu-item]  Ýsmi ile belirtilen menü öðesini seçer.\n"
+ 
+ #: info/infodoc.c:73
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  Ýþmiyle belirtilen bir çapraz baþvuruyu izler.\n"
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "\\%-10[goto-node]  ismiyle belirtilen düðüme gider.\n"
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "\\%-10[search]  Belirli bir dizgeyi ileriye doðru arar\n"
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[search-previous]  Önceki bulunmayý arar.\n"
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "\\%-10[search-next]  Sonraki bulunmayý arar.\n"
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Ýndeks girdileri içinde belirli bir dizgeyi arar\n"
+ "              ve bulunan ilk girdi tarafýndan gönderme yapýlan düðümü "
+ "seçer.\n"
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "\\%-10[abort-key]  Mevcut iþlemi iptal eder.\n"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Info Pencerelerindeki Temel Komutlar\n"
+ "************************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  Bu yardým penceresinden çýkar.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  Info büsbütün çýkar.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Info öðreticiyi yardýma çaðýrýr.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Bu düðümün `sonraki' düðümüne gider.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Bu düðümün `önceki' düðümüne gider.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Bu düðümden `yukarý' gider.\n"
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "  %-10s  Ýsmini belirterek menü öðesi seçin.\n"
+ "              Menü öðesi seçmek, bir baþka düðümün seçilmesine yolaçar.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Bir çapraz baþvuruyu izler. Baþvuru ismini okur.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Bu pencerede görünen son düðüme gider.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Bu düðümün içinden sonraki URL baðýna atlar.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Ýmleç altýndaki URL baðýný izler.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  `dizin' düðümüne gider. `g (DÝZÝN)' ile eþdeðer.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Üst düðüme gider. `g Top' ile eþdeðer.\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Bir düðüm içinde dolaþým:\n"
+ "-------------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Bir sayfa ileri kaydýrýr.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Bir sayfa geri kaydýrýr.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Bu düðümün baþlangýcýna gider.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Bu düðümün sonuna gider.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Bir satýr ileri kaydýrýr.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Bir satýr geri kaydýrýr.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Diðer komutlar:\n"
+ "---------------\n"
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Düðüm menüsündeki ilk...dokuzuncu ögeyi seçer.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Düðüm menüsündeki son öðeyi seçer.\n"
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "  %-10s  Bu Info dosyasýndaki indeks girdileri içinde belirli bir dizgeyi "
+ "arar\n"
+ "              ve bulunan ilk girdi tarafýndan gönderme yapýlan düðümü "
+ "seçer.\n"
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "  %-10s  Ýsmiyle belirtilen düðüme gider.\n"
+ "              (DOSYAADI)DÜÐÜMADI þeklinde bir dosya adý da "
+ "ekleyebilirsiniz.\n"
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  Belirli bir dizgeyi ileriye doðru arar\n"
+ "              ve sonraki bulunanýn içinde olduðu düðümü seçer.\n"
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  Belirli bir dizgeyi geriye doðru arar\n"
+ "              ve sonraki bulunanýn içinde olduðu düðümü seçer.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Þu anki arama yolu:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Info pencerelerinde kullanýlabilecek komutlar:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "Eko alanýnda kullanýlabilecek komutlar:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Aþaðýdaki komutlar yalnýzca %s aracýlýðýyla çaðrýlabilirler:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr "  tümü\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Bu yardým iletisini gösterir"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Info düðümünü `(info)Help' ziyaret eder"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "KEY ile ilgili belgeleri basar"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Tuþ açýklamasý: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s atanmamýþ."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s atanmamýþ."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s %s olarak atanmýþ."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Verilen komutu çalýþtýracak türü gösterir"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Komutun yeri: "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "`%s' bir tuþ üzerinde deðil"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s sadece %s üzerinden çaðrýlabilir."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s, %s üzerinden çaðrýlabilir."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "`%s' isimli bir iþlev yok"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Diðer düðümleri seçme:\n"
+ "----------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "argüman sayýsý yanlýþ"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "`%s' girdi dosyasý açýlamýyor"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "`%s' çýktý dosyasý oluþturulamýyor"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "`%s''e yazma hatasý"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "`%s' çýktý dosyasýný kapatmada hata"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "anahtar sýralamasý çok uzun"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "anahtar sýralamasý kayýp"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "NUL karakterine (\\000) izin verilmiyor"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "NUL karakterine (^%c) izin verilmiyor"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "kayýp eylem adý"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "bölüm çok uzun"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "bilinmeyen eylem `%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "eylem adý çok uzun"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "`%s' eylemini izleyen fazladan karakterler"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "kayýp deðiþken adý"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "deðiþken adýndan hemen sonra kayýp `=' "
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "deðiþken adý çok uzun"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "deðer çok uzun"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "\"%s\", satýr %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "Kullaným: %s [SEÇENEK]... [GÝRDÝ-DOSYASI]\n"
+ "\n"
+ "infokey kaynak dosyasýný infokey dosyasýna derler.  GÝRDÝ-DOSYASI'ný\n"
+ "okur (öntanýmlý $HOME/.infokey) ve derlenmiþ dosyayý $HOME/.info \n"
+ "dosyasýna (öntanýmlý) yazar\n"
+ "\n"
+ "Seçenekler:\n"
+ "  --output DOSYA        çýktý, $HOME/.info yerine DOSYA'ya\n"
+ "  --help                bu yardýmý gösterir ve çýkar\n"
+ "  --version             sürüm bilgisini gösterir ve çýkar.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Geçersiz infokey dosyasý `%s' yoksayýlýyor - çok küçük"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Geçersiz infokey dosyasý `%s' yoksayýlýyor - çok büyük"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "infokey dosyasý `%s' okumada hata - çok kýsa"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "Geçersiz infokey dosyasý `%s' (hatalý sihirli numaralar) -- güncellemek için "
+ "infokey yürütün"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "infokey dosyanýz `%s' eskimiþ -- güncellemek için infokey yürütün"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Geçersiz infokey dosyasý `%s' (hatalý bölüm uzunluðu) -- güncellemek için "
+ "infokey yürütün"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "Geçersiz infokey dosyasý `%s' (hatalý bölüm kodu) -- güncellemek için "
+ "infokey yürütün"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "Infokey dosyasýnda hatalý veri -- bazý tuþ baðlantýlarý yoksayýldý"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr "Infokey dosyasýnda hatalý veri -- bazý deðiþken ayarlarý yoksayýldý"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Bir Info komut ismini okur ve onu açýklar"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Komut açýklamasý: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Eko alanýndan komut ismini okur ve onu çalýþtýrýr"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "Bir `eko-alaný' komutu burada çalýþtýrýlamaz."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "tanýmlanmamýþ komut: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Gösterilen pencerenin yüksekliði belirtilir"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Ekran yüksekliðini (%d) ye ayarlar: "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   Bu dosyanýn içermesini saðlamak için peþi sýra sürüklenen kaynak "
+ "dosyalar:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "%s dosyasý manipüle edilemedi.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* Menü:\n"
+ "  (Dosya)Düðüm                     Satýr   Boyut   Ýçerdiði Dosya\n"
+ "  ------------                     -----   -----   --------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Son zamanlarda uðradýðýnýz düðüm menüsünü görmektesiniz.\n"
+ "Ya bu menüden seçin, ya da baþka bir pencerede `\\[history-node]' kullanýn.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr ""
+ "Son zamanlarda uðradýðýnýz tüm düðümlerin menüsünü içeren bir pencere "
+ "oluþturur"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Daha önce, görünür bir pencereden uðradýðýnýz bir düðüm seçiniz"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Uðramýþ olduðunuz düðümü seçiniz: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Referans yokoldu! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr "düzenli ifade hatasý: %s"
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Info sürüm %s'e hoþgeldiniz. Yardým için \\[get-help-window], menü öðesi "
+ "için \\[menu-item] yazýnýz."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Sonraki satýra (aþaðý) gider"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Önceki satýra (yukarý) gider"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Satýr sonuna gider"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Satýr baþýna gider"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Sonraki"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "Bu belge içinde baþka düðüm yok."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "Bu düðüm için baþka `Önceki' yok."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "Bu belge içinde, bu düðüm için `Önceki' ya da `Yukarý' yok."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Düðüm yapýsý içinde ileriye ya da aþaðýya gider"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Düðüm yapýsý içinde geriye ya da yukarýya gider"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Bu pencerede ileriye doðru kaydýrýr"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr ""
+ "Bu pencerede ileriye doðru kaydýrýr ve öntanýmlý pencere boyutuna ayarlar"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Bu pencerede, düðüm içinde kalarak ileriye doðru kaydýrýr"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Bu pencerede, düðüm içinde kalarak ileriye doðru kaydýrýr ve öntanýmlý "
+ "pencere boyutunu ayarlar"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Bu pencerede geriye doðru kaydýrýr"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr ""
+ "Bu pencerede geriye doðru kaydýrýr ve öntanýmlý pencere boyutunu ayarlar"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Bu pencerede, düðüm içinde kalarak geriye doðru kaydýrýr"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr "geri ve set öntanýmlý"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Bu düðümün baþlangýcýna gider"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Bu düðümün sonuna gider"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Aþaðýya doðru satýr kaydýrýr"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Yukarýya doðru satýr kaydýrýr"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Aþaðýya doðru yarým ekran boyutu kaydýrýr"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Yukarýya doðru yarým ekran boyutu kaydýrýr"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Sonraki pencereyi seçer"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Önceki pencereyi seçer"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Mevcut pencereyi böler"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "Mevcut pencereyi siler"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "Kalýcý bir pencere silinemez"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "Diðer tüm pencereleri siler"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Diðer pencereyi kaydýrýr"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Diðer pencereyi geriye doðru kaydýrýr"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "Bu pencereyi büyütür (ya da küçültür)"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Mevcut ekran boþluðunu görünür pencereler arasýnda bölüþtürür"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Mevcut penceredeki satýr sarma durumunu deðiþtirir"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr "Aramalarda düzenli ifade kullanýmýna geç"
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr "Aramalarda düzenli ifade kullanýlýyor."
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr "Aramalarda yazýlý dizge kullanýlýyor."
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Sonraki düðümü seçer"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Önceki düðümü seçer"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Üstteki düðümü seçer"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Bu dosyadaki son düðümü seçer"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Bu pencerenin baþka düðümü yok"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Bu dosyadaki ilk düðümü seçer"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Bu düðümün menüsündeki son öðeyi seçer"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Bu menü öðesini seçer"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "Bu menüde %d adet öðe yok."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Menü öðesi (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Menü öðesi: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Ýzlenecek xref (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Ýzlenecek xref: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Bir menü öðesini okur ve düðümünü seçer"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "Oku yada ve select"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Bu düðüm menüsünün baþlangýcýna gider"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Tek seferde mümkün olan en fazla sayýda menü öðesine uðrar"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Bir düðüm adý okur ve seçer"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Düðüme gider: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "Menüsü olmayan düðüm `%s'."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "`%2$s' düðümünde `%1$s' menü öðesi yok."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "`%2$s''de `%1$s' tarafýndan baþvurulan düðüm bulunamadý."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Dizinden baþlayarak bir menü listesini oku ve izle"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Menüleri izle: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "Program çaðýrmayý açýklayan düðümü bulur"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "[%s]'in çaðýrma düðümünü bulur: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Bir klavuz sayfasý baþvurusunu okur ve seçer"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Alýnacak klavuz sayfasý: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Bu dosyadaki `En Üst' düðümü seç"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "`(dizin)' düðümünü seç"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Düðümü öldür (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "Öldürülemeyen düðüm `%s' "
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "Son düðüm öldürülemiyor"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "En son seçilen düðümü seçer"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Bu düðümü öldürür"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Bir dosyanýn adýný okur ve seçer"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "Dosyayý bul: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "`%s' bulunamýyor."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "Çýktý dosyasý `%s' oluþturulamýyor."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "Bitti."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "%s düðümü yazýlýyor..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "Bu düðümün içeriðini INFO_PRINT_COMMAND üzerinden veri yolla"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "Veri yolu `%s''e açýlamýyor."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "%s düðümü yazdýrýlýyor..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr "Arama, belgenin sonundan sürdürülüyor."
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr "Arama, belgenin baþýndan sürdürülüyor."
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "%s altdosyasý aranýyor ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Bir dizge okur ve onu büyük/küçük harf duyarlý þekilde arar"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Bir dizge okur ve (onu) arar"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Bir dizge okur ve (onu) geriye doðru arar"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s%s [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr "Düzenli ifade arama"
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr " büyük/küçük harf duyarlý þekilde "
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr " geriye doðru"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "Ara"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Arama baþarýsýz"
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "Son aramayý ayný yönde yineler"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "Daha önceden arama dizgesi yok"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "Son aramayý ters yönde yineler"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "Bir dizgeyi siz yazarken etkileþimli þekilde arar"
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr "Düzenli ifade I-arama, geriye doðru: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "I-arama, geriye doðru: "
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr "Düzenli ifade I-arama: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "I-arama: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Baþarýlamýyor "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Önceki çapraz baþvuruya gider"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Sonraki çapraz baþvuruya gider"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Bu satýrdaki referans ya da menü öðesini seçer"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Mevcut iþlemi iptal eder"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "Çýk"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Ýmleci pencerenin belirli bir satýrýna taþýr"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Görüntüyü yeniden çizer"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "Info'dan çýkar"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Bu tuþun küçük harfine atanmýþ komutu yürütür"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Bilinmeyen komut (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" geçersiz"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "`%s' geçersiz"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "Mevcut sayýsal argümana bu sayýyý ekle"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Mevcut sayýsal argümaný baþlat (ya da 4'le çarp)"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "Dahili olarak \\[universal argument] tarafýndan kullanýlýyor"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "okuma-satýrý: Sanal bellek tükendi!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "\"Açýk\" olduðunda, dipnotlar otomatik olarak görünür ve kaybolur"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr ""
+ "\"Açýk\" olduðunda, bir pencereyi oluþturma ya da silme, diðerlerini yeniden "
+ "boyutlandýrýr"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "\"Açýk\" olduðunda, zil çalýnacaðýna ekran yanýp söner"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "\"Açýk\" olduðunda, hatalar zilin çalmasýna neden olur"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr ""
+ "\"Açýk\" olduðunda Info çöpü, sýkýþtýrmasý açýlmak zorunda olan dosyalarý "
+ "biriktirir"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "\"Açýk\" olduðunda, arama dizgesinin eþleþen kýsmý ýþýklandýrýlýr"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Bir düðüm sonunda kaydýrma istendiðinde ne olacaðýný kontrol eder"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr "Metin kaydýrma davranýþýyla ayný"
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Ýmleç penceere dýþýna taþýndýðýnda kaydýrýlacak satýr sayýsý"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ "Metin kaydýrma davranýþýnýn imleç hareket komutlarýný etkileyip "
+ "etkilemeyeceðini kontrol eder"
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr ""
+ "\"Açýk\" olduðunda Info, ISO Latin karakterleri kabul eder ve görüntüler"
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Son düðümün sonunda kaydýrma istendiðinde yapýlacak þey"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Bir deðiþkenin kullanýmýný açýklar"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Açýklanacak deðiþken: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Bir Info deðiþkeninin deðerini belirler"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Deðiþkeni ata: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "%s'e atanacak deðer (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "%s'e atanacak deðer (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "..*** Eskimiþ Etiketler ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), satýr ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d satýr --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d satýr --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Altdosya: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: uyarý: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " %s için"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tSeçeneklerin tam bir listesi için `%s --help''i deneyiniz.\n"
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Kullaným: %s [SEÇENEK]... [INFO-DOSYASI [DÝZÝN-DOSYASI]]\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ "DÝZÝN-DOSYASI Info dizininden INFO-DOSYASI içine girdi ekle ya da çýkar"
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ "Seçenekler:\n"
+ " --debug             yapýlmakta olaný rapor et.\n"
+ " --delete             DIZIN-DOSYASI'ndan INFO-DOSYASI için mevcut girdileri "
+ "sil;\n"
+ "                      hiç yeni girdi ekleme.\n"
+ " --description=METÝN  girdinin açýklamasý METÝN'dir; --entry seçeneðiyle\n"
+ "                      eþanlamlý hale gelmesi için --name seçeneðiyle "
+ "birlikte\n"
+ "                      kullanýlýr.\n"
+ " --dir-file=AD     Info dizindosyasýnýn adýný belirtir; DÝZÝN-DOSYASI \n"
+ "                      argümanýný kullanmakla eþdeðerdir.\n"
+ " --dry-run           --test ile ayný."
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ " --entry              =METÝN        METÝN'i Info dizin girdisi olarak "
+ "ekler.\n"
+ "                      METÝN, Info menü ögesi olarak yazýlýp, sýfýr ya da "
+ "boþlukla\n"
+ "                       baþlayan diðer satýrlarla devam eder.\n"
+ "                       Eðer birden fazla girdi belirtirseniz, tümü "
+ "eklenir. \n"
+ "                        Eðer hiçbir girdi belirtmezseniz bunlar, Info\n"
+ "                       dosyasýnýn içindeki bilgiden belirlenir.\n"
+ "                       Silinirken, METÝN, silinecek girdiyi belirler.\n"
+ "                       Eðer girdi Info dosyasýnda belirlendiði gibi "
+ "deðilse,\n"
+ "                       ve Info dosyasýnýn temel adý da bulunamýyorsa\n"
+ "                       METÝN yalnýzca son çare olarak silinir."
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ " --help              bu yardýmý gösterir ve çýkar.\n"
+ " --info-dir=DÝZÝN      --dir-file=DÝZÝN/dizin ile ayný.\n"
+ " --info-file=DOSYA    dizine kurulacak Info dosyasýný belirler; \n"
+ "                      INFO-DOSYASI argümanýný kullanmakla eþdeðerdir.\n"
+ " --item=METÝN         --entry=METÝN ile ayný.\n"
+ " --keep-old          girdileri deðiþtirmez ya da boþ bölümleri silmez.\n"
+ "  -menuentry=METÝN    --name=METÝN ile ayný.\n"
+ " --name=METÝN         girdinin adý METÝN'dir; --description ile\n"
+ "                      kullanýldýðýnda --entry seçeneðiyle eþanlamlý olur.\n"
+ " --no-indent         DÝZÝN dosyasýndaki yeni girdileri biçemlemez.\n"
+ " --quiet             uyarýlarý baskýlar."
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ " --regex=R           bu dosyanýn tüm bölümlerindeki R düzenli ifadesine uyan "
+ "(büyük/\n"
+ "                      küçük harf duyarsýz) tüm girdilerini koyar.\n"
+ " --remove            --delet ile ayný.\n"
+ " --remove-exactly    yalnýzca info dosya adý tam olarak eþleþirse siler;\n"
+ "                      .info ve .gz uzantýlarý yok sayýlmaz.\n"
+ " --section=BÖLÜM       girdileri dizinin BÖLÜM bölümüne koyar.\n"
+ "                      Birden fazla bölüm belirtirseniz, her bir bölüme tüm "
+ "girdiler\n"
+ "                       eklenir.\n"
+ "                       Eðer hiçbir bölüm belirtmezseniz bunlar, Info "
+ "dosyasýndaki\n"
+ "                       bilgiden belirlenir.\n"
+ " --section R BÖLÜM     --regex=R --section=BÖLÜM --add-once ile eþdeðer."
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ " --silent            uyarýlarý baskýlar.\n"
+ " --test              DÝZÝN-DOSYASI'nýn güncellenmesini engeller.\n"
+ " --version           sürüm bilgisini gösterir ve çýkar."
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "Yazýlým hatalarýný bug-texinfo@gnu.org'a,\n"
+ "genel soru ve tartýþmalarý help-texinfo@gnu.org'a gönderiniz.\n"
+ "Texinfo anasayfasý: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Bu, .../info/dir dosyasý olup, (dir)Üst adý verilen, Info\n"
+ "hiyerarþisinin en üst düðümünü içerir.\n"
+ "Info'yu ilk çalýþtýrdýðýnýzda bu düðüme bakarak baþlýyor olursunuz.\n"
+ "\n"
+ "%s\tBu, INFO aðacýnýn tepesidir\n"
+ "\n"
+ "  Bu (Dizin düðümü), temel konularýn bir menüsünü verir.\n"
+ "  \"q\" tuþuyla çýkar, \"?\" ile tüm Info komutlarýný listeler, \"d\" ile "
+ "buraya döner,\n"
+ "  \"h\" ile yeni baþlayanlar için bir klavuz alabilir,\n"
+ "  \"mEmacs<Return>\" ile Emacs klavuzunu ziyaret edebilirsiniz, vs.\n"
+ "\n"
+ "  Emacs'ta, bir menü öðesi ya da çapraz baþvuru üzerinde sað fare tuþunu\n"
+ "  týklayarak seçim yapabilirsiniz.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%1$s: (%2$s) okunamýyor ve (%3$s) oluþturulamýyor\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: boþ dosya"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "Eþleþen END-INFO-DIR-ENTRY'siz START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "Eþleþen START-INFO-DIR-ENTRY'siz END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: zaten dir dosyasý var: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: Info dosyasýný yalnýzca bir kez belirtin.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr "Bir baþka düzenli ifade belirlendi, `%s' yok sayýlýyor"
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr "Düzenli ifadede hata `%s': %s"
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "fazladan komut satýrý argümaný `%s'"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "Girdi dosyasý belirtilmemiþ; daha fazla bilgi için --help deneyin."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "dizin dosyasý belirtilmemiþ; daha fazla bilgi için --help deneyin."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "`%s' içinde info dizin girdisi yok"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "`%s' için girdi bulunamadý; hiçbir þey silinmedi"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr "stdout'da ferror\n"
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr "stdout'da fflush hatasý\n"
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "@%s'ye argümanlar yok sayýldý"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "Ocak"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "Þubat"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "Mart"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "Nisan"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "Mayýs"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "Haziran"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "Temmuz"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "Aðustos"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "Eylül"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "Ekim"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "Kasým"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "Aralýk"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "@var içinde düþük olasýlýklý karakter %c"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "@sc argümaný tamamen büyükharf(le yazýlmýþ), etkisiz"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "`{' beklenirdi, `%c' görüldü"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "fiil bloðu içinde dosya sonu"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "`}' beklenirdi, `%c' görüldü"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "@strong{Not...} Info'da sahte bir çapraz-baþvuru oluþturur; bundan kaçýnmak "
+ "için yazýmý deðiþtirin"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s kullanýmdan kalkmýþ"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp pozitif bir sayýsal argüman gerektirir, `%s' deðil"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "%c%s'ye hatalý argüman"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "asis"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "yok"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "@%s'ye hatalý argüman"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "ekle"
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "@%s:%s'ye hatalý argüman"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr "%1$s'de açýk ya da kapalý bakleniyordu, `%2$s' deðil"
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr "Yalnýzca @%1$s 10 ya da 11 destekleniyor, `%2$s' deðil"
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "@def arg'da kayýp `}'"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "`@%s' kullanmak için `@%s' ortamý içinde ol(un)malýdýr"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "`%s' çýktý dosya adýndan önce yok sayýldý"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "stdout'a yazýlýyor olduðundan `%s' yok sayýldý"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Çýktý tamponu boþ deðil"
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr "Ýstenen yüzer türü `%s' daha önce kullanýlmadý"
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Bkz "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`%c%s' bir argüman gereksinir `{   }', yalnýzca `%s' deðil"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "Dipnot `%s' için kapama } yok"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "Dipnot, ebeveyn düðümsüz tanýmlanmýþ"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "Dipnot içi dipnotlara izin verilmez"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "Dipnotlar"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: açýlamayan --css-dosyasý: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: --css-dosyasý yorum içinde sonlandý"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "hayýr :"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[beklenmeyen] geçersiz düðüm ismi: `%s'"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Bilinmeyen indeks `%s'"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info, `%s' indeks girdisindeki `:''yi kullanamýyor"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Ýndeks `%s' zaten mevcut"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Bilinmeyen indeks `%1$s' ve/veya @synindex içinde `%2$s'"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(satýr )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(satýr %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "@printindex içinde bilinmeyen indeks `%s'"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "`%s' indeks girdisi tüm düðümlerin dýþýnda"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(tüm düðümlerin dýþýnda)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "@item, @itemize'a argüman olarak kullanýlamaz"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "insertion_type_pname içinde Kýrýk-Tip"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "Numaralandýrma yýðýn taþmasý"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "harflendirme taþmasý, %c'den yeniden baþlanýyor"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s bir argüman gerektirir: %c öðesi için biçimlendirici"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "%cfloat çevreler içiçelendirilemez"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "`@end'  `%1$s' beklerdi, `%2$s' gördü"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "Eþleþen `%cend %s' yok"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s harf ya da rakam gerektirir"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "verbatim bloðu içinde dosya sonu"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "`@float' çevresi dýþýnda @%s anlamlý deðil"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "önce Üst"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "belki de sizin @top düðümünüz, @ifinfo'dan ziyade @ifnottex içine "
+ "sarýlmalýdýr?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "@detailmenu ilk düðümden önce görüldü, `En Üst' düðüm oluþturuluyor"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr "`@titlepage' ve `@quotation' çevreleri dýþýnda @%s anlamlý deðil"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "`@titlepage' çevresi dýþýnda @%s anlamlý deðil"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "Eþleþmeyen `%c%s'"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "`%c%s' sonrasýnda birþeyler gereklidir"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "`%2$s''e hatalý argüman, `%1$s', `%3$s' kullanýlýyor"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "`@%s' bloðu içinde @%s anlamlý deðil"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "`%s' bloðunun içinde @itemx anlamlý deðil"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "%c%s, bir ekleme bloðunun dýþýnda bulundu"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr "`%s' dili için bilinen öntanýmlý bölge yok"
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s geçerli bir ISO 639 dil kodu deðildir"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "tanýnmayan kodlama adý `%s'"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "üzgünüm, `%s' kodlamasý desteklenmiyor"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "geçersiz kodlanmýþ karakter `%s'"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s argüman olarak `i' ya da `j' gerektirir, %c deðil"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s argüman olarak tek karakter, `i' ya da `j' gerektirir"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "makro `%s' daha önce tanýmlanmýþ"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "iþte `%s''nin önceki tanýmý"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "makro geniþlemesindeki \\'i, parametre adý yerine `%s' izliyor"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "Makro `%s', %d satýrýnda çok sayýda arg.la çaðrýldý"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "%cson makrosu bulunamadý"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr "@allow-recursion kullanýlmýyor; lütfen yerine @rmacro kullanýnýz"
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ "@quote-arg kullanýlmýyor; argümanlar öntanýmlý olarak týrnak içine alýnýyor"
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "@%s ile eþleþmeyen @end %s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "Çok sayýda hata!  Vazgeçildi.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: uyarý: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "Yanlýþ yerleþtirilmiþ %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "Daha fazla bilgi için `%s --help' yazýn.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "Kullaným: %s [SEÇENEK]... TEXINFO-DOSYASI...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Öntanýmlý olarak Texinfo kaynak belgelerini diðer çeþitli biçemlere çevirir\n"
+ "Info dosyalarý çevrimiçi Emacs ya da tek baþýna GNU Info'yla okunmak için "
+ "uygundur.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "Genel seçenekler:\n"
+ "      --error-limit=ADET      ADET hatadan sonra çýkar (öntanýmlý %d).\n"
+ "      --document-language=STR Çýktý belgesi için Texinfo anahtar "
+ "sözcüklerini \n"
+ "                                çevirmekte kullanýlacak yerel (öntanýmlý "
+ "C).\n"
+ "      --force                 hatalarda dahi çýktýyý korur.\n"
+ "      --help                  bu yardýmý görüntüler ve çýkar.\n"
+ "      --no-validate           düðüm çapraz-baþvuru onaylamasýný baskýlar.\n"
+ "      --no-warn               uyarýlarý baskýlar (fakat hatalarý deðil).\n"
+ "  -v, --verbose               ne yapýlýyor olduðunu açýklar.\n"
+ "      --version               sürüm bilgisini görüntüler ve çýkar.\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Çýktý biçem seçimi (öntanýmlýsý Info üretmektir):\n"
+ "      --docbook              Info yerine DocBook XML çýktýsý üretir.\n"
+ "      --html                 Info yerine HTML çýktýsý üretir.\n"
+ "      --xml                  Info yerine Texinfo XML çýktýsý üretir.\n"
+ "      --plaintext            Info yerine salt metin çýktýsý üretir.\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "Genel çýktý seçenekleri:\n"
+ "  -E, --macro-expand DOSYA   makro-geniþletilmiþ kaynak çýktýsýný herhangi "
+ "bir\n"
+ "                             @setfilename'i yoksayarak DOSYA'ya yazar.\n"
+ "      --no-headers           Info ya da HTML çýktýsýnda düðüm ayraçlarýný, "
+ "Node:\n"
+ "                               satýrlarýný ve menüleri baskýlar (salt "
+ "metinya da daha kýsa çýktý\n"
+ "                               üretmek üzere); ayrýca, öntanýmlý olarak\n"
+ "                               standart çýktýya yazar.\n"
+ "      --no-split             Info ya da HTML çýktýsýnýn bölünmesini "
+ "baskýlar,\n"
+ "                             yalnýzca bir çýktý dosyasý oluþturur.\n"
+ "      --number-sections      bölüm ve kýsým numaralarýnýn çýktýsýný alýr.\n"
+ "  -o, --output=DOSYA         çýktýyý DOSYA'ya yazar (bölünmüþ HTML ise "
+ "dizine).\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Info ve salt metin için seçenekler:\n"
+ "      --disable-encoding      aksanlý ve özel karakterlerin çýktýsýný "
+ "@documentencoding'e\n"
+ "                                dayalý olarak Info çýktýsýna yazmaz.\n"
+ "      --enable-encoding       --disable encoding'i (öntanýmlý) geçersiz "
+ "kýlar.\n"
+ "      --fill-column=ADET       Info satýrlarýný ADET karakterde bitir "
+ "(öntanýmlý %d)\n"
+ "      --footnote-style=STÝL   Info'da dipnotlarýn çýktýsýný STÝL'e göre "
+ "yazar:\n"
+ "                                 kendi düðümlerine koymak için `separate';\n"
+ "                                 tanýmlandýklarý düðümün sonuna koymak için\n"
+ "                                 `end' (öntanýmlý).\n"
+ "      --paragraph-indent=DEG   Info paragraflarýný DEG boþluk girintiler "
+ "(öntanýmlý %d).\n"
+ "                                Eðer DEG `none' ise girintilemez; eðer DEG\n"
+ "                                `asis' ise mevcut girintiyi korur.\n"
+ "      --spilt-size=NUM        Info dosyalarýný NUM boyutuna böler (öntanýmlý "
+ "%d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "HTML seçenekleri:\n"
+ "      --css-include=DOSYA        DOSYA'yý HTML <style> çýktýsýnda içerir;\n"
+ "                                   eðer DOSYA - ise stdin'i okur.\n"
+ "      --css-ref=URL           bir CSS dosyasýna baþvuru oluþturur.\n"
+ "      --internal-links=DOSYA   DOSYA içinde iç linklerin listesini üretir.\n"
+ "      --transliterate-file-names\n"
+ "                              dosya isimlerini ASCII alfabesine dönüþtürerek "
+ "üretir.\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "XML ve Docbook için seçenekler:\n"
+ "      --output-indent=DEÐER        XML elementlerini DEÐER kadar boþluk "
+ "girintilendir (öntanýmlý %d).\n"
+ "                                     eðer DEÐER 0 ise yok sayýlabilen beyaz "
+ "boþluk silinir.\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "Girdi dosyasý seçenekleri:\n"
+ "      --commands-in-node-names   düðüm adlarýnda @ komutlarýna izin verir.\n"
+ "  -D VAR                         VAR deðiþkenini, @set ile olduðu gibi "
+ "tanýmlar.\n"
+ "  -I DIR                         DIR'ý @include arama yolu sonuna ekler.\n"
+ "  -P DIR                         DIR'ý @include arama yolu baþýna ekler.\n"
+ "  -U VAR                         VAR deðiþkeninin tanýmýný, @clear ile "
+ "olduðu gibi geri alýr.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Girdide koþullu iþlem:\n"
+ "  --ifdocbook       Docbook oluþturulmuyorsa bile @ifdocbook\n"
+ "                      ve @docbook'u iþler.\n"
+ "  --ifhtml          HTML oluþturulmuyorsa bile @ifhtml ve @html'yi iþler.\n"
+ "  --ifinfo          Info oluþturulmuyorsa bile @ifinfo'yu iþler.\n"
+ "  --ifplaintext     Salt metin oluþturulmuyorsa bile @ifplaintext'i iþler.\n"
+ "  --iftex           @iftex ve @tex iþler; --no-split anlamýna gelir.\n"
+ "  --ifxml           @ifxml ve @xml'i iþler\n"
+ "  --no-ifdocbook    @ifdocbook ve @docbook metnini iþlemez.\n"
+ "  --no-ifhtml       @ifhtml ve @html metin iþlemez.\n"
+ "  --no-ifinfo       @ifinfo metin iþlemez.\n"
+ "  --no-ifplaintext  @ifplintext metin iþlemez.\n"
+ "  --no-iftex        @iftex ve @tex metin iþlemez.\n"
+ "  --no-ifxml        @ifxml ve @xml metin iþlemez.\n"
+ "\n"
+ "  Ayrýca --no-ifFORMAT seçenekleri için ifnotFORMAT metnini iþler.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  @if... koþullularýnýn öntanýmlýlarý çýktý formatýna baðlýdýr:\n"
+ "  eðer HTML oluþturuluyorsa, --ifhtml açýk, diðerleri kapalýdýr;\n"
+ "  eðer Info oluþturuluyorsa, --ifinfo açýk, diðerleri kapalýdýr;\n"
+ "  eðer salt metin oluþturuluyorsa, --ifplaintext açýk, diðerleri kapalýdýr;\n"
+ "  eðer XML oluþturuluyorsa, --ifxml açýk, deiðerleri kapalýdýr.\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Örnekler:\n"
+ "  makeinfo foo.texi                     foo'nun @setfilename'ine Info yazar\n"
+ "  makeinfo --html foo.texi              @setfilename'e HTML yazar\n"
+ "  makeinfo --xml foo.texi               @setfilename'e XML yazar\n"
+ "  makeinfo --docbook foo.texi           @setfilename'e DocBook XML yazar\n"
+ "  makeinfo --no-headers foo.texi        standart çýktýya salt metin yazar\n"
+ "\n"
+ "  makeinfo --html --no-headres foo.texi düðüm çizgisiz, menüsüz html yazar\n"
+ "  makeinfo --number-sections foo.texi   numaralanmýþ kýsýmlarý olan Info "
+ "yazar\n"
+ "  makeinfo --no-split foo.texi          ne büyüklükte olursa olsun tek Info "
+ "dosyasý yazar\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: Tanýnamayan TEXINFO_OUTPUT_FORMAT deðeri `%s' yok sayýlýyor.\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%1$s: %2$s arg sayýsal olmalýdýr, `%3$s' deðil.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s:makro geniþleme çýktýsý `%s' açýlamadý"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: ikinci makro geniþleme çýktýsý yok sayýlýyor `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: iç linkler çýktýsý açýlamadý `%s'"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: ikinci iç linkler çýktýsý yok sayýlýyor `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%1$s: --paragraph-indent arg. sayýsal/`none'/`asis' olmalýdýr, `%2$s' "
+ "deðil.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%1$s: --footnote-style arg. `separate' ya da `end' olmalýdýr, `%2$s' deðil.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: dosya argümaný eksik.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Çok satýrlý komut %c%s uygunsuz kullanýldý"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "`%s' gerekir"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "`%1$s' dizini oluþturulamýyor: %2$s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "`%2$s' içinde `%1$s' yok"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Makro geniþlemesini, Info çýktýsý da oraya gittiðinden, stdout'a "
+ "atlatýyor.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "`%3$s''den %1$s dosya `%2$s' yapýlýyor.\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%1$s: Makro çýktý dosyasý `%2$s' hatalardan dolayý siliniyor; korumak için --"
+ "force kullanýnýz.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%1$s: Çýktý dosyasý `%2$s' hatalardan dolayý siliniyor; korumak için --force "
+ "kullanýnýz.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Ýç linkler çýktý dosyasý `%s' hatalardan dolayý siliniyor; korumak için "
+ "--force kullanýnýz.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Bilinmeyen komut `%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "@%s'e argüman olarak bir komut vermek için {} kullanýn"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s küme parantezi bekledi"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "Eþleþmemiþ }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "ÝSÝMSÝZ!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s eksik kapama }"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image dosyasý `%1$s' (HTML için) okunamýyor: %2$s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "`%s' adýnda dosya yok"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image dosyasý `%1$s' (metin için) okunamýyor: %2$s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image eksik dosyaadý argümaný"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "tanýmlanmamýþ bayrak: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "(`%s' için deðer yok)"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s bir isim gerektirir"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Eþleþen @end %s'den önce dosya sonuna ulaþýldý"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "`%.40s...' geniþleme için çok uzun; geniþletilmedi"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "@multitable þablonunda eksik }"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "@multitable'dan sonraki baþýboþ metin `%s' yoksayýlýyor"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "Çok-tablolu öðede, çok fazla sütun (maks %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[beklenmeyen] çok-tabloluda sütun #%d seçilemiyor"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "çok-tablolunun dýþýndaki @tab yoksayýlýyor"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "**Son satýrdan çok-sütunlu çýktý:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* sütun #%d: çýktý = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "Düðüm `%s' daha önce satýr %d'de tanýmlandý"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Düðüm %s biçimleniyor...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "Düðüm `%s' bir bölümleme komutu gerektirir (ör: %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "`%c%s' komutu için bir düðüm adý belirtilmedi"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Çýpa `%1$s' ve düðüm `%2$s' ayný dosya adýna yönlendiriyor"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "Bu @anchor komutu yoksayýldý; buraya yönelik baþvurular çalýþmayacak"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "Bu çýpayý yeniden adlandýrýn ya da `--no-split' seçeneðini kullanýn"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Bölünmüþ-HTML dosyasýnýn sonunda beklenmeyen dizge `%s'"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "`%1$s' ve `%2$s' çýpalarý ayný dosya adýna yönlendiriyor"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "@anchor komutu yoksayýldý; buraya yönelik baþvurular çalýþmayacak"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr "%s baþvuru mevcut olmayan düðüme `%s' (yanlýþ bölümleme nedeniyle?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "Düðüm `%s''in sonraki alaný þuraya iþaret etmiyor (yanlýþ bölümleme "
+ "nedeniyle?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "Bu düðüm (%s) hatalý Önceki'ne sahip"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "Düðüm `%s''in önceki alaný þuraya iþaret etmiyor"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "Bu düðüm (%s) hatalý Sonraki'ne sahip"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "`%s''in Yukarý alaný yok (yanlýþ bölümleme nedeniyle?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "Düðüm `%s', Yukarý hedefi olmasýna karþýn, `%s' için eksik menü öðesi "
+ "içeriyor"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "baþvurulmamýþ düðüm `%s'"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "%s siliniyor\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "`%s' dosyasý silinemiyor: %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Ek %c "
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Dahili hata (search_sectioning) `%s'!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Dahili hata (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s kullanýmdan kalkmýþ; yerine %c%s kullanýn"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "%cüst'lü düðüm bir bölüm olarak zaten var"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Ýþte %cüst düðüm"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%cüst, %cdüðümden önce kullanýldý, %s'e öntanýmlanýyor"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image dosyasý `%1$s' okunamýyor: %2$s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr "@multitable'ýn son öðesi @headitem geçersiz Docbook belgeleri üretiyor"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "kapalý"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "açýk"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "Çapraz baþvuru kurulacak ilk argüman boþ olmayabilir"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr "`%s' deHTML çapraz baþvurusu için boþ dosya adý"
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr "`.' ya da `,'ararken dosya sonuna ulaþýldý"
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "`.' ya da `,' @%s'i izlemelidir, `%c'yi deðil"
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "parantez içindeki çapraz baþvurular için @pxref kullanýnýz"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "@inforef'e ilk argüman boþ olmayabilir"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "bu yardýmý görüntüler ve çýkar"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "çýktýyý DOSYA'ya gönderir"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "sürüm bilgisini görüntüler ve çýkar"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "Kullaným: %s [SEÇENEK]... DOSYA...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Her TeX çýktý DOSYAsý için sýralanmýþ bir indeks oluþturur.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ "Genellikle DOSYA... bir `foo.texi' belgesi için `foo.%c%c' olarak "
+ "belirtilir.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "Seçenekler:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "%s'i yeniden açmada hata"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: bir texinfo indeks dosyasý deðil"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "%s'de sayfa numarasý yok"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "%s girdisi, ikincil isimli bir girdiyi takip ediyor"
Files texinfo-4.12/po/vi.gmo and texinfo-4.13/po/vi.gmo differ
diff -Nrc2 texinfo-4.12/po/vi.po texinfo-4.13/po/vi.po
*** texinfo-4.12/po/vi.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/vi.po	Thu Sep 18 11:38:33 2008
***************
*** 0 ****
--- 1,3252 ----
+ # Vietnamese translation for TexInfo.
+ # Copyright Â© 2008 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the texinfo package.
+ # Clytie Siddall <clytie@riverland.net.au>, 2006-2008.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.12.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2008-09-08 22:02+0930\n"
+ "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+ "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=1; plural=0;\n"
+ "X-Generator: LocFactoryEditor 1.7b3\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr "Lá»—i há»‡ thá»‘ng khÃ´ng rÃµ"
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: tÃ¹y chá»�n Â« %s Â» lÃ  mÆ¡ há»“\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: tÃ¹y chá»�n Â« --%s Â» khÃ´ng cho phÃ©p Ä‘á»‘i sá»‘\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: tÃ¹y chá»�n Â« %c%s Â» khÃ´ng cho phÃ©p Ä‘á»‘i sá»‘\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: tÃ¹y chá»�n Â« %s Â» cáº§n Ä‘áº¿n Ä‘á»‘i sá»‘\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: khÃ´ng nháº­n ra tÃ¹y chá»�n Â« --%s Â»\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: khÃ´ng nháº­n ra tÃ¹y chá»�n Â« %c%s Â»\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: khÃ´ng cho phÃ©p tÃ¹y chá»�n Â« -- %c Â»\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: tÃ¹y chá»�n khÃ´ng há»£p lá»‡ Â« -- %c Â»\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: tÃ¹y chá»�n cáº§n Ä‘áº¿n Ä‘á»‘i sá»‘ Â« -- %c Â»\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: tÃ¹y chá»�n Â« -W %s Â» lÃ  mÆ¡ há»“\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: tÃ¹y chá»�n Â« -W %s Â» khÃ´ng cho phÃ©p Ä‘á»‘i sá»‘\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "háº¿t bá»™ nhá»› hoÃ n toÃ n"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "Tiáº¿p má»™t kÃ½ tá»±"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "LÃ¹i má»™t kÃ½ tá»±"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "Vá»� Ä‘áº§u dÃ²ng nÃ y"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "Tá»›i cuá»‘i dÃ²ng nÃ y"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "Tiáº¿p má»™t tá»«"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "LÃ¹i má»™t tá»«"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "XÃ³a kÃ½ tá»± dÆ°á»›i con trá»�"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "XÃ³a kÃ½ tá»± á»Ÿ sau con trá»�"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "Thao tÃ¡c thÃ´i hay thoÃ¡t"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "Cháº¥p nháº­n (hoáº·c buá»™c káº¿t thÃºc) dÃ²ng nÃ y"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "ChÃ¨n kÃ½ tá»± káº¿ tiáº¿p Ä‘Ãºng nguyÃªn vÄƒn"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "ChÃ¨n kÃ½ tá»± nÃ y"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "ChÃ¨n kÃ½ tá»± TAB"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "Ä�á»•i chá»— hai kÃ½ tá»± táº¡i Ä‘iá»ƒm"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "Láº¥y láº¡i ná»™i dung cá»§a thao tÃ¡c giáº¿t cuá»‘i cÃ¹ng"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "VÃ²ng giáº¿t rá»—ng"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "Láº¥y láº¡i má»™t thao tÃ¡c giáº¿t trÆ°á»›c"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "Giáº¿t Ä‘áº¿n cuá»‘i dÃ²ng"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "Giáº¿t vá»� Ä‘áº§u dÃ²ng"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "Giáº¿t tá»« náº±m sau con trá»�"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "Giáº¿t tá»« náº±m trÆ°á»›c con trá»�"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "KhÃ´ng cÃ³ sá»± gÃµ xong"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "ChÆ°a xong"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "Liá»‡t kÃª cÃ¡c sá»± gÃµ xong cÃ³ thá»ƒ"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "Sá»± gÃµ xong duy nháº¥t"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "Má»™t sá»± gÃµ xong:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d sá»± gÃµ xong:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "ChÃ¨n sá»± gÃµ xong"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "Ä�ang xÃ¢y dá»±ng cÃ¡c sá»± gÃµ xong..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "Cuá»™n cá»­a sá»• gÃµ xong"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "KhÃ´ng thá»ƒ hiá»ƒn thá»‹ cÆ°á»›c chÃº"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr ""
+ "Hiá»ƒn thá»‹ cÃ¡c cÆ°á»›c chÃº liÃªn quan Ä‘áº¿n nÃºt thÃ´ng tin nÃ y trong cá»­a sá»• khÃ¡c"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "â”�â”�â”�CÆ°á»›c chÃºâ”�â”�â”�"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "Tra tÃ¬m chuá»—i trong chá»‰ má»¥c cho táº­p tin nÃ y"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "Ä�ang tÃ¬m má»¥c nháº­p chá»‰ má»¥c..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "KhÃ´ng tÃ¬m tháº¥y chá»‰ má»¥c."
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "Má»¥c nháº­p chá»‰ má»¥c: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr ""
+ "Tá»›i má»¥c chá»‰ má»¥c khá»›p káº¿ tiáº¿p tá»« lá»‡nh Â«[index-search]Â» (tÃ¬m kiáº¿m chá»‰ má»¥c) cuá»‘i "
+ "cÃ¹ng."
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "KhÃ´ng cÃ³ chuá»—i tÃ¬m kiáº¿m chá»‰ má»¥c trÆ°á»›c"
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "KhÃ´ng cÃ³ gÃ¬ trong chá»‰ má»¥c."
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "KhÃ´ng cá»� gÃ¬ trong chá»‰ má»¥c %s chá»©a Â« %s Â»."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "thÃªm "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "KHÃ”NG THá»‚ THáº¤Y Ä�Iá»€U NÃ€Y"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr ""
+ "TÃ¬m tháº¥y Â« %s Â» trong %s. (Â« \\[next-index-match] Â» thá»­ tÃ¬m Ä‘iá»�u káº¿ tiáº¿p.)"
+ 
+ # Type: text
+ # Description
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "Ä�ang quÃ©t cÃ¡c chá»‰ má»¥c cá»§a Â« %s Â»..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "KhÃ´ng cÃ³ táº­p tin thÃ´ng tin sáºµn sÃ ng chá»©a Â« %s Â» trong chá»‰ má»¥c ."
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr ""
+ "Grovel má»�i chá»‰ má»¥c cá»§a táº­p tin thÃ´ng tin (info) tÃ¬m chuá»—i vÃ  xÃ¢y dá»±ng trÃ¬nh "
+ "Ä‘Æ¡n"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "Chá»‰ má»¥c apropos: "
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* TrÃ¬nh Ä‘Æ¡n: nÃºt cÃ³ chá»‰ má»¥c chá»©a Â« %s Â»:\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "HÃ£y thá»­ lá»‡nh trá»£ giÃºp Â« --help Â» Ä‘á»ƒ xem thÃ´ng tin thÃªm.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ "TÃ¡c quyá»�n Â© %s Tá»• chá»©c Pháº§n má»�m Tá»± do.\n"
+ "Giáº¥y phÃ©p GPL pb3+: Giáº¥y phÃ©p CÃ´ng cá»™ng GNU phiÃªn báº£n 3 vÃ  sau:\n"
+ "<http://gnu.org/licenses/gpl.html>\n"
+ "Ä�Ã¢y lÃ  pháº§n má»�m tá»± do : báº¡n cÃ³ quyá»�n thay Ä‘á»•i vÃ  phÃ¡t hÃ nh láº¡i nÃ³.\n"
+ "KHÃ”NG CÃ“ Báº¢O HÃ€NH GÃŒ Cáº¢, vá»›i Ä‘iá»�u kiá»‡n Ä‘Æ°á»£c phÃ¡p luáº­t cho phÃ©p\n"
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "khÃ´ng tÃ¬m tháº¥y gÃ¬ trong chá»‰ má»¥c cho Â« %s Â»\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ "Sá»­ dá»¥ng: %s [TÃ™Y_CHá»ŒN]... [Má»¤C_TRÃŒNH_Ä�Æ N...]\n"
+ "\n"
+ "Ä�á»�c tÃ i liá»‡u hÆ°á»›ng dáº«n theo Ä‘á»‹nh dáº¡ng Info.\n"
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ "TÃ¹y chá»�n:\n"
+ "  -k, --apropos=CHUá»–I         tra cá»©u chuá»—i nÃ y trong má»�i chá»‰ má»¥c cá»§a má»�i sá»• "
+ "tay.\n"
+ "  -d, --directory=THÆ¯_Má»¤C          thÃªm thÆ° má»¥c nÃ y vÃ o Ä‘Æ°á»�ng dáº«n INFOPATH.\n"
+ "      --dribble=Táº¬P_TIN       lÆ°u cÃ¡c cÃº báº¥m phÃ­m vÃ o táº­p tin nÃ y.\n"
+ "  -f, --file=Táº¬P_TIN          ghi rÃµ táº­p tin Info cáº§n thÄƒm."
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ "  -h, --help                   hiá»ƒn thá»‹ trá»£ giÃºp nÃ y rá»“i thoÃ¡t.\n"
+ "      --index-search=CHUá»–I    Ä‘i tá»›i nÃºt Ä‘Æ°á»£c ngá»¥ Ã½ bá»Ÿi chuá»—i chá»‰ má»¥c nÃ y.\n"
+ "  -n, --node=TÃŠN_NÃšT          ghi rÃµ nÃºt trong táº­p tin Info Ä‘Æ°á»£c thÄƒm Ä‘áº§u "
+ "tiÃªn.\n"
+ "  -o, --output=Táº¬P_TIN        xuáº¥t cÃ¡c nÃºt Ä‘Ã£ chá»�n vÃ o táº­p tin nÃ y."
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ "  -R, --raw-escapes            xuáº¥t cÃ¡c kÃ½ tá»± thoÃ¡t ANSI Â« thÃ´ Â» (máº·c Ä‘á»‹nh)\n"
+ "      --no-raw-escapes        xuáº¥t cÃ¡c kÃ½ tá»± thoÃ¡t dáº¡ng vÄƒn báº£n nghÄ©a chá»¯.\n"
+ "      --restore=Táº¬P_TIN       Ä‘á»�c cÃ¡c cÃº báº¥m phÃ­m Ä‘áº§u tiÃªn tá»« táº­p tin nÃ y.\n"
+ "  -O, --show-options, --usage  \tÄ‘i tá»›i nÃºt chá»©a cÃ¡c tÃ¹y chá»�n dÃ²ng lá»‡nh."
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ "  -b, --speech-friendly        thÃ¢n thiá»‡n vá»›i thiáº¿t bá»‹ tá»•ng há»£p tiáº¿ng nÃ³i"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ "      --subnodes               xuáº¥t Ä‘á»‡ quy cÃ¡c má»¥c trÃ¬nh Ä‘Æ¡n.\n"
+ "      --vi-keys                dÃ¹ng cÃ¡c tá»• há»£p phÃ­m kiá»ƒu Vi vÃ  Less.\n"
+ "      --version                hiá»ƒn thá»‹ thÃ´ng tin phiÃªn báº£n rá»“i thoÃ¡t\n"
+ "  -w, --where, --location      in vá»‹ trÃ­ váº­t lÃ½ cá»§a táº­p tin Info."
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ "\n"
+ "Ä�á»‘i sá»‘ Ä‘áº§u tiÃªn khÃ´ng pháº£i tÃ¹y chá»�n, náº¿u cÃ³, lÃ  má»¥c trÃ¬nh Ä‘Æ¡n tá»« Ä‘Ã³ cáº§n báº¯t "
+ "Ä‘áº§u ;\n"
+ "cÃ³ tÃ¬m nÃ³ trong má»�i táº­p tin Â« dir Â» (thÆ° má»¥c) trÃªn Ä‘Æ°á»�ng dáº«n INFOPATH.\n"
+ "KhÃ´ng cÃ³ thÃ¬ Info trá»™n táº¥t cáº£ cÃ¡c táº­p tin Â« dir Â» rá»“i hiá»ƒn thá»‹ káº¿t quáº£.\n"
+ "Báº¥t cá»© Ä‘á»‘i sá»‘ cÃ²n láº¡i nÃ o Ä‘Æ°á»£c xá»­ lÃ½ nhÆ° tÃªn cá»§a má»¥c trÃ¬nh Ä‘Æ¡n\n"
+ "tÆ°Æ¡ng Ä‘á»‘i vá»›i nÃºt Ä‘áº§u tiÃªn Ä‘Æ°á»£c thÄƒm."
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ "\n"
+ "Ä�á»ƒ xem báº£n tÃ³m táº¯t cÃ¡c tá»• há»£p phÃ­m, hÃ£y gÃµ Â« h Â» bÃªn trong Info."
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ "\n"
+ "VÃ­ dá»¥ :\n"
+ "  info                       hiá»ƒn thá»‹ trÃ¬nh Ä‘Æ¡n thÆ° má»¥c cáº¥p Ä‘áº§u\n"
+ "  info info\t\t\thiá»ƒn thá»‹ sá»• tay chung cho trÃ¬nh Ä‘á»�c Info\n"
+ "  info info-stnd\t\thiá»ƒn thá»‹ sá»• tay Ä‘áº·c trÆ°ng cho trÃ¬nh Info nÃ y\n"
+ "  info emacs                 báº¯t Ä‘áº§u á»Ÿ nÃºt emacs tá»« thÆ° má»¥c cáº¥p Ä‘áº§u\n"
+ "  info emacs buffers         báº¯t Ä‘áº§u á»Ÿ nÃºt bá»™ Ä‘á»‡m bÃªn trong sá»• tay emacs\n"
+ "  info --show-options emacs  báº¯t Ä‘áº§u á»Ÿ nÃºt chá»©a cÃ¡c tÃ¹y chá»�n dÃ²ng lá»‡nh cá»§a "
+ "emacs\n"
+ "  info --subnodes -o out.txt emacs  Ä‘á»• toÃ n bá»™ sá»• tay vÃ o táº­p tin Â« out.txt "
+ "Â»\n"
+ "  info -f ./foo.info         hiá»ƒn thá»‹ táº­p tin Â« ./foo.info Â», khÃ´ng tÃ¬m kiáº¿m "
+ "thÆ° má»¥c"
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "HÃ£y thÃ´ng bÃ¡o lá»—i cho <bug-texinfo@gnu.org>,\n"
+ "vÃ  gá»­i cÃ¢u há»�i chung, tháº£o luáº­n v.v. cho <help-texinfo@gnu.org>.\n"
+ "Trang chá»§ texinfo: <http://www.gnu.org/software/texinfo/>."
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "KhÃ´ng tÃ¬m tháº¥y nÃºt thÃ´ng tin Â« %s Â»."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "KhÃ´ng tÃ¬m tháº¥y nÃºt thÃ´ng tin Â« (%s)%s Â»."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "KhÃ´ng tÃ¬m tháº¥y cá»­a sá»•."
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "Ä�iá»ƒm khÃ´ng xuáº¥t hiá»‡n bÃªn trong cÃ¡i nÃºt thÃ´ng tin cá»§a cá»­a sá»• nÃ y."
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "KhÃ´ng thá»ƒ xÃ³a cá»­a sá»• cuá»‘i cÃ¹ng."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "KhÃ´ng cÃ³ trÃ¬nh Ä‘Æ¡n trong nÃºt thÃ´ng tin nÃ y."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "KhÃ´ng cÃ³ cÆ°á»›c chÃº trong nÃºt thÃ´ng tin nÃ y."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "KhÃ´ng cÃ³ tham chiáº¿u chÃ©o trong nÃºt thÃ´ng tin nÃ y."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "KhÃ´ng cÃ³ con trá»� Â« %s Â» cho nÃºt thÃ´ng tin nÃ y."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "KhÃ´ng nháº­n ra lá»‡nh Info Â« %c Â»: hÃ£y thá»­ lá»‡nh Â« ? Â» Ä‘á»ƒ xem trá»£ giÃºp."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "Thiáº¿t bá»‹ cuá»‘i kiá»ƒu Â« %s Â» khÃ´ng Ä‘á»§ khÃ©o Ä‘á»ƒ cháº¡y Info."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "Báº¡n á»Ÿ trang cuá»‘i cÃ¹ng cá»§a nÃºt thÃ´ng tin nÃ y."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "Báº¡n á»Ÿ trang Ä‘áº§u tiÃªn cá»§a nÃºt thÃ´ng tin nÃ y."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "Chá»‰ má»™t cá»­a sá»•."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "Cá»­a sá»• káº¿t quáº£ quÃ¡ nhá»�."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "KhÃ´ng Ä‘á»§ chá»— cho cá»­a sá»• trá»£ giÃºp: hÃ£y xÃ³a má»™t cá»­a sá»•."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr "PhÃ­m lá»‡nh Info cÆ¡ báº£n\n"
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  Ä�Ã³ng cá»­a sá»• trá»£ giÃºp nÃ y.\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  ThoÃ¡t hoÃ n toÃ n khá»Ÿi info (_thoÃ¡t_).\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr ""
+ "\\%-10[get-info-help-node]  gá»�i trá»£ lÃ½ hÆ°á»›ng dáº«n Info.\n"
+ "\t\t\t(_láº¥y nÃºt trá»£ giÃºp Info_)\n"
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  Ä�i lÃªn má»™t dÃ²ng.\n"
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  Ä�i xuá»‘ng má»™t dÃ²ng.\n"
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  Cuá»™n lÃ¹i 1 mÃ n hÃ¬nh.\n"
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  Cuá»™n tá»›i 1 mÃ n hÃ¬nh.\n"
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  Vá»� Ä‘áº§u cá»§a nÃºt nÃ y (_Ä‘áº§u cá»§a nÃºt_).\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  Tá»›i cuá»‘i cá»§a nÃºt nÃ y (_cuá»‘i cá»§a nÃºt_).\n"
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "\\%-10[move-to-next-xref]  Nháº£y tá»›i siÃªu liÃªn káº¿t káº¿ tiáº¿p.\n"
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr ""
+ "\\%-10[select-reference-this-line]  Theo siÃªu liÃªn káº¿t náº±m dÆ°á»›i con trá»�.\n"
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr ""
+ "\\%-10[history-node]  Trá»Ÿ vá»� nÃºt cuá»‘i cÃ¹ng Ä‘Æ°á»£c xem trong cá»­a sá»• nÃ y.\n"
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[global-prev-node]  Ä�i vá»� nÃºt trÆ°á»›c trong tÃ i liá»‡u.\n"
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[global-next-node]  Ä�i tá»›i nÃºt káº¿ tiáº¿p trong tÃ i liá»‡u.\n"
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  Ä�i vá»� nÃºt trÆ°á»›c á»Ÿ cáº¥p nÃ y.\n"
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  Ä�i tá»›i nÃºt káº¿ tiáº¿p á»Ÿ cáº¥p nÃ y.\n"
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  Ä�i lÃªn má»™t cáº¥p.\n"
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[top-node]  Ä�i tá»›i nÃºt Ä‘áº§u cá»§a tÃ i liá»‡u nÃ y.\n"
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[dir-node]  Ä�i tá»›i nÃºt Â« directory Â» (thÆ° má»¥c) chÃ­nh.\n"
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr ""
+ "1...9       Chá»�n cáº£ má»¥c thá»© nháº¥t Ä‘áº¿n thá»© chÃ­n trong trÃ¬nh Ä‘Æ¡n cá»§a nÃºt nÃ y.\n"
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  Chá»�n má»¥c cuá»‘i trong trÃ¬nh Ä‘Æ¡n cá»§a nÃºt nÃ y.\n"
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "\\%-10[menu-item]  Chá»�n má»™t má»¥c trÃ¬nh Ä‘Æ¡n xÃ¡c Ä‘á»‹nh theo tÃªn.\n"
+ 
+ #: info/infodoc.c:73
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  Theo má»™t tham chiáº¿u chÃ©o xÃ¡c Ä‘á»‹nh theo tÃªn.\n"
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "\\%-10[goto-node]  Ä�i tá»›i má»™t nÃºt xÃ¡c Ä‘á»‹nh theo tÃªn.\n"
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "\\%-10[search]  Ä�i tá»›i tÃ¬m má»™t chuá»—i Ä‘Ã£ ghi rÃµ.\n"
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[search-previous]  TÃ¬m láº§n gáº·p trÆ°á»›c.\n"
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "\\%-10[search-next]  TÃ¬m láº§n gáº·p káº¿ tiáº¿p.\n"
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  Trong chá»‰ má»¥c, tÃ¬m má»™t chuá»—i Ä‘Ã£ ghi rÃµ,\n"
+ "vÃ  chá»�n nÃºt Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi má»¥c nháº­p Ä‘áº§u tiÃªn Ä‘Æ°á»£c tÃ¬m.\n"
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "\\%-10[abort-key]  Há»§y bá»� thao tÃ¡c Ä‘ang cháº¡y.\n"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Lá»‡nh CÆ¡ báº£n trong Cá»­a sá»• Info\n"
+ "â”�â”�â”�â”�â”�â”�â”�â”�â”�â”�â”�â”�â”�\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  ThoÃ¡t khá»�i trá»£ giÃºp nÃ y.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  ThoÃ¡t hoÃ n toÃ n Info.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  Gá»�i trá»£ lÃ½ hÆ°á»›ng dáº«n Info.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  Tá»›i nÃºt Â« káº¿ Â» cá»§a nÃºt nÃ y.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  Vá»� nÃºt Â« lÃ¹i Â» cá»§a nÃºt nÃ y.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  Chuyá»ƒn Â« lÃªn Â» tá»« nÃºt nÃ y.\n"
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "  %-10s  Chá»�n má»™t má»¥c trÃ¬nh Ä‘Æ¡n xÃ¡c Ä‘á»‹nh theo tÃªn.\n"
+ "Viá»‡c chá»�n má»™t má»¥c trÃ¬nh Ä‘Æ¡n thÃ¬ gÃ¢y ra chá»�n má»™t nÃºt khÃ¡c.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  Theo má»™t tham chiáº¿u chÃ©o. Ä�á»�c tÃªn tham chiáº¿u.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  Tá»›i nÃºt cuá»‘i hiá»ƒn thá»‹ trong cá»­a sá»• nÃ y.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  Nháº£y tá»›i liÃªn káº¿t siÃªu vÄƒn báº£n káº¿ tiáº¿p bÃªn trong nÃºt nÃ y.\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  Theo liÃªn káº¿t siÃªu vÄƒn báº£n náº±m dÆ°á»›i con trá»�.\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  Tá»›i nÃºt Â« thÆ° má»¥c Â». Báº±ng Â« g (THÆ¯_Má»¤C) Â».\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  Tá»›i nÃºt Ä�áº§u. Báº±ng Â« g TrÃªn Â».\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "Di chuyá»ƒn bÃªn trong nÃºt thÃ´ng tin:\n"
+ "â”�â”�â”�â”�â”�â”�â”�\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  Cuá»™n tá»›i 1 trang.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  Cuá»™n lÃ¹i 1 trang.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  Vá»� Ä‘áº§u nÃºt nÃ y.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  Tá»›i cuá»‘i nÃºt nÃ y.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  Cuá»™n tá»›i 1 dÃ²ng.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  Cuá»™n lÃ¹i 1 dÃ²ng.\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "Lá»‡nh khÃ¡c:\n"
+ "â”�â”�â”�â”�\n"
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  Chá»�n cáº£ má»¥c thá»© nháº¥t Ä‘áº¿n thá»© chÃ­n trong trÃ¬nh Ä‘Æ¡n cá»§a nÃºt.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  Chá»�n má»¥c cuá»‘i trong trÃ¬nh Ä‘Æ¡n cá»§a nÃºt.\n"
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "  %-10s  TÃ¬m kiáº¿m chuá»—i Ä‘Ã£ xÃ¡c Ä‘á»‹nh trong cÃ¡c má»¥c chá»‰ má»¥c\n"
+ "\tcá»§a nÃºt Info nÃ y, cÅ©ng chá»�n nÃºt tá»›i Ä‘Ã³ má»¥c Ä‘áº§u Ä‘Ã£ tÃ¬m cÃ³ chá»‰.\n"
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "  %-10s  Ä�i tá»›i nÃºt xÃ¡c Ä‘á»‹nh theo tÃªn.\n"
+ "Báº¡n cÅ©ng cÃ³ thá»ƒ ghi rÃµ tÃªn táº­p tin, v.d. Â« (TÃŠN_Táº¬P_TIN)TÃŠN_NÃšT Â».\n"
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  TÃ¬m kiáº¿m tá»›i chuá»—i Ä‘Ã£ xÃ¡c Ä‘á»‹nh trong cÃ¡c má»¥c chá»‰ má»¥c\n"
+ "\tcá»§a nÃºt Info nÃ y, cÅ©ng chá»�n nÃºt trong Ä‘Ã³ tÃ¬m má»¥c tÆ°Æ¡ng á»©ng káº¿ tiáº¿p.\n"
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s  Ä�i ngÆ°á»£c tÃ¬m má»™t chuá»—i Ä‘Ã£ ghi rÃµ,\n"
+ "vÃ  chá»�n nÃºt á»Ÿ Ä‘Ã³ gáº·p láº§n tÃ¬m káº¿ tiáº¿p.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "Ä�Æ°á»�ng dáº«n tÃ¬m kiáº¿m hiá»‡n thá»�i:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "CÃ¡c lá»‡nh sáºµn sÃ ng trong cá»­a sá»• Info:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "CÃ¡c lá»‡nh sáºµn sÃ ng trong vÃ¹ng pháº£n há»“i:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "Theo Ä‘Ã¢y cÃ³ nhá»¯ng lá»‡nh cÃ³ thá»ƒ Ä‘Æ°á»£c gá»�i chá»‰ báº±ng %s:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr "Theo Ä‘Ã¢y cÃ³ nhá»¯ng lá»‡nh khÃ´ng thá»ƒ gá»�i:\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Hiá»ƒn thá»‹ thÃ´ng Ä‘iá»‡p trá»£ giÃºp"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "Xem nÃºt Info Â« (info)Help Â»"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "In ra tÃ i liá»‡u hÆ°á»›ng dáº«n cho KHÃ“A"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "Diá»…n táº£ khoÃ¡: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ChÆ°a Ä‘á»‹nh nghÄ©a ESC %s."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "ChÆ°a Ä‘á»‹nh nghÄ©a %s."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s Ä‘Ã£ Ä‘Æ°á»£c Ä‘á»‹nh nghÄ©a thÃ nh %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Hiá»ƒn thá»‹ chuá»—i cáº§n gÃµ Ä‘á»ƒ thá»±c hiá»‡n lá»‡nh Ä‘Ã£ cho"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "Lá»‡nh á»Ÿ Ä‘Ã¢u : "
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "Â« %s Â» khÃ´ng pháº£i trÃªn khoÃ¡ nÃ o"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s cÃ³ thá»ƒ Ä‘Æ°á»£c gá»�i chá»‰ báº±ng %s."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s cÃ³ thá»ƒ Ä‘Æ°á»£c gá»�i báº±ng %s."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "KhÃ´ng cÃ³ hÃ m tÃªn Â« %s Â»"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "Chá»�n cÃ¡c nÃºt khÃ¡c:\n"
+ "â”�â”�â”�â”�â”�â”�â”�\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "cÃ³ sá»‘ Ä‘á»‘i sá»‘ khÃ´ng Ä‘Ãºng"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "khÃ´ng thá»ƒ má»Ÿ táº­p tin nháº­p vÃ o Â« %s Â»"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "khÃ´ng thá»ƒ táº¡o táº­p tin xuáº¥t Â« %s Â»"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "gáº·p lá»—i khi ghi vÃ o Â« %s Â»"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "gáº·p lá»—i khi Ä‘Ã³ng táº­p tin xuáº¥t Â« %s Â»"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "chuá»—i phÃ­m quÃ¡ dÃ i"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "thiáº¿u chuá»—i phÃ­m"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "khÃ´ng cho phÃ©p kÃ½ tá»± vÃ´ giÃ¡ trá»‹ (\\000)"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "khÃ´ng cho phÃ©p kÃ½ tá»± vÃ´ giÃ¡ trá»‹ (^%c)"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "thiáº¿u tÃªn hÃ nh Ä‘á»™ng"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "pháº§n quÃ¡ dÃ i"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "hÃ nh Ä‘á»™ng láº¡ Â« %s Â»"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "tÃªn hÃ nh Ä‘á»™ng quÃ¡ dÃ i"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "cÃ³ kÃ½ tá»± thÃªm náº±m sau hÃ nh Ä‘á»™ng Â« %s Â»"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "thiáº¿u tÃªn biáº¿n"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "thiáº¿u kÃ½ tá»± báº±ng Â« = Â» ngay sau tÃªn biáº¿n"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "tÃªn biáº¿n quÃ¡ dÃ i"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "giÃ¡ trá»‹ quÃ¡ dÃ i"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "Â« %s Â», dÃ²ng %u: "
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "CÃ¡ch sá»­ dá»¥ng: %s [TÃ™Y_CHá»ŒN]... [TTN]\n"
+ "\n"
+ "[TTN\t\tTáº­p Tin Nháº­p vÃ o]\n"
+ "\n"
+ "BiÃªn dá»‹ch táº­p tin mÃ£ nguá»“n infokey vÃ o táº­p tin infokey.  Ä�á»�c táº­p tin nháº­p "
+ "vÃ o\n"
+ "\t(máº·c Ä‘á»‹nh lÃ  Â« $HOME/.infokey Â») vÃ  ghi táº­p tin khoÃ¡ Ä‘Ã£ biÃªn dá»‹ch ra\n"
+ "\t(theo máº·c Ä‘á»‹nh) Â« $HOME/.info Â».\n"
+ "\n"
+ "TÃ¹y chá»�n:\n"
+ "  --output Táº¬P_TIN      \txuáº¥t ra táº­p tin nÃ y, thay cho Â« $HOME/.info Â»\n"
+ "  --help               \t\thiá»ƒn thá»‹ trá»£ giÃºp nÃ y rá»“i thoÃ¡t.\n"
+ "  --version            \t\thiá»ƒn thá»‹ thÃ´ng tin phiÃªn báº£n rá»“i thoÃ¡t.\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "Ä�ang bá»� qua táº­p tin infokey khÃ´ng há»£p lá»‡ Â« %s Â»: quÃ¡ nhá»�"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "Ä�ang bá»� qua táº­p tin infokey khÃ´ng há»£p lá»‡ Â« %s Â»: quÃ¡ lá»›n"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "Gáº·p lá»—i khi Ä‘á»�c táº­p tin infokey Â« %sÂ»: Ä‘á»�c ngáº¯n"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ "Táº­p tin infokey Â« %s Â» khÃ´ng há»£p lá»‡ (sá»‘ ma thuáº­t sai): hÃ£y cháº¡y infokey Ä‘á»ƒ "
+ "cáº­p nháº­t nÃ³"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "Táº­p tin infokey Â« %s Â» cá»§a báº¡n quÃ¡ cÅ© : hÃ£y cháº¡y infokey Ä‘á»ƒ cáº­p nháº­t nÃ³"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ "Táº­p tin infokey Â« %s Â» khÃ´ng há»£p lá»‡ (Ä‘á»™ dÃ i pháº§n sai): hÃ£y cháº¡y infokey Ä‘á»ƒ "
+ "cáº­p nháº­t nÃ³"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ "Táº­p tin infokey Â« %s Â» khÃ´ng há»£p lá»‡ (mÃ£ pháº§n sai): hÃ£y cháº¡y infokey Ä‘á»ƒ cáº­p "
+ "nháº­t nÃ³"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "Gáº·p dá»¯ liá»‡u sai trong táº­p tin infokey nÃªn bá»� qua má»™t sá»‘ tá»• há»£p phÃ­m"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ "Gáº·p dá»¯ liá»‡u sai trong táº­p tin infokey nÃªn bá»� qua má»™t sá»‘ cÃ¡ch thiáº¿t láº­p Â« var Â»"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Ä�á»�c tÃªn lá»‡nh info vÃ  diá»…n táº£ nÃ³"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "Diá»…n táº£ lá»‡nh: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "Ä�á»�c tÃªn lá»‡nh trong vÃ¹ng pháº£n há»“i vÃ  thá»±c hiá»‡n nÃ³"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "KhÃ´ng thá»ƒ thá»±c hiá»‡n lá»‡nh Â« vÃ¹ng pháº£n há»“i Â» á»Ÿ Ä‘Ã¢y."
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "Lá»‡nh chÆ°a xÃ¡c Ä‘á»‹nh: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "Láº­p Ä‘á»™ cao cá»§a cá»­a sá»• hiá»ƒn thá»‹"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "Láº­p Ä‘á»™ cao cá»§a mÃ n hÃ¬nh thÃ nh (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   CÃ¡c táº­p tin mÃ£ nguá»“n Ä‘Ã£ grovel Ä‘á»ƒ táº¡o táº­p tin nÃ y bao gá»“m:\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "KhÃ´ng thá»ƒ thao tÃ¡c táº­p tin %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* TrÃ¬nh Ä‘Æ¡n:\n"
+ "  (Táº­p tin)NÃºt                         DÃ²ng     Cá»¡       Chá»©a táº­p tin\n"
+ "  â”�â”�â”�â”�â”�\t\t\t\tâ”�â”�â”�\tâ”�        â”�â”�â”�â”�â”�"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "Ä�Ã¢y lÃ  trÃ¬nh Ä‘Æ¡n cÃ¡c nÃºt báº¡n vá»«a xem.\n"
+ "HÃ£y chá»�n má»™t nÃºt trong trÃ¬nh Ä‘Æ¡n nÃ y,\n"
+ "hoáº·c dÃ¹ng Â« \\[history-node] Â» (lÆ°á»£c sá»­ nÃºt) trong cá»­a sá»• khÃ¡c.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "Táº¡o cá»­a sá»• chá»©a trÃ¬nh Ä‘Æ¡n chá»©a cÃ¡c nÃºt xem hiá»‡n thá»�i"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "Chá»�n nÃºt Ä‘Ã£ xem trÆ°á»›c, trong cá»­a sá»• hiá»‡n rÃµ"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "Chá»�n nÃºt Ä‘Ã£ xem: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "Tham chiáº¿u Ä‘Ã£ biáº¿n máº­t. (%s)"
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr "Lá»—i biá»ƒu thá»©c chÃ­nh quy: %s"
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "ChÃºc má»«ng báº¡n dÃ¹ng trÃ¬nh Info phiÃªn báº£n %s. HÃ£y gÃµ :\n"
+ "\t \\[get-help-window]\t\tÄ‘á»ƒ xem trá»£ giÃºp,\n"
+ "\t\\[menu-item] \t\t\tcho má»¥c trÃ¬nh Ä‘Æ¡n."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "Tá»›i dÃ²ng káº¿"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "Vá»� dÃ²ng trÆ°á»›c"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "Tá»›i cuá»‘i dÃ²ng"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "Vá»� Ä‘áº§u dÃ²ng"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "Káº¿"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "KhÃ´ng cÃ³ nÃºt ná»¯a trong tÃ i liá»‡u nÃ y."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "KhÃ´ng cÃ³ Â« LÃ¹i Â» cho nÃºt nÃ y"
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "KhÃ´ng cÃ³ Â« LÃ¹i Â» hay Â« LÃªn Â» cho nÃºt nÃ y trong tÃ i liá»‡u nÃ y."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "Chuyá»ƒn tá»›i hay xuá»‘ng qua cáº¥u trÃºc nÃºt"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "Chuyá»ƒn lÃ¹i hay lÃªn qua cáº¥u trÃºc nÃºt"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "Cuá»™n tá»›i trong cá»­a sá»• nÃ y"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "Cuá»™n tá»›i trong cá»­a sá»• nÃ y vÃ  láº­p kÃ­ch cá»¡ cá»­a sá»• máº·c Ä‘á»‹nh"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "Cuá»™n tá»›i trong cá»­a sá»• nÃ y mÃ  cÃ²n láº¡i trong nÃºt nÃ y"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr ""
+ "Cuá»™n tá»›i trong cá»­a sá»• nÃ y, mÃ  cÃ²n láº¡i trong nÃºt nÃ y vÃ  láº­p kÃ­ch cá»¡ cá»­a sá»• "
+ "máº·c Ä‘á»‹nh"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "Cuá»™n lÃ¹i trong cá»­a sá»• nÃ y"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "Cuá»™n lÃ¹i trong cá»­a sá»• nÃ y vÃ  láº­p kÃ­ch cá»¡ cá»­a sá»• máº·c Ä‘á»‹nh"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "Cuá»™n lÃ¹i trong cá»­a sá»• nÃ y, mÃ  cÃ²n láº¡i trong nÃºt nÃ y"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr ""
+ "Cuá»™n lÃ¹i trong cá»­a sá»• nÃ y, mÃ  cÃ²n láº¡i trong nÃºt nÃ y vÃ  láº­p kÃ­ch cá»¡ cá»­a sá»• "
+ "máº·c Ä‘á»‹nh"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "Vá»� Ä‘áº§u nÃºt nÃ y"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "Tá»›i cuá»‘i nÃºt nÃ y"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "Cuá»™n xuá»‘ng theo dÃ²ng"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "Cuá»™n lÃªn theo dÃ²ng"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "Cuá»™n xuá»‘ng theo ná»­a mÃ n hÃ¬nh"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "Cuá»™n lÃªn theo ná»­a mÃ n hÃ¬nh"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "Chá»�n cá»­a sá»• káº¿"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "Chá»�n cá»­a sá»• lÃ¹i"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "Chia tÃ¡ch cá»­a sá»• hiá»‡n cÃ³"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "XÃ³a cá»­a sá»• hiá»‡n cÃ³"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "KhÃ´ng thá»ƒ xÃ³a cá»­a sá»• lÃ¢u bá»�n"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "XÃ³a cÃ¡c cá»­a sá»• khÃ¡c"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "Cuá»™n cá»­a sá»• khÃ¡c"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "Cuá»™n lÃ¹i cá»­a sá»• khÃ¡c"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "PhÃ³ng to (hay thu nhá»�) cá»­a sá»• nÃ y"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "Chia chá»— mÃ n hÃ¬nh sáºµn sÃ ng ra cÃ¡c cá»­a sá»• hiá»‡n rÃµ"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "Báº­t táº¯t tÃ­nh tráº¡ng ngáº¯t dÃ²ng trong cá»­a sá»• hiá»‡n thá»�i"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr "Báº­t/táº¯t kháº£ nÄƒng sá»­ dá»¥ng biá»ƒu thá»©c chÃ­nh quy khi tÃ¬m kiáº¿m"
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr "DÃ¹ng biá»ƒu thá»©c chÃ­nh quy khi tÃ¬m kiáº¿m."
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr "DÃ¹ng chuá»—i nghÄ©a chá»¯ khi tÃ¬m kiáº¿m."
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "Chá»�n nÃºt Káº¿"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "Chá»�n nÃºt LÃ¹i"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "Chá»�n nÃºt LÃªn"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "Chá»�n nÃºt cuá»‘i trong táº­p tin nÃ y"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "Cá»­a sá»• nÃ y khÃ´ng cÃ³ nÃºt thÃªm"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "Chá»�n nÃºt Ä‘áº§u trong táº­p tin nÃ y"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "Chá»�n má»¥c cuá»‘i trong trÃ¬nh Ä‘Æ¡n nÃºt nÃ y"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "Chá»�n má»¥c trÃ¬nh Ä‘Æ¡n nÃ y"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "KhÃ´ng cÃ³ %d má»¥c trong trÃ¬nh Ä‘Æ¡n nÃ y."
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "Má»¥c trÃ¬nh Ä‘Æ¡n (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "Má»¥c trÃ¬nh Ä‘Æ¡n: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "Theo tham chiáº¿u chÃ©o (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "Theo tham chiáº¿u chÃ©o : "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Ä�á»�c má»¥c trÃ¬nh Ä‘Æ¡n vÃ  chá»�n nÃºt cá»§a nÃ³"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "Ä�á»�c cÆ°á»›c chÃº hay tham chiáº¿u chÃ©o vÃ  chá»�n nÃºt cá»§a nÃ³"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "Vá»� Ä‘áº§u trÃ¬nh Ä‘Æ¡n cá»§a nÃºt nÃ y"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "Xem Ä‘á»“ng thá»�i cÃ ng nhiá»�u má»¥c trÃ¬nh Ä‘Æ¡n cÃ ng cÃ³ thá»ƒ"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Ä�á»�c tÃªn nÃºt vÃ  chá»�n nÃ³"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "Tá»›i nÃºt: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "KhÃ´ng cÃ³ trÃ¬nh Ä‘Æ¡n trong nÃºt Â« %s Â»."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "KhÃ´ng cÃ³ má»¥c trÃ¬nh Ä‘Æ¡n Â« %s Â» trong nÃºt Â« %s Â»."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "KhÃ´ng tÃ¬m tháº¥y nÃºt Ä‘Æ°á»£c tham chiáº¿u bá»Ÿi Â« %s Â» trong Â« %s Â»."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Ä�á»�c danh sÃ¡ch cÃ¡c trÃ¬nh Ä‘Æ¡n báº¯t Ä‘áº§u tá»« Â« thÆ° má»¥c Â» vÃ  theo chÃºng"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "Theo trÃ¬nh Ä‘Æ¡n: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "TÃ¬m nÃºt diá»…n táº£ cuá»™c gá»�i chÆ°Æ¡ng trÃ¬nh"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "TÃ¬m nÃºt gá»�i cá»§a [%s]: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Ä�á»�c tham chiáº¿u trang hÆ°á»›ng dáº«n (man) vÃ  chá»�n nÃ³"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "Láº¥y trang Man: "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "Chá»�n Â« TrÃªn Â» trong táº­p tin nÃ y"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "Chá»�n nÃºt Â« thÆ° má»¥c Â»"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "Giáº¿t nÃºt (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "KhÃ´ng thá»ƒ giáº¿t nÃºt Â« %s Â»"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "KhÃ´ng thá»ƒ giáº¿t nÃºt cuá»‘i"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "Chá»�n nÃºt má»›i chá»�n"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "Giáº¿t nÃºt nÃ y"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Ä�á»�c tÃªn táº­p tin vÃ  chá»�n nÃ³"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "TÃ¬m táº­p tin: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "KhÃ´ng tÃ¬m tháº¥y Â« %s Â»"
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "KhÃ´ng thá»ƒ táº¡o táº­p tin xuáº¥t Â« %s Â»."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "HoÃ n táº¥t."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "Ä�ang ghi nÃºt %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr ""
+ "Gá»­i ná»™i dung cá»§a nÃºt nay qua á»‘ng dáº«n kiá»ƒu Â« INFO_PRINT_COMMAND Â» (Info in ra "
+ "lá»‡nh)"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "KhÃ´ng thá»ƒ má»Ÿ á»‘ng dáº«n Ä‘áº¿n Â« %s Â»."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "Ä�ang in nÃºt %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr "Tiáº¿n trÃ¬nh tÃ¬m kiáº¿m Ä‘Ã£ tiáº¿p tá»¥c tá»« cuá»‘i cá»§a tÃ i liá»‡u."
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr "Tiáº¿n trÃ¬nh tÃ¬m kiáº¿m Ä‘Ã£ tiáº¿p tá»¥c tá»« Ä‘áº§u cá»§a tÃ i liá»‡u."
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "Ä�ang tÃ¬m kiáº¿m táº­p tin phá»¥ %s..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Ä�á»�c chuá»—i vÃ  tÃ¬m kiáº¿m nÃ³, phÃ¢n biá»‡t chá»¯ hoa/thÆ°á»�ng"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Ä�á»�c chuá»—i vÃ  tÃ¬m kiáº¿m nÃ³"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Ä�á»�c chuá»—i vÃ  tÃ¬m kiáº¿m lÃ¹i nÃ³"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s%s [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr "TÃ¬m kiáº¿m dÃ¹ng biá»ƒu thá»©c chÃ­nh quy"
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr " phÃ¢n biáº¿t chá»¯ hoa/thÆ°á»�ng "
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr " ngÆ°á»£c"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "TÃ¬m kiáº¿m"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "Lá»—i tÃ¬m kiáº¿m."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "LÃ m láº¡i viá»‡c tÃ¬m kiáº¿m cuá»‘i, vá»� cÃ¹ng phÃ­a hÆ°á»›ng"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "KhÃ´ng cÃ³ chuá»—i tÃ¬m kiáº¿m trÆ°á»›c"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "LÃ m láº¡i viá»‡c tÃ¬m kiáº¿m cuá»‘i, vá»� ngÆ°á»£c phÃ­a hÆ°á»›ng"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "TÃ¬m kiáº¿m tÆ°Æ¡ng tÃ¡c chuá»—i Ä‘ang gÃµ"
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr "TÃ¬m kiáº¿m ngÆ°á»£c I dÃ¹ng biá»ƒu thá»©c chÃ­nh quy: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "TÃ¬m kiáº¿m ngÆ°á»£c I: "
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr "TÃ¬m kiáº¿m I dÃ¹ng biá»ƒu thá»©c chÃ­nh quy: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "TÃ¬m kiáº¿m I: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "Ä�ang tháº¥t báº¡i "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "Vá»� tham chiáº¿u chÃ©o trÆ°á»›c"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "Tá»›i tham chiáº¿u chÃ©o káº¿"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "Chá»�n tham chiáº¿u hay má»¥c trÃ¬nh Ä‘Æ¡n xuáº¥t hiá»‡n trÃªn dÃ²ng nÃ y"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "Há»§y thao tÃ¡c Ä‘ang cháº¡y"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "ThoÃ¡t"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "Chuyá»ƒn con cháº¡y tá»›i má»™t Ä‘Ã³ng riÃªng trong cá»­a sá»•"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "Váº½ láº¡i mÃ n hÃ¬nh"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "ThoÃ¡t khá»�i Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "Cháº¡y lá»‡nh Ä‘Ã£ Ä‘Ã³ng káº¿t Ä‘áº¿n biáº¿n tháº¿ chá»¯ thÆ°á»�ng cá»§a phÃ­m nÃ y"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "Lá»‡nh khÃ´ng rÃµ (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "Â« %s Â» khÃ´ng há»£p lá»‡"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "Â« %s Â» khÃ´ng há»£p lá»‡"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "ThÃªm chá»¯ sá»‘ nÃ y vÃ o Ä‘á»‘i sá»‘ thuá»™c sá»‘ hiá»‡n thá»�i"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "Báº¯t Ä‘áº§u (hoáº·c nhÃ¢n vá»›i 4) Ä‘á»‘i sá»‘ thuá»™c sá»‘ hiá»‡n thá»�i)"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "DÃ¹ng bÃªn trong bá»Ÿi Â« \\[universal-argument] Â» (Ä‘á»‘i sá»‘ toÃ n thá»ƒ)"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: háº¿t bá»™ nhá»› áº£o.\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "Báº­t thÃ¬ cÆ°á»›c chÃº tá»± Ä‘á»™ng xuáº¥t hiá»‡n vÃ  biáº¿n máº­t"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "Báº­t thÃ¬ viá»‡c tao hoáº·c xÃ³a bá»� cá»­a sá»• thay Ä‘á»•i kÃ­ch cá»¡ cá»§a cá»­a sá»• khÃ¡c"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "Báº­t thÃ¬ chá»›p mÃ n hÃ¬nh thay vÃ o rung chuÃ´ng"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "Báº­t thÃ¬ lá»—i gÃ¢y ra rung chuÃ´ng"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "Báº­t thÃ¬ RÃ¡c Info táº­p há»£p táº­p tin Ä‘Ã£ cáº§n giáº£i nÃ©n"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "Báº­t thÃ¬ tÃ´ sÃ¡ng má»™t pháº§n chuá»—i tÃ¬m kiáº¿m Ä‘Ã£ khá»›p"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "Ä�iá»�u khiá»ƒn á»©ng xá»­ khi cuá»™n Ä‘Æ°á»£c yÃªu cáº§u táº¡i káº¿t thÃºc nÃºt"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr "TÆ°Æ¡ng tá»± vá»›i Â« scroll-behaviour Â» (á»©ng xá»­ cuá»™n)"
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "Sá»‘ dÃ²ng cáº§n cuá»™n khi con cháº¡y rá»�i cá»­a sá»•"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr "Ä�iá»�u khiá»ƒn náº¿u á»©ng xá»­ cuá»™n cÃ³ tÃ¡c Ä‘á»™ng lá»‡nh di chuyá»ƒn con trá»� khÃ´ng"
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "Báº­t thÃ¬ Info cháº¥p nháº­n vÃ  hiá»ƒn thá»‹ kÃ½ tá»± La-tinh ISO"
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "Ä�iá»�u khiá»ƒn á»©ng xá»­ khi cuá»™n Ä‘Æ°á»£c yÃªu cáº§u táº¡i káº¿t thÃºc cá»§a nÃºt cuá»‘i cÃ¹ng"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "Diá»…n táº£ cÃ¡ch sá»­ dá»¥ng biáº¿n"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "Diá»…n táº£ biáº¿n: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "Láº­p giÃ¡ trá»‹ cá»§a biáº¿n Info"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "Láº­p biáº¿n: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "Láº­p %s thÃ nh giÃ¡ trá»‹ (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "Láº­p %s thÃ nh giÃ¡ trá»‹ (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** Tháº» quÃ¡ cÅ© ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), dÃ²ng ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, %d dÃ²ng --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, %d dÃ²ng --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " Táº­p tin phá»¥: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: cáº£nh bÃ¡o : "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " cho %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr ""
+ "\tHÃ£y thá»­ lá»‡nh trá»£ giÃºp Â« %s --help Â» Ä‘á»ƒ xem danh sÃ¡ch tÃ¹y chá»�n hoÃ n toÃ n.\n"
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "Sá»­ dá»¥ng: %s [TÃ™Y_CHá»ŒN]... [Táº¬P_TIN_INFO [Táº¬P_TIN_THÆ¯_Má»¤C]]\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr "ThÃªm hoáº·c gá»¡ bá»� má»¥c nháº­p trong Táº¬P_TIN_INFO vÃ o/khá»�i Táº¬P_TIN_THÆ¯_Má»¤C."
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ "TÃ¹y chá»�n:\n"
+ " --debug             thÃ´ng bÃ¡o vá»� má»—i hÃ nh Ä‘á»™ng.\n"
+ " --delete            xoÃ¡ cÃ¡c má»¥c nháº­p Ä‘Ã£ tá»“n táº¡i cho Táº¬P_TIN_INFO\n"
+ "\t\t\t\tkhá»�i Táº¬P_TIN_THÆ¯_Má»¤C; Ä‘á»«ng chÃ¨n má»¥c nháº­p má»›i. --description=VÄ‚N_Báº¢N  "
+ "\tmÃ´ táº£ cá»§a má»¥c nháº­p lÃ  vÄƒn báº£n nÃ y;\n"
+ "\t\t\t\tkáº¿t há»£p vá»›i tÃ¹y chá»�n Â« --name Â» Ä‘á»ƒ lÃ m cÃ¹ng\n"
+ "\t\t\t\tkáº¿t quáº£ vá»›i tÃ¹y chá»�n Â« --entry Â».\n"
+ " --dir-file=TÃŠN     ghi rÃµ tÃªn táº­p tin cá»§a táº­p tin thÆ° má»¥c info;\n"
+ "\t\t\t\tcÃ³ cÃ¹ng káº¿t quáº£ vá»›i Ä‘á»‘i sá»‘ Táº¬P_TIN_THÆ¯_Má»¤C.  --dry-run           cÃ³ "
+ "cÃ¹ng káº¿t quáº£ vá»›i tÃ¹y chá»�n Â« --test Â»."
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ " --entry=VÄ‚N_Báº¢N        chÃ¨n vÄƒn báº£n nÃ y dáº¡ng má»¥c nháº­p táº­p tin Info.\n"
+ "\tVÄƒn báº£n nÃ y Ä‘Æ°á»£c ghi dÆ°á»›i dáº¡ng má»™t dÃ²ng má»¥c trÃ¬nh Ä‘Æ¡n info,\n"
+ "\tÄ‘áº±ng trÆ°á»›c â‰¥0 dÃ²ng thÃªm báº¯t Ä‘áº§u vá»›i khoáº£ng tráº¯ng.\n"
+ "\tGhi rÃµ nhiá»�u má»¥c nháº­p thÃ¬ táº¥t cáº£ Ä‘Æ°á»£c thÃªm.\n"
+ "\tKhÃ´ng ghi rÃµ má»¥c nháº­p thÃ¬ cÃ¡c má»¥c nháº­p Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh\n"
+ "\ttá»« thÃ´ng tin trong táº­p tin Info chÃ­nh nÃ³.\n"
+ "\tKhi gá»¡ bá»�, vÄƒn báº£n nÃ y ghi rÃµ má»¥c nháº­p cáº§n gá»¡ bá»�.\n"
+ "\tVÄƒn báº£n nÃ y chá»‰ Ä‘Æ°á»£c gá»¡ bá»� nhÆ° lÃ  phÆ°Æ¡ng sÃ¡ch cuá»‘i cÃ¹ng,\n"
+ "\tnáº¿u khÃ´ng cÃ³ má»¥c nháº­p Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh tá»« táº­p tin Info,\n"
+ "\tvÃ  cÅ©ng khÃ´ng tÃ¬m tháº¥y tÃªn cÆ¡ báº£n cá»§a táº­p tin Info."
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ " --help              hiá»ƒn thá»‹ trá»£ giÃºp nÃ y rá»“i thoÃ¡t.\n"
+ " --info-dir=THÆ¯_Má»¤C      báº±ng Â« --dir-file=THÆ¯_Má»¤C/thÆ°_má»¥c Â».\n"
+ " --info-file=Táº¬P_TIN    \tghi rÃµ táº­p tin Info cáº§n cÃ i Ä‘áº·t vÃ o thÆ° má»¥c;\n"
+ "\t\t\t\t\tcÃ³ cÃ¹ng káº¿t quáº£ vá»›i Ä‘á»‘i sá»‘ Táº¬P_TIN_INFO. --item=VÄ‚N_Báº¢N         "
+ "báº±ng Â« --entry=VÄ‚N_Báº¢N Â».\n"
+ " --keep-old          Ä‘á»«ng thay tháº¿ má»¥c nháº­p hoáº·c gá»¡ bá»� pháº§n rá»—ng.\n"
+ " --menuentry=VÄ‚N_Báº¢N    báº±ng Â« --name=VÄ‚N_Báº¢N Â».\n"
+ " --name=VÄ‚N_Báº¢N         tÃªn cá»§a má»¥c nháº­p lÃ  vÄƒn báº£n nÃ y;\n"
+ "\t\t\t\t\tdÃ¹ng cÃ¹ng vá»›i tÃ¹y chá»�n Â« --description Â»\n"
+ "                      \t\t\tthÃ¬ cÃ³ cÃ¹ng káº¿t quáº£ vá»›i tÃ¹y chá»�n Â« --entry Â».\n"
+ " --no-indent         Ä‘á»«ng Ä‘á»‹nh dáº¡ng má»¥c nháº­p má»›i trong táº­p tin THÆ¯_Má»¤C\n"
+ " --quiet             thu há»“i cáº£nh bÃ¡o."
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ " --regex=R           Ä‘áº·t cÃ¡c má»¥c nháº­p cá»§a táº­p tin nÃ y vÃ o má»�i pháº§n\n"
+ "\t\t\t\ttÆ°Æ¡ng á»©ng vá»›i biá»ƒu thá»©c chÃ­nh quy R\n"
+ "\t\t\t\t(khÃ´ng phÃ¢n biá»‡t chá»¯ hoa/thÆ°á»�ng).\n"
+ " --remove            báº±ng Â« --delete Â».\n"
+ " --remove-exactly    chá»‰ gá»¡ bá»� náº¿u tÃªn táº­p tin Info tÆ°Æ¡ng á»©ng chÃ­nh xÃ¡c;\n"
+ "\t\t\t\tcÅ©ng phÃ¢n biá»‡t Ä‘uÃ´i tÃªn táº­p tin nhÆ° .info vÃ  .gz\n"
+ " --section=PHáº¦N       Ä‘áº·t cÃ¡c má»¥c nháº­p vÃ o pháº§n nÃ y cá»§a thÆ° má»¥c.\n"
+ "\t\t\t\tGhi rÃµ nhiá»�u pháº§n thÃ¬ táº¥t cáº£ cÃ¡c má»¥c nháº­p\n"
+ "\t\t\t\tÄ‘Æ°á»£c thÃªm vÃ o má»—i pháº§n.\n"
+ "\t\t\t\tKhÃ´ng ghi rÃµ pháº§n thÃ¬ cÃ¡c pháº§n Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh\n"
+ "\t\t\t\ttá»« thÃ´ng tin trong táº­p tin Info chÃ­nh nÃ³.\n"
+ " --section R PHáº¦N     báº±ng Â« --regex=R --section=PHáº¦N --add-once Â»."
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ " --silent            thu há»“i cáº£nh bÃ¡o.\n"
+ " --test              thu há»“i nÃ¢ng cáº¥p Táº¬P_TIN_THÆ¯_Má»¤C.\n"
+ " --version           hiá»ƒn thá»‹ thÃ´ng tin phiÃªn báº£n rá»“i thoÃ¡t."
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "HÃ£y thÃ´ng bÃ¡o lá»—i cho Ä‘á»‹a chá»‰ Â« bug-texinfo@gnu.org Â»,\n"
+ "vÃ  gá»­i cÃ¢u há»�i chung, tháº£o luáº­n v.v. cho help-texinfo@gnu.org.\n"
+ "Trang chá»§ texinfo: http://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "Ä�Ã¢y lÃ  táº­p tin Â« .../info/dir Â», mÃ  chá»©a nÃºt Ä‘áº§u cá»§a phÃ¢n cáº¥p Info,\n"
+ "cÃ³ tÃªn TrÃªn: (dir)Top.\n"
+ "Láº§n Ä‘áº§u tiÃªn cháº¡y Info thÃ¬ báº¡n xem nÃºt nÃ y.\n"
+ "\n"
+ "%s\tÄ�Ã¢y lÃ  Ä‘áº§u cÃ¢y INFO\n"
+ "\n"
+ "  Ä�Ã¢y (nÃºt ThÆ° má»¥c) Ä‘Æ°a ra trÃ¬nh Ä‘Æ¡n cÃ¡c chá»§ Ä‘á»� chÃ­nh.\n"
+ "  PhÃ­m táº¯t:\n"
+ "   â€¢ q\t\tthoÃ¡t\n"
+ "   â€¢ ?\t\t\tliá»‡t kÃª cÃ¡c lá»‡nh Info\n"
+ "   â€¢ d\t\ttrá»Ÿ vá»� Ä‘Ã¢y\n"
+ "   â€¢ h\t\thiá»‡n trá»£ giÃºp cho ngÆ°á»�i má»›i dÃ¹ng Info\n"
+ "   â€¢ mEmacs<Return>\tthÄƒm sá»• tay Emacs\n"
+ "v.v.\n"
+ "  Trong Emacs, báº¡n cÃ³ thá»ƒ nháº¥n cÃ¡i nÃºt chuá»™t 2 vÃ o má»¥c trÃ¬nh Ä‘Æ¡n\n"
+ "  hay vÃ o tham chiáº¿u chÃ©o, Ä‘á»ƒ chá»�n nÃ³.\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: khÃ´ng thá»ƒ Ä‘á»�c (%s) vÃ  khÃ´ng thá»ƒ táº¡o (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: táº­p tin rá»—ng"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr ""
+ "CÃ³ Â« START-INFO-DIR-ENTRY Â» (má»¥c nháº­p thÆ° má»¥c Info Ä‘áº§u) mÃ  khÃ´ng cÃ³ Â« END-INFO-"
+ "DIR-ENTRY Â» (má»¥c nháº­p thÆ° má»¥c Info káº¿t thÃºc) tÆ°Æ¡ng á»©ng"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr ""
+ "CÃ³ Â« END-INFO-DIR-ENTRY Â» (má»¥c nháº­p thÆ° má»¥c Info káº¿t thÃºc) mÃ  khÃ´ng cÃ³ Â« START-"
+ "INFO-DIR-ENTRY Â» (má»¥c nháº­p thÆ° má»¥c Info Ä‘áº§u) tÆ°Æ¡ng á»©ng"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: Ä‘Ã£ cÃ³ táº­p tin thÆ° má»¥c: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: hÃ£y ghi rÃµ táº­p tin Info chá»‰ má»™t láº§n.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr "Biá»ƒu thá»©c chÃ­nh quy thÃªm Ä‘Æ°á»£c ghi rÃµ nÃªn bá»� qua Â« %s Â»"
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr "Gáº·p lá»—i trong biá»ƒu thá»©c chÃ­nh quy Â« %s Â»: %s"
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "Ä‘á»‘i sá»‘ dÃ²ng lá»‡nh thá»«a Â« %s Â»"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr ""
+ "ChÆ°a ghi rÃµ táº­p tin nháº­p vÃ o. HÃ£y cháº¡y lá»‡nh trá»£ giÃºp Â« --help Â» Ä‘á»ƒ xem thÃ´ng "
+ "tin thÃªm."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr ""
+ "ChÆ°a ghi rÃµ táº­p tin thÆ° má»¥c. HÃ£y cháº¡y lá»‡nh trá»£ giÃºp Â« --help Â» Ä‘á»ƒ xem thÃ´ng "
+ "tin thÃªm."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "khÃ´ng cÃ³ má»¥c nháº­p thÆ° má»¥c Info trong Â« %s Â»"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "khÃ´ng tÃ¬m tháº¥y má»¥c nháº­p cho Â« %s Â» nÃªn khÃ´ng xÃ³a gÃ¬"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr "lá»—i ferror trÃªn thiáº¿t bá»‹ xuáº¥t chuáº©n\n"
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr "lá»—i fflush trÃªn thiáº¿t bá»‹ xuáº¥t chuáº©n\n"
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "cÃ¡c Ä‘á»‘i sá»‘ tá»›i @%s bá»‹ bá»� qua"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "ThÃ¡ng GiÃªng"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "ThÃ¡ng Hai"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "ThÃ¡ng Ba"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "ThÃ¡ng TÆ°"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "ThÃ¡ng NÄƒm"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "ThÃ¡ng SÃ¡u"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "ThÃ¡ng Báº£y"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "ThÃ¡ng TÃ¡m"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "ThÃ¡ng ChÃ­n"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "ThÃ¡ng MÆ°á»�i"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "ThÃ¡ng MÆ°á»�i Má»™t"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "ThÃ¡ng Cháº¡p"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "gáº·p kÃ½ tá»± báº¥t thÆ°á»�ng %c trong @var"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "Ä‘á»‘i sá»‘ @sc hoÃ n toÃ n chá»¯ hoa nÃªn khÃ´ng cÃ³ tÃ¡c Ä‘á»™ng"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "mong Ä‘á»£i Â« { Â» cÃ²n gáº·p Â« %c Â»"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "káº¿t thá»©c táº­p tin bÃªn trong khá»‘i Ä‘á»™ng tá»«"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "mong Ä‘á»£i Â« } Â» cÃ²n gáº·p Â« %c Â»"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ "Â« @strong{Note...} Â» táº¡o má»™t tham chiáº¿u chÃ©o giáº£ trong Info; hÃ£y sá»­a Ä‘á»•i Ä‘á»ƒ "
+ "trÃ¡nh nÃ³"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s quÃ¡ cÅ©"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "Â« @sp Â» cáº§n Ä‘áº¿n má»™t Ä‘á»‘i sá»‘ dÆ°Æ¡ng thuá»™c sá»‘, khÃ´ng pháº£i Â« %s Â»"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "Ä�á»‘i sá»‘ sai tá»›i %c%s"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "nhÆ° tháº¿"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "khÃ´ng cÃ³"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "Ä�á»‘i sá»‘ sai tá»›i @%s"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "chÃ¨n"
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "Ä�á»‘i sá»‘ sai tá»›i @%s: %s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr "Mong Ä‘á»£i @%s báº­t hay táº¯t, khÃ´ng pháº£i Â« %s Â»"
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr "Chá»‰ há»— trá»£ @%s 10 hay 11, khÃ´ng pháº£i Â« %s Â»"
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "Thiáº¿u Â« } Â» trong Ä‘á»‘i sá»‘ xÃ¡c Ä‘á»‹nh @def"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "Pháº£i bÃªn trong mÃ´i trÆ°á»�ng Â« @%s Â» Ä‘á»ƒ dÃ¹ng Â« @%s Â»"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "Â« %s Â» bá»‹ bá»� sÃ³t trÆ°á»›c tÃªn táº­p tin xuáº¥t"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "Â« %s Â» bá»‹ bá»� sÃ³t vÃ¬ ghi ra thiáº¿t bá»‹ xuáº¥t chuáº©n"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "Bá»™ Ä‘á»‡m xuáº¥t khÃ´ng rá»—ng."
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr "Kiá»ƒu ná»•i Ä‘Ã£ yÃªu cáº§u Â« %s Â» khÃ´ng pháº£i Ä‘Æ°á»£c dÃ¹ng trÆ°á»›c"
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "Xem "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "Â« %c%s Â» cáº§n thiáº¿t Ä‘á»‘i sá»‘ Â« {...} Â», khÃ´ng pháº£i chá»‰ Â« %s Â»"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "KhÃ´ng cÃ³ ngoáº·c mÃ³c Ä‘Ã³ng cho cÆ°á»›c chÃº Â« %s Â»"
+ 
+ # Type: text
+ # Description
+ # Main menu item
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "CÆ°á»›c chÃº Ä‘Ã£ xÃ¡c Ä‘á»‹nh mÃ  khÃ´ng cÃ³ nÃºt cha"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "KhÃ´ng cho phÃ©p cÆ°á»›c chÃº bÃªn trong cÆ°á»›c chÃº (lá»“ng nhau)"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "CÆ°á»›c chÃº"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: khÃ´ng thá»ƒ má»Ÿ táº­p tin CSS Â« --css-file Â»: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: táº­p tin CSS Â« --css-file Â» káº¿t thÃºc vá»›i ghi chÃº"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[báº¥t thÆ°á»�ng] khÃ´ng cÃ³ tháº» HTML cáº§n báº­t"
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[báº¥t thÆ°á»�ng] tÃªn nÃºt khÃ´ng há»£p lá»‡: Â« %s Â»"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "Chá»‰ má»¥c láº¡ Â« %s Â»"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info khÃ´ng thá»ƒ xá»­ lÃ½ dáº¥u hai cháº¥m Â« : Â» trong má»¥c nháº­p chá»‰ má»¥c Â« %s Â»"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "Chá»‰ má»¥c Â« %s Â» Ä‘Ã£ cÃ³."
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "Chá»‰ má»¥c láº¡ Â« %s Â» vÃ /hay Â« %s Â» trong @synindex"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(dÃ²ng)"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(dÃ²ng %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "Chá»‰ má»¥c láº¡ Â« %s Â» trong @printindex"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "Má»¥c nháº­p cho chá»‰ má»¥c Â« %s Â» náº±m á»Ÿ ngoáº¡i nÃºt nÃ o"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(á»Ÿ ngoáº¡i nÃºt nÃ o)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "khÃ´ng cho phÃ©p @item trong Ä‘á»‘i sá»‘ tá»›i @itemize"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr ""
+ "Â« Broken-Type Â» (kiá»ƒu bá»‹ há»�ng) trong Â« insertion_type_pname Â» (tÃªn p kiá»ƒu chÃ¨n)"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "TrÃ n Ä‘á»‘ng Ä‘áº¿m"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "trÃ n váº½ chá»¯, khá»Ÿi cháº¡y láº¡i táº¡i %c"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s cáº§n thiáº¿t má»™t Ä‘á»‘i sá»‘: bá»™ Ä‘á»‹nh dáº¡ng cho %citem"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "MÃ´i trÆ°á»�ng %cfloat khÃ´ng thá»ƒ Ä‘Æ°á»£c lá»“ng nhau"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "Â« @end Â» mong Ä‘á»£i Â« %s Â», cÃ²n gáº·p Â« %s Â»"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "KhÃ´ng cÃ³ Â« %cend %s Â» tÆ°Æ¡ng á»©ng"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s cáº§n thiáº¿t chá»¯ hay chá»¯ sá»‘"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "káº¿t thÃºc táº­p tin bÃªn trong khá»‘i Ä‘Ãºng nguyÃªn vÄƒn"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s khÃ´ng cÃ³ nghÄ©a bÃªn ngoÃ i mÃ´i trÆ°á»�ng Â« @float Â» (ná»•i)"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "gáº·p @menu trÆ°á»›c @node Ä‘áº§u thÃ¬ táº¡o nÃºt Â« TrÃªn Â»"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr ""
+ "cÃ³ láº½ nÃºt Â« @top Â» (trÃªn) cá»§a báº¡n nÃªn Ä‘Æ°á»£c bao bá»�c báº±ng @ifnottex thay cho "
+ "@ifinfo ?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "gáº·p @detailmenu trÆ°á»›c nÃºt Ä‘áº§u thÃ¬ táº¡o nÃºt Â« TrÃªn Â»"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ "@%s khÃ´ng cÃ³ nghÄ©a bÃªn ngoÃ i mÃ´i trÆ°á»�ng  Â« @titlepage Â» vÃ  Â« @quotation Â»"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s khÃ´ng cÃ³ nghÄ©a bÃªn ngoÃ i mÃ´i trÆ°á»�ng  Â« @titlepage Â»"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "ChÆ°a khá»›p Â« %c%s Â»"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "Â« %c%s Â» cáº§n gÃ¬ Ä‘Ã³ theo nÃ³"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "Ä�á»‘i sá»‘ sai Â« %s Â» tá»›i Â« %s Â» nÃªn dÃ¹ng Â« %s Â»"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s khÃ´ng cÃ³ nghÄ©a bÃªn trong khá»‘i Â« @%s Â»"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "@itemx khÃ´ng cÃ³ nghÄ©a bÃªn trong khá»‘i Â« %s Â»"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "gáº·p %c%s bÃªn ngoÃ i má»™t khá»‘i chÃ¨n"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr "khÃ´ng biáº¿t vÃ¹ng lÃ£nh thá»• máº·c Ä‘á»‹nh cho ngÃ´n ngá»¯ Â« %s Â»"
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s khÃ´ng pháº£i mÃ£ ngÃ´n ngá»¯ kiá»ƒu ISO 639 há»£p lá»‡"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "khÃ´ng nháº­n ra tÃªn báº£ng mÃ£ Â« %s Â»"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "tiáº¿c lÃ  khÃ´ng há»— trá»£ báº£ng mÃ£ Â« %s Â»"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "kÃ½ tá»± Ä‘Ã£ mÃ£ hÃ³a khÃ´ng há»£p lá»‡: Â« %s Â»"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s mong Ä‘á»£i Â« i Â» hay Â« j Â» lÃ m Ä‘á»‘i sá»‘, khÃ´ng pháº£i Â« %c Â»"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s mong Ä‘á»£i má»™t kÃ½ tá»± riÃªng láº» Â« i Â» hay Â« j Â» lÃ m Ä‘á»‘i sá»‘"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "vÄ© lá»‡nh Â« %s Â» Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh trÆ°á»›c"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "Ä‘Ã¢y lÃ  lá»�i xÃ¡c Ä‘á»‹nh trÆ°á»›c cá»§a Â« %s Â»"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ "Â« \\ Â» trong pháº§n má»Ÿ rá»™ng vÄ© lá»‡nh cÃ³ Â« %s Â» theo sau, thay cho tÃªn tham sá»‘"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "VÄ© lá»‡nh Â« %s Â» Ä‘Æ°á»£c gá»�i trÃªn dÃ²ng %d vá»›i quÃ¡ nhiá»�u Ä‘á»‘i sá»‘"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "KhÃ´ng tÃ¬m tháº¥y vÄ© lá»‡nh %cend"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr "@allow-recursion bá»‹ pháº£n Ä‘á»‘i; hÃ£y sá»­ dá»¥ng @rmacro thay tháº¿"
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr "@quote-arg bá»‹ pháº£n Ä‘á»‘i; cÃ¡c Ä‘á»‘i sá»‘ Ä‘Æ°á»£c trÃ­ch dáº«n theo máº·c Ä‘á»‹nh"
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "khá»›p sai @end %s vá»›i @%s"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "QuÃ¡ nhiá»�u lá»—i nÃªn thÃ´i.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: cáº£nh bÃ¡o : "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "Ä�á»‹nh vá»‹ sai %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "HÃ£y thá»­ lá»‡nh trá»£ giÃºp Â« %s --help Â» Ä‘á»ƒ xem thÃ´ng tin thÃªm.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr ""
+ "CÃ¡ch sá»­ dá»¥ng: %s [TÃ™Y_CHá»ŒN]... TTT...\n"
+ "\n"
+ "[TTT\t\tTáº­p Tin Texinfo]\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "Dá»‹ch tÃ i liá»‡u nguá»“n Texinfo sang nhiá»�u Ä‘á»‹nh dáº¡ng khÃ¡c nhau, máº·c Ä‘á»‹nh lÃ  táº­p "
+ "tin Info thÃ­ch há»£p Ä‘á»ƒ Ä‘á»�c trá»±c tuyáº¿n báº±ng Emacs hoáº·c Info GNU Ä‘á»™c nháº¥t.\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "TÃ¹y chá»�n chung:\n"
+ "      --error-limit=Sá»�      thoÃ¡t sau khi gáº·p sá»‘ lá»—i nÃ y (máº·c Ä‘á»‹nh lÃ  %d).\n"
+ "\t\t(_sá»± háº¡n cháº¿ lá»—i_)\n"
+ "      --document-language=CHUá»–I\t miá»�n Ä‘á»‹a phÆ°Æ¡ng cáº§n dÃ¹ng\n"
+ "\t\tÄ‘á»ƒ dá»‹ch cÃ¡c tá»« khoÃ¡ Texinfo cho tÃ i liá»‡u xuáº¥t (máº·c Ä‘á»‹nh lÃ  C).\n"
+ "\t\t(_ngÃ´n ngá»¯ tÃ i liá»‡u_)\n"
+ "      --force                 báº£o tá»“n káº¿t xuáº¥t tháº­m chÃ­ náº¿u cÃ³ lá»—i (_Ã©p "
+ "buá»™c_).\n"
+ "      --help                  hiá»ƒn thá»‹ trá»£ giÃºp nÃ y rá»“i thoÃ¡t (_trá»£ giÃºp_)\n"
+ "      --no-validate           thu há»“i kháº£ nÄƒng tháº§m tra tham chiáº¿u chÃ©o.\n"
+ "\t\t(_khÃ´ng tháº©m tra_)\n"
+ "      --no-warn               thu há»“i cÃ¡c cáº£nh bÃ¡o (khÃ´ng pháº£i lá»—i).\n"
+ "\t\t(_khÃ´ng cáº£nh bÃ¡o_)\n"
+ " -v, --verbose               diá»…n táº£ viá»‡c Ä‘ang Ä‘Æ°á»£c lÃ m (_chi tiáº¿t_)\n"
+ "      --version              hiá»ƒn thá»‹ thÃ´ng tin phiÃªn báº£n rá»“i thoÃ¡t (_phiÃªn "
+ "báº£n_)\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "Chá»�n Ä‘á»‹nh dáº¡ng xuáº¥t (máº·c Ä‘á»‹nh lÃ  táº¡o Info):\n"
+ "      --docbook             \txuáº¥t XML Docbook thay cho Info.\n"
+ "      --html                \txuáº¥t HTML thay cho Info.\n"
+ "      --xml                 \txuáº¥t XML Texinfo thay cho Info.\n"
+ "      --plaintext           \txuáº¥t vÄƒn báº£n thÃ´ thay cho Info (_nháº­p thÃ´_).\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "TÃ¹y chá»�n xuáº¥t chung:\n"
+ "  -E, --macro-expand Táº¬P_TIN     xuáº¥t vÃ o táº­p tin nÃ y nguá»“n Ä‘Ã£ má»Ÿ rá»™ng\n"
+ "\t\tbáº±ng vÄ© lá»‡nh, cÅ©ng bá»� qua @setfilename nÃ o.\n"
+ "\t\t(_vÄ© lá»‡nh má»Ÿ rá»™ng_)\n"
+ "      --no-headers           thu há»“i cÃ¡c bá»™ phÃ¢n cÃ¡ch nÃºt, dÃ²ng Node:\n"
+ "\t\tvÃ  trÃ¬nh Ä‘Æ¡n tá»« káº¿t xuáº¥t Info (thÃ¬ xuáº¥t vÄƒn báº£n thÃ´),\n"
+ "\t\thoáº·c tá»« HTML (thÃ¬ táº¡o káº¿t xuáº¥t ngáº¯n hÆ¡n);\n"
+ "\t\tcÅ©ng ghi vÃ o Ä‘áº§u ra tiÃªu chuáº©n theo máº·c Ä‘á»‹nh.\t\t(_khÃ´ng cÃ³ dÃ²ng Ä‘áº§u_)\n"
+ "      --no-split              thu há»“i kháº£ nÄƒng chia tÃ¡ch káº¿t xuáº¥t kiá»ƒu Info "
+ "hoáº·c HTML,\n"
+ "\t\ttáº¡o ra chá»‰ má»™t táº­p tin xuáº¥t (_khÃ´ng chia tÃ¡ch_).\n"
+ "      --number-sections       xuáº¥t cÃ¡c sá»‘ thá»© tá»± chÆ°Æ¡ng vÃ  pháº§n.\n"
+ "\t\t(_Ä‘Ã¡nh sá»‘ cÃ¡c pháº§n_)\n"
+ "  -o, --output=Táº¬P_TIN\txuáº¥t ra táº­p tin nÃ y (vÃ o thÆ° má»¥c náº¿u\n"
+ "\t\tHTML Ä‘Ã£ chia tÃ¡ch) (_káº¿t xuáº¥t_).\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "TÃ¹y chá»�n Ä‘á»‘i vá»›i Info vÃ  nháº­p thÃ´ :\n"
+ "      --disable-encoding      Ä‘á»«ng xuáº¥t cÃ¡c kÃ½ tá»± cÃ³ dáº¥u phá»¥ vÃ  cÃ¡c kÃ½ tá»±\n"
+ "\t\tÄ‘áº·c biá»‡t trong káº¿t xuáº¥t Info dá»±a vÃ o báº£ng mÃ£ tÃ i liá»‡u "
+ "@documentencoding.\n"
+ "      --enable-encoding       xuáº¥t cÃ¡c kÃ½ tá»± cÃ³ dáº¥u phá»¥ vÃ  kÃ½ tá»± Ä‘áº·c biá»‡t\n"
+ "\t\ttrong káº¿t xuáº¥t Info dá»±a vÃ o @documentencoding.\n"
+ "\t\t(_báº­t báº£ng mÃ£_)\n"
+ "      --fill-column=Sá»�       ngáº¯t cÃ¡c dÃ²ng Info á»Ÿ sá»‘ kÃ½ tá»± nÃ y (máº·c Ä‘á»‹nh lÃ  %"
+ "d).\n"
+ "\t\t(_tÃ´ Ä‘áº§y cá»™t_)\n"
+ "      --footnote-style=KIá»‚U_DÃ�NG\txuáº¥t cÃ¡c cÆ°á»›c chÃº trong Info\n"
+ "\t\ttÃ¹y theo kiá»ƒu dÃ¡ng nÃ y:\n"
+ "\t\t\tÂ« separate Â» (riÃªng) Ä‘á»ƒ Ä‘áº·t cÆ°á»›c chÃº trong cÃ¹ng nÃºt;\n"
+ "\t\t\tÂ« end Â» (cuá»‘i) Ä‘á»ƒ Ä‘áº·t cÆ°á»›c chÃº á»Ÿ cuá»‘i nÃºt trong Ä‘Ã³\n"
+ "\t\t\tnÃ³ Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh (Ä‘Ã¢y lÃ  máº·c Ä‘á»‹nh) (_kiá»ƒu dÃ¡ng cÆ°á»›c chÃº_)\n"
+ "      --paragraph-indent=GIÃ�_TRá»Š\t\tthá»¥t lá»� cÃ¡c Ä‘oáº¡n vÄƒn Info\n"
+ "\t\ttheo sá»‘ dáº¥u cÃ¡ch nÃ y (máº·c Ä‘á»‹nh lÃ  %d).\n"
+ "\t\t\tGIÃ� TRá»Š lÃ  Â« none Â» (khÃ´ng cÃ³) thÃ¬ Ä‘á»«ng thá»¥t lá»�;\n"
+ "\t\t\tGIÃ� TRá»Š lÃ  Â« asis Â» (nhÆ° tháº¿) thÃ¬ báº£o tá»“n sá»± thá»¥t lá»� Ä‘Ã£ cÃ³.\t\t(_Ä‘oáº¡n "
+ "vÄƒn thá»¥t lá»�_)\n"
+ "      --split-size=Sá»�        chia tÃ¡ch cÃ¡c táº­p tin Info á»Ÿ kÃ­ch cá»¡ Sá»� (máº·c "
+ "Ä‘á»‹nh lÃ  %d).\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "TÃ¹y chá»�n HTML:\n"
+ "      --css-include=Táº¬P_TIN      táº­p tin bao gá»“m (include)\n"
+ "\t\txuáº¥t theo kiá»ƒu dÃ¡ng <style> HTML;\n"
+ "\t\tTáº¬P_TIN lÃ  Â« - Â» thÃ¬ Ä‘á»�c thiáº¿t bá»‹ nháº­p chuáº©n.\n"
+ "      --css-ref=URL           táº¡o ra tham chiáº¿u Ä‘áº¿n táº­p tin CSS.\n"
+ "      --internal-links=Táº¬P_TIN     cung cáº¥p danh sÃ¡ch cÃ¡c liÃªn káº¿t ná»™i bá»™\n"
+ "                                                   trong táº­p tin nÃ y\n"
+ "      --transliterate-file-names\ttáº¡o cÃ¡c tÃªn táº­p tin Ä‘Ã£ chuyá»ƒn chá»¯ ASCII.\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "TÃ¹y chá»�n XML vÃ  Docbook:\n"
+ "      --output-indent=GIÃ�_TRá»Š    \tthá»¥t lá»� cÃ¡c yáº¿u tá»‘ theo sá»‘ dáº¥u cÃ¡ch nÃ y\n"
+ "\t\t(máº·c Ä‘á»‹nh lÃ  %d). GiÃ¡ trá»‹ lÃ  0 thÃ¬ bá»� cÃ¡c khoáº£ng tráº¯ng cÃ³ thá»ƒ bá»� qua.\n"
+ "\t\t(_xuáº¥t thá»¥t lá»�_)\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "TÃ¹y chá»�n táº­p tin nháº­p vÃ o :\n"
+ "      --commands-in-node-names  cho phÃ©p lá»‡nh kiá»ƒu @ trong tÃªn nÃºt.\n"
+ "\t\t(_cÃ¡c lá»‡nh trong tÃªn nÃºt_)\n"
+ "  -D BIáº¾N             \txÃ¡c Ä‘á»‹nh biáº¿n nÃ y, nhÆ° báº±ng @set.\n"
+ "  -I THÆ¯_Má»¤C      \tphá»¥ thÃªm thÆ° má»¥c nÃ y vÃ o Ä‘Æ°á»�ng dáº«n tÃ¬m kiáº¿m @include.\n"
+ "  -P THÆ¯_Má»¤C       \tthÃªm thÆ° má»¥c nÃ y vÃ o Ä‘áº§u cá»§a Ä‘Æ°á»�ng dáº«n tÃ¬m kiáº¿m "
+ "@include.\n"
+ "  -U BIáº¾N              \thá»§y xÃ¡c Ä‘á»‹nh biáº¿n nÃ y, nhÆ° báº±ng @clear.\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "Xá»­ lÃ½ Ä‘iá»�u kiá»‡n trong káº¿t nháº­p:\n"
+ "  --ifdocbook       \txá»­ lÃ½ @ifdocbook vÃ  @docbook tháº­m chÃ­ náº¿u\n"
+ "\t\tkhÃ´ng táº¡o ra Docbook.\n"
+ "  --ifhtml          \txá»­ lÃ½ @ifhtml vÃ  @html tháº­m chÃ­ náº¿u khÃ´ng táº¡o ra "
+ "HTML.\n"
+ "  --ifinfo          \txá»­ lÃ½ @ifinfo tháº­m chÃ­ náº¿u khÃ´ng táº¡o ra Info.\n"
+ "  --ifplaintext     \txá»­ lÃ½ @ifplaintext tháº­m chÃ­ náº¿u khÃ´ng táº¡o ra nháº­p "
+ "thÃ´.\n"
+ "  --iftex           \txá»­ lÃ½ @iftex vÃ  @tex; ngá»¥ Ã½ Â« --no-split Â».\n"
+ "  --ifxml           \txá»­ lÃ½ @ifxml vÃ  @xml.\n"
+ "  --no-ifdocbook\tÄ‘á»«ng xá»­ lÃ½ vÄƒn báº£n @ifdocbook vÃ  @docbook.\n"
+ "  --no-ifhtml       \tÄ‘á»«ng xá»­ lÃ½ vÄƒn báº£n @ifhtml vÃ  @html.\n"
+ "  --no-ifinfo       \tÄ‘á»«ng xá»­ lÃ½ vÄƒn báº£n @ifinfo.\n"
+ "  --no-ifplaintext\tÄ‘á»«ng xá»­ lÃ½ vÄƒn báº£n @ifplaintext.\n"
+ "  --no-iftex       \tÄ‘á»«ng xá»­ lÃ½ vÄƒn báº£n @iftex vÃ  @tex.\n"
+ "  --no-ifxml        \tÄ‘á»«ng xá»­ lÃ½ vÄƒn báº£n @ifxml vÃ  @xml.\n"
+ "\n"
+ "  HÆ¡n ná»¯a, Ä‘á»‘i vá»›i cÃ¡c tÃ¹y chá»�n Â« --no-ifÄ�á»ŠNH_Dáº NG Â», cÃ³ pháº£i xá»­ lÃ½ vÄƒn báº£n "
+ "@ifnotÄ�á»ŠNH_Dáº NG.\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  GiÃ¡ trá»‹ máº·c Ä‘á»‹nh cho cÃ¡c Ä‘iá»�u kiá»‡n @if... thÃ¬ phá»¥ thuá»™c vÃ o Ä‘á»‹nh dáº¡ng "
+ "xuáº¥t:\n"
+ "  táº¡o ra HTML thÃ¬ báº­t Â« --ifhtml Â» vÃ  cÃ¡c Ä‘iá»�u khÃ¡c bá»‹ táº¯t;\n"
+ "  táº¡o ra Info thÃ¬ báº­t Â« --ifinfo Â» vÃ  cÃ¡c Ä‘iá»�u khÃ¡c bá»‹ táº¯t;\n"
+ "  táº¡o ra nháº­p thÃ´ thÃ¬ báº­t Â« --ifplaintext Â» vÃ  cÃ¡c Ä‘iá»�u khÃ¡c bá»‹ táº¯t;\n"
+ "  táº¡o ra XML thÃ¬ báº­t Â« --ifxml Â» vÃ  cÃ¡c Ä‘iá»�u khÃ¡c bá»‹ táº¯t;\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "Máº«u thÃ­ dá»¥ :\n"
+ "  makeinfo phu.texi                      ghi Info vÃ o @setfilename cá»§a phu\n"
+ "  makeinfo --html phu.texi               ghi HTML vÃ o @setfilename\n"
+ "  makeinfo --xml phu.texi                ghi Texinfo XML vÃ o @setfilename  "
+ "makeinfo --docbook phu.texi            ghi DocBook XML vÃ o @setfilename  "
+ "makeinfo --no-headers phu.texi         ghi nháº­p thÃ´ vÃ o thiáº¿t bá»‹ xuáº¥t chuáº©n\n"
+ "\n"
+ "  makeinfo --html --no-headers phu.texi\n"
+ " \t\tghi HTML khÃ´ng cÃ³ dÃ²ng nÃºt hay trÃ¬nh Ä‘Æ¡n\n"
+ "  makeinfo --number-sections phu.texi\n"
+ "\t\tghi Info cÃ³ cÃ¡c pháº§n Ä‘Ã£ Ä‘Ã¡nh sá»‘\n"
+ "  makeinfo --no-split phu.texi\n"
+ "\t\tghi má»™t táº­p tin Info, báº¥t cháº¥p kÃ­ch cá»¡ tá»‘i Ä‘a\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ "%s: Ä‘ang bá»� qua giÃ¡ trá»‹ khÃ´ng Ä‘Æ°á»£c nháº­n ra Â« TEXINFO_OUTPUT_FORMAT Â» (Ä‘á»‹nh "
+ "dáº¡ng xuáº¥t Texinfo) Â« %s Â».\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: %s Ä‘á»‘i sá»‘ pháº£i cÃ³ kiá»ƒu sá»‘, khÃ´ng pháº£i Â« %s Â».\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: khÃ´ng thá»ƒ má»Ÿ káº¿t xuáº¥t má»Ÿ rá»™ng vÄ© lá»‡nh Â« %s Â»"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: Ä‘ang bá»� qua káº¿t xuáº¥t má»Ÿ rá»™ng vÄ© lá»‡nh thá»© hai Â« %s Â».\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: khÃ´ng thá»ƒ má»Ÿ káº¿t xuáº¥t cÃ¡c liÃªn káº¿t ná»™i bá»™ Â« %s Â»"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: Ä‘ang bá»� qua káº¿t xuáº¥t cÃ¡c liÃªn káº¿t ná»™i bá»™ thá»© hai Â« %s Â».\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr ""
+ "%s: Ä‘á»‘i sá»‘ Â« --paragraph-indent Â» (thá»¥t lá»� Ä‘oáº¡n vÄƒn) pháº£i lÃ :\n"
+ " â€¢ numeric\tkiá»ƒu sá»‘\n"
+ " â€¢ none\t\tkhÃ´ng cÃ³\n"
+ " â€¢ asis\t\tnhÆ° tháº¿\n"
+ "khÃ´ng pháº£i Â« %s Â».\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr ""
+ "%s: Ä‘á»‘i sá»‘ Â« --footnote-style Â» (kiá»ƒu dÃ¡ng cÆ°á»›c chÃº) pháº£i lÃ :\n"
+ " â€¢ separate\triÃªng\n"
+ " â€¢ end\t\tcuá»‘inkhÃ´ng pháº£i Â« %s Â».\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: thiáº¿u Ä‘á»‘i sá»‘ táº­p tin.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "Lá»‡nh Ä‘a dÃ²ng %c%s dÃ¹ng sai"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Mong Ä‘á»£i Â« %s Â»"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "KhÃ´ng thá»ƒ táº¡o thÆ° má»¥c Â« %s Â»: %s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "KhÃ´ng tÃ¬m tháº¥y Â« %s Â» trong Â« %s Â»."
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ "%s: Ä‘ang nháº£y qua pháº§n má»Ÿ rá»™ng vÄ© lá»‡nh ra thiáº¿t bá»‹ xuáº¥t chuáº©n vÃ¬ káº¿t xuáº¥t "
+ "Info Ä‘ang Ä‘i ra Ä‘Ã³.\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "Ä�ang táº¡o táº­p tin %s Â« %s Â» tá»« Â« %s Â».\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Ä‘ang gá»¡ bá»� táº­p tin xuáº¥t vÄ© lá»‡nh Â« %s Â» do lá»—i; hÃ£y dÃ¹ng tÃ¹y chá»�n Â« --force "
+ "Â» (buá»™c) Ä‘á»ƒ báº£o tá»“n nÃ³.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr ""
+ "%s: Ä‘ang gá»¡ bá»� táº­p tin xuáº¥t Â« %s Â» do lá»—i; hÃ£y dÃ¹ng tÃ¹y chá»�n Â« --force "
+ "Â» (buá»™c) Ä‘á»ƒ báº£o tá»“n nÃ³.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr ""
+ "%s: Ä‘ang gá»¡ bá»� táº­p tin káº¿t xuáº¥t cÃ¡c liÃªn káº¿t ná»™i bá»™ Â« %s Â» do lá»—i; hÃ£y dÃ¹ng "
+ "tÃ¹y chá»�n Â« --force Â» (buá»™c) Ä‘á»ƒ báº£o tá»“n nÃ³.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "Lá»‡nh khÃ´ng rÃµ Â« %s Â»"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "DÃ¹ng dáº¥u ngoáº·c mÃ³c {} Ä‘á»ƒ Ä‘Æ°a ra lá»‡nh dáº¡ng Ä‘á»‘i sá»‘ tá»›i @%s"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s mong Ä‘á»£i dáº¥u ngoáº·c mÃ³c {}"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "ChÆ°a khá»›p }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "KhÃ´ng cÃ³ tÃªn."
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s: thiáº¿u dáº¥u ngoáº·c mÃ³c Ä‘Ã³ng Â« } Â»"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "Táº­p tin @image Â« %s Â» (cho HTML) khÃ´ng Ä‘á»�c Ä‘Æ°á»£c: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "KhÃ´ng cÃ³ táº­p tin nhÆ° váº­y Â« %s Â»"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "Táº­p tin @image Â« %s Â» (cho vÄƒn báº£n) khÃ´ng Ä‘á»�c Ä‘Æ°á»£c: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image thiáº¿u Ä‘á»‘i sá»‘ tÃªn táº­p tin"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "chÆ°a xÃ¡c Ä‘á»‹nh cá»� : %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{KhÃ´ng cÃ³ giÃ¡ trá»‹ cho Â« %s Â»}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s cáº§n Ä‘áº¿n tÃªn"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "Ä�Ã£ tá»›i káº¿t thÃºc táº­p tin trÆ°á»›c khi khá»›p @end %s"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "Â« %.40s... Â» quÃ¡ dÃ i Ä‘á»ƒ má»Ÿ rá»™ng nÃªn chÆ°a má»Ÿ rá»™ng"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "Thiáº¿u Â« } Â» trong máº«u @multitable"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "Ä�ang bá»� qua vÄƒn báº£n ráº£i rÃ¡c Â« %s Â» sau @multitable"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "QuÃ¡ nhiá»�u cá»™t trong má»¥c Ä‘a báº£ng (tá»‘i Ä‘Ã  lÃ  %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[báº¥t thÆ°á»�ng] khÃ´ng thá»ƒ chá»�n cá»™t sá»‘ %d trong Ä‘a báº£ng"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "Ä‘ang bá»� qua @tab bÃªn ngoÃ i Ä‘a báº£ng"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** Káº¿t xuáº¥t Ä‘a cá»™t tá»« hÃ ng cuá»‘i:\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* cá»™t sá»‘ %d; káº¿t xuáº¥t = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "NÃºt Â« %s Â» Ä‘Æ°á»£c xÃ¡c Ä‘á»‹nh trÆ°á»›c táº¡i dÃ²ng %d"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "Ä�ang Ä‘á»‹nh dáº¡ng nÃºt %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "NÃºt Â« %s Â» cáº§n Ä‘áº¿n lá»‡nh chia ra tá»«ng pháº§n (v.d. %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "ChÆ°a ghi rÃµ tÃªn nÃºt cho lá»‡nh Â« %c%s Â»"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Neo Â« %s Â» vÃ  nÃºt Â« %s Â» Ã¡nh xáº¡ vá»›i cÃ¹ng má»™t tÃªn táº­p tin"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "Lá»‡nh @anchor bá»‹ bá»� qua nÃªn tham chiáº¿u Ä‘áº¿n nÃ³ sáº½ khÃ´ng hoáº¡t Ä‘á»™ng"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr ""
+ "Thay Ä‘á»•i tÃªn neo nÃ y, hoáº·c dÃ¹ng tÃ¹y chá»�n Â« --no-split Â» (khÃ´ng chia tÃ¡ch)"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "Gáº·p chuá»—i báº¥t thÆ°á»�ng táº¡i káº¿t thÃºc táº­p tin HTML-tÃ¡ch Â« %s Â»"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Cáº£ hai neo Â« %s Â» vÃ  Â« %s Â» Ä‘á»�u Ã¡nh xáº¡ vá»›i cÃ¹ng má»™t tÃªn táº­p tin"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "Lá»‡nh @anchor bá»‹ bá»� qua nÃªn tham chiáº¿u Ä‘áº¿n nÃ³ sáº½ khÃ´ng hoáº¡t Ä‘á»™ng"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr ""
+ "%s tham chiáº¿u Ä‘áº¿n nÃºt khÃ´ng tá»“n táº¡i Â« %s Â» (cÃ³ láº½ Ä‘Ã£ chia ra tá»«ng pháº§n khÃ´ng "
+ "Ä‘Ãºng?)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ "KhÃ´ng cÃ³ gÃ¬ chá»‰ tá»›i trÆ°á»�ng káº¿ tiáº¿p cá»§a nÃºt Â« %s Â» (cÃ³ láº½ Ä‘Ã£ chia ra tá»«ng pháº§n "
+ "khÃ´ng Ä‘Ãºng?)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "NÃºt nÃ y (%s) cÃ³ LÃ¹i sai"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "KhÃ´ng cÃ³ gÃ¬ chá»‰ tá»›i trÆ°á»�ng trÆ°á»›c cá»§a nÃºt Â« %s Â»"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "NÃºt nÃ y (%s) cÃ³ Káº¿ sai"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "Â« %s Â» khÃ´ng cÃ³ trÆ°á»�ng LÃªn (cÃ³ láº½ Ä‘Ã£ chia ra tá»«ng pháº§n khÃ´ng Ä‘Ãºng?)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ "NÃºt Â« %s Â» khÃ´ng cÃ³ má»¥c trÃ¬nh Ä‘Æ¡n cho Â« %s Â», khÃ´ng ká»ƒ nÃºt nÃ y lÃ  Ä‘Ã­ch LÃªn cá»§a "
+ "nÃ³"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "nÃºt chÆ°a Ä‘Æ°á»£c tham chiáº¿u Â« %s Â»"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "Ä�ang gá»¡ bá»� %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "KhÃ´ng thá»ƒ gá»¡ bá»� táº­p tin Â« %s Â»: %s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "Phá»¥ lá»¥c %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "Lá»—i ná»™i bá»™ (search_sectioning) Â« %s Â»"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "Lá»—i ná»™i bá»™ (search_sectioning) Â« %s Â»."
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s quÃ¡ cÅ©; hÃ£y dÃ¹ng %c%s thay tháº¿"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "NÃºt cÃ³ tiáº¿t Ä‘oáº¡n %ctop Ä‘Ã£ cÃ³"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "Ä�Ã¢y lÃ  nÃºt %ctop"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop Ä‘Æ°á»£c dÃ¹ng trÆ°á»›c %cnode nÃªn dÃ¹ng giÃ¡ trá»‹ máº·c Ä‘á»‹nh %s"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "KhÃ´ng thá»ƒ Ä‘á»�c táº­p tin @image Â« %s Â»: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ "@headitem nhÆ° má»¥c cuá»‘i cá»§a @multitable thÃ¬ táº¡o tÃ i liá»‡u Docbook khÃ´ng há»£p lá»‡"
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr "cá»§a"
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr "trÃªn"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "Ä�á»‘i sá»‘ Ä‘áº§u tá»›i tham chiáº¿u chÃ©o cÃ³ láº½ khÃ´ng rá»—ng"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr "TÃªn táº­p tin rá»—ng cho tham chiáº¿u chÃ©o HTML trong Â« %s Â»"
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr "Tá»›i káº¿t thÃºc táº­p tin trong khi tÃ¬m dáº¥u cháº¥m Â« . Â» hay dáº¥u pháº©y Â« , Â»"
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "@%s pháº£i cÃ³ dáº¥u cháº¥m Â« . Â» hay dáº¥u pháº©y Â« , Â» theo sau, khÃ´ng pháº£i Â« %c Â»"
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "Ä‘á»‘i vá»›i tham chiáº¿u chÃ©o trong ngoáº·c, hÃ£y dÃ¹ng @pxref"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "Ä�á»‘i sá»‘ Ä‘áº§u tá»›i @inforef cÃ³ láº½ khÃ´ng rá»—ng"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "hiá»ƒn thá»‹ trá»£ giÃºp nÃ y rá»“i thoÃ¡t"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "xuáº¥t ra Táº¬P_TIN"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "hiá»ƒn thá»‹ thÃ´ng tin phiÃªn báº£n rá»“i thoÃ¡t"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "CÃ¡ch sá»­ dá»¥ng: %s [TÃ™Y_CHá»ŒN]... [Táº¬P_TIN]...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "Táº¡o ra chá»‰ má»¥c Ä‘Ã£ sáº¯p xáº¿p cho má»—i Táº¬P_TIN xuáº¥t TeX.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr ""
+ "ThÆ°á»�ng Táº¬P_TIN... Ä‘Æ°á»£c ghi rÃµ dáº¡ng Â« phu.%c%c Â» cho tÃ i liá»‡u dáº¡ng Â« phu.texi "
+ "Â».\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "TÃ¹y chá»�n:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "lá»—i má»Ÿ láº¡i %s"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: khÃ´ng pháº£i táº­p tin chá»‰ má»¥c texinfo"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "KhÃ´ng cÃ³ sá»‘ thá»© tá»± trang trong %s"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "má»¥c nháº­p %s náº±m theo má»™t má»¥c nháº­p cÃ³ tÃªn phá»¥"
Files texinfo-4.12/po/zh_CN.gmo and texinfo-4.13/po/zh_CN.gmo differ
diff -Nrc2 texinfo-4.12/po/zh_CN.po texinfo-4.13/po/zh_CN.po
*** texinfo-4.12/po/zh_CN.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/zh_CN.po	Thu Sep 18 11:38:33 2008
***************
*** 0 ****
--- 1,3464 ----
+ # Chinese Simplified translation about texinfo.
+ # Copyright (C) 2002 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the texinfo package.
+ # Wang Li <charles@linux.net.cn>, 2002.
+ # Ji ZhengYu <zhengyuji@gmail.com>, 2008
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.12.94\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2008-08-17 12:56ä¸­å›½æ ‡å‡†æ—¶é—´\n"
+ "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
+ "Language-Team: Chinese (simplified) <translation-team-zh-cn@lists."
+ "sourceforge.net>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr "æœªçŸ¥çš„ç³»ç»Ÿé”™è¯¯"
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%sï¼šé€‰é¡¹â€œ%sâ€�å�«ä¹‰ä¸�æ˜Žç¡®\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%sï¼šé€‰é¡¹â€œ--%sâ€�ä¸�æŽ¥å�—å�‚æ•°\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%sï¼šé€‰é¡¹â€œ%c%sâ€�ä¸�æŽ¥å�—å�‚æ•°\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%sï¼šé€‰é¡¹â€œ%sâ€�éœ€è¦�ä¸€ä¸ªå�‚æ•°\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%sï¼šä¸�èƒ½è¯†åˆ«çš„é€‰é¡¹â€œ--%sâ€�\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%sï¼šä¸�èƒ½è¯†åˆ«çš„é€‰é¡¹â€œ%c%sâ€�\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%sï¼šé�žæ³•é€‰é¡¹ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%sï¼šæ— æ•ˆé€‰é¡¹ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%sï¼šé€‰é¡¹éœ€è¦�ä¸€ä¸ªå�‚æ•° -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%sï¼šé€‰é¡¹â€œ-W %sâ€�çš„å�«ä¹‰ä¸�æ¸…\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%sï¼šé€‰é¡¹â€œ-W %sâ€�ä¸�æŽ¥å�—å�‚æ•°\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, c-format
+ msgid "memory exhausted"
+ msgstr "è™šæ‹Ÿå†…å­˜è€—å°½"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "å�‘å‰�ç§»åŠ¨ä¸€ä¸ªå­—ç¬¦"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "å�‘å�Žç§»åŠ¨ä¸€ä¸ªå­—ç¬¦"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "ç§»åŠ¨åˆ°æœ¬è¡Œçš„å¼€å¤´"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "ç§»åŠ¨åˆ°æœ¬è¡Œçš„æœ«å°¾"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "å�‘å‰�ç§»åŠ¨ä¸€ä¸ªå�•è¯�"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "å�‘å�Žç§»åŠ¨ä¸€ä¸ªå�•è¯�"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "åˆ é™¤å…‰æ ‡ä½�ç½®çš„å­—ç¬¦"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "åˆ é™¤å…‰æ ‡ä¹‹å�Žçš„å­—ç¬¦"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "å�–æ¶ˆæˆ–é€€å‡ºæ“�ä½œ"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "æŽ¥å�—(æˆ–å¼ºåˆ¶å®Œæˆ�)æœ¬è¡Œ"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "åŽŸæ ·æ�’å…¥ä¸‹ä¸€ä¸ªå­—ç¬¦"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "æ�’å…¥è¯¥å­—ç¬¦"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "æ�’å…¥ä¸€ä¸ª tab å­—ç¬¦"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "å�˜æ�¢å…‰æ ‡å¤„å­—ç¬¦çš„æ¬¡åº�"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "ç²˜è´´æœ€å�Žä¸€æ¬¡å‰ªåˆ‡çš„å†…å®¹"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "å‰ªè´´ç°¿ä¸ºç©º"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "ç²˜è´´ä¸Šæ¬¡å‰ªåˆ‡"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "å‰ªåˆ‡è‡³æœ¬è¡Œæœ«å°¾"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "å‰ªåˆ‡è‡³æœ¬è¡Œå¼€å¤´"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "å‰ªåˆ‡å…‰æ ‡ä¹‹å�Žçš„å�•è¯�"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "å‰ªåˆ‡å…‰æ ‡ä¹‹å‰�çš„å�•è¯�"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "æ²¡æœ‰è¡¥é½�"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "æœªè¡¥é½�"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "åˆ—ä¸¾å�¯èƒ½çš„è¡¥é½�"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "å”¯ä¸€çš„è¡¥é½�"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "ä¸€ä¸ªè¡¥é½�ï¼š\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d ä¸ªè¡¥é½�ï¼š\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "æ�’å…¥è¡¥é½�"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "æ­£åœ¨åˆ›å»ºè¡¥é½�..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "æ»šåŠ¨è¡¥é½�çª—å�£"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "æ— æ³•æ˜¾ç¤ºè„šæ³¨"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "åœ¨å�¦ä¸€ä¸ªçª—å�£ä¸­æ˜¾ç¤ºäºŽè¯¥èŠ‚ç‚¹ç›¸å…³çš„è„šæ³¨"
+ 
+ #: info/footnotes.h:26
+ msgid "---------- Footnotes ----------"
+ msgstr "---------- è„šæ³¨ ----------"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "åœ¨æœ¬æ–‡ä»¶çš„ç´¢å¼•ä¸­æ�œç´¢å­—ç¬¦ä¸²"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "æ­£åœ¨æ�œç´¢ç´¢å¼•æ�¡ç›®..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "æœªæ‰¾åˆ°ç´¢å¼•ã€‚"
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "ç´¢å¼•æ�¡ç›®ï¼š"
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr "ä»Žæœ€å�Žä¸€ä¸ªâ€œ\\[index-search]â€�å‘½ä»¤è½¬ç§»åˆ°ä¸‹ä¸€ä¸ªåŒ¹é…�çš„ç´¢å¼•é¡¹ç›®"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "æ²¡æœ‰ä¸Šä¸€ä¸ªç´¢å¼•æ�œç´¢å­—ç¬¦ä¸²ã€‚"
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "æ²¡æœ‰ç´¢å¼•æ�¡ç›®ã€‚"
+ 
+ #: info/indices.c:374
+ #, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "æ²¡æœ‰ %sç´¢å¼•æ�¡ç›®å�«æœ‰â€œ%sâ€�ã€‚"
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "æ›´å¤š "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr "çœ‹ä¸�åˆ°è¿™ä¸ª"
+ 
+ #: info/indices.c:421
+ #, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "åœ¨ %2$s ä¸­æ‰¾åˆ°â€œ%1$sâ€�ã€‚(â€œ\\[next-index-match]â€�å°†è¯•å›¾å¯»æ‰¾ä¸‹ä¸€ä¸ªåŒ¹é…�ã€‚)"
+ 
+ #: info/indices.c:549
+ #, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "æ­£åœ¨æ�œç´¢â€œ%sâ€�çš„ç´¢å¼•..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr "åœ¨å�¯ç”¨çš„ info æ–‡ä»¶çš„ç´¢å¼•ä¸­å�‡ä¸�å�«æœ‰â€œ%sâ€�ã€‚"
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr "æ•´ç�†æ‰€æœ‰å·²çŸ¥ info æ–‡ä»¶å�«æœ‰è¢«æŸ¥è¯¢å­—ç¬¦ä¸²çš„ç´¢å¼•å¹¶å»ºç«‹ä¸€ä¸ªè�œå�•"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr "ç´¢å¼•å�«æœ‰ï¼š"
+ 
+ #: info/indices.c:662
+ #, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* è�œå�•ï¼šå…¶ç´¢å¼•å�«æœ‰â€œ%sâ€�çš„èŠ‚ç‚¹ï¼š\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "å°�è¯• --æ›´å¤šçš„æ±‚åŠ©ä¿¡æ�¯ã€‚\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "æ‰¾ä¸�åˆ°å�«æœ‰â€œ%sâ€�çš„ç´¢å¼•\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ "ç”¨æ³•: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "ä»¥ Info æ ¼å¼�é˜…è¯»æ–‡æ¡£ã€‚\n"
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ "é€‰é¡¹:\n"
+ "  -k, --apropos=STRING         åœ¨æ‰€æœ‰æ‰‹å†Œé¡µçš„ç´¢å¼•ä¸­æŸ¥æ‰¾ STRINGã€‚\n"
+ "  -d, --directory=DIR          å°† DIR æ·»åŠ è‡³ INFOPATHã€‚\n"
+ "      --dribble=FILENAME       å°†ç”¨æˆ·çš„å‡»é”®æ�¡ç›®åœ¨ FILENAME ä¸­ã€‚\n"
+ "  -f, --file=FILENAME          æŒ‡å®šæƒ³æµ�è§ˆçš„ Info æ–‡ä»¶ã€‚"
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ "  -h, --help                   æ˜¾ç¤ºæ­¤å¸®åŠ©å¹¶é€€å‡ºã€‚\n"
+ "      --index-search=STRING    è·³è½¬è‡³ç´¢å¼•æ�¡ç›® STRING æ‰€æŒ‡çš„èŠ‚ç‚¹ã€‚\n"
+ "  -n, --node=NODENAME          åœ¨é¦–ä¸ªæµ�è§ˆè¿‡çš„ Info æ–‡ä»¶ä¸­æŒ‡å®šèŠ‚ç‚¹ã€‚\n"
+ "  -o, --output=FILENAME        å°†é€‰ä¸­çš„èŠ‚ç‚¹å…¨è¾“å‡ºè‡³ FILENAMEã€‚"
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ "  -R, --raw-escapes            è¾“å‡ºâ€œåŽŸå§‹â€�çš„ ANSI è½¬ä¹‰ç¬¦(é»˜è®¤)ã€‚\n"
+ "      --no-raw-escapes         å°†è½¬ä¹‰ç¬¦è¾“å‡ºä¸ºæ™®é€šæ–‡æœ¬ã€‚\n"
+ "      --restore=FILENAME       ä»Ž FILENAME ä¸­è¯»å�–åˆ�å§‹å‡»é”®æ�¡ç›®ã€‚\n"
+ "  -O, --show-options, --usage  è·³è½¬è‡³å‘½ä»¤è¡Œé€‰é¡¹èŠ‚ç‚¹ã€‚"
+ 
+ #: info/info.c:626
+ #, fuzzy
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr "  -b, --speech-friendly        å¯¹å�‘éŸ³å™¨å�‹å¥½ã€‚"
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ "      --subnodes               é€’å½’è¾“å‡ºè�œå�•é¡¹ã€‚\n"
+ "      --vi-keys                ä½¿ç”¨ç±»ä¼¼äºŽ vi å’Œ less çš„æŒ‰é”®ç»‘å®šã€‚\n"
+ "      --version                æ˜¾ç¤ºç‰ˆæœ¬ä¿¡æ�¯å¹¶é€€å‡ºã€‚\n"
+ "  -w, --where, --location      æ‰“å�° Info æ–‡ä»¶åœ¨ç³»ç»Ÿä¸­çš„ä½�ç½®ã€‚"
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ "\n"
+ "å¦‚æžœå­˜åœ¨ç¬¬ä¸€ä¸ªé�žé€‰é¡¹å�‚æ•°ï¼Œå®ƒå°†æ˜¯ä¸ªç”¨äºŽèµ·å§‹çš„è�œå�•æ�¡ç›®ï¼›\n"
+ "æ‰€æœ‰åœ¨ INFOPATH å�˜é‡�å�Žè·Ÿç�€çš„â€œdirâ€�æ–‡ä»¶éƒ½ä¼šæ�œç´¢æ­¤æ�¡ç›®ã€‚\n"
+ "å¦‚æžœä¸�å­˜åœ¨æ­¤å�‚æ•°ï¼Œinfo å�ˆå¹¶æ‰€æœ‰â€œdirâ€�æ–‡ä»¶å¹¶æ˜¾ç¤ºç»“æžœã€‚\n"
+ "ä»»ä½•å�Žç»­å�‚æ•°éƒ½è¢«è®¤ä¸ºæ˜¯ä¸Žåˆ�å§‹æµ�è§ˆ\n"
+ "èŠ‚ç‚¹æœ‰å…³çš„è�œå�•é¡¹å��ç§°ã€‚"
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ "\n"
+ "åœ¨å¸®åŠ©ä¿¡æ�¯ä¸­æŒ‰ h èŽ·å�–æœ‰å…³æŒ‰é”®ç»‘å®šçš„å†…å®¹ã€‚"
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ "\n"
+ "èŒƒä¾‹:\n"
+ "  info                       æ˜¾ç¤ºé¡¶çº§ç›®å½•è�œå�•\n"
+ "  info info                  æ˜¾ç¤º Info readers çš„æ™®é€šæ‰‹å†Œ\n"
+ "  info info-stnd             æ˜¾ç¤ºæ­¤ Info ç¨‹åº�ç‰¹å®šæ‰‹å†Œ\n"
+ "  info emacs                 ä»Žé¡¶çº§ç›®å½•æµ�è§ˆ emacs èŠ‚ç‚¹\n"
+ "  info emacs buffers         åœ¨ emacs æ‰‹å†Œé¡µä¸­æµ�è§ˆ buffers èŠ‚ç‚¹\n"
+ "  info --show-options emacs  æµ�è§ˆä¸Ž emacs çš„å‘½ä»¤è¡Œé€‰é¡¹æœ‰å…³çš„èŠ‚ç‚¹\n"
+ "  info --subnodes -o out.txt emacs  å°†æ•´ä¸ªæ‰‹å†Œé¡µè¾“å‡ºè‡³ out.txt\n"
+ "  info -f ./foo.info         æ˜¾ç¤ºæ–‡ä»¶ ./foo.infoï¼Œè€Œä¸�æ˜¯æŸ¥æ‰¾ç›®å½•"
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "è¯·å°†é”™è¯¯æŠ¥å‘Šå�‘é€�åˆ° bug-texinfo@gnu.orgï¼Œ\n"
+ "ä¸€èˆ¬çš„é—®é¢˜å’Œè®¨è®ºè¯·å�‘é€�åˆ° help-texinfo@gnu.orgã€‚\n"
+ "Texinfo ä¸»é¡µï¼šhttp://www.gnu.org/software/texinfo/"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "æ— æ³•æ‰¾åˆ°èŠ‚ç‚¹â€œ%sâ€�ã€‚"
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "æ— æ³•æ‰¾åˆ°èŠ‚ç‚¹â€œ(%s)%sâ€�ã€‚"
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "æ— æ³•æ‰¾åˆ°ä¸€ä¸ªçª—å�£ï¼�"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "å…‰æ ‡æ²¡æœ‰å‡ºçŽ°åœ¨è¯¥çª—å�£çš„èŠ‚ç‚¹ä¹‹ä¸­ï¼�"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "æ— æ³•åˆ é™¤æœ€å�Žçš„çª—å�£ã€‚"
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "è¯¥èŠ‚ç‚¹ä¸­æ²¡æœ‰è�œå�•ã€‚"
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "è¯¥èŠ‚ç‚¹ä¸­æ²¡æœ‰è„šæ³¨ã€‚"
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "è¯¥èŠ‚ç‚¹ä¸­æ²¡æœ‰äº¤å�‰å¼•ç”¨ã€‚"
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "è¯¥èŠ‚ç‚¹ä¸­æ²¡æœ‰â€œ%sâ€�æŒ‡é’ˆ"
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "æœªçŸ¥çš„ Info å‘½ä»¤â€œ%câ€�ï¼›è¯·ä»¥â€œ?â€�èŽ·å¾—å¸®åŠ©ã€‚"
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "ç»ˆç«¯ç±»åž‹â€œ%sâ€�çš„èƒ½åŠ›ä¸�è¶³ä»¥æ”¯æŒ� Info çš„è¿�è¡Œã€‚"
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "æ‚¨å·²ç»�åœ¨è¯¥èŠ‚ç‚¹çš„æœ€å�Žä¸€ä¸ªé¡µé�¢ä¸­äº†ã€‚"
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "æ‚¨å·²ç»�åœ¨è¯¥èŠ‚ç‚¹çš„ç¬¬ä¸€é¡µä¸­äº†ã€‚"
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "å�ªæœ‰ä¸€ä¸ªçª—å�£ã€‚"
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "ç»“æžœçª—å�£å°†ä¼šå¤ªå°�ã€‚"
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "æ²¡æœ‰è¶³å¤Ÿçš„ç©ºé—´ç”¨äºŽæ±‚åŠ©çª—å�£ï¼Œè¯·åˆ é™¤ä¸€ä¸ªçª—å�£ã€‚"
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr "åŸºæœ¬ Info å‘½ä»¤æŒ‰é”®\n"
+ 
+ #: info/infodoc.c:47
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "\\%-10[quit-help]  å…³é—­æ­¤å¸®åŠ©çª—å�£ã€‚\n"
+ 
+ #: info/infodoc.c:48
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "\\%-10[quit]  ä¸€å¹¶é€€å‡º Infoã€‚\n"
+ 
+ #: info/infodoc.c:49
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "\\%-10[get-info-help-node]  è°ƒç”¨ Info æ•™ç¨‹ã€‚\n"
+ 
+ #: info/infodoc.c:51
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "\\%-10[prev-line]  å�‘ä¸Šç§»åŠ¨ä¸€è¡Œã€‚\n"
+ 
+ #: info/infodoc.c:52
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "\\%-10[next-line]  å�‘ä¸‹ç§»åŠ¨ä¸€è¡Œã€‚\n"
+ 
+ #: info/infodoc.c:53
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "\\%-10[scroll-backward]  å�‘å�Žæ»šåŠ¨ä¸€é¡µã€‚\n"
+ 
+ #: info/infodoc.c:54
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "\\%-10[scroll-forward]  å�‘å‰�æ»šåŠ¨ä¸€é¡µã€‚\n"
+ 
+ #: info/infodoc.c:55
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "\\%-10[beginning-of-node]  ç§»åŠ¨åˆ°æœ¬èŠ‚ç‚¹çš„å¼€å¤´ã€‚\n"
+ 
+ #: info/infodoc.c:56
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "\\%-10[end-of-node]  ç§»åŠ¨åˆ°æœ¬èŠ‚ç‚¹çš„æœ«å°¾ã€‚\n"
+ 
+ #: info/infodoc.c:58
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "\\%-10[move-to-next-xref]  è·³è½¬åˆ°ä¸‹ä¸€ä¸ªè¶…æ–‡æœ¬è¿žæŽ¥ã€‚\n"
+ 
+ #: info/infodoc.c:59
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr "\\%-10[select-reference-this-line]  è·Ÿéš�å…‰æ ‡ä¸‹çš„è¶…æ–‡æœ¬è¿žæŽ¥ã€‚\n"
+ 
+ #: info/infodoc.c:60
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "\\%-10[history-node]  ç§»åŠ¨åˆ°æœ¬çª—å�£çš„æœ€å�Žé˜…è¯»è¿‡çš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:62
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "\\%-10[global-prev-node]  ç§»åŠ¨åˆ°æœ¬æ–‡æ¡£çš„ä¸Šä¸€ä¸ªèŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:63
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "\\%-10[global-next-node]  ç§»åŠ¨åˆ°æœ¬æ–‡æ¡£çš„ä¸‹ä¸€ä¸ªèŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:64
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "\\%-10[prev-node]  ç§»åŠ¨åˆ°å�Œçº§çš„ä¸Šä¸€ä¸ªèŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:65
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "\\%-10[next-node]  ç§»åŠ¨åˆ°å�Œçº§çš„ä¸‹ä¸€ä¸ªèŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:66
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "\\%-10[up-node]  ä¸Šç§»ä¸€å±‚ã€‚\n"
+ 
+ #: info/infodoc.c:67
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "\\%-10[top-node]  ç§»åˆ°æ­¤æ–‡æ¡£çš„é¡¶å±‚èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:68
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "\\%-10[dir-node]  ç§»åŠ¨åˆ°ä¸»â€œç›®å½•â€�èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:70
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "1...9\t\té€‰å�–èŠ‚ç‚¹è�œå�•ä¸­çš„ç¬¬ä¸€è‡³ç¬¬ä¹�ä¸ªé¡¹ç›®ã€‚\n"
+ 
+ #: info/infodoc.c:71
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "\\%-10[last-menu-item]  é€‰å�–èŠ‚ç‚¹è�œå�•çš„æœ€å�Žä¸€ä¸ªé¡¹ç›®ã€‚\n"
+ 
+ #: info/infodoc.c:72
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "\\%-10[menu-item]  é€‰å�–ç”±å��ç§°æŒ‡å®šçš„è�œå�•é¡¹ç›®ã€‚\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "\\%-10[xref-item]  è·Ÿéš�ç”±å��ç§°æŒ‡å®šçš„äº¤å�‰å¼•ç”¨ã€‚\n"
+ 
+ #: info/infodoc.c:74
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "\\%-10[goto-node]  ç§»åŠ¨åˆ°ç”±å��å­—æŒ‡å®šçš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:76
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "\\%-10[search]  å�‘å‰�æ�œç´¢æŒ‡å®šçš„å­—ç¬¦ä¸²ã€‚\n"
+ 
+ #: info/infodoc.c:77
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "\\%-10[search-previous]  æŸ¥æ‰¾ä¸Šä¸€ä¸ªå‡ºçŽ°ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:78
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "\\%-10[search-next]  æŸ¥æ‰¾ä¸‹ä¸€ä¸ªå‡ºçŽ°ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:79
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr ""
+ "\\%-10[index-search]  åœ¨ç´¢å¼•æ�¡ç›®ä¸­æ�œç´¢æŒ‡å®šçš„å­—ç¬¦ä¸²ï¼Œ\n"
+ "              å¹¶é€‰æ‹©ç¬¬ä¸€ä¸ªæ‰¾åˆ°çš„æ�¡ç›®æ‰€å¼•ç”¨çš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:81
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "\\%-10[abort-key]  å�–æ¶ˆå½“å‰�æ“�ä½œã€‚\n"
+ 
+ #: info/infodoc.c:89
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr ""
+ "Info çª—å�£ä¸­çš„åŸºæœ¬å‘½ä»¤\n"
+ "******************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  é€€å‡ºæœ¬æ±‚åŠ©ã€‚\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  ä¸€å¹¶é€€å‡º Infoã€‚\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  è°ƒç”¨ Info æ•™ç¨‹ã€‚\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  ç§»åŠ¨åˆ°æœ¬èŠ‚ç‚¹çš„â€œä¸‹ä¸€ä¸ªâ€�èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  ç§»åŠ¨åˆ°æœ¬èŠ‚ç‚¹çš„â€œä¸Šä¸€ä¸ªâ€�èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  ç§»åŠ¨åˆ°æœ¬èŠ‚ç‚¹çš„â€œä¸Šå±‚â€�èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:101
+ #, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr ""
+ "  %-10s  é€‰å�–ç”±å��ç§°æŒ‡å®šçš„è�œå�•é¡¹ç›®ã€‚\n"
+ "              é€‰å�–ä¸€ä¸ªè�œå�•é¡¹ç›®å¯¼è‡´é€‰ä¸­å�¦ä¸€ä¸ªèŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  è·Ÿéš�äº¤å�‰å¼•ç”¨ã€‚è¯»å�–å¼•ç”¨çš„å��ç§°ã€‚\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  ç§»åŠ¨åˆ°æœ¬çª—å�£ä¸­çš„æœ€å�Žä¸€ä¸ªå�¯è§�çš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  è·³è½¬åˆ°æœ¬èŠ‚ç‚¹ä¸­çš„ä¸‹ä¸€ä¸ªè¶…æ–‡æœ¬è¿žæŽ¥ã€‚\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  è·Ÿéš�å…‰æ ‡ä½�ç½®çš„è¶…æ–‡æœ¬è¿žæŽ¥ã€‚\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  ç§»åŠ¨åˆ°â€œdirectoryâ€�èŠ‚ç‚¹ã€‚ç­‰ä»·äºŽâ€œg (DIR)â€�ã€‚\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  ç§»åŠ¨åˆ°é¡¶å±‚èŠ‚ç‚¹ã€‚ç­‰ä»·äºŽâ€œg Topâ€�ã€‚\n"
+ 
+ #: info/infodoc.c:110
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr ""
+ "åœ¨ä¸€ä¸ªèŠ‚ç‚¹ä¸­ç§»åŠ¨ï¼š\n"
+ "---------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  å�‘å‰�æ»šåŠ¨ä¸€é¡µã€‚\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  å�‘å�Žæ»šåŠ¨ä¸€é¡µã€‚\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  è½¬ç§»åˆ°æœ¬èŠ‚ç‚¹çš„å¼€å¤´ã€‚\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  è½¬ç§»åˆ°æœ¬èŠ‚ç‚¹çš„æœ«å°¾ã€‚\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  å�‘å‰�æ»šåŠ¨ä¸€è¡Œã€‚\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  å�‘å�Žæ»šåŠ¨ä¸€è¡Œã€‚\n"
+ 
+ #: info/infodoc.c:119
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr ""
+ "å…¶å®ƒå‘½ä»¤ï¼š\n"
+ "---------------\n"
+ 
+ #: info/infodoc.c:121
+ #, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  é€‰å�–èŠ‚ç‚¹è�œå�•ä¸­çš„ç¬¬ä¸€è‡³ç¬¬ä¹�ä¸ªé¡¹ç›®ã€‚\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  é€‰å�–èŠ‚ç‚¹è�œå�•ä¸­çš„æœ€å�Žä¸€ä¸ªé¡¹ç›®ã€‚\n"
+ 
+ #: info/infodoc.c:125
+ #, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr ""
+ "  %-10s  åœ¨æœ¬ Info æ–‡ä»¶çš„ç´¢å¼•æ�¡ç›®ä¸­æ�œç´¢æŒ‡å®šçš„å­—ç¬¦ä¸²ï¼Œ\n"
+ "              å¹¶é€‰æ‹©ç¬¬ä¸€ä¸ªæ‰¾åˆ°çš„æ�¡ç›®æ‰€å¼•ç”¨çš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:127
+ #, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr ""
+ "  %-10s   ç§»åŠ¨åˆ°ç”±å��å­—æŒ‡å®šçš„èŠ‚ç‚¹ã€‚\n"
+ "              æ‚¨ä¹Ÿå�¯åœ¨ (FILENAME)NODENAME ä¸­åŒ…å�«æ–‡ä»¶å��ã€‚\n"
+ 
+ #: info/infodoc.c:129
+ #, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s    å�‘å‰�æ�œç´¢æŒ‡å®šçš„å­—ç¬¦ä¸²ï¼Œ\n"
+ "              å¹¶é€‰æ‹©æ‰€æ‰¾åˆ°çš„ä¸‹ä¸€ä¸ªå®žä¾‹æ‰€åœ¨çš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:131
+ #, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr ""
+ "  %-10s    å�‘å�Žæ�œç´¢æŒ‡å®šçš„å­—ç¬¦ä¸²ï¼Œ\n"
+ "              å¹¶é€‰æ‹©æ‰€æ‰¾åˆ°çš„ä¸‹ä¸€ä¸ªå®žä¾‹æ‰€åœ¨çš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "å½“å‰�æ�œç´¢è·¯å¾„ä¸ºï¼š\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "Info çª—å�£ä¸­å�¯ç”¨çš„å‘½ä»¤ï¼š\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "å›žæ˜¾åŒºä¸­å�¯ç”¨çš„å‘½ä»¤ï¼š\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "ä»¥ä¸‹å‘½ä»¤å�ªèƒ½é€šè¿‡ %s è°ƒç”¨ï¼š\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "ä»¥ä¸‹å‘½ä»¤æ ¹æœ¬æ— æ³•è°ƒç”¨ï¼š\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "æ˜¾ç¤ºæ±‚åŠ©æ¶ˆæ�¯"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "è®¿é—® Info èŠ‚ç‚¹â€œ(info)Helpâ€�"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "æ‰“å�°å…³äºŽ KEY çš„æ–‡æ¡£"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "è¯´æ˜ŽæŒ‰é”®ï¼š%s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s æœªå®šä¹‰ã€‚"
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s æœªå®šä¹‰ã€‚"
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s è¢«å®šä¹‰ä¸º %sã€‚"
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "æ˜¾ç¤ºæ‰§è¡Œç»™å®šå‘½ä»¤æ‰€éœ€çš„æŒ‰é”®"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr "å‘½ä»¤ä¸º:"
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "â€œ%sâ€�æœªç»‘å®šåˆ°ä»»ä½•æŒ‰é”®"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s ä¸�èƒ½é€šè¿‡ %s è°ƒç”¨ã€‚"
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s å�¯ä»¥é€šè¿‡ %s è°ƒç”¨ã€‚"
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "æ²¡æœ‰å��ä¸ºâ€œ%sâ€�çš„å‡½æ•°"
+ 
+ #: info/infodoc.c:96
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr ""
+ "é€‰æ‹©å…¶å®ƒèŠ‚ç‚¹ï¼š\n"
+ "----------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr "é”™è¯¯çš„å�‚æ•°æ•°"
+ 
+ #: info/infokey.c:201
+ #, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "æ— æ³•æ‰“å¼€è¾“å…¥æ–‡ä»¶â€œ%sâ€�"
+ 
+ #: info/infokey.c:215
+ #, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "æ— æ³•åˆ›å»ºè¾“å‡ºæ–‡ä»¶â€œ%sâ€�"
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr "å†™å…¥â€œ%sâ€�æ—¶å‡ºé”™"
+ 
+ #: info/infokey.c:232
+ #, c-format
+ msgid "error closing output file `%s'"
+ msgstr "å…³é—­è¾“å‡ºæ–‡ä»¶â€œ%sâ€�æ—¶å‡ºé”™"
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr "æŒ‰é”®åº�åˆ—è¿‡é•¿"
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr "é�—æ¼�æŒ‰é”®åº�åˆ—"
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr "ä¸�å…�è®¸çš„ç©ºå­—ç¬¦ (\\\\000)"
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr "ä¸�å…�è®¸çš„ç©ºå­—ç¬¦ (^%c)"
+ 
+ #: info/infokey.c:665
+ msgid "missing action name"
+ msgstr "é�—æ¼�åŠ¨ä½œå��ç§°"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr "èŠ‚å¤ªé•¿"
+ 
+ #: info/infokey.c:688
+ #, c-format
+ msgid "unknown action `%s'"
+ msgstr "æœªçŸ¥çš„åŠ¨ä½œâ€œ%sâ€�"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr "åŠ¨ä½œå��è¿‡é•¿"
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr "åŠ¨ä½œâ€œ%sâ€�ä¹‹å�Žå‡ºçŽ°é¢�å¤–çš„å­—ç¬¦"
+ 
+ #: info/infokey.c:723
+ msgid "missing variable name"
+ msgstr "é�—æ¼�å�˜é‡�å��"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr "å�˜é‡�å��ä¹‹å�Žé�—æ¼�äº†â€œ=â€�"
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr "å�˜é‡�å��è¿‡é•¿"
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr "å€¼è¿‡é•¿"
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr "â€œ%sâ€�ï¼Œè¡Œ %uï¼š"
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ "ç”¨æ³•ï¼š%s [é€‰é¡¹]... [è¾“å…¥æ–‡ä»¶]\n"
+ "\n"
+ "å°† infokey æº�æ–‡ä»¶ç¼–è¯‘ä¸º infokey æ–‡ä»¶ã€‚è¯»å�–è¾“å…¥æ–‡ä»¶(é»˜è®¤ä¸º\n"
+ "$HOME/.infokey) å¹¶å°†ç¼–è¯‘å®Œæˆ�çš„é”®æ–‡ä»¶å†™å…¥åˆ° (é»˜è®¤ä¸º) $HOME/.infoã€‚\n"
+ "\n"
+ "é€‰é¡¹ï¼š\n"
+ "  --output FILE        è¾“å‡ºåˆ°æ–‡ä»¶ FILE è€Œä¸�æ˜¯ $HOME/.info ä¸­ã€‚\n"
+ "  --help               æ˜¾ç¤ºè¯¥æ±‚åŠ©ä¿¡æ�¯å¹¶é€€å‡ºã€‚\n"
+ "  --version            æ˜¾ç¤ºç‰ˆæœ¬ä¿¡æ�¯å¹¶é€€å‡ºã€‚\n"
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr "å¿½ç•¥é�žæ³•çš„ infokey æ–‡ä»¶â€œ%sâ€� - å¤ªå°�"
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr "å¿½ç•¥é�žæ³•çš„ infokey æ–‡ä»¶â€œ%sâ€� - å¤ªå¤§"
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr "è¯»å…¥ infokey æ–‡ä»¶â€œ%sâ€�æ—¶å‡ºé”™ - è¯»å…¥ä¸­æ–­"
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr "é�žæ³•çš„ infokey æ–‡ä»¶â€œ%sâ€� (é”™è¯¯çš„ magic ç¼–å�·) -- è¿�è¡Œ infokey ä»¥ä¾¿æ›´æ–°"
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr "æ‚¨çš„ infokey æ–‡ä»¶â€œ%sâ€� è¿‡æ—¶äº† -- è¿�è¡Œ infokey ä»¥ä¾¿æ›´æ–°"
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr "é�žæ³•çš„ infokey æ–‡ä»¶â€œ%sâ€� (é”™è¯¯çš„èŠ‚é•¿åº¦) -- è¿�è¡Œ infokey ä»¥ä¾¿æ›´æ–°"
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr "é�žæ³•çš„ infokey æ–‡ä»¶â€œ%sâ€� (é”™è¯¯çš„èŠ‚ç¼–ç �) -- è¿�è¡Œ infokey ä»¥ä¾¿æ›´æ–°"
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr "infokey æ–‡ä»¶ä¸­çš„é”™è¯¯æ•°æ�® -- å¿½ç•¥æŸ�äº›æŒ‰é”®ç»‘å®š"
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr "infokey æ–‡ä»¶ä¸­çš„é”™è¯¯æ•°æ�® -- å¿½ç•¥æŸ�äº›å�˜é‡�è®¾ç½®"
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "è¯»å�– Info å‘½ä»¤å��ç§°å¹¶è¯´æ˜Žå®ƒ"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "è¯´æ˜Žå‘½ä»¤ï¼š"
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "åœ¨å›žæ˜¾åŒºè¯»å…¥å‘½ä»¤å��å¹¶æ‰§è¡Œå®ƒ"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "æ— æ³•åœ¨è¿™é‡Œè¿�è¡Œâ€œå›žæ˜¾åŒºâ€�å‘½ä»¤ã€‚"
+ 
+ #: info/m-x.c:153
+ #, c-format
+ msgid "Undefined command: %s"
+ msgstr "æœªå®šä¹‰çš„å‘½ä»¤: %s"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "è®¾å®šæ˜¾ç¤ºçª—å�£çš„é«˜åº¦"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "å°†å±�å¹•é«˜åº¦è®¾ç½®ä¸º (%d)ï¼š"
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ "   æ•´ç�†æº�æ–‡ä»¶ä»¥ä½¿æœ¬æ–‡ä»¶åŒ…æ‹¬ï¼š\n"
+ "\n"
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "æ— æ³•æ“�ä½œæ–‡ä»¶ %sã€‚\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* è�œå�•ï¼š\n"
+ "  (æ–‡ä»¶)èŠ‚ç‚¹                         è¡Œ      å¤§å°�    å�«æœ‰æ–‡ä»¶\n"
+ "  ----------                        -----   ----   ---------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "è¿™é‡Œæ˜¯æ‚¨æœ€è¿‘è®¿é—®èŠ‚ç‚¹çš„è�œå�•ã€‚\n"
+ "ä»Žè�œå�•ä¸­é€‰æ‹©ä¸€ä¸ªï¼Œæˆ–åœ¨å…¶å®ƒçª—å�£ä¸­ä½¿ç”¨â€œ\\[history-node]â€�ã€‚\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "ä½¿ä¸€ä¸ªçª—å�£å�«æœ‰ä¸€ä¸ªåŒ…æ‹¬æ‰€æœ‰å½“å‰�è®¿é—®èŠ‚ç‚¹çš„è�œå�•"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "é€‰æ‹©ä¸€ä¸ªå·²ç»�åœ¨å�¯è§�çš„çª—å�£ä¸­è®¿é—®çš„èŠ‚ç‚¹"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "é€‰æ‹©å·²è®¿é—®çš„èŠ‚ç‚¹ï¼š"
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "å¼•ç”¨æ¶ˆå¤±äº†ï¼�(%s)ã€‚"
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr "æ­£åˆ™è¡¨è¾¾å¼�é”™è¯¯: %s"
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "æ¬¢è¿Žä½¿ç”¨ Info %s ç‰ˆã€‚è¾“å…¥ \\[get-help-window] ä»¥èŽ·å¾—å¸®åŠ©ï¼Œ\\[menu-item] å°†å¾—"
+ "åˆ°è�œå�•ã€‚"
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "å�‘ä¸‹ç§»åŠ¨åˆ°ä¸‹ä¸€è¡Œ"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "å�‘ä¸Šç§»åŠ¨åˆ°ä¸Šä¸€è¡Œ"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "ç§»åŠ¨åˆ°è¡Œçš„æœ«å°¾"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "ç§»åŠ¨åˆ°è¡Œçš„å¼€å¤´"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "ä¸‹ä¸€ä¸ª"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "æœ¬æ–‡æ¡£ä¸­æ²¡æœ‰æ›´å¤šçš„èŠ‚ç‚¹ã€‚"
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "æœ¬èŠ‚ç‚¹æ²¡æœ‰â€œä¸Šä¸€ä¸ªâ€�ã€‚"
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "åœ¨æœ¬æ–‡æ¡£ä¸­æ²¡æœ‰æœ¬èŠ‚ç‚¹çš„â€œä¸Šä¸€ä¸ªâ€�æˆ–â€œä¸Šå±‚â€�èŠ‚ç‚¹ã€‚"
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "åœ¨èŠ‚ç‚¹ç»“æž„ä¸­å�‘å‰�æˆ–å�‘ä¸‹å±‚ç§»åŠ¨"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "åœ¨èŠ‚ç‚¹ç»“æž„ä¸­å�‘å�Žæˆ–å�‘ä¸Šå±‚ç§»åŠ¨"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘å‰�æ»šåŠ¨"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘å‰�æ»šåŠ¨å¹¶è®¾ç½®ä¸ºé»˜è®¤çª—å�£å¤§å°�"
+ 
+ #: info/session.c:1524
+ msgid "Scroll forward in this window staying within node"
+ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘å‰�æ»šåŠ¨(ä¸�ç©¿è¶ŠèŠ‚ç‚¹)"
+ 
+ #: info/session.c:1532
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘å‰�æ»šåŠ¨(ä¸�ç©¿è¶ŠèŠ‚ç‚¹)å¹¶è®¾ç½®é»˜è®¤çª—å�£å¤§å°�"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘å�Žæ»šåŠ¨"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘å�Žæ»šåŠ¨å¹¶è®¾ç½®ä¸ºé»˜è®¤çª—å�£å¤§å°�"
+ 
+ #: info/session.c:1557
+ msgid "Scroll backward in this window staying within node"
+ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘å�Žæ»šåŠ¨(ä¸�ç©¿è¶ŠèŠ‚ç‚¹)"
+ 
+ #: info/session.c:1565
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘å�Žæ»šåŠ¨(ä¸�ç©¿è¶ŠèŠ‚ç‚¹)å¹¶è®¾ç½®ä¸ºé»˜è®¤çª—å�£å¤§å°�"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "ç§»åŠ¨åˆ°æœ¬èŠ‚ç‚¹çš„å¼€å¤´"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "ç§»åŠ¨åˆ°æœ¬èŠ‚ç‚¹çš„æœ«å°¾"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "æŒ‰è¡Œå�‘ä¸‹æ»šåŠ¨"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "æŒ‰è¡Œå�‘ä¸Šæ»šåŠ¨"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "å�‘ä¸‹æ»šåŠ¨å�Šä¸ªå±�å¹•"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "å�‘ä¸Šæ»šåŠ¨å�Šä¸ªå±�å¹•"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "é€‰æ‹©ä¸‹ä¸€ä¸ªçª—å�£"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "é€‰æ‹©ä¸Šä¸€ä¸ªçª—å�£"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "æ‹†åˆ†å½“å‰�çª—å�£"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "åˆ é™¤å½“å‰�çª—å�£"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "æ— æ³•åˆ é™¤æ°¸ä¹…çª—å�£"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "åˆ é™¤æ‰€æœ‰å…¶å®ƒçª—å�£"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "æ»šåŠ¨å…¶å®ƒçª—å�£"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "å�‘å�Žæ»šåŠ¨å…¶å®ƒçª—å�£"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "æ‰©å¤§(æˆ–ç¼©å°�)æœ¬çª—å�£"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "åœ¨å�¯è§�çš„çª—å�£é—´åˆ†é…�å�¯ç”¨çš„å±�å¹•ç©ºé—´"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "åœ¨å½“å‰�çª—å�£ä¸­åˆ‡æ�¢è¡Œå�·ç»•çŠ¶æ€�"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr "åˆ‡æ�¢æŸ¥å¯»æ—¶æ­£åˆ™è¡¨è¾¾å¼�çš„ç”¨æ³•"
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr "ä½¿ç”¨æ­£åˆ™è¡¨è¾¾å¼�æ�¥æŸ¥å¯»"
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr "ä½¿ç”¨æ™®é€šå­—ç¬¦ä¸²æ�¥æŸ¥å¯»"
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "é€‰æ‹©ä¸‹ä¸€ä¸ªèŠ‚ç‚¹"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "é€‰æ‹©ä¸Šä¸€ä¸ªèŠ‚ç‚¹"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "é€‰æ‹©ä¸Šå±‚èŠ‚ç‚¹"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "é€‰æ‹©æœ¬æ–‡ä»¶çš„æœ€å�Žä¸€ä¸ªèŠ‚ç‚¹"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "è¯¥çª—å�£æ²¡æœ‰é™„åŠ èŠ‚ç‚¹"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "é€‰æ‹©æœ¬æ–‡ä»¶çš„ç¬¬ä¸€ä¸ªèŠ‚ç‚¹"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "é€‰æ‹©æœ¬èŠ‚ç‚¹è�œå�•ä¸­çš„æœ€å�Žä¸€é¡¹"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "é€‰æ‹©æœ¬è�œå�•é¡¹ç›®"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "æœ¬è�œå�•ä¸­æ²¡æœ‰ç¬¬ %d ä¸ªé¡¹ç›®ã€‚"
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "è�œå�•é¡¹ (%s)ï¼š"
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "è�œå�•é¡¹ï¼š"
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "è·Ÿéš�äº¤å�‰å¼•ç”¨ (%s)ï¼š"
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "è·Ÿéš�äº¤å�‰å¼•ç”¨ï¼š"
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "è¯»å�–è�œå�•é¡¹å¹¶é€‰æ‹©å®ƒçš„èŠ‚ç‚¹"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "è¯»å�–è„šæ³¨æˆ–äº¤å�‰å¼•ç”¨å¹¶é€‰æ‹©å®ƒçš„èŠ‚ç‚¹"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "ç§»åŠ¨åˆ°æœ¬èŠ‚ç‚¹è�œå�•çš„å¼€å¤´"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "ç«‹åˆ»è®¿é—®å°½å�¯èƒ½å¤šçš„è�œå�•é¡¹"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "è¯»å�–èŠ‚ç‚¹å��å¹¶é€‰æ‹©å®ƒ"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "è½¬åˆ°èŠ‚ç‚¹ï¼š"
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "èŠ‚ç‚¹â€œ%sâ€�ä¸­æ²¡æœ‰è�œå�•ã€‚"
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "èŠ‚ç‚¹â€œ%2$sâ€�ä¸­æ²¡æœ‰è�œå�•é¡¹â€œ%1$sâ€�ã€‚"
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "æ— æ³•åœ¨â€œ%2$sâ€�ä¸­æ‰¾åˆ°ç”±â€œ%1$sâ€�å¼•ç”¨çš„èŠ‚ç‚¹ã€‚"
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "è¯»å�–è‡ª dir å¼€å§‹çš„è�œå�•çš„åˆ—è¡¨å¹¶è·Ÿéš�å®ƒä»¬"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "è·Ÿéš�è�œå�•ï¼š"
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "å¯»æ‰¾è¯´æ˜Žç¨‹åº�è°ƒç”¨çš„èŠ‚ç‚¹"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "å¯»æ‰¾ [%s] çš„è°ƒç”¨èŠ‚ç‚¹ï¼š"
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "è¯»å�–ä¸€ä¸ª man æ‰‹å†Œçš„å¼•ç”¨å¹¶é€‰æ‹©å®ƒ"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "èŽ·å�– man æ‰‹å†Œï¼š"
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "é€‰æ‹©æœ¬æ–‡ä»¶ä¸­çš„â€œé¡¶â€�èŠ‚ç‚¹"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "é€‰æ‹©èŠ‚ç‚¹â€œ(dir)â€�"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "åˆ é™¤èŠ‚ç‚¹ (%s)ï¼š"
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "æ— æ³•åˆ é™¤èŠ‚ç‚¹â€œ%sâ€�"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "æ— æ³•åˆ é™¤æœ€å�Žçš„èŠ‚ç‚¹"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "é€‰æ‹©æœ€è¿‘é€‰æ‹©çš„èŠ‚ç‚¹"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "åˆ é™¤æœ¬èŠ‚ç‚¹"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "è¯»å�–æ–‡ä»¶å��å¹¶é€‰æ‹©å®ƒ"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "å¯»æ‰¾æ–‡ä»¶ï¼š"
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "æ— æ³•å¯»æ‰¾â€œ%sâ€�ã€‚"
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "æ— æ³•åˆ›å»ºè¾“å‡ºæ–‡ä»¶â€œ%sâ€�ã€‚"
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "å®Œæˆ�ã€‚"
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "æ­£åœ¨å†™å…¥èŠ‚ç‚¹ %s..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "é€šè¿‡ç®¡é�“å°†æœ¬èŠ‚ç‚¹çš„å†…å®¹è¾“å‡ºåˆ° INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "æ— æ³•æ‰“å¼€åˆ°â€œ%sâ€�çš„ç®¡é�“ã€‚"
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "æ­£åœ¨æ‰“å�°èŠ‚ç‚¹ %s..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr "ä»Žæ–‡æ¡£åº•éƒ¨ç»§ç»­æŸ¥å¯»ã€‚"
+ 
+ #: info/session.c:3905
+ msgid "Search continued from the beginning of the document."
+ msgstr "ä»Žæ­¤æ–‡æ¡£çš„å¼€å¤´ç»§ç»­æŸ¥æ‰¾ã€‚"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "æ­£åœ¨æ�œç´¢å­�æ–‡ä»¶ %s ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "è¯»å�–ä¸€ä¸ªå­—ç¬¦ä¸²å¹¶ä»¥å¤§å°�å†™æ•�æ„Ÿçš„æ–¹å¼�æ�œç´¢å®ƒ"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "è¯»å�–ä¸€ä¸ªå­—ç¬¦ä¸²å¹¶æ�œç´¢å®ƒ"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "è¯»å�–ä¸€ä¸ªå­—ç¬¦ä¸²å¹¶å�‘å�Žæ�œç´¢å®ƒ"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s%s [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr "æ­£åˆ™è¡¨è¾¾å¼�æŸ¥æ‰¾"
+ 
+ #: info/session.c:4032 info/session.c:4038
+ msgid " case-sensitively"
+ msgstr "å¤§å°�å†™æ•�æ„Ÿ"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ msgid " backward"
+ msgstr "å�‘å�Žæ�œç´¢"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "æ�œç´¢"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "æ�œç´¢å¤±è´¥ã€‚"
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "ä»¥ç›¸å�Œçš„æ–¹å�‘é‡�å¤�æœ€å�Žçš„æ�œç´¢"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "æ²¡æœ‰ä¸Šæ¬¡æ�œç´¢å­—ç¬¦ä¸²"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "ä»¥ç›¸å��çš„æ–¹å�‘é‡�å¤�æœ€å�Žçš„æ�œç´¢"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "åœ¨ä½ è¾“å…¥çš„å�Œæ—¶äº¤äº’å¼�åœ°æ�œç´¢å­—ç¬¦ä¸²"
+ 
+ #: info/session.c:4212
+ msgid "Regexp I-search backward: "
+ msgstr "å�‘å�Žå¢žé‡�æ�œç´¢æ­£åˆ™è¡¨è¾¾å¼�: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "å�‘å�Žå¢žé‡�æ�œç´¢ï¼š"
+ 
+ #: info/session.c:4215
+ msgid "Regexp I-search: "
+ msgstr "å¢žé‡�æ�œç´¢æ­£åˆ™è¡¨è¾¾å¼�: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "å¢žé‡�æ�œç´¢ï¼š"
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "å¤±è´¥ "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "ç§»åŠ¨åˆ°ä¸Šä¸€ä¸ªäº¤å�‰å¼•ç”¨"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "ç§»åŠ¨åˆ°ä¸‹ä¸€ä¸ªäº¤å�‰å¼•ç”¨"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "é€‰æ‹©å‡ºçŽ°åœ¨æœ¬è¡Œä¸­çš„å¼•ç”¨æˆ–è�œå�•é¡¹"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "å�–æ¶ˆå½“å‰�æ“�ä½œ"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "é€€å‡º"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "å°†å…‰æ ‡ç§»åŠ¨åˆ°çª—å�£çš„æŒ‡å®šè¡Œ"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "é‡�ç”»æ˜¾ç¤º"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "é€€å‡º Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr "è¿�è¡Œåˆ°ç»‘å®šåˆ°æœ¬æŒ‰é”®çš„å°�å†™ç‰ˆæœ¬çš„å‘½ä»¤"
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "æœªçŸ¥çš„å‘½ä»¤ (%s)ã€‚"
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "â€œ%sâ€�ä¸ºé�žæ³•"
+ 
+ #: info/session.c:4910
+ #, c-format
+ msgid "`%s' is invalid"
+ msgstr "â€œ%sâ€�æ˜¯æ— æ•ˆçš„"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "å°†æœ¬æ•°å­—æ·»åŠ åˆ°å½“å‰�æ•°å€¼å�‚æ•°ä¸­"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "å¼€å�¯(æˆ–ä¹˜ä»¥ 4)å½“å‰�æ•°å€¼å�‚æ•°"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "ç”± \\[universal-argument] å†…éƒ¨ä½¿ç”¨"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readlineï¼šè™šæ‹Ÿå†…å­˜è€—å°½ï¼�\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "åœ¨â€œå¼€â€�æ—¶ï¼Œè„šæ³¨å°†è‡ªåŠ¨å‡ºçŽ°æˆ–æ¶ˆå¤±"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "åœ¨â€œå¼€â€�æ—¶ï¼Œåˆ›å»ºæˆ–åˆ é™¤çª—å�£æ—¶æ”¹å�˜å…¶å®ƒçª—å�£çš„å¤§å°�"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "åœ¨â€œå¼€â€�æ—¶ï¼Œå°†åˆ·æ–°å±�å¹•è€Œä¸�æ˜¯é¸£ç¬›"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "åœ¨â€œå¼€â€�æ—¶ï¼Œå‡ºé”™æ—¶å°†é¸£ç¬›"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "åœ¨â€œå¼€â€�æ—¶ï¼ŒInfo åžƒåœ¾æ”¶é›†é‚£äº›å¿…é¡»è§£åŽ‹ç¼©çš„æ–‡ä»¶"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "åœ¨â€œå¼€â€�æ—¶ï¼Œæ�œç´¢å­—ç¬¦ä¸²çš„åŒ¹é…�éƒ¨åˆ†å°†è¢«çª�å‡ºæ˜¾ç¤º"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "æŽ§åˆ¶åœ¨èŠ‚ç‚¹æœ«å°¾æ—¶å‡ºçŽ°æ»šåŠ¨è¯·æ±‚å°†å�‘ç”Ÿä»€ä¹ˆ"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr "ç­‰å�ŒäºŽæ»šåŠ¨è¡Œä¸º"
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "å½“å…‰æ ‡ç§»å‡ºçª—å�£æ˜¯æ‰€æ»šåŠ¨çš„è¡Œæ•°"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr "æŽ§åˆ¶æ»šåŠ¨è¡Œä¸ºæ˜¯å�¦å½±å“�å…‰æ ‡ç§»åŠ¨å‘½ä»¤"
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "åœ¨â€œå¼€â€�æ—¶ï¼ŒInfo æŽ¥å�—å¹¶æ˜¾ç¤º ISO æ‹‰ä¸�å­—ç¬¦"
+ 
+ #: info/variables.c:81
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "æŽ§åˆ¶åœ¨æœ€å�Žä¸€ä¸ªèŠ‚ç‚¹çš„æœ«å°¾å‡ºçŽ°æ»šåŠ¨è¯·æ±‚æ—¶å°†å�‘ç”Ÿä»€ä¹ˆ"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "è§£é‡Šå�˜é‡�çš„ç”¨æ³•"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "è¯´æ˜Žå�˜é‡�ï¼š"
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "è®¾å®š Info å�˜é‡�çš„å€¼"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "è®¾å®šå�˜é‡�ï¼š"
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "å°† %s è®¾å®šä¸ºå€¼ (%d)ï¼š"
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "å°† %s è®¾å®šä¸ºå€¼ (%s)ï¼š"
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr "--*** æ ‡è®°è¿‡æœŸ ***"
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Infoï¼š()ï¼Œè¡Œ ----ï¼Œ"
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Infoï¼š%sï¼Œ%d è¡Œ --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Infoï¼š(%s)%sï¼Œ%d è¡Œ --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " å­�æ–‡ä»¶ï¼š%s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%sï¼šè­¦å‘Šï¼š"
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr " %s"
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\tè¯•ç”¨â€œ%s --helpâ€�ä»¥èŽ·å¾—é€‰é¡¹çš„å®Œæ•´åˆ—è¡¨ã€‚\n"
+ 
+ #: install-info/install-info.c:508
+ #, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "ç”¨æ³•: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr "ä»Ž Info ç›®å½• DIR-FILE çš„ INFO-FILE æ–‡ä»¶ä¸­æ·»åŠ æˆ–ç§»é™¤æ�¡ç›®ã€‚"
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ "é€‰é¡¹:\n"
+ " --debug             æŠ¥å‘Šæ­£åœ¨å¤„ç�†çš„äº‹ã€‚\n"
+ " --delete            ä»Ž DIR-FILE ä¸­åˆ é™¤å­˜åœ¨çš„ INFO-FILE æ�¡ç›®ï¼›\n"
+ "                      ä¸�æ�’å…¥ä»»ä½•æ–°çš„æ�¡ç›®ã€‚\n"
+ " --description=TEXT  æ�¡ç›®çš„è¯´æ˜Žä¸º TEXTï¼›ä¸Ž --name é€‰é¡¹\n"
+ "                      å�Œç”¨è·Ÿä¸Ž --entry é€‰é¡¹å�Œç”¨\n"
+ "                      æ˜¯ä¸€æ ·çš„ã€‚\n"
+ " --dir-file=NAME     æŒ‡å®š Info ç›®å½•æ–‡ä»¶çš„æ–‡ä»¶å��ï¼›\n"
+ "                      ç­‰å�ŒäºŽä½¿ç”¨ DIR-FILE å�‚æ•°ã€‚\n"
+ " --dry-run           ç­‰å�ŒäºŽ --testã€‚"
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ " --entry=TEXT        æ�’å…¥ TEXT ä½œä¸ºä¸€ä¸ª Info ç›®å½•æ�¡ç›®ã€‚\n"
+ "                      æ‰€å†™å…¥çš„ TEXT è¦�ä½œä¸ºä¸€ä¸ª Info è�œå�•é¡¹å�Žè·Ÿ\n"
+ "                       0 ä¸ªæˆ–å¤šä¸ªä»¥ç©ºæ ¼å¼€å§‹çš„è¡Œã€‚\n"
+ "                      å¦‚æžœæ‚¨æŒ‡å®šä¸€ä¸ªä»¥ä¸Šçš„æ�¡ç›®ï¼Œå°†æ·»åŠ æ‰€æœ‰æ�¡ç›®ã€‚\n"
+ "                      å¦‚æžœæ‚¨æœªæŒ‡å®šä»»ä½•æ�¡ç›®ï¼Œå®ƒä»¬ç”±æ�¥è‡ª Info æ–‡ä»¶\n"
+ "                       è‡ªèº«çš„ä¿¡æ�¯å†³å®šã€‚\n"
+ "                      åˆ é™¤æ—¶ï¼Œ TEXT æŒ‡å®šäº†è¦�åˆ é™¤çš„æ�¡ç›®ã€‚\n"
+ "                      ä»…å½“ Info æ–‡ä»¶ä¸­ä½œä¸ºåˆ é™¤å®šä¹‰çš„æ�¡ç›®ä¸�å­˜åœ¨ï¼Œ\n"
+ "                      å¹¶ä¸”è¿˜æ‰¾ä¸�åˆ° Info æ–‡ä»¶çš„ç›®å½•å��ï¼Œ\n"
+ "\t\t\té‚£ TEXT æ‰�ä¼šä½œä¸ºæœ€å�Žçš„åˆ é™¤æ‰‹æ®µã€‚"
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ " --help              æ˜¾ç¤ºæ­¤å¸®åŠ©å¹¶é€€å‡ºã€‚\n"
+ " --info-dir=DIR      ç­‰å�ŒäºŽ --dir-file=DIR/dirã€‚\n"
+ " --info-file=FILE    åœ¨ç›®å½•ä¸­æŒ‡å®šè¦�å®‰è£…çš„ Info æ–‡ä»¶ï¼›\n"
+ "                      ç­‰å�ŒäºŽä½¿ç”¨ INFO-FILE å�‚æ•°ã€‚\n"
+ " --item=TEXT         ç­‰å�ŒäºŽ --entry=TEXTã€‚\n"
+ " --keep-old          ä¸�è¦�æ›¿æ�¢æ�¡ç›®ï¼Œæˆ–æ˜¯åˆ é™¤ç©ºç™½å­—æ®µã€‚\n"
+ " --menuentry=TEXT    ç­‰å�ŒäºŽ --name=TEXTã€‚\n"
+ " --name=TEXT         æ�¡ç›®å��ä¸º TEXTï¼›ä¸Ž --description å�Œç”¨\n"
+ "                      è·Ÿä¸Ž --entry é€‰é¡¹å�Œç”¨æ˜¯ä¸€æ ·çš„ã€‚\n"
+ " --no-indent         ä¸�è¦�åœ¨ DIR æ–‡ä»¶ä¸­æ ¼å¼�åŒ–æ–°çš„æ�¡ç›®ã€‚\n"
+ " --quiet             ä¸�è¦�è¾“å‡ºè­¦å‘Šã€‚"
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ " --regex=R           å°†æ­¤æ–‡ä»¶çš„æ�¡ç›®æ”¾å…¥æ‰€æœ‰åŒ¹é…�æ­£åˆ™è¡¨è¾¾å¼�\n"
+ "\t\t\t R(å¿½ç•¥å¤§å°�å†™)çš„å­—æ®µã€‚\n"
+ " --remove            ç­‰å�ŒäºŽ --deleteã€‚\n"
+ " --remove-exactly    ä»…å½“å®Œå…¨åŒ¹é…� info æ–‡ä»¶å��æ—¶æ‰�åˆ é™¤ï¼›\n"
+ "                      ä¸�è¦�å¿½ç•¥ç±»ä¼¼ .info å’Œ .gz è¿™æ ·çš„å�Žç¼€ã€‚\n"
+ " --section=SEC       å°†æ�¡ç›®æ”¾å…¥ç›®å½•çš„ SEC å­—æ®µã€‚\n"
+ "                      å¦‚æžœæ‚¨æŒ‡å®šä¸€ä¸ªä»¥ä¸Šçš„å­—æ®µï¼Œæ‰€æœ‰çš„æ�¡ç›®å°†è¢«æ·»åŠ è‡³\n"
+ "                       æ¯�ä¸ªå­—æ®µã€‚\n"
+ "                      å¦‚æžœæ‚¨æœªæŒ‡å®šä»»ä½•å­—æ®µï¼Œå®ƒä»¬å°†ç”± Info æ–‡ä»¶\n"
+ "                       è‡ªèº«çš„ä¿¡æ�¯æ�¥å†³å®šã€‚\n"
+ " --section R SEC     ç­‰å�ŒäºŽ --regex=R --section=SEC --add-onceã€‚"
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ " --silent            ä¸�è¾“å‡ºè­¦å‘Šã€‚\n"
+ " --test              ä¸�æ›´æ–° DIR-FILEã€‚\n"
+ " --version           æ˜¾ç¤ºç‰ˆæœ¬ä¿¡æ�¯å¹¶é€€å‡ºã€‚"
+ 
+ #: install-info/install-info.c:570
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "è¯·å°†é”™è¯¯æŠ¥å‘Šå�‘é€�åˆ° bug-texinfo@gnu.orgï¼Œ\n"
+ "ä¸€èˆ¬çš„é—®é¢˜å’Œè®¨è®ºè¯·å�‘é€�åˆ° help-texinfo@gnu.orgã€‚\n"
+ "Texinfo ä¸»é¡µï¼šhttp://www.gnu.org/software/texinfo/"
+ 
+ #: install-info/install-info.c:597
+ #, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "è¿™æ˜¯æ–‡ä»¶ .../info/dirï¼Œå®ƒå�«æœ‰ Info å±‚æ¬¡\n"
+ "ç»“æž„çš„æœ€é¡¶å±‚èŠ‚ç‚¹ï¼Œç§°ä¸º (dir)Topã€‚\n"
+ "æ‚¨ç¬¬ä¸€æ¬¡è°ƒç”¨ Info æ‚¨å°†ä»Žè¯¥èŠ‚ç‚¹å¼€å§‹ã€‚\n"
+ "\n"
+ "%s\tè¿™æ˜¯ INFO æ ‘çš„é¡¶\n"
+ "\n"
+ "  è¿™é‡Œ (the Directory node) ç»™å‡ºäº†ä¸»è¦�ä¸»é¢˜çš„è�œå�•ã€‚\n"
+ "  è¾“å…¥â€œqâ€�å°†é€€å‡ºï¼Œè¾“å…¥â€œ?â€�å°†åˆ—ä¸¾æ‰€æœ‰ Info å‘½ä»¤ï¼Œè¾“å…¥\n"
+ "  â€œdâ€�å°†è¿”å›žè¿™é‡Œã€‚è¾“å…¥â€œhâ€�å°†ç»™åˆ�æ¬¡ä½¿ç”¨çš„ç”¨æˆ·ä¸€ä¸ªæ‘˜è¦�ï¼Œ\n"
+ "  è¾“å…¥â€œmEmacs<Return>â€�å°†è®¿é—® Emacs æ‰‹å†Œï¼Œç­‰ç­‰ã€‚\n"
+ "\n"
+ "  åœ¨ Emacsä¸­ï¼Œæ‚¨å�¯ä»¥åœ¨è�œå�•é¡¹ç›®æˆ–äº¤å�‰å¼•ç”¨ä¸Šç‚¹å‡»é¼ æ ‡å�³é”®ä»¥\n"
+ "  é€‰æ‹©å®ƒã€‚\n"
+ "\n"
+ "%s\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%sï¼šå�³æ— æ³•è¯»å…¥ (%s) ä¹Ÿæ— æ³•åˆ›å»º (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%sï¼šç©ºæ–‡ä»¶"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "START-INFO-DIR-ENTRY æ²¡æœ‰åŒ¹é…�çš„ END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "END-INFO-DIR-ENTRY æ²¡æœ‰åŒ¹é…�çš„ START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr "%s: å·²ç»�å­˜åœ¨äº† dir æ–‡ä»¶: %s\n"
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%sï¼šInfo æ–‡ä»¶å�ªåº”è¯¥æŒ‡å®šä¸€æ¬¡ã€‚\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr "æŒ‡å®šäº†é¢�å¤–çš„æ­£åˆ™è¡¨è¾¾å¼�ï¼Œå¿½ç•¥ â€œ%sâ€�"
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr "æ­£åˆ™è¡¨è¾¾å¼�â€œ%sâ€�ä¸­å­˜åœ¨é”™è¯¯: %s"
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "å¤šä½™çš„å‘½ä»¤è¡Œå�‚æ•°â€œ%sâ€�"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "æ²¡æœ‰æŒ‡å®šè¾“å‡ºæ–‡ä»¶ï¼›è¯•ç”¨ --help ä»¥èŽ·å¾—æ›´å¤šä¿¡æ�¯ã€‚"
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "æ²¡æœ‰æŒ‡å®šç›®å½•æ–‡ä»¶ï¼›è¯•ç”¨ --help ä»¥èŽ·å¾—æ›´å¤šä¿¡æ�¯ã€‚"
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "â€œ%sâ€�ä¸­æ²¡æœ‰ info ç›®å½•æ�¡ç›®"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "æ‰¾ä¸�åˆ°å…³äºŽâ€œ%sâ€�çš„æ�¡ç›®ï¼›æœªåˆ é™¤"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr "æ ‡å‡†è¾“å‡ºä¸Š ferror é”™è¯¯\n"
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr "æ ‡å‡†è¾“å‡ºä¸Š fflush é”™è¯¯\n"
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "@%s çš„å�‚æ•°è¢«å¿½ç•¥äº†"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "ä¸€æœˆ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "äºŒæœˆ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "ä¸‰æœˆ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "å››æœˆ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "äº”æœˆ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "å…­æœˆ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "ä¸ƒæœˆ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "å…«æœˆ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "ä¹�æœˆ"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "å��æœˆ"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "å��ä¸€æœˆ"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "å��äºŒæœˆ"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr "@var ä¸­ä¸�å�¯é� çš„å­—ç¬¦ %c"
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "@sc çš„å�‚æ•°å…¨éƒ¨ä¸ºå¤§å†™ï¼Œå› æ­¤æ— æ•ˆ"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr "åº”ä¸ºâ€œ{â€�ï¼Œä½†çœ‹åˆ°äº†â€œ%câ€�"
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr "æ–‡ä»¶åœ¨åŽŸæ–‡å�—ä¸­ç»“æ�Ÿ"
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr "åº”ä¸ºâ€œ}â€�ï¼Œä½†çœ‹åˆ°äº†â€œ%câ€�"
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr "@strong{Note...} åœ¨ Info ä¸­å½¢æˆ�äº†ä¸€ä¸ªå�‡çš„äº¤å�‰å¼•ç”¨ï¼›å�¯é€šè¿‡é‡�å†™é�¿å…�æ­¤äº‹"
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s å·²è¿‡æ—¶"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp éœ€è¦�æ­£æ•°å�‚æ•°ï¼Œè€Œä¸�æ˜¯â€œ%sâ€�"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "%c%s çš„é”™è¯¯å�‚æ•°"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr "asis"
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr "none"
+ 
+ #: makeinfo/cmds.c:2049
+ #, c-format
+ msgid "Bad argument to @%s"
+ msgstr "@%s çš„å�‚æ•°é”™è¯¯"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr "æ�’å…¥"
+ 
+ #: makeinfo/cmds.c:2079
+ #, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "@%s çš„é”™è¯¯å�‚æ•°: %s"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr "åº”å½“ @%s å¼€å�¯æˆ–å…³é—­ï¼Œè€Œä¸�æ˜¯â€œ%sâ€�"
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr "ä»…æ”¯æŒ� @%s 10 æˆ– 11ï¼Œè€Œä¸�æ˜¯â€œ%sâ€�"
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "@def çš„å�‚æ•°é�—æ¼�äº†â€œ}â€�"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr "å¿…é¡»åœ¨â€œ@%sâ€�çŽ¯å¢ƒå�˜é‡�ä¸­ä½¿ç”¨â€œ@%sâ€�"
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%sï¼šgetwdï¼š%sï¼Œ%s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr "åœ¨è¾“å‡ºæ–‡ä»¶å��å‰�é�—æ¼�äº†â€œ%sâ€�"
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr "å†™å…¥æ ‡å‡†è¾“å‡ºå‰�é�—æ¼�äº†â€œ%sâ€�"
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr "è¾“å‡ºç¼“å†²åŒºé�žç©ºã€‚"
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr "æ‰€è¦�çš„æµ®ç‚¹ç±»åž‹â€œ%sâ€�ä¸�æ˜¯ä¸Šæ¬¡æ‰€ç”¨çš„"
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr "å�‚é˜… "
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "â€œ%c%sâ€�éœ€è¦�å�‚æ•°â€œ{...}â€�ï¼Œè€Œä¸�ä»…ä»…æ˜¯â€œ%sâ€�"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "è„šæ³¨â€œ%sâ€�æ²¡æœ‰é—­å�ˆèŠ±æ‹¬å�·"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "å®šä¹‰çš„è„šæ³¨æ²¡æœ‰çˆ¶èŠ‚ç‚¹"
+ 
+ #: makeinfo/footnote.c:209
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "è„šæ³¨å†…çš„è„šæ³¨æ˜¯ä¸�å…�è®¸çš„"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "è„šæ³¨"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr "%s: æ— æ³•æ‰“å¼€ --css-file: %s"
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr "%s:%d: --css-file ä»¥æ³¨é‡Šç»“å°¾"
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr "[æœªé¢„æ–™åˆ°çš„] æ—  html æ ‡è®°å¼¹å‡º "
+ 
+ #: makeinfo/html.c:800
+ #, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "[æœªé¢„æ–™åˆ°çš„] æ— æ•ˆçš„èŠ‚ç‚¹å��ç§°: â€œ%sâ€�"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "æœªçŸ¥çš„ç´¢å¼•â€œ%sâ€�"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr "Info æ— æ³•å¤„ç�†ç´¢å¼•æ�¡ç›®â€œ%sâ€�ä¸­çš„â€œ:â€�"
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "ç´¢å¼•â€œ%sâ€�å·²ç»�å­˜åœ¨"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "@synindex ä¸­çš„æœªçŸ¥ç´¢å¼•â€œ%sâ€�å’Œ/æˆ–â€œ%sâ€�"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr "(è¡Œ )"
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr "(è¡Œ %*d)"
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "@printindex ä¸­çš„æœªçŸ¥ç´¢å¼•â€œ%sâ€�"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "å…³äºŽç´¢å¼•â€œ%sâ€�çš„æ�¡ç›®è¶…å‡ºäº†æ‰€æœ‰èŠ‚ç‚¹"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(è¶…å‡ºä»»ä½•èŠ‚ç‚¹)"
+ 
+ #: makeinfo/insertion.c:161
+ #, fuzzy
+ msgid "@item not allowed in argument to @itemize"
+ msgstr "å�‚æ•°ä¸­ä¸�å…�è®¸ @item æ”¹ä¸º @itemize"
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr "insertion_type_pname ä¸­çš„é”™è¯¯ç±»åž‹"
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr "æžšä¸¾æ ˆæº¢å‡º"
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr "å­—ç¬¦ç¼–å�·æº¢å‡ºï¼Œä»Ž %c é‡�æ–°å¼€å§‹"
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr "%s éœ€è¦�ä¸€ä¸ªå�‚æ•°: %citem çš„æ ¼å¼�åŒ–å�‚æ•°"
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr "%cfloat çŽ¯å¢ƒå�˜é‡�ä¸�èƒ½åµŒå¥—"
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr "â€œ@endâ€�éœ€è¦�â€œ%sâ€�ï¼Œä½†çœ‹åˆ°â€œ%sâ€�"
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "æ²¡æœ‰åŒ¹é…�çš„â€œ%cend %sâ€�"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s éœ€è¦�å­—æ¯�æˆ–æ•°å­—"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr "æ–‡ä»¶åœ¨åŽŸæ–‡å�—ä¸­ç»“æ�Ÿ"
+ 
+ #: makeinfo/insertion.c:1942
+ #, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "â€œ@floatâ€�çŽ¯å¢ƒå�˜é‡�å¤–çš„ @%s æ˜¯æ²¡æœ‰æ„�ä¹‰çš„"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "åœ¨ç¬¬ä¸€ä¸ªèŠ‚ç‚¹ä¹‹å‰�é�‡åˆ° @menuï¼Œæ­£åœ¨åˆ›å»ºâ€œé¡¶â€�èŠ‚ç‚¹"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "æ‚¨çš„ @top èŠ‚ç‚¹å�¯èƒ½åº”è¯¥åŒ…å�«åœ¨ @ifnottex è€Œä¸�æ˜¯ @ifinfo ä¸­ï¼Ÿ"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "åœ¨ç¬¬ä¸€ä¸ªèŠ‚ç‚¹ä¹‹å‰�é�‡åˆ° @detailmenuï¼Œæ­£åœ¨åˆ›å»ºâ€œé¡¶â€�èŠ‚ç‚¹"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr "åœ¨â€œ@titlepageâ€�å’Œâ€œ@quotationâ€�çŽ¯å¢ƒå�˜é‡�å¤– @%s æ— æ„�ä¹‰"
+ 
+ #: makeinfo/insertion.c:2061
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "â€œ@titlepageâ€�çŽ¯å¢ƒå�˜é‡�å¤–çš„ @%s æ˜¯æ²¡æœ‰æ„�ä¹‰çš„"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "æœªåŒ¹é…�çš„â€œ%c%sâ€�"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "â€œ%c%sâ€�ä¹‹å�Žéœ€è¦�æœ‰äº›ä»€ä¹ˆ"
+ 
+ #: makeinfo/insertion.c:2103
+ #, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "â€œ%sâ€�çš„é”™è¯¯å�‚æ•°â€œ@%sâ€�ï¼Œä½¿ç”¨â€œ%sâ€�"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "åœ¨â€œ@%2$sâ€�å�—ä¸­â€œ@%1$sâ€�æ˜¯æ²¡æœ‰æ„�ä¹‰çš„"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "åœ¨â€œ%sâ€�å�—ä¸­ @itemx æ˜¯æ²¡æœ‰æ„�ä¹‰çš„"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr "åœ¨æ�’å…¥å�—ä¹‹å¤–å�‘çŽ°äº† %c%s"
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr "è¯­è¨€â€œ%sâ€�æ— å·²çŸ¥çš„é»˜è®¤åœ°åŒº"
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s åœ¨ ISO 639 è¯­è¨€ç¼–ç �ä¸­æ˜¯æ— æ•ˆçš„"
+ 
+ #: makeinfo/lang.c:1399
+ #, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "ä¸�èƒ½è¯†åˆ«çš„ç¼–ç �å��ç§°â€œ%sâ€�"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr "æŠ±æ­‰ï¼Œä¸�æ”¯æŒ�ç¼–ç �â€œ%sâ€�"
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr "æ— æ•ˆçš„ç¼–ç �å­—ç¬¦â€œ%sâ€�"
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s çš„å�‚æ•°åº”ä¸ºâ€œiâ€�æˆ–â€œjâ€�ï¼Œè€Œä¸�æ˜¯â€œ%câ€�"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s éœ€è¦�ä»¥å�•ä¸ªå­—ç¬¦â€œiâ€�æˆ–â€œjâ€�ä¸ºå�‚æ•°"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "å®�â€œ%sâ€�å·²åœ¨å‰�é�¢å®šä¹‰"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "è¿™é‡Œæ˜¯â€œ%sâ€�å‰�é�¢çš„å®šä¹‰"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr "\\ ä»¥å¸¦æœ‰â€œ%sâ€�çš„å®�å±•å¼€å¼�ä»£æ›¿å�‚æ•°å��ç§°"
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "åœ¨ç¬¬ %2$d è¡Œä¸­ä»¥è¿‡å¤šçš„å�‚æ•°è°ƒç”¨å®�â€œ%1$sâ€�"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr "æ‰¾ä¸�åˆ°å®� %cend"
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr "ä¸�èµžæˆ�ä½¿ç”¨ @allow-recursionï¼›è¯·ä½¿ç”¨ @rmacro ä»£æ›¿ "
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr "ä¸�èµžæˆ�ä½¿ç”¨ @quote-argï¼›å�‚æ•°æ˜¯é»˜è®¤å¼•ç”¨çš„"
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "@end %s å’Œ @%s ä¸�åŒ¹é…�"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "è¿‡å¤šçš„é”™è¯¯ï¼�æ”¾å¼ƒã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%sï¼š%dï¼šè­¦å‘Šï¼š"
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "é”™è¯¯æ”¾ç½®çš„ %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "è¯•ç”¨â€œ%s --helpâ€�ä»¥èŽ·å�–æ›´å¤šä¿¡æ�¯ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "ç”¨æ³•ï¼š%s [é€‰é¡¹]... TEXINFO-æ–‡ä»¶...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ "å°† Texinfo æº�æ–‡ä»¶è½¬æ�¢ä¸ºå…¶å®ƒå�„ç§�æ ¼å¼�ï¼Œé»˜è®¤è½¬æ�¢ä¸ºé€‚äºŽ\n"
+ "ç”± Emacs æˆ–ç‹¬ç«‹ GNU Info åœ¨çº¿æµ�è§ˆçš„ Info æ–‡ä»¶ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ "é€šç”¨é€‰é¡¹ï¼š\n"
+ "      --error-limit=NUM       åœ¨ NUM ä¸ªé”™è¯¯å�Žé€€å‡º (é»˜è®¤ä¸º %d)ã€‚\n"
+ "      --document-language=STR ä¸ºè¾“å‡ºçš„æ–‡æ¡£ç¿»è¯‘ Texinfo å…³é”®å­—æ—¶æ‰€ç”¨\n"
+ "                               çš„åœ°åŒºä»£ç �(é»˜è®¤ä¸º C)ã€‚\n"
+ "      --force                 å�³ä½¿å‡ºçŽ°é”™è¯¯ä¹Ÿä¿�ç•™è¾“å‡ºæ–‡ä»¶ã€‚\n"
+ "      --help                  æ˜¾ç¤ºè¯¥æ±‚åŠ©ä¿¡æ�¯å¹¶é€€å‡ºã€‚\n"
+ "      --no-validate           ä¸�è¿›è¡Œäº¤å�‰å¼•ç”¨æ£€æŸ¥ã€‚\n"
+ "      --no-warn               ä¸�è¾“å‡ºè­¦å‘Š (ä¸�æ¶‰å�Šé”™è¯¯)ã€‚\n"
+ "  -v, --verbose               è§£é‡Šéƒ½å�šäº†äº›ä»€ä¹ˆã€‚\n"
+ "      --version               æ˜¾ç¤ºç‰ˆæœ¬ä¿¡æ�¯å¹¶é€€å‡ºã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ "è¾“å‡ºæ ¼å¼�é€‰æ‹© (é»˜è®¤ç”Ÿæˆ� Info æ–‡ä»¶)ï¼š\n"
+ "      --docbook             è¾“å‡º DocBook è€Œä¸�æ˜¯ Infoã€‚\n"
+ "      --html                è¾“å‡º HTML è€Œä¸�æ˜¯ Infoã€‚\n"
+ "      --xml                 è¾“å‡º XML (TexinfoML) è€Œä¸�æ˜¯ Infoã€‚\n"
+ "      --plaintext           è¾“å‡ºæ™®é€šæ–‡æœ¬è€Œä¸�æ˜¯ Infoã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ "é€šç”¨è¾“å‡ºé€‰é¡¹ï¼š\n"
+ "  -E, --macro-expand FILE   å°†å®�æ‰©å±•æº�è¾“å‡ºåˆ°æ–‡ä»¶ FILEã€‚\n"
+ "                            å¿½ç•¥æ‰€æœ‰ @setfilenameã€‚\n"
+ "      --no-headers          ä¸�åœ¨ Info è¾“å‡ºæˆ– HTML è¾“å‡ºä¸­ç”Ÿæˆ�èŠ‚ç‚¹åˆ†éš”ç¬¦ï¼Œ\n"
+ "                              èŠ‚ç‚¹ï¼šè¡Œï¼Œå’Œè�œå�•ã€‚ä»Žè€Œç”Ÿæˆ�æ™®é€šæ–‡æœ¬(Info\n"
+ "                              è¾“å‡º)æˆ–è¾ƒçŸ­çš„è¾“å‡º(HTML è¾“å‡º)ï¼›\n"
+ "                              æ­¤å¤–, é»˜è®¤è¾“å‡ºåˆ°æ ‡å‡†è¾“å‡ºã€‚\n"
+ "      --no-split            ä¸�æ˜¯ç”Ÿæˆ�åˆ†å‰²çš„ Info æˆ– HTML è¾“å‡ºï¼Œ\n"
+ "                            è€Œæ˜¯ç”Ÿæˆ�å�•ä¸ªè¾“å‡ºæ–‡ä»¶ã€‚\n"
+ "      --number-sections     è¾“å‡ºç« èŠ‚ç¼–å�·ã€‚\n"
+ "  -o, --output=FILE         è¾“å‡ºåˆ°æ–‡ä»¶ FILE (å¦‚æžœæ˜¯åˆ†å‰²çš„ HTML åˆ™ä¸ºç›®å½•)ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ "Info å’Œæ™®é€šæ–‡æœ¬é€‰é¡¹ï¼š\n"
+ "      --disable-encoding      ä¸�è¦�æ ¹æ�® @documentencoding è¾“å‡º Info è¾“å‡ºä¸­çš„\n"
+ "                                é‡�éŸ³å’Œç‰¹æ®Šå­—ç¬¦ã€‚\n"
+ "      --enable-encoding       è¦†ç›– --disable-encoding è®¾ç½®(é»˜è®¤)ã€‚\n"
+ "      --fill-column=NUM       åœ¨ç¬¬ NUM ä¸ªå­—ç¬¦å¤„åˆ‡åˆ† Info è¡Œ (é»˜è®¤ä¸º %d)ã€‚\n"
+ "      --footnote-style=STYLE  æ ¹æ�® STYLE è¾“å‡º Info ä¸­çš„è„šæ³¨ï¼š\n"
+ "                                â€œseparateâ€�å°†è„šæ³¨ç½®äºŽç‹¬ç«‹çš„èŠ‚ç‚¹ï¼›\n"
+ "                                â€œendâ€�å°†è„šæ³¨ç½®äºŽå®šä¹‰å®ƒçš„èŠ‚ç‚¹çš„æœ«å°¾(é»˜è®¤)ã€‚\n"
+ "      --paragraph-indent=VAL  å°† Info æ®µå¯¹é½�åˆ° VAL ä¸ªç©ºæ ¼ (é»˜è®¤ä¸º %d).\n"
+ "                                å¦‚æžœ VAL ä¸ºâ€œnoneâ€�ï¼Œåˆ™ä¸�å¯¹é½�ï¼›å¦‚æžœ VAL ä¸º\n"
+ "                                â€œasisâ€�ï¼Œä¿�ç•™çŽ°æœ‰çš„å¯¹é½�ã€‚\n"
+ "      --split-size=NUM        åœ¨å¤§å°� NUM çš„æ—¶å€™æ‹†åˆ† Info æ–‡ä»¶ (é»˜è®¤ä¸º %d)ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ "HTML é€‰é¡¹:\n"
+ "      --css-include=FILE      åœ¨ HTML <style> è¾“å‡ºä¸­åŒ…å�« FILEï¼›\n"
+ "                                å¦‚æžœ FILE æ˜¯ - å°†ä»Žæ ‡å‡†è¾“å…¥è¯»å�–å†…å®¹ã€‚\n"
+ "      --css-ref=URL           ç”Ÿæˆ�ä¸€ä¸ª CSS æ–‡ä»¶çš„å�‚è€ƒã€‚\n"
+ "      --internal-links=FILE   ç”Ÿæˆ� FILE ä¸­å†…éƒ¨è¿žæŽ¥åˆ—è¡¨ã€‚\n"
+ "      --transliterate-file-names\n"
+ "                              ä»¥ ASCII å­—ä¹‰ç”Ÿæˆ�æ–‡ä»¶å��ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ "XML å’Œ Docbook é€‰é¡¹:\n"
+ "      --output-indent=VAL     ç”¨ VAL ä¸ªç©ºæ ¼ç¼©è¿› XML å…ƒç´ (é»˜è®¤ %d)ã€‚\n"
+ "                                å¦‚æžœ VAL ä¸º 0ï¼Œå°†ä¸¢å¼ƒå�¯å¿½ç•¥çš„ç©ºæ ¼ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ "è¾“å…¥æ–‡ä»¶é€‰é¡¹ï¼š\n"
+ "      --commands-in-node-names   å…�è®¸åœ¨èŠ‚ç‚¹å��ä¸­ä½¿ç”¨ @ å‘½ä»¤ã€‚\n"
+ "  -D VAR                         å®šä¹‰å�˜é‡� VARï¼Œå°±è±¡ @setã€‚\n"
+ "  -I DIR                         å°† DIR é™„åŠ åˆ° @include æ�œç´¢è·¯å¾„ä¹‹å�Žã€‚\n"
+ "  -P DIR                         å°† DIR è¿½åŠ åˆ° @include æ�œç´¢è·¯å¾„ä¹‹å‰�ã€‚\n"
+ "  -U VAR                         å�–æ¶ˆå�˜é‡� VAR çš„å®šä¹‰ï¼Œå°±è±¡ @clearã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ "è¾“å…¥ä¸­çš„æ�¡ä»¶å¤„ç�†ï¼š\n"
+ "  --ifdocbook       å�³ä½¿ä¸�ç”Ÿæˆ� Docbook \n"
+ "                     ä¹Ÿå¤„ç�† @ifdocbook å’Œ @docbookã€‚\n"
+ "  --ifhtml          å�³ä½¿ä¸�æ˜¯ç”Ÿæˆ� HTML ä¹Ÿå¤„ç�† @ifhtml å’Œ @htmlã€‚\n"
+ "  --ifinfo          å�³ä½¿ä¸�æ˜¯ç”Ÿæˆ� Info ä¹Ÿå¤„ç�† @ifinfoã€‚\n"
+ "  --ifplaintext     å�³ä½¿ä¸�æ˜¯ç”Ÿæˆ�æ™®é€šæ–‡æœ¬ä¹Ÿå¤„ç�† @ifplaintextã€‚\n"
+ "  --iftex           å¤„ç�† @iftex å’Œ @texï¼›éš�å�« --no-splitã€‚\n"
+ "  --no-ifhtml       ä¸�è¦�å¤„ç�† @ifhtml å’Œ @html æ–‡æœ¬ã€‚\n"
+ "  --no-ifinfo       ä¸�è¦�å¤„ç�† @ifinfo æ–‡æœ¬ã€‚\n"
+ "  --no-ifplaintext  ä¸�è¦�å¤„ç�† @ifplaintext æ–‡æœ¬ã€‚\n"
+ "  --no-iftex        ä¸�è¦�å¤„ç�† @iftex å’Œ @tex æ–‡æœ¬ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ "  @if... æ�¡ä»¶çš„é»˜è®¤å€¼å€šèµ–äºŽè¾“å‡ºæ ¼å¼�ï¼š\n"
+ "  å¦‚æžœç”Ÿæˆ� HTMLï¼Œåˆ™ --ifhtml é»˜è®¤å¼€å�¯è€Œå…¶å®ƒçš„é»˜è®¤å…³é—­ï¼›\n"
+ "  å¦‚æžœç”Ÿæˆ� Infoï¼Œåˆ™ --ifinfo é»˜è®¤å¼€å�¯è€Œå…¶å®ƒçš„é»˜è®¤å…³é—­ï¼›\n"
+ "  å¦‚æžœç”Ÿæˆ�æ™®é€šæ–‡æœ¬ï¼Œåˆ™ --ifplaintext é»˜è®¤å¼€å�¯è€Œå…¶å®ƒé»˜è®¤å…³é—­ï¼›\n"
+ "  å¦‚æžœç”Ÿæˆ� XMLï¼Œåˆ™ --ifxml é»˜è®¤å¼€å�¯è€Œå…¶å®ƒé»˜è®¤å…³é—­ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:462
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "ç¤ºä¾‹ï¼š\n"
+ "  makeinfo foo.texi                     å°† Info å†™å…¥åˆ° foo çš„ @setfilename\n"
+ "  makeinfo --html foo.texi              å°† HTML å†™å…¥åˆ° @setfilename\n"
+ "  makeinfo --xml foo.texi               å°† Texinfo XML å†™å…¥åˆ° @setfilename\n"
+ "  makeinfo --docbook foo.texi           å°† DocBook XML å†™å…¥åˆ° @setfilename\n"
+ "  makeinfo --no-headers foo.texi        å°†æ™®é€šæ–‡æœ¬å†™å…¥åˆ°æ ‡å‡†è¾“å‡º\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi è¾“å‡º html è€Œä¸�è¾“å‡ºèŠ‚ç‚¹è¡Œå’Œè�œå�•\n"
+ "  makeinfo --number-sections foo.texi   è¾“å‡ºå¸¦æœ‰ç¼–å�·çš„èŠ‚çš„ Info\n"
+ "  makeinfo --no-split foo.texi          è¾“å‡ºå�•ä¸ª Info æ–‡ä»¶è€Œä¸�è®ºå¤§å°�\n"
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr "%s: å¿½ç•¥ä¸�å�¯è¾¨è®¤çš„ TEXINFO_OUTPUT_FORMAT å€¼â€œ%sâ€�ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%sï¼š%s å�‚æ•°å¿…é¡»ä¸ºæ•°å€¼ï¼Œè€Œä¸�æ˜¯â€œ%sâ€�ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "%s: æ— æ³•æ‰“å¼€å®�æ‰©å±•è¾“å‡ºâ€œ%sâ€�"
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr "%s: æ— æ³•æ‰“å¼€å®�æ‰©å±•è¾“å‡ºâ€œ%sâ€�\n"
+ 
+ #: makeinfo/makeinfo.c:733
+ #, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "%s: æ— æ³•æ‰“å¼€å®�æ‰©å±•è¾“å‡ºâ€œ%sâ€�"
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr "%s: å¿½ç•¥äºŒæ¬¡å†…éƒ¨è¿žæŽ¥è¾“å‡ºâ€œ%sâ€�ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr "%sï¼š--paragraph-indent çš„å�‚æ•°å¿…é¡»ä¸ºæ•°å€¼/â€œnoneâ€�/â€œasisâ€�ï¼Œè€Œä¸�æ˜¯â€œ%sâ€�ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr "%sï¼š--footnote-style çš„å�‚æ•°å¿…é¡»ä¸ºâ€œseparateâ€�æˆ–â€œendâ€�ï¼Œè€Œä¸�æ˜¯â€œ%sâ€�ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%sï¼šé�—æ¼�æ–‡ä»¶å�‚æ•°ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr "ä½¿ç”¨äº†ä¸�å�ˆé€‚çš„å¤šè¡Œå‘½ä»¤ %c%s"
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "åº”ä¸ºâ€œ%sâ€�"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr "æ— æ³•åˆ›å»ºç›®å½•â€œ%sâ€�ï¼š%s"
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "åœ¨â€œ%2$sâ€�ä¸­æ‰¾ä¸�åˆ°â€œ%1$sâ€�"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr "%s: è·³è¿‡å±•å¼€è‡³æ ‡å‡†è¾“å‡ºçš„å®�ï¼Œç”±äºŽ Info çš„è¾“å‡ºè¦�ä½¿ç”¨æ ‡å‡†è¾“å‡ºã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr "ä»Žâ€œ%3$sâ€�åˆ›å»º %1$s æ–‡ä»¶â€œ%2$sâ€�ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr "%sï¼šç”±äºŽé”™è¯¯åˆ é™¤å®�è¾“å‡ºæ–‡ä»¶â€œ%sâ€�ï¼›ç”¨ --force ä¿�ç•™å®�è¾“å‡ºã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr "%sï¼šç”±äºŽé”™è¯¯åˆ é™¤å®�è¾“å‡ºæ–‡ä»¶â€œ%sâ€�ï¼›ç”¨ --force ä¿�ç•™å®�è¾“å‡ºã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr "%sï¼šç”±äºŽé”™è¯¯åˆ é™¤å†…éƒ¨è¿žæŽ¥è¾“å‡ºæ–‡ä»¶â€œ%sâ€�ï¼›ç”¨ --force ä¿�ç•™ã€‚\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "æœªçŸ¥çš„å‘½ä»¤â€œ%sâ€�"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "ä½¿ç”¨èŠ±æ‹¬å�·å°†ä¸€ä¸ªå‘½ä»¤ç”¨ä½œ @%s çš„å�‚æ•°"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s éœ€è¦�èŠ±æ‹¬å�·"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "ä¸�åŒ¹é…�çš„ }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "æ— å��å­—ï¼�"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s é�—æ¼�é—­å�ˆèŠ±æ‹¬å�·"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image æ–‡ä»¶â€œ%sâ€�(å¯¹ HTML)ä¸�å�¯è¯»ï¼š%s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, c-format
+ msgid "No such file `%s'"
+ msgstr "æ²¡æœ‰é‚£æ ·çš„æ–‡ä»¶â€œ%sâ€�"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image æ–‡ä»¶â€œ%sâ€�(å¯¹æ–‡æœ¬)ä¸�å�¯è¯»ï¼š%s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image é�—æ¼�æ–‡ä»¶å��å�‚æ•°"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr "æœªå®šä¹‰çš„æ ‡è¯†: %s"
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr "{æ²¡æœ‰â€œ%sâ€�çš„å€¼}"
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s éœ€è¦�ä¸€ä¸ªå��å­—"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "æ–‡ä»¶åœ¨é�‡åˆ°åŒ¹é…�çš„ @end %s å‰�å°±ç»“æ�Ÿäº†"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr "â€œ%.40s...â€�æ‰©å±•èµ·æ�¥å¤ªé•¿ï¼›æœªæ‰©å±•"
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "@multitable æ¨¡æ�¿ä¸­é�—æ¼�äº† }"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr "å¿½ç•¥ @multitable ä¹‹å�Žçš„è¿‡å‰©æ–‡æœ¬â€œ%sâ€�"
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "åœ¨å¤šåˆ—è¡¨æ ¼é¡¹ç›®ä¸­å�«æœ‰å¤ªå¤šçš„åˆ— (æœ€å¤§ä¸º %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "[æœªé¢„æ–™åˆ°çš„é”™è¯¯] æ— æ³•åœ¨å¤šåˆ—è¡¨æ ¼ä¸­é€‰æ‹©ç¬¬ #%d åˆ—"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "å¿½ç•¥å¤šåˆ—è¡¨æ ¼å¤–çš„ @tab"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr "** æœ€å�Žä¸€è¡Œçš„å¤šåˆ—è¾“å‡ºï¼š\n"
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* åˆ— #%dï¼šè¾“å‡º = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "èŠ‚ç‚¹â€œ%sâ€�åœ¨å‰�é�¢çš„(ç¬¬ %d è¡Œ)å®šä¹‰"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "æ­£åœ¨æ ¼å¼�åŒ–èŠ‚ç‚¹ %s...\n"
+ 
+ #: makeinfo/node.c:714
+ #, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "èŠ‚ç‚¹â€œ%sâ€�éœ€è¦�ä¸€ä¸ªæ®µè�½å‘½ä»¤ (ä¾‹å¦‚ï¼š%c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "æ²¡æœ‰ä¸ºâ€œ%c%sâ€�å‘½ä»¤æŒ‡å®šèŠ‚å��ç§°"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr "Anchorâ€œ%sâ€�å’ŒèŠ‚ç‚¹â€œ%sâ€�æ˜ å°„åˆ°å�Œä¸€ä¸ªæ–‡ä»¶å��"
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr "å¿½ç•¥è¯¥ @anchor å‘½ä»¤ï¼›å¯¹å®ƒçš„å¼•ç”¨å°†æ— æ³•å·¥ä½œ"
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr "é‡�å‘½å�� anchor æˆ–ä½¿ç”¨â€œ--no-splitâ€�é€‰é¡¹"
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr "åœ¨åˆ†ç«‹ HTML æ–‡ä»¶â€œ%sâ€�çš„æœ«å°¾çš„æ„�å¤–å­—ç¬¦ä¸²"
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr "Anchorâ€œ%sâ€�å’Œâ€œ%sâ€�æ˜ å°„åˆ°å�Œä¸€ä¸ªæ–‡ä»¶å��"
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr "å¿½ç•¥ @anchor å‘½ä»¤ï¼›å¯¹å®ƒçš„å¼•ç”¨å°†ä¸�èƒ½å·¥ä½œ"
+ 
+ #: makeinfo/node.c:1362
+ #, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr "%s å¼•ç”¨åˆ°ä¸�å­˜åœ¨çš„èŠ‚ç‚¹â€œ%sâ€�(ä¹Ÿè®¸å­—æ®µä¸�æ­£ç¡®ï¼Ÿ)"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr "èŠ‚ç‚¹â€œ%sâ€�çš„ä¸‹ä¸€ä¸ªåŸŸæ²¡æœ‰æŒ‡å�‘(ä¹Ÿè®¸å­—æ®µä¸�æ­£ç¡®ï¼Ÿ)"
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "è¯¥èŠ‚ç‚¹ (%s) å�«æœ‰é”™è¯¯çš„ä¸Šä¸€ä¸ª"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr "èŠ‚ç‚¹â€œ%sâ€�çš„ä¸Šä¸€ä¸ªåŸŸæ²¡æœ‰æŒ‡å�‘"
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "è¯¥èŠ‚ç‚¹ (%s) å�«æœ‰é”™è¯¯çš„ä¸‹ä¸€ä¸ª"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr "â€œ%sâ€�æ—  Up å­—æ®µ(ä¹Ÿè®¸å­—æ®µä¸�æ­£ç¡®ï¼Ÿ)"
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr "å°½ç®¡èŠ‚ç‚¹â€œ%sâ€�æ˜¯â€œ%sâ€�çš„ä¸Šå±‚èŠ‚ç‚¹ï¼Œä½†ç¼ºå°‘ç›¸å…³çš„è�œå�•é¡¹"
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "æœªå¼•ç”¨çš„èŠ‚ç‚¹â€œ%sâ€�"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr "åˆ é™¤ %s\n"
+ 
+ #: makeinfo/node.c:1731
+ #, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "æ— æ³•åˆ é™¤æ–‡ä»¶â€œ%sâ€�ï¼š%s"
+ 
+ #: makeinfo/sectioning.c:122
+ #, c-format
+ msgid "Appendix %c"
+ msgstr "é™„å½• %c "
+ 
+ #: makeinfo/sectioning.c:467
+ #, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "å†…éƒ¨é”™è¯¯ (search_sectioning) â€œ%sâ€�ï¼�"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "å†…éƒ¨é”™è¯¯ (search_sectioning) â€œ%sâ€�ï¼�"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s å·²è¿‡æ—¶ï¼›ç”¨ %c%s ä»£æ›¿"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr "å¸¦æœ‰ %ctop çš„èŠ‚ç‚¹ä½œä¸ºä¸€ä¸ªèŠ‚å·²ç»�å­˜åœ¨"
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr "è¿™é‡Œæ˜¯ %ctop èŠ‚ç‚¹"
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr "%ctop åœ¨ %cnode ä¹‹å‰�ä½¿ç”¨ï¼Œé»˜è®¤ä¸º %s"
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image æ–‡ä»¶â€œ%sâ€�ä¸�å�¯è¯»ï¼š%s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr "ä½œä¸º @multitable çš„æœ€å�Žä¸€ä¸ªé¡¹ç›®ï¼Œ@headitem ç”Ÿæˆ�æ— æ•ˆçš„ Docbook æ–‡æ¡£"
+ 
+ #: makeinfo/xml.c:2150
+ #, fuzzy
+ msgid "of"
+ msgstr "çš„"
+ 
+ #: makeinfo/xml.c:2155
+ #, fuzzy
+ msgid "on"
+ msgstr "å…³äºŽ"
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr "äº¤å�‰å¼•ç”¨çš„ç¬¬ä¸€ä¸ªå�‚æ•°ä¸�èƒ½ä¸ºç©º"
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr "ä¸ºâ€œ%sâ€�ä¸­çš„ HTML äº¤å�‰å¼•ç”¨æ¸…ç©ºæ–‡ä»¶å��"
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr "æŸ¥æ‰¾â€œã€‚â€�æˆ–â€œï¼Œâ€�æ—¶é�‡åˆ°äº†æ–‡ä»¶ç»“å°¾"
+ 
+ #: makeinfo/xref.c:390
+ #, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "â€œ.â€�æˆ–â€œ,â€�ä¹‹å�Žå¿…é¡»ä¸º @%sï¼Œè€Œä¸�æ˜¯â€œ%câ€�"
+ 
+ #: makeinfo/xref.c:392
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "è¦�ä½¿ç”¨æ‹¬å�·ä¸­çš„äº¤å�‰å¼•ç”¨ï¼Œè¯·ä½¿ç”¨ @pxref"
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr "@inforef çš„ç¬¬ä¸€ä¸ªå�‚æ•°ä¸�èƒ½ä¸ºç©º"
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "æ˜¾ç¤ºè¯¥æ±‚åŠ©ä¿¡æ�¯å¹¶é€€å‡º"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "å°†è¾“å‡ºé€�å…¥ FILE"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "æ˜¾ç¤ºç‰ˆæœ¬ä¿¡æ�¯å¹¶é€€å‡º"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "ç”¨æ³•ï¼š%s [é€‰é¡¹]... æ–‡ä»¶...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "ä¸ºæ¯�ä¸ª TeX è¾“å‡ºæ–‡ä»¶ç”Ÿæˆ�æŽ’åº�çš„ç´¢å¼•ã€‚\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "å¯¹äºŽæ–‡æ¡£â€œfoo.texiâ€�ï¼ŒFILE... é€šå¸¸ä¸ºâ€œfoo.%c%câ€�çš„å½¢å¼�ã€‚\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "é€‰é¡¹ï¼š\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "é‡�æ–°æ‰“å¼€ %s å¤±è´¥"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%sï¼šä¸�æ˜¯ texinfo ç´¢å¼•æ–‡ä»¶"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "%s ä¸­æ²¡æœ‰é¡µç �"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr "æ�¡ç›® %s å‡ºçŽ°åœ¨å…·æœ‰æ¬¡è¦�å��ç§°çš„æ�¡ç›®ä¹‹å�Ž"
+ 
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "ç‰ˆæ�ƒæ‰€æœ‰ (C) %s è‡ªç”±è½¯ä»¶åŸºé‡‘ä¼šã€‚\n"
+ #~ "æœ¬è½¯ä»¶æ²¡æœ‰ä»»ä½•æ‹…ä¿�ã€‚æ‚¨å�¯ä»¥æŒ‰ç…§é€šç”¨\n"
+ #~ "å…¬å…±è®¸å�¯è¯�(GPL)çš„æ�¡æ¬¾å�‘è¡Œæœ¬è½¯ä»¶ã€‚\n"
+ #~ "è¿™æ–¹é�¢çš„è¯¦æƒ…ï¼Œè¯·é˜…è¯»å��ä¸º COPYING çš„æ–‡ä»¶ã€‚\n"
+ 
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            don't remove ANSI escapes from man pages.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "ç”¨æ³•ï¼š%s [é€‰é¡¹]... [è�œå�•é¡¹...]\n"
+ #~ "\n"
+ #~ "é˜…è¯» Info æ ¼å¼�çš„æ–‡æ¡£ã€‚\n"
+ #~ "\n"
+ #~ "é€‰é¡¹ï¼š\n"
+ #~ "      --apropos=STRING         åœ¨æ‰€æœ‰æ‰‹å†Œçš„æ‰€æœ‰ç´¢å¼•ä¸­æ�œç´¢ STRINGã€‚\n"
+ #~ "  -d, --directory=DIR          å°†ç›®å½• DIR æ·»åŠ åˆ° INFOPATH ä¸­ã€‚\n"
+ #~ "      --dribble=FILENAME       å°†ç”¨æˆ·çš„æŒ‰é”®æ�¡ç›®åœ¨æ–‡ä»¶ FILENAME ä¸­ã€‚\n"
+ #~ "  -f, --file=FILENAME          æŒ‡å®šè¦�é˜…è¯»çš„ Info æ–‡ä»¶ã€‚\n"
+ #~ "  -h, --help                   æ˜¾ç¤ºè¯¥æ±‚åŠ©ä¿¡æ�¯å¹¶é€€å‡ºã€‚\n"
+ #~ "      --index-search=STRING    è½¬ç§»åˆ°ç´¢å¼•æ�¡ç›® STRING æ‰€æŒ‡å�‘çš„èŠ‚ç‚¹ã€‚\n"
+ #~ "  -n, --node=NODENAME          æŒ‡å®šé¦–å…ˆé˜…è¯»çš„ Info æ–‡ä»¶ä¸­çš„èŠ‚ç‚¹ã€‚\n"
+ #~ "  -o, --output=FILENAME        å°†é€‰ä¸­çš„èŠ‚ç‚¹è¾“å‡ºåˆ°æ–‡ä»¶ FILENAME ä¸­ã€‚\n"
+ #~ "  -R, --raw-escapes            ä¸�è¦�åˆ é™¤æ�¥è‡ª man é¡µé�¢çš„ ANSI è½¬ä¹‰ç¬¦ã€‚\n"
+ #~ "      --restore=FILENAME       ä»Žæ–‡ä»¶ FILENAME ä¸­è¯»å�–åˆ�å§‹æŒ‰é”®ã€‚\n"
+ #~ "  -O, --show-options, --usage  è½¬ç§»åˆ°å‘½ä»¤è¡Œé€‰é¡¹èŠ‚ç‚¹ã€‚\n"
+ #~ "%s      --subnodes               é€’å½’è¾“å‡ºè�œå�•æ�¡ç›®ã€‚\n"
+ #~ "      --vi-keys                ä½¿ç”¨ç±» vi å’Œç±» less çš„æŒ‰é”®ç»‘å®šã€‚\n"
+ #~ "      --version                æ˜¾ç¤ºç‰ˆæœ¬ä¿¡æ�¯å¹¶é€€å‡ºã€‚\n"
+ #~ "\n"
+ #~ "å¦‚æžœå­˜åœ¨é�žé€‰é¡¹å�‚æ•°ï¼Œåˆ™ç¬¬ä¸€ä¸ªé�žé€‰é¡¹å�‚æ•°å°±æ˜¯èµ·ç‚¹è�œå�•æ�¡ç›®ï¼›\n"
+ #~ "å®ƒæ˜¯ä»Ž INFOPATH ä¸­çš„â€œdirâ€�æ–‡ä»¶ä¸­æ�œç´¢è€Œå¾—çš„ã€‚\n"
+ #~ "å¦‚æžœæ�œç´¢ä¸�åˆ°ï¼Œinfo å°±å�ˆå¹¶æ‰€æœ‰çš„â€œdirâ€�æ–‡ä»¶å¹¶æ˜¾ç¤ºå�ˆå¹¶ç»“æžœã€‚\n"
+ #~ "æ‰€æœ‰å‰©ä½™çš„å�‚æ•°å�‡ä½œä¸ºç›¸å¯¹äºŽé˜…è¯»çš„åˆ�å§‹èŠ‚ç‚¹çš„è�œå�•é¡¹ç›®å��ç§°ã€‚\n"
+ #~ "\n"
+ #~ "ç¤ºä¾‹ï¼š\n"
+ #~ "  info                       æ˜¾ç¤ºé¡¶å±‚ç›®å½•è�œå�•\n"
+ #~ "  info emacs                 ä»Žé¡¶å±‚ç›®å½•ä¸­çš„ emacs èŠ‚ç‚¹å¼€å§‹\n"
+ #~ "  info emacs buffers         ä»Ž emacs æ‰‹å†Œçš„ buffers èŠ‚ç‚¹å¼€å§‹\n"
+ #~ "  info --show-options emacs  ä»Ž emacs çš„å‘½ä»¤è¡Œé€‰é¡¹èŠ‚ç‚¹å¼€å§‹\n"
+ #~ "  info -f ./foo.info         æ˜¾ç¤ºæ–‡ä»¶ ./foo.infoï¼Œè€Œä¸�æ˜¯æ�œç´¢ç›®å½•\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[move-to-prev-xref]  Skip to previous hypertext link within this "
+ #~ "node.\n"
+ #~ msgstr "\\%-10[move-to-prev-xref]  è·³è½¬åˆ°æœ¬èŠ‚ç‚¹ä¸­çš„ä¸Šä¸€ä¸ªè¶…æ–‡æœ¬è¿žæŽ¥ã€‚\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr ""
+ #~ "\\%-10[dir-node]  ç§»åŠ¨åˆ°â€œdirectoryâ€�èŠ‚ç‚¹ã€‚ç­‰ä»·äºŽâ€œ\\[goto-node] (DIR)â€�ã€‚\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr "\\%-10[top-node]  ç§»åŠ¨åˆ°é¡¶å±‚èŠ‚ç‚¹ã€‚ç­‰ä»·äºŽâ€œ\\[goto-node] Topâ€�ã€‚\n"
+ 
+ #~ msgid "\\%-10[scroll-forward]  Scroll forward 1 line.\n"
+ #~ msgstr "\\%-10[scroll-forward]  å�‘å‰�æ»šåŠ¨ä¸€è¡Œã€‚\n"
+ 
+ #~ msgid "\\%-10[scroll-backward]  Scroll backward 1 line.\n"
+ #~ msgstr "\\%-10[scroll-backward]  å�‘å�Žæ»šåŠ¨ä¸€è¡Œã€‚\n"
+ 
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr "\\%-10[menu-digit]  é€‰å�–èŠ‚ç‚¹è�œå�•ä¸­çš„ç¬¬ä¸€è‡³ç¬¬ä¹�ä¸ªé¡¹ç›®ã€‚\n"
+ 
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr ""
+ #~ "\\%-10[search-backward]  å�‘å�Žæ�œç´¢æŒ‡å®šçš„å­—ç¬¦ä¸²\n"
+ #~ "              å¹¶é€‰æ‹©æ‰€æ‰¾åˆ°çš„ä¸Šä¸€ä¸ªå®žä¾‹æ‰€åœ¨çš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr "              é€‰å�–ä¸€ä¸ªè�œå�•é¡¹ç›®å°†é€‰ä¸­å�¦ä¸€ä¸ªèŠ‚ç‚¹ã€‚\n"
+ 
+ #~ msgid ""
+ #~ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ #~ msgstr "  %-10s  åœ¨æœ¬ Info æ–‡ä»¶ä¸­çš„ç´¢å¼•æ�¡ç›®ä¸­æ�œç´¢æŒ‡å®šçš„å­—ç¬¦ä¸²ï¼Œ\n"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr "              å¹¶é€‰æ‹©ç¬¬ä¸€ä¸ªæ‰¾åˆ°çš„æ�¡ç›®æ‰€å¼•ç”¨çš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr "              æ‚¨è¿˜å�¯ä»¥å�Œæ—¶ç»™å‡ºæ–‡ä»¶å��ï¼Œå½¢å¼�ä¸º (æ–‡ä»¶å��)èŠ‚ç‚¹å��ã€‚\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "              å¹¶é€‰æ‹©æ‰¾åˆ°çš„ä¸‹ä¸€ä¸ªå®žä¾‹æ‰€åœ¨çš„èŠ‚ç‚¹ã€‚\n"
+ 
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  å�‘å�Žæ�œç´¢æŒ‡å®šçš„å­—ç¬¦ä¸²\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr "--- ç”¨â€œ\\[history-node]â€�æˆ–â€œ\\[kill-node]â€�é€€å‡º ---\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "è·Ÿéš�ä¸‹ä¸€ä¸ªèŠ‚ç‚¹..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "é€‰æ‹©ç¬¬ä¸€ä¸ªè�œå�•é¡¹..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "é€‰æ‹©ä¸‹ä¸€ä¸ªèŠ‚ç‚¹..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "å�‘ä¸Šç§»åŠ¨ %d æ¬¡ï¼Œè€Œå�Žå�Žç§»ã€‚"
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘ä¸Šç§»åŠ¨ã€‚"
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "åœ¨æœ¬çª—å�£ä¸­å�‘ä¸Šå±‚ç§»åŠ¨"
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "ç§»åŠ¨åˆ°å‰�ä¸€ä¸ªçš„æœ€å�Žä¸€ä¸ªè�œå�•é¡¹ç›®ã€‚"
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "â€œâ€�ä¸ºé�žæ³•"
+ 
+ #~ msgid "Function"
+ #~ msgstr "å‡½æ•°"
+ 
+ #~ msgid "Macro"
+ #~ msgstr "å®�"
+ 
+ #~ msgid "Special Form"
+ #~ msgstr "ç‰¹æ®Šå½¢å¼�"
+ 
+ #~ msgid "Variable"
+ #~ msgstr "å�˜é‡�"
+ 
+ #~ msgid "User Option"
+ #~ msgstr "ç”¨æˆ·é€‰é¡¹"
+ 
+ #~ msgid "Instance Variable"
+ #~ msgstr "å®žä¾‹å�˜é‡�"
+ 
+ #~ msgid "Method"
+ #~ msgstr "æ–¹æ³•"
+ 
+ #~ msgid "Untitled"
+ #~ msgstr "æ— æ ‡é¢˜"
+ 
+ #~ msgid "%s is an invalid ISO code, using %c"
+ #~ msgstr "%s æ˜¯é�žæ³•çš„ ISO ç �ï¼Œä½¿ç”¨ %c"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg å�ªå¯¹å�•å�‚æ•°å®�æœ‰ç”¨"
+ 
+ #~ msgid "Cannot specify more than one macro expansion output"
+ #~ msgstr "æ— æ³•æŒ‡å®šå¤šä¸ªå®�æ‰©å±•è¾“å‡º"
+ 
+ #~ msgid "File exists, but is not a directory"
+ #~ msgstr "æ–‡ä»¶å­˜åœ¨ï¼Œä½†ä¸�æ˜¯ç›®å½•"
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "è¿™æ˜¯ %sï¼Œç”± makeinfo ç‰ˆæœ¬ %s ä»Ž %s ç”Ÿæˆ�ã€‚\n"
+ 
+ #~ msgid "see "
+ #~ msgstr "å�‚é˜… "
+ 
+ #~ msgid "No `%s.png' or `.jpg', and no extension supplied"
+ #~ msgstr "ä¸�æ˜¯â€œ%s.pngâ€�æˆ–â€œ.jpgâ€�ï¼Œè€Œä¸”æ²¡æœ‰ç»™å‡ºæ‰©å±•å��"
+ 
+ #~ msgid "Node:"
+ #~ msgstr "èŠ‚ç‚¹ï¼š"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "ä¸‹ä¸€ä¸ªï¼š"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "ä¸Šä¸€ä¸ªï¼š"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "ä¸Šå±‚ï¼š"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "è�œå�•"
+ 
+ #~ msgid "Cross"
+ #~ msgstr "äº¤å�‰å¼•ç”¨"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "ä¸Šä¸€ä¸ª"
+ 
+ #~ msgid "`%s' has no Up field"
+ #~ msgstr "â€œ%sâ€�æ²¡æœ‰ä¸Šå±‚åŸŸ"
+ 
+ #~ msgid "Up"
+ #~ msgstr "ä¸Šå±‚"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "èŠ‚ç‚¹â€œ%sâ€�å·²è¢«å¼•ç”¨äº† %d æ¬¡"
+ 
+ #~ msgid "Table of Contents"
+ #~ msgstr "ç›®å½•"
+ 
+ #~ msgid "Short Contents"
+ #~ msgstr "ç®€çŸ­ç›®å½•"
+ 
+ #~ msgid "%s: TOC should be here, but it was not found"
+ #~ msgstr "%sï¼šç›®å½•åº”è¯¥åœ¨è¿™é‡Œï¼Œä½†å®ƒå¹¶æœªå‡ºçŽ°"
+ 
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Install or delete dir entries from INFO-FILE in the Info directory file\n"
+ #~ "DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "ç”¨æ³•ï¼š%s [é€‰é¡¹]... [INFO-æ–‡ä»¶ [DIR-æ–‡ä»¶]]\n"
+ #~ "\n"
+ #~ "å°† INFO-æ–‡ä»¶ä¸­çš„ç›®å½•æ�¡ç›®å®‰è£…åˆ° Info ç›®å½•æ–‡ä»¶ DIR-æ–‡ä»¶ä¸­ï¼Œæˆ–ä»Žä¸­\n"
+ #~ "åˆ é™¤ã€‚\n"
+ #~ "\n"
+ #~ "é€‰é¡¹ï¼š\n"
+ #~ " --delete          ä»Ž DIR-æ–‡ä»¶ä¸­åˆ é™¤å…³äºŽ INFO-æ–‡ä»¶çš„çŽ°æœ‰æ�¡ç›®ï¼›\n"
+ #~ "                     ä¸�åˆ é™¤ä»»ä½•æ–°æ�¡ç›®ã€‚\n"
+ #~ " --dir-file=NAME   æŒ‡å®š Info ç›®å½•æ–‡ä»¶çš„æ–‡ä»¶å��ã€‚\n"
+ #~ "                     è¿™ç­‰ä»·äºŽä½¿ç”¨ DIR-æ–‡ä»¶å�‚æ•°ã€‚\n"
+ #~ " --entry=TEXT      å°† TEXT ä½œä¸º Info ç›®å½•æ�¡ç›®æ�’å…¥ã€‚\n"
+ #~ "                     TEXT çš„å½¢å¼�åº”è¯¥æ˜¯ Info è�œå�•é¡¹ç›®\n"
+ #~ "                     è¡Œä»¥å�Šé›¶ä¸ªæˆ–å¤šä¸ªä»¥ç©ºç™½å¼€å¤´çš„è¡Œã€‚\n"
+ #~ "                     å¦‚æžœæ‚¨æŒ‡æ˜Žå¤šä¸ªæ�¡ç›®ï¼Œå°†å…¨éƒ¨æ·»åŠ ã€‚\n"
+ #~ "                     å¦‚æžœæ‚¨æœªæŒ‡æ˜Žä»»ä½•æ�¡ç›®ï¼Œå®ƒä»¬å°†ä»Ž\n"
+ #~ "                     Info æ–‡ä»¶è‡ªèº«çš„ä¿¡æ�¯æ�¥åˆ¤æ–­ã€‚\n"
+ #~ " --help            æ˜¾ç¤ºæœ¬æ±‚åŠ©ä¿¡æ�¯å¹¶é€€å‡ºã€‚\n"
+ #~ " --info-file=FILE  æŒ‡å®šè¦�å®‰è£…åˆ°ç›®å½•ä¸­çš„ Info æ–‡ä»¶ã€‚\n"
+ #~ "                     è¿™ç­‰ä»·äºŽä½¿ç”¨ INFO-æ–‡ä»¶å�‚æ•°ã€‚\n"
+ #~ " --info-dir=DIR    ç­‰å�ŒäºŽ --dir-file=DIR/dirã€‚\n"
+ #~ " --item=TEXT       ç­‰å�ŒäºŽ --entry æ–‡æœ¬ã€‚\n"
+ #~ "                     Info ç›®å½•æ�¡ç›®å®žé™…ä¸Šæ˜¯è�œå�•é¡¹ç›®ã€‚\n"
+ #~ " --quiet           ä¸�è¦�è¾“å‡ºè­¦å‘Šã€‚\n"
+ #~ " --remove          ç­‰å�ŒäºŽ --deleteã€‚\n"
+ #~ " --section=SEC     å°†è¯¥æ–‡ä»¶çš„æ�¡ç›®å­˜å‚¨åˆ°ç›®å½•çš„èŠ‚ SEC ä¸­ã€‚\n"
+ #~ "                     å¦‚æžœæ‚¨æŒ‡æ˜Žå¤šäºŽä¸€ä¸ªèŠ‚ï¼Œå°†åŠ å…¥å�„ä¸ª\n"
+ #~ "                     èŠ‚ä¸­çš„æ‰€æœ‰æ�¡ç›®ã€‚\n"
+ #~ "                     å¦‚æžœæ‚¨æœªæŒ‡æ˜Žä»»ä½•èŠ‚ï¼Œå°†æ ¹æ�® Info\n"
+ #~ "                     æ–‡ä»¶è‡ªèº«çš„ä¿¡æ�¯æ�¥åˆ¤æ–­å®ƒä»¬ã€‚\n"
+ #~ " --version         æ˜¾ç¤ºç‰ˆæœ¬ä¿¡æ�¯å¹¶é€€å‡ºã€‚\n"
+ 
+ #~ msgid "%s: Specify the Info directory only once.\n"
+ #~ msgstr "%sï¼šInfo ç›®å½•å�ªåº”è¯¥æŒ‡å®šä¸€æ¬¡ã€‚\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "åœ¨æ–‡ä»¶â€œ%2$sâ€�ä¸­è�œå�•é¡¹â€œ%1$sâ€�å·²å­˜åœ¨"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "åœ¨å¤„ç�†ä¹‹å�Žä¿�ç•™ä¸´æ—¶æ–‡ä»¶"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "åœ¨å¤„ç�†ä¹‹å�Žåˆ é™¤ä¸´æ—¶æ–‡ä»¶ (é»˜è®¤)"
+ 
+ #~ msgid "%s; for file `%s'.\n"
+ #~ msgstr "%sï¼›æ–‡ä»¶â€œ%sâ€�ã€‚\n"
Files texinfo-4.12/po/zh_TW.gmo and texinfo-4.13/po/zh_TW.gmo differ
diff -Nrc2 texinfo-4.12/po/zh_TW.po texinfo-4.13/po/zh_TW.po
*** texinfo-4.12/po/zh_TW.po	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/po/zh_TW.po	Thu Sep 18 11:38:33 2008
***************
*** 0 ****
--- 1,3465 ----
+ # traditional Chinese translation for texinfo
+ # Copyright (C) 2000 Free Software Foundation, Inc.
+ # plasma <plasmaball@pchome.com.tw>, 2000.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: texinfo 4.1\n"
+ "Report-Msgid-Bugs-To: bug-texinfo@gnu.org\n"
+ "POT-Creation-Date: 2008-09-18 20:38+0200\n"
+ "PO-Revision-Date: 2002-03-08 04:56+0800\n"
+ "Last-Translator: Abel Cheung <maddog@linux.org.hk>\n"
+ "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=Big5\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ 
+ #: gnulib/lib/error.c:125
+ msgid "Unknown system error"
+ msgstr ""
+ 
+ #: gnulib/lib/getopt.c:526 gnulib/lib/getopt.c:542
+ #, c-format
+ msgid "%s: option `%s' is ambiguous\n"
+ msgstr "%s: ¿ï¶µ `%s' ¤£©ú\n"
+ 
+ #: gnulib/lib/getopt.c:575 gnulib/lib/getopt.c:579
+ #, c-format
+ msgid "%s: option `--%s' doesn't allow an argument\n"
+ msgstr "%s: ¿ï¶µ `--%s' ¤£¥i§t¦³¤Þ¼Æ\n"
+ 
+ #: gnulib/lib/getopt.c:588 gnulib/lib/getopt.c:593
+ #, c-format
+ msgid "%s: option `%c%s' doesn't allow an argument\n"
+ msgstr "%s: ¿ï¶µ `%c%s' ¤£¥i§t¦³¤Þ¼Æ\n"
+ 
+ #: gnulib/lib/getopt.c:636 gnulib/lib/getopt.c:655 gnulib/lib/getopt.c:971
+ #: gnulib/lib/getopt.c:990
+ #, c-format
+ msgid "%s: option `%s' requires an argument\n"
+ msgstr "%s: ¿ï¶µ `%s' ¥²¶·§t¦³¤Þ¼Æ\n"
+ 
+ #: gnulib/lib/getopt.c:693 gnulib/lib/getopt.c:696
+ #, c-format
+ msgid "%s: unrecognized option `--%s'\n"
+ msgstr "%s: ¥¼ª¾ªº¿ï¶µ `--%s'\n"
+ 
+ #: gnulib/lib/getopt.c:704 gnulib/lib/getopt.c:707
+ #, c-format
+ msgid "%s: unrecognized option `%c%s'\n"
+ msgstr "%s: ¥¼ª¾ªº¿ï¶µ `%c%s'\n"
+ 
+ #: gnulib/lib/getopt.c:759 gnulib/lib/getopt.c:762
+ #, c-format
+ msgid "%s: illegal option -- %c\n"
+ msgstr "%s: ¤£¦Xªkªº¿ï¶µ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:768 gnulib/lib/getopt.c:771
+ #, c-format
+ msgid "%s: invalid option -- %c\n"
+ msgstr "%s: µL®Äªº¿ï¶µ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:823 gnulib/lib/getopt.c:839 gnulib/lib/getopt.c:1043
+ #: gnulib/lib/getopt.c:1061
+ #, c-format
+ msgid "%s: option requires an argument -- %c\n"
+ msgstr "%s: ¿ï¶µ¥²¶·§t¦³¤Þ¼Æ -- %c\n"
+ 
+ #: gnulib/lib/getopt.c:892 gnulib/lib/getopt.c:908
+ #, c-format
+ msgid "%s: option `-W %s' is ambiguous\n"
+ msgstr "%s: ¿ï¶µ `-W %s' ¤£©ú½T\n"
+ 
+ #: gnulib/lib/getopt.c:932 gnulib/lib/getopt.c:950
+ #, c-format
+ msgid "%s: option `-W %s' doesn't allow an argument\n"
+ msgstr "%s: ¿ï¶µ `-W %s' ¤£¥i§t¦³¤Þ¼Æ\n"
+ 
+ #: gnulib/lib/xalloc-die.c:34 gnulib/lib/xsetenv.c:37
+ #, fuzzy, c-format
+ msgid "memory exhausted"
+ msgstr "µêÀÀ°O¾ÐÅé¯ÓºÉ"
+ 
+ #: info/echo-area.c:283 info/session.c:966
+ msgid "Move forward a character"
+ msgstr "¦V«e²¾°Ê¤@­Ó¦r¤¸"
+ 
+ #: info/echo-area.c:295 info/session.c:993
+ msgid "Move backward a character"
+ msgstr "¦V«á²¾°Ê¤@­Ó¦r¤¸"
+ 
+ #: info/echo-area.c:307
+ msgid "Move to the start of this line"
+ msgstr "²¾¦Ü¥»¦æ¶}ÀY"
+ 
+ #: info/echo-area.c:312
+ msgid "Move to the end of this line"
+ msgstr "²¾¦Ü¥»¦æµ²§À"
+ 
+ #: info/echo-area.c:320 info/session.c:1025
+ msgid "Move forward a word"
+ msgstr "¦V«e²¾°Ê¤@­Ó¦r"
+ 
+ #: info/echo-area.c:360 info/session.c:1049
+ msgid "Move backward a word"
+ msgstr "¦V«á²¾°Ê¤@­Ó¦r"
+ 
+ #: info/echo-area.c:400
+ msgid "Delete the character under the cursor"
+ msgstr "§R°£´å¼Ð¦ì¸mªº¦r¤¸"
+ 
+ #: info/echo-area.c:430
+ msgid "Delete the character behind the cursor"
+ msgstr "§R°£´å¼Ð¦ì¸m«áªº¦r¤¸"
+ 
+ #: info/echo-area.c:451
+ msgid "Cancel or quit operation"
+ msgstr "¨ú®ø©Îµ²§ô¥Ø«eªº°Ê§@"
+ 
+ #: info/echo-area.c:466
+ msgid "Accept (or force completion of) this line"
+ msgstr "±µ¨ü (©Î±j­¢§¹¦¨) ¥»¦æ"
+ 
+ #: info/echo-area.c:471
+ msgid "Insert next character verbatim"
+ msgstr "¤£§@Âà´«, ´¡¤J¤U¤@­Ó¦r¤¸"
+ 
+ #: info/echo-area.c:479
+ msgid "Insert this character"
+ msgstr "´¡¤J¥»¦r¤¸"
+ 
+ #: info/echo-area.c:498
+ msgid "Insert a TAB character"
+ msgstr "´¡¤J¤@­Ó TAB ¦r¤¸"
+ 
+ #: info/echo-area.c:505
+ msgid "Transpose characters at point"
+ msgstr "ÅÜ´«´å¼Ð¦ì¸mªº¦r¤¸ªº¶¶§Ç"
+ 
+ #: info/echo-area.c:556
+ msgid "Yank back the contents of the last kill"
+ msgstr "¶K¤J¤W¤@¦¸°Å¤Uªº¤º®e"
+ 
+ #: info/echo-area.c:563
+ msgid "Kill ring is empty"
+ msgstr "°Å¶KÃ¯¨S¦³¤º®e"
+ 
+ #: info/echo-area.c:576
+ msgid "Yank back a previous kill"
+ msgstr "¶K¤W«e¦¸ªº°Å¤U¤º®e"
+ 
+ #: info/echo-area.c:609
+ msgid "Kill to the end of the line"
+ msgstr "§R°£¦Ü¥»¦æµ²§À, ¨Ã¸m¤J°Å¶KÃ¯"
+ 
+ #: info/echo-area.c:622
+ msgid "Kill to the beginning of the line"
+ msgstr "§R°£¦Ü¥»¦æ¶}ÀY, ¨Ã¸m¤J°Å¶KÃ¯"
+ 
+ #: info/echo-area.c:634
+ msgid "Kill the word following the cursor"
+ msgstr "§R°£´å¼Ð«áªº³æ¦r, ¨Ã¸m¤J°Å¶KÃ¯"
+ 
+ #: info/echo-area.c:654
+ msgid "Kill the word preceding the cursor"
+ msgstr "§R°£´å¼Ð«eªº³æ¦r, ¨Ã¸m¤J°Å¶KÃ¯"
+ 
+ #: info/echo-area.c:870 info/echo-area.c:926
+ msgid "No completions"
+ msgstr "¨S¦³¥i¯àªº§¹¦¨¥y"
+ 
+ #: info/echo-area.c:872
+ msgid "Not complete"
+ msgstr "¥¼§¹¦¨"
+ 
+ #: info/echo-area.c:913
+ msgid "List possible completions"
+ msgstr "¦C¥X¥i¯àªº§¹¦¨¥y"
+ 
+ #: info/echo-area.c:930
+ msgid "Sole completion"
+ msgstr "³æ¤@ªº§¹¦¨¥y"
+ 
+ #: info/echo-area.c:939
+ msgid "One completion:\n"
+ msgstr "¤@­Ó§¹¦¨¥y:\n"
+ 
+ #: info/echo-area.c:940
+ #, c-format
+ msgid "%d completions:\n"
+ msgstr "%d ­Ó§¹¦¨¥y:\n"
+ 
+ #: info/echo-area.c:1087
+ msgid "Insert completion"
+ msgstr "´¡¤J§¹¦¨¥y"
+ 
+ #: info/echo-area.c:1222
+ msgid "Building completions..."
+ msgstr "«Ø¥ß§¹¦¨¥y¤¤..."
+ 
+ #: info/echo-area.c:1342
+ msgid "Scroll the completions window"
+ msgstr "±²°Ê§¹¦¨¥y¤À¹jµøµ¡"
+ 
+ #: info/footnotes.c:212
+ msgid "Footnotes could not be displayed"
+ msgstr "µLªkÅã¥Üµù¸}"
+ 
+ #: info/footnotes.c:238
+ msgid "Show the footnotes associated with this node in another window"
+ msgstr "±N¥»¸`ÂIªºµù¸}Åã¥Ü¦b¥t¤@­Ó¤À¹jµøµ¡¤º"
+ 
+ #: info/footnotes.h:26
+ #, fuzzy
+ msgid "---------- Footnotes ----------"
+ msgstr "---------------------\n"
+ 
+ #: info/indices.c:171
+ msgid "Look up a string in the index for this file"
+ msgstr "¦b¥»ÀÉ®×ªº¯Á¤Þ¤º¬d¸ß¦r¦ê"
+ 
+ #: info/indices.c:198
+ msgid "Finding index entries..."
+ msgstr "§ä´M¯Á¤Þ¶µ¥Ø..."
+ 
+ #: info/indices.c:206
+ msgid "No indices found."
+ msgstr "§ä¤£¨ì¯Á¤Þ"
+ 
+ #: info/indices.c:216
+ msgid "Index entry: "
+ msgstr "¯Á¤Þ¶µ¥Ø: "
+ 
+ #: info/indices.c:324
+ msgid ""
+ "Go to the next matching index item from the last `\\[index-search]' command"
+ msgstr "²¾°Ê¦Ü¤U¤@­Ó²Å¦X¤W¤@¦¸ªº `\\[index-search] ©R¥Oªº·j´M¶µ¥Ø"
+ 
+ #: info/indices.c:334
+ msgid "No previous index search string."
+ msgstr "¨S¦³«e¤@­Ó¯Á¤Þ·j´M¦r¦ê"
+ 
+ #: info/indices.c:341
+ msgid "No index entries."
+ msgstr "¨S¦³¯Á¤Þ¶µ¥Ø."
+ 
+ #: info/indices.c:374
+ #, fuzzy, c-format
+ msgid "No %sindex entries containing `%s'."
+ msgstr "¨S¦³ %s¯Á¤Þ¶µ¥Ø¥]§t \"%s\"."
+ 
+ #: info/indices.c:375
+ msgid "more "
+ msgstr "§ó¦hªº "
+ 
+ #: info/indices.c:385
+ msgid "CAN'T SEE THIS"
+ msgstr ""
+ 
+ #: info/indices.c:421
+ #, fuzzy, c-format
+ msgid "Found `%s' in %s. (`\\[next-index-match]' tries to find next.)"
+ msgstr "§ä¨ì \"%s\" ¦b %s ¤§¤¤. (`\\[next-index-match]' ¹Á¸Õ­n§ä¨ì¤U¤@­Ó¦r¦ê.)"
+ 
+ #: info/indices.c:549
+ #, fuzzy, c-format
+ msgid "Scanning indices of `%s'..."
+ msgstr "±½ºË \"%s\" ªº¯Á¤Þ¤¤..."
+ 
+ #: info/indices.c:604
+ #, c-format
+ msgid "No available info files have `%s' in their indices."
+ msgstr ""
+ 
+ #: info/indices.c:630
+ msgid "Grovel all known info file's indices for a string and build a menu"
+ msgstr "¾ã²z©Ò¦³¤wª¾ info ÀÉ¤¤¥]§t¬d¸ß¦r¦êªº¯Á¤Þ, ¨Ã«Ø¥ß¤@­Ó¿ï³æ"
+ 
+ #: info/indices.c:634
+ msgid "Index apropos: "
+ msgstr ""
+ 
+ #: info/indices.c:662
+ #, fuzzy, c-format
+ msgid ""
+ "\n"
+ "* Menu: Nodes whose indices contain `%s':\n"
+ msgstr ""
+ "\n"
+ "* Menu: ¨ä¯Á¤Þ¤¤¥]§t \"%s\" ªº¸`ÂI:\n"
+ 
+ #: info/info.c:275 info/infokey.c:899
+ #, c-format
+ msgid "Try --help for more information.\n"
+ msgstr "¸Õ¸Õ --help ¥H¨ú±o§ó¦hªº¸ê°T.\n"
+ 
+ #: info/info.c:294 info/infokey.c:145 install-info/install-info.c:2101
+ #: makeinfo/makeinfo.c:802 util/texindex.c:295
+ #, c-format
+ msgid ""
+ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+ "html>\n"
+ "This is free software: you are free to change and redistribute it.\n"
+ "There is NO WARRANTY, to the extent permitted by law.\n"
+ msgstr ""
+ 
+ #: info/info.c:506
+ #, c-format
+ msgid "no index entries found for `%s'\n"
+ msgstr "§ä¤£¨ì¥]§t `%s' ªº¯Á¤Þ¶µ¥Ø\n"
+ 
+ #: info/info.c:600
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ "\n"
+ "Read documentation in Info format.\n"
+ msgstr ""
+ 
+ #: info/info.c:606
+ msgid ""
+ "Options:\n"
+ "  -k, --apropos=STRING         look up STRING in all indices of all "
+ "manuals.\n"
+ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ "  -f, --file=FILENAME          specify Info file to visit."
+ msgstr ""
+ 
+ #: info/info.c:613
+ msgid ""
+ "  -h, --help                   display this help and exit.\n"
+ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ "  -o, --output=FILENAME        output selected nodes to FILENAME."
+ msgstr ""
+ 
+ #: info/info.c:619
+ msgid ""
+ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ "      --no-raw-escapes         output escapes as literal text.\n"
+ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ "  -O, --show-options, --usage  go to command-line options node."
+ msgstr ""
+ 
+ #: info/info.c:626
+ msgid "  -b, --speech-friendly        be friendly to speech synthesizers."
+ msgstr ""
+ 
+ #: info/info.c:630
+ msgid ""
+ "      --subnodes               recursively output menu items.\n"
+ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ "      --version                display version information and exit.\n"
+ "  -w, --where, --location      print physical location of Info file."
+ msgstr ""
+ 
+ #: info/info.c:636
+ msgid ""
+ "\n"
+ "The first non-option argument, if present, is the menu entry to start from;\n"
+ "it is searched for in all `dir' files along INFOPATH.\n"
+ "If it is not present, info merges all `dir' files and shows the result.\n"
+ "Any remaining arguments are treated as the names of menu\n"
+ "items relative to the initial node visited."
+ msgstr ""
+ 
+ #: info/info.c:643
+ msgid ""
+ "\n"
+ "For a summary of key bindings, type h within Info."
+ msgstr ""
+ 
+ #: info/info.c:646
+ msgid ""
+ "\n"
+ "Examples:\n"
+ "  info                       show top-level dir menu\n"
+ "  info info                  show the general manual for Info readers\n"
+ "  info info-stnd             show the manual specific to this Info program\n"
+ "  info emacs                 start at emacs node from top-level dir\n"
+ "  info emacs buffers         start at buffers node within emacs manual\n"
+ "  info --show-options emacs  start at node with emacs' command line options\n"
+ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ "  info -f ./foo.info         show file ./foo.info, not searching dir"
+ msgstr ""
+ 
+ #: info/info.c:657 info/infokey.c:918 makeinfo/makeinfo.c:475
+ #: util/texindex.c:259
+ #, fuzzy
+ msgid ""
+ "\n"
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "µ{¦¡¯äÂÎ, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ¦^³ø¦Ü bug-texinfo@gnu.org,\n"
+ "¤@¯ë°ÝÃD»P°Q½×, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ±H¨ì help-texinfo@gnu.org.\n"
+ 
+ #: info/info.c:691
+ #, c-format
+ msgid "Cannot find node `%s'."
+ msgstr "§ä¤£¨ì `%s' ¸`ÂI."
+ 
+ #: info/info.c:692
+ #, c-format
+ msgid "Cannot find node `(%s)%s'."
+ msgstr "§ä¤£¨ì `(%s)%s' ¸`ÂI."
+ 
+ #: info/info.c:693
+ msgid "Cannot find a window!"
+ msgstr "§ä¤£¨ì¤À¹jµøµ¡!"
+ 
+ #: info/info.c:694
+ msgid "Point doesn't appear within this window's node!"
+ msgstr "´å¼Ð¦ì¸m¤£¦b¥»¤À¹jµøµ¡ªº¸`ÂI¤º!"
+ 
+ #: info/info.c:695
+ msgid "Cannot delete the last window."
+ msgstr "µLªk§R°£¤W¤@­Ó¤À¹jµøµ¡."
+ 
+ #: info/info.c:696
+ msgid "No menu in this node."
+ msgstr "¥»¸`ÂI¨S¦³¿ï³æ."
+ 
+ #: info/info.c:697
+ msgid "No footnotes in this node."
+ msgstr "¥»¸`ÂI¨S¦³µù¸}."
+ 
+ #: info/info.c:698
+ msgid "No cross references in this node."
+ msgstr "¥»¸`ÂI¨S¦³¥æ¤¬°Ñ·Ó."
+ 
+ #: info/info.c:699
+ #, c-format
+ msgid "No `%s' pointer for this node."
+ msgstr "¥»¸`ÂI¨S¦³ `%s' pointer."
+ 
+ #: info/info.c:700
+ #, c-format
+ msgid "Unknown Info command `%c'; try `?' for help."
+ msgstr "¥¼ª¾ªº Info ©R¥O `%c'; ¸Õ¸Õ `?' ¥H¨ú±o¨D§U¸ê°T."
+ 
+ #: info/info.c:701
+ #, c-format
+ msgid "Terminal type `%s' is not smart enough to run Info."
+ msgstr "²×ºÝ¾÷Ãþ«¬ `%s' µLªk¤ä´©°õ¦æ Info ©Ò»Ýªº»Ý¨D."
+ 
+ #: info/info.c:702
+ msgid "You are already at the last page of this node."
+ msgstr "±z¤w¦b¥»¸`ÂIªº³Ì«á¤@­¶."
+ 
+ #: info/info.c:703
+ msgid "You are already at the first page of this node."
+ msgstr "±z¤w¦b¥»¸`ÂIªº²Ä¤@­¶."
+ 
+ #: info/info.c:704
+ msgid "Only one window."
+ msgstr "¥u¦³¤@­Ó¤À¹jµøµ¡."
+ 
+ #: info/info.c:705
+ msgid "Resulting window would be too small."
+ msgstr "²£¥Íªº¤À¹jµøµ¡·|¤Ó¤p."
+ 
+ #: info/info.c:706
+ msgid "Not enough room for a help window, please delete a window."
+ msgstr "³Ñ¤UªºªÅ¶¡¤Ó¤p, µLªk®e¯Ç¨D§U¤À¹jµøµ¡, ½Ð§R°£¤@­Ó¤À¹jµøµ¡."
+ 
+ #: info/infodoc.c:45
+ msgid "Basic Info command keys\n"
+ msgstr ""
+ 
+ #: info/infodoc.c:47
+ #, fuzzy
+ msgid "\\%-10[quit-help]  Close this help window.\n"
+ msgstr "  %-10s  µ²§ô¥»¨D§U.\n"
+ 
+ #: info/infodoc.c:48
+ #, fuzzy
+ msgid "\\%-10[quit]  Quit Info altogether.\n"
+ msgstr "  %-10s  ¤@¨Öµ²§ô Info µ{¦¡.\n"
+ 
+ #: info/infodoc.c:49
+ #, fuzzy
+ msgid "\\%-10[get-info-help-node]  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  °õ¦æ Info «ü¾É½Òµ{.\n"
+ 
+ #: info/infodoc.c:51
+ #, fuzzy
+ msgid "\\%-10[prev-line]  Move up one line.\n"
+ msgstr "  %-10s  ©¹«á±²°Ê¤@¦æ.\n"
+ 
+ #: info/infodoc.c:52
+ #, fuzzy
+ msgid "\\%-10[next-line]  Move down one line.\n"
+ msgstr "  %-10s  ©¹«e±²°Ê¤@¦æ.\n"
+ 
+ #: info/infodoc.c:53
+ #, fuzzy
+ msgid "\\%-10[scroll-backward]  Scroll backward one screenful.\n"
+ msgstr "  %-10s  ¦V«á±²°Ê¤@­¶.\n"
+ 
+ #: info/infodoc.c:54
+ #, fuzzy
+ msgid "\\%-10[scroll-forward]  Scroll forward one screenful.\n"
+ msgstr "  %-10s  ¦V«e±²°Ê¤@­¶.\n"
+ 
+ #: info/infodoc.c:55
+ #, fuzzy
+ msgid "\\%-10[beginning-of-node]  Go to the beginning of this node.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº¶}ÀY.\n"
+ 
+ #: info/infodoc.c:56
+ #, fuzzy
+ msgid "\\%-10[end-of-node]  Go to the end of this node.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªºµ²§À.\n"
+ 
+ #: info/infodoc.c:58
+ #, fuzzy
+ msgid "\\%-10[move-to-next-xref]  Skip to the next hypertext link.\n"
+ msgstr "  %-10s  ¸õ¨ì¥»¸`ÂI¤¤ªº¤U¤@­Ó¶W¥»¤å³sµ².\n"
+ 
+ #: info/infodoc.c:59
+ #, fuzzy
+ msgid ""
+ "\\%-10[select-reference-this-line]  Follow the hypertext link under the "
+ "cursor.\n"
+ msgstr "  %-10s  ¸òÀH´å¼Ð¤Uªº¶W¥»¤å³sµ².\n"
+ 
+ #: info/infodoc.c:60
+ #, fuzzy
+ msgid "\\%-10[history-node]  Go back to the last node seen in this window.\n"
+ msgstr "  %-10s  ²¾°Ê¦Ü¥»¤À¹jµøµ¡¤¤, ¤W¤@­ÓÆ[¬Ýªº¸`ÂI.\n"
+ 
+ #: info/infodoc.c:62
+ #, fuzzy
+ msgid "\\%-10[global-prev-node]  Go to the previous node in the document.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤W¤@­Ó (previous)' ¸`ÂI.\n"
+ 
+ #: info/infodoc.c:63
+ #, fuzzy
+ msgid "\\%-10[global-next-node]  Go to the next node in the document.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤U¤@­Ó (next)' ¸`ÂI.\n"
+ 
+ #: info/infodoc.c:64
+ #, fuzzy
+ msgid "\\%-10[prev-node]  Go to the previous node on this level.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤W¤@­Ó (previous)' ¸`ÂI.\n"
+ 
+ #: info/infodoc.c:65
+ #, fuzzy
+ msgid "\\%-10[next-node]  Go to the next node on this level.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤U¤@­Ó (next)' ¸`ÂI.\n"
+ 
+ #: info/infodoc.c:66
+ #, fuzzy
+ msgid "\\%-10[up-node]  Go up one level.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤W¤@¼h (up)' ¸`ÂI.\n"
+ 
+ #: info/infodoc.c:67
+ #, fuzzy
+ msgid "\\%-10[top-node]  Go to the top node of this document.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªºµ²§À.\n"
+ 
+ #: info/infodoc.c:68
+ #, fuzzy
+ msgid "\\%-10[dir-node]  Go to the main `directory' node.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªºµ²§À.\n"
+ 
+ #: info/infodoc.c:70
+ #, fuzzy
+ msgid "1...9       Pick the first...ninth item in this node's menu.\n"
+ msgstr "  %-10s  ¬D¿ï¸`ÂI¥Ø¿ý¤¤ªº²Ä¤@­Ó...²Ä¤E­Ó¶µ¥Ø.\n"
+ 
+ #: info/infodoc.c:71
+ #, fuzzy
+ msgid "\\%-10[last-menu-item]  Pick the last item in this node's menu.\n"
+ msgstr "  %-10s  ¬D¿ï¸`ÂI¥Ø¿ýªº³Ì«á¤@­Ó¶µ¥Ø.\n"
+ 
+ #: info/infodoc.c:72
+ #, fuzzy
+ msgid "\\%-10[menu-item]  Pick a menu item specified by name.\n"
+ msgstr "  %-10s  ¥H¦WºÙ¿ï¨ú¿ï³æ¶µ¥Ø.\n"
+ 
+ #: info/infodoc.c:73
+ #, fuzzy
+ msgid "\\%-10[xref-item]  Follow a cross reference specified by name.\n"
+ msgstr "  %-10s  ¸òÀH¥æ¤¬°Ñ·Ó.  Åª¨ú°Ñ·Óªº¦WºÙ.\n"
+ 
+ #: info/infodoc.c:74
+ #, fuzzy
+ msgid "\\%-10[goto-node]  Go to a node specified by name.\n"
+ msgstr "  %-10s  ²¾°Ê¨ì«ü©w¦WºÙªº¸`ÂI.\n"
+ 
+ #: info/infodoc.c:76
+ #, fuzzy
+ msgid "\\%-10[search]  Search forward for a specified string.\n"
+ msgstr "  %-10s  ¦b¥» Info ÀÉ¤¤, ¦V«e·j´M¤@­Ó«ü©wªº¦r¦ê,\n"
+ 
+ #: info/infodoc.c:77
+ #, fuzzy
+ msgid "\\%-10[search-previous]  Search for previous occurrence.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤W¤@­Ó (previous)' ¸`ÂI.\n"
+ 
+ #: info/infodoc.c:78
+ #, fuzzy
+ msgid "\\%-10[search-next]  Search for next occurrence.\n"
+ msgstr "  %-10s  ¦b¥» Info ÀÉªº¯Á¤Þ¶µ¥Ø¤¤, ·j´M¤@­Ó«ü©wªº¦r¦ê,\n"
+ 
+ #: info/infodoc.c:79
+ #, fuzzy
+ msgid ""
+ "\\%-10[index-search]  Search for a specified string in the index, and\n"
+ "              select the node referenced by the first entry found.\n"
+ msgstr "              ¨Ã¥B¿ï¾Ü²Ä¤@­Ó·j´M¨ìªº¶µ¥Ø©Ò°Ñ·Óªº¸`ÂI.\n"
+ 
+ #: info/infodoc.c:81
+ #, fuzzy
+ msgid "\\%-10[abort-key]  Cancel the current operation.\n"
+ msgstr "¨ú®ø¥Ø«eªº§@·~"
+ 
+ #: info/infodoc.c:89
+ #, fuzzy
+ msgid ""
+ "Basic Commands in Info Windows\n"
+ "******************************\n"
+ msgstr "******************************\n"
+ 
+ #: info/infodoc.c:92
+ #, c-format
+ msgid "  %-10s  Quit this help.\n"
+ msgstr "  %-10s  µ²§ô¥»¨D§U.\n"
+ 
+ #: info/infodoc.c:93
+ #, c-format
+ msgid "  %-10s  Quit Info altogether.\n"
+ msgstr "  %-10s  ¤@¨Öµ²§ô Info µ{¦¡.\n"
+ 
+ #: info/infodoc.c:94
+ #, c-format
+ msgid "  %-10s  Invoke the Info tutorial.\n"
+ msgstr "  %-10s  °õ¦æ Info «ü¾É½Òµ{.\n"
+ 
+ #: info/infodoc.c:98
+ #, c-format
+ msgid "  %-10s  Move to the `next' node of this node.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤U¤@­Ó (next)' ¸`ÂI.\n"
+ 
+ #: info/infodoc.c:99
+ #, c-format
+ msgid "  %-10s  Move to the `previous' node of this node.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤W¤@­Ó (previous)' ¸`ÂI.\n"
+ 
+ #: info/infodoc.c:100
+ #, c-format
+ msgid "  %-10s  Move `up' from this node.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤W¤@¼h (up)' ¸`ÂI.\n"
+ 
+ #: info/infodoc.c:101
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Pick menu item specified by name.\n"
+ "              Picking a menu item causes another node to be selected.\n"
+ msgstr "              ¿ï¨ú¿ï³æ¶µ¥Ø¥H¿ï¾Ü¥t¤@­Ó¸`ÂI.\n"
+ 
+ #: info/infodoc.c:103
+ #, c-format
+ msgid "  %-10s  Follow a cross reference.  Reads name of reference.\n"
+ msgstr "  %-10s  ¸òÀH¥æ¤¬°Ñ·Ó.  Åª¨ú°Ñ·Óªº¦WºÙ.\n"
+ 
+ #: info/infodoc.c:104
+ #, c-format
+ msgid "  %-10s  Move to the last node seen in this window.\n"
+ msgstr "  %-10s  ²¾°Ê¦Ü¥»¤À¹jµøµ¡¤¤, ¤W¤@­ÓÆ[¬Ýªº¸`ÂI.\n"
+ 
+ #: info/infodoc.c:105
+ #, c-format
+ msgid "  %-10s  Skip to next hypertext link within this node.\n"
+ msgstr "  %-10s  ¸õ¨ì¥»¸`ÂI¤¤ªº¤U¤@­Ó¶W¥»¤å³sµ².\n"
+ 
+ #: info/infodoc.c:106
+ #, c-format
+ msgid "  %-10s  Follow the hypertext link under cursor.\n"
+ msgstr "  %-10s  ¸òÀH´å¼Ð¤Uªº¶W¥»¤å³sµ².\n"
+ 
+ #: info/infodoc.c:107
+ #, c-format
+ msgid "  %-10s  Move to the `directory' node.  Equivalent to `g (DIR)'.\n"
+ msgstr "  %-10s  ²¾¦Ü `directory' ¸`ÂI.  ¦P `g (DIR)'.\n"
+ 
+ #: info/infodoc.c:108
+ #, c-format
+ msgid "  %-10s  Move to the Top node.  Equivalent to `g Top'.\n"
+ msgstr "  %-10s  ²¾¦Ü Top ¸`ÂI.  ¦P `g TOP'.\n"
+ 
+ #: info/infodoc.c:110
+ #, fuzzy
+ msgid ""
+ "Moving within a node:\n"
+ "---------------------\n"
+ msgstr "---------------------\n"
+ 
+ #: info/infodoc.c:112
+ #, c-format
+ msgid "  %-10s  Scroll forward a page.\n"
+ msgstr "  %-10s  ¦V«e±²°Ê¤@­¶.\n"
+ 
+ #: info/infodoc.c:113
+ #, c-format
+ msgid "  %-10s  Scroll backward a page.\n"
+ msgstr "  %-10s  ¦V«á±²°Ê¤@­¶.\n"
+ 
+ #: info/infodoc.c:114
+ #, c-format
+ msgid "  %-10s  Go to the beginning of this node.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº¶}ÀY.\n"
+ 
+ #: info/infodoc.c:115
+ #, c-format
+ msgid "  %-10s  Go to the end of this node.\n"
+ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªºµ²§À.\n"
+ 
+ #: info/infodoc.c:116
+ #, c-format
+ msgid "  %-10s  Scroll forward 1 line.\n"
+ msgstr "  %-10s  ©¹«e±²°Ê¤@¦æ.\n"
+ 
+ #: info/infodoc.c:117
+ #, c-format
+ msgid "  %-10s  Scroll backward 1 line.\n"
+ msgstr "  %-10s  ©¹«á±²°Ê¤@¦æ.\n"
+ 
+ #: info/infodoc.c:119
+ #, fuzzy
+ msgid ""
+ "Other commands:\n"
+ "---------------\n"
+ msgstr "---------------\n"
+ 
+ #: info/infodoc.c:121
+ #, fuzzy, c-format
+ msgid "  %-10s  Pick first...ninth item in node's menu.\n"
+ msgstr "  %-10s  ¬D¿ï¸`ÂI¥Ø¿ý¤¤ªº²Ä¤@­Ó...²Ä¤E­Ó¶µ¥Ø.\n"
+ 
+ #: info/infodoc.c:122
+ #, c-format
+ msgid "  %-10s  Pick last item in node's menu.\n"
+ msgstr "  %-10s  ¬D¿ï¸`ÂI¥Ø¿ýªº³Ì«á¤@­Ó¶µ¥Ø.\n"
+ 
+ #: info/infodoc.c:125
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search for a specified string in the index entries of this Info\n"
+ "              file, and select the node referenced by the first entry "
+ "found.\n"
+ msgstr "              ¨Ã¥B¿ï¾Ü²Ä¤@­Ó·j´M¨ìªº¶µ¥Ø©Ò°Ñ·Óªº¸`ÂI.\n"
+ 
+ #: info/infodoc.c:127
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Move to node specified by name.\n"
+ "              You may include a filename as well, as in (FILENAME)NODENAME.\n"
+ msgstr "              ±z¤]¥i¥H¥]§tÀÉ¦W, ¦p: (ÀÉ¦W)¸`ÂI¦W.\n"
+ 
+ #: info/infodoc.c:129
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search forward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr "              ¨Ã¥B¿ï¾Ü¤U¤@­Ó·j´M¨ìªº¦r¦ê©Ò¦bªº¸`ÂI.\n"
+ 
+ #: info/infodoc.c:131
+ #, fuzzy, c-format
+ msgid ""
+ "  %-10s  Search backward for a specified string,\n"
+ "              and select the node in which the next occurrence is found.\n"
+ msgstr "              ¨Ã¥B¿ï¾Ü¤U¤@­Ó·j´M¨ìªº¦r¦ê©Ò¦bªº¸`ÂI.\n"
+ 
+ #: info/infodoc.c:312
+ msgid "The current search path is:\n"
+ msgstr "¥Ø«eªº·j´M¸ô®|¬°:\n"
+ 
+ #: info/infodoc.c:316
+ msgid ""
+ "Commands available in Info windows:\n"
+ "\n"
+ msgstr ""
+ "¦b Info ¤À¹jµøµ¡¤¤¥i¥Îªº«ü¥O:\n"
+ "\n"
+ 
+ #: info/infodoc.c:320
+ msgid ""
+ "Commands available in the echo area:\n"
+ "\n"
+ msgstr ""
+ "¦^À³°Ï¤¤¥i¥Îªº«ü¥O:\n"
+ "\n"
+ 
+ #: info/infodoc.c:343
+ #, fuzzy, c-format
+ msgid ""
+ "The following commands can only be invoked via %s:\n"
+ "\n"
+ msgstr ""
+ "¥H¤Uªº«ü¥O, ¥u¥i¸g¥Ñ M-x °õ¦æ:\n"
+ "\n"
+ 
+ #: info/infodoc.c:347
+ #, fuzzy
+ msgid ""
+ "The following commands cannot be invoked at all:\n"
+ "\n"
+ msgstr ""
+ "¥H¤Uªº«ü¥O, ¥u¥i¸g¥Ñ M-x °õ¦æ:\n"
+ "\n"
+ 
+ #: info/infodoc.c:477
+ msgid "Display help message"
+ msgstr "Åã¥Ü¨D§U°T®§"
+ 
+ #: info/infodoc.c:495
+ msgid "Visit Info node `(info)Help'"
+ msgstr "«ô³X Info ¸`ÂI `(info)Help'"
+ 
+ #: info/infodoc.c:633
+ msgid "Print documentation for KEY"
+ msgstr "¦C¥X KEY ªº¤å¥ó"
+ 
+ #: info/infodoc.c:645
+ #, c-format
+ msgid "Describe key: %s"
+ msgstr "´y­z«öÁä«ü¥O: %s"
+ 
+ #: info/infodoc.c:656
+ #, c-format
+ msgid "ESC %s is undefined."
+ msgstr "ESC %s ¥¼©w¸q."
+ 
+ #: info/infodoc.c:672 info/infodoc.c:701
+ #, c-format
+ msgid "%s is undefined."
+ msgstr "%s ¥¼©w¸q."
+ 
+ #: info/infodoc.c:722
+ #, c-format
+ msgid "%s is defined to %s."
+ msgstr "%s ©w¸q¦¨ %s."
+ 
+ #: info/infodoc.c:1146
+ msgid "Show what to type to execute a given command"
+ msgstr "Åã¥Ü°õ¦æ¬Y©R¥O©Ò»ÝÁä¤Jªº«öÁä"
+ 
+ #: info/infodoc.c:1150
+ msgid "Where is command: "
+ msgstr ""
+ 
+ #: info/infodoc.c:1172
+ #, c-format
+ msgid "`%s' is not on any keys"
+ msgstr "`%s' ¥¼Ãìµ²¨ì¥ô¦ó«öÁä"
+ 
+ #: info/infodoc.c:1179
+ #, c-format
+ msgid "%s can only be invoked via %s."
+ msgstr "%s ¥u¯à¸g¥Ñ %s °õ¦æ."
+ 
+ #: info/infodoc.c:1183
+ #, c-format
+ msgid "%s can be invoked via %s."
+ msgstr "%s ¥i¸g¥Ñ %s °õ¦æ."
+ 
+ #: info/infodoc.c:1188
+ #, c-format
+ msgid "There is no function named `%s'"
+ msgstr "¨S¦³¦W¬° `%s' ªº¨ç¦¡"
+ 
+ #: info/infodoc.c:96
+ #, fuzzy
+ msgid ""
+ "Selecting other nodes:\n"
+ "----------------------\n"
+ msgstr "----------------------\n"
+ 
+ #: info/infokey.c:170
+ msgid "incorrect number of arguments"
+ msgstr ""
+ 
+ #: info/infokey.c:201
+ #, fuzzy, c-format
+ msgid "cannot open input file `%s'"
+ msgstr "µLªk¶}±Ò¦Ü `%s' ªººÞ¹D."
+ 
+ #: info/infokey.c:215
+ #, fuzzy, c-format
+ msgid "cannot create output file `%s'"
+ msgstr "µLªk«Ø¥ß¿é¥XÀÉ®× `%s'."
+ 
+ #: info/infokey.c:226
+ #, c-format
+ msgid "error writing to `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:232
+ #, fuzzy, c-format
+ msgid "error closing output file `%s'"
+ msgstr "µLªk«Ø¥ß¿é¥XÀÉ®× `%s'."
+ 
+ #: info/infokey.c:450
+ msgid "key sequence too long"
+ msgstr ""
+ 
+ #: info/infokey.c:529
+ msgid "missing key sequence"
+ msgstr ""
+ 
+ #: info/infokey.c:610
+ msgid "NUL character (\\000) not permitted"
+ msgstr ""
+ 
+ #: info/infokey.c:641
+ #, c-format
+ msgid "NUL character (^%c) not permitted"
+ msgstr ""
+ 
+ #: info/infokey.c:665
+ #, fuzzy
+ msgid "missing action name"
+ msgstr "%c%s ¿òº|¥k¤j¬A¸¹"
+ 
+ #: info/infokey.c:681 info/infokey.c:756
+ msgid "section too long"
+ msgstr ""
+ 
+ #: info/infokey.c:688
+ #, fuzzy, c-format
+ msgid "unknown action `%s'"
+ msgstr "¥¼ª¾ªº©R¥O `%s'"
+ 
+ #: info/infokey.c:698
+ msgid "action name too long"
+ msgstr ""
+ 
+ #: info/infokey.c:712
+ #, c-format
+ msgid "extra characters following action `%s'"
+ msgstr ""
+ 
+ #: info/infokey.c:723
+ #, fuzzy
+ msgid "missing variable name"
+ msgstr "%s: ¿òº|ÀÉ®×¤Þ¼Æ.\n"
+ 
+ #: info/infokey.c:733
+ msgid "missing `=' immediately after variable name"
+ msgstr ""
+ 
+ #: info/infokey.c:741
+ msgid "variable name too long"
+ msgstr ""
+ 
+ #: info/infokey.c:765
+ msgid "value too long"
+ msgstr ""
+ 
+ #: info/infokey.c:890
+ #, c-format
+ msgid "\"%s\", line %u: "
+ msgstr ""
+ 
+ #: info/infokey.c:906
+ #, c-format
+ msgid ""
+ "Usage: %s [OPTION]... [INPUT-FILE]\n"
+ "\n"
+ "Compile infokey source file to infokey file.  Reads INPUT-FILE (default\n"
+ "$HOME/.infokey) and writes compiled key file to (by default) $HOME/.info.\n"
+ "\n"
+ "Options:\n"
+ "  --output FILE        output to FILE instead of $HOME/.info\n"
+ "  --help               display this help and exit.\n"
+ "  --version            display version information and exit.\n"
+ msgstr ""
+ 
+ #: info/infomap.c:955
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too small"
+ msgstr ""
+ 
+ #: info/infomap.c:958
+ #, c-format
+ msgid "Ignoring invalid infokey file `%s' - too big"
+ msgstr ""
+ 
+ #: info/infomap.c:971
+ #, c-format
+ msgid "Error reading infokey file `%s' - short read"
+ msgstr ""
+ 
+ #: info/infomap.c:990
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad magic numbers) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:999
+ #, c-format
+ msgid "Your infokey file `%s' is out of date -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1015
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section length) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1036
+ #, c-format
+ msgid ""
+ "Invalid infokey file `%s' (bad section code) -- run infokey to update it"
+ msgstr ""
+ 
+ #: info/infomap.c:1171
+ msgid "Bad data in infokey file -- some key bindings ignored"
+ msgstr ""
+ 
+ #: info/infomap.c:1221
+ msgid "Bad data in infokey file -- some var settings ignored"
+ msgstr ""
+ 
+ #: info/m-x.c:68
+ msgid "Read the name of an Info command and describe it"
+ msgstr "Åª¨ú Info ©R¥Oªº¦WºÙ, ¨Ã¥B´y­z¥¦"
+ 
+ #: info/m-x.c:72
+ msgid "Describe command: "
+ msgstr "´y­z©R¥O: "
+ 
+ #: info/m-x.c:95
+ msgid "Read a command name in the echo area and execute it"
+ msgstr "¦b¦^À³°Ï¤¤Åª¨ú©R¥O¦WºÙ, ¨Ã¥B°õ¦æ¥¦"
+ 
+ #: info/m-x.c:139
+ msgid "Cannot execute an `echo-area' command here."
+ msgstr "µLªk¦b³o¸Ì°õ¦æ `echo-area' ©R¥O."
+ 
+ #: info/m-x.c:153
+ #, fuzzy, c-format
+ msgid "Undefined command: %s"
+ msgstr "¥¼ª¾ªº©R¥O `%s'"
+ 
+ #: info/m-x.c:159
+ msgid "Set the height of the displayed window"
+ msgstr "³]©wÅã¥Üµøµ¡ªº°ª«×"
+ 
+ #: info/m-x.c:172
+ #, c-format
+ msgid "Set screen height to (%d): "
+ msgstr "³]©w¿Ã¹õ°ª«×¬° (%d): "
+ 
+ #: info/makedoc.c:166 info/makedoc.c:174
+ #, c-format
+ msgid ""
+ "   Source files groveled to make this file include:\n"
+ "\n"
+ msgstr ""
+ 
+ #: info/makedoc.c:556
+ #, c-format
+ msgid "Couldn't manipulate the file %s.\n"
+ msgstr "µLªk³B²zÀÉ®× %s.\n"
+ 
+ #: info/nodemenu.c:30
+ msgid ""
+ "\n"
+ "* Menu:\n"
+ "  (File)Node                        Lines   Size   Containing File\n"
+ "  ----------                        -----   ----   ---------------"
+ msgstr ""
+ "\n"
+ "* ¿ï³æ:\n"
+ "  (ÀÉ®×)¸`ÂI                        ¦æ ¼Æ   ¤j¤p    ¥]  §t  ÀÉ  ®×\n"
+ "  ----------                        -----   ----   ---------------"
+ 
+ #: info/nodemenu.c:201
+ msgid ""
+ "Here is the menu of nodes you have recently visited.\n"
+ "Select one from this menu, or use `\\[history-node]' in another window.\n"
+ msgstr ""
+ "³o¬O±z³Ìªñ«ô³X¹Lªº¸`ÂI¿ï³æ.\n"
+ "¦Û¥»¿ï³æ¿ï¨ú¤@¶µ, ©Î¬O¦b¥t¤@­Ó¤À¹jµøµ¡¨Ï¥Î `\\[history-node]' ©R¥O.\n"
+ 
+ #: info/nodemenu.c:223
+ msgid "Make a window containing a menu of all of the currently visited nodes"
+ msgstr "²£¥Í¤@­Ó¤À¹jµøµ¡, ¥]§t©Ò¦³³Ìªñ«ô³X¹Lªº¸`ÂI¿ï³æ"
+ 
+ #: info/nodemenu.c:303
+ msgid "Select a node which has been previously visited in a visible window"
+ msgstr "¿ï¨ú¤§«e¦b¥i¨£¤À¹jµøµ¡«ô³X¹Lªº¸`ÂI"
+ 
+ #: info/nodemenu.c:316
+ msgid "Select visited node: "
+ msgstr "¿ï¨ú«ô³X¹Lªº¸`ÂI: "
+ 
+ #: info/nodemenu.c:336 info/session.c:2578
+ #, c-format
+ msgid "The reference disappeared! (%s)."
+ msgstr "¥æ¤¬°Ñ·Ó¤£¨£¤F! (%s)."
+ 
+ #: info/search.c:166
+ #, c-format
+ msgid "regexp error: %s"
+ msgstr ""
+ 
+ #: info/session.c:164
+ #, c-format
+ msgid ""
+ "Welcome to Info version %s. Type \\[get-help-window] for help, \\[menu-item] "
+ "for menu item."
+ msgstr ""
+ "Åwªï¨Ï¥Î Info ª©¥» %s. Áä¤J \\[get-help-window] ¥H¨ú±o¨D§U¸ê°T, \\[menu-"
+ "item] ¥H¨ú±o¿ï³æ¶µ¥Ø."
+ 
+ #: info/session.c:625
+ msgid "Move down to the next line"
+ msgstr "²¾¦Ü¤U¤@¦æ"
+ 
+ #: info/session.c:661
+ msgid "Move up to the previous line"
+ msgstr "²¾¦Ü¤W¤@¦æ"
+ 
+ #: info/session.c:931
+ msgid "Move to the end of the line"
+ msgstr "²¾¦Ü¥»¦æµ²§À"
+ 
+ #: info/session.c:942
+ msgid "Move to the start of the line"
+ msgstr "²¾¦Ü¥»¦æ¶}ÀY"
+ 
+ #: info/session.c:1142
+ msgid "Next"
+ msgstr "¤U¤@­Ó"
+ 
+ #: info/session.c:1158 info/session.c:1283
+ msgid "No more nodes within this document."
+ msgstr "¥»¤å¥ó¤¤¨S¦³§ó¦hªº¸`ÂI¤F."
+ 
+ #: info/session.c:1309
+ msgid "No `Prev' for this node."
+ msgstr "¥»¸`ÂI¨S¦³ `¤W¤@­Ó (Prev)' ¸`ÂI."
+ 
+ #: info/session.c:1329
+ msgid "No `Prev' or `Up' for this node within this document."
+ msgstr "¦b¥»¤å¥ó¤¤, ¥»¸`ÂI¨S¦³ `¤W¤@­Ó (Prev)' ¸`ÂI©Î `¤W¤@¼h (Up)' ¸`ÂI."
+ 
+ #: info/session.c:1391
+ msgid "Move forwards or down through node structure"
+ msgstr "¦b¸`ÂIµ²ºc¤¤, ©¹«e©Î©¹¤U²¾°Ê"
+ 
+ #: info/session.c:1407
+ msgid "Move backwards or up through node structure"
+ msgstr "¦b¸`ÂIµ²ºc¤¤, ©¹«á©Î©¹¤U²¾°Ê"
+ 
+ #: info/session.c:1508
+ msgid "Scroll forward in this window"
+ msgstr "¦b¥»¤À¹jµøµ¡¤¤¦V«e±²°Ê"
+ 
+ #: info/session.c:1516
+ msgid "Scroll forward in this window and set default window size"
+ msgstr "¦b¥»¤À¹jµøµ¡¤¤¦V«e±²°Ê, ¨Ã¥B³]©w¦¨¹w³]ªº¤À¹jµøµ¡¤Ø¤o"
+ 
+ #: info/session.c:1524
+ #, fuzzy
+ msgid "Scroll forward in this window staying within node"
+ msgstr "¦b¥»¤À¹jµøµ¡¤¤¦V«e±²°Ê"
+ 
+ #: info/session.c:1532
+ #, fuzzy
+ msgid ""
+ "Scroll forward in this window staying within node and set default window size"
+ msgstr "¦b¥»¤À¹jµøµ¡¤¤¦V«e±²°Ê, ¨Ã¥B³]©w¦¨¹w³]ªº¤À¹jµøµ¡¤Ø¤o"
+ 
+ #: info/session.c:1540
+ msgid "Scroll backward in this window"
+ msgstr "¦b¥»¤À¹jµøµ¡¤¤¦V«á±²°Ê"
+ 
+ #: info/session.c:1548
+ msgid "Scroll backward in this window and set default window size"
+ msgstr "¦b¥»¤À¹jµøµ¡¤¤¦V«á±²°Ê, ¨Ã¥B³]©w¦¨¹w³]ªº¤À¹jµøµ¡¤Ø¤o"
+ 
+ #: info/session.c:1557
+ #, fuzzy
+ msgid "Scroll backward in this window staying within node"
+ msgstr "¦b¥»¤À¹jµøµ¡¤¤¦V«á±²°Ê"
+ 
+ #: info/session.c:1565
+ #, fuzzy
+ msgid ""
+ "Scroll backward in this window staying within node and set default window "
+ "size"
+ msgstr "¦b¥»¤À¹jµøµ¡¤¤¦V«á±²°Ê, ¨Ã¥B³]©w¦¨¹w³]ªº¤À¹jµøµ¡¤Ø¤o"
+ 
+ #: info/session.c:1573
+ msgid "Move to the start of this node"
+ msgstr "²¾¦Ü¥»¸`ÂIªº°_ÂI"
+ 
+ #: info/session.c:1580
+ msgid "Move to the end of this node"
+ msgstr "²¾¦Ü¥»¸`ÂIªºµ²§À"
+ 
+ #: info/session.c:1587
+ msgid "Scroll down by lines"
+ msgstr "¤@¦æ¦æ¦V¤U±²°Ê"
+ 
+ #: info/session.c:1604
+ msgid "Scroll up by lines"
+ msgstr "¤@¦æ¦æ¦V¤W±²°Ê"
+ 
+ #: info/session.c:1622
+ msgid "Scroll down by half screen size"
+ msgstr "¦V¤U±²°Ê¥b­Ó¿Ã¹õªº¤j¤p"
+ 
+ #: info/session.c:1648
+ msgid "Scroll up by half screen size"
+ msgstr "¦V¤W±²°Ê¥b­Ó¿Ã¹õªº¤j¤p"
+ 
+ #: info/session.c:1677
+ msgid "Select the next window"
+ msgstr "¿ï¾Ü¤U¤@­Ó¤À¹jµøµ¡"
+ 
+ #: info/session.c:1716
+ msgid "Select the previous window"
+ msgstr "¿ï¾Ü«e¤@­Ó¤À¹jµøµ¡"
+ 
+ #: info/session.c:1767
+ msgid "Split the current window"
+ msgstr "¤À¹j¥Ø«eªº¤À¹jµøµ¡"
+ 
+ #: info/session.c:1848
+ msgid "Delete the current window"
+ msgstr "§R°£¥Ø«eªº¤À¹jµøµ¡"
+ 
+ #: info/session.c:1856
+ msgid "Cannot delete a permanent window"
+ msgstr "µLªk§R°£©T©wªº¤À¹jµøµ¡"
+ 
+ #: info/session.c:1888
+ msgid "Delete all other windows"
+ msgstr "§R°£©Ò¦³¨ä¥¦ªº¤À¹jµøµ¡"
+ 
+ #: info/session.c:1934
+ msgid "Scroll the other window"
+ msgstr "±²°Ê¥t¤@­Ó¤À¹jµøµ¡"
+ 
+ #: info/session.c:1955
+ msgid "Scroll the other window backward"
+ msgstr "¦V«á±²°Ê¥t¤@­Ó¤À¹jµøµ¡"
+ 
+ #: info/session.c:1961
+ msgid "Grow (or shrink) this window"
+ msgstr "ÂX¤j (©ÎÁY¤p) ³o­Ó¤À¹jµøµ¡"
+ 
+ #: info/session.c:1972
+ msgid "Divide the available screen space among the visible windows"
+ msgstr "¦b¥i¥Îªº¿Ã¹õªÅ¶¡¤¤, ¥­§¡¤À³Î©Ò¦³ªº¥i¨£¤À¹jµøµ¡"
+ 
+ #: info/session.c:1979
+ msgid "Toggle the state of line wrapping in the current window"
+ msgstr "¤Á´«¥Ø«e¤À¹jµøµ¡ªº¦Û°Ê´«¦æª¬ºA"
+ 
+ #: info/session.c:1986
+ msgid "Toggle the usage of regular expressions in searches"
+ msgstr ""
+ 
+ #: info/session.c:1990
+ msgid "Using regular expressions for searches."
+ msgstr ""
+ 
+ #: info/session.c:1991
+ msgid "Using literal strings for searches."
+ msgstr ""
+ 
+ #: info/session.c:2162
+ msgid "Select the Next node"
+ msgstr "¿ï¨ú ¤U¤@­Ó ¸`ÂI"
+ 
+ #: info/session.c:2170
+ msgid "Select the Prev node"
+ msgstr "¿ï¨ú «e¤@­Ó ¸`ÂI"
+ 
+ #: info/session.c:2178
+ msgid "Select the Up node"
+ msgstr "¿ï¨ú ¤W¤@¼h ¸`ÂI"
+ 
+ #: info/session.c:2185
+ msgid "Select the last node in this file"
+ msgstr "¿ï¨ú¥»ÀÉ®×ªº³Ì«á¤@­Ó¸`ÂI"
+ 
+ #: info/session.c:2212 info/session.c:2245
+ msgid "This window has no additional nodes"
+ msgstr "¥»¤À¹jµøµ¡¨S¦³ÃB¥~ªº¸`ÂI"
+ 
+ #: info/session.c:2218
+ msgid "Select the first node in this file"
+ msgstr "¿ï¨ú¥»ÀÉ®×ªº²Ä¤@­Ó¸`ÂI"
+ 
+ #: info/session.c:2252
+ msgid "Select the last item in this node's menu"
+ msgstr "¿ï¨ú¥»¸`ÂI¿ï³æ¤¤, ³Ì«á¤@­Ó¶µ¥Ø"
+ 
+ #: info/session.c:2258
+ msgid "Select this menu item"
+ msgstr "¿ï¾Ü³o¤@­Ó¿ï³æ¶µ¥Ø"
+ 
+ #: info/session.c:2291
+ #, c-format
+ msgid "There aren't %d items in this menu."
+ msgstr "¥»¿ï³æ¤¤¨S¦³ %d ­Ó¶µ¥Ø"
+ 
+ #: info/session.c:2485 info/session.c:2486
+ #, c-format
+ msgid "Menu item (%s): "
+ msgstr "¿ï³æ¶µ¥Ø (%s): "
+ 
+ #: info/session.c:2489
+ msgid "Menu item: "
+ msgstr "¿ï³æ¶µ¥Ø: "
+ 
+ #: info/session.c:2496 info/session.c:2497
+ #, c-format
+ msgid "Follow xref (%s): "
+ msgstr "¸òÀH¥æ¤¬°Ñ·Ó (%s): "
+ 
+ #: info/session.c:2500
+ msgid "Follow xref: "
+ msgstr "¸òÀH¥æ¤¬°Ñ·Ó: "
+ 
+ #: info/session.c:2629
+ msgid "Read a menu item and select its node"
+ msgstr "Åª¨ú¤@­Ó¿ï³æ¶µ¥Ø, ¨Ã¥B¿ï¾Ü¥¦ªº¸`ÂI"
+ 
+ #: info/session.c:2637
+ msgid "Read a footnote or cross reference and select its node"
+ msgstr "Åª¨ú¤@­Óµù¸}©Î¥æ¤¬°Ñ·Ó, ¨Ã¥B¿ï¾Ü¥¦ªº¸`ÂI"
+ 
+ #: info/session.c:2643
+ msgid "Move to the start of this node's menu"
+ msgstr "²¾¦Ü¥»¸`ÂIªº¿ï³æ¶}ÀY"
+ 
+ #: info/session.c:2667
+ msgid "Visit as many menu items at once as possible"
+ msgstr "¾¨¥i¯à¤@¦¸«ô³X³Ì¦h­Ó¿ï³æ¶µ¥Ø"
+ 
+ #: info/session.c:2695
+ msgid "Read a node name and select it"
+ msgstr "Åª¨ú¸`ÂI¦WºÙ, ¨Ã¥B¿ï¾Ü¥¦"
+ 
+ #: info/session.c:2750 info/session.c:2755
+ msgid "Goto node: "
+ msgstr "¸õ¦Ü¸`ÂI: "
+ 
+ #: info/session.c:2819
+ #, c-format
+ msgid "No menu in node `%s'."
+ msgstr "¸`ÂI `%s' ¤¤¨S¦³¿ï³æ."
+ 
+ #: info/session.c:2865
+ #, c-format
+ msgid "No menu item `%s' in node `%s'."
+ msgstr "¿ï³æ¶µ¥Ø `%s' ¤£¦b¸`ÂI `%s' ¤¤."
+ 
+ #: info/session.c:2895
+ #, c-format
+ msgid "Unable to find node referenced by `%s' in `%s'."
+ msgstr "³Q°Ñ·Óªº¸`ÂI `%s' ¦b `%s' ¤¤§ä¤£¨ì."
+ 
+ #: info/session.c:2945
+ msgid "Read a list of menus starting from dir and follow them"
+ msgstr "Åª¨ú¦Û dir ¶}©lªº¸`ÂI±ø¦C, ¨Ã¥B¸òÀH¥¦­Ì"
+ 
+ #: info/session.c:2947
+ msgid "Follow menus: "
+ msgstr "¸òÀH¿ï³æ: "
+ 
+ #: info/session.c:3140
+ msgid "Find the node describing program invocation"
+ msgstr "§ä´M´y­zµ{¦¡°õ¦æ¤èªkªº¸`ÂI"
+ 
+ #: info/session.c:3142
+ #, c-format
+ msgid "Find Invocation node of [%s]: "
+ msgstr "§ä´M [%s] ªº°õ¦æ¤èªk¸`ÂI: "
+ 
+ #: info/session.c:3180
+ msgid "Read a manpage reference and select it"
+ msgstr "Åª¨ú½u¤W¤â¥U (manpage) ªº°Ñ·Ó, ¨Ã¥B¿ï¾Ü¥¦"
+ 
+ #: info/session.c:3184
+ msgid "Get Manpage: "
+ msgstr "¨ú±o½u¤W¤â¥U (Manpage): "
+ 
+ #: info/session.c:3214
+ msgid "Select the node `Top' in this file"
+ msgstr "¿ï¨ú¥»ÀÉ®×¤¤ªº `Top' ¸`ÂI"
+ 
+ #: info/session.c:3220
+ msgid "Select the node `(dir)'"
+ msgstr "¿ï¨ú¸`ÂI `(dir)'"
+ 
+ #: info/session.c:3237 info/session.c:3239
+ #, c-format
+ msgid "Kill node (%s): "
+ msgstr "§R°£¸`ÂI (%s): "
+ 
+ #: info/session.c:3291
+ #, c-format
+ msgid "Cannot kill node `%s'"
+ msgstr "µLªk§R°£¸`ÂI `%s'"
+ 
+ #: info/session.c:3301
+ msgid "Cannot kill the last node"
+ msgstr "µLªk§R°£¤W¤@­Ó¸`ÂI"
+ 
+ #: info/session.c:3387
+ msgid "Select the most recently selected node"
+ msgstr "¿ï¾Ü³Ìªñ¤@¦¸³Q¿ï¾Üªº¸`ÂI"
+ 
+ #: info/session.c:3393
+ msgid "Kill this node"
+ msgstr "§R°£¥»¸`ÂI"
+ 
+ #: info/session.c:3401
+ msgid "Read the name of a file and select it"
+ msgstr "Åª¨úÀÉ®×¦WºÙ, µM«á¿ï¨ú¥¦"
+ 
+ #: info/session.c:3405
+ msgid "Find file: "
+ msgstr "§ä´MÀÉ®×: "
+ 
+ #: info/session.c:3422
+ #, c-format
+ msgid "Cannot find `%s'."
+ msgstr "µLªk§ä¨ì `%s'."
+ 
+ #: info/session.c:3465 info/session.c:3583
+ #, c-format
+ msgid "Could not create output file `%s'."
+ msgstr "µLªk«Ø¥ß¿é¥XÀÉ®× `%s'."
+ 
+ #: info/session.c:3479 info/session.c:3601 info/session.c:3661
+ msgid "Done."
+ msgstr "§¹¦¨."
+ 
+ #: info/session.c:3534
+ #, c-format
+ msgid "Writing node %s..."
+ msgstr "¼g¤J¸`ÂI %s ¤¤..."
+ 
+ #: info/session.c:3610
+ msgid "Pipe the contents of this node through INFO_PRINT_COMMAND"
+ msgstr "±N¥»¸`ÂIªº¤º®e, ¸g¥ÑºÞ¹D (pipe) °e¦Ü INFO_PRINT_COMMAND"
+ 
+ #: info/session.c:3645
+ #, c-format
+ msgid "Cannot open pipe to `%s'."
+ msgstr "µLªk¶}±Ò¦Ü `%s' ªººÞ¹D."
+ 
+ #: info/session.c:3651
+ #, c-format
+ msgid "Printing node %s..."
+ msgstr "¦C¦L¸`ÂI %s ¤¤..."
+ 
+ #: info/session.c:3900
+ msgid "Search continued from the end of the document."
+ msgstr ""
+ 
+ #: info/session.c:3905
+ #, fuzzy
+ msgid "Search continued from the beginning of the document."
+ msgstr "§R°£¦Ü¥»¦æ¶}ÀY, ¨Ã¸m¤J°Å¶KÃ¯"
+ 
+ #: info/session.c:3922
+ #, c-format
+ msgid "Searching subfile %s ..."
+ msgstr "·j´M¤lÀÉ®× %s ..."
+ 
+ #: info/session.c:3979
+ msgid "Read a string and search for it case-sensitively"
+ msgstr "Åª¨ú¤@­Ó¦r¦ê, µM«á¥H°Ï¤À¤j¤p¼g¤è¦¡·j´M"
+ 
+ #: info/session.c:3986
+ msgid "Read a string and search for it"
+ msgstr "Åª¨ú¤@­Ó¦r¦ê, µM«á·j´M"
+ 
+ #: info/session.c:3994
+ msgid "Read a string and search backward for it"
+ msgstr "Åª¨ú¤@­Ó¦r¦ê, µM«á¦V«á·j´M"
+ 
+ #: info/session.c:4030 info/session.c:4036
+ #, fuzzy, c-format
+ msgid "%s%s%s [%s]: "
+ msgstr "%s%s [%s]: "
+ 
+ #: info/session.c:4031 info/session.c:4037
+ msgid "Regexp search"
+ msgstr ""
+ 
+ #: info/session.c:4032 info/session.c:4038
+ #, fuzzy
+ msgid " case-sensitively"
+ msgstr ", ¥H°Ï¤À¤j¤p¼gªº¤è¦¡"
+ 
+ #: info/session.c:4033 info/session.c:4039
+ #, fuzzy
+ msgid " backward"
+ msgstr "¦V«á·j´M¦r¦ê"
+ 
+ #: info/session.c:4037
+ msgid "Search"
+ msgstr "·j´M¦r¦ê"
+ 
+ #: info/session.c:4079
+ msgid "Search failed."
+ msgstr "·j´M¥¢±Ñ."
+ 
+ #: info/session.c:4097
+ msgid "Repeat last search in the same direction"
+ msgstr "¥H¦P¼Ëªº·j´M¤è¦V­«ÂÐ¤W¦¸ªº·j´M"
+ 
+ #: info/session.c:4100 info/session.c:4110
+ msgid "No previous search string"
+ msgstr "¨S¦³«e¤@¦¸ªº·j´M¦r¦ê"
+ 
+ #: info/session.c:4107
+ msgid "Repeat last search in the reverse direction"
+ msgstr "¥H¬Û¤Ïªº·j´M¤è¦V­«ÂÐ¤W¦¸ªº·j´M"
+ 
+ #: info/session.c:4126 info/session.c:4132
+ msgid "Search interactively for a string as you type it"
+ msgstr "¥H¤¬°Ê¤è¦¡, Ãä¿é¤J¦r¦êÃä·j´M"
+ 
+ #: info/session.c:4212
+ #, fuzzy
+ msgid "Regexp I-search backward: "
+ msgstr "¤Ï¦V¤¬°Ê·j´M: "
+ 
+ #: info/session.c:4213
+ msgid "I-search backward: "
+ msgstr "¤Ï¦V¤¬°Ê·j´M: "
+ 
+ #: info/session.c:4215
+ #, fuzzy
+ msgid "Regexp I-search: "
+ msgstr "¤¬°Ê·j´M: "
+ 
+ #: info/session.c:4216
+ msgid "I-search: "
+ msgstr "¤¬°Ê·j´M: "
+ 
+ #: info/session.c:4241 info/session.c:4243
+ msgid "Failing "
+ msgstr "¥¢±Ñ "
+ 
+ #: info/session.c:4734
+ msgid "Move to the previous cross reference"
+ msgstr "²¾°Ê¦Ü«e¤@­Ó¥æ¤¬°Ñ·Ó"
+ 
+ #: info/session.c:4752
+ msgid "Move to the next cross reference"
+ msgstr "²¾°Ê¦Ü¤U¤@­Ó¥æ¤¬°Ñ·Ó"
+ 
+ #: info/session.c:4774
+ msgid "Select reference or menu item appearing on this line"
+ msgstr "¿ï¾Ü¥X²{¦b¥»¦æªº°Ñ·Ó©Î¿ï³æ¶µ¥Ø"
+ 
+ #: info/session.c:4797
+ msgid "Cancel current operation"
+ msgstr "¨ú®ø¥Ø«eªº§@·~"
+ 
+ #: info/session.c:4804
+ msgid "Quit"
+ msgstr "µ²§ô"
+ 
+ #: info/session.c:4813
+ msgid "Move the cursor to a specific line of the window"
+ msgstr "²¾°Ê´å¼Ð¦Ü¤À¹jµøµ¡¤¤ªº«ü©w¦ì¸m"
+ 
+ #: info/session.c:4845
+ msgid "Redraw the display"
+ msgstr "­«Ã¸µe­±"
+ 
+ #: info/session.c:4882
+ msgid "Quit using Info"
+ msgstr "µ²§ô¨Ï¥Î Info"
+ 
+ #: info/session.c:4895
+ msgid "Run command bound to this key's lowercase variant"
+ msgstr ""
+ 
+ #: info/session.c:4906
+ #, c-format
+ msgid "Unknown command (%s)."
+ msgstr "¥¼ª¾ªº©R¥O (%s)."
+ 
+ #: info/session.c:4909
+ #, c-format
+ msgid "\"%s\" is invalid"
+ msgstr "\"%s\" ¤£¦Xªk"
+ 
+ #: info/session.c:4910
+ #, fuzzy, c-format
+ msgid "`%s' is invalid"
+ msgstr "\"%s\" ¤£¦Xªk"
+ 
+ #: info/session.c:5125
+ msgid "Add this digit to the current numeric argument"
+ msgstr "±N¥»¼Æ¦r¥[¦Ü¥Ø«eªº¼Æ­È¤Þ¼Æ"
+ 
+ #: info/session.c:5134
+ msgid "Start (or multiply by 4) the current numeric argument"
+ msgstr "¶}©l¥Ø«eªº¼Æ­È¤Þ¼Æ (©Î¬O­¼¥H 4)"
+ 
+ #: info/session.c:5149
+ msgid "Internally used by \\[universal-argument]"
+ msgstr "¦b¤º³¡³Q \\[universal-argument] ¨Ï¥Î"
+ 
+ #: info/tilde.c:336
+ #, c-format
+ msgid "readline: Out of virtual memory!\n"
+ msgstr "readline: ¯ÓºÉµêÀÀ°O¾ÐÅé!\n"
+ 
+ #: info/variables.c:37
+ msgid "When \"On\", footnotes appear and disappear automatically"
+ msgstr "·í³]©w¦b \"On\" ®É, µù¸}·|¦Û°Ê¥X²{»P®ø¥¢"
+ 
+ #: info/variables.c:41
+ msgid "When \"On\", creating or deleting a window resizes other windows"
+ msgstr "³]©w¦b \"On\" ®É, «Ø¥ß©Î§R°£¤@­Ó¤À¹jµøµ¡·|ÅÜ§ó¨ä¥¦ªº¤À¹jµøµ¡ªº¤j¤p"
+ 
+ #: info/variables.c:45
+ msgid "When \"On\", flash the screen instead of ringing the bell"
+ msgstr "³]©w¦b \"On\" ®É, ¥Hµe­±°{°Ê¥N´ÀÅT¹a"
+ 
+ #: info/variables.c:49
+ msgid "When \"On\", errors cause the bell to ring"
+ msgstr "³]©w¦b \"On\" ®É, µo¥Í¿ù»~·|ÅT¹a"
+ 
+ #: info/variables.c:53
+ msgid "When \"On\", Info garbage collects files which had to be uncompressed"
+ msgstr "When \"On\", Info garbage collects files which had to be uncompressed"
+ 
+ #: info/variables.c:56
+ msgid "When \"On\", the portion of the matched search string is highlighted"
+ msgstr "³]©w¦b \"On\" ®É, ²Å¦X·j´M¦r¦êªº³¡¥÷·|³Q¼Ð¥Ü°_¨Ó"
+ 
+ #: info/variables.c:60
+ msgid "Controls what happens when scrolling is requested at the end of a node"
+ msgstr "±±¨î¦b¸`ÂIªºµ²§À®É, ±²°Ê·|¦³¤°»ò¤ÏÀ³"
+ 
+ #: info/variables.c:65
+ msgid "Same as scroll-behaviour"
+ msgstr ""
+ 
+ #: info/variables.c:69
+ msgid "The number lines to scroll when the cursor moves out of the window"
+ msgstr "±±¨î·í´å¼Ð²¾°Ê¦Ü¤À¹jµøµ¡¥~®É, ±²°Êªº¦æ¼Æ"
+ 
+ #: info/variables.c:73
+ msgid "Controls whether scroll-behavior affects cursor movement commands"
+ msgstr ""
+ 
+ #: info/variables.c:77
+ msgid "When \"On\", Info accepts and displays ISO Latin characters"
+ msgstr "·í³]©w¦b \"On\" ®É, Info ¥i±µ¨ü¨ÃÅã¥Ü ISO Latin ¦r¤¸"
+ 
+ #: info/variables.c:81
+ #, fuzzy
+ msgid ""
+ "What to do when a scrolling command is issued at the end of the last node"
+ msgstr "±±¨î¦b¸`ÂIªºµ²§À®É, ±²°Ê·|¦³¤°»ò¤ÏÀ³"
+ 
+ #: info/variables.c:88
+ msgid "Explain the use of a variable"
+ msgstr "¸ÑÄÀÅÜ¼Æªº¥Îªk"
+ 
+ #: info/variables.c:94
+ msgid "Describe variable: "
+ msgstr "´y­zÅÜ¼Æ: "
+ 
+ #: info/variables.c:113
+ msgid "Set the value of an Info variable"
+ msgstr "³]©w Info ÅÜ¼Æªº¼Æ­È"
+ 
+ #: info/variables.c:119
+ msgid "Set variable: "
+ msgstr "³]©wÅÜ¼Æ: "
+ 
+ #: info/variables.c:137
+ #, c-format
+ msgid "Set %s to value (%d): "
+ msgstr "³]©w %s ªº¼Æ­È (%d): "
+ 
+ #: info/variables.c:178
+ #, c-format
+ msgid "Set %s to value (%s): "
+ msgstr "³]©w %s ªº¼Æ­È (%s): "
+ 
+ #: info/window.c:1026
+ msgid "--*** Tags out of Date ***"
+ msgstr ""
+ 
+ #: info/window.c:1037
+ msgid "-----Info: (), lines ----, "
+ msgstr "-----Info: (), ¦æ¼Æ  ----, "
+ 
+ #: info/window.c:1044
+ #, c-format
+ msgid "-%s---Info: %s, %d lines --%s--"
+ msgstr "-%s---Info: %s, ¦@ %d ¦æ --%s--"
+ 
+ #: info/window.c:1048
+ #, c-format
+ msgid "-%s%s-Info: (%s)%s, %d lines --%s--"
+ msgstr "-%s%s-Info: (%s)%s, ¦@ %d ¦æ --%s--"
+ 
+ #: info/window.c:1055
+ #, c-format
+ msgid " Subfile: %s"
+ msgstr " ¤lÀÉ®×: %s"
+ 
+ #: install-info/install-info.c:221
+ #, c-format
+ msgid "%s: warning: "
+ msgstr "%s: Äµ§i: "
+ 
+ #: install-info/install-info.c:270
+ #, c-format
+ msgid " for %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:500
+ #, c-format
+ msgid "\tTry `%s --help' for a complete list of options.\n"
+ msgstr "\t¸Õ¸Õ Try `%s --help' ¥H¨ú±o§¹¾ãªº°Ñ¼Æ¦Cªí.\n"
+ 
+ #: install-info/install-info.c:508
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ msgstr "¥Îªk: %s [OPTION]... FILE...\n"
+ 
+ #: install-info/install-info.c:510
+ msgid "Add or remove entries in INFO-FILE from the Info directory DIR-FILE."
+ msgstr ""
+ 
+ #: install-info/install-info.c:513
+ msgid ""
+ "Options:\n"
+ " --debug             report what is being done.\n"
+ " --delete            delete existing entries for INFO-FILE from DIR-FILE;\n"
+ "                      don't insert any new entries.\n"
+ " --description=TEXT  the description of the entry is TEXT; used with\n"
+ "                      the --name option to become synonymous with the\n"
+ "                      --entry option.\n"
+ " --dir-file=NAME     specify file name of Info directory file;\n"
+ "                      equivalent to using the DIR-FILE argument.\n"
+ " --dry-run           same as --test."
+ msgstr ""
+ 
+ #: install-info/install-info.c:525
+ msgid ""
+ " --entry=TEXT        insert TEXT as an Info directory entry.\n"
+ "                      TEXT is written as an Info menu item line followed\n"
+ "                       by zero or more extra lines starting with "
+ "whitespace.\n"
+ "                      If you specify more than one entry, all are added.\n"
+ "                      If you don't specify any entries, they are determined\n"
+ "                       from information in the Info file itself.\n"
+ "                      When removing, TEXT specifies the entry to remove.\n"
+ "                      TEXT is only removed as a last resort, if the\n"
+ "                      entry as determined from the Info file is not "
+ "present,\n"
+ "                      and the basename of the Info file isn't found either."
+ msgstr ""
+ 
+ #: install-info/install-info.c:537
+ msgid ""
+ " --help              display this help and exit.\n"
+ " --info-dir=DIR      same as --dir-file=DIR/dir.\n"
+ " --info-file=FILE    specify Info file to install in the directory;\n"
+ "                      equivalent to using the INFO-FILE argument.\n"
+ " --item=TEXT         same as --entry=TEXT.\n"
+ " --keep-old          do not replace entries, or remove empty sections.\n"
+ " --menuentry=TEXT    same as --name=TEXT.\n"
+ " --name=TEXT         the name of the entry is TEXT; used with --description\n"
+ "                      to become synonymous with the --entry option.\n"
+ " --no-indent         do not format new entries in the DIR file.\n"
+ " --quiet             suppress warnings."
+ msgstr ""
+ 
+ #: install-info/install-info.c:550
+ msgid ""
+ " --regex=R           put this file's entries in all sections that match the\n"
+ "                      regular expression R (ignoring case).\n"
+ " --remove            same as --delete.\n"
+ " --remove-exactly    only remove if the info file name matches exactly;\n"
+ "                      suffixes such as .info and .gz are not ignored.\n"
+ " --section=SEC       put entries in section SEC of the directory.\n"
+ "                      If you specify more than one section, all the entries\n"
+ "                       are added in each of the sections.\n"
+ "                      If you don't specify any sections, they are "
+ "determined\n"
+ "                       from information in the Info file itself.\n"
+ " --section R SEC     equivalent to --regex=R --section=SEC --add-once."
+ msgstr ""
+ 
+ #: install-info/install-info.c:563
+ msgid ""
+ " --silent            suppress warnings.\n"
+ " --test              suppress updating of DIR-FILE.\n"
+ " --version           display version information and exit."
+ msgstr ""
+ 
+ #: install-info/install-info.c:570
+ #, fuzzy
+ msgid ""
+ "Email bug reports to bug-texinfo@gnu.org,\n"
+ "general questions and discussion to help-texinfo@gnu.org.\n"
+ "Texinfo home page: http://www.gnu.org/software/texinfo/"
+ msgstr ""
+ "\n"
+ "µ{¦¡¯äÂÎ, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ¦^³ø¦Ü bug-texinfo@gnu.org,\n"
+ "¤@¯ë°ÝÃD»P°Q½×, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ±H¨ì help-texinfo@gnu.org.\n"
+ 
+ #: install-info/install-info.c:597
+ #, fuzzy, c-format
+ msgid ""
+ "This is the file .../info/dir, which contains the\n"
+ "topmost node of the Info hierarchy, called (dir)Top.\n"
+ "The first time you invoke Info you start off looking at this node.\n"
+ "\n"
+ "%s\tThis is the top of the INFO tree\n"
+ "\n"
+ "  This (the Directory node) gives a menu of major topics.\n"
+ "  Typing \"q\" exits, \"?\" lists all Info commands, \"d\" returns here,\n"
+ "  \"h\" gives a primer for first-timers,\n"
+ "  \"mEmacs<Return>\" visits the Emacs manual, etc.\n"
+ "\n"
+ "  In Emacs, you can click mouse button 2 on a menu item or cross reference\n"
+ "  to select it.\n"
+ "\n"
+ "%s\n"
+ msgstr ""
+ "³o¬OÀÉ®× .../info/dir, ¸Ì­±¥]§t¦³ Info ¿ï³æ¬[ºc¤¤³Ì¤W¼hªº¸`ÂI,\n"
+ "ºÙ¬° (dir) TOP.\n"
+ "±z²Ä¤@¦¸°õ¦æ Info ®É, ±z·|±q³o¸Ì¶}©l·j´M©Ò¶·ªº¸`ÂI.\n"
+ "\n"
+ "%s\t³o¬O INFO ¿ï³æ¾ðªº³Ì¤W¼h\n"
+ "\n"
+ "  ³o¸Ì (Directory ¸`ÂI) ´£¨Ñ¥D­n¶µ¥Øªº¿ï³æ.\n"
+ "  Áä¤J \"q\" Â÷¶}, \"?\" ¦C¥X©Ò¦³ªº Info «ü¥O, \"d\" ¦^¨ì³o¸Ì,\n"
+ "  \"h\" Æ[¬Ýµ¹ªì¦¸¨Ï¥ÎªÌªº¤Jªù«ü¤Þ,\n"
+ "  \"mEmacs<Return>\" ¥iÆ[¬Ý Emacs ¤â¥U, µ¥µ¥.\n"
+ "\n"
+ "  ¦b Emacs ¤¤, ±z¥i¥H¦b¿ï³æ¶µ¥Ø©Î¥æ¤¬°Ñ·Ó¤W, ³æÀ»·Æ¹«ªº²Ä 2 Áä\n"
+ "  ¥H¿ï¾Ü¥¦­Ì.\n"
+ "\n"
+ "* Menu:\n"
+ 
+ #: install-info/install-info.c:622
+ #, c-format
+ msgid "%s: could not read (%s) and could not create (%s)\n"
+ msgstr "%s: µLªkÅª¨ú (%s), ¦Ó¥BµLªk«Ø¥ß (%s)\n"
+ 
+ #: install-info/install-info.c:715
+ #, c-format
+ msgid "%s: empty file"
+ msgstr "%s: ªÅÀÉ®×"
+ 
+ #: install-info/install-info.c:1046 install-info/install-info.c:1086
+ msgid "START-INFO-DIR-ENTRY without matching END-INFO-DIR-ENTRY"
+ msgstr "¦³ START-INFO-DIR-ENTRY, ¦ý¬O¨S¦³¬Û¹ïÀ³ªº END-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1081
+ msgid "END-INFO-DIR-ENTRY without matching START-INFO-DIR-ENTRY"
+ msgstr "¦³ END-INFO-DIR-ENTRY, ¦ý¬O¨S¦³¬Û¹ïÀ³ªº START-INFO-DIR-ENTRY"
+ 
+ #: install-info/install-info.c:1946 install-info/install-info.c:1956
+ #, c-format
+ msgid "%s: already have dir file: %s\n"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2036
+ #, c-format
+ msgid "%s: Specify the Info file only once.\n"
+ msgstr "%s: ¥u¦³«ü©w Info ÀÉ®×¤@¦¸.\n"
+ 
+ #: install-info/install-info.c:2069
+ #, c-format
+ msgid "Extra regular expression specified, ignoring `%s'"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2081
+ #, c-format
+ msgid "Error in regular expression `%s': %s"
+ msgstr ""
+ 
+ #: install-info/install-info.c:2139
+ #, c-format
+ msgid "excess command line argument `%s'"
+ msgstr "¦h¾lªº©R¥O¦C¤Þ¼Æ `%s'"
+ 
+ #: install-info/install-info.c:2143
+ msgid "No input file specified; try --help for more information."
+ msgstr "¥¼«ü©w¿é¤JÀÉ®×; ¸Õ¸Õ --help ¥H¨ú±o§ó¦hªº¸ê°T."
+ 
+ #: install-info/install-info.c:2146
+ msgid "No dir file specified; try --help for more information."
+ msgstr "¥¼«ü©w dir ÀÉ®×; ¸Õ¸Õ --help ¥H¨ú±o¨ú¦hªº¸ê°T."
+ 
+ #: install-info/install-info.c:2288
+ #, c-format
+ msgid "no info dir entry in `%s'"
+ msgstr "`%s' ¤º¨S¦³ info dir ¶µ¥Ø"
+ 
+ #: install-info/install-info.c:2536
+ #, c-format
+ msgid "no entries found for `%s'; nothing deleted"
+ msgstr "§ä¤£¨ì `%s' ªº¶µ¥Ø; ¥¼§R°£¥ô¦ó¶µ¥Ø"
+ 
+ #: lib/xexit.c:54
+ msgid "ferror on stdout\n"
+ msgstr ""
+ 
+ #: lib/xexit.c:59
+ msgid "fflush error on stdout\n"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:582 makeinfo/cmds.c:604
+ #, fuzzy, c-format
+ msgid "arguments to @%s ignored"
+ msgstr "¹ï %c%s µL¥Îªº¤Þ¼Æ"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "January"
+ msgstr "¤@¤ë"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "February"
+ msgstr "¤G¤ë"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "March"
+ msgstr "¤T¤ë"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "April"
+ msgstr "¥|¤ë"
+ 
+ #: makeinfo/cmds.c:779
+ msgid "May"
+ msgstr "¤­¤ë"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "June"
+ msgstr "¤»¤ë"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "July"
+ msgstr "¤C¤ë"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "August"
+ msgstr "¤K¤ë"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "September"
+ msgstr "¤E¤ë"
+ 
+ #: makeinfo/cmds.c:780
+ msgid "October"
+ msgstr "¤Q¤ë"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "November"
+ msgstr "¤Q¤@¤ë"
+ 
+ #: makeinfo/cmds.c:781
+ msgid "December"
+ msgstr "¤Q¤G¤ë"
+ 
+ #: makeinfo/cmds.c:1131
+ #, c-format
+ msgid "unlikely character %c in @var"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1174
+ msgid "@sc argument all uppercase, thus no effect"
+ msgstr "@sc ªº¤Þ¼Æ¥þ¬O¤j¼g, ©Ò¥H¨S¦³§@¥Î"
+ 
+ #: makeinfo/cmds.c:1229
+ #, c-format
+ msgid "`{' expected, but saw `%c'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1269
+ msgid "end of file inside verb block"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1277
+ #, c-format
+ msgid "`}' expected, but saw `%c'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1308
+ msgid ""
+ "@strong{Note...} produces a spurious cross-reference in Info; reword to "
+ "avoid that"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:1504
+ #, c-format
+ msgid "%c%s is obsolete"
+ msgstr "%c%s ¤w¼o¤î¤£¥Î"
+ 
+ #: makeinfo/cmds.c:1612
+ #, c-format
+ msgid "@sp requires a positive numeric argument, not `%s'"
+ msgstr "@sp ¥²¶·¦³¤@­Ó¥¿¾ã¼Æªº¤Þ¼Æ, ¦Ó¤£¬O `%s'"
+ 
+ #: makeinfo/cmds.c:2023 makeinfo/footnote.c:81
+ #, c-format
+ msgid "Bad argument to %c%s"
+ msgstr "¹ï %c%s µL¥Îªº¤Þ¼Æ"
+ 
+ #: makeinfo/cmds.c:2033 makeinfo/makeinfo.c:4317
+ msgid "asis"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2035 makeinfo/cmds.c:2065 makeinfo/makeinfo.c:4319
+ msgid "none"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2049
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s"
+ msgstr "¹ï %c%s µL¥Îªº¤Þ¼Æ"
+ 
+ #: makeinfo/cmds.c:2063
+ msgid "insert"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2079
+ #, fuzzy, c-format
+ msgid "Bad argument to @%s: %s"
+ msgstr "¹ï %c%s µL¥Îªº¤Þ¼Æ"
+ 
+ #: makeinfo/cmds.c:2162
+ #, c-format
+ msgid "Expected @%s on or off, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/cmds.c:2182
+ #, c-format
+ msgid "Only @%s 10 or 11 is supported, not `%s'"
+ msgstr ""
+ 
+ #: makeinfo/defun.c:83
+ msgid "Missing `}' in @def arg"
+ msgstr "@def °Ñ¼Æ¤¤¿òº| `}'"
+ 
+ #: makeinfo/defun.c:711
+ #, c-format
+ msgid "Must be in `@%s' environment to use `@%s'"
+ msgstr ""
+ 
+ #: makeinfo/files.c:434
+ #, c-format
+ msgid "%s: getwd: %s, %s\n"
+ msgstr "%s: getwd: %s, %s\n"
+ 
+ #: makeinfo/files.c:637
+ #, c-format
+ msgid "`%s' omitted before output filename"
+ msgstr ""
+ 
+ #: makeinfo/files.c:645
+ #, c-format
+ msgid "`%s' omitted since writing to stdout"
+ msgstr ""
+ 
+ #: makeinfo/files.c:693
+ msgid "Output buffer not empty."
+ msgstr ""
+ 
+ #: makeinfo/float.c:181
+ #, c-format
+ msgid "Requested float type `%s' not previously used"
+ msgstr ""
+ 
+ #: makeinfo/float.c:376 makeinfo/float.c:382 makeinfo/index.c:959
+ #: makeinfo/index.c:965
+ msgid "See "
+ msgstr ""
+ 
+ #: makeinfo/footnote.c:149
+ #, c-format
+ msgid "`%c%s' needs an argument `{...}', not just `%s'"
+ msgstr "`%c%s' ¥²¶·¥]§t¤Þ¼Æ `{...}', ¦Ó¤£¬O¥u¦³ `%s'"
+ 
+ #: makeinfo/footnote.c:164
+ #, c-format
+ msgid "No closing brace for footnote `%s'"
+ msgstr "µù¸} `%s' ¨S¦³¥k¤j¬A¸¹"
+ 
+ #: makeinfo/footnote.c:197
+ msgid "Footnote defined without parent node"
+ msgstr "©w¸qµù¸}, ¦ý¬O¨S¦³¤÷¸`ÂI"
+ 
+ #: makeinfo/footnote.c:209
+ #, fuzzy
+ msgid "Footnotes inside footnotes are not allowed"
+ msgstr "©w¸qµù¸}, ¦ý¬O¨S¦³¤÷¸`ÂI"
+ 
+ #: makeinfo/footnote.c:301 makeinfo/index.c:187
+ msgid "Footnotes"
+ msgstr "µù¸}"
+ 
+ #: makeinfo/html.c:91
+ #, c-format
+ msgid "%s: could not open --css-file: %s"
+ msgstr ""
+ 
+ #: makeinfo/html.c:180
+ #, c-format
+ msgid "%s:%d: --css-file ended in comment"
+ msgstr ""
+ 
+ #: makeinfo/html.c:426
+ msgid "[unexpected] no html tag to pop"
+ msgstr ""
+ 
+ #: makeinfo/html.c:800
+ #, fuzzy, c-format
+ msgid "[unexpected] invalid node name: `%s'"
+ msgstr "%s: ¥¼ª¾ªº¿ï¶µ `%c%s'\n"
+ 
+ #: makeinfo/index.c:167
+ #, c-format
+ msgid "Unknown index `%s'"
+ msgstr "¥¼ª¾ªº¯Á¤Þ `%s'"
+ 
+ #: makeinfo/index.c:232
+ #, c-format
+ msgid "Info cannot handle `:' in index entry `%s'"
+ msgstr ""
+ 
+ #: makeinfo/index.c:410
+ #, c-format
+ msgid "Index `%s' already exists"
+ msgstr "¯Á¤Þ `%s' ¤w¦s¦b"
+ 
+ #: makeinfo/index.c:453
+ #, c-format
+ msgid "Unknown index `%s' and/or `%s' in @synindex"
+ msgstr "@synindex ¤¤¦³¥¼ª¾ªº¯Á¤Þ `%s' »P/©Î `%s'"
+ 
+ #: makeinfo/index.c:676
+ msgid "(line )"
+ msgstr ""
+ 
+ #: makeinfo/index.c:684
+ #, c-format
+ msgid "(line %*d)"
+ msgstr ""
+ 
+ #: makeinfo/index.c:765
+ #, c-format
+ msgid "Unknown index `%s' in @printindex"
+ msgstr "@printindex ¤¤¦³¥¼ª¾ªº¯Á¤Þ `%s'"
+ 
+ #: makeinfo/index.c:834
+ #, c-format
+ msgid "Entry for index `%s' outside of any node"
+ msgstr "¯Á¤Þ `%s' ªº¶µ¥Ø¤£¦b¥ô¦óªº¸`ÂI¤º"
+ 
+ #: makeinfo/index.c:837 makeinfo/index.c:873
+ msgid "(outside of any node)"
+ msgstr "(¤£¦b¥ô¦óªº¸`ÂI¤º)"
+ 
+ #: makeinfo/insertion.c:161
+ msgid "@item not allowed in argument to @itemize"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:242
+ msgid "Broken-Type in insertion_type_pname"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:338
+ msgid "Enumeration stack overflow"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:370
+ #, c-format
+ msgid "lettering overflow, restarting at %c"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:639
+ #, c-format
+ msgid "%s requires an argument: the formatter for %citem"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:727
+ #, c-format
+ msgid "%cfloat environments cannot be nested"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:981
+ #, c-format
+ msgid "`@end' expected `%s', but saw `%s'"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1349
+ #, c-format
+ msgid "No matching `%cend %s'"
+ msgstr "No matching `%cend %s'"
+ 
+ #: makeinfo/insertion.c:1618
+ #, c-format
+ msgid "%s requires letter or digit"
+ msgstr "%s ¥²¶·­n¦³¦r¤¸©Î¬O¼Æ¦r"
+ 
+ #: makeinfo/insertion.c:1718
+ msgid "end of file inside verbatim block"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:1942
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@float' environment"
+ msgstr "@%s ¦b `@%s' °Ï¶ô¤§¤º, ¨Ã¤£¨ã¦³·N¸q"
+ 
+ #: makeinfo/insertion.c:1978
+ msgid "@menu seen before first @node, creating `Top' node"
+ msgstr "@menu ¦b²Ä¤@­Ó @node ¤§«e¥X²{, ±N«Ø¥ß `Top' ¸`ÂI"
+ 
+ #: makeinfo/insertion.c:1979
+ msgid ""
+ "perhaps your @top node should be wrapped in @ifnottex rather than @ifinfo?"
+ msgstr "¤]³\±zÀ³¸Ó§â @top ¸`ÂI¥]§t¦b @ifnottex, ¦Ó¤£¬O @ifinfo?"
+ 
+ #: makeinfo/insertion.c:1991
+ msgid "@detailmenu seen before first node, creating `Top' node"
+ msgstr "¦b²Ä¤@­Ó¸`ÂI¤§«e¥X²{ @detailmenu, ±N«Ø¥ß `Top' ¸`ÂI"
+ 
+ #: makeinfo/insertion.c:2047
+ #, c-format
+ msgid "@%s not meaningful outside `@titlepage' and `@quotation' environments"
+ msgstr ""
+ 
+ #: makeinfo/insertion.c:2061
+ #, fuzzy, c-format
+ msgid "@%s not meaningful outside `@titlepage' environment"
+ msgstr "@%s ¦b `@%s' °Ï¶ô¤§¤º, ¨Ã¤£¨ã¦³·N¸q"
+ 
+ #: makeinfo/insertion.c:2092
+ #, c-format
+ msgid "Unmatched `%c%s'"
+ msgstr "¥¼°t¹ïªº `%c%s'"
+ 
+ #: makeinfo/insertion.c:2097
+ #, c-format
+ msgid "`%c%s' needs something after it"
+ msgstr "¦b `%c%s' ¤§«á¥²¶·­n¦³ªF¦è"
+ 
+ #: makeinfo/insertion.c:2103
+ #, fuzzy, c-format
+ msgid "Bad argument `%s' to `@%s', using `%s'"
+ msgstr "¹ï %c%s µL¥Îªº¤Þ¼Æ"
+ 
+ #: makeinfo/insertion.c:2200
+ #, c-format
+ msgid "@%s not meaningful inside `@%s' block"
+ msgstr "@%s ¦b `@%s' °Ï¶ô¤§¤º, ¨Ã¤£¨ã¦³·N¸q"
+ 
+ #: makeinfo/insertion.c:2209
+ #, c-format
+ msgid "@itemx not meaningful inside `%s' block"
+ msgstr "`%s' °Ï¶ô¤§¤º, @itemx ¨ÃµL·N¸q"
+ 
+ #: makeinfo/insertion.c:2383
+ #, c-format
+ msgid "%c%s found outside of an insertion block"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1218
+ #, c-format
+ msgid "no default territory known for language `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1281
+ #, c-format
+ msgid "%s is not a valid ISO 639 language code"
+ msgstr "%s ¤£¬O¤@­Ó¦Xªkªº ISO 639 »y¨¥½X"
+ 
+ #: makeinfo/lang.c:1399
+ #, fuzzy, c-format
+ msgid "unrecognized encoding name `%s'"
+ msgstr "%s: ¥¼ª¾ªº¿ï¶µ `%c%s'\n"
+ 
+ #: makeinfo/lang.c:1407
+ #, c-format
+ msgid "sorry, encoding `%s' not supported"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1492
+ #, c-format
+ msgid "invalid encoded character `%s'"
+ msgstr ""
+ 
+ #: makeinfo/lang.c:1800
+ #, c-format
+ msgid "%c%s expects `i' or `j' as argument, not `%c'"
+ msgstr "%c%s ´Á±æ¨Ï¥Î `i' ©Î `j' §@¬°¤Þ¼Æ, ¦Ó¤£¬O `%c'"
+ 
+ #: makeinfo/lang.c:1804
+ #, c-format
+ msgid "%c%s expects a single character `i' or `j' as argument"
+ msgstr "%c%s ´Á±æ¨Ï¥Î¤@­Ó¦r¥À `i' ©Î `j' §@¬°¤Þ¼Æ"
+ 
+ #: makeinfo/macro.c:128
+ #, c-format
+ msgid "macro `%s' previously defined"
+ msgstr "¥¨¶° `%s' ¤w©w¸q¹L"
+ 
+ #: makeinfo/macro.c:132
+ #, c-format
+ msgid "here is the previous definition of `%s'"
+ msgstr "³o¸Ì¬O `%s' ¤§«eªº©w¸q"
+ 
+ #: makeinfo/macro.c:359
+ #, c-format
+ msgid "\\ in macro expansion followed by `%s' instead of parameter name"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:401
+ #, c-format
+ msgid "Macro `%s' called on line %d with too many args"
+ msgstr "¥¨¶° `%s' ¦b²Ä %d ¦æ³Q©I¥s, ¦ý¬O¤Þ¼Æ¹L¦h"
+ 
+ #: makeinfo/macro.c:580
+ #, c-format
+ msgid "%cend macro not found"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:591
+ msgid "@allow-recursion is deprecated; please use @rmacro instead"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:606
+ msgid "@quote-arg is deprecated; arguments are quoted by default"
+ msgstr ""
+ 
+ #: makeinfo/macro.c:649
+ #, c-format
+ msgid "mismatched @end %s with @%s"
+ msgstr "@end %s »P @%s ¤£²Å¦X"
+ 
+ #: makeinfo/makeinfo.c:188
+ #, c-format
+ msgid "Too many errors!  Gave up.\n"
+ msgstr "¿ù»~¹L¦h! ©ñ±ó.\n"
+ 
+ #: makeinfo/makeinfo.c:306
+ #, c-format
+ msgid "%s:%d: warning: "
+ msgstr "%s:%d: Äµ§i: "
+ 
+ #: makeinfo/makeinfo.c:325 makeinfo/makeinfo.c:2340
+ #, c-format
+ msgid "Misplaced %c"
+ msgstr "»~¸mªº %c"
+ 
+ #: makeinfo/makeinfo.c:344
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr "¸Õ¸Õ `%s --help' ¥H¨ú±o§ó¦hªº¸ê°T.\n"
+ 
+ #: makeinfo/makeinfo.c:347
+ #, fuzzy, c-format
+ msgid "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ msgstr "¥Îªk: %s [OPTION]... FILE...\n"
+ 
+ #: makeinfo/makeinfo.c:350
+ msgid ""
+ "Translate Texinfo source documentation to various other formats, by default\n"
+ "Info files suitable for reading online with Emacs or standalone GNU Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:354
+ #, c-format
+ msgid ""
+ "General options:\n"
+ "      --error-limit=NUM       quit after NUM errors (default %d).\n"
+ "      --document-language=STR locale to use in translating Texinfo keywords\n"
+ "                                for the output document (default C).\n"
+ "      --force                 preserve output even if errors.\n"
+ "      --help                  display this help and exit.\n"
+ "      --no-validate           suppress node cross-reference validation.\n"
+ "      --no-warn               suppress warnings (but not errors).\n"
+ "  -v, --verbose               explain what is being done.\n"
+ "      --version               display version information and exit.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:369
+ #, no-wrap
+ msgid ""
+ "Output format selection (default is to produce Info):\n"
+ "      --docbook               output Docbook XML rather than Info.\n"
+ "      --html                  output HTML rather than Info.\n"
+ "      --xml                   output Texinfo XML rather than Info.\n"
+ "      --plaintext             output plain text rather than Info.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:377
+ msgid ""
+ "General output options:\n"
+ "  -E, --macro-expand=FILE     output macro-expanded source to FILE,\n"
+ "                                ignoring any @setfilename.\n"
+ "      --no-headers            suppress node separators, Node: lines, and "
+ "menus\n"
+ "                                from Info output (thus producing plain "
+ "text)\n"
+ "                                or from HTML (thus producing shorter "
+ "output);\n"
+ "                                also, write to standard output by default.\n"
+ "      --no-split              suppress the splitting of Info or HTML "
+ "output,\n"
+ "                                generate only one output file.\n"
+ "      --number-sections       output chapter and sectioning numbers.\n"
+ "  -o, --output=FILE           output to FILE (or directory if split HTML).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:391
+ #, c-format
+ msgid ""
+ "Options for Info and plain text:\n"
+ "      --disable-encoding      do not output accented and special characters\n"
+ "                                in Info output based on @documentencoding.\n"
+ "      --enable-encoding       override --disable-encoding (default).\n"
+ "      --fill-column=NUM       break Info lines at NUM characters (default %"
+ "d).\n"
+ "      --footnote-style=STYLE  output footnotes in Info according to STYLE:\n"
+ "                                `separate' to put them in their own node;\n"
+ "                                `end' to put them at the end of the node, "
+ "in\n"
+ "                                which they are defined (this is the "
+ "default).\n"
+ "      --paragraph-indent=VAL  indent Info paragraphs by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is `none', do not indent; if VAL is\n"
+ "                                `asis', preserve existing indentation.\n"
+ "      --split-size=NUM        split Info files at size NUM (default %d).\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:409
+ msgid ""
+ "Options for HTML:\n"
+ "      --css-include=FILE      include FILE in HTML <style> output;\n"
+ "                                read stdin if FILE is -.\n"
+ "      --css-ref=URL           generate reference to a CSS file.\n"
+ "      --internal-links=FILE   produce list of internal links in FILE.\n"
+ "      --transliterate-file-names\n"
+ "                              produce file names in ASCII transliteration.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:419
+ #, c-format
+ msgid ""
+ "Options for XML and Docbook:\n"
+ "      --output-indent=VAL     indent XML elements by VAL spaces (default %"
+ "d).\n"
+ "                                If VAL is 0, ignorable whitespace is "
+ "dropped.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:426
+ msgid ""
+ "Input file options:\n"
+ "      --commands-in-node-names  allow @ commands in node names.\n"
+ "  -D VAR                        define the variable VAR, as with @set.\n"
+ "  -I DIR                        append DIR to the @include search path.\n"
+ "  -P DIR                        prepend DIR to the @include search path.\n"
+ "  -U VAR                        undefine the variable VAR, as with @clear.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:435
+ msgid ""
+ "Conditional processing in input:\n"
+ "  --ifdocbook       process @ifdocbook and @docbook even if\n"
+ "                      not generating Docbook.\n"
+ "  --ifhtml          process @ifhtml and @html even if not generating HTML.\n"
+ "  --ifinfo          process @ifinfo even if not generating Info.\n"
+ "  --ifplaintext     process @ifplaintext even if not generating plain text.\n"
+ "  --iftex           process @iftex and @tex; implies --no-split.\n"
+ "  --ifxml           process @ifxml and @xml.\n"
+ "  --no-ifdocbook    do not process @ifdocbook and @docbook text.\n"
+ "  --no-ifhtml       do not process @ifhtml and @html text.\n"
+ "  --no-ifinfo       do not process @ifinfo text.\n"
+ "  --no-ifplaintext  do not process @ifplaintext text.\n"
+ "  --no-iftex        do not process @iftex and @tex text.\n"
+ "  --no-ifxml        do not process @ifxml and @xml text.\n"
+ "\n"
+ "  Also, for the --no-ifFORMAT options, do process @ifnotFORMAT text.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:454
+ msgid ""
+ "  The defaults for the @if... conditionals depend on the output format:\n"
+ "  if generating HTML, --ifhtml is on and the others are off;\n"
+ "  if generating Info, --ifinfo is on and the others are off;\n"
+ "  if generating plain text, --ifplaintext is on and the others are off;\n"
+ "  if generating XML, --ifxml is on and the others are off.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:462
+ #, fuzzy
+ msgid ""
+ "Examples:\n"
+ "  makeinfo foo.texi                      write Info to foo's @setfilename\n"
+ "  makeinfo --html foo.texi               write HTML to @setfilename\n"
+ "  makeinfo --xml foo.texi                write Texinfo XML to @setfilename\n"
+ "  makeinfo --docbook foo.texi            write DocBook XML to @setfilename\n"
+ "  makeinfo --no-headers foo.texi         write plain text to standard "
+ "output\n"
+ "\n"
+ "  makeinfo --html --no-headers foo.texi  write html without node lines, "
+ "menus\n"
+ "  makeinfo --number-sections foo.texi    write Info with numbered sections\n"
+ "  makeinfo --no-split foo.texi           write one Info file however big\n"
+ msgstr ""
+ "\n"
+ "@if... µ¥§PÂ_«ü¥Oªº¹w³]­È, ·|¨Ì¿é¥X®æ¦¡¤£¦P¦Ó¤£¦P:\n"
+ "¦pªG²£¥Í HTML, --ifhtml ·|¶}±Ò, ¨ä¥¦«hÃö³¬;\n"
+ "¦pªG²£¥Í Info ©Î´¶³qªº¤å¦rÀÉ, --ifinfo ·|¶}±Ò, ¨ä¥¦«hÃö³¬.\n"
+ "\n"
+ "½d¨Ò:\n"
+ "  makeinfo foo.texi                    ¿é¥X Info ¦Ü foo ªº @setfilename\n"
+ "  makeinfo --html foo.texi             ¿é¥X HTML ¦Ü foo ªº @setfilename\n"
+ "  makeinfo --no-headers -o - foo.texi  ¿é¥X´¶³q¤å¦r®æ¦¡¦Ü¼Ð·Ç¿é¥X\n"
+ "  makeinfo --number-sections foo.texi  ¥H¦³½s¸¹ªº¸`¨Ó¿é¥X Info\n"
+ "  makeinfo --no-split foo.texi         ¤£ºÞÀÉ®×¦³¦h¤j, ¿é¥X¦¨¤@­Ó Info ÀÉ\n"
+ "\n"
+ "µ{¦¡¯äÂÎ, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ¦^³ø¦Ü bug-texinfo@gnu.org,\n"
+ "¤@¯ë°ÝÃD»P°Q½×, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ±H¨ì help-texinfo@gnu.org."
+ 
+ #: makeinfo/makeinfo.c:622
+ #, c-format
+ msgid "%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:670 makeinfo/makeinfo.c:696 makeinfo/makeinfo.c:720
+ #: makeinfo/makeinfo.c:780
+ #, c-format
+ msgid "%s: %s arg must be numeric, not `%s'.\n"
+ msgstr "%s: %s ¤Þ¼Æ¥²¶·¬°¼Æ­È, ¦Ó¤£¬O `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:683
+ #, fuzzy, c-format
+ msgid "%s: could not open macro expansion output `%s'"
+ msgstr "µLªk«Ø¥ß¿é¥XÀÉ®× `%s'."
+ 
+ #: makeinfo/makeinfo.c:688
+ #, c-format
+ msgid "%s: ignoring second macro expansion output `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:733
+ #, fuzzy, c-format
+ msgid "%s: could not open internal links output `%s'"
+ msgstr "µLªk«Ø¥ß¿é¥XÀÉ®× `%s'."
+ 
+ #: makeinfo/makeinfo.c:738
+ #, c-format
+ msgid "%s: ignoring second internal links output `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:751
+ #, c-format
+ msgid "%s: --paragraph-indent arg must be numeric/`none'/`asis', not `%s'.\n"
+ msgstr "%s: --paragraph-indent ªº¤Þ¼Æ¥²¶·¬° ¼Æ­È/`none'/`asis', ¦Ó¤£¬O `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:769
+ #, c-format
+ msgid "%s: --footnote-style arg must be `separate' or `end', not `%s'.\n"
+ msgstr "%s: --footnote-style ªº¤Þ¼Æ¥²¶·¬° `separate' ©Î `end', ¦Ó¤£¬O `%s'.\n"
+ 
+ #: makeinfo/makeinfo.c:844
+ #, c-format
+ msgid "%s: missing file argument.\n"
+ msgstr "%s: ¿òº|ÀÉ®×¤Þ¼Æ.\n"
+ 
+ #: makeinfo/makeinfo.c:1041 makeinfo/makeinfo.c:4166
+ #, c-format
+ msgid "Multiline command %c%s used improperly"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1044
+ #, c-format
+ msgid "Expected `%s'"
+ msgstr "Expected `%s'"
+ 
+ #: makeinfo/makeinfo.c:1521
+ #, c-format
+ msgid "Can't create directory `%s': %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1567
+ #, c-format
+ msgid "No `%s' found in `%s'"
+ msgstr "`%s' ¥¼¥X²{¦b `%s' ¤º"
+ 
+ #: makeinfo/makeinfo.c:1647
+ #, c-format
+ msgid "%s: Skipping macro expansion to stdout as Info output is going there.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1677
+ #, c-format
+ msgid "Making %s file `%s' from `%s'.\n"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:1744
+ #, c-format
+ msgid ""
+ "%s: Removing macro output file `%s' due to errors; use --force to preserve.\n"
+ msgstr "%s: ¦]¬°¿ù»~, ²¾°£¥¨¶°¿é¥XÀÉ `%s'; ­Y­n«O¦s¥¦, ½Ð¨Ï¥Î --force ¿ï¶µ.\n"
+ 
+ #: makeinfo/makeinfo.c:1799
+ #, c-format
+ msgid "%s: Removing output file `%s' due to errors; use --force to preserve.\n"
+ msgstr "%s: ¦]¬°¿ù»~, ²¾°£¿é¥XÀÉ `%s'; ­Y­n«O¦s¥¦, ½Ð¨Ï¥Î --force ¿ï¶µ.\n"
+ 
+ #: makeinfo/makeinfo.c:1818
+ #, fuzzy, c-format
+ msgid ""
+ "%s: Removing internal links output file `%s' due to errors; use --force to "
+ "preserve.\n"
+ msgstr "%s: ¦]¬°¿ù»~, ²¾°£¿é¥XÀÉ `%s'; ­Y­n«O¦s¥¦, ½Ð¨Ï¥Î --force ¿ï¶µ.\n"
+ 
+ #: makeinfo/makeinfo.c:2113
+ #, c-format
+ msgid "Unknown command `%s'"
+ msgstr "¥¼ª¾ªº©R¥O `%s'"
+ 
+ #: makeinfo/makeinfo.c:2135
+ #, c-format
+ msgid "Use braces to give a command as an argument to @%s"
+ msgstr "¨Ï¥Î¤j¬A¸¹±N©R¥O¥]°_¨Ó, ¥H§@¬° @%s ªº¤Þ¼Æ"
+ 
+ #: makeinfo/makeinfo.c:2394
+ #, fuzzy, c-format
+ msgid "%c%s expected braces"
+ msgstr "%c%s ¹w­p­n¦³ `{...}'"
+ 
+ #: makeinfo/makeinfo.c:2407
+ msgid "Unmatched }"
+ msgstr "¥¼°t¹ïªº }"
+ 
+ #: makeinfo/makeinfo.c:2455
+ msgid "NO_NAME!"
+ msgstr "NO_NAME!"
+ 
+ #: makeinfo/makeinfo.c:2476
+ #, c-format
+ msgid "%c%s missing close brace"
+ msgstr "%c%s ¿òº|¥k¤j¬A¸¹"
+ 
+ #: makeinfo/makeinfo.c:3482
+ #, fuzzy, c-format
+ msgid "@image file `%s' (for HTML) not readable: %s"
+ msgstr "@image ÀÉ®× `%s' µLªkÅª¨ú: %s"
+ 
+ #: makeinfo/makeinfo.c:3488
+ #, fuzzy, c-format
+ msgid "No such file `%s'"
+ msgstr "`%s' ¥¼¥X²{¦b `%s' ¤º"
+ 
+ #: makeinfo/makeinfo.c:3624
+ #, fuzzy, c-format
+ msgid "@image file `%s' (for text) unreadable: %s"
+ msgstr "@image ÀÉ®× `%s' µLªkÅª¨ú: %s"
+ 
+ #: makeinfo/makeinfo.c:3633
+ msgid "@image missing filename argument"
+ msgstr "@image ¨S¦³ÀÉ¦W¤Þ¼Æ"
+ 
+ #: makeinfo/makeinfo.c:3851
+ #, c-format
+ msgid "undefined flag: %s"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3852
+ #, c-format
+ msgid "{No value for `%s'}"
+ msgstr ""
+ 
+ #: makeinfo/makeinfo.c:3904
+ #, c-format
+ msgid "%c%s requires a name"
+ msgstr "%c%s ¥²¶·­n¦³¦WºÙ"
+ 
+ #: makeinfo/makeinfo.c:4010
+ #, c-format
+ msgid "Reached eof before matching @end %s"
+ msgstr "¦b°t¹ïªº @end %s ¤§«e, ¥ý¨ì¹FÀÉ®×µ²§À"
+ 
+ #: makeinfo/makeinfo.c:4258
+ #, c-format
+ msgid "`%.40s...' is too long for expansion; not expanded"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:116
+ msgid "Missing } in @multitable template"
+ msgstr "¦b @multitable ¼Ëª©¤¤, ¨S¦³ }"
+ 
+ #: makeinfo/multi.c:260
+ #, c-format
+ msgid "ignoring stray text `%s' after @multitable"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:400
+ #, c-format
+ msgid "Too many columns in multitable item (max %d)"
+ msgstr "multitable ¶µ¥Ø¤¤¦³¤Ó¦hªºÄæ¦ì (³Ì¤j­È¬° %d)"
+ 
+ #: makeinfo/multi.c:563
+ #, fuzzy, c-format
+ msgid "[unexpected] cannot select column #%d in multitable"
+ msgstr "µLªk¿ï¨ú multitable ¤¤ªºÄæ¦ì #%d"
+ 
+ #: makeinfo/multi.c:592
+ msgid "ignoring @tab outside of multitable"
+ msgstr "©¿²¤ multitable ¥~ªº @tab"
+ 
+ #: makeinfo/multi.c:640
+ #, c-format
+ msgid "** Multicolumn output from last row:\n"
+ msgstr ""
+ 
+ #: makeinfo/multi.c:643
+ #, c-format
+ msgid "* column #%d: output = %s\n"
+ msgstr "* Äæ¦ì #%d: ¿é¥X = %s\n"
+ 
+ #: makeinfo/node.c:279
+ #, c-format
+ msgid "Node `%s' previously defined at line %d"
+ msgstr "¸`ÂI `%s' ¤w¦b²Ä %d ¦æ©w¸q¹L¤F"
+ 
+ #: makeinfo/node.c:647
+ #, c-format
+ msgid "Formatting node %s...\n"
+ msgstr "½s±Æ¸`ÂI %s ªº®æ¦¡¤¤...\n"
+ 
+ #: makeinfo/node.c:714
+ #, fuzzy, c-format
+ msgid "Node `%s' requires a sectioning command (e.g., %c%s)"
+ msgstr "¸`ÂI `%s' ¥²¶·¨Ï¥Î¤À¬q©R¥O (sectioning command) (¨Ò¦p: %c%s)"
+ 
+ #: makeinfo/node.c:878
+ #, c-format
+ msgid "No node name specified for `%c%s' command"
+ msgstr "`%c%s' ©R¥O¤¤¥¼«ü©w¸`ÂI¦WºÙ"
+ 
+ #: makeinfo/node.c:919 makeinfo/node.c:1163
+ #, c-format
+ msgid "Anchor `%s' and node `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:922
+ msgid "This @anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:924 makeinfo/node.c:1166
+ msgid "Rename this anchor or use the `--no-split' option"
+ msgstr ""
+ 
+ #: makeinfo/node.c:954
+ #, c-format
+ msgid "Unexpected string at end of split-HTML file `%s'"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1160
+ #, c-format
+ msgid "Anchors `%s' and `%s' map to the same file name"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1165
+ msgid "@anchor command ignored; references to it will not work"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1362
+ #, fuzzy, c-format
+ msgid "%s reference to nonexistent node `%s' (perhaps incorrect sectioning?)"
+ msgstr "%s °Ñ·Ó¨ì¤£¦s¦bªº¸`ÂI: `%s'"
+ 
+ #: makeinfo/node.c:1462
+ #, c-format
+ msgid "Next field of node `%s' not pointed to (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1465
+ #, c-format
+ msgid "This node (%s) has the bad Prev"
+ msgstr "¥»¸`ÂI (%s) ªº «e¤@­Ó (Prev) ¸`ÂI¦³°ÝÃD"
+ 
+ #: makeinfo/node.c:1520
+ #, c-format
+ msgid "Prev field of node `%s' not pointed to"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1524
+ #, c-format
+ msgid "This node (%s) has the bad Next"
+ msgstr "¥»¸`ÂI (%s) ªº ¤U¤@­Ó (Next) ¸`ÂI¦³°ÝÃD"
+ 
+ #: makeinfo/node.c:1536
+ #, c-format
+ msgid "`%s' has no Up field (perhaps incorrect sectioning?)"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1605
+ #, c-format
+ msgid "Node `%s' lacks menu item for `%s' despite being its Up target"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1637
+ #, c-format
+ msgid "unreferenced node `%s'"
+ msgstr "¥¼³Q°Ñ·Óªº¸`ÂI `%s'"
+ 
+ #: makeinfo/node.c:1727
+ #, c-format
+ msgid "Removing %s\n"
+ msgstr ""
+ 
+ #: makeinfo/node.c:1731
+ #, fuzzy, c-format
+ msgid "Can't remove file `%s': %s"
+ msgstr "µLªk«Ø¥ß¿é¥XÀÉ®× `%s'."
+ 
+ #: makeinfo/sectioning.c:122
+ #, fuzzy, c-format
+ msgid "Appendix %c"
+ msgstr "ªþ¿ý %c"
+ 
+ #: makeinfo/sectioning.c:467
+ #, fuzzy, c-format
+ msgid "Internal error (search_sectioning) `%s'!"
+ msgstr "¤º³¡¿ù»~ (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:563
+ #, c-format
+ msgid "Internal error (search_sectioning) \"%s\"!"
+ msgstr "¤º³¡¿ù»~ (search_sectioning) \"%s\"!"
+ 
+ #: makeinfo/sectioning.c:624
+ #, c-format
+ msgid "%c%s is obsolete; use %c%s instead"
+ msgstr "%c%s ¤w¼o±ó¤£¥Î; ½Ð§ï¥Î %c%s"
+ 
+ #: makeinfo/sectioning.c:640
+ #, c-format
+ msgid "Node with %ctop as a section already exists"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:648
+ #, c-format
+ msgid "Here is the %ctop node"
+ msgstr ""
+ 
+ #: makeinfo/sectioning.c:664
+ #, c-format
+ msgid "%ctop used before %cnode, defaulting to %s"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:1669
+ #, c-format
+ msgid "@image file `%s' unreadable: %s"
+ msgstr "@image ÀÉ®× `%s' µLªkÅª¨ú: %s"
+ 
+ #: makeinfo/xml.c:2014
+ msgid ""
+ "@headitem as the last item of @multitable produces invalid Docbook documents"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2150
+ msgid "of"
+ msgstr ""
+ 
+ #: makeinfo/xml.c:2155
+ msgid "on"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:127
+ msgid "First argument to cross-reference may not be empty"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:252
+ #, c-format
+ msgid "Empty file name for HTML cross reference in `%s'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:387
+ msgid "End of file reached while looking for `.' or `,'"
+ msgstr ""
+ 
+ #: makeinfo/xref.c:390
+ #, fuzzy, c-format
+ msgid "`.' or `,' must follow @%s, not `%c'"
+ msgstr "`.' ©Î `,' ¥²¶·¸òµÛ¥æ¤¬°Ñ·Ó, ¦Ó¤£¬O %c"
+ 
+ #: makeinfo/xref.c:392
+ #, fuzzy
+ msgid "for cross-references in parentheses, use @pxref"
+ msgstr "¥»¸`ÂI¨S¦³¥æ¤¬°Ñ·Ó."
+ 
+ #: makeinfo/xref.c:435
+ msgid "First argument to @inforef may not be empty"
+ msgstr ""
+ 
+ #: util/texindex.c:223
+ msgid "display this help and exit"
+ msgstr "Åã¥Ü¨D§U¸ê°T, µM«áÂ÷¶}"
+ 
+ #: util/texindex.c:225
+ msgid "send output to FILE"
+ msgstr "±N¿é¥X°e¦Ü FILE"
+ 
+ #: util/texindex.c:227
+ msgid "display version information and exit"
+ msgstr "Åã¥Üª©¥»¸ê°T, µM«áÂ÷¶}"
+ 
+ #: util/texindex.c:237
+ #, c-format
+ msgid "Usage: %s [OPTION]... FILE...\n"
+ msgstr "¥Îªk: %s [OPTION]... FILE...\n"
+ 
+ #: util/texindex.c:238
+ #, c-format
+ msgid "Generate a sorted index for each TeX output FILE.\n"
+ msgstr "¬°¨C­Ó TeX ¿é¥X FILE ²£¥Í¤@­Ó±Æ§Çªº¯Á¤Þ.\n"
+ 
+ #: util/texindex.c:241
+ #, c-format
+ msgid "Usually FILE... is specified as `foo.%c%c' for a document `foo.texi'.\n"
+ msgstr "³q±`¤å¥ó `foo.texi' ªº FILE... ¤Þ¼Æ·|«ü©w¬° `foo.%c%c'.\n"
+ 
+ #: util/texindex.c:243
+ #, c-format
+ msgid ""
+ "\n"
+ "Options:\n"
+ msgstr ""
+ "\n"
+ "¿ï¶µ:\n"
+ 
+ #: util/texindex.c:743
+ #, c-format
+ msgid "failure reopening %s"
+ msgstr "­«·s¶}±Ò %s ®Éµo¥Í¿ù»~"
+ 
+ #: util/texindex.c:758 util/texindex.c:786
+ #, c-format
+ msgid "%s: not a texinfo index file"
+ msgstr "%s: ¤£¬O¤@­Ó texinfo ¯Á¤ÞÀÉ"
+ 
+ #: util/texindex.c:993
+ #, c-format
+ msgid "No page number in %s"
+ msgstr "¦b %s ¤¤¨S¦³­¶½X"
+ 
+ #: util/texindex.c:1066
+ #, c-format
+ msgid "entry %s follows an entry with a secondary name"
+ msgstr ""
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[search]  Search forward for a specified string\n"
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "              ¨Ã¥B¿ï¾Ü¤U¤@­Ó·j´M¨ìªº¦r¦ê©Ò¦bªº¸`ÂI.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[goto-node]  Move to node specified by name.\n"
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr "              ±z¤]¥i¥H¥]§tÀÉ¦W, ¦p: (ÀÉ¦W)¸`ÂI¦W.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[next-node]  Move to the next node of current section.\n"
+ #~ msgstr "  %-10s  ²¾¦Ü¥»¸`ÂIªº '¤U¤@­Ó (next)' ¸`ÂI.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[dir-node]  Move to the `directory' node.  Equivalent to `\\[goto-"
+ #~ "node] (DIR)'.\n"
+ #~ msgstr "  %-10s  ²¾¦Ü `directory' ¸`ÂI.  ¦P `g (DIR)'.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[top-node]  Move to the Top node.  Equivalent to `\\[goto-node] "
+ #~ "Top'.\n"
+ #~ msgstr "  %-10s  ²¾¦Ü Top ¸`ÂI.  ¦P `g TOP'.\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[scroll-forward-page-only]  Scroll forward within this node.\n"
+ #~ msgstr "  %-10s  ©¹«e±²°Ê¤@¦æ.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[scroll-backward-page-only]  Scroll backward within this node.\n"
+ #~ msgstr "  %-10s  ©¹«á±²°Ê¤@¦æ.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "\\%-10[search-backward]  Search backward for a specified string\n"
+ #~ "              and select the node in which the previous occurrence is "
+ #~ "found.\n"
+ #~ msgstr "              ¨Ã¥B¿ï¾Ü¤U¤@­Ó·j´M¨ìªº¦r¦ê©Ò¦bªº¸`ÂI.\n"
+ 
+ #~ msgid "--- Use `\\[history-node]' or `\\[kill-node]' to exit ---\n"
+ #~ msgstr "--- ¨Ï¥Î `\\[history-node]' ©Î `\\[kill-node]' Â÷¶}---\n"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[move-to-prev-xref]  Skip to previous hypertext link [*].\n"
+ #~ msgstr "  %-10s  ¸õ¨ì¥»¸`ÂI¤¤ªº¤U¤@­Ó¶W¥»¤å³sµ².\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "Read documentation in Info format.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ "      --apropos=STRING         look up STRING in all indices of all "
+ #~ "manuals.\n"
+ #~ "  -d, --directory=DIR          add DIR to INFOPATH.\n"
+ #~ "      --dribble=FILENAME       remember user keystrokes in FILENAME.\n"
+ #~ "  -f, --file=FILENAME          specify Info file to visit.\n"
+ #~ "  -h, --help                   display this help and exit.\n"
+ #~ "      --index-search=STRING    go to node pointed by index entry STRING.\n"
+ #~ "  -n, --node=NODENAME          specify nodes in first visited Info file.\n"
+ #~ "  -o, --output=FILENAME        output selected nodes to FILENAME.\n"
+ #~ "  -R, --raw-escapes            output \"raw\" ANSI escapes (default).\n"
+ #~ "      --no-raw-escapes         output escapes as literal text.\n"
+ #~ "      --restore=FILENAME       read initial keystrokes from FILENAME.\n"
+ #~ "  -O, --show-options, --usage  go to command-line options node.\n"
+ #~ "%s      --subnodes               recursively output menu items.\n"
+ #~ "  -w, --where, --location      print physical location of Info file.\n"
+ #~ "      --vi-keys                use vi-like and less-like key bindings.\n"
+ #~ "      --version                display version information and exit.\n"
+ #~ "\n"
+ #~ "The first non-option argument, if present, is the menu entry to start "
+ #~ "from;\n"
+ #~ "it is searched for in all `dir' files along INFOPATH.\n"
+ #~ "If it is not present, info merges all `dir' files and shows the result.\n"
+ #~ "Any remaining arguments are treated as the names of menu\n"
+ #~ "items relative to the initial node visited.\n"
+ #~ "\n"
+ #~ "Examples:\n"
+ #~ "  info                       show top-level dir menu\n"
+ #~ "  info emacs                 start at emacs node from top-level dir\n"
+ #~ "  info emacs buffers         start at buffers node within emacs manual\n"
+ #~ "  info --show-options emacs  start at node with emacs' command line "
+ #~ "options\n"
+ #~ "  info --subnodes -o out.txt emacs  dump entire manual to out.txt\n"
+ #~ "  info -f ./foo.info         show file ./foo.info, not searching dir\n"
+ #~ msgstr ""
+ #~ "¥Îªk: %s [OPTION]... [MENU-ITEM...]\n"
+ #~ "\n"
+ #~ "¾\Åª Info ®æ¦¡ªº¤å¥ó.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --apropos=SUBJECT        ¦b©Ò¦³ªº¤â¥Uªº¯Á¤Þ¤¤´M§ä SUBJECT.\n"
+ #~ " --directory=DIR          ±N DIR ¥[¦Ü INFOPATH ¤¤.\n"
+ #~ " --dribble=FILENAME       ±N¨Ï¥ÎªÌªº«öÁä°O¿ý¦b FILENAME ¤¤.\n"
+ #~ " --file=FILENAME          «ü©w«ô³Xªº Info ÀÉ®×.\n"
+ #~ " --help                   Åã¥Ü¥»¨D§U¸ê°T, µM«áÂ÷¶}.\n"
+ #~ " --index-search=STRING    ¸õ¦Ü¯Á¤Þ¶µ¥Ø STRING ©Ò«ü¦Vªº¸`ÂI.\n"
+ #~ " --node=NODENAME          «ü©w²Ä¤@­Ó«ô³Xªº Info ÀÉ®×¤¤ªº¸`ÂI.\n"
+ #~ " --output=FILENAME        ±N¿ï¾Üªº¸`ÂI¿é¥X¦ÜÀÉ®× FILENAME.\n"
+ #~ " --restore=FILENAME       ¦ÛÀÉ®× FILENAME Åª¨úªì©lªº«öÁä.\n"
+ #~ " --show-options, --usage  ¸õ¦Ü©R¥O¦C¿ï¶µªº¸`ÂI.\n"
+ #~ " --subnodes               ¥H»¼°j¤è¦¡¿é¥X¿ï³æ¶µ¥Ø.\n"
+ #~ "%s --vi-keys                ¨Ï¥ÎÃþ¦ü vi »P less ªº«öÁä¤è¦¡.\n"
+ #~ " --version                Åã¥Üª©¥»¸ê°T, µM«áµ²§ô.\n"
+ #~ "\n"
+ #~ "¦pªG¦³«D¿ï¶µªº¤Þ¼Æ, ²Ä¤@­Ó«D¿ï¶µªº¤Þ¼Æ¬O¶}©lªº¿ï³æ¶µ¥Ø;\n"
+ #~ "¥¦·|³Q¥Î¨Ó·í§@¦b INFOPATH ¤ºªº©Ò¦³ dir ÀÉ®×ªº·j´M¼Ðªº.\n"
+ #~ "¦pªG¨S¦³ªº¸Ü, info ·|²Î¦X©Ò¦³ªº dir ÀÉ®×, µM«áÅã¥Üµ²ªG.\n"
+ #~ "³Ñ¤Uªº¤Þ¼Æ·|³Q·í§@¬Û¹ï©ó³Ìªì«ô³X¸`ÂIªº¿ï³æ¶µ¥Øªº¦WºÙ.\n"
+ #~ "\n"
+ #~ "½d¨Ò:\n"
+ #~ "  info                       Åã¥Ü³Ì¤W¼hªº¿ï³æ\n"
+ #~ "  info emacs                 ¥H³Ì¤W¼h¤¤ªº emacs ¸`ÂI§@¬°°_ÂI\n"
+ #~ "  info emacs buffers         ¥H emacs ¤â¥U¤¤ªº buffers ¸`ÂI§@¬°°_ÂI\n"
+ #~ "  info --show-options emacs  ¥H¤¶²Ð emacs ªº°õ¦æ¿ï¶µªº¸`ÂI§@¬°°_ÂI\n"
+ #~ "  info -f ./foo.info         Åã¥ÜÀÉ®× ./foo.info, ¤£·j´M¥Ø¿ý\n"
+ #~ "\n"
+ #~ "µ{¦¡¯äÂÎ, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ¦^³ø¦Ü bug-texinfo@gnu.org,\n"
+ #~ "¤@¯ë°ÝÃD»P°Q½×, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ±H¨ì help-texinfo@gnu.org.\n"
+ 
+ #~ msgid ""
+ #~ "              Picking a menu item causes another node to be selected.\n"
+ #~ msgstr "              ¿ï¨ú¿ï³æ¶µ¥Ø¥H¿ï¾Ü¥t¤@­Ó¸`ÂI.\n"
+ 
+ #~ msgid ""
+ #~ "              You may include a filename as well, as in (FILENAME)"
+ #~ "NODENAME.\n"
+ #~ msgstr "              ±z¤]¥i¥H¥]§tÀÉ¦W, ¦p: (ÀÉ¦W)¸`ÂI¦W.\n"
+ 
+ #, fuzzy
+ #~ msgid "  %-10s  Search backward for a specified string\n"
+ #~ msgstr "  %-10s  ¦b¥» Info ÀÉ¤¤, ¦V«á·j´M¤@­Ó«ü©wªº¦r¦ê,\n"
+ 
+ #~ msgid ""
+ #~ "              and select the node in which the next occurrence is found.\n"
+ #~ msgstr "              ¨Ã¥B¿ï¾Ü¤U¤@­Ó·j´M¨ìªº¦r¦ê©Ò¦bªº¸`ÂI.\n"
+ 
+ #~ msgid "Following Next node..."
+ #~ msgstr "¸òÀH¤U¤@­Ó¸`ÂI..."
+ 
+ #~ msgid "Selecting first menu item..."
+ #~ msgstr "¿ï¨ú²Ä¤@­Ó¿ï³æ¶µ¥Ø..."
+ 
+ #~ msgid "Selecting Next node..."
+ #~ msgstr "¿ï¨ú¤U¤@­Ó¸`ÂI..."
+ 
+ #~ msgid "Moving Up %d time(s), then Next."
+ #~ msgstr "©¹¤W¤@¼h²¾°Ê %d ¦¸, µM«á©¹¤U¤@­Ó¤è¦V²¾°Ê."
+ 
+ #~ msgid "Moving Prev in this window."
+ #~ msgstr "¦V¥»¤À¹jµøµ¡ªº ¤W¤@­Ó (Prev) ¸`ÂI²¾°Ê."
+ 
+ #~ msgid "Moving Up in this window."
+ #~ msgstr "¦V¥»¤À¹jµøµ¡ªº¤W¤@¼h¸`ÂI²¾°Ê."
+ 
+ #~ msgid "Moving to `Prev's last menu item."
+ #~ msgstr "²¾¦Ü«e¤@­Ó¸`ÂIªº³Ì«á¤@­Ó¥Ø¿ý¶µ¥Ø."
+ 
+ #~ msgid " "
+ #~ msgstr " "
+ 
+ #, fuzzy
+ #~ msgid "Macro"
+ #~ msgstr "¤T¤ë"
+ 
+ #, fuzzy
+ #~ msgid "Variable"
+ #~ msgstr "³]©wÅÜ¼Æ: "
+ 
+ #, fuzzy
+ #~ msgid "User Option"
+ #~ msgstr "´¡¤J§¹¦¨¥y"
+ 
+ #, fuzzy
+ #~ msgid "Instance Variable"
+ #~ msgstr "´y­zÅÜ¼Æ: "
+ 
+ #~ msgid "This is %s, produced by makeinfo version %s from %s.\n"
+ #~ msgstr "³o¬O %s, ¥Ñ makeinfo ª©¥» %s ¦Û %s ²£¥Íªº.\n"
+ 
+ #~ msgid "Next:"
+ #~ msgstr "¤U¤@­Ó:"
+ 
+ #~ msgid "Previous:"
+ #~ msgstr "¤W¤@­Ó:"
+ 
+ #~ msgid "Up:"
+ #~ msgstr "¤W¤@¼h:"
+ 
+ #~ msgid "Menu"
+ #~ msgstr "¥Ø¿ý"
+ 
+ #~ msgid "Prev"
+ #~ msgstr "«e¤@­Ó"
+ 
+ #~ msgid "Up"
+ #~ msgstr "¤W¤@¼h"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "Add or remove entries in INFO-FILE from the Info directory DIR-FILE.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --debug           report what is being done.\n"
+ #~ " --delete          delete existing entries for INFO-FILE from DIR-FILE;\n"
+ #~ "                     don't insert any new entries.\n"
+ #~ " --dir-file=NAME   specify file name of Info directory file.\n"
+ #~ "                     This is equivalent to using the DIR-FILE argument.\n"
+ #~ " --entry=TEXT      insert TEXT as an Info directory entry.\n"
+ #~ "                     TEXT should have the form of an Info menu item line\n"
+ #~ "                     plus zero or more extra lines starting with "
+ #~ "whitespace.\n"
+ #~ "                     If you specify more than one entry, they are all "
+ #~ "added.\n"
+ #~ "                     If you don't specify any entries, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --help            display this help and exit.\n"
+ #~ " --info-file=FILE  specify Info file to install in the directory.\n"
+ #~ "                     This is equivalent to using the INFO-FILE argument.\n"
+ #~ " --info-dir=DIR    same as --dir-file=DIR/dir.\n"
+ #~ " --item=TEXT       same as --entry TEXT.\n"
+ #~ "                     An Info directory entry is actually a menu item.\n"
+ #~ " --quiet           suppress warnings.\n"
+ #~ " --remove          same as --delete.\n"
+ #~ " --remove-exactly  only remove if the info file name matches exactly;\n"
+ #~ "                     .info and/or .gz suffixes are not ignored.\n"
+ #~ " --section=SEC     put this file's entries in section SEC of the "
+ #~ "directory.\n"
+ #~ "                     If you specify more than one section, all the "
+ #~ "entries\n"
+ #~ "                     are added in each of the sections.\n"
+ #~ "                     If you don't specify any sections, they are "
+ #~ "determined\n"
+ #~ "                     from information in the Info file itself.\n"
+ #~ " --section-regex=R if an entry is added to a section that does not "
+ #~ "exist,\n"
+ #~ "                     look for a section matching basic regular expression "
+ #~ "R\n"
+ #~ "                     (and ignoring case) before starting a new section.\n"
+ #~ " --test            suppress updating of DIR-FILE.\n"
+ #~ " --silent          suppress warnings.\n"
+ #~ " --version         display version information and exit.\n"
+ #~ msgstr ""
+ #~ "¥Îªk: %s [OPTION]... [INFO-FILE [DIR-FILE]]\n"
+ #~ "\n"
+ #~ "¦Û Info ¥Ø¿ýÀÉ®× DIR-FILE ªº INFO-FILE ¤¤, ¦w¸Ë©Î²¾°£ dir ¶µ¥Ø.\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --delete          ¦Û DIR-FILE ¤¤, §R°£²{¦³ªº INFO-FILE ¶µ¥Ø;\n"
+ #~ "                     ¤£·s¼W¥ô¦ó·sªº¶µ¥Ø.\n"
+ #~ " --dir-file=NAME   «ü©w Info ¥Ø¿ýÀÉ®×ªºÀÉ®×¦WºÙ.\n"
+ #~ "                     ¥»¿ï¶µ»P¨Ï¥Î DIR-FILE ¤Þ¼Æ¬Û¦P.\n"
+ #~ " --entry=TEXT      ¥H TEXT §@¬° Info directory ¶µ¥Ø.\n"
+ #~ "                     TEXT À³¸Ó»P Info ¥Ø¿ý¶µ¥Øªº¼gªk¦³¬Û¦P®æ¦¡\n"
+ #~ "                     ¦A¥[¤W¹s­Ó¥H¤Wªº¥HªÅ¥Õ¦r¤¸¶}©lªº¸ê®Æ¦æ.\n"
+ #~ "                     ¦pªG±z«ü©w¶W¹L¤@­Ó¥H¤Wªº¶µ¥Ø, ¥¦­Ì¥þ³£·|³Q¥[¶i¥h.\n"
+ #~ "                     ¦pªG±z¨S¦³«ü©w¥ô¦óªº¶µ¥Ø, ¥¦­Ì·|¥H Info ÀÉ®×¤¤ªº\n"
+ #~ "\t\t      ¸ê°T¨Ó¨M©w.\n"
+ #~ " --help            Åã¥Ü¨D§U¸ê°T, µM«áÂ÷¶}.\n"
+ #~ " --info-file=FILE  «ü©w­n¦w¸Ë¦b¥Ø¿ý¤¤ªº Info ÀÉ®×.\n"
+ #~ "                     ¥»¿ï¶µ»P¨Ï¥Î INFO-FILE ¤Þ¼Æ¬Û¦P.\n"
+ #~ " --info-dir=DIR    »P --dir-file=DIR/dir ¬Û¦P.\n"
+ #~ " --item=TEXT       »P --entry TEXT ¬Û¦P.\n"
+ #~ "                     ¤@­Ó Info directory ¶µ¥Ø¨ä¹ê´N¬O¤@­Ó¿ï³æ¶µ¥Ø.\n"
+ #~ " --quiet           ¤£Åã¥ÜÄµ§i°T®§.\n"
+ #~ " --remove          »P --delete ¬Û¦P.\n"
+ #~ " --section=SEC     ±N¥»ÀÉ®×ªº¶µ¥Ø©ñ¦b¥Ø¿ý¤¤ªº SEC ¸`.\n"
+ #~ "                     ¦pªG±z«ü©w¶W¹L¤@­Ó¥H¤Wªº¸`, ©Ò¦³ªº¶µ¥Ø³£·|\n"
+ #~ "\t\t      ·s¼W¦b¨C¤@­Ó¸`¤º.\n"
+ #~ "                     ¦pªG±z¨S¦³«ü©w¥ô¦óªº¸`, ¥¦­Ì·|¥H Info ÀÉ®×¤¤ªº\n"
+ #~ "                     ¸ê°T¨Ó¨M©w.\n"
+ #~ " --version         Åã¥Üª©¥»¸ê°T, µM«áÂ÷¶}.\n"
+ #~ "\n"
+ #~ "µ{¦¡¯äÂÎ, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ¦^³ø¦Ü bug-texinfo@gnu.org,\n"
+ #~ "¤@¯ë°ÝÃD»P°Q½×, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ±H¨ì help-texinfo@gnu.org.\n"
+ 
+ #~ msgid "menu item `%s' already exists, for file `%s'"
+ #~ msgstr "¥Ø¿ý¶µ¥Ø `%s' ¤w¦s¦b, ¬Oµ¹ÀÉ®× `%s' ªº"
+ 
+ #, fuzzy
+ #~ msgid "\\%-10[menu-digit]  Pick first ... ninth item in node's menu.\n"
+ #~ msgstr "  %-10s  ¬D¿ï¸`ÂI¥Ø¿ý¤¤ªº²Ä¤@­Ó...²Ä¤E­Ó¶µ¥Ø.\n"
+ 
+ #~ msgid "node `%s' has been referenced %d times"
+ #~ msgstr "¸`ÂI `%s' ¤w³Q°Ñ·Ó %d ¦¸"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Copyright (C) %s Free Software Foundation, Inc.\n"
+ #~ "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n"
+ #~ "PARTICULAR PURPOSE.  You may redistribute copies of GNU %s\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the file named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s ¦Û¥Ñ³nÅé°òª÷·| Free Software Foundation, Inc.\n"
+ #~ "¥»³nÅé*¤£§@¥ô¦ó«OÃÒ*. ±z¥i¦b GNU ¤½¦@±ÂÅv \n"
+ #~ "(GNU General Public License) ªº±ø´Ú¤U´²§G¥»³nÅé.\n"
+ #~ "±ýª¾§ó¦hªº¸Ô±¡, ½Ð¬ÝÀÉ¦W¬° COPYING ªºÀÉ®×.\n"
+ 
+ #~ msgid "@quote-arg only useful for single-argument macros"
+ #~ msgstr "@quote-arg ¥u¦b³æ¤@¤Þ¼Æªº¥¨¶°¦³¥Î"
+ 
+ #~ msgid "keep temporary files around after processing"
+ #~ msgstr "³B²z§¹²¦«á, ¤£²¾°£¼È¦sÀÉ"
+ 
+ #~ msgid "do not keep temporary files around after processing (default)"
+ #~ msgstr "³B²z§¹²¦«á, ²¾°£¼È¦sÀÉ (¹w³]­È)"
+ 
+ #~ msgid ""
+ #~ "              file, and select the node referenced by the first entry "
+ #~ "found.\n"
+ #~ msgstr "              ¨Ã¥B¿ï¾Ü²Ä¤@­Ó·j´M¨ìªº¶µ¥Ø©Ò°Ñ·Óªº¸`ÂI.\n"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "There is NO warranty.  You may redistribute this software\n"
+ #~ "under the terms of the GNU General Public License.\n"
+ #~ "For more information about these matters, see the files named COPYING.\n"
+ #~ msgstr ""
+ #~ "Copyright (C) %s ¦Û¥Ñ³nÅé°òª÷·| Free Software Foundation, Inc.\n"
+ #~ "¥»³nÅé*¤£§@¥ô¦ó«OÃÒ*. ±z¥i¦b GNU ¤½¦@±ÂÅv \n"
+ #~ "(GNU General Public License) ªº±ø´Ú¤U´²§G¥»³nÅé.\n"
+ #~ "±ýª¾§ó¦hªº¸Ô±¡, ½Ð¬ÝÀÉ¦W¬° COPYING ªºÀÉ®×.\n"
+ 
+ #~ msgid "%s: Specify the Info directory only once.\n"
+ #~ msgstr "%s: ¥u¦³«ü©w Info ¥Ø¿ý¤@¦¸.\n"
+ 
+ #~ msgid "\"\" is invalid"
+ #~ msgstr "\"\" ¤£¦Xªk"
+ 
+ #, fuzzy
+ #~ msgid "%s is an invalid ISO code, using %c"
+ #~ msgstr "%s ¤£¬O¤@­Ó¦Xªkªº ISO 639 »y¨¥½X"
+ 
+ #~ msgid "Node:"
+ #~ msgstr "¸`ÂI:"
+ 
+ #~ msgid "`%s' has no Up field"
+ #~ msgstr "`%s' ¨S¦³ ¤W¤@¼h (Up) Äæ¦ì"
+ 
+ #, fuzzy
+ #~ msgid ""
+ #~ "Email bug reports to bug-texinfo@gnu.org,\n"
+ #~ "general questions and discussion to help-texinfo@gnu.org."
+ #~ msgstr ""
+ #~ "\n"
+ #~ "µ{¦¡¯äÂÎ, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ¦^³ø¦Ü bug-texinfo@gnu.org,\n"
+ #~ "¤@¯ë°ÝÃD»P°Q½×, ½Ð¥H¹q¤l¶l¥ó (­^¤å) ±H¨ì help-texinfo@gnu.org.\n"
+ 
+ #~ msgid "Basic Commands in Info Windows\n"
+ #~ msgstr "Info ¤À¹jµøµ¡¤ºªº°ò¥»«ü¥O\n"
+ 
+ #~ msgid "Moving within a node:\n"
+ #~ msgstr "¦b¸`ÂI¤º²¾°Ê:\n"
+ 
+ #~ msgid "Selecting other nodes:\n"
+ #~ msgstr "¿ï¾Ü¨ä¥¦ªº¸`ÂI:\n"
+ 
+ #~ msgid "Other commands:\n"
+ #~ msgstr "¨ä¥¦«ü¥O:\n"
+ 
+ #~ msgid ""
+ #~ "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ #~ "\n"
+ #~ "Translate Texinfo source documentation to various other formats:\n"
+ #~ "Info files suitable for reading online with Emacs or standalone GNU Info\n"
+ #~ "(by default); plain text (with --no-headers); or HTML (with --html).\n"
+ #~ "\n"
+ #~ "Options:\n"
+ #~ " --commands-in-node-names  allow @ commands in node names.\n"
+ #~ " -D VAR                    define a variable, as with @set.\n"
+ #~ " -E, --macro-expand FILE   output macro-expanded source to FILE.\n"
+ #~ " --error-limit=NUM         quit after NUM errors (default %d).\n"
+ #~ " --fill-column=NUM         break Info lines at NUM characters (default %"
+ #~ "d).\n"
+ #~ " --footnote-style=STYLE    output footnotes according to STYLE:\n"
+ #~ "                            `separate' to place footnotes in their own "
+ #~ "node,\n"
+ #~ "                            `end' to place the footnotes at the end of "
+ #~ "the\n"
+ #~ "                             node in which they are defined (the "
+ #~ "default).\n"
+ #~ " --force                   preserve output even if errors.\n"
+ #~ " --help                    display this help and exit.\n"
+ #~ " --html                    output HTML rather than Info format;\n"
+ #~ " -I DIR                    append DIR to the @include search path.\n"
+ #~ " --ifhtml                  process @ifhtml and @html text even when not\n"
+ #~ "                             generating HTML.\n"
+ #~ " --ifinfo                  process @ifinfo text even when generating "
+ #~ "HTML.\n"
+ #~ " --iftex                   process @iftex and @tex text.\n"
+ #~ "                             implies --no-split.\n"
+ #~ msgstr ""
+ #~ "Usage: %s [OPTION]... TEXINFO-FILE...\n"
+ #~ "\n"
+ #~ "±N Texinfo ªº­ì©l½X¤å¥óÂà´«¦Ü¨ä¥¦ªº®æ¦¡:\n"
+ #~ "Info ÀÉ¾A¦X¥H Emacs ©Î¬O¿W¥ßªº GNU Info µ{¦¡§@½u¤WÅª¨ú (¹w³]);\n"
+ #~ "¯Â¤å¦r (¨Ï¥Î --no-headers ¿ï¶µ); ©Î HTML (¨Ï¥Î --html ¿ï¶µ).\n"
+ #~ "\n"
+ #~ "¿ï¶µ:\n"
+ #~ " --commands-in-node-names  ¤¹³\¸`ÂI¦WºÙ¤¤¨Ï¥Î @ ©R¥O.\n"
+ #~ " -D VAR                    ¦p¦P @set ¤@¯ë©w¸q¤@­ÓÅÜ¼Æ.\n"
+ #~ " -E, --macro-expand FILE   ±N¤w®i¶}¥¨¶°ªº­ì©l½X¿é¥X¦ÜÀÉ®× FILE.\n"
+ #~ " --error-limit=NUM         ¦b NUM ­Ó¿ù»~«áµ²§ô (¹w³]­È¬° %d).\n"
+ #~ " --fill-column=NUM         ¨C¦æ¦b NUM ­Ó¦r¤¸³BÂ_¦æ (¹w³]­È¬° %d).\n"
+ #~ " --footnote-style=STYLE    ¥H STYLE ¤è¦¡¿é¥Xµù¸}:\n"
+ #~ "                            `separate' ¬O±Nµù¸}©ñ¸m¦b¥¦­Ì¦Û¤vªº¸`ÂI,\n"
+ #~ "                            `end' ¬O±Nµù¸}©ñ¸m¦b¥¦­Ì³Q©w¸qªº¸`ÂI\n"
+ #~ "                             ªº§ÀºÝ (¹w³]­È).\n"
+ #~ " --force                   §Y¨Ï¦³¿ù»~²£¥Í, ¤]ºû«ù¿é¥X.\n"
+ #~ " --help                    Åã¥Ü¨D§U¸ê°T, µM«áÂ÷¶}.\n"
+ #~ " --html                    ¿é¥X HTML ®æ¦¡, ¦Ó«D Info;\n"
+ #~ " -I DIR                    ±N DIR ¥[¦b @include ·j´M¸ô®|¤§«á.\n"
+ #~ " --ifhtml                  §Y¨Ï¤£¿é¥X HTML ®æ¦¡, ¤]¤@¨Ö³B²z @ifhtml\n"
+ #~ "                             »P @html ¤å¦r.\n"
+ #~ " --ifinfo                  §Y¨Ï¿é¥X HTML, ¤]¤@¨Ö³B²z @ifinfo ¤å¦r\n"
+ #~ " --iftex                   ³B²z @iftex »P @tex ¤å¦r.\n"
+ #~ "                             Áô§t --no-split ¿ï¶µ.\n"
+ 
+ #~ msgid ""
+ #~ " --no-headers              suppress Info node separators and Node: lines "
+ #~ "and\n"
+ #~ "                             write to standard output without --output.\n"
+ #~ " --no-ifhtml               do not process @ifhtml and @html text.\n"
+ #~ " --no-ifinfo               do not process @ifinfo text.\n"
+ #~ " --no-iftex                do not process @iftex and @tex text.\n"
+ #~ " --no-split                suppress splitting of large Info output files "
+ #~ "or\n"
+ #~ "                           generation of one HTML file per node.\n"
+ #~ " --no-validate             suppress node cross-reference validation.\n"
+ #~ " --no-warn                 suppress warnings (but not errors).\n"
+ #~ " --number-sections         include chapter, section, etc. numbers in "
+ #~ "output.\n"
+ #~ " -o, --output=FILE         output to FILE, ignoring any @setfilename.\n"
+ #~ " -P DIR                    prepend DIR to the @include search path.\n"
+ #~ " --paragraph-indent=VAL    indent Info paragraphs by VAL spaces (default %"
+ #~ "d).\n"
+ #~ "                             if VAL is `none', do not indent;\n"
+ #~ "                             if VAL is `asis', preserve existing "
+ #~ "indentation.\n"
+ #~ " --reference-limit=NUM     warn about at most NUM references (default %"
+ #~ "d).\n"
+ #~ " -U VAR                    undefine a variable, as with @clear.\n"
+ #~ " -v, --verbose             explain what is being done.\n"
+ #~ " --version                 display version information and exit.\n"
+ #~ msgstr ""
+ #~ " --no-headers              ¤£²£¥Í Info ¸`ÂI¤À¹j½u»P ¸`ÂI: ¦æ, ¥H¤Î\n"
+ #~ "                             ¥¼«ü©w --output ®É, ¿é¥X¦Ü¼Ð·Ç¿é¥X³]³Æ.\n"
+ #~ " --no-ifhtml               ¤£³B²z @ifhtml »P @html  ¤å¦r.\n"
+ #~ " --no-ifinfo               ¤£³B²z @ifinfo ¤å¦r.\n"
+ #~ " --no-iftex                ¤£³B²z @iftex »P @tex ¤å¦r.\n"
+ #~ " --no-split                ¤£¤À³Î¤jªº Info ¿é¥XÀÉ®×, ¤]¤£¤@­Ó¸`ÂI\n"
+ #~ "                           ´N²£¥Í¤@­Ó HTML ÀÉ®×\n"
+ #~ " --no-validate             ¤£¹ï¸`ÂIªº¥æ¤¬°Ñ·Ó§@¦³®ÄÀË¬d.\n"
+ #~ " --no-warn                 ¤£Åã¥ÜÄµ§i (¦ý¬O¤£¥]¬A¿ù»~).\n"
+ #~ " --number-sections         ¦b¿é¥X®ÉÅã¥Ü³¹¸`µ¥ªº½s¸¹.\n"
+ #~ " -o, --output=FILE         ¿é¥X¦ÜÀÉ®× FILE, ©¿²¤¥ô¦óªº @setfilename ³]"
+ #~ "©w.\n"
+ #~ " -P DIR                    ±N DIR ¥[¦b @include ·j´M¸ô®|¤§«e.\n"
+ #~ " --paragraph-indent=VAL    ±N Info ¬q¸¨ÁY±Æ VAL ­ÓªÅ¥Õ (¹w³]­È¬° %d).\n"
+ #~ "                             ¦pªG VAL ¬° `none', ¤£§@ÁY±Æ;\n"
+ #~ "                             ¦pªG VAL ¬° `asis', «O¯d¥Ø«eªº ÁY±Æ.\n"
+ #~ " --reference-limit=NUM     ³Ì¦hÄµ§i NUM ­Ó°Ñ·Ó (¹w³]­È¬° %d).\n"
+ #~ " -U VAR                    ¨ú®øÅÜ¼Æªº©w¸q, ¦p¦P @clear.\n"
+ #~ " -v, --verbose             ¸ÑÄÀ¥Ø«e¥¿¦b§@ªº¨Æ.\n"
+ #~ " --version                 Åã¥Üª©¥»¸ê°T, µM«áµ²§ô.\n"
+ 
+ #~ msgid "No .png or .jpg for `%s'"
+ #~ msgstr "¨S¦³µ¹ `%s' ªº .png ©Î .jpg"
diff -Nrc2 texinfo-4.12/system.h texinfo-4.13/system.h
*** texinfo-4.12/system.h	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/system.h	Sat Jul 26 15:54:54 2008
***************
*** 0 ****
--- 1,260 ----
+ /* system.h: system-dependent declarations; include this first.
+    $Id: system.h,v 1.10 2008/07/26 17:13:26 karl Exp $
+ 
+    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+    2006, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef TEXINFO_SYSTEM_H
+ #define TEXINFO_SYSTEM_H
+ 
+ #define _GNU_SOURCE
+ 
+ #include <config.h>
+ 
+ #ifdef MIKTEX
+ #include <gnu-miktex.h>
+ #define S_ISDIR(x) ((x)&_S_IFDIR) 
+ #else
+ /* MiKTeX defines substring() in a separate DLL, where it has its
+    own __declspec declaration.  We don't want to try to duplicate 
+    this Microsoft-ism here.  */
+ extern char *substring (const char *, const char *);
+ #endif
+ 
+ /* Assume ANSI C89 headers are available.  */
+ #include <locale.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <ctype.h>
+ 
+ /* Use POSIX headers.  If they are not available, we use the substitute
+    provided by gnulib.  */
+ #include <getopt.h>
+ #include <unistd.h>
+ 
+ /* For gettext (NLS).  */
+ #define const
+ #include "gettext.h"
+ #undef const
+ 
+ #define _(String) gettext (String)
+ #define N_(String) (String)
+ 
+ /* Additional gnulib includes.  */
+ #include "mbchar.h"
+ #include "mbswidth.h"
+ #include "xalloc.h"
+ #include "xsetenv.h"
+ #if HAVE_MBRTOWC
+ #include "mbiter.h"
+ #endif
+ 
+ #include <errno.h>
+ #ifndef errno
+ extern int errno;
+ #endif
+ #ifdef VMS
+ #include <perror.h>
+ #endif
+ 
+ #ifndef HAVE_DECL_STRERROR
+ extern char *strerror ();
+ #endif
+ 
+ #ifdef HAVE_LIMITS_H
+ #include <limits.h>
+ #endif
+ #ifndef PATH_MAX
+ #ifndef _POSIX_PATH_MAX
+ # define _POSIX_PATH_MAX 255
+ #endif
+ #define PATH_MAX _POSIX_PATH_MAX
+ #endif
+ 
+ #ifndef HAVE_DECL_STRCOLL
+ extern int strcoll ();
+ #endif
+ 
+ #include <sys/stat.h>
+ #if STAT_MACROS_BROKEN
+ # undef S_ISDIR
+ #endif
+ #if !defined(S_ISDIR) && defined(S_IFDIR)
+ # define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
+ #endif
+ 
+ #ifdef HAVE_SYS_FILE_H
+ #include <sys/file.h>
+ #endif /* HAVE_SYS_FILE_H */
+ 
+ #ifndef O_RDONLY
+ /* Since <fcntl.h> is POSIX, prefer that to <sys/fcntl.h>.
+    This also avoids some useless warnings on (at least) Linux.  */
+ #ifdef HAVE_FCNTL_H
+ #include <fcntl.h>
+ #else /* not HAVE_FCNTL_H */
+ #ifdef HAVE_SYS_FCNTL_H
+ #include <sys/fcntl.h>
+ #endif /* not HAVE_SYS_FCNTL_H */
+ #endif /* not HAVE_FCNTL_H */
+ #endif /* not O_RDONLY */
+ 
+ /* MS-DOS and similar non-Posix systems have some peculiarities:
+     - they distinguish between binary and text files;
+     - they use both `/' and `\\' as directory separator in file names;
+     - they can have a drive letter X: prepended to a file name;
+     - they have a separate root directory on each drive;
+     - their filesystems are case-insensitive;
+     - directories in environment variables (like INFOPATH) are separated
+         by `;' rather than `:';
+     - text files can have their lines ended either with \n or with \r\n pairs;
+    These are all parameterized here except the last, which is
+    handled by the source code as appropriate (mostly, in info/).  */
+ #ifndef O_BINARY
+ # ifdef _O_BINARY
+ #  define O_BINARY _O_BINARY
+ # else
+ #  define O_BINARY 0
+ # endif
+ #endif /* O_BINARY */
+ 
+ /* We'd like to take advantage of _doprnt if it's around, a la error.c,
+    but then we'd have no VA_SPRINTF.  */
+ #if HAVE_VPRINTF
+ # if __STDC__
+ #  include <stdarg.h>
+ #  define VA_START(args, lastarg) va_start(args, lastarg)
+ # else
+ #  include <varargs.h>
+ #  define VA_START(args, lastarg) va_start(args)
+ # endif
+ # define VA_FPRINTF(file, fmt, ap) vfprintf (file, fmt, ap)
+ # define VA_SPRINTF(str, fmt, ap) vsprintf (str, fmt, ap)
+ #else /* not HAVE_VPRINTF */
+ # define VA_START(args, lastarg)
+ # define va_alist a1, a2, a3, a4, a5, a6, a7, a8
+ # define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8;
+ # define va_end(args)
+ #endif
+ 
+ #if O_BINARY
+ # ifdef HAVE_IO_H
+ #  include <io.h>
+ # endif
+ # ifdef __MSDOS__
+ #  include <limits.h>
+ #  ifdef __DJGPP__
+ #   define HAVE_LONG_FILENAMES(dir)  (pathconf (dir, _PC_NAME_MAX) > 12)
+ #   define NULL_DEVICE	"/dev/null"
+ #   define DEFAULT_INFOPATH "c:/djgpp/info;/usr/local/info;/usr/info;."
+     /* DJGPP supports /dev/null, which is okay for Unix aficionados,
+        shell scripts and Makefiles, but interactive DOS die-hards
+        would probably want to have NUL as well.  */
+ #   define ALSO_NULL_DEVICE  "NUL"
+ #  else  /* O_BINARY && !__DJGPP__ */
+ #   define HAVE_LONG_FILENAMES(dir)  (0)
+ #   define NULL_DEVICE	"NUL"
+ #  endif /* O_BINARY && !__DJGPP__ */
+ #  define SET_SCREEN_SIZE_HELPER terminal_prep_terminal()
+ #  define DEFAULT_INFO_PRINT_COMMAND ">PRN"
+ # else   /* O_BINARY && !__MSDOS__ */
+ #  define setmode(f,m)  _setmode(f,m)
+ #  define HAVE_LONG_FILENAMES(dir)   (1)
+ #  define NULL_DEVICE	"NUL"
+ # endif  /* O_BINARY && !__MSDOS__ */
+ # ifdef __CYGWIN__
+ #  define DEFAULT_TMPDIR	"/tmp/"
+ #  define PATH_SEP	":"
+ #  define STRIP_DOT_EXE	0
+ #  undef NULL_DEVICE
+ #  define NULL_DEVICE "/dev/null"
+ #  define PIPE_USE_FORK	1
+ # else  /* O_BINARY && !__CYGWIN__ */
+ #  define DEFAULT_TMPDIR	"c:/"
+ #  define PATH_SEP	";"
+ #  define STRIP_DOT_EXE	1
+ # endif /* O_BINARY && !__CYGWIN__ */
+   /* Back to any O_BINARY system.  */
+ # define FILENAME_CMP	mbscasecmp
+ # define FILENAME_CMPN	mbsncasecmp
+ # define FOPEN_RBIN	"rb"
+ # define FOPEN_WBIN	"wb"
+ # define HAVE_DRIVE(n)	((n)[0] && (n)[1] == ':')
+ # define IS_SLASH(c)	((c) == '/' || (c) == '\\')
+ # define IS_ABSOLUTE(n)	(IS_SLASH((n)[0]) || HAVE_DRIVE(n))
+ # define PIPE_USE_FORK	0
+ # define SET_BINARY(f)  do {if (!isatty(f)) setmode(f,O_BINARY);} while(0)
+ 
+ #else  /* not O_BINARY, i.e., Unix */
+ # define SET_BINARY(f)	(void)0
+ # define FOPEN_RBIN	"r"
+ # define FOPEN_WBIN	"w"
+ # define IS_SLASH(c)	((c) == '/')
+ # define HAVE_DRIVE(n)	(0)
+ # define IS_ABSOLUTE(n)	((n)[0] == '/')
+ # define FILENAME_CMP	strcmp
+ # define FILENAME_CMPN	strncmp
+ # define HAVE_LONG_FILENAMES(dir)   (1)
+ # define PATH_SEP	":"
+ # define STRIP_DOT_EXE	0
+ # ifdef VMS
+ #  define DEFAULT_TMPDIR "sys$scratch:"
+ # else
+ #  define DEFAULT_TMPDIR "/tmp/"
+ # endif
+ # define NULL_DEVICE	"/dev/null"
+ # define PIPE_USE_FORK	1
+ #endif /* not O_BINARY */
+ 
+ /* Everything but DJGPP.  */
+ #ifndef ALSO_NULL_DEVICE
+ # define ALSO_NULL_DEVICE  ""
+ #endif
+ 
+ #ifdef HAVE_PWD_H
+ #include <pwd.h>
+ #endif
+ /* Some systems don't declare this function in pwd.h. */
+ struct passwd *getpwnam (const char *name);
+ 
+ /* Our library routines not included in any system library.  */
+ extern void *xmalloc (size_t), *xrealloc (void *, size_t);
+ extern char *xstrdup (const char *);
+ extern void xexit (int);
+ 
+ /* For convenience.  */
+ #define STREQ(s1,s2) (strcmp (s1, s2) == 0)
+ #define STRCASEEQ(s1,s2) (strcasecmp (s1, s2) == 0)
+ #define STRNCASEEQ(s1,s2,n) (strncasecmp (s1, s2, n) == 0)
+ 
+ /* We don't need anything fancy.  If we did need something fancy, gnulib
+    has it.  */
+ #ifdef MIN
+ #undef MIN
+ #endif
+ #define MIN(a,b) ((a) < (b) ? (a) : (b))
+ #ifdef MAX
+ #undef MAX
+ #endif
+ #define MAX(a,b) ((a) > (b) ? (a) : (b))
+ 
+ #ifdef DMALLOC_DEBUG
+ #define DMALLOC_FUNC_CHECK
+ #include "dmalloc.h"
+ #endif
+ 
+ #endif /* TEXINFO_SYSTEM_H */
diff -Nrc2 texinfo-4.12/util/Makefile.am texinfo-4.13/util/Makefile.am
*** texinfo-4.12/util/Makefile.am	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/Makefile.am	Thu May 22 05:11:36 2008
***************
*** 0 ****
--- 1,62 ----
+ # $Id: Makefile.am,v 1.34 2008/03/25 10:51:20 akim Exp $
+ # Makefile.am for texinfo/util.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ bin_PROGRAMS = texindex
+ bin_SCRIPTS = texi2dvi texi2pdf pdftexi2dvi
+ 
+ # for auctex.
+ pdftexi2dvi: texi2pdf
+ 	cp -f $(srcdir)/texi2pdf $@
+ 
+ localedir = $(datadir)/locale
+ AM_CPPFLAGS = 					\
+   -I$(top_srcdir)				\
+   -I$(top_srcdir)/gnulib/lib			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\"
+ LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL)
+ 
+ dist_pkgdata_DATA = texinfo.dtd texinfo.xsl
+ pkgdata_DATA = texinfo.cat
+ 
+ # we don't actually use version.texi in the rule, but it's one way of
+ # noticing when the version changes.
+ texinfo.cat: texinfo-cat.in $(top_srcdir)/doc/version.texi
+ 	sed 's/__VERSION__/@VERSION@/g' $(srcdir)/texinfo-cat.in >$@
+ 
+ # Most of these are for fun.  The only official/installed ones are the
+ # *texi2* scripts.
+ #
+ EXTRA_DIST = README deref.c dir-example fix-info-dir fixfonts \
+   fixref.gawk gdoc gen-dir-node gendocs.sh gendocs_template infosrch \
+   install-info-html outline.gawk pdftexi2dvi \
+   prepinfo.awk tex3patch texi-docstring-magic.el texi2dvi texi2pdf txitextest \
+   $(dist_pkgdata_DATA) texinfo-cat.in
+ CLEANFILES = $(pkgdata_DATA)
+ 
+ 
+ # Let's not stress people's TeX installations, etc.
+ if MAINTAINER_MODE
+ TESTS =						\
+ bibtex.test					\
+ dvipdf.test					\
+ latex2html.test					\
+ local.test					\
+ texi2dvi.test
+ 
+ EXTRA_DIST += $(TESTS)
+ 
+ # Each test case depends on defs.
+ check_SCRIPTS = defs
+ distclean-local:
+ 	-rm -rf testSubDir
+ endif
diff -Nrc2 texinfo-4.12/util/Makefile.in texinfo-4.13/util/Makefile.in
*** texinfo-4.12/util/Makefile.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/Makefile.in	Thu Sep 18 11:46:25 2008
***************
*** 0 ****
--- 1,882 ----
+ # Makefile.in generated by automake 1.10.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+ # 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ # $Id: Makefile.am,v 1.34 2008/03/25 10:51:20 akim Exp $
+ # Makefile.am for texinfo/util.
+ # Run automake in .. to produce Makefile.in from this.
+ #
+ # This file is free software; as a special exception the author gives
+ # unlimited permission to copy and/or distribute it, with or without
+ # modifications, as long as this notice is preserved.
+ #
+ # This program is distributed in the hope that it will be useful, but
+ # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ 
+ 
+ 
+ VPATH = @srcdir@
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ bin_PROGRAMS = texindex$(EXEEXT)
+ @MAINTAINER_MODE_TRUE@am__append_1 = $(TESTS)
+ subdir = util
+ DIST_COMMON = README $(dist_pkgdata_DATA) $(srcdir)/Makefile.am \
+ 	$(srcdir)/Makefile.in $(srcdir)/defs.in
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/gnulib/m4/alloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/argz.m4 \
+ 	$(top_srcdir)/gnulib/m4/codeset.m4 \
+ 	$(top_srcdir)/gnulib/m4/eealloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/environ.m4 \
+ 	$(top_srcdir)/gnulib/m4/error.m4 \
+ 	$(top_srcdir)/gnulib/m4/exitfail.m4 \
+ 	$(top_srcdir)/gnulib/m4/extensions.m4 \
+ 	$(top_srcdir)/gnulib/m4/getopt.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettext.m4 \
+ 	$(top_srcdir)/gnulib/m4/gettimeofday.m4 \
+ 	$(top_srcdir)/gnulib/m4/glibc21.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-common.m4 \
+ 	$(top_srcdir)/gnulib/m4/gnulib-comp.m4 \
+ 	$(top_srcdir)/gnulib/m4/iconv.m4 \
+ 	$(top_srcdir)/gnulib/m4/include_next.m4 \
+ 	$(top_srcdir)/gnulib/m4/inline.m4 \
+ 	$(top_srcdir)/gnulib/m4/intlmacosx.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-ld.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-link.m4 \
+ 	$(top_srcdir)/gnulib/m4/lib-prefix.m4 \
+ 	$(top_srcdir)/gnulib/m4/localcharset.m4 \
+ 	$(top_srcdir)/gnulib/m4/longlong.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloc.m4 \
+ 	$(top_srcdir)/gnulib/m4/malloca.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbiter.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbrtowc.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbscasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbschr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbslen.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsncasecmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbsstr.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbstate_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/mbswidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/memchr.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcmp.m4 \
+ 	$(top_srcdir)/gnulib/m4/memcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmem.m4 \
+ 	$(top_srcdir)/gnulib/m4/memmove.m4 \
+ 	$(top_srcdir)/gnulib/m4/mempcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/mkstemp.m4 \
+ 	$(top_srcdir)/gnulib/m4/nls.m4 \
+ 	$(top_srcdir)/gnulib/m4/onceonly.m4 \
+ 	$(top_srcdir)/gnulib/m4/po.m4 \
+ 	$(top_srcdir)/gnulib/m4/progtest.m4 \
+ 	$(top_srcdir)/gnulib/m4/setenv.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdbool.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdint.m4 \
+ 	$(top_srcdir)/gnulib/m4/stdlib_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/stpcpy.m4 \
+ 	$(top_srcdir)/gnulib/m4/strdup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strerror.m4 \
+ 	$(top_srcdir)/gnulib/m4/string_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/strndup.m4 \
+ 	$(top_srcdir)/gnulib/m4/strnlen.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_stat_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/sys_time_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/tempname.m4 \
+ 	$(top_srcdir)/gnulib/m4/unistd_h.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar.m4 \
+ 	$(top_srcdir)/gnulib/m4/wchar_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/wctype.m4 \
+ 	$(top_srcdir)/gnulib/m4/wcwidth.m4 \
+ 	$(top_srcdir)/gnulib/m4/wint_t.m4 \
+ 	$(top_srcdir)/gnulib/m4/xalloc.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ mkinstalldirs = $(install_sh) -d
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES = defs
+ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \
+ 	"$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(pkgdatadir)"
+ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+ PROGRAMS = $(bin_PROGRAMS)
+ texindex_SOURCES = texindex.c
+ texindex_OBJECTS = texindex.$(OBJEXT)
+ texindex_LDADD = $(LDADD)
+ am__DEPENDENCIES_1 =
+ texindex_DEPENDENCIES = ../lib/libtxi.a \
+ 	$(top_builddir)/gnulib/lib/libgnu.a $(am__DEPENDENCIES_1)
+ binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
+ SCRIPTS = $(bin_SCRIPTS)
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+ am__depfiles_maybe = depfiles
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ CCLD = $(CC)
+ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = texindex.c
+ DIST_SOURCES = texindex.c
+ am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+ am__vpath_adj = case $$p in \
+     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+     *) f=$$p;; \
+   esac;
+ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+ dist_pkgdataDATA_INSTALL = $(INSTALL_DATA)
+ pkgdataDATA_INSTALL = $(INSTALL_DATA)
+ DATA = $(dist_pkgdata_DATA) $(pkgdata_DATA)
+ ETAGS = etags
+ CTAGS = ctags
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ ACLOCAL = @ACLOCAL@
+ ALLOCA = @ALLOCA@
+ ALLOCA_H = @ALLOCA_H@
+ AMTAR = @AMTAR@
+ ARGZ_H = @ARGZ_H@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@
+ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@
+ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@
+ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@
+ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@
+ CC = @CC@
+ CCDEPMODE = @CCDEPMODE@
+ CFLAGS = @CFLAGS@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ DEFS = @DEFS@
+ DEPDIR = @DEPDIR@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ EXEEXT = @EXEEXT@
+ GETOPT_H = @GETOPT_H@
+ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+ GLIBC21 = @GLIBC21@
+ GMSGFMT = @GMSGFMT@
+ GMSGFMT_015 = @GMSGFMT_015@
+ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+ GNULIB_CHOWN = @GNULIB_CHOWN@
+ GNULIB_DUP2 = @GNULIB_DUP2@
+ GNULIB_ENVIRON = @GNULIB_ENVIRON@
+ GNULIB_FCHDIR = @GNULIB_FCHDIR@
+ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+ GNULIB_GETCWD = @GNULIB_GETCWD@
+ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
+ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+ GNULIB_LCHOWN = @GNULIB_LCHOWN@
+ GNULIB_LSEEK = @GNULIB_LSEEK@
+ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
+ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@
+ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@
+ GNULIB_MBSCHR = @GNULIB_MBSCHR@
+ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@
+ GNULIB_MBSLEN = @GNULIB_MBSLEN@
+ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@
+ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@
+ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@
+ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@
+ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@
+ GNULIB_MBSSEP = @GNULIB_MBSSEP@
+ GNULIB_MBSSPN = @GNULIB_MBSSPN@
+ GNULIB_MBSSTR = @GNULIB_MBSSTR@
+ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+ GNULIB_MEMMEM = @GNULIB_MEMMEM@
+ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
+ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+ GNULIB_PUTENV = @GNULIB_PUTENV@
+ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+ GNULIB_READLINK = @GNULIB_READLINK@
+ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+ GNULIB_RPMATCH = @GNULIB_RPMATCH@
+ GNULIB_SETENV = @GNULIB_SETENV@
+ GNULIB_SLEEP = @GNULIB_SLEEP@
+ GNULIB_STPCPY = @GNULIB_STPCPY@
+ GNULIB_STPNCPY = @GNULIB_STPNCPY@
+ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
+ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
+ GNULIB_STRDUP = @GNULIB_STRDUP@
+ GNULIB_STRERROR = @GNULIB_STRERROR@
+ GNULIB_STRNDUP = @GNULIB_STRNDUP@
+ GNULIB_STRNLEN = @GNULIB_STRNLEN@
+ GNULIB_STRPBRK = @GNULIB_STRPBRK@
+ GNULIB_STRSEP = @GNULIB_STRSEP@
+ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
+ GNULIB_STRSTR = @GNULIB_STRSTR@
+ GNULIB_STRTOD = @GNULIB_STRTOD@
+ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
+ GNULIB_UNSETENV = @GNULIB_UNSETENV@
+ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+ GREP = @GREP@
+ HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+ HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
+ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
+ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
+ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+ HAVE_DUP2 = @HAVE_DUP2@
+ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
+ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
+ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
+ HAVE_LSTAT = @HAVE_LSTAT@
+ HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
+ HAVE_MEMPCPY = @HAVE_MEMPCPY@
+ HAVE_MKDTEMP = @HAVE_MKDTEMP@
+ HAVE_OS_H = @HAVE_OS_H@
+ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+ HAVE_READLINK = @HAVE_READLINK@
+ HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+ HAVE_RPMATCH = @HAVE_RPMATCH@
+ HAVE_SETENV = @HAVE_SETENV@
+ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
+ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
+ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
+ HAVE_SLEEP = @HAVE_SLEEP@
+ HAVE_STDINT_H = @HAVE_STDINT_H@
+ HAVE_STPCPY = @HAVE_STPCPY@
+ HAVE_STPNCPY = @HAVE_STPNCPY@
+ HAVE_STRCASESTR = @HAVE_STRCASESTR@
+ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
+ HAVE_STRNDUP = @HAVE_STRNDUP@
+ HAVE_STRPBRK = @HAVE_STRPBRK@
+ HAVE_STRSEP = @HAVE_STRSEP@
+ HAVE_STRTOD = @HAVE_STRTOD@
+ HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
+ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
+ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
+ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+ HAVE_UNISTD_H = @HAVE_UNISTD_H@
+ HAVE_UNSETENV = @HAVE_UNSETENV@
+ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+ HAVE_WCHAR_H = @HAVE_WCHAR_H@
+ HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+ HAVE_WINT_T = @HAVE_WINT_T@
+ HAVE__BOOL = @HAVE__BOOL@
+ HELP2MAN = @HELP2MAN@
+ HEVEA = @HEVEA@
+ INCLUDE_NEXT = @INCLUDE_NEXT@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ INTLLIBS = @INTLLIBS@
+ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+ LDFLAGS = @LDFLAGS@
+ LIBGNU_LIBDEPS = @LIBGNU_LIBDEPS@
+ LIBGNU_LTLIBDEPS = @LIBGNU_LTLIBDEPS@
+ LIBICONV = @LIBICONV@
+ LIBINTL = @LIBINTL@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBINTL = @LTLIBINTL@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ MSGFMT = @MSGFMT@
+ MSGFMT_015 = @MSGFMT_015@
+ MSGMERGE = @MSGMERGE@
+ NEXT_STDINT_H = @NEXT_STDINT_H@
+ NEXT_STDLIB_H = @NEXT_STDLIB_H@
+ NEXT_STRING_H = @NEXT_STRING_H@
+ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
+ NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+ NEXT_UNISTD_H = @NEXT_UNISTD_H@
+ NEXT_WCHAR_H = @NEXT_WCHAR_H@
+ NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
+ OBJEXT = @OBJEXT@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ POSUB = @POSUB@
+ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+ RANLIB = @RANLIB@
+ REPLACE_CHOWN = @REPLACE_CHOWN@
+ REPLACE_FCHDIR = @REPLACE_FCHDIR@
+ REPLACE_GETCWD = @REPLACE_GETCWD@
+ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+ REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+ REPLACE_LCHOWN = @REPLACE_LCHOWN@
+ REPLACE_LSEEK = @REPLACE_LSEEK@
+ REPLACE_MEMMEM = @REPLACE_MEMMEM@
+ REPLACE_MKDIR = @REPLACE_MKDIR@
+ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+ REPLACE_PUTENV = @REPLACE_PUTENV@
+ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+ REPLACE_STRERROR = @REPLACE_STRERROR@
+ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+ REPLACE_STRSTR = @REPLACE_STRSTR@
+ REPLACE_STRTOD = @REPLACE_STRTOD@
+ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
+ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+ STDBOOL_H = @STDBOOL_H@
+ STDINT_H = @STDINT_H@
+ STRIP = @STRIP@
+ SYS_STAT_H = @SYS_STAT_H@
+ SYS_TIME_H = @SYS_TIME_H@
+ TERMLIBS = @TERMLIBS@
+ TEX = @TEX@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VOID_UNSETENV = @VOID_UNSETENV@
+ WCHAR_H = @WCHAR_H@
+ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
+ WCTYPE_H = @WCTYPE_H@
+ WINT_T_SUFFIX = @WINT_T_SUFFIX@
+ XGETTEXT = @XGETTEXT@
+ XGETTEXT_015 = @XGETTEXT_015@
+ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ am__include = @am__include@
+ am__leading_dot = @am__leading_dot@
+ am__quote = @am__quote@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ exec_prefix = @exec_prefix@
+ gl_LIBOBJS = @gl_LIBOBJS@
+ gl_LTLIBOBJS = @gl_LTLIBOBJS@
+ gltests_LIBOBJS = @gltests_LIBOBJS@
+ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ localedir = $(datadir)/locale
+ localstatedir = @localstatedir@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ native_tools = @native_tools@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ bin_SCRIPTS = texi2dvi texi2pdf pdftexi2dvi
+ AM_CPPFLAGS = \
+   -I$(top_srcdir)				\
+   -I$(top_srcdir)/gnulib/lib			\
+   -I$(top_builddir)/gnulib/lib			\
+   -DLOCALEDIR=\"$(localedir)\"
+ 
+ LDADD = ../lib/libtxi.a $(top_builddir)/gnulib/lib/libgnu.a $(LIBINTL)
+ dist_pkgdata_DATA = texinfo.dtd texinfo.xsl
+ pkgdata_DATA = texinfo.cat
+ 
+ # Most of these are for fun.  The only official/installed ones are the
+ # *texi2* scripts.
+ #
+ EXTRA_DIST = README deref.c dir-example fix-info-dir fixfonts \
+ 	fixref.gawk gdoc gen-dir-node gendocs.sh gendocs_template \
+ 	infosrch install-info-html outline.gawk pdftexi2dvi \
+ 	prepinfo.awk tex3patch texi-docstring-magic.el texi2dvi \
+ 	texi2pdf txitextest $(dist_pkgdata_DATA) texinfo-cat.in \
+ 	$(am__append_1)
+ CLEANFILES = $(pkgdata_DATA)
+ 
+ # Let's not stress people's TeX installations, etc.
+ @MAINTAINER_MODE_TRUE@TESTS = \
+ @MAINTAINER_MODE_TRUE@bibtex.test					\
+ @MAINTAINER_MODE_TRUE@dvipdf.test					\
+ @MAINTAINER_MODE_TRUE@latex2html.test					\
+ @MAINTAINER_MODE_TRUE@local.test					\
+ @MAINTAINER_MODE_TRUE@texi2dvi.test
+ 
+ 
+ # Each test case depends on defs.
+ @MAINTAINER_MODE_TRUE@check_SCRIPTS = defs
+ all: all-am
+ 
+ .SUFFIXES:
+ .SUFFIXES: .c .o .obj
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ 		&& exit 0; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  util/Makefile'; \
+ 	cd $(top_srcdir) && \
+ 	  $(AUTOMAKE) --gnu  util/Makefile
+ .PRECIOUS: Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ defs: $(top_builddir)/config.status $(srcdir)/defs.in
+ 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+ install-binPROGRAMS: $(bin_PROGRAMS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ 	  if test -f $$p \
+ 	  ; then \
+ 	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+ 	   echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ 	   $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+ 	  else :; fi; \
+ 	done
+ 
+ uninstall-binPROGRAMS:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ 	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ 	done
+ 
+ clean-binPROGRAMS:
+ 	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+ texindex$(EXEEXT): $(texindex_OBJECTS) $(texindex_DEPENDENCIES) 
+ 	@rm -f texindex$(EXEEXT)
+ 	$(LINK) $(texindex_OBJECTS) $(texindex_LDADD) $(LIBS)
+ install-binSCRIPTS: $(bin_SCRIPTS)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ 	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  if test -f $$d$$p; then \
+ 	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ 	    echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ 	    $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
+ 	  else :; fi; \
+ 	done
+ 
+ uninstall-binSCRIPTS:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+ 	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+ 	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+ 	done
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+ 
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texindex.Po@am__quote@
+ 
+ .c.o:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c $<
+ 
+ .c.obj:
+ @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+ install-dist_pkgdataDATA: $(dist_pkgdata_DATA)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
+ 	@list='$(dist_pkgdata_DATA)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  f=$(am__strip_dir) \
+ 	  echo " $(dist_pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \
+ 	  $(dist_pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \
+ 	done
+ 
+ uninstall-dist_pkgdataDATA:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(dist_pkgdata_DATA)'; for p in $$list; do \
+ 	  f=$(am__strip_dir) \
+ 	  echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \
+ 	done
+ install-pkgdataDATA: $(pkgdata_DATA)
+ 	@$(NORMAL_INSTALL)
+ 	test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
+ 	@list='$(pkgdata_DATA)'; for p in $$list; do \
+ 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 	  f=$(am__strip_dir) \
+ 	  echo " $(pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \
+ 	  $(pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \
+ 	done
+ 
+ uninstall-pkgdataDATA:
+ 	@$(NORMAL_UNINSTALL)
+ 	@list='$(pkgdata_DATA)'; for p in $$list; do \
+ 	  f=$(am__strip_dir) \
+ 	  echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \
+ 	  rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \
+ 	done
+ 
+ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	mkid -fID $$unique
+ tags: TAGS
+ 
+ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	here=`pwd`; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ 	  test -n "$$unique" || unique=$$empty_fix; \
+ 	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ 	    $$tags $$unique; \
+ 	fi
+ ctags: CTAGS
+ CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+ 		$(TAGS_FILES) $(LISP)
+ 	tags=; \
+ 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+ 	unique=`for i in $$list; do \
+ 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ 	  done | \
+ 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ 	     $$tags $$unique
+ 
+ GTAGS:
+ 	here=`$(am__cd) $(top_builddir) && pwd` \
+ 	  && cd $(top_srcdir) \
+ 	  && gtags -i $(GTAGS_ARGS) $$here
+ 
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ 
+ check-TESTS: $(TESTS)
+ 	@failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[	 ]'; \
+ 	srcdir=$(srcdir); export srcdir; \
+ 	list=' $(TESTS) '; \
+ 	if test -n "$$list"; then \
+ 	  for tst in $$list; do \
+ 	    if test -f ./$$tst; then dir=./; \
+ 	    elif test -f $$tst; then dir=; \
+ 	    else dir="$(srcdir)/"; fi; \
+ 	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ 	      all=`expr $$all + 1`; \
+ 	      case " $(XFAIL_TESTS) " in \
+ 	      *$$ws$$tst$$ws*) \
+ 		xpass=`expr $$xpass + 1`; \
+ 		failed=`expr $$failed + 1`; \
+ 		echo "XPASS: $$tst"; \
+ 	      ;; \
+ 	      *) \
+ 		echo "PASS: $$tst"; \
+ 	      ;; \
+ 	      esac; \
+ 	    elif test $$? -ne 77; then \
+ 	      all=`expr $$all + 1`; \
+ 	      case " $(XFAIL_TESTS) " in \
+ 	      *$$ws$$tst$$ws*) \
+ 		xfail=`expr $$xfail + 1`; \
+ 		echo "XFAIL: $$tst"; \
+ 	      ;; \
+ 	      *) \
+ 		failed=`expr $$failed + 1`; \
+ 		echo "FAIL: $$tst"; \
+ 	      ;; \
+ 	      esac; \
+ 	    else \
+ 	      skip=`expr $$skip + 1`; \
+ 	      echo "SKIP: $$tst"; \
+ 	    fi; \
+ 	  done; \
+ 	  if test "$$failed" -eq 0; then \
+ 	    if test "$$xfail" -eq 0; then \
+ 	      banner="All $$all tests passed"; \
+ 	    else \
+ 	      banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+ 	    fi; \
+ 	  else \
+ 	    if test "$$xpass" -eq 0; then \
+ 	      banner="$$failed of $$all tests failed"; \
+ 	    else \
+ 	      banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+ 	    fi; \
+ 	  fi; \
+ 	  dashes="$$banner"; \
+ 	  skipped=""; \
+ 	  if test "$$skip" -ne 0; then \
+ 	    skipped="($$skip tests were not run)"; \
+ 	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ 	      dashes="$$skipped"; \
+ 	  fi; \
+ 	  report=""; \
+ 	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ 	    report="Please report to $(PACKAGE_BUGREPORT)"; \
+ 	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ 	      dashes="$$report"; \
+ 	  fi; \
+ 	  dashes=`echo "$$dashes" | sed s/./=/g`; \
+ 	  echo "$$dashes"; \
+ 	  echo "$$banner"; \
+ 	  test -z "$$skipped" || echo "$$skipped"; \
+ 	  test -z "$$report" || echo "$$report"; \
+ 	  echo "$$dashes"; \
+ 	  test "$$failed" -eq 0; \
+ 	else :; fi
+ 
+ distdir: $(DISTFILES)
+ 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ 	list='$(DISTFILES)'; \
+ 	  dist_files=`for file in $$list; do echo $$file; done | \
+ 	  sed -e "s|^$$srcdirstrip/||;t" \
+ 	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ 	case $$dist_files in \
+ 	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+ 			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ 			   sort -u` ;; \
+ 	esac; \
+ 	for file in $$dist_files; do \
+ 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+ 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ 	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ 	    fi; \
+ 	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ 	  else \
+ 	    test -f $(distdir)/$$file \
+ 	    || cp -p $$d/$$file $(distdir)/$$file \
+ 	    || exit 1; \
+ 	  fi; \
+ 	done
+ check-am: all-am
+ 	$(MAKE) $(AM_MAKEFLAGS) $(check_SCRIPTS)
+ 	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+ check: check-am
+ all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA)
+ installdirs:
+ 	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(pkgdatadir)"; do \
+ 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ 	done
+ install: install-am
+ install-exec: install-exec-am
+ install-data: install-data-am
+ uninstall: uninstall-am
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-am
+ install-strip:
+ 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	  `test -z '$(STRIP)' || \
+ 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ @MAINTAINER_MODE_FALSE@distclean-local:
+ clean: clean-am
+ 
+ clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+ 
+ distclean: distclean-am
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-compile distclean-generic \
+ 	distclean-local distclean-tags
+ 
+ dvi: dvi-am
+ 
+ dvi-am:
+ 
+ html: html-am
+ 
+ info: info-am
+ 
+ info-am:
+ 
+ install-data-am: install-dist_pkgdataDATA install-pkgdataDATA
+ 
+ install-dvi: install-dvi-am
+ 
+ install-exec-am: install-binPROGRAMS install-binSCRIPTS
+ 
+ install-html: install-html-am
+ 
+ install-info: install-info-am
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-am
+ 
+ install-ps: install-ps-am
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+ 	-rm -rf ./$(DEPDIR)
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+ 
+ mostlyclean-am: mostlyclean-compile mostlyclean-generic
+ 
+ pdf: pdf-am
+ 
+ pdf-am:
+ 
+ ps: ps-am
+ 
+ ps-am:
+ 
+ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
+ 	uninstall-dist_pkgdataDATA uninstall-pkgdataDATA
+ 
+ .MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ 	clean-binPROGRAMS clean-generic ctags distclean \
+ 	distclean-compile distclean-generic distclean-local \
+ 	distclean-tags distdir dvi dvi-am html html-am info info-am \
+ 	install install-am install-binPROGRAMS install-binSCRIPTS \
+ 	install-data install-data-am install-dist_pkgdataDATA \
+ 	install-dvi install-dvi-am install-exec install-exec-am \
+ 	install-html install-html-am install-info install-info-am \
+ 	install-man install-pdf install-pdf-am install-pkgdataDATA \
+ 	install-ps install-ps-am install-strip installcheck \
+ 	installcheck-am installdirs maintainer-clean \
+ 	maintainer-clean-generic mostlyclean mostlyclean-compile \
+ 	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+ 	uninstall-am uninstall-binPROGRAMS uninstall-binSCRIPTS \
+ 	uninstall-dist_pkgdataDATA uninstall-pkgdataDATA
+ 
+ 
+ # for auctex.
+ pdftexi2dvi: texi2pdf
+ 	cp -f $(srcdir)/texi2pdf $@
+ 
+ # we don't actually use version.texi in the rule, but it's one way of
+ # noticing when the version changes.
+ texinfo.cat: texinfo-cat.in $(top_srcdir)/doc/version.texi
+ 	sed 's/__VERSION__/@VERSION@/g' $(srcdir)/texinfo-cat.in >$@
+ @MAINTAINER_MODE_TRUE@distclean-local:
+ @MAINTAINER_MODE_TRUE@	-rm -rf testSubDir
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -Nrc2 texinfo-4.12/util/README texinfo-4.13/util/README
*** texinfo-4.12/util/README	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/README	Tue Jan  1 17:36:32 2008
***************
*** 0 ****
--- 1,13 ----
+ $Id: README,v 1.6 2008/01/02 01:36:32 karl Exp $
+ texinfo/util/README
+ 
+   Copyright (C) 2002, 2008 Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+ Assorted Texinfo-related files.
+ 
+ texindex, texi2dvi, texi2pdf, pdftexi2dvi, and the XML stuff get installed.
+ The other items here are for your amusement and/or hacking pleasure.
diff -Nrc2 texinfo-4.12/util/bibtex.test texinfo-4.13/util/bibtex.test
*** texinfo-4.12/util/bibtex.test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/bibtex.test	Sun Jul  1 15:32:12 2007
***************
*** 0 ****
--- 1,57 ----
+ #! /bin/sh
+ # Copyright (C) 2006, 2007  Free Software Foundation, Inc.
+ #
+ # This file is part of GNU Texinfo.
+ #
+ # GNU Texinfo 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 3 of the License,
+ # or (at your option) any later version.
+ #
+ # GNU Texinfo 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, see <http://www.gnu.org/licenses/>.
+ 
+ required='hevea'
+ 
+ . ./defs || exit 1
+ 
+ set -e
+ 
+ create_input_tex <<EOF
+ \cite{texinfo.doc}
+ \bibliographystyle{plain}
+ \bibliography{sample}
+ EOF
+ 
+ cat >sample.bib <<EOF
+ @misc{texinfo.doc,
+   title =	 "{GNU Texinfo}: The {GNU} documentation format",
+   author =	 "Robert J. Chassell and Richard M. Stallman",
+   year =	 "1988"
+ }
+ EOF
+ 
+ 
+ # check HTML|INFO|TEXT|DVI|PDF
+ # ----------------------------
+ check ()
+ {
+   out=$1
+   # Testing the local build mode.
+   TEXI2DVI_pass --$out --batch --tidy input.tex
+   # There should only be the DVI and the TEXI file.
+   assert_files input.$out input.tex sample.bib input.t2d
+   cp input.$out /tmp/foo
+   rm input.$out
+ }
+ 
+ # Currently we don't use bibtex with hevea.  This is to be fixed.
+ for out in dvi pdf # html info text
+ do
+   check $out
+ done
diff -Nrc2 texinfo-4.12/util/defs.in texinfo-4.13/util/defs.in
*** texinfo-4.12/util/defs.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/defs.in	Wed Feb 27 10:32:25 2008
***************
*** 0 ****
--- 1,364 ----
+ # -*- shell-script -*-
+ # @configure_input@
+ #
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 
+ # 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ #
+ # (This file was originally part of GNU Automake.)
+ #
+ # 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 3 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, see <http://www.gnu.org/licenses/>.
+ 
+ # Defines for Automake testing environment.
+ # Tom Tromey <tromey@cygnus.com>
+ 
+ # Be Bourne compatible.
+ # (Snippet copied from configure's initialization in Autoconf 2.57.)
+ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+   emulate sh
+   NULLCMD=:
+   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+   # is contrary to our usage.  Disable this feature.
+   alias -g '${1+"$@"}'='"$@"'
+ elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+   set -o posix
+ fi
+ 
+ # Ensure we are running from the right directory.
+ test -f ./defs || {
+    echo "defs: not found in current directory" 1>&2
+    exit 1
+ }
+ 
+ # If srcdir is not set, then we are not running from `make check', be verbose.
+ if test -z "$srcdir"; then
+    VERBOSE=x
+    # compute $srcdir.
+    srcdir=`echo "$0" | sed -e 's,/[^\\/]*$,,'`
+    test $srcdir = $0 && srcdir=.
+ fi
+ 
+ # Ensure $srcdir is set correctly.
+ test -f $srcdir/defs.in || {
+    echo "$srcdir/defs.in not found, check \$srcdir" 1>&2
+    exit 1
+ }
+ 
+ me=`echo "$0" | sed -e 's,.*[\\/],,;s/\.test$//'`
+ 
+ # See how redirections should work.  User can set VERBOSE to see all
+ # output.
+ test -z "$VERBOSE" && {
+    exec > /dev/null 2>&1
+ }
+ 
+ # Make sure we override the user shell.
+ SHELL='@SHELL@'
+ export SHELL
+ 
+ srcdir_abs=`cd $srcdir && pwd`
+ test -z "$TEXI2DVI" && TEXI2DVI=$srcdir_abs/texi2dvi
+ 
+ # be sure we use texi2dvi and texindex from our own directory, not
+ # whatever happens to be in the path.
+ echo "defs: prepending $srcdir_abs to PATH for testing."
+ PATH="@abs_builddir@:@abs_srcdir@:$PATH"
+ 
+ # Some shells forget to export modified environment variables.
+ # (See note about `export' in the Autoconf manual.)
+ export PATH
+ 
+ # User can override various tools used.
+ test -z "$PERL" && PERL='@PERL@'
+ 
+ if test -n "$required"
+ then
+   for tool in $required
+   do
+     # Check that each required tool is present.
+     case $tool in
+       hevea)
+         # HeVeA supports -version only.  Use configure to find it.
+         test -n "@HEVEA@" || exit 77
+ 	;;
+       tex)
+         # No all versions of Tex support `--version', so we use
+         # a configure check.
+         test -n "@TEX@" || exit 77
+ 	;;
+       # Generic case: the tool must support --version.
+       *)
+ 	echo "$me: running $tool --version"
+ 	( $tool --version ) || exit 77
+ 	;;
+     esac
+   done
+ fi
+ 
+ 
+ # Always use an absolute srcdir.  Otherwise symlinks made in subdirs
+ # of the test dir just won't work.
+ case "$srcdir" in
+  [\\/]* | ?:[\\/]*)
+     ;;
+ 
+  *)
+     srcdir=`CDPATH=: && cd "$srcdir" && pwd`
+     ;;
+ esac
+ 
+ chmod -R a+rwx testSubDir > /dev/null 2>&1
+ rm -rf testSubDir > /dev/null 2>&1
+ mkdir testSubDir
+ 
+ # Copy in some files we need.
+ cp $srcdir/../doc/texinfo.tex testSubDir || exit 1
+ 
+ cd ./testSubDir
+ 
+ 
+ # Unset the user's envvars that might change the behavior.
+ unset TEXI2DVI_BUILD_MODE
+ unset TEXI2DVI_BUILD_DIRECTORY
+ 
+ echo "=== Running test $0"
+ 
+ # POSIX no longer requires 'egrep' and 'fgrep',
+ # but some hosts lack 'grep -E' and 'grep -F'.
+ EGREP='@EGREP@'
+ FGREP='@FGREP@'
+ 
+ # The amount we should wait after modifying files depends on the platform.
+ # For instance, Windows '95, '98 and ME have 2-second granularity
+ # and can be up to 3 seconds in the future w.r.t. the system clock.
+ sleep='sleep @MODIFICATION_DELAY@'
+ 
+ # The tests call `make -e' but we do not want $srcdir from the environment
+ # to override the definition from the Makefile.
+ testsrcdir=$srcdir
+ unset srcdir
+ 
+ 
+ # create_input_texi < INPUT
+ # -------------------------
+ # Create input.texi adding stdin inside a default prologue/epilogue
+ create_input_texi ()
+ {
+   {
+     cat << END
+ \input texinfo   @c -*-texinfo-*-
+ @setfilename input
+ @settitle input
+ 
+ @ifnottex
+ @node Top
+ @top input
+ @end ifnottex
+ 
+ END
+     cat
+     cat << END
+ @bye
+ END
+   } >input.texi
+ }
+ 
+ 
+ # create_input_tex < INPUT
+ # ------------------------
+ # Create input.tex adding stdin inside a default prologue/epilogue
+ create_input_tex ()
+ {
+   {
+     cat << END
+ \documentclass{article}
+ 
+ \begin{document}
+ END
+     cat
+     cat << END
+ \end{document}
+ END
+   } >input.tex
+ }
+ 
+ 
+ # TEXI2DVI_run status [options...]
+ # --------------------------------
+ # Run texi2dvi with OPTIONS, and fail if does not exit with STATUS.
+ TEXI2DVI_run ()
+ {
+   expected_exitcode=$1
+   shift
+   exitcode=0
+   if test -n "$VERBOSE"; then
+     set x --debug --verbose ${1+"$@"}
+     shift
+   fi
+   texi2dvi ${1+"$@"} 2>stderr >stdout || exitcode=$?
+   cat stderr
+   cat stdout
+   test $exitcode = $expected_exitcode || exit 1
+ }
+ 
+ 
+ # TEXI2DVI_fail [options...]
+ # ---------------------------
+ # Run texi2dvi with OPTIONS, and fail if does not exit with failure.
+ TEXI2DVI_fail ()
+ {
+   TEXI2DVI_run 1 ${1+"$@"}
+ }
+ 
+ 
+ # TEXI2DVI_pass [options...]
+ # ---------------------------
+ # Run texi2dvi with OPTIONS, and fail if does not exit with failure.
+ TEXI2DVI_pass ()
+ {
+   TEXI2DVI_run 0 ${1+"$@"}
+ }
+ 
+ 
+ # optionset_get N OPTIONSET<1> -- OPTIONSET<2> -- ...
+ # ---------------------------------------------------
+ # Return OPTIONSET<N>
+ optionset_get ()
+ {
+   n=$1
+   shift
+   # Find the optionset.
+   while test $n != 1; do
+     case $1 in
+       --) n=`expr $n - 1`;;
+     esac
+     shift
+   done
+   # Return the optionset.
+   while true; do
+     case $#:$1 in
+       0:) break;;
+     *:--) shift; break;;
+        *) echo "$1"; shift;;
+     esac
+   done
+ }
+ 
+ # list_files ()
+ # -------------
+ # Return the sorted list of files in this directory, except the "invisible" ones.
+ list_files ()
+ {
+   for f in *
+   do
+     case $f in
+       texinfo.tex | stdout | stderr | ls.expected | ls.value );;
+       *) echo $f;;
+     esac
+   done | sort
+ }
+ 
+ 
+ # assert_files (EXPECTED-FILES)
+ # -----------------------------
+ # Only those files are valid in the current directory.
+ assert_files ()
+ {
+   if test -n "$VERBOSE"; then
+     ls
+   fi
+   list_files > ls.value
+   echo "$*" | tr ' ' '\n' | sort > ls.expected
+   diff -u ls.expected ls.value
+ }
+ 
+ 
+ # assert_and_remove_files (EXPECTED-FILES)
+ # ----------------------------------------
+ # Only those files are valid in the current directory.  Remove them
+ # afterwards.
+ assert_and_remove_files ()
+ {
+   assert_files "$@"
+   rm -rf "$@"
+ }
+ 
+ 
+ # title TITLE...
+ # --------------
+ # Make a huge title to ease the reading of the output.
+ title ()
+ {
+   (
+     set +x
+     echo "    $@    " | sed -e 's/./=/g'
+     echo "    $@    "
+     echo "    $@    " | sed -e 's/./=/g'
+   )
+ }
+ 
+ # $latex_paragraph
+ # ----------------
+ # Some lengthy LaTeX.
+ # grep -E '^[a-zA-Z]+$' /usr/share/dict/words | sed 200q | pr --page-width=76 --column=5 --omit-header
+ latex_paragraph='
+ A              Acrux        Aegean           Ahmad          Albany
+ AOL            Actaeon        Aelfric        Ahmadabad      Albee
+ Aachen         Acton        Aeneas           Ahmed          Alberio
+ Aaliyah        Acts         Aeneid           Ahriman        Albert
+ Aaron          Acuff        Aeolus           Aida           Alberta
+ Abbas          Ada          Aeroflot         Aiken          Alberto
+ Abbasid        Adam         Aeschylus        Aileen         Albigensian
+ Abbott         Adams        Aesculapius    Aimee     Albion
+ Abby           Adan         Aesop            Ainu           Albireo
+ Abdul          Adana        Afghan           Airedale       Albuquerque
+ Abe            Adar         Afghanistan    Airedales        Alcatraz
+ Abel           Addams       Afghans          Aisha          Alcestis
+ Abelard        Adderley       Africa         Ajax           Alcibiades
+ Abelson        Addie        African          Akbar          Alcmena
+ Aberdeen       Addison        Africans       Akhmatova      Alcoa
+ Abernathy      Adela        Afrikaans        Akihito        Alcott
+ Abidjan        Adelaide       Afrikaner      Akita          Alcuin
+ Abigail        Adele        Afrikaners     Akkad     Alcyone
+ Abilene        Adeline        Afro           Akron          Aldan
+ Abner          Aden         Afrocentrism   Al        Aldebaran
+ Abraham        Adenauer       Afros          Ala     Alden
+ Abram          Adhara       Ag       Alabama        Alderamin
+ Abrams         Adidas       Agamemnon        Alabaman       Aldo
+ Absalom        Adirondack     Agassi         Alabamans      Aldrin
+ Abuja          Adirondacks    Agassiz        Alabamian      Alec
+ Abyssinia      Adkins       Agatha           Alabamians     Aleichem
+ Abyssinian     Adler        Aggie            Aladdin        Alejandra
+ Ac             Adolf        Aglaia           Alamo          Alejandro
+ Acadia         Adolfo       Agnes            Alamogordo     Alembert
+ Acapulco       Adolph       Agnew            Alan           Aleppo
+ Accra          Adonis       Agni             Alana          Aleut
+ Acevedo        Adonises       Agra           Alar           Aleutian
+ Achaean        Adrian       Agricola         Alaric         Alex
+ Achebe         Adriana        Agrippa        Alaska         Alexander
+ Achernar       Adriatic       Agrippina      Alaskan        Alexandra
+ Acheson        Adrienne       Aguilar        Alaskans       Alexandria
+ Achilles       Advent       Aguinaldo        Alba           Alexei
+ Aconcagua      Adventist      Aguirre        Albania        Alexis
+ Acosta         Advents        Agustin        Albanian       Alfonso
+ Acropolis      Advil        Ahab             Albanians      Alfonzo
+ '
+ 
+ 
+ # Turn on shell traces when VERBOSE is set.
+ if test -n "$VERBOSE"; then
+   set -x
+ else
+   :
+ fi
+ pwd
diff -Nrc2 texinfo-4.12/util/deref.c texinfo-4.13/util/deref.c
*** texinfo-4.12/util/deref.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/deref.c	Sun Jul  1 14:20:33 2007
***************
*** 0 ****
--- 1,208 ----
+ /*
+  * deref.c
+  *
+  * Make all texinfo references into the one argument form.
+  * 
+  * Arnold Robbins
+  * arnold@gnu.org
+  * Written: December, 1991
+  * Released: November, 1998
+  *
+  * Copyright 1991, 1998 Arnold David Robbins
+  *
+  * DEREF 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 3 of the License, or
+  * (at your option) any later version.
+  * 
+  * DEREF 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, see <http://www.gnu.org/licenses/>.
+  */
+ 
+ /*
+  * LIMITATIONS:
+  *	One texinfo cross reference per line.
+  *	Cross references may not cross newlines.
+  *	Use of fgets for input (to be fixed).
+  */
+ 
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <errno.h>
+ 
+ /* for gcc on the 3B1, delete if this gives you grief */
+ extern int fclose(FILE *fp);
+ extern int fprintf(FILE *fp, const char *str, ...);
+ /* extern int sprintf(char *str, const char *fmt, ...); */
+ extern int fputs(char *buf, FILE *fp);
+ 
+ extern char *strerror(int errno);
+ extern char *strchr(char *cp, int ch);
+ extern int strncmp(const char *s1, const char *s2, int count);
+ 
+ extern int errno;
+ 
+ void process(FILE *fp);
+ void repair(char *line, char *ref, int toffset);
+ 
+ int Errs = 0;
+ char *Name = "stdin";
+ int Line = 0;
+ char *Me;
+ 
+ /* main --- handle arguments, global vars for errors */
+ 
+ int
+ main(int argc, char **argv)
+ {
+ 	FILE *fp;
+ 
+ 	Me = argv[0];
+ 
+ 	if (argc == 1)
+ 		process(stdin);
+ 	else
+ 		for (argc--, argv++; *argv != NULL; argc--, argv++) {
+ 			if (argv[0][0] == '-' && argv[0][1] == '\0') {
+ 				Name = "stdin";
+ 				Line = 0;
+ 				process(stdin);
+ 			} else if ((fp = fopen(*argv, "r")) != NULL) {
+ 				Name = *argv;
+ 				Line = 0;
+ 				process(fp);
+ 				fclose(fp);
+ 			} else {
+ 				fprintf(stderr, "%s: can not open: %s\n",
+ 					*argv, strerror(errno));
+ 				Errs++;
+ 			}
+ 		}
+ 	return Errs != 0;
+ }
+ 
+ /* isref --- decide if we've seen a texinfo cross reference */
+ 
+ int
+ isref(char *cp)
+ {
+ 	if (strncmp(cp, "@ref{", 5) == 0)
+ 		return 5;
+ 	if (strncmp(cp, "@xref{", 6) == 0)
+ 		return 6;
+ 	if (strncmp(cp, "@pxref{", 7) == 0)
+ 		return 7;
+ 	return 0;
+ }
+ 
+ /* process --- read files, look for references, fix them up */
+ 
+ void
+ process(FILE *fp)
+ {
+ 	char buf[BUFSIZ];
+ 	char *cp;
+ 	int count;
+ 
+ 	while (fgets(buf, sizeof buf, fp) != NULL) {
+ 		Line++;
+ 		cp = strchr(buf, '@');
+ 		if (cp == NULL) {
+ 			fputs(buf, stdout);
+ 			continue;
+ 		}
+ 		do {
+ 			count = isref(cp);
+ 			if (count == 0) {
+ 				cp++;
+ 				cp = strchr(cp, '@');
+ 				if (cp == NULL) {
+ 					fputs(buf, stdout);
+ 					goto next;
+ 				}
+ 				continue;
+ 			}
+ 			/* got one */
+ 			repair(buf, cp, count);
+ 			break;
+ 		} while (cp != NULL);
+ 	next: ;
+ 	}
+ }
+ 
+ /* repair --- turn all texinfo cross references into the one argument form */
+ 
+ void
+ repair(char *line, char *ref, int toffset)
+ {
+ 	int braces = 1;		/* have seen first left brace */
+ 	char *cp;
+ 
+ 	ref += toffset;
+ 
+ 	/* output line up to and including left brace in reference */
+ 	for (cp = line; cp <= ref; cp++)
+ 		putchar(*cp);
+ 
+ 	/* output node name */
+ 	for (; *cp && *cp != '}' && *cp != ',' && *cp != '\n'; cp++)
+ 		putchar(*cp);
+ 
+ 	if (*cp != '}')	{	/* could have been one arg xref */
+ 		/* skip to matching right brace */
+ 		for (; braces > 0; cp++) {
+ 			switch (*cp) {
+ 			case '@':
+ 				cp++;	/* blindly skip next character */
+ 				break;
+ 			case '{':
+ 				braces++;
+ 				break;
+ 			case '}':
+ 				braces--;
+ 				break;
+ 			case '\n':
+ 			case '\0':
+ 				Errs++;
+ 				fprintf(stderr,
+ 					"%s: %s: %d: mismatched braces\n",
+ 					Me, Name, Line);
+ 				goto out;
+ 			default:
+ 				break;
+ 			}
+ 		}
+ 	out:
+ 		;
+ 	}
+ 
+ 	putchar('}');
+ 	if (*cp == '}')
+ 		cp++;
+ 
+ 	/* now the rest of the line */
+ 	for (; *cp; cp++)
+ 		putchar(*cp);
+ 	return;
+ }
+ 
+ /* strerror --- return error string, delete if in your library */
+ 
+ char *
+ strerror(int errno)
+ {
+ 	static char buf[100];
+ 	extern int sys_nerr;
+ 	extern char *sys_errlist[];
+ 
+ 	if (errno < sys_nerr && errno >= 0)
+ 		return sys_errlist[errno];
+ 
+ 	sprintf(buf, "unknown error %d", errno);
+ 	return buf;
+ }
diff -Nrc2 texinfo-4.12/util/dir-example texinfo-4.13/util/dir-example
*** texinfo-4.12/util/dir-example	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/dir-example	Thu May 22 05:11:36 2008
***************
*** 0 ****
--- 1,494 ----
+ This is the directory file `dir' a.k.a. `DIR', which contains the
+   topmost node of the Info hierarchy.
+ This particular dir file is merely made available for your hacking
+   pleasure, not official or standard in any way.  If it doesn't make sense
+   to you, or you don't like it, ignore it.
+ rms suggested that we follow the categories of the Free Software
+   Directory (http://www.gnu.org/directory/) where possible.  Since
+   capitalization in the directory is random, I've chosen to use
+   `minimum' capitals, just the first word and proper nouns.
+ If you have dir entries for Texinfo manuals you'd like to be added here,
+   please send them to karl@gnu.org.
+ 
+ $Id: dir-example,v 1.77 2008/03/25 15:09:14 karl Exp $
+ 
+ File: dir,	Node: Top,	This is the top of the INFO tree.
+ 
+ This is the Info main menu (aka directory node).
+ A few useful Info commands:
+ 
+   `q' quits;
+   `?' lists all Info commands;
+   `h' starts the Info tutorial;
+   `mTexinfo RET' visits the Texinfo manual, etc.
+ 
+ Not all of the topics shown below may be available on this system.
+ 
+ * Menu:
+ 
+ Basics
+ * Bash: (bash).                 The GNU Bourne-Again SHell.
+ * BC: (bc).                     Arbitrary precision calculator language.
+ * Common options: (coreutils)Common options.      Common options.
+ * Coreutils: (coreutils).       Core GNU (file, text, shell) utilities.
+ * DC: (dc).                     Postfix desk calculator.
+ * Date input formats: (coreutils)Date input formats.
+ * Ed: (ed).                     The GNU line editor.
+ * File permissions: (coreutils)File permissions.  Access modes.
+ * Finding files: (find).        Operating on files matching certain criteria.
+ * Gcal: (gcal).                 GNU calendar program.
+ * Hello: (hello).               Hello, GNU world.
+ * Time: (time).                 Measuring program resource usage.
+ 
+ Text creation and manipulation
+ * Diffutils: (diff).            Comparing and merging files.
+ * Gawk: (gawk).                 A text scanning and processing language.
+ * M4: (m4).                     A powerful macro processor.
+ * grep: (grep).                 Print lines matching a pattern.
+ * sed: (sed).                   Stream EDitor.
+ * Wdiff: (wdiff).               Word difference finder and related tools.
+ 
+ Texinfo documentation system
+ * Info: (info).                 Documentation browsing system.
+ * Texi2HTML: (texi2html).  Texinfo to HTML Converter.
+ * Texinfo: (texinfo).           The GNU documentation format.
+ * info standalone: (info-stnd).                 Standalone Info reader.
+ * infokey: (info-stnd)Invoking infokey.         Compile Info customizations.
+ * install-info: (texinfo)Invoking install-info. Updating info/dir entries.
+ * makeinfo: (texinfo)Creating an Info File.     Translate Texinfo source.
+ * texi2dvi: (texinfo)Format with texi2dvi.      Printing Texinfo documentation.
+ * texindex: (texinfo)Format with tex/texindex.  Sorting Texinfo index files.
+ 
+ Archiving
+ * Cpio: (cpio).                 Copy-in-copy-out archiver to tape or disk.
+ * Shar utilities: (sharutils).  Shell archiver, uuencode/uudecode.
+ * Tar: (tar).                   Making tape (or disk) archives.
+ 
+ Compression
+ * bzip2: (bzip2).               General (de)compression of files (blocksort).
+ * Gzip: (gzip).                 General (de)compression of files (lzw).
+ 
+ Email
+ * Anubis: (anubis).             The GNU outgoing mail processor.
+ * Mailutils: (mailutils).       Utilities & library for mailboxes, protocols.
+ 
+ Network applications
+ * Gawkinet: (gawkinet).         TCP/IP Internetworking With `gawk'.
+ * Wget: (wget).                 Non-interactive network downloader.
+ 
+ Printing Tools
+ * PreScript: (a2ps) PreScript.     Input language for a2ps
+ * a2ps: (a2ps).                    PostScript Generating Utility
+ * card: (a2ps) card.               Print Reference Cards
+ * fixnt: (a2ps) fixnt.             Fixing Microsoft NT PostScript Files
+ * fixps: (a2ps) fixps.             Fixing Some Ill Designed PostScript Files
+ * ogonkify: (ogonkify).            Ogonkify
+ * pdiff: (a2ps) pdiff.             Produce Pretty Comparison of Files
+ * psmandup: (a2ps) psmandup.       Printing Duplex on Simplex Printers
+ * psset: (a2ps) psset.             Inserting calls to setpagedevice
+ 
+ Software development
+ * As: (as).                     Assembler.
+ * Autoconf: (autoconf).         Create source code configuration scripts.
+ * Automake: (automake).         Making GNU standards-compliant Makefiles.
+ * Binutils: (binutils).         The GNU binary utilities.
+ * Cpp: (cpp).		        The GNU C preprocessor.
+ * Cpplib: (cppinternals).       Cpplib internals.
+ * CVS: (cvs).                   Concurrent Versions System
+ * DejaGnu: (dejagnu).           Testing framework.
+ * Dmalloc: (dmalloc).		Malloc debug library.
+ * Gdb: (gdb).                   The GNU debugger.
+ * bison: (bison).       	GNU parser generator (Yacc replacement).
+ * egcs: (egcs).                 Experimental GNU C compiler.
+ * Flex: (flex).                 A fast scanner generator.
+ * g77: (g77).                   GNU Fortran 77 compiler.
+ * Gasp: (gasp).                 GNU Assembler preprocessor.
+ * gcc: (gcc).                   The GNU Compiler Collection.
+ * gccinstall: (gccinstall).     Installing the GNU Compiler Collection.
+ * gccint: (gccint).             Internals of the GNU Compiler Collection.
+ * Gnats: (gnats).               Cygnus bug tracking system.
+ * Gnulib: (gnulib).             Source files to share among distributions.
+ * Gperf: (gperf).               Perfect hash function generator.
+ * Gprof: (gprof).               Profiler.
+ * Guile Reference: (guile).     The Guile reference manual.
+ * Guile Tutorial: (guile-tut).	The Guile Tutorial.
+ * ID database: (id-utils).      Identifier database utilities.
+ * Indent: (indent).             Prettyprinter for programs.
+ * Ld: (ld).                     Linker.
+ * Libtool: (libtool).           Generic library support script.
+ * Make: (make).                 Remake files automatically.
+ * Remsync: (remsync).           Remote synchronization of directory trees.
+ * Send PR: (send-pr).           Cygnus bug reporting for Gnats.
+ * Source config: (cfg-paper).   Some theory on configuring source packages.
+ * help2man: (help2man).         Automatic manual page generation from -help.
+ 
+ Emacs
+ * Ada mode: (ada-mode). The GNU Emacs mode for editing Ada.
+ * Autotype: (autotype). Convenient features for text that you enter frequently
+                           in Emacs.
+ * CC Mode: (ccmode).    Emacs mode for editing C, C++, Objective-C,
+                           Java, Pike, and IDL code.
+ * CL: (cl).		Partial Common Lisp support for Emacs Lisp.
+ * Dired-X: (dired-x).   Dired Extra Features.
+ * EUDC: (eudc).   A client for directory servers (LDAP, PH)
+ * Ebrowse: (ebrowse).   A C++ class browser for Emacs.
+ * Ediff: (ediff).       A visual interface for comparing and merging programs.
+ * Emacs: (emacs).	The extensible self-documenting text editor.
+ * Elisp: (elisp).       The Emacs Lisp Reference Manual.
+ * Emacs FAQ: (efaq).	Frequently Asked Questions about Emacs.
+ * Emacs MIME: (emacs-mime).   The MIME de/composition library.
+ * Eshell: (eshell).     A command shell implemented in Emacs Lisp.
+ * Forms: (forms).	Emacs package for editing data bases
+ 			  by filling in forms.
+ * Gnus: (gnus).         The newsreader Gnus.
+ * IDLWAVE: (idlwave).	Major mode and shell for IDL and WAVE/CL files.
+ * Intro Elisp: (emacs-lisp-intro). Introduction to Elisp programming.
+ 
+ * AUC TeX: (auctex).            Editing (La)TeX files.
+ * MH-E: (mh-e).		Emacs interface to the MH mail system.
+ * Message: (message).   Mail and news composition mode that goes with Gnus.
+ * PCL-CVS: (pcl-cvs).	Emacs front-end to CVS.
+ * RefTeX: (reftex).	Emacs support for LaTeX cross-references and citations.
+ * SC: (sc).		Supercite lets you cite parts of messages you're
+ 			  replying to, in flexible ways.
+ * Speedbar: (speedbar).        File/Tag summarizing utility.
+ * TRAMP: (tramp).       Transparent Remote Access, Multiple Protocol
+                           Emacs remote file access via rsh and rcp.
+ * VIP: (vip).		An older VI-emulation for Emacs.
+ * VIPER: (viper).       The newest Emacs VI-emulation mode.
+                           (also, A VI Plan for Emacs Rescue or the VI PERil.)
+ * VM: (vm).             View Mail for Emacs.
+ * Widget: (widget).     Documenting the "widget" package used by the
+                            Emacs Custom facility.
+ * WoMan: (woman).       Browse UN*X Manual Pages `Wo (without) Man'.
+ 
+ Typesetting
+ * Font utilities: (fontu).      Programs for font manipulation.
+ * Groff: (groff).               The GNU troff document formatting system.
+ * GV: (gv).                     The GNU PostScript and PDF viewer.
+ 
+ GNU Gettext Utilities
+ * ISO3166: (gettext)Country Codes.             ISO 3166 country codes.
+ * ISO639: (gettext)Language Codes.             ISO 639 language codes.
+ * autopoint: (gettext)autopoint Invocation.    Copy gettext infrastructure.
+ * envsubst: (gettext)envsubst Invocation.      Expand environment variables.
+ * gettext: (gettext).                          GNU gettext utilities.
+ * gettextize: (gettext)gettextize Invocation.  Prepare a package for gettext.
+ * msgattrib: (gettext)msgattrib Invocation.    Select part of a PO file.
+ * msgcat: (gettext)msgcat Invocation.          Combine several PO files.
+ * msgcmp: (gettext)msgcmp Invocation.          Compare a PO file and template.
+ * msgcomm: (gettext)msgcomm Invocation.        Match two PO files.
+ * msgconv: (gettext)msgconv Invocation.        Convert PO file to encoding.
+ * msgen: (gettext)msgen Invocation.            Create an English PO file.
+ * msgexec: (gettext)msgexec Invocation.        Process a PO file.
+ * msgfilter: (gettext)msgfilter Invocation.    Pipe a PO file through a filter.
+ * msgfmt: (gettext)msgfmt Invocation.          Make MO files out of PO files.
+ * msggrep: (gettext)msggrep Invocation.        Select part of a PO file.
+ * msginit: (gettext)msginit Invocation.        Create a fresh PO file.
+ * msgmerge: (gettext)msgmerge Invocation.      Update a PO file from template.
+ * msgunfmt: (gettext)msgunfmt Invocation.      Uncompile MO file into PO file.
+ * msguniq: (gettext)msguniq Invocation.        Unify duplicates for PO file.
+ * ngettext: (gettext)ngettext Invocation.      Translate a message with plural.
+ * xgettext: (gettext)xgettext Invocation.      Extract strings into a PO file.
+ 
+ Software libraries
+ * Annotate: (annotate).         High-level GDB to GUI's.
+ * Bfd: (bfd).                   The Binary File Descriptor library.
+ * Gdb-Internals: (gdbint).      The GNU debugger's internals.
+ * GDB library: (libgdb).        Application programming interface to GDB.
+ * GDBM: (gdbm).                 Hashed databases.
+ * GDK: (gdk).                   General drawing kit.
+ * GTK: (gtk).                   GIMP toolkit.
+ * History: (history).           Recall previous lines of input.
+ * Ld internals: (ldint).        GNU linker internals.
+ * Libc: (libc).                 C library.
+ * Mmalloc: (mmalloc).           The GNU mapped-malloc package.
+ * Stabs: (stabs).               The "stabs" debugging information format.
+ * Readline: (readline).         General command-line interface.
+ * Termcap: (termcap).           All about /etc/termcap.
+ 
+ C++ libraries
+ * Iostream: (iostream).         C++ input/output.
+ * autosprintf: (autosprintf).   Support for printf format strings in C++.
+ 
+ GNU organization
+ * Maintain: (maintain).         GNU maintainer guidelines.
+ * Maintaining Findutils: (find-maint).        Maintaining GNU findutils.
+ * Standards: (standards).       GNU coding standards.
+ 
+ GNU music project
+ * LilyPond: (lilypond).                        The GNU music typesetter.
+ * LilyPond internals: (lilypond-internals).    LilyPond internals.
+ * ly2dvi: (lilypond)Invoking ly2dvi::          Titling LilyPond scores.
+ * convert-ly: (lilypond)Invoking convert-ly::  Older LilyPond versions.
+ * midi2ly: (lilypond)Invoking midi2ly::        Importing MIDI.
+ * etf2ly: (lilypond)Invoking etf2ly::          Importing Finale.
+ * abc2ly: (lilypond)Invoking abc2ly::          Importing ABC.
+ * pmx2ly: (lilypond)Invoking pmx2ly::          Importing PMX.
+ * musedata2ly: (lilypond)Invoking musedata2ly::Importing Musedata.
+ * mup2ly: (lilypond)Invoking mup2ly::          Importing MUP.
+ 
+ TeX
+ * Afm2tfm: (dvips)Invoking afm2tfm.  Making Type 1 fonts available to TeX.
+ * Dvips: (dvips).               DVI-to-PostScript translator.
+ * DVI-to-PNG: (dvipng).         DVI to Portable Network Graphics (PNG).
+ * Eplain: (eplain).             Expanding on plain TeX.
+ * Kpathsearch: (kpathsea).      File lookup along search paths.
+ * LaTeX: (latex2e).             LaTeX2e.
+ * MakeIndex: (makeindex).       Index creation for TeX.
+ * Naming TeX fonts: (fontname). Filenames for TeX fonts.
+ * TDS: (tds).                   Standard TeX directory structure.
+ * TeXDraw: (texdraw).           Drawing PostScript diagrams within TeX.
+ * Web2c: (web2c).               TeX, Metafont, and their companion programs.
+ 
+ DOS
+ * GNUish: (gnuish).             GNU utilities for DOS.
+ * Mtools: (mtools).             Access DOS disks from Unix.
+ 
+ Science
+ * R FAQ: (R-FAQ).               The R statistical language FAQ.
+ 
+ Other things
+ * Jargon: (jargon).             The jargon file.
+ * Netpbm: (netpbm).             Images/graphics manipulation programs.
+ * JED: (jed).                   JED editor documentation.
+ * Octave: (octave).             Octave - A language for numerical computation.
+ * PRCS: (prcs).                 Project revision control system.
+ * Screen: (screen).             Terminal multiplexer.
+ 
+ Individual utilities
+ * aclocal: (automake)Invoking aclocal.          Generating aclocal.m4.
+ * addr2line: (binutils)addr2line. Convert addresses to file and line.
+ * ar: (binutils)ar.             Create, modify, and extract from archives.
+ * at-pr: (gnats)at-pr.                          Bug report timely reminders.
+ * autoconf: (autoconf)autoconf Invocation. How to create configuration scripts.
+ * autoheader: (autoconf)autoheader Invocation. How to create configuration templates
+ * autom4te: (autoconf)autom4te Invocation. The Autoconf executables backbone.
+ * automake: (automake)Invoking Automake.        Generating Makefile.in.
+ * autoreconf: (autoconf)autoreconf Invocation. Remaking multiple `configure' scripts
+ * autoscan: (autoconf)autoscan Invocation.     Semi-automatic `configure.ac' writing
+ * autoupdate: (autoconf)autoupdate Invocation. Automatic update of `configure.ac'
+ * awk: (gawk)Invoking gawk.                     Text scanning and processing.
+ * base64: (coreutils)base64 invocation.         Base64 encode/decode data.
+ * basename: (coreutils)basename invocation.     Strip directory and suffix.
+ * bibtex: (web2c)BibTeX invocation.             Maintaining bibliographies.
+ * c++filt: (binutils)c++filt.	Filter to demangle encoded C++ symbols.
+ * cat: (coreutils)cat invocation.               Concatenate and write files.
+ * chgrp: (coreutils)chgrp invocation.           Change file groups.
+ * chmod: (coreutils)chmod invocation.           Change file permissions.
+ * chown: (coreutils)chown invocation.           Change file owners/groups.
+ * chroot: (coreutils)chroot invocation.         Specify the root directory.
+ * cksum: (coreutils)cksum invocation.           Print POSIX CRC checksum.
+ * cmp: (diff)Invoking cmp.                      Compare 2 files byte by byte.
+ * comm: (coreutils)comm invocation.             Compare sorted files by line.
+ * comsatd: (mailutils)comsatd.                  Comsat daemon.
+ * config.status: (autoconf)config.status Invocation. Recreating configurations.
+ * configure: (autoconf)configure Invocation.    Configuring a package.
+ * cp: (coreutils)cp invocation.                 Copy files.
+ * csplit: (coreutils)csplit invocation.         Split by context.
+ * cut: (coreutils)cut invocation.               Print selected parts of lines.
+ * cvs: (cvs)CVS commands.       Concurrent Versions System
+ * cvsclient: (cvsclient).      The CVS client/server protocol.
+ * cxxfilt: (binutils)c++filt.   MS-DOS name for c++filt.
+ * date: (coreutils)date invocation.             Print/set system date and time.
+ * dd: (coreutils)dd invocation.                 Copy and convert a file.
+ * df: (coreutils)df invocation.                 Report file system disk usage.
+ * diff3: (diff)Invoking diff3.                  Compare 3 files line by line.
+ * diff: (diff)Invoking diff.                    Compare 2 files line by line.
+ * dir: (coreutils)dir invocation.               List directories briefly.
+ * dircolors: (coreutils)dircolors invocation.   Color setup for ls.
+ * dirname: (coreutils)dirname invocation.       Strip non-directory suffix.
+ * dlltool: (binutils)dlltool.	Create files needed to build and use DLLs.
+ * dmp: (web2c)Dmp invocation.                   Troff->MPX (MetaPost pictures).
+ * du: (coreutils)du invocation.                 Report on disk usage.
+ * dvicopy: (web2c)DVIcopy invocation.           Virtual font expansion
+ * dvipng: (dvipng)Invoking dvipng.              A DVI-to-PNG translator.
+ * dvitomp: (web2c)DVItoMP invocation.           DVI to MPX (MetaPost pictures).
+ * dvitype: (web2c)DVItype invocation.           DVI to human-readable text.
+ * echo: (coreutils)echo invocation.             Print a line of text.
+ * edit-pr: (gnats)Invoking edit-pr.             Changing bugs.
+ * egrep: (grep)Invoking.                        grep -E.
+ * env: (coreutils)env invocation.               Modify the environment.
+ * expand: (coreutils)expand invocation.         Convert tabs to spaces.
+ * expr: (coreutils)expr invocation.             Evaluate expressions.
+ * factor: (coreutils)factor invocation.         Print prime factors
+ * false: (coreutils)false invocation.           Do nothing, unsuccessfully.
+ * fgrep: (fgrep)Invoking.                       grep -F.
+ * fid: (id-utils)fid invocation.        	Listing a file's tokens.
+ * file-pr: (gnats)file-pr.                      Processing incoming traffic.
+ * find: (find)Invoking find.                    Finding and acting on files.
+ * fmt: (coreutils)fmt invocation.               Reformat paragraph text.
+ * fnid: (id-utils)fnid invocation.      	Looking up file names.
+ * fold: (coreutils)fold invocation.             Wrap long input lines.
+ * frm: (mailutils)frm.                          List headers from a mailbox.
+ * ftp: (inetutils)ftp invocation.               File Transfer Protocol.
+ * ftpd: (inetutils)ftpd invocation.             FTP Daemon.
+ * gcal2txt: (gcal)Invoking gcal2txt.            Calendar resource to text file.
+ * gftodvi: (web2c)GFtoDVI invocation.           Generic font proofsheets.
+ * gftopk: (web2c)GFtoPK invocation.             Generic to packed fonts.
+ * gftype: (web2c)GFtype invocation.             GF to human-readable text.
+ * git: (git).                                   GNU interactive tools.
+ * groups: (coreutils)groups invocation.         Print group names a user is in.
+ * guimb: (mailutils)guimb.                      Mailbox processing language.
+ * gunzip: (gzip)Overview.                       Decompression.
+ * gzexe: (gzip)Overview.			Compress executables.
+ * head: (coreutils)head invocation.             Output the first part of files.
+ * hostid: (coreutils)hostid invocation.         Print numeric host identifier.
+ * hostname: (coreutils)hostname invocation.     Print or set system name.
+ * id: (coreutils)id invocation.                 Print user identity.
+ * ifnames: (autoconf)ifnames Invocation.        Listing conditionals in source.
+ * imap4d: (mailutils)imap4d.                    IMAP4 daemon.
+ * inetd: (inetutils)inetd invocation.           Internet super-server.
+ * inimf: (web2c)inimf invocation.               Initial Metafont.
+ * inimp: (web2c)inimp invocation.               Initial MetaPost.
+ * initex: (web2c)initex invocation.             Initial TeX.
+ * install: (coreutils)install invocation.       Copy and change attributes.
+ * join: (coreutils)join invocation.             Join lines on a common field.
+ * kill: (coreutils)kill invocation.             Send a signal to processes.
+ * kpsewhich: (kpathsea)Invoking kpsewhich.      TeX file searching.
+ * libtoolize: (libtool)Invoking libtoolize.     Adding libtool support.
+ * lid: (id-utils)lid invocation.        	Matching words and patterns.
+ * link: (coreutils)link invocation.             Make hard links between files.
+ * ln: (coreutils)ln invocation.                 Make links between files.
+ * locate: (find)Invoking locate.                Finding files in a database.
+ * logger: (inetutils)logger invocation.         Logger.
+ * logname: (coreutils)logname invocation.       Print current login name.
+ * ls: (coreutils)ls invocation.                 List directory contents.
+ * mail-files: (sharutils)mail-files invocation. Send files to remote site.
+ * mail.local: (mailutils)mail.local.            Deliver mail to local mailbox.
+ * mail: (mailutils)mail.                        Send and receive mail.
+ * mailshar: (sharutils)mailshar invocation.     Make and send a shell archive.
+ * makempx: (web2c)MakeMPX invocation.           MetaPost label typesetting.
+ * maketexmf: (kpathsea)MakeTeX scripts.         MF source generation.
+ * maketexpk: (kpathsea)MakeTeX scripts.         PK bitmap generation.
+ * maketextex: (kpathsea)MakeTeX scripts.        TeX source generation.
+ * maketextfm: (kpathsea)MakeTeX scripts.        TeX font metric generation.
+ * md5sum: (coreutils)md5sum invocation.         Print or check MD5 digests.
+ * mdiff: (wdiff)mdiff invocation.               Line cluster finder.
+ * messages: (mailutils)messages.                Count messages in mailbox.
+ * mf: (web2c)mf invocation.                     Creating typeface families.
+ * mft: (web2c)MFT invocation.                   Prettyprinting Metafont source.
+ * mgetty: (mgetty).                             Faxes, voicemail and more.
+ * mkdir: (coreutils)mkdir invocation.           Create directories.
+ * mkfifo: (coreutils)mkfifo invocation.         Create FIFOs (named pipes).
+ * mkid: (id-utils)mkid invocation.      	Creating an ID database.
+ * mknod: (coreutils)mknod invocation.           Create special files.
+ * mp: (web2c)mp invocation.                     Creating technical diagrams.
+ * mpto: (web2c)MPto invocation.                 MetaPost label extraction.
+ * mv: (coreutils)mv invocation.                 Rename files.
+ * networking(inet) utilities: (inetutils).      GNU networking utilities.
+ * newer: (web2c)Newer invocation.               Compare modification times.
+ * nice: (coreutils)nice invocation.             Modify niceness.
+ * nl: (coreutils)nl invocation.                 Number lines and write files.
+ * nlmconv: (binutils)nlmconv.   Converts object code into an NLM.
+ * nm: (binutils)nm.             List symbols from object files.
+ * nohup: (coreutils)nohup invocation.           Immunize to hangups.
+ * objcopy: (binutils)objcopy.	Copy and translate object files.
+ * objdump: (binutils)objdump.   Display information from object files.
+ * od: (coreutils)od invocation.                 Dump files in octal, etc.
+ * paste: (coreutils)paste invocation.           Merge lines of files.
+ * patch: (diff)Invoking patch.                  Apply a patch to a file.
+ * patgen: (web2c)Patgen invocation.             Creating hyphenation patterns.
+ * pathchk: (coreutils)pathchk invocation.       Check file name portability.
+ * ping: (inetutils)ping invocation.             Packets to network hosts.
+ * pktogf: (web2c)PKtoGF invocation.             Packed to generic fonts.
+ * pktype: (web2c)PKtype invocation.             PK to human-readable text.
+ * pltotf: (web2c)PLtoTF invocation.             Property list to TFM.
+ * pooltype: (web2c)Pooltype invocation.         Display WEB pool files.
+ * pop3d: (mailutils)pop3d.                      POP3 daemon.
+ * pr-addr: (gnats)pr-addr.                      Bug report address retrieval.
+ * pr-edit: (gnats)pr-edit.                      The edit-pr driver.
+ * pr: (coreutils)pr invocation.                 Paginate or columnate files.
+ * printenv: (coreutils)printenv invocation.     Print environment variables.
+ * printf: (coreutils)printf invocation.         Format and print data.
+ * ptx: (coreutils)ptx invocation.               Produce permuted indexes.
+ * pwd: (coreutils)pwd invocation.               Print working directory.
+ * query-pr: (gnats)Invoking query-pr.           Bug searching/reporting.
+ * queue-pr: (gnats)queue-pr.                    Handling incoming traffic.
+ * ranlib: (binutils)ranlib.     Generate index to archive contents.
+ * rcp: (inetutils)rcp invocation.               Strip non-directory suffix.
+ * readelf: (binutils)readelf.	Display the contents of ELF format files.
+ * readlink: (coreutils)readlink invocation.     Print referent of a symlink.
+ * readmsg: (mailutils)readmsg.                  Extract messages from a folder.
+ * rexecd: (inetutils)rexecd invocation.         Remote execution server.
+ * rlogin: (inetutils)rlogin invocation.         Remote login.
+ * rlogind: (inetutils)rlogind invocation.       Remote login server.
+ * rm: (coreutils)rm invocation.                 Remove files.
+ * rmdir: (coreutils)rmdir invocation.           Remove empty directories.
+ * rsh: (inetutils)rsh invocation.               Remote shell.
+ * rshd: (inetutils)rshd invocation.             Remote shell server.
+ * sdiff: (diff)Invoking sdiff.                  Merge 2 files side-by-side.
+ * send-pr: (gnats)Invoking send-pr.             Submitting bugs.
+ * seq: (coreutils)seq invocation.               Print numeric sequences
+ * sha1sum: (coreutils)sha1sum invocation.       Print or check SHA-1 digests.
+ * sha2: (coreutils)sha2 utilities.              Print or check SHA-2 digests.
+ * shar: (sharutils)shar invocation.             Make a shell archive.
+ * shred: (coreutils)shred invocation.           Remove files more securely.
+ * shuf: (coreutils)shuf invocation.             Shuffling text files.
+ * sieve: (mailutils)sieve.                      Mail filtering utility.
+ * size: (binutils)size.         List section sizes and total size.
+ * sleep: (coreutils)sleep invocation.           Delay for a specified time.
+ * sort: (coreutils)sort invocation.             Sort text files.
+ * split: (coreutils)split invocation.           Split into fixed-size pieces.
+ * stat: (coreutils)stat invocation.             Report file(system) status.
+ * strings: (binutils)strings.   List printable strings from files.
+ * strip: (binutils)strip.       Discard symbols.
+ * stty: (coreutils)stty invocation.             Print/change terminal settings.
+ * su: (coreutils)su invocation.                 Modify user and group ID.
+ * sum: (coreutils)sum invocation.               Print traditional checksum.
+ * sync: (coreutils)sync invocation.             Synchronize memory and disk.
+ * syslogd: (inetutils)syslogd invocation.       Syslog server.
+ * tabs: (tput)Invoking tabs.                    Tab settings.
+ * tac: (coreutils)tac invocation.               Reverse files.
+ * tail: (coreutils)tail invocation.             Output the last part of files.
+ * talk: (inetutils)talk invocation.             Talk client.
+ * talkd: (inetutils)talkd invocation.           Talk server.
+ * tangle: (web2c)Tangle invocation.             WEB to Pascal.
+ * tar: (tar)tar invocation.                     Invoking GNU `tar'.
+ * tcal: (gcal)Invoking tcal.                    Run Gcal with tomorrow's date.
+ * tee: (coreutils)tee invocation.               Redirect to multiple files.
+ * test: (coreutils)test invocation.             File/string tests.
+ * testsuite: (autoconf)testsuite Invocation.    Running an Autotest test suite.
+ * tex: (web2c)tex invocation.                   Typesetting.
+ * tftopl: (web2c)TFtoPL invocation.             TFM -> property list.
+ * tftp: (inetutils)tftp invocation.             Trivial FTP.
+ * touch: (coreutils)touch invocation.           Change file timestamps.
+ * tput: (tput)Invoking tput.                    Termcap in shell scripts.
+ * tr: (coreutils)tr invocation.                 Translate characters.
+ * true: (coreutils)true invocation.             Do nothing, successfully.
+ * tsort: (coreutils)tsort invocation.           Topological sort.
+ * tty: (coreutils)tty invocation.               Print terminal name.
+ * txt2gcal: (gcal)Invoking txt2gcal.            Calendar text to resource file.
+ * umb-scheme: (umb-scheme).                     UMB Scheme Interpreter.
+ * uname: (coreutils)uname invocation.           Print system information.
+ * unexpand: (coreutils)unexpand invocation.     Convert spaces to tabs.
+ * unify: (wdiff)unify invocation.               Diff format converter.
+ * uniq: (coreutils)uniq invocation.             Uniquify files.
+ * unlink: (coreutils)unlink invocation.         Removal via unlink(2).
+ * unshar: (sharutils)unshar invocation.         Explode a shell archive.
+ * updatedb: (find)Invoking updatedb.            Building the locate database.
+ * users: (coreutils)users invocation.           Print current user names.
+ * uudecode: (sharutils)uudecode invocation.     Restore file from 7-bits.
+ * uuencode: (sharutils)uuencode invocation.     Force binary file to 7-bits.
+ * vdir: (coreutils)vdir invocation.             List directories verbosely.
+ * vftovp: (web2c)VFtoVP invocation.             Virtual font -> virtual pl.
+ * view-pr: (gnats)Invoking view-pr.             Showing bug reports.
+ * virmf: (web2c)virmf invocation.               Virgin Metafont.
+ * virmp: (web2c)virmp invocation.               Virgin MetaPost.
+ * virtex: (web2c)virtex invocation.             Virgin TeX.
+ * vptovf: (web2c)VPtoVF invocation.             Virtual pl -> virtual font.
+ * wc: (coreutils)wc invocation.                 Line, word, and byte counts.
+ * weave: (web2c)Weave invocation.               WEB to TeX.
+ * who: (coreutils)who invocation.               Print who is logged in.
+ * whoami: (coreutils)whoami invocation.         Print effective user ID.
+ * windmc: (binutils)windmc.	Generator for Windows message resources.
+ * windres: (binutils)windres.	Manipulate Windows resources.
+ * xargs: (find)Invoking xargs.                  Operating on many files.
+ * xtokid: (id-utils)xtokid invocation.  	Testing mkid scanners.
+ * yes: (coreutils)yes invocation.               Print a string indefinitely.
+ * zcat: (gzip)Overview.                         Decompression to stdout.
+ * zdiff: (gzip)Overview.                        Compare compressed files.
+ * zforce: (gzip)Overview.                       Force .gz extension on files.
+ * zgrep: (gzip)Overview.                        Search compressed files.
+ * zmore: (gzip)Overview.                        Decompression output by pages.
+ * zsh: (zsh).                                   An enhanced Bourne shell.
diff -Nrc2 texinfo-4.12/util/dvipdf.test texinfo-4.13/util/dvipdf.test
*** texinfo-4.12/util/dvipdf.test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/dvipdf.test	Tue Dec 25 15:57:24 2007
***************
*** 0 ****
--- 1,66 ----
+ #! /bin/sh
+ # Copyright (C) 2006, 2007  Free Software Foundation, Inc.
+ #
+ # This file is part of GNU Texinfo.
+ #
+ # GNU Texinfo 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 3 of the License,
+ # or (at your option) any later version.
+ #
+ # GNU Texinfo 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, see <http://www.gnu.org/licenses/>.
+ 
+ required='tex'
+ 
+ . ./defs || exit 1
+ 
+ set -e
+ 
+ # one_run ARGS -- FILES
+ # ---------------------
+ # Run texi2dvi with ARGS, expect the FILES to be left.  Remove them.
+ one_run ()
+ {
+   # Use pstricks.
+   cat >input.tex <<EOF
+ \documentclass[a4paper]{article}
+ \usepackage{pst-node}
+ \pagestyle{empty}
+ \begin{document}
+ \begin{psmatrix}
+   A & B & C & D & E & F
+ \end{psmatrix}
+ \psset{arrows=->}
+ \nccircle{1,1}{0.5}
+ \nccircle[angleA=30]{1,2}{0.4}
+ \nccircle[arrows=-,nodesep=0.05]{1,3}{0.2}
+ \ncloop[angleB=180]{1,4}{1,4}
+ \ncloop[angleB=180,linearc=0.35,nodesep=0.1]{1,5}{1,5}
+ \ncloop[angleB=180,linearc=0.15,loopsize=0.4]{1,6}{1,6}
+ 
+ \vspace{1cm}
+ \begin{psmatrix}
+   A & B & C & D
+ \end{psmatrix}
+ \psset{arrows=->,nodesep=0.05}
+ \ncangles[armA=0.8,armB=0,angleA=70,angleB=110,linearc=0.22]{1,1}{1,1}
+ \ncdiag[arm=0.9,angleA=70,angleB=110,linearc=0.3]{1,2}{1,2}
+ \ncdiag[arm=0.8,angleA=50,angleB=130,linearc=0.25]{1,3}{1,3}
+ \ncdiag[arm=0.8,angleA=50,angleB=130,linearc=0.28]{1,4}{1,4}
+ \end{document}
+ EOF
+ 
+   TEXI2DVI_pass $(optionset_get 1 "$@") input.tex
+   # There should only be the expected and input files.
+   assert_and_remove_files $(optionset_get 2 "$@") input.tex
+ }
+ 
+ one_run --dvipdf --batch --clean \
+    -- \
+    input.pdf
diff -Nrc2 texinfo-4.12/util/fix-info-dir texinfo-4.13/util/fix-info-dir
*** texinfo-4.12/util/fix-info-dir	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/fix-info-dir	Sat Feb  1 06:18:59 2003
***************
*** 0 ****
--- 1,317 ----
+ #!/bin/sh
+ #fix-info-dir (GNU texinfo)
+ VERSION=1.1
+ #Copyright (C) 1998, 2003 Free Software Foundation, Inc.
+ #fix-info-dir comes with NO WARRANTY, to the extent permitted by law.
+ #You may redistribute copies of fix-info-dir
+ #under the terms of the GNU General Public License.
+ #For more information about these matters, see the files named COPYING."
+ #fix-info-dir was derived from update-info and gen-dir-node
+ # The skeleton file contains info topic names in the
+ # order they should appear in the output.  There are three special
+ # lines that alter the behavior: a line consisting of just "--" causes
+ # the next line to be echoed verbatim to the output.  A line
+ # containing just "%%" causes all the remaining filenames (wildcards
+ # allowed) in the rest of the file to be ignored.  A line containing
+ # just "!!" exits the script when reached (unless preceded by a line
+ # containing just "--").
+ #Author: Richard L. Hawes, rhawes@dmapub.dma.org.
+ 
+ # ###SECTION 1### Constants
+ set -h 2>/dev/null
+ # ENVIRONMENT
+ if test -z "$TMPDIR"; then
+ 	TMPDIR="/usr/tmp"
+ fi
+ if test -z "$LINENO"; then
+ 	LINENO="0"
+ fi
+ 
+ MENU_BEGIN='^\*\([ 	]\)\{1,\}Menu:'
+ MENU_ITEM='^\* ([^ 	]).*:([ 	])+\('
+ MENU_FILTER1='s/^\*\([ 	]\)\{1,\}/* /'
+ MENU_FILTER2='s/\([ 	]\)\{1,\}$//g'
+ 
+ TMP_FILE1="${TMPDIR}/fx${$}.info"
+ TMP_FILE2="${TMPDIR}/fy${$}.info"
+ TMP_FILE_LIST="$TMP_FILE1 $TMP_FILE2"
+ 
+ TRY_HELP_MSG="Try --help for more information"
+ 
+ # ###SECTION 100### main program
+ #variables set by options
+ CREATE_NODE=""
+ DEBUG=":"
+ MODE=""
+ #
+ Total="0"
+ Changed=""
+ 
+ while test "$*"; do
+ 	case "$1" in
+ 		-c|--create)    CREATE_NODE="y";;
+ 		--debug)	set -eux; DEBUG="set>&2";;
+ 		-d|--delete)	MODE="Detect_Invalid";;
+ 		+d);;
+ 		--version)
+ cat<<VersionEOF
+ fix-info-dir (GNU Texinfo) $VERSION
+ Copyright (C) 1998 Free Software Foundation, Inc.
+ fix-info-dir comes with NO WARRANTY, to the extent permitted by law.
+ You may redistribute copies of fix-info-dir
+ under the terms of the GNU General Public License.
+ For more information about these matters, see the files named COPYING.
+ Author: Richard L. Hawes
+ VersionEOF
+ 		exit;;
+ 
+ 		--help)
+ cat<<HelpEndOfFile
+ Usage:	fix-info-dir  [OPTION]... [INFO_DIR/[DIR_FILE]] [SKELETON]
+ 
+ It detects and inserts missing menu items into the info dir file.
+ The info dir must be the current directory.
+ 
+ Options:
+ -c,	--create	create a new info node
+ -d,	--delete	delete invalid menu items (ignore missing menu items)
+ 	--debug		print debug information to standard error path
+ 	--help		print this help message and exit
+ 	--version	print current version and exit
+ Backup of the info node has a '.old' suffix added.  This is a shell script.
+ Environment Variables: TMPDIR
+ Email bug reports to bug-texinfo@gnu.org.
+ HelpEndOfFile
+ 		exit;;
+ 
+ 		[-+]*)	echo "$0:$LINENO: \"$1\" is not a valid option">&2
+ 			echo "$TRY_HELP_MSG">&2
+ 			exit 2;;
+ 		*) break;;
+ 	esac
+ 	shift
+ done
+ 
+ ORIGINAL_DIR=`pwd`
+ 
+ if test "$#" -gt "0"; then
+ 	INFO_DIR="$1"
+ 	shift
+ else
+ 	INFO_DIR=$DEFAULT_INFO_DIR
+ fi
+ 
+ if test ! -d "${INFO_DIR}"; then
+ 	DIR_FILE=`basename ${INFO_DIR}`;
+ 	INFO_DIR=`dirname ${INFO_DIR}`;
+ else
+ 	DIR_FILE="dir"
+ fi
+ 
+ cd "$INFO_DIR"||exit
+ 
+ 
+ if test "$CREATE_NODE"; then
+ 	if test "$#" -gt "0"; then
+ 		if test `expr $1 : /` = '1'; then
+ 			SKELETON="$1"
+ 		else
+ 			SKELETON="$ORIGINAL_DIR/$1"
+ 		fi
+ 		if test ! -r "$SKELETON" && test -f "$SKELETON"; then
+ 			echo "$0:$LINENO: $SKELETON is not readable">&2
+ 			exit 2
+ 		fi
+ 		shift
+ 	else
+ 		SKELETON=/dev/null
+ 
+ 	fi
+ else
+ 	if test ! -f "$DIR_FILE"; then
+ 		echo "$0:$LINENO: $DIR_FILE is irregular or nonexistant">&2
+ 		exit 2
+ 	elif test ! -r "$DIR_FILE"; then
+ 		echo "$0:$LINENO: $DIR_FILE is not readable">&2
+ 		exit 2
+ 	elif test ! -w "$DIR_FILE"; then
+ 		echo "$0:$LINENO: $DIR_FILE is not writeable">&2
+ 		exit 2
+ 	fi
+ fi
+ 
+ if test "$#" -gt "0"; then
+ 	echo "$0:$LINENO: Too many parameters">&2
+ 	echo "$TRY_HELP_MSG">&2
+ 	exit 2
+ fi
+ 
+ if test -f "$DIR_FILE"; then
+ 	cp "$DIR_FILE" "$DIR_FILE.old"
+ 	echo "Backed up $DIR_FILE to $DIR_FILE.old."
+ fi
+ 
+ if test "$CREATE_NODE"; then
+ 	if test "$MODE"; then
+ 		echo "$0:$LINENO: ERROR: Illogical option combination: -d -c">&2
+ 		echo "$TRY_HELP_MSG">&2
+ 		exit 2
+ 	fi
+ 	echo "Creating new Info Node: `pwd`/$DIR_FILE"
+ 	Changed="y"
+ 
+ {
+ 
+ 	### output the dir header
+ 	echo "-*- Text -*-"
+ 	echo "This file was generated automatically by $0."
+ 	echo "This version was generated on `date`"
+ 	echo "by `whoami`@`hostname` for `pwd`"
+ 
+ 	cat<<DIR_FILE_END_OF_FILE
+ This is the file .../info/$DIR_FILE, which contains the topmost node of the
+ Info hierarchy.  The first time you invoke Info you start off
+ looking at that node, which is ($DIR_FILE)Top.
+ 
+ 
+ File: $DIR_FILE       Node: Top       This is the top of the INFO tree
+ 
+   This (the Directory node) gives a menu of major topics.
+   Typing "q" exits, "?" lists all Info commands, "d" returns here,
+   "h" gives a primer for first-timers,
+   "mEmacs<Return>" visits the Emacs topic, etc.
+ 
+   In Emacs, you can click mouse button 2 on a menu item or cross reference
+   to select it.
+ 
+ * Menu: The list of major topics begins on the next line.
+ 
+ DIR_FILE_END_OF_FILE
+ 
+ ### go through the list of files in the skeleton.  If an info file
+ ### exists, grab the ENTRY information from it.  If an entry exists
+ ### use it, otherwise create a minimal $DIR_FILE entry.
+ 
+ 	# Read one line from the file.  This is so that we can echo lines with
+ 	# whitespace and quoted characters in them.
+ 	while read fileline; do
+ 		# flag fancy features
+ 		if test ! -z "$echoline"; then        # echo line
+ 			echo "$fileline"
+ 			echoline=""
+ 			continue
+ 		elif test "${fileline}" = "--"; then
+ 			# echo the next line
+ 			echoline="1"
+ 			continue
+ 		elif test "${fileline}" = "%%"; then
+ 			# skip remaining files listed in skeleton file
+ 			skip="1"
+ 			continue
+ 		elif test "${fileline}" = "!!"; then
+ 			# quit now
+ 			break
+ 		fi
+ 
+ 		# handle files if they exist
+ 		for file in $fileline""; do
+ 			fname=
+ 			if test -z "$file"; then
+ 				break
+ 			fi
+ 			# Find the file to operate upon.
+ 			if test -r "$file"; then
+ 				fname="$file"
+ 			elif test -r "${file}.info"; then
+ 				fname="${file}.info"
+ 			elif test -r "${file}.gz"; then
+ 				fname="${file}.gz"
+ 			elif test -r "${file}.info.gz"; then
+ 				fname="${file}.info.gz"
+ 			else
+ 				echo "$0:$LINENO: can't find info file for ${file}?">&2
+ 				continue
+ 			fi
+ 
+ 			# if we found something and aren't skipping, do the entry
+ 			if test "$skip"; then
+ 				continue
+ 			fi
+ 
+ 			infoname=`echo $file|sed -e 's/.info$//'`
+ 			entry=`zcat -f $fname|\
+ 			sed -e '1,/START-INFO-DIR-ENTRY/d'\
+ 			-e '/END-INFO-DIR-ENTRY/,$d'`
+ 			if [ ! -z "${entry}" ]; then
+ 				echo "${entry}"
+ 			else
+ 				echo "* ${infoname}: (${infoname})."
+ 			fi
+ 			Total=`expr "$Total" + "1"`
+ 		done
+ 	done
+ }>$DIR_FILE<$SKELETON
+ fi
+ 
+ trap ' eval "$DEBUG"; rm -f $TMP_FILE_LIST; exit ' 0
+ trap ' rm -f $TMP_FILE_LIST
+ 	exit ' 1
+ trap ' rm -f $TMP_FILE_LIST
+ 	echo "$0:$LINENO: received INT signal.">&2
+ 	exit ' 2
+ trap ' rm -f $TMP_FILE_LIST
+ 	echo "$0:$LINENO: received QUIT signal.">&2
+ 	exit ' 3
+ 
+ sed -e "1,/$MENU_BEGIN/d" -e "$MENU_FILTER1" -e "$MENU_FILTER2"<$DIR_FILE\
+ |sed -n -e '/\* /{
+ s/).*$//g
+ s/\.gz$//
+ s/\.info$//
+ s/^.*(//p
+ }'|sort -u>$TMP_FILE1
+ ls -F|sed -e '/\/$/d' -e '/[-.][0-9]/d'\
+ 	-e "/^$DIR_FILE\$/d" -e "/^$DIR_FILE.old\$/d"\
+ 	-e 's/[*@]$//' -e 's/\.gz$//' -e 's/\.info$//'|sort>$TMP_FILE2
+ 
+ if test -z "$MODE"; then
+ 	#Detect Missing
+ 	DONE_MSG="total menu item(s) were inserted into `pwd`/$DIR_FILE"
+ 	for Info_Name in `comm -13 $TMP_FILE1 $TMP_FILE2`; do
+ 		if test -r "$Info_Name"; then
+ 			Info_File="$Info_Name"
+ 		elif test -r "${Info_Name}.info"; then
+ 			Info_File="${Info_Name}.info"
+ 		elif test -r "${Info_Name}.gz"; then
+ 			Info_File="${Info_Name}.gz"
+ 		elif test -r "${Info_Name}.info.gz"; then
+ 			Info_File="${Info_Name}.info.gz"
+ 		else
+ 			echo "$0:$LINENO: can't find info file for ${Info_Name}?">&2
+ 			continue
+ 		fi
+ 		Changed="y"
+ 		if install-info $Info_File $DIR_FILE; then
+ 			Total=`expr "$Total" + "1"`
+ 		fi
+ 	done
+ else
+ 	# Detect Invalid
+ 	DONE_MSG="total invalid menu item(s) were removed from `pwd`/$DIR_FILE"
+ 	for Info_Name in `comm -23 $TMP_FILE1 $TMP_FILE2`; do
+ 		Changed="y"
+ 		if install-info --remove $Info_Name $DIR_FILE; then
+ 			Total=`expr "$Total" + "1"`
+ 		fi
+ 	done
+ fi
+ 
+ # print summary
+ if test "$Changed"; then
+ 	echo "$Total $DONE_MSG"
+ else
+ 	echo "Nothing to do"
+ fi
+ rm -f $TMP_FILE_LIST
+ eval "$DEBUG"
+ exit 0
diff -Nrc2 texinfo-4.12/util/fixfonts texinfo-4.13/util/fixfonts
*** texinfo-4.12/util/fixfonts	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/fixfonts	Sun Aug 25 16:38:39 2002
***************
*** 0 ****
--- 1,84 ----
+ #!/bin/sh
+ # Make links named `lcircle10' for all TFM and GF/PK files, if no
+ # lcircle10 files already exist.
+ 
+ # Don't override definition of prefix and/or libdir if they are
+ # already defined in the environment. 
+ if test "z${prefix}" = "z" ; then
+   prefix=/usr/local
+ else
+   # prefix may contain references to other variables, thanks to make.
+   eval prefix=\""${prefix}"\"
+ fi
+ 
+ if test "z${libdir}" = "z" ; then
+   libdir="${prefix}/lib/tex"
+ else
+   # libdir may contain references to other variables, thanks to make.
+   eval libdir=\""${libdir}"\"
+ fi
+ 
+ texlibdir="${libdir}"
+ texfontdir="${texlibdir}/fonts"
+ 
+ # Directories for the different font formats, in case they're not all
+ # stored in one place.
+ textfmdir="${textfmdir-${texfontdir}}"
+ texpkdir="${texpkdir-${texfontdir}}"
+ texgfdir="${texgfdir-${texfontdir}}"
+ 
+ test "z${TMPDIR}" = "z" && TMPDIR="/tmp"
+ 
+ tempfile="${TMPDIR}/circ$$"
+ tempfile2="${TMPDIR}/circ2$$"
+ 
+ # EXIT SIGHUP SIGINT SIGQUIT SIGTERM
+ #trap 'rm -f "${tempfile}" "${tempfile2}"' 0 1 2 3 15
+ 
+ # Find all the fonts with names that include `circle'.
+ (cd "${texfontdir}"; find . -name '*circle*' -print > "${tempfile}")
+ 
+ # If they have lcircle10.tfm, assume everything is there, and quit.
+ if grep 'lcircle10\.tfm' "${tempfile}" > /dev/null 2>&1 ; then
+   echo "Found lcircle10.tfm."
+   exit 0
+ fi
+ 
+ # No TFM file for lcircle.  Make a link to circle10.tfm if it exists,
+ # and then make a link to the bitmap files.
+ grep 'circle10\.tfm' "${tempfile}" > "${tempfile2}" \
+  || {
+   echo "I can't find any circle fonts in ${texfontdir}.
+ If it isn't installed somewhere else, you need to get the Metafont sources
+ from somewhere, e.g., labrea.stanford.edu:pub/tex/latex/circle10.mf, and
+ run Metafont on them."
+   exit 1
+  }
+ 
+ # We have circle10.tfm.  (If we have it more than once, take the first
+ # one.)  Make the link.
+ tempfile2_line1="`sed -ne '1p;q' \"${tempfile2}\"`"
+ ln "${tempfile2_line1}" "${textfmdir}/lcircle10.tfm"
+ echo "Linked to ${tempfile2_line1}."
+ 
+ # Now make a link for the PK files, if any.
+ (cd "${texpkdir}"
+  for f in `grep 'circle10.*pk' "${tempfile}"` ; do
+     set - `echo "$f" \
+             | sed -ne '/\//!s/^/.\//;s/\(.*\)\/\([^\/][^\/]*\)$/\1 \2/;p'`
+     ln "$f" "${1}/l${2}"
+     echo "Linked to $f."
+  done
+ )
+ 
+ # And finally for the GF files.
+ (cd "${texgfdir}"
+  for f in `grep 'circle10.*gf' "${tempfile}"` ; do
+     set - `echo "$f" \
+             | sed -ne '/\//!s/^/.\//;s/\(.*\)\/\([^\/][^\/]*\)$/\1 \2/;p'`
+     ln "$f" "${1}/l${2}"
+     echo "Linked to $f."
+  done
+ )
+ 
+ # eof
diff -Nrc2 texinfo-4.12/util/fixref.gawk texinfo-4.13/util/fixref.gawk
*** texinfo-4.12/util/fixref.gawk	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/fixref.gawk	Sun Jul  1 12:06:04 2007
***************
*** 0 ****
--- 1,143 ----
+ #! /usr/local/bin/gawk -f
+ 
+ # fixref.awk --- fix xrefs in texinfo documents
+ # Copyright 1991, 1998 Arnold David Robbins
+ 
+ # FIXREF 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 3 of the License, or
+ # (at your option) any later version.
+ # 
+ # FIXREF 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, see <http://www.gnu.org/licenses/>.
+ 
+ # Updated: Jul 21  1992	--- change unknown
+ # Updated: Jul 18  1997 --- bug fix
+ 
+ # usage:		gawk -f fixref.awk input-file > output-file
+ # or if you have #!:	fixref.awk input-file > output-file
+ 
+ # Limitations:
+ #	1. no more than one cross reference on a line
+ #	2. cross references may not cross a newline
+ 
+ BEGIN	\
+ {
+ 	# we make two passes over the file.  To do that we artificially
+ 	# tweak the argument vector to do a variable assignment
+ 
+ 	if (ARGC != 2) {
+ 		printf("usage: %s texinfo-file\n", ARGV[0]) > "/dev/stderr"
+ 		exit 1
+ 	}
+ 	ARGV[2] = "pass=2"
+ 	ARGV[3] = ARGV[1]
+ 	ARGC = 4
+ 
+ 	# examine paragraphs
+ 	RS = ""
+ 
+ 	heading = "@(chapter|appendix|unnumbered|(appendix(sec|subsec|subsubsec))|section|subsection|subsubsection|unnumberedsec|heading|top)"
+ 
+ 	pass = 1
+ 
+ 	# put space between paragraphs on output
+ 	ORS = "\n\n"
+ }
+ 
+ pass == 1 && NF == 0	{ next }
+ 
+ # pass == 1 && /@node/	\
+ # bug fix 7/18/96
+ pass == 1 && /^@node/	\
+ {
+ 	lname = name = ""
+ 	n = split($0, lines, "\n")
+ 	for (i = 1; i <= n; i++) {
+ 		if (lines[i] ~ ("^" heading)) {
+ 			sub(heading, "", lines[i])
+ 			sub(/^[ \t]*/, "", lines[i])
+ 			lname = lines[i]
+ #			printf "long name is '%s'\n", lines[i]
+ 		} else if (lines[i] ~ /@node/) {
+ 			sub(/@node[ \t]*/, "", lines[i])
+ 			sub(/[ \t]*,.*$/, "", lines[i])
+ 			name = lines[i]
+ #			printf "node name is '%s'\n", lines[i]
+ 		}
+ 	}
+ 	if (name && lname)
+ 		names[name] = lname
+ 	else if (lname)
+ 		printf("node name for %s missing!\n", lname) > "/dev/stderr"
+ 	else
+ 		printf("long name for %s missing!\n", name) > "/dev/stderr"
+ 
+ 	if (name ~ /:/)
+ 		printf("node `%s' contains a `:'\n", name) > "/dev/stderr"
+ 
+ 	if (lname) {
+ 		if (lname ~ /:/)
+ 			printf("name `%s' contains a `:'\n", lname) > "/dev/stderr"
+ 		else if (lname ~ /,/) {
+ 			printf("name `%s' contains a `,'\n", lname) > "/dev/stderr"
+ 			gsub(/,/, " ", lname)
+ 			names[name] = lname	# added 7/18/97
+ 		}
+ 	}
+ }
+ 
+ pass == 2 && /@(x|px)?ref{/	\
+ {
+ 	# split the paragraph into lines
+ 	# write them out one by one after fixing them
+ 	n = split($0, lines, "\n")
+ 	for (i = 1; i <= n; i++)
+ 		if (lines[i] ~ /@(x|px)?ref{/) {
+ 			res = updateref(lines[i])
+ 			printf "%s\n", res
+ 		} else
+ 			printf "%s\n", lines[i]
+ 
+ 	printf "\n"	# avoid ORS
+ 	next
+ }
+ 
+ function updateref(orig,	refkind, line)
+ {
+ 	line = orig	# work on a copy
+ 
+ 	# find the beginning of the reference
+ 	match(line, "@(x|px)?ref{")
+ 	refkind = substr(line, RSTART, RLENGTH)
+ 
+ 	# pull out just the node name
+ 	sub(/.*ref{/, "", line)
+ 	sub(/}.*$/, "", line)
+ 	sub(/,.*/, "", line)
+ 
+ #	debugging
+ #	printf("found ref to node '%s'\n", line) > "/dev/stderr"
+ 
+ 	# If the node name and the section name are the same
+ 	# we don't want to bother doing this.
+ 
+ 	if (! (line in names))	# sanity checking
+ 		printf("no long name for %s\n", line) > "/dev/stderr"
+ 	else if (names[line] != line && names[line] !~ /[:,]/) {
+ 		# build up new ref
+ 		newref = refkind line ", ," names[line] "}"
+ 		pat = refkind line "[^}]*}"
+ 
+ 		sub(pat, newref, orig)
+ 	}
+ 
+ 	return orig
+ }
+ 
+ pass == 2	{ print }
diff -Nrc2 texinfo-4.12/util/gdoc texinfo-4.13/util/gdoc
*** texinfo-4.12/util/gdoc	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/gdoc	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,914 ----
+ #!/usr/bin/perl
+ 
+ ## Copyright (c) 2002, 2003 Simon Josefsson                      ##
+ ##                    added -texinfo, -listfunc                  ##
+ ##                    man page revamp                            ##
+ ##                    various improvements                       ##
+ ## Copyright (c) 1998 Michael Zucchi, All Rights Reserved        ##
+ ##                    hacked to allow -tex option --nmav         ##
+ ##                                                               ##
+ ## This software falls under the GNU Public License. Please read ##
+ ##              the COPYING file for more information            ##
+ 
+ #
+ # This will read a 'c' file and scan for embedded comments in the
+ # style of gnome comments (+minor extensions - see below).
+ #
+ # This program is modified by Nikos Mavroyanopoulos, for the gnutls
+ # project.
+ 
+ # Note: This only supports 'c'.
+ 
+ # usage:
+ # gdoc [ -docbook | -html | -text | -man | -tex | -texinfo | -listfunc ]
+ #      [ -sourceversion verno ] [ -includefuncprefix ] [ -bugsto address ]
+ #      [ -seeinfo infonode ] [ -copyright notice ] [ -verbatimcopying ]
+ #      [ -function funcname [ -function funcname ...] ] c file(s)s > outputfil
+ e
+ #
+ #  Set output format using one of -docbook, -html, -text, -man, -tex,
+ #  -texinfo, or -listfunc.  Default is man.
+ #
+ #  -sourceversion
+ #       Version number for source code, e.g. '1.0.4'.  Used in 'man' headers.
+ #       Defaults to using current date.
+ #
+ #  -includefuncprefix
+ #       For man pages, generate a #include <FILE.h> based on the function
+ #       prefix.  For example, a function gss_init_sec_context will generate
+ #       an include statement of #include <gss.h>.
+ #
+ #  -bugsto address
+ #       For man pages, include a section about reporting bugs and mention
+ #       the given e-mail address, e.g 'bug-libidn@gnu.org'.
+ #
+ #  -seeinfo infonode
+ #       For man pages, include a section that point to an info manual
+ #       for more information.
+ #
+ #  -copyright notice
+ #       For man pages, include a copyright section with the given
+ #       notice after a preamble.  Use, e.g., '2002, 2003 Simon Josefsson'.
+ #
+ #  -verbatimcopying
+ #       For man pages, and when the -copyright parameter is used,
+ #       add a licensing statement that say verbatim copying is permitted.
+ #
+ #  -function funcname
+ #       If set, then only generate documentation for the given function(s).  A
+ ll
+ #       other functions are ignored.
+ #
+ #  c files - list of 'c' files to process
+ #
+ #  All output goes to stdout, with errors to stderr.
+ 
+ #
+ # format of comments.
+ # In the following table, (...)? signifies optional structure.
+ #                         (...)* signifies 0 or more structure elements
+ # /**
+ #  * function_name(:)? (- short description)?
+ # (* @parameterx: (description of parameter x)?)*
+ # (* a blank line)?
+ #  * (Description:)? (Description of function)?
+ #  * (Section header: (section description)? )*
+ #  (*)?*/
+ #
+ # So .. the trivial example would be:
+ #
+ # /**
+ #  * my_function
+ #  **/
+ #
+ # If the Description: header tag is ommitted, then there must be a blank line
+ # after the last parameter specification.
+ # e.g.
+ # /**
+ #  * my_function - does my stuff
+ #  * @my_arg: its mine damnit
+ #  *
+ #  * Does my stuff explained. 
+ #  */
+ #
+ #  or, could also use:
+ # /**
+ #  * my_function - does my stuff
+ #  * @my_arg: its mine damnit
+ #  * Description: Does my stuff explained. 
+ #  */
+ # etc.
+ #
+ # All descriptions can be multiline, apart from the short function description
+ .
+ #
+ # All descriptive text is further processed, scanning for the following specia
+ l
+ # patterns, which are highlighted appropriately.
+ #
+ # 'funcname()' - function
+ # '$ENVVAR' - environmental variable
+ # '&struct_name' - name of a structure
+ # '@parameter' - name of a parameter
+ # '%CONST' - name of a constant.
+ 
+ #
+ # Extensions for LaTeX:
+ #
+ # 1. the symbol '->' will be replaced with a rightarrow
+ # 2. x^y with ${x}^{y}$.
+ # 3. xxx\: with xxx:
+ 
+ use POSIX qw(strftime);
+ 
+ # match expressions used to find embedded type information
+ $type_constant = "\\\%(\\w+)";
+ $type_func = "(\\w+\\(\\))";
+ $type_param = "\\\@(\\w+)";
+ $type_struct = "\\\&(\\w+)";
+ $type_env = "(\\\$\\w+)";
+ 
+ 
+ # Output conversion substitutions.
+ #  One for each output format
+ 
+ # these work fairly well
+ %highlights_html = ( $type_constant, "<i>\$1</i>",
+                      $type_func, "<b>\$1</b>",
+                      $type_struct, "<i>\$1</i>",
+                      $type_param, "<tt><b>\$1</b></tt>" );
+ $blankline_html = "<p>";
+ 
+ %highlights_texinfo = ( $type_constant, "\\\@var{\$1}",
+                         $type_func, "\\\@code{\$1}",
+                         $type_struct, "\\\@code{\$1}",
+                         $type_param, "\\\@code{\$1}" );
+ $blankline_texinfo = "";
+ 
+ %highlights_tex = ( $type_constant, "{\\\\it \$1}",
+                      $type_func, "{\\\\bf \$1}",
+                      $type_struct, "{\\\\it \$1}",
+                      $type_param, "{\\\\bf \$1}" );
+ $blankline_tex = "\\\\";
+ 
+ # sgml, docbook format
+ %highlights_sgml = ( $type_constant, "<replaceable class=\"option\">\$1</repla
+ ceable>",
+                      $type_func, "<function>\$1</function>",
+                      $type_struct, "<structname>\$1</structname>",
+                      $type_env, "<envar>\$1</envar>",
+                      $type_param, "<parameter>\$1</parameter>" );
+ $blankline_sgml = "</para><para>\n";
+ 
+ # these are pretty rough
+ %highlights_man = ( $type_constant, "\\n.I \\\"\$1\\\"\\n",
+                     $type_func, "\\n.B \\\"\$1\\\"\\n",
+                     $type_struct, "\\n.I \\\"\$1\\\"\\n",
+                     $type_param."([\.\, ]*)\n?", "\\n.I \\\"\$1\$2\\\"\\n" );
+ $blankline_man = "";
+ 
+ # text-mode
+ %highlights_text = ( $type_constant, "\$1",
+                      $type_func, "\$1",
+                      $type_struct, "\$1",
+                      $type_param, "\$1" );
+ $blankline_text = "";
+ 
+ 
+ sub usage {
+     print "Usage: $0 [ -v ] [ -docbook | -html | -text | -man | -tex | -texinf
+ o  -listfunc ]\n";
+     print "         [ -sourceversion verno ] [ -includefuncprefix ]\n";
+     print "         [ -bugsto address ] [ -seeinfo infonode ] [ -copyright not
+ ice]\n";
+     print "         [ -verbatimcopying ]\n";
+     print "         [ -function funcname [ -function funcname ...] ]\n";
+     print "         c source file(s) > outputfile\n";
+     exit 1;
+ }
+ 
+ # read arguments
+ if ($#ARGV==-1) {
+     usage();
+ }
+ 
+ $verbose = 0;
+ $output_mode = "man";
+ %highlights = %highlights_man;
+ $blankline = $blankline_man;
+ $modulename = "API Documentation";
+ $sourceversion = strftime "%Y-%m-%d", localtime;
+ $function_only = 0;
+ while ($ARGV[0] =~ m/^-(.*)/) {
+     $cmd = shift @ARGV;
+     if ($cmd eq "-html") {
+         $output_mode = "html";
+         %highlights = %highlights_html;
+         $blankline = $blankline_html;
+     } elsif ($cmd eq "-man") {
+         $output_mode = "man";
+         %highlights = %highlights_man;
+         $blankline = $blankline_man;
+     } elsif ($cmd eq "-tex") {
+         $output_mode = "tex";
+         %highlights = %highlights_tex;
+         $blankline = $blankline_tex;
+     } elsif ($cmd eq "-texinfo") {
+         $output_mode = "texinfo";
+         %highlights = %highlights_texinfo;
+         $blankline = $blankline_texinfo;
+     } elsif ($cmd eq "-text") {
+         $output_mode = "text";
+         %highlights = %highlights_text;
+         $blankline = $blankline_text;
+     } elsif ($cmd eq "-docbook") {
+         $output_mode = "sgml";
+         %highlights = %highlights_sgml;
+         $blankline = $blankline_sgml;
+     } elsif ($cmd eq "-listfunc") {
+         $output_mode = "listfunc";
+     } elsif ($cmd eq "-module") { # not needed for sgml, inherits from calling
+  document
+         $modulename = shift @ARGV;
+     } elsif ($cmd eq "-sourceversion") {
+         $sourceversion = shift @ARGV;
+     } elsif ($cmd eq "-includefuncprefix") {
+         $includefuncprefix = 1;
+     } elsif ($cmd eq "-bugsto") {
+         $bugsto = shift @ARGV;
+     } elsif ($cmd eq "-copyright") {
+         $copyright = shift @ARGV;
+     } elsif ($cmd eq "-verbatimcopying") {
+         $verbatimcopying = 1;
+     } elsif ($cmd eq "-seeinfo") {
+         $seeinfo = shift @ARGV;
+     } elsif ($cmd eq "-function") { # to only output specific functions
+         $function_only = 1;
+         $function = shift @ARGV;
+         $function_table{$function} = 1;
+     } elsif ($cmd eq "-v") {
+         $verbose = 1;
+     } elsif (($cmd eq "-h") || ($cmd eq "--help")) {
+         usage();
+     }
+ }
+ 
+ ##
+ # dumps section contents to arrays/hashes intended for that purpose.
+ #
+ sub dump_section {
+     my $name = shift @_;
+     my $contents = join "\n", @_;
+ 
+     if ($name =~ m/$type_constant/) {
+         $name = $1;
+ #       print STDERR "constant section '$1' = '$contents'\n";
+         $constants{$name} = $contents;
+     } elsif ($name =~ m/$type_param/) {
+ #       print STDERR "parameter def '$1' = '$contents'\n";
+         $name = $1;
+         $parameters{$name} = $contents;
+     } else {
+ #       print STDERR "other section '$name' = '$contents'\n";
+         $sections{$name} = $contents;
+         push @sectionlist, $name;
+     }
+ }
+ 
+ ##
+ # output function
+ #
+ # parameters, a hash.
+ #  function => "function name"
+ #  parameterlist => @list of parameters
+ #  parameters => %parameter descriptions
+ #  sectionlist => @list of sections
+ #  sections => %descriont descriptions
+ #  
+ 
+ sub repstr {
+     $pattern = shift;
+     $repl = shift;
+     $match1 = shift;
+     $match2 = shift;
+     $match3 = shift;
+     $match4 = shift;
+ 
+     $output = $repl;
+     $output =~ s,\$1,$match1,g;
+     $output =~ s,\$2,$match2,g;
+     $output =~ s,\$3,$match3,g;
+     $output =~ s,\$4,$match4,g;
+ 
+     eval "\$return = qq/$output/";
+ 
+ #    print "pattern $pattern matched 1=$match1 2=$match2 3=$match3 4=$match4 r
+ eplace $repl yielded $output interpolated $return\n";
+ 
+     $return;
+ }
+ 
+ sub output_highlight {
+     my $contents = join "\n", @_;
+     my $line;
+ 
+     foreach $pattern (keys %highlights) {
+ #       print "scanning pattern $pattern ($highlights{$pattern})\n";
+         $contents =~ s:$pattern:repstr($pattern, $highlights{$pattern}, $1, $2
+ , $3, $4):gse;
+     }
+     foreach $line (split "\n", $contents) {
+         if ($line eq ""){
+             print $lineprefix, $blankline;
+         } else {
+             print $lineprefix, $line;
+         }
+         print "\n";
+     }
+ }
+ 
+ sub just_highlight {
+     my $contents = join "\n", @_;
+     my $line;
+     my $ret = "";
+ 
+     foreach $pattern (keys %highlights) {
+ #       print "scanning pattern $pattern ($highlights{$pattern})\n";
+         $contents =~ s:$pattern:repstr($pattern, $highlights{$pattern}, $1, $2
+ , $3, $4):gse;
+     }
+     foreach $line (split "\n", $contents) {
+         if ($line eq ""){
+             $ret = $ret . $lineprefix . $blankline;
+         } else {
+             $ret = $ret . $lineprefix . $line;
+         }
+         $ret = $ret . "\n";
+     }
+ 
+     return $ret;
+ }
+ 
+ # output in texinfo
+ sub output_texinfo {
+     my %args = %{$_[0]};
+     my ($parameter, $section);
+     my $count;
+ 
+     print "\@deftypefun {" . $args{'functiontype'} . "} ";
+     print "{".$args{'function'}."} ";
+     print "(";
+     $count = 0;
+     foreach $parameter (@{$args{'parameterlist'}}) {
+         print $args{'parametertypes'}{$parameter}." \@var{".$parameter."}";
+         if ($count != $#{$args{'parameterlist'}}) {
+             $count++;
+             print ", ";
+         }
+     }
+     print ")\n";
+     foreach $parameter (@{$args{'parameterlist'}}) {
+         if ($args{'parameters'}{$parameter}) {
+             print "\@var{".$parameter."}: ";
+             output_highlight($args{'parameters'}{$parameter});
+             print "\n";
+         }
+     }
+     foreach $section (@{$args{'sectionlist'}}) {
+         print "\n\@strong{$section:} " if $section ne $section_default;
+         $args{'sections'}{$section} =~ s:([{}]):\@\1:gs;
+         output_highlight($args{'sections'}{$section});
+     }
+     print "\@end deftypefun\n\n";
+ }
+ 
+ # output in html
+ sub output_html {
+     my %args = %{$_[0]};
+     my ($parameter, $section);
+     my $count;
+     print "\n\n<a name=\"". $args{'function'} . "\">&nbsp</a><h2>Function</h2>
+ \n";
+ 
+     print "<i>".$args{'functiontype'}."</i>\n";
+     print "<b>".$args{'function'}."</b>\n";
+     print "(";
+     $count = 0;
+     foreach $parameter (@{$args{'parameterlist'}}) {
+         print "<i>".$args{'parametertypes'}{$parameter}."</i> <b>".$parameter.
+ "</b>\n";
+         if ($count != $#{$args{'parameterlist'}}) {
+             $count++;
+             print ", ";
+         }
+     }
+     print ")\n";
+ 
+     print "<h3>Arguments</h3>\n";
+     print "<dl>\n";
+     foreach $parameter (@{$args{'parameterlist'}}) {
+         print "<dt><i>".$args{'parametertypes'}{$parameter}."</i> <b>".$parame
+ ter."</b>\n";
+         print "<dd>";
+         output_highlight($args{'parameters'}{$parameter});
+     }
+     print "</dl>\n";
+     foreach $section (@{$args{'sectionlist'}}) {
+         print "<h3>$section</h3>\n";
+         print "<ul>\n";
+         output_highlight($args{'sections'}{$section});
+         print "</ul>\n";
+     }
+     print "<hr>\n";
+ }
+ 
+ # output in tex
+ sub output_tex {
+     my %args = %{$_[0]};
+     my ($parameter, $section);
+     my $count;
+     my $func = $args{'function'};
+     my $param;
+     my $param2;
+     my $sec;
+     my $check;
+     my $type;
+ 
+     $func =~ s/_/\\_/g;
+ 
+     print "\n\n\\subsection{". $func . "}\n\\label{" . $args{'function'} . "}\
+ n";
+ 
+     $type = $args{'functiontype'};
+     $type =~ s/_/\\_/g;
+ 
+     print "{\\it ".$type."}\n";
+     print "{\\bf ".$func."}\n";
+     print "(";
+     $count = 0;
+     foreach $parameter (@{$args{'parameterlist'}}) {
+         $param = $args{'parametertypes'}{$parameter};
+         $param2 = $parameter;
+         $param =~ s/_/\\_/g;
+         $param2 =~ s/_/\\_/g;
+ 
+         print "{\\it ".$param."} {\\bf ".$param2."}";
+         if ($count != $#{$args{'parameterlist'}}) {
+             $count++;
+             print ", ";
+         }
+     }
+     print ")\n";
+ 
+     print "\n{\\large{Arguments}}\n";
+ 
+     print "\\begin{itemize}\n";
+     $check=0;
+     foreach $parameter (@{$args{'parameterlist'}}) {
+         $param1 = $args{'parametertypes'}{$parameter};
+         $param1 =~ s/_/\\_/g;
+         $param2 = $parameter;
+         $param2 =~ s/_/\\_/g;
+ 
+         $check = 1;
+         print "\\item {\\it ".$param1."} {\\bf ".$param2."}: \n";
+ #       print "\n";
+ 
+         $param3 = $args{'parameters'}{$parameter};
+         $param3 =~ s/&([a-zA-Z\_]+)/{\\it \1}/g;
+ 
+         $out = just_highlight($param3);
+         $out =~ s/_/\\_/g;
+         print $out;
+     }
+     if ($check==0) {
+         print "\\item void\n";
+     }
+     print "\\end{itemize}\n";
+ 
+     foreach $section (@{$args{'sectionlist'}}) {
+         $sec = $section;
+         $sec =~ s/_/\\_/g;
+         $sec =~ s/&([a-zA-Z\_]+)/{\\it \1}/g;
+ 
+         print "\n{\\large{$sec}}\\\\\n";
+         print "\\begin{rmfamily}\n";
+ 
+         $sec = $args{'sections'}{$section};
+         $sec =~ s/\\:/:/g;
+         $sec =~ s/&([a-zA-Z\_]+)/{\\it \1}/g;
+         $sec =~ s/->/\$\\rightarrow\$/g;
+         $sec =~ s/([0-9]+)\^([0-9]+)/\$\{\1\}\^\{\2\}\$/g;
+ 
+         $out = just_highlight($sec);
+         $out =~ s/_/\\_/g;
+ 
+         print $out;
+         print "\\end{rmfamily}\n";
+     }
+     print "\n";
+ }
+ 
+ 
+ # output in sgml DocBook
+ sub output_sgml {
+     my %args = %{$_[0]};
+     my ($parameter, $section);
+     my $count;
+     my $id;
+ 
+     $id = $args{'module'}."-".$args{'function'};
+     $id =~ s/[^A-Za-z0-9]/-/g;
+ 
+     print "<refentry>\n";
+     print "<refmeta>\n";
+     print "<refentrytitle><phrase id=\"$id\">".$args{'function'}."</phrase></r
+ efentrytitle>\n";
+     print "</refmeta>\n";
+     print "<refnamediv>\n";
+     print " <refname>".$args{'function'}."</refname>\n";
+     print " <refpurpose>\n";
+     print "  ".$args{'purpose'}."\n";
+     print " </refpurpose>\n";
+     print "</refnamediv>\n";
+ 
+     print "<refsynopsisdiv>\n";
+     print " <title>Synopsis</title>\n";
+     print "  <funcsynopsis>\n";
+     print "   <funcdef>".$args{'functiontype'}." ";
+     print "<function>".$args{'function'}." ";
+     print "</function></funcdef>\n";
+ 
+ #    print "<refsect1>\n";
+ #    print " <title>Synopsis</title>\n";
+ #    print "  <funcsynopsis>\n";
+ #    print "   <funcdef>".$args{'functiontype'}." ";
+ #    print "<function>".$args{'function'}." ";
+ #    print "</function></funcdef>\n";
+ 
+     $count = 0;
+     if ($#{$args{'parameterlist'}} >= 0) {
+         foreach $parameter (@{$args{'parameterlist'}}) {
+             print "   <paramdef>".$args{'parametertypes'}{$parameter};
+             print " <parameter>$parameter</parameter></paramdef>\n";
+         }
+     } else {
+         print "  <void>\n";
+     }
+     print "  </funcsynopsis>\n";
+     print "</refsynopsisdiv>\n";
+ #    print "</refsect1>\n";
+ 
+     # print parameters
+     print "<refsect1>\n <title>Arguments</title>\n";
+ #    print "<para>\nArguments\n";
+     if ($#{$args{'parameterlist'}} >= 0) {
+         print " <variablelist>\n";
+         foreach $parameter (@{$args{'parameterlist'}}) {
+             print "  <varlistentry>\n   <term><parameter>$parameter</parameter
+ ></term>\n";
+             print "   <listitem>\n    <para>\n";
+             $lineprefix="     ";
+             output_highlight($args{'parameters'}{$parameter});
+             print "    </para>\n   </listitem>\n  </varlistentry>\n";
+         }
+         print " </variablelist>\n";
+     } else {
+         print " <para>\n  None\n </para>\n";
+     }
+     print "</refsect1>\n";
+ 
+     # print out each section
+     $lineprefix="   ";
+     foreach $section (@{$args{'sectionlist'}}) {
+         print "<refsect1>\n <title>$section</title>\n <para>\n";
+ #       print "<para>\n$section\n";
+         if ($section =~ m/EXAMPLE/i) {
+             print "<example><para>\n";
+         }
+         output_highlight($args{'sections'}{$section});
+ #       print "</para>";
+         if ($section =~ m/EXAMPLE/i) {
+             print "</para></example>\n";
+         }
+         print " </para>\n</refsect1>\n";
+     }
+ 
+     print "\n\n";
+ }
+ 
+ ##
+ # output in man
+ sub output_man {
+     my %args = %{$_[0]};
+     my ($parameter, $section);
+     my $count;
+ 
+     print ".TH \"$args{'function'}\" 3 \"$args{'sourceversion'}\" \"". $args{'
+ module'} . "\" \"". $args{'module'} . "\"\n";
+ 
+     print ".SH NAME\n";
+ 
+     print $args{'function'}."\n";
+ 
+     print ".SH SYNOPSIS\n";
+     print ".B #include <". lc((split /_/, $args{'function'})[0]) . ".h>\n"
+         if $args{'includefuncprefix'};
+     print ".sp\n";
+     print ".BI \"".$args{'functiontype'}." ".$args{'function'}."(";
+     $count = 0;
+     foreach $parameter (@{$args{'parameterlist'}}) {
+         print $args{'parametertypes'}{$parameter}." \" ".$parameter." \"";
+         if ($count != $#{$args{'parameterlist'}}) {
+             $count++;
+             print ", ";
+         }
+     }
+     print ");\"\n";
+ 
+     print ".SH ARGUMENTS\n";
+     foreach $parameter (@{$args{'parameterlist'}}) {
+         print ".IP \"".$args{'parametertypes'}{$parameter}." ".$parameter."\" 
+ 12\n";
+         output_highlight($args{'parameters'}{$parameter});
+     }
+     foreach $section (@{$args{'sectionlist'}}) {
+         print ".SH \"" . uc($section) . "\"\n";
+         output_highlight($args{'sections'}{$section});
+     }
+ 
+     if ($args{'bugsto'}) {
+         print ".SH \"REPORTING BUGS\"\n";
+         print "Report bugs to <". $args{'bugsto'} . ">.\n";
+     }
+ 
+     if ($args{'copyright'}) {
+         print ".SH COPYRIGHT\n";
+         print "Copyright \\(co ". $args{'copyright'} . ".\n";
+         if ($args{'verbatimcopying'}) {
+             print ".br\n";
+             print "Permission is granted to make and distribute verbatim copie
+ s of this\n";
+             print "manual provided the copyright notice and this permission no
+ tice are\n";
+             print "preserved on all copies.\n";
+         }
+     }
+ 
+     if ($args{'seeinfo'}) {
+         print ".SH \"SEE ALSO\"\n";
+         print "The full documentation for\n";
+         print ".B " . $args{'module'} . "\n";
+         print "is maintained as a Texinfo manual.  If the\n";
+         print ".B info\n";
+         print "and\n";
+         print ".B " . $args{'module'} . "\n";
+         print "programs are properly installed at your site, the command\n";
+         print ".IP\n";
+         print ".B info " . $args{'seeinfo'} . "\n";
+         print ".PP\n";
+         print "should give you access to the complete manual.\n";
+     }
+ }
+ 
+ sub output_listfunc {
+     my %args = %{$_[0]};
+     print $args{'function'} . "\n";
+ }
+ 
+ ##
+ # output in text
+ sub output_text {
+     my %args = %{$_[0]};
+     my ($parameter, $section);
+ 
+     print "Function = ".$args{'function'}."\n";
+     print "  return type: ".$args{'functiontype'}."\n\n";
+     foreach $parameter (@{$args{'parameterlist'}}) {
+         print " ".$args{'parametertypes'}{$parameter}." ".$parameter."\n";
+         print "    -> ".$args{'parameters'}{$parameter}."\n";
+     }
+     foreach $section (@{$args{'sectionlist'}}) {
+         print " $section:\n";
+         print "    -> ";
+         output_highlight($args{'sections'}{$section});
+     }
+ }
+ 
+ ##
+ # generic output function - calls the right one based
+ # on current output mode.
+ sub output_function {
+ #    output_html(@_);
+     eval "output_".$output_mode."(\@_);";
+ }
+ 
+ 
+ ##
+ # takes a function prototype and spits out all the details
+ # stored in the global arrays/hsahes.
+ sub dump_function {
+     my $prototype = shift @_;
+ 
+     if ($prototype =~ m/^()([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ ||
+         $prototype =~ m/^(\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ ||
+         $prototype =~ m/^(\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ ||
+         $prototype =~ m/^(\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ ||
+         $prototype =~ m/^(\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/)
+   {
+         $return_type = $1;
+         $function_name = $2;
+         $args = $3;
+ 
+ #       print STDERR "ARGS = '$args'\n";
+ 
+         foreach $arg (split ',', $args) {
+             # strip leading/trailing spaces
+             $arg =~ s/^\s*//;
+             $arg =~ s/\s*$//;
+ #           print STDERR "SCAN ARG: '$arg'\n";
+             @args = split('\s', $arg);
+ 
+ #           print STDERR " -> @args\n";
+             $param = pop @args;
+ #           print STDERR " -> @args\n";
+             if ($param =~ m/^(\*+)(.*)/) {
+                 $param = $2;
+                 push @args, $1;
+             }
+             if ($param =~ m/^(.*)(\[\])$/) {
+                 $param = $1;
+                 push @args, $2;
+             }
+ #           print STDERR " :> @args\n";
+             $type = join " ", @args;
+ 
+             if ($parameters{$param} eq "" && $param != "void") {
+                 $parameters{$param} = "-- undescribed --";
+                 print STDERR "Warning($lineno): Function parameter '$param' no
+ t described in '$function_name'\n";
+             }
+ 
+             push @parameterlist, $param;
+             $parametertypes{$param} = $type;
+ 
+ #           print STDERR "param = '$param', type = '$type'\n";
+         }
+     } else {
+         print STDERR "Error($lineno): cannot understand prototype: '$prototype
+ '\n";
+         return;
+     }
+ 
+     if ($function_only==0 || defined($function_table{$function_name})) {
+         output_function({'function' => $function_name,
+                          'module' => $modulename,
+                          'sourceversion' => $sourceversion,
+                          'includefuncprefix' => $includefuncprefix,
+                          'bugsto' => $bugsto,
+                          'copyright' => $copyright,
+                          'verbatimcopying' => $verbatimcopying,
+                          'seeinfo' => $seeinfo,
+                          'functiontype' => $return_type,
+                          'parameterlist' => \@parameterlist,
+                          'parameters' => \%parameters,
+                          'parametertypes' => \%parametertypes,
+                          'sectionlist' => \@sectionlist,
+                          'sections' => \%sections,
+                          'purpose' => $function_purpose
+                          });
+     }
+ }
+ 
+ ######################################################################
+ # main
+ # states
+ # 0 - normal code
+ # 1 - looking for function name
+ # 2 - scanning field start.
+ # 3 - scanning prototype.
+ $state = 0;
+ $section = "";
+ 
+ $doc_special = "\@\%\$\&";
+ 
+ $doc_start = "^/\\*\\*\$";
+ $doc_end = "\\*/";
+ $doc_com = "\\s*\\*\\s*";
+ $doc_func = $doc_com."(\\w+):?";
+ $doc_sect = $doc_com."([".$doc_special."[:upper:]][\\w ]+):(.*)";
+ $doc_content = $doc_com."(.*)";
+ 
+ %constants = ();
+ %parameters = ();
+ @parameterlist = ();
+ %sections = ();
+ @sectionlist = ();
+ 
+ $contents = "";
+ $section_default = "Description";       # default section
+ $section = $section_default;
+ 
+ $lineno = 0;
+ foreach $file (@ARGV) {
+     if (!open(IN,"<$file")) {
+         print STDERR "Error: Cannot open file $file\n";
+         next;
+     }
+     while (<IN>) {
+         $lineno++;
+ 
+         if ($state == 0) {
+             if (/$doc_start/o) {
+                 $state = 1;             # next line is always the function nam
+ e
+             }
+         } elsif ($state == 1) { # this line is the function name (always)
+             if (/$doc_func/o) {
+                 $function = $1;
+                 $state = 2;
+                 if (/-(.*)/) {
+                     $function_purpose = $1;
+                 } else {
+                     $function_purpose = "";
+                 }
+                 if ($verbose) {
+                     print STDERR "Info($lineno): Scanning doc for $function\n"
+ ;
+                 }
+             } else {
+                 print STDERR "WARN($lineno): Cannot understand $_ on line $lin
+ eno",
+                 " - I thought it was a doc line\n";
+                 $state = 0;
+             }
+         } elsif ($state == 2) { # look for head: lines, and include content
+             if (/$doc_sect/o) {
+                 $newsection = $1;
+                 $newcontents = $2;
+ 
+                 if ($contents ne "") {
+                     dump_section($section, $contents);
+                     $section = $section_default;
+                 }
+ 
+                 $contents = $newcontents;
+                 if ($contents ne "") {
+                     $contents .= "\n";
+                 }
+                 $section = $newsection;
+             } elsif (/$doc_end/) {
+ 
+                 if ($contents ne "") {
+                     dump_section($section, $contents);
+                     $section = $section_default;
+                     $contents = "";
+                 }
+ 
+ #           print STDERR "end of doc comment, looking for prototype\n";
+                 $prototype = "";
+                 $state = 3;
+             } elsif (/$doc_content/) {
+                 # miguel-style comment kludge, look for blank lines after
+                 # @parameter line to signify start of description
+                 if ($1 eq "" && $section =~ m/^@/) {
+                     dump_section($section, $contents);
+                     $section = $section_default;
+                     $contents = "";
+                 } else {
+                     $contents .= $1."\n";
+                 }
+             } else {
+                 # i dont know - bad line?  ignore.
+                 print STDERR "WARNING($lineno): bad line: $_"; 
+             }
+         } elsif ($state == 3) { # scanning for function { (end of prototype)
+             if (m#\s*/\*\s+MACDOC\s*#io) {
+               # do nothing
+             }
+             elsif (/([^\{]*)/) {
+                 $prototype .= $1;
+             }
+             if (/\{/) {
+                 $prototype =~ s@/\*.*?\*/@@gos; # strip comments.
+                 $prototype =~ s@[\r\n]+@ @gos; # strip newlines/cr's.
+                 $prototype =~ s@^ +@@gos; # strip leading spaces
+                 dump_function($prototype);
+ 
+                 $function = "";
+                 %constants = ();
+                 %parameters = ();
+                 %parametertypes = ();
+                 @parameterlist = ();
+                 %sections = ();
+                 @sectionlist = ();
+                 $prototype = "";
+ 
+                 $state = 0;
+             }
+         }
+     }
+ }
+ 
+ 
+ 
diff -Nrc2 texinfo-4.12/util/gen-dir-node texinfo-4.13/util/gen-dir-node
*** texinfo-4.12/util/gen-dir-node	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/gen-dir-node	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,212 ----
+ #!/bin/sh
+ # $Id: gen-dir-node,v 1.3 2004/04/11 17:56:47 karl Exp $
+ # Generate the top-level Info node, given a directory of Info files
+ # and (optionally) a skeleton file.  The output will be suitable for a
+ # top-level dir file.  The skeleton file contains info topic names in the
+ # order they should appear in the output.  There are three special
+ # lines that alter the behavior: a line consisting of just "--" causes
+ # the next line to be echoed verbatim to the output.  A line
+ # containing just "%%" causes all the remaining filenames (wildcards
+ # allowed) in the rest of the file to be ignored.  A line containing
+ # just "!!" exits the script when reached (unless preceded by a line
+ # containing just "--").  Once the script reaches the end of the
+ # skeleton file, it goes through the remaining files in the directory
+ # in order, putting their entries at the end.  The script will use the
+ # ENTRY information in each info file if it exists.  Otherwise it will
+ # make a minimal entry.
+ 
+ # sent by Jeffrey Osier <jeffrey@cygnus.com>, who thinks it came from
+ # zoo@winternet.com (david d `zoo' zuhn)
+ 
+ # modified 7 April 1995 by Joe Harrington <jh@tecate.gsfc.nasa.gov> to
+ # take special flags
+ 
+ INFODIR=$1
+ if [ $# = 2 ] ; then
+   SKELETON=$2
+ else
+   SKELETON=/dev/null
+ fi
+ 
+ skip=
+ 
+ if [ $# -gt 2 ] ; then
+   echo usage: $0 info-directory [ skeleton-file ] 1>&2
+   exit 1
+ elif [ -z "${INFODIR}" ] ; then
+   INFODIR="%%DEFAULT_INFO_DIR%%"
+ else
+   true
+ fi
+ 
+ if [ ! -d ${INFODIR} ] ; then
+   echo "$0: first argument must specify a directory"
+   exit 1
+ fi
+ 
+ ### output the dir header
+ echo "-*- Text -*-"
+ echo "This file was generated automatically by $0."
+ echo "This version was generated on `date`"
+ echo "by `whoami`@`hostname` for `(cd ${INFODIR}; pwd)`"
+ 
+ cat << moobler
+ \$Id: gen-dir-node,v 1.3 2004/04/11 17:56:47 karl Exp $
+ This is the file .../info/dir, which contains the topmost node of the
+ Info hierarchy.  The first time you invoke Info you start off
+ looking at that node, which is (dir)Top.
+ 
+ File: dir	Node: Top	This is the top of the INFO tree
+ 
+   This (the Directory node) gives a menu of major topics. 
+   Typing "q" exits, "?" lists all Info commands, "d" returns here,
+   "h" gives a primer for first-timers,
+   "mEmacs<Return>" visits the Emacs topic, etc.
+ 
+   In Emacs, you can click mouse button 2 on a menu item or cross reference
+   to select it.
+ 
+ * Menu: The list of major topics begins on the next line.
+ 
+ moobler
+ 
+ ### go through the list of files in the skeleton.  If an info file
+ ### exists, grab the ENTRY information from it.  If an entry exists
+ ### use it, otherwise create a minimal dir entry.
+ ###
+ ### Then remove that file from the list of existing files.  If any
+ ### additional files remain (ones that don't have a skeleton entry), 
+ ### then generate entries for those in the same way, putting the info for 
+ ### those at the end....
+ 
+ infofiles=`(cd ${INFODIR}; /bin/ls | grep -v '\-[0-9]*$' | egrep -v '^dir$|^dir\.info$|^dir\.orig$')`
+ 
+ # echoing gets clobbered by backquotes; we do it the hard way...
+ lines=`wc $SKELETON | awk '{print $1}'`
+ line=1
+ while [ $lines -ge $line ] ; do
+   # Read one line from the file.  This is so that we can echo lines with
+   # whitespace and quoted characters in them.
+   fileline=`awk NR==$line $SKELETON`
+ 
+   # flag fancy features
+   if [ ! -z "$echoline" ] ; then	# echo line
+     echo "$fileline"
+     fileline=
+     echoline=
+   elif [ "${fileline}" = "--" ] ; then	# should we echo the next line?
+     echoline=1
+   elif [ "${fileline}" = "%%" ] ; then	# eliminate remaining files from dir?
+     skip=1
+   elif [ "${fileline}" = "!!" ] ; then	# quit now
+     exit 0
+   fi
+ 
+   # handle files if they exist
+   for file in $fileline"" ; do	# expand wildcards ("" handles blank lines)
+ 
+     fname=
+ 
+     if [ -z "$echoline" ] && [ ! -z "$file" ] ; then
+       # Find the file to operate upon.  Check both possible names.
+       infoname=`echo $file | sed 's/\.info$//'`
+       noext=
+       ext=
+       if [ -f ${INFODIR}/$infoname ] ; then
+         noext=$infoname
+       fi
+       if [ -f ${INFODIR}/${infoname}.info ] ; then
+         ext=${infoname}.info
+       fi
+ 
+       # If it exists with both names take what was said in the file.
+       if [ ! -z "$ext" ] && [ ! -z "$noext" ]; then
+         fname=$file
+         warn="### Warning: $ext and $noext both exist!  Using ${file}. ###"
+       elif [ ! -z "${noext}${ext}" ]; then
+         # just take the name if it exists only once
+         fname=${noext}${ext}
+       fi
+ 
+       # if we found something and aren't skipping, do the entry
+       if [ ! -z "$fname" ] ; then
+         if [ -z "$skip" ] ; then
+ 
+           if [ ! -z "$warn" ] ; then	# issue any warning
+ 	    echo $warn
+ 	    warn=
+           fi
+ 
+           entry=`sed -e '1,/START-INFO-DIR-ENTRY/d' \
+ 		     -e '/END-INFO-DIR-ENTRY/,$d' ${INFODIR}/$fname`
+           if [ ! -z "${entry}" ] ; then
+             echo "${entry}"
+           else
+             echo "* ${infoname}: (${infoname})."
+           fi
+         fi
+ 
+         # remove the name from the directory listing
+ 	infofiles=`echo "" ${infofiles} "" | sed -e "s/ ${fname} / /" -e "s/  / /g"`
+ 
+       fi
+ 
+     fi
+ 
+   done
+ 
+   line=`expr $line + 1`
+ done
+ 
+ if [ -z "${infofiles}" ] ; then
+   exit 0
+ elif [ $lines -gt 0 ]; then
+   echo
+ fi
+ 
+ # Sort remaining files by INFO-DIR-SECTION.
+ prevsect=
+ filesectdata=`(cd ${INFODIR}; fgrep INFO-DIR-SECTION /dev/null ${infofiles} | \
+ 	      fgrep -v 'INFO-DIR-SECTION Miscellaneous' | \
+ 	      sort -t: -k2 -k1 | tr ' ' '_')`
+ for sectdata in ${filesectdata}; do
+   file=`echo ${sectdata} | cut -d: -f1`
+   section=`sed -n -e 's/^INFO-DIR-SECTION //p' ${INFODIR}/${file}`
+   infofiles=`echo "" ${infofiles} "" | sed -e "s/ ${file} / /" -e "s/  / /g"`
+ 
+   if [ "${prevsect}" != "${section}" ] ; then
+     if [ ! -z "${prevsect}" ] ; then
+       echo ""
+     fi
+     echo "${section}"
+     prevsect="${section}"
+   fi
+ 
+   infoname=`echo $file | sed 's/\.info$//'`
+   entry=`sed -e '1,/START-INFO-DIR-ENTRY/d' \
+ 	-e '/END-INFO-DIR-ENTRY/,$d' ${INFODIR}/${file}`
+   if [ ! -z "${entry}" ] ; then
+     echo "${entry}"
+   elif [ ! -d "${INFODIR}/${file}" ] ; then
+     echo "* ${infoname}: (${infoname})."
+   fi
+ done
+ 
+ # Process miscellaneous files.
+ for file in ${infofiles}; do
+   if [ ! -z "${prevsect}" ] ; then
+     echo ""
+     echo "Miscellaneous"
+     prevsect=""
+   fi
+ 
+   infoname=`echo $file | sed 's/\.info$//'`
+   entry=`sed -e '1,/START-INFO-DIR-ENTRY/d' \
+ 	-e '/END-INFO-DIR-ENTRY/,$d' ${INFODIR}/${file}`
+ 
+   if [ ! -z "${entry}" ] ; then
+     echo "${entry}"
+   elif [ ! -d "${INFODIR}/${file}" ] ; then
+     echo "* ${infoname}: (${infoname})."
+   fi
+ done
diff -Nrc2 texinfo-4.12/util/gendocs.sh texinfo-4.13/util/gendocs.sh
*** texinfo-4.12/util/gendocs.sh	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/gendocs.sh	Thu May 22 05:11:36 2008
***************
*** 0 ****
--- 1,351 ----
+ #!/bin/sh
+ # gendocs.sh -- generate a GNU manual in many formats.  This script is
+ #   mentioned in maintain.texi.  See the help message below for usage details.
+ 
+ scriptversion=2008-03-05.14
+ 
+ # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
+ # 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 3 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, see <http://www.gnu.org/licenses/>.
+ # 
+ # Original author: Mohit Agarwal.
+ # Send bug reports and any other correspondence to bug-texinfo@gnu.org.
+ 
+ prog=`basename "$0"`
+ srcdir=`pwd`
+ 
+ scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh"
+ templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template"
+ 
+ : ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
+ : ${MAKEINFO="makeinfo"}
+ : ${TEXI2DVI="texi2dvi -t @finalout"}
+ : ${DVIPS="dvips"}
+ : ${DOCBOOK2HTML="docbook2html"}
+ : ${DOCBOOK2PDF="docbook2pdf"}
+ : ${DOCBOOK2PS="docbook2ps"}
+ : ${DOCBOOK2TXT="docbook2txt"}
+ : ${GENDOCS_TEMPLATE_DIR="."}
+ : ${TEXI2HTML="texi2html"}
+ unset CDPATH
+ unset use_texi2html
+ 
+ version="gendocs.sh $scriptversion
+ 
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ There is NO warranty.  You may redistribute this software
+ under the terms of the GNU General Public License.
+ For more information about these matters, see the files named COPYING."
+ 
+ usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE
+ 
+ Generate various output formats from PACKAGE.texinfo (or .texi or .txi) source.
+ See the GNU Maintainers document for a more extensive discussion:
+   http://www.gnu.org/prep/maintain_toc.html
+ 
+ Options:
+   -o OUTDIR   write files into OUTDIR, instead of manual/.
+   --docbook   convert to DocBook too (xml, txt, html, pdf and ps).
+   --html ARG  pass indicated ARG to makeinfo or texi2html for HTML targets.
+   --texi2html use texi2html to generate HTML targets.
+   --help      display this help and exit successfully.
+   --version   display version information and exit successfully.
+ 
+ Simple example: $prog emacs \"GNU Emacs Manual\"
+ 
+ Typical sequence:
+   cd YOURPACKAGESOURCE/doc
+   wget \"$scripturl\"
+   wget \"$templateurl\"
+   $prog YOURMANUAL \"GNU YOURMANUAL - One-line description\"
+ 
+ Output will be in a new subdirectory \"manual\" (by default, use -o OUTDIR
+ to override).  Move all the new files into your web CVS tree, as
+ explained in the Web Pages node of maintain.texi.
+ 
+ MANUAL-TITLE is included as part of the HTML <title> of the overall
+ manual/index.html file.  It should include the name of the package being
+ documented.  manual/index.html is created by substitution from the file
+ $GENDOCS_TEMPLATE_DIR/gendocs_template.  (Feel free to modify the
+ generic template for your own purposes.)
+ 
+ If you have several manuals, you'll need to run this script several
+ times with different YOURMANUAL values, specifying a different output
+ directory with -o each time.  Then write (by hand) an overall index.html
+ with links to them all.
+ 
+ If a manual's texinfo sources are spread across several directories,
+ first copy or symlink all Texinfo sources into a single directory.
+ (Part of the script's work is to make a tar.gz of the sources.)
+ 
+ You can set the environment variables MAKEINFO, TEXI2DVI, and DVIPS to
+ control the programs that get executed, and GENDOCS_TEMPLATE_DIR to
+ control where the gendocs_template file is looked for.  (With --docbook,
+ the environment variables DOCBOOK2HTML, DOCBOOK2PDF, DOCBOOK2PS, and
+ DOCBOOK2TXT are also respected.) 
+ 
+ By default, makeinfo is run in the default (English) locale, since
+ that's the language of most Texinfo manuals.  If you happen to have a
+ non-English manual and non-English web site, check the SETLANG setting
+ in the source.
+ 
+ Email bug reports or enhancement requests to bug-texinfo@gnu.org.
+ "
+ 
+ calcsize()
+ {
+   size=`ls -ksl $1 | awk '{print $1}'`
+   echo $size
+ }
+ 
+ outdir=manual
+ html=
+ PACKAGE=
+ MANUAL_TITLE=
+ 
+ while test $# -gt 0; do
+   case $1 in
+     --help) echo "$usage"; exit 0;;
+     --version) echo "$version"; exit 0;;
+     -o) shift; outdir=$1;;
+     --docbook) docbook=yes;;
+     --html) shift; html=$1;;
+     --texi2html) use_texi2html=1;;
+     -*)
+       echo "$0: Unknown or ambiguous option \`$1'." >&2
+       echo "$0: Try \`--help' for more information." >&2
+       exit 1;;
+     *)
+       if test -z "$PACKAGE"; then
+         PACKAGE=$1
+       elif test -z "$MANUAL_TITLE"; then
+         MANUAL_TITLE=$1
+       else
+         echo "$0: extra non-option argument \`$1'." >&2
+         exit 1
+       fi;;
+   esac
+   shift
+ done
+ 
+ if test -s "$srcdir/$PACKAGE.texinfo"; then
+   srcfile=$srcdir/$PACKAGE.texinfo
+ elif test -s "$srcdir/$PACKAGE.texi"; then
+   srcfile=$srcdir/$PACKAGE.texi
+ elif test -s "$srcdir/$PACKAGE.txi"; then
+   srcfile=$srcdir/$PACKAGE.txi
+ else
+   echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2
+   exit 1
+ fi
+ 
+ if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then
+   echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2
+   echo "$0: it is available from $templateurl." >&2
+   exit 1
+ fi
+ 
+ case $outdir in
+   /*) dotdot_outdir="$outdir";;
+   *) dotdot_outdir="../$outdir";;
+ esac
+ 
+ echo Generating output formats for $srcfile
+ 
+ cmd="$SETLANG $MAKEINFO -o $PACKAGE.info \"$srcfile\""
+ echo "Generating info files... ($cmd)"
+ eval "$cmd"
+ mkdir -p $outdir/
+ tar czf $outdir/$PACKAGE.info.tar.gz $PACKAGE.info*
+ info_tgz_size=`calcsize $outdir/$PACKAGE.info.tar.gz`
+ # do not mv the info files, there's no point in having them available
+ # separately on the web.
+ 
+ cmd="${TEXI2DVI} \"$srcfile\""
+ echo "Generating dvi ... ($cmd)"
+ eval "$cmd"
+ 
+ # now, before we compress dvi:
+ echo Generating postscript...
+ ${DVIPS} $PACKAGE -o
+ gzip -f -9 $PACKAGE.ps
+ ps_gz_size=`calcsize $PACKAGE.ps.gz`
+ mv $PACKAGE.ps.gz $outdir/
+ 
+ # compress/finish dvi:
+ gzip -f -9 $PACKAGE.dvi
+ dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
+ mv $PACKAGE.dvi.gz $outdir/
+ 
+ cmd="${TEXI2DVI} --pdf \"$srcfile\""
+ echo "Generating pdf ... ($cmd)"
+ eval "$cmd"
+ pdf_size=`calcsize $PACKAGE.pdf`
+ mv $PACKAGE.pdf $outdir/
+ 
+ cmd="$SETLANG $MAKEINFO -o $PACKAGE.txt --no-split --no-headers \"$srcfile\""
+ echo "Generating ASCII... ($cmd)"
+ eval "$cmd"
+ ascii_size=`calcsize $PACKAGE.txt`
+ gzip -f -9 -c $PACKAGE.txt >$outdir/$PACKAGE.txt.gz
+ ascii_gz_size=`calcsize $outdir/$PACKAGE.txt.gz`
+ mv $PACKAGE.txt $outdir/
+ 
+ html_split() {
+   cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html --split=$1 $html --node-files \"$srcfile\""
+   echo "Generating html by $1... ($cmd)"
+   eval "$cmd"
+   split_html_dir=$PACKAGE.html
+   (
+     cd ${split_html_dir} || exit 1
+     ln -sf ${PACKAGE}.html index.html
+     tar -czf $dotdot_outdir/${PACKAGE}.html_$1.tar.gz -- *.html
+   )
+   eval html_$1_tgz_size=`calcsize $outdir/${PACKAGE}.html_$1.tar.gz`
+   rm -f $outdir/html_$1/*.html
+   mkdir -p $outdir/html_$1/
+   mv ${split_html_dir}/*.html $outdir/html_$1/
+   rmdir ${split_html_dir}
+ }
+ 
+ if test -z "$use_texi2html"; then
+   cmd="$SETLANG $MAKEINFO --no-split --html -o $PACKAGE.html $html \"$srcfile\""
+   echo "Generating monolithic html... ($cmd)"
+   rm -rf $PACKAGE.html  # in case a directory is left over
+   eval "$cmd"
+   html_mono_size=`calcsize $PACKAGE.html`
+   gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz
+   html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz`
+   mv $PACKAGE.html $outdir/
+ 
+   cmd="$SETLANG $MAKEINFO --html -o $PACKAGE.html $html \"$srcfile\""
+   echo "Generating html by node... ($cmd)"
+   eval "$cmd"
+   split_html_dir=$PACKAGE.html
+   (
+    cd ${split_html_dir} || exit 1
+    tar -czf $dotdot_outdir/${PACKAGE}.html_node.tar.gz -- *.html
+   )
+   html_node_tgz_size=`calcsize $outdir/${PACKAGE}.html_node.tar.gz` 
+   rm -f $outdir/html_node/*.html
+   mkdir -p $outdir/html_node/
+   mv ${split_html_dir}/*.html $outdir/html_node/
+   rmdir ${split_html_dir}
+ else
+   cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $html \"$srcfile\"" 
+   echo "Generating monolithic html... ($cmd)"
+   rm -rf $PACKAGE.html  # in case a directory is left over
+   eval "$cmd"
+   html_mono_size=`calcsize $PACKAGE.html`
+   gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz
+   html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz`
+   mv $PACKAGE.html $outdir/
+ 
+   html_split node
+   html_split chapter
+   html_split section
+ fi
+ 
+ echo Making .tar.gz for sources...
+ srcfiles=`ls *.texinfo *.texi *.txi *.eps 2>/dev/null`
+ tar cvzfh $outdir/$PACKAGE.texi.tar.gz $srcfiles
+ texi_tgz_size=`calcsize $outdir/$PACKAGE.texi.tar.gz`
+ 
+ if test -n "$docbook"; then
+   cmd="$SETLANG $MAKEINFO -o - --docbook \"$srcfile\" > ${srcdir}/$PACKAGE-db.xml"
+   echo "Generating docbook XML... $(cmd)"
+   eval "$cmd"
+   docbook_xml_size=`calcsize $PACKAGE-db.xml`
+   gzip -f -9 -c $PACKAGE-db.xml >$outdir/$PACKAGE-db.xml.gz
+   docbook_xml_gz_size=`calcsize $outdir/$PACKAGE-db.xml.gz`
+   mv $PACKAGE-db.xml $outdir/
+ 
+   cmd="${DOCBOOK2HTML} -o $split_html_db_dir ${outdir}/$PACKAGE-db.xml"
+   echo "Generating docbook HTML... ($cmd)"
+   eval "$cmd"
+   split_html_db_dir=html_node_db
+   (
+     cd ${split_html_db_dir} || exit 1
+     tar -czf $dotdot_outdir/${PACKAGE}.html_node_db.tar.gz -- *.html
+   )
+   html_node_db_tgz_size=`calcsize $outdir/${PACKAGE}.html_node_db.tar.gz`
+   rm -f $outdir/html_node_db/*.html
+   mkdir -p $outdir/html_node_db
+   mv ${split_html_db_dir}/*.html $outdir/html_node_db/
+   rmdir ${split_html_db_dir}
+ 
+   cmd="${DOCBOOK2TXT} ${outdir}/$PACKAGE-db.xml"
+   echo "Generating docbook ASCII... ($cmd)"
+   eval "$cmd"
+   docbook_ascii_size=`calcsize $PACKAGE-db.txt`
+   mv $PACKAGE-db.txt $outdir/
+ 
+   cmd="${DOCBOOK2PS} ${outdir}/$PACKAGE-db.xml"
+   echo "Generating docbook PS... $(cmd)"
+   eval "$cmd"
+   gzip -f -9 -c $PACKAGE-db.ps >$outdir/$PACKAGE-db.ps.gz
+   docbook_ps_gz_size=`calcsize $outdir/$PACKAGE-db.ps.gz`
+   mv $PACKAGE-db.ps $outdir/
+ 
+   cmd="${DOCBOOK2PDF} ${outdir}/$PACKAGE-db.xml"
+   echo "Generating docbook PDF... ($cmd)"
+   eval "$cmd"
+   docbook_pdf_size=`calcsize $PACKAGE-db.pdf`
+   mv $PACKAGE-db.pdf $outdir/
+ fi
+ 
+ echo Writing index file...
+ if test -z "$use_texi2html"; then
+    CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
+           /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
+ else
+    CONDS="/%%ENDIF.*%%/d;/%%IF  *HTML_SECTION%%/d;/%%IF  *HTML_CHAPTER%%/d"
+ fi
+ curdate=`$SETLANG date '+%B %d, %Y'`
+ sed \
+    -e "s!%%TITLE%%!$MANUAL_TITLE!g" \
+    -e "s!%%DATE%%!$curdate!g" \
+    -e "s!%%PACKAGE%%!$PACKAGE!g" \
+    -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \
+    -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \
+    -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \
+    -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \
+    -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \
+    -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \
+    -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \
+    -e "s!%%PDF_SIZE%%!$pdf_size!g" \
+    -e "s!%%PS_GZ_SIZE%%!$ps_gz_size!g" \
+    -e "s!%%ASCII_SIZE%%!$ascii_size!g" \
+    -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \
+    -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \
+    -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \
+    -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \
+    -e "s!%%DOCBOOK_PS_GZ_SIZE%%!$docbook_ps_gz_size!g" \
+    -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \
+    -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \
+    -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \
+    -e "s,%%SCRIPTURL%%,$scripturl,g" \
+    -e "s!%%SCRIPTNAME%%!$prog!g" \
+    -e "$CONDS" \
+ $GENDOCS_TEMPLATE_DIR/gendocs_template >$outdir/index.html
+ 
+ echo "Done!  See $outdir/ subdirectory for new files."
+ 
+ # Local variables:
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
+ # time-stamp-start: "scriptversion="
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
+ # time-stamp-end: "$"
+ # End:
diff -Nrc2 texinfo-4.12/util/gendocs_template texinfo-4.13/util/gendocs_template
*** texinfo-4.12/util/gendocs_template	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/gendocs_template	Sat Jul  5 16:32:20 2008
***************
*** 0 ****
--- 1,100 ----
+ <!--#include virtual="/server/header.html" -->
+ <title>%%TITLE%% - GNU Project - Free Software Foundation (FSF)</title>
+ <!--#include virtual="/server/banner.html" -->
+ <h2>%%TITLE%%</h2>
+ 
+ <!-- This document is in XML, and xhtml 1.0 -->
+ <!-- Please make sure to properly nest your tags -->
+ <!-- and ensure that your final document validates -->
+ <!-- consistent with W3C xhtml 1.0 and CSS standards -->
+ <!-- See validator.w3.org -->
+ 
+ <address>Free Software Foundation</address>
+ <address>last updated %%DATE%%</address>
+ 
+ <p>This manual (%%PACKAGE%%) is available in the following formats:</p>
+ 
+ <ul>
+ <li><a href="%%PACKAGE%%.html">HTML 
+     (%%HTML_MONO_SIZE%%K bytes)</a> - entirely on one web page.</li>
+ <li><a href="html_node/index.html">HTML</a> - with one web page per
+     node.</li>
+ %%IF HTML_SECTION%%
+ <li><a href="html_section/index.html">HTML</a> - with one web page per
+     section.</li>
+ %%ENDIF HTML_SECTION%%
+ %%IF HTML_CHAPTER%%
+ <li><a href="html_chapter/index.html">HTML</a> - with one web page per
+     chapter.</li>
+ %%ENDIF HTML_CHAPTER%%
+ <li><a href="%%PACKAGE%%.html.gz">HTML compressed
+     (%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on 
+     one web page.</li>
+ <li><a href="%%PACKAGE%%.html_node.tar.gz">HTML compressed
+     (%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> -
+     with one web page per node.</li>
+ %%IF HTML_SECTION%%
+ <li><a href="%%PACKAGE%%.html_section.tar.gz">HTML compressed
+     (%%HTML_SECTION_TGZ_SIZE%%K gzipped tar file)</a> -
+     with one web page per section.</li>
+ %%ENDIF HTML_SECTION%%
+ %%IF HTML_CHAPTER%%
+ <li><a href="%%PACKAGE%%.html_chapter.tar.gz">HTML compressed
+     (%%HTML_CHAPTER_TGZ_SIZE%%K gzipped tar file)</a> -
+     with one web page per chapter.</li>
+ %%ENDIF HTML_CHAPTER%%
+ <li><a href="%%PACKAGE%%.info.tar.gz">Info document
+     (%%INFO_TGZ_SIZE%%K bytes gzipped tar file)</a>.</li>
+ <li><a href="%%PACKAGE%%.txt">ASCII text
+     (%%ASCII_SIZE%%K bytes)</a>.</li>
+ <li><a href="%%PACKAGE%%.txt.gz">ASCII text compressed
+     (%%ASCII_GZ_SIZE%%K bytes gzipped)</a>.</li>
+ <li><a href="%%PACKAGE%%.dvi.gz">TeX dvi file
+     (%%DVI_GZ_SIZE%%K bytes gzipped)</a>.</li>
+ <li><a href="%%PACKAGE%%.ps.gz">PostScript file
+     (%%PS_GZ_SIZE%%K bytes gzipped)</a>.</li>
+ <li><a href="%%PACKAGE%%.pdf">PDF file
+     (%%PDF_SIZE%%K bytes)</a>.</li>
+ <li><a href="%%PACKAGE%%.texi.tar.gz">Texinfo source
+     (%%TEXI_TGZ_SIZE%%K bytes gzipped tar file).</a></li>
+ </ul>
+ 
+ <p>You can <a href="http://shop.fsf.org/">buy printed copies of
+ some manuals</a> (among other items) from the Free Software Foundation;
+ this helps support FSF activities.</p>
+ 
+ <p>(This page generated by the <a href="%%SCRIPTURL%%">%%SCRIPTNAME%%
+ script</a>.)</p>
+ 
+ <!-- If needed, change the copyright block at the bottom. In general, -->
+ <!-- all pages on the GNU web server should have the section about    -->
+ <!-- verbatim copying.  Please do NOT remove this without talking     -->
+ <!-- with the webmasters first. --> 
+ <!-- Please make sure the copyright date is consistent with the document -->
+ <!-- and that it is like this "2001, 2002" not this "2001-2002." -->
+ </div><!-- for id="content", starts in the include above -->
+ <!--#include virtual="/server/footer.html" -->
+ <div id="footer">
+ 
+ <p>
+ Please send FSF &amp; GNU inquiries to 
+ <a href="mailto:gnu@gnu.org"><em>gnu@gnu.org</em></a>.
+ There are also <a href="/contact/">other ways to contact</a> 
+ the FSF.
+ <br />
+ Please send broken links and other corrections or suggestions to
+ <a href="mailto:webmasters@gnu.org"><em>webmasters@gnu.org</em></a>.
+ </p>
+ 
+ <p>
+ Copyright &copy; 2008 Free Software Foundation, Inc.,
+ </p>
+ <address>51 Franklin Street, Fifth Floor, Boston, MA 02111, USA</address>
+ <p>Verbatim copying and distribution of this entire article is
+ permitted in any medium, provided this notice is preserved.
+ </p>
+ 
+ </div>
+ </div>
+ </body>
+ </html>
diff -Nrc2 texinfo-4.12/util/infosrch texinfo-4.13/util/infosrch
*** texinfo-4.12/util/infosrch	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/infosrch	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,104 ----
+ #!/usr/local/bin/perl -w
+ # $Id: infosrch,v 1.2 2004/04/11 17:56:47 karl Exp $
+ # infosrch does a regex search on an info manual.
+ # By Harry Putnam <reader@newsguy.com>.
+ 
+ ($myscript = $0) =~ s:^.*/::; 
+ $six = '';
+ 
+ if($ARGV[0] eq "help"){
+    &usage;
+    exit;
+ }
+ if($ARGV[0] eq "-e"){
+    shift;
+    $six = "true";
+ }
+ if(!$ARGV[1]){
+    &usage;
+    exit;
+ }
+ 
+ $target = shift;
+ $regex  = shift;
+ 
+ $shell_proc  =  "info --output - --subnodes 2>/dev/null $target";
+ 
+ open(SHELL_PROC," $shell_proc|");
+ while(<SHELL_PROC>){
+   chomp;
+   push @lines,$_;
+ } 
+ close(SHELL_PROC);
+ $cnt = 0;
+ for(@lines){
+    if(/$regex/ && !$six){
+       print "$target\n   $lines[($cnt-1)]\n<$cnt> $lines[$cnt]\n   $lines[($cnt+1)]\n";
+       print "-- \n";
+    }elsif(/$regex/ && $six){
+         print "$target\n";
+         if($lines[($cnt-6)]){
+            print "    $lines[($cnt-6)]\n";
+         }
+         if($lines[($cnt-5)]){
+            print "    $lines[($cnt-5)]\n";
+         }
+         if($lines[($cnt-4)]){
+            print "    $lines[($cnt-4)]\n";
+         }
+         if($lines[($cnt-3)]){
+            print "    $lines[($cnt-3)]\n";
+         }
+         if($lines[($cnt-2)]){
+            print "    $lines[($cnt-2)]\n";
+         }
+         if($lines[($cnt-1)]){
+            print "    $lines[($cnt-1)]\n";
+         }
+         if($lines[$cnt]){
+            print "$cnt $lines[$cnt]\n";
+         }
+         if($lines[($cnt+1)]){
+            print "    $lines[($cnt+1)]\n";
+         }
+         if($lines[($cnt+2)]){
+            print "    $lines[($cnt+2)]\n";
+         }
+         if($lines[($cnt+3)]){
+            print "    $lines[($cnt+3)]\n";
+         }
+         if($lines[($cnt+4)]){
+            print "    $lines[($cnt+4)]\n";
+         }
+         if($lines[($cnt+5)]){
+            print "    $lines[($cnt+5)]\n";
+         }
+         if($lines[($cnt+6)]){
+            print "    $lines[($cnt+6)]\n";
+         }
+         print "-- \n";
+      }
+      $cnt++;
+ }        
+ 
+ sub usage {
+   print <<EOM;
+ 
+ Purpose: Extract full text from info node and search it by regex
+ Usage: $myscript [-e] TARGET REGEX
+ 
+ Where TARGET is an info node such as `emacs', `bash' etc, and
+ REGEX is what you want to find in it.
+ 
+ The -e flag is not required but if used then 6 lines preceding and six
+ lines following any hits will be printed.  The default (with no -e flag)
+ is to print one line before and after.
+ 
+ The output has the line number prepended to the line containing the
+ actual regex.
+ 
+ Info command used:
+   info --output - --subnodes 2>/dev/null TARGET
+ 
+ EOM
+ }
diff -Nrc2 texinfo-4.12/util/install-info-html texinfo-4.13/util/install-info-html
*** texinfo-4.12/util/install-info-html	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/install-info-html	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,157 ----
+ #!@BASH@
+ # $Id: install-info-html,v 1.3 2004/04/11 17:56:47 karl Exp $
+ 
+ name=install-info-html
+ version=1.0
+ 
+ all=
+ index_dir=.
+ 
+ #
+ # debugging
+ #
+ debug_echo=:
+ 
+ 
+ #
+ # print usage
+ #
+ function help ()
+ {
+ 	cat << EOF
+ $name $version
+ Install HTML info document.
+ 
+ Usage: $name [OPTION]... [DOCUMENT-DIR]...
+ 
+ Options:
+   -a,--all             assume all subdirectories of index to be DOCUMENT-DIRs
+   -d,--dir=DIR         set index directory to DIR (default=.)
+   -D,--debug           print debugging info
+   -h,--help            this help text
+   -v,--version         show version
+ EOF
+ }
+  
+ 
+ function cleanup ()
+ {
+ 	$debug_echo "cleaning ($?)..."
+ }
+ 
+ trap cleanup 0 9 15
+ 
+ #
+ # Find command line options and switches
+ #
+ 
+ # "x:" x takes argument
+ #
+ options="adhvW:"
+ #
+ # ugh, "\-" is a hack to support long options
+ # must be in double quotes for bash-2.0
+ 
+ while getopts "\-:$options" O
+ do
+ 	$debug_echo "O: \`$O'"
+ 	$debug_echo "arg: \`$OPTARG'"
+ 	case $O in
+ 		a)
+ 			all=yes
+ 			;;
+ 		D)
+ 		 	[ "$debug_echo" = "echo" ] && set -x
+ 		      	debug_echo=echo
+ 			;;
+ 		h)
+       			help;
+ 			exit 0
+ 			;;
+ 		v)
+ 			echo $name $version
+ 			exit 0
+ 			;;
+ 		d)
+ 			index_dir=$OPTARG
+ 			;;
+ 	# a long option!
+ 	-)
+ 		case "$OPTARG" in
+ 			a*|-a*)
+ 				all=yes
+ 				;;
+ 			de*|-de*)
+ 				[ "$debug_echo" = "echo" ] && set -x
+ 				debug_echo=echo
+ 				;;
+ 			h*|-h*)
+ 				help;
+ 				exit 0
+ 				;;
+ 			di*|-di*)
+ 				index_dir="`expr \"$OPTARG\" ':' '[^=]*=\(.*\)'`"
+ 				;;
+ 			version|-version)
+ 				echo $name $version
+ 				exit 0
+ 				;;
+ 			*|-*)
+ 				echo "$0: invalid option -- \"$OPTARG\""
+ 				help;
+ 				exit -1
+ 				;;
+ 		esac
+ 	esac
+ done
+ shift `expr $OPTIND - 1`
+ 
+ #
+ # Input file name
+ #
+ if [ -z "$all" ] && [ -z "$1" ]; then
+ 	help
+ 	echo "$name: No HTML documents given"
+ 	exit 2
+ fi
+ 
+ if [ -n "$all" ] && [ -n "$1" ]; then
+ 	echo "$name: --all specified, ignoring DIRECTORY-DIRs"
+ fi
+ 
+ if [ -n "$all" ]; then
+ 	document_dirs=`/bin/ls -d1 $index_dir`
+ else
+ 	document_dirs=$*
+ fi
+ 
+ index_file=$index_dir/index.html
+ rm -f $index_file
+ echo -n "$name: Writing index: $index_file..."
+ 
+ # head
+ cat >> $index_file <<EOF
+ <html>
+ <head><title>Info documentation index</title></head>
+ <body>
+ <h1>Info documentation index</h1>
+ This is the directory file \`index.html' a.k.a. \`DIR', which contains the
+ topmost node of the HTML Info hierarchy.
+ <p>
+ This is all very much Work in Progress (WiP).
+ <p>
+ <ul>
+ EOF
+ 
+ #list
+ for i in $document_dirs; do
+ 	echo "<li> <a href=\"$i/$i.html\">$i</a></li>"
+ done >> $index_file
+ 
+ # foot
+ cat >> $index_file <<EOF
+ </ul>
+ </body>
+ </html>
+ EOF
+ echo
diff -Nrc2 texinfo-4.12/util/latex2html.test texinfo-4.13/util/latex2html.test
*** texinfo-4.12/util/latex2html.test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/latex2html.test	Sun Jul  1 15:32:13 2007
***************
*** 0 ****
--- 1,79 ----
+ #! /bin/sh
+ # Copyright (C) 2006, 2007  Free Software Foundation, Inc.
+ #
+ # This file is part of GNU Texinfo.
+ #
+ # GNU Texinfo 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 3 of the License,
+ # or (at your option) any later version.
+ #
+ # GNU Texinfo 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, see <http://www.gnu.org/licenses/>.
+ 
+ required='hevea'
+ 
+ . ./defs || exit 1
+ 
+ set -e
+ 
+ # Force the creation of auxiliary files.
+ # Force it to be big enough to trigger the info file splitting.
+ {
+   echo "\tableofcontents"
+   for section in 1 2 3 4 5 6
+   do
+     echo "\section{$i}"
+     for subsection in 1 2 3 4 5 6
+     do
+       echo "\subsection{$i}"
+       echo "$latex_paragraph"
+     done
+   done
+ } |
+ create_input_tex
+ 
+ 
+ # run_hevea_check FORMAT OPTIONS
+ # ------------------------------
+ run_hevea_check ()
+ {
+   title "$@"
+ 
+   format="$1"
+   shift
+ 
+   # Testing the local build mode.
+   TEXI2DVI_pass --batch --$format "$@" input.tex
+ 
+   # Compute the expected output.
+   outfiles=input.$out
+   case $format in
+      info) outfiles="$outfiles input.info-1 input.info-2";;
+   esac
+ 
+   # Compute the aux files.
+   case $format:$@ in
+     *clean* ) auxfiles='';;
+      *tidy* ) auxfiles='input.t2d';;
+      html:*|text:* ) auxfiles='input.haux input.htoc';;
+       dvi:* ) auxfiles='input.aux input.log input.toc';;
+           * ) auxfiles='';;
+   esac
+   # There should only be the expected output and the source file.
+   assert_files input.tex $outfiles $auxfiles
+   rm -fr $outfiles $auxfiles
+ }
+ 
+ for opt in "" "--clean" "--tidy"
+ do
+   for out in html info text
+     do
+     run_hevea_check $out $opt
+   done
+ done
diff -Nrc2 texinfo-4.12/util/local.test texinfo-4.13/util/local.test
*** texinfo-4.12/util/local.test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/local.test	Thu May 22 05:11:36 2008
***************
*** 0 ****
--- 1,59 ----
+ #! /bin/sh
+ # Copyright (C) 2003, 2005, 2007, 2008  Free Software Foundation, Inc.
+ #
+ # This file is part of GNU Texinfo.
+ #
+ # GNU Texinfo 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 3 of the License,
+ # or (at your option) any later version.
+ #
+ # GNU Texinfo 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, see <http://www.gnu.org/licenses/>.
+ 
+ # Make sure no "local" variable identifier is used twice, since
+ # local is not actually portable.
+ 
+ . ./defs || exit 1
+ 
+ set -e
+ 
+ # Make sure quotes are used to protect the value.  See the comment in
+ # texi2dvi itself about local.
+ if sed -e 's/^[	 ]*#.*//' $TEXI2DVI |
+     $EGREP "\blocal [a-zA-Z_0-9]*=[^\"']" |
+     $EGREP -v "\blocal [a-zA-Z_0-9]*=[a-zA-Z0-9]*$" |
+     grep .
+ then
+   false
+ else
+   true
+ fi
+ 
+ 
+ # Make sure each name is used only once.
+ if sed -n -e 's/^#.*//' \
+           -e 's/local \([a-zA-Z_0-9]*\)/\1/gp' $TEXI2DVI |
+     sort |
+     uniq -c |
+     grep -v '^.*1 ' |
+     grep .
+ then
+   false
+ else
+   true
+ fi
+ 
+ 
+ # Make sure we don't use $().
+ if $FGREP '$(' $TEXI2DVI
+ then
+   false
+ else
+   true
+ fi
diff -Nrc2 texinfo-4.12/util/outline.gawk texinfo-4.13/util/outline.gawk
*** texinfo-4.12/util/outline.gawk	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/outline.gawk	Sun Jul  1 12:06:04 2007
***************
*** 0 ****
--- 1,144 ----
+ #! /usr/local/bin/gawk -f
+ 
+ # texi.outline ---  produce an outline from a texinfo source file
+ # 
+ # Copyright (C) 1998 Arnold David Robbins (arnold@gnu.org)
+ # 
+ # TEXI.OUTLINE 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 3 of the License, or
+ # (at your option) any later version.
+ # 
+ # TEXI.OUTLINE 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, see <http://www.gnu.org/licenses/>.
+ 
+ # NOTE:
+ #	This program uses gensub(), which is specific to gawk.
+ #	With some work (split, substr, etc), it could be made to work
+ #	on other awks, but it's not worth the trouble for me.
+ 
+ BEGIN	\
+ {
+ 	# Levels at which different nodes can be
+ 	Level["@top"] =	0
+ 	Level["@appendix"] = 1
+ 	Level["@chapter"] = 1
+ 	Level["@majorheading"] = 1
+ 	Level["@unnumbered"] = 1
+ 	Level["@appendixsec"] = 2
+ 	Level["@heading"] = 2
+ 	Level["@section"] = 2
+ 	Level["@unnumberedsec"] = 2
+ 	Level["@unnumberedsubsec"] = 3
+ 	Level["@appendixsubsec"] = 3
+ 	Level["@subheading"] = 3
+ 	Level["@subsection"] = 3
+ 	Level["@appendixsubsubsec"] = 4
+ 	Level["@subsubheading"] = 4
+ 	Level["@subsubsection"] = 4
+ 	Level["@unnumberedsubsubsec"] = 4
+ 
+ 	# insure that we were called correctly
+ 	if (ARGC != 2) {
+ 		printf("usage: %s texinfo-file\n", ARGV[0]) > "/dev/stderr"
+ 		exit 1
+ 	}
+ 
+ 	# init header counters
+ 	app_letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ 	app_h = 0
+ 	l1_h = l2_h = l3_h = l4_h = 0
+ }
+ 
+ # skip lines we're not interested in
+ /^[^@]/	|| ! ($1 in Level)	{ next }
+ 
+ Level[$1] == 1	{
+ 	if ($1 !~ /^@unnumbered/ || $1 !~ /heading/)
+ 		l1_h++
+ 	l2_h = l3_h = l4_h = 0
+ 	Ntabs = 0
+ 	Number = makenumber($1)
+ 	Title = maketitle($0)
+ 	print_title()
+ }
+ 
+ Level[$1] == 2	{
+ 	l2_h++
+ 	l3_h = l4_h = 0
+ 	Ntabs = 1
+ 	Number = makenumber($1)
+ 	Title = maketitle($0)
+ 	print_title()
+ }
+ 
+ Level[$1] == 3	{
+ 	l3_h++
+ 	l4_h = 0
+ 	Ntabs = 2
+ 	Number = makenumber($1)
+ 	Title = maketitle($0)
+ 	print_title()
+ }
+ 
+ Level[$1] == 4	{
+ 	l4_h++
+ 	Ntabs = 3
+ 	Number = makenumber($1)
+ 	Title = maketitle($0)
+ 	print_title()
+ }
+ 
+ # maketitle --- extract title
+ 
+ function maketitle(str,		text)
+ {
+ 	$1 = ""		# clobber section keyword
+ 	text = $0
+ 	gsub(/^[ \t]*/, "", text)
+ 	text = gensub(/@[a-z]+{/, "", "g", text)
+ 	text = gensub(/([^@])}/, "\\1", "g", text)
+ 	return text
+ }
+ 
+ # print_title --- print the title
+ 
+ function print_title(	i)
+ {
+ 	for (i = 1; i <= Ntabs; i++)
+ 		printf "\t"
+ 	printf("%s %s\n", Number, Title)
+ }
+ 
+ # makenumber --- construct a heading number from levels and section command
+ 
+ function makenumber(command,	result, lev1)
+ {
+ 	result = ""
+ 	if (command ~ /^@appendix/) {
+ 		if (Level[command] == 1)
+ 			app_h++
+ 
+ 		lev1 = substr(app_letters, app_h, 1)
+ 	} else if (command ~ /^@unnumbered/ || command ~ /heading/) {
+ 		lev1 = "(unnumbered)"
+ 	} else
+ 		lev1 = l1_h ""
+ 
+ 	result = lev1 "."
+ 	if (l2_h > 0) {
+ 		result = result l2_h "."
+ 		if (l3_h > 0) {
+ 			result = result l3_h "."
+ 			if (l4_h > 0) {
+ 				result = result l4_h "."
+ 			}
+ 		}
+ 	}
+ 	return result
+ }
diff -Nrc2 texinfo-4.12/util/pdftexi2dvi texinfo-4.13/util/pdftexi2dvi
*** texinfo-4.12/util/pdftexi2dvi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/pdftexi2dvi	Tue Jan  1 17:15:37 2008
***************
*** 0 ****
--- 1,19 ----
+ #!/bin/sh
+ # $Id: pdftexi2dvi,v 1.3 2007/07/05 15:22:26 karl Exp $
+ # Written by Thomas Esser.  Public domain.
+ # Execute texi2dvi --pdf.
+ 
+ test -f /bin/ksh && test -z "$RUNNING_KSH" \
+   && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+   && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+ unset RUNNING_KSH
+ 
+ test -f /bin/bsh && test -z "$RUNNING_BSH" \
+   && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+   && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+ unset RUNNING_BSH
+ 
+ # hack around a bug in zsh:
+ test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+ 
+ texi2dvi --pdf ${1+"$@"}
diff -Nrc2 texinfo-4.12/util/prepinfo.awk texinfo-4.13/util/prepinfo.awk
*** texinfo-4.12/util/prepinfo.awk	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/prepinfo.awk	Sun Jul  1 12:06:04 2007
***************
*** 0 ****
--- 1,355 ----
+ #! /usr/local/bin/gawk -f
+ 
+ # prepinfo.awk --- fix node lines and menus
+ #
+ # Copyright 1998 Arnold Robbins, arnold@gnu.org
+ #
+ # PREPINFO 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 3 of the License, or
+ # (at your option) any later version.
+ # 
+ # PREPINFO 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, see <http://www.gnu.org/licenses/>.
+ 
+ BEGIN	\
+ {
+ 	# manifest constants
+ 	TRUE = 1
+ 	FALSE = 0
+ 
+ 	# Levels at which different nodes can be
+ 	Level["@top"] =	0
+ 	Level["@appendix"] = 1
+ 	Level["@chapter"] = 1
+ 	Level["@majorheading"] = 1
+ 	Level["@unnumbered"] = 1
+ 	Level["@appendixsec"] = 2
+ 	Level["@heading"] = 2
+ 	Level["@section"] = 2
+ 	Level["@unnumberedsec"] = 2
+ 	Level["@unnumberedsubsec"] = 3
+ 	Level["@appendixsubsec"] = 3
+ 	Level["@subheading"] = 3
+ 	Level["@subsection"] = 3
+ 	Level["@appendixsubsubsec"] = 4
+ 	Level["@subsubheading"] = 4
+ 	Level["@subsubsection"] = 4
+ 	Level["@unnumberedsubsubsec"] = 4
+ 
+ 	# Length of menus
+ 	Menumargin = 78
+ 
+ 	# Length of menu item
+ 	Min_menitem_length = 29
+ 
+ 	# insure that we were called correctly
+ 	if (ARGC != 2) {
+ 		printf("usage: %s texinfo-file\n", ARGV[0]) > "/dev/stderr"
+ 		exit 1
+ 	}
+ 
+ 	# Arrange for two passes over input file
+ 	Pass = 1
+ 	ARGV[2] = "Pass=2"
+ 	ARGV[3] = ARGV[1]
+ 	ARGC = 4
+ 	Lastlevel = -1
+ 
+ 	# Initialize stacks
+ 	Up[-1] = "(dir)"
+ 	Prev[0] = "(dir)"
+ 
+ 	if (Debug == "args") {
+ 		for (i = 0; i < ARGC; i++)
+ 			printf("ARGV[%d] = %s\n", i, ARGV[i]) > "/dev/stderr"
+ 	}
+ }
+ 
+ $1 == "@node"	\
+ {
+ 	Name = getnodename($0)
+ 	Nodeseen = TRUE
+ 
+ 	if ((l = length(Name)) > Maxlen)
+ 		Maxlen = l
+ 
+ 	if (Debug == "nodenames")
+ 		printf("Name = %s\n", Name) > "/dev/stderr"
+ 
+ 	if (Pass == 1)
+ 		next
+ }
+ 
+ Pass == 1 && /^@c(omment)?[ \t]+fakenode/ \
+ {
+ 	if (Debug == "fakenodes")
+ 		printf("fakenode at %d\n", FNR) > "/dev/stderr"
+ 	Fakenode = TRUE
+ 	next
+ }
+ 
+ Pass == 1 && ($1 in Level)	\
+ {
+ 	# skip fake nodes --- titles without associated @node lines
+ 	if (Fakenode) {
+ 		if (Debug == "fakenodes")
+ 			printf("%s at %d is a fakenode\n", $1, FNR) > "/dev/stderr"
+ 		Fakenode = FALSE
+ 		next
+ 	}
+ 
+ 	if (Debug == "titles")
+ 		printf("Processing %s: Name = %s\n", $1, Name) > "/dev/stderr"
+ 
+ 	# save type
+ 	type = $1
+ 
+ 	if (! Nodeseen) {
+ 		err_prefix()
+ 		printf("%s line with no @node or fakenode line\n",
+ 			type) > "/dev/stderr"
+ 		Badheading[FNR] = 1
+ 		# ??? used ???
+ 		next
+ 	} else
+ 		Nodeseen = FALSE	# reset it
+ 
+ 	# Squirrel away the info
+ 	levelnum = Level[type]
+ 	Node[Name ".level"] = levelnum
+ 	Node[Name ".name"] = Name
+ 	if (Debug == "titles") {
+ 		printf("Node[%s\".level\"] = %s\n", Name, Node[Name ".level"]) > "/dev/stderr"
+ 		printf("Node[%s\".name\"] = %s\n", Name, Node[Name ".name"]) > "/dev/stderr"
+ 	}
+ 
+ 	if (levelnum == Lastlevel) {	# e.g., two sections in a row
+ 		Node[Name ".up"] = Up[levelnum - 1]
+ 		if (levelnum in Prev) {
+ 			Node[Prev[levelnum] ".next"] = Name
+ 			Node[Name ".prev"] = Prev[levelnum]
+ 		}
+ 		Prev[levelnum] = Name
+ 		Up[levelnum] = Name	# ???
+ 	} else if (levelnum < Lastlevel) {	# section, now chapter
+ 		Lastlevel = levelnum
+ 		Node[Name ".up"] = Up[levelnum - 1]
+ 		if (levelnum in Prev) {
+ 			Node[Name ".prev"] = Prev[levelnum]
+ 			Node[Prev[levelnum] ".next"] = Name
+ 		}
+ 		Prev[levelnum] = Name
+ 		Up[levelnum] = Name
+ 	} else {		# chapter, now section, levelnum > Lastlevel
+ 		Node[Name ".up"] = Up[levelnum - 1]
+ 		Node[Up[Lastlevel] ".child"] = Name
+ 		Up[levelnum] = Name
+ 		Prev[levelnum] = Name
+ 		Lastlevel = levelnum
+ 	}
+ 
+ 	# For master menu
+ 	if (Level[$1] >= 2)
+ 		List[++Sequence] = Name
+ 
+ 	if (Debug == "titles") {
+ 		printf("Node[%s\".prev\"] = %s\n", Name, Node[Name ".prev"]) > "/dev/stderr"
+ 		printf("Node[%s\".up\"] = %s\n", Name, Node[Name ".up"]) > "/dev/stderr"
+ 		printf("Node[%s\".child\"] = %s\n", Name, Node[Name ".child"]) > "/dev/stderr"
+ 	}
+ }
+ 
+ Pass == 2 && Debug == "dumptitles" && FNR <= 1	\
+ {
+ 	for (i in Node)
+ 		printf("Node[%s] = %s\n", i, Node[i]) | "sort 1>&2"
+ 	close("sort 1>&2")
+ }
+ 
+ /^@menu/ && Pass == 1, /^@end[ \t]+menu/ && Pass == 1	\
+ {
+ 	if (/^@menu/ || /^@end[ \t]+menu/)
+ 		next
+ 
+ #	if (Debug == "menu")
+ #		printf("processing: %s\n", $0) > "/dev/stderr"
+ 
+ 	if (/^\*/) {
+ 		if (In_menitem) {	# file away info from previousline
+ 			Node[node ".mendesc"] = desc
+ 			Node[node ".longdesc"] = longdesc
+ 			if (Debug == "mendesc") {
+ 				printf("Node[%s.mendesc] = %s\n",
+ 					node, Node[node ".mendesc"]) > "/dev/stderr"
+ 				printf("Node[%s.longdesc] = %s\n",
+ 					node, Node[node ".longdesc"]) > "/dev/stderr"
+ 			}
+ 		}
+ 		In_menitem = TRUE
+ 
+ 		# pull apart menu item
+ 		$1 = ""		# nuke ``*''
+ 		$0 = $0		# reparse line
+ 		i1 = index($0, ":")
+ 		if (i1 <= 0) {
+ 			err_prefix()
+ 			printf("badly formed menu item") > "/dev/stderr"
+ 			next
+ 		}
+ 		if (substr($0, i1+1, 1) != ":") { # desc: node.  long desc
+ 			i2 = index($0, ".")
+ 			if (i2 <= 0) {
+ 				err_prefix()
+ 				printf("badly formed menu item") > "/dev/stderr"
+ 				next
+ 			}
+ 			desc = substr($0, 1, i1 - 1)
+ 			sub(/^[ \t]+/, "", node)
+ 			sub(/[ \t]+$/, "", node)
+ 			longdesc = substr($0, i2 + 1)
+ 		} else {	# nodname:: long desc
+ 			desc = ""
+ 			node = substr($0, 1, i1 - 1)
+ 			sub(/^[ \t]+/, "", node)
+ 			sub(/[ \t]+$/, "", node)
+ 			longdesc = substr($0, i1 + 2)
+ 		}
+ 	} else if (In_menitem) {	# continuation line
+ 		longdesc = longdesc " " $0
+ 	} else
+ 		In_menitem = FALSE
+ 
+ 	Node[node ".mendesc"] = desc
+ 	Node[node ".longdesc"] = longdesc
+ 	if (Debug == "mendesc") {
+ 		printf("Node[%s.mendesc] = %s\n",
+ 			node, Node[node ".mendesc"]) > "/dev/stderr"
+ 		printf("Node[%s.longdesc] = %s\n",
+ 			node, Node[node ".longdesc"]) > "/dev/stderr"
+ 	}
+ 
+ 	if (Debug == "menu")
+ 		printf("Menu:: Name %s: desc %s: longdesc %s\n",
+ 			node, desc, longdesc) > "/dev/stderr"
+ }
+ 
+ function err_prefix()
+ {
+ 	printf("%s: %s: %d: ", ARGV[0], FILENAME, FNR) > "/dev/stderr"
+ }
+ 
+ function getnodename(str)
+ {
+ 	sub(/@node[ \t]+/, "", str)
+ 	sub(/,.*/, "", str)
+ 	if (Debug == "nodenames")
+ 		printf("getnodename: return %s\n", str) > "/dev/stderr"
+ 	return str
+ }
+ 
+ Pass == 2 && /^@node/	\
+ {
+ 	Name = getnodename($0)
+ 
+ 	# Top node is special. It's next is the first child
+ 	n = Node[Name ".next"]
+ 	if (Node[Name ".level"] == 0 && n == "")
+ 		n = Node[Name ".child"]
+ 
+ 	printf("@node %s, %s, %s, %s\n", Name, n,
+ 		Node[Name ".prev"] ? Node[Name ".prev"] : Node[Name ".up"],
+ 		Node[Name ".up"])
+ 	next
+ }
+ 
+ Pass == 2 && /^@menu/	\
+ {
+ 	# First, nuke current contents of menu
+ 	do {
+ 		if ((getline) <= 0) {
+ 			err_prefix()
+ 			printf("unexpected EOF inside menu\n") > "/dev/stderr"
+ 			exit 1
+ 		}
+ 	} while (! /^@end[ \t]+menu/)
+ 
+ 	# next, compute maximum length of a node name
+ 	max = 0
+ 	for (n = Node[Name ".child"]; (n ".next") in Node; n = Node[n ".next"]) {
+ 		if ((n ".desc") in Node)
+ 			s = Node[n ".desc"] ": " n "."
+ 		else
+ 			s = n "::"
+ 		l = length(s)
+ 		if (l > max)
+ 			max = l
+ 	}
+ 	if (max < Min_menitem_length)
+ 		max = Min_menitem_length
+ 
+ 	# now dump the menu
+ 	print "@menu"
+ 
+ 	for (n = Node[Name ".child"]; (n ".next") in Node; n = Node[n ".next"]) {
+ 		print_menuitem(n, max)
+ 	}
+ 	print_menuitem(n, max)
+ 
+ 	if (Name == "Top") {	# Master Menu
+ 		if (Maxlen < Min_menitem_length)
+ 			Maxlen = Min_menitem_length
+ 		print ""
+ 		for (i = 1; i <= Sequence; i++)
+ 			print_menuitem(List[i], Maxlen)
+ 		print ""
+ 	}
+ 	print "@end menu"
+ 	next
+ }
+ 
+ Pass == 2	# print
+ 
+ 
+ function print_menuitem(n, max,		nodesc, i, dwords, count, p)
+ {
+ 	nodesc = FALSE
+ 	if (! ((n ".longdesc") in Node)) {
+ 		err_prefix()
+ 		printf("warning: %s: no long description\n", n) > "/dev/stderr"
+ 		nodesc = TRUE
+ 	} else {
+ 		for (i in dwords)
+ 			delete dwords[i]
+ 		count = split(Node[n ".longdesc"], dwords, "[ \t\n]+")
+ 	}
+ 	if ((n ".desc") in Node)
+ 		s = Node[n ".desc"] ": " n "."
+ 	else
+ 		s = n "::"
+ 	printf("* %-*s", max, s)
+ 
+ 	if (Debug == "mendescitem")
+ 		printf("<* %-*s>\n", max, s) > "/dev/stderr"
+ 
+ 	p = max + 2
+ 	if (! nodesc) {
+ 		for (i = 1; i <= count; i++) {
+ 			l = length(dwords[i])
+ 			if (l == 0)
+ 				continue
+ 			if (p + l + 1 > Menumargin) {
+ 				printf("\n%*s", max + 2, " ")
+ 				p = max + 2
+ 			}
+ 			printf(" %s", dwords[i])
+ 			p += l + 1
+ 		}
+ 	}
+ 	print ""
+ }
diff -Nrc2 texinfo-4.12/util/tex3patch texinfo-4.13/util/tex3patch
*** texinfo-4.12/util/tex3patch	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/tex3patch	Sat Feb  1 06:18:59 2003
***************
*** 0 ****
--- 1,70 ----
+ #!/bin/sh
+ # Auxiliary script to work around TeX 3.0 bug.      ---- tex3patch  ----
+ # patches texinfo.tex in current directory, or in directory given as arg.
+ 
+ ANYVERSION=no
+ 
+ for arg in $1 $2
+ do
+ 	case $arg in 
+ 		--dammit | -d ) ANYVERSION=yes ;;
+ 
+ 		* ) dir=$arg
+ 	esac
+ done
+ 
+ if [ -z "$dir" ]; then
+   dir='.'
+ fi
+ 
+ if [ 2 -lt $# ] || [ ! -f "$dir/texinfo.tex" ]; then
+   echo "To patch texinfo.tex for peaceful coexistence with Unix TeX 3.0,"
+   echo "run    $0"
+   echo "with no arguments in the same directory as texinfo.tex; or run"
+   echo "       $0 DIRECTORY"
+   echo "(where DIRECTORY is a path leading to texinfo.tex)."
+   exit
+ fi
+ 
+ if [ -z "$TMPDIR" ]; then
+   TMPDIR=/tmp
+ fi
+ 
+ echo "Checking for \`dummy.tfm'"
+ 
+ ( cd $TMPDIR; tex '\relax \batchmode \font\foo=dummy \bye' )
+ 
+ grep -s '3.0' $TMPDIR/texput.log
+ if [ 1 = "$?" ] && [ "$ANYVERSION" != "yes" ]; then
+ 	echo "You probably do not need this patch,"
+         echo "since your TeX does not seem to be version 3.0."
+ 	echo "If you insist on applying the patch, run $0"
+ 	echo "again with the option \`--dammit'"
+ 	exit
+ fi
+ 
+ grep -s 'file not found' $TMPDIR/texput.log
+ if [ 0 = $? ]; then
+ 	echo "This patch requires the dummy font metric file \`dummy.tfm',"
+ 	echo "which does not seem to be part of your TeX installation."
+ 	echo "Please get your TeX maintainer to install \`dummy.tfm',"
+ 	echo "then run this script again."
+ 	exit
+ fi
+ rm $TMPDIR/texput.log
+ 
+ echo "Patching $dir/texinfo.tex"
+ 
+ sed -e 's/%%*\\font\\nullfont/\\font\\nullfont/' \
+     $dir/texinfo.tex >$TMPDIR/texinfo.tex
+ mv $dir/texinfo.tex $dir/texinfo.tex-distrib; mv $TMPDIR/texinfo.tex $dir
+ 
+ if [ 0 = $? ]; then
+ 	echo "Patched $dir/texinfo.tex to avoid TeX 3.0 bug."
+ 	echo "The original version is saved as $dir/texinfo.tex-distrib."
+ else
+ 	echo "Patch failed.  Sorry."
+ fi
+ ----------------------------------------tex3patch ends
+ 
+ 
diff -Nrc2 texinfo-4.12/util/texi-docstring-magic.el texinfo-4.13/util/texi-docstring-magic.el
*** texinfo-4.12/util/texi-docstring-magic.el	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/texi-docstring-magic.el	Sun Jul  1 14:20:33 2007
***************
*** 0 ****
--- 1,347 ----
+ ;; texi-docstring-magic.el -- munge internal docstrings into texi
+ ;;
+ ;; Keywords: lisp, docs, tex
+ ;; Author: David Aspinall <da@dcs.ed.ac.uk>
+ ;; Copyright (C) 1998 David Aspinall
+ ;; Maintainer:  David Aspinall <da@dcs.ed.ac.uk>
+ ;;
+ ;; $Id: texi-docstring-magic.el,v 1.3 2007/07/01 21:20:33 karl Exp $
+ ;;
+ ;; This package is distributed under the terms of the 
+ ;; GNU General Public License, Version 3.
+ ;; You should have a copy of the GPL with your version of 
+ ;; GNU Emacs or the Texinfo distribution.
+ ;; 
+ ;;
+ ;; This package generates Texinfo source fragments from Emacs 
+ ;; docstrings.   This avoids documenting functions and variables
+ ;; in more than one place, and automatically adds Texinfo markup
+ ;; to docstrings.
+ ;;
+ ;; It relies heavily on you following the Elisp documentation
+ ;; conventions to produce sensible output, check the Elisp manual
+ ;; for details.  In brief:
+ ;;
+ ;;  * The first line of a docstring should be a complete sentence.
+ ;;  * Arguments to functions should be written in upper case: ARG1..ARGN
+ ;;  * User options (variables users may want to set) should have docstrings
+ ;;    beginning with an asterisk.
+ ;;  
+ ;; Usage:
+ ;;
+ ;;  Write comments of the form:
+ ;;
+ ;;    @c TEXI DOCSTRING MAGIC: my-package-function-or-variable-name
+ ;;
+ ;;  In your texi source, mypackage.texi.  From within an Emacs session
+ ;;  where my-package is loaded, visit mypackage.texi and run
+ ;;  M-x texi-docstring-magic to update all of the documentation strings.
+ ;;
+ ;;  This will insert @defopt, @deffn and the like underneath the
+ ;;  magic comment strings.
+ ;;  
+ ;;  The default value for user options will be printed.
+ ;;
+ ;;  Symbols are recognized if they are defined for faces, functions,
+ ;;  or variables (in that order).
+ ;;
+ ;; Automatic markup rules:
+ ;;
+ ;; 1. Indented lines are gathered into @lisp environment.
+ ;; 2. Pieces of text `stuff' or surrounded in quotes marked up with @samp. 
+ ;; 3. Words *emphasized* are made @strong{emphasized}
+ ;; 4. Words sym-bol which are symbols become @code{sym-bol}.
+ ;; 5. Upper cased words ARG corresponding to arguments become @var{arg}.
+ ;;    In fact, you can any word longer than three letters, so that
+ ;;    metavariables can be used easily.
+ ;;    FIXME: to escape this, use `ARG'
+ ;; 6. Words 'sym which are lisp-quoted are marked with @code{'sym}.
+ ;;
+ ;; -----
+ ;;
+ ;; Useful key binding when writing Texinfo:
+ ;;
+ ;;  (define-key TeXinfo-mode-map "C-cC-d" 'texi-docstring-magic-insert-magic)
+ ;;
+ ;; -----
+ ;;
+ ;; Useful enhancements to do:
+ ;;
+ ;;  * Use customize properties (e.g. group, simple types)
+ ;;  * Look for a "texi-docstring" property for symbols
+ ;;    so TeXInfo can be defined directly in case automatic markup
+ ;;    goes badly wrong.
+ ;;  * Add tags to special comments so that user can specify face,
+ ;;    function, or variable binding for a symbol in case more than
+ ;;    one binding exists.
+ ;;
+ ;; ------
+ 
+ (defun texi-docstring-magic-splice-sep (strings sep)
+   "Return concatenation of STRINGS spliced together with separator SEP."
+   (let (str)
+     (while strings
+       (setq str (concat str (car strings)))
+       (if (cdr strings)
+ 	  (setq str (concat str sep)))
+       (setq strings (cdr strings)))
+     str))
+ 
+ (defconst texi-docstring-magic-munge-table
+   '(;; 1. Indented lines are gathered into @lisp environment.
+     ("\\(^.*\\S-.*$\\)"
+      t
+      (let
+ 	 ((line (match-string 0 docstring)))
+        (if (eq (char-syntax (string-to-char line)) ?\ )
+ 	   ;; whitespace
+ 	   (if in-quoted-region
+ 	       line
+ 	     (setq in-quoted-region t)
+ 	     (concat "@lisp\n" line))
+ 	 ;; non-white space
+ 	 (if in-quoted-region
+ 	     (progn
+ 	       (setq in-quoted-region nil)
+ 	       (concat "@end lisp\n" line))
+ 	   line))))
+     ;; 2. Pieces of text `stuff' or surrounded in quotes
+     ;; are marked up with @samp.  NB: Must be backquote
+     ;; followed by forward quote for this to work.
+     ;; Can't use two forward quotes else problems with
+     ;; symbols.
+     ;; Odd hack: because ' is a word constituent in text/texinfo
+     ;; mode, putting this first enables the recognition of args
+     ;; and symbols put inside quotes.
+     ("\\(`\\([^']+\\)'\\)"
+      t
+      (concat "@samp{" (match-string 2 docstring) "}"))
+     ;; 3. Words *emphasized* are made @strong{emphasized}
+     ("\\(\\*\\(\\w+\\)\\*\\)"
+      t
+      (concat "@strong{" (match-string 2 docstring) "}"))
+     ;; 4. Words sym-bol which are symbols become @code{sym-bol}.
+     ;; Must have at least one hyphen to be recognized,
+     ;; terminated in whitespace, end of line, or punctuation.
+     ;; (Only consider symbols made from word constituents
+     ;; and hyphen.
+     ("\\(\\(\\w+\\-\\(\\w\\|\\-\\)+\\)\\)\\(\\s\)\\|\\s-\\|\\s.\\|$\\)"
+      (or (boundp (intern (match-string 2 docstring)))
+ 	 (fboundp (intern (match-string 2 docstring))))
+      (concat "@code{" (match-string 2 docstring) "}"
+ 	     (match-string 4 docstring)))
+     ;; 5. Upper cased words ARG corresponding to arguments become
+     ;; @var{arg}
+     ;; In fact, include any word so long as it is more than 3 characters
+     ;; long.  (Comes after symbols to avoid recognizing the
+     ;; lowercased form of an argument as a symbol)
+     ;; FIXME: maybe we don't want to downcase stuff already
+     ;; inside @samp
+     ;; FIXME: should - terminate?  should _ be included?
+     ("\\([A-Z0-9\\-]+\\)\\(/\\|\)\\|}\\|\\s-\\|\\s.\\|$\\)"
+      (or (> (length (match-string 1 docstring)) 3)
+ 	 (member (downcase (match-string 1 docstring)) args))
+      (concat "@var{" (downcase (match-string 1 docstring)) "}"
+ 	     (match-string 2 docstring)))
+ 
+     ;; 6. Words 'sym which are lisp quoted are
+     ;; marked with @code.
+     ("\\(\\(\\s-\\|^\\)'\\(\\(\\w\\|\\-\\)+\\)\\)\\(\\s\)\\|\\s-\\|\\s.\\|$\\)"
+      t
+      (concat (match-string 2 docstring)
+ 	     "@code{'" (match-string 3 docstring) "}"
+ 	     (match-string 5 docstring)))
+     ;; 7,8. Clean up for @lisp environments left with spurious newlines
+     ;; after 1.
+     ("\\(\\(^\\s-*$\\)\n@lisp\\)" t "@lisp")
+     ("\\(\\(^\\s-*$\\)\n@end lisp\\)" t "@end lisp"))
+     "Table of regexp matches and replacements used to markup docstrings.
+ Format of table is a list of elements of the form
+    (regexp predicate replacement-form)
+ If regexp matches and predicate holds, then replacement-form is
+ evaluated to get the replacement for the match.  
+ predicate and replacement-form can use variables arg,
+ and forms such as (match-string 1 docstring)
+ Match string 1 is assumed to determine the 
+ length of the matched item, hence where parsing restarts from.
+ The replacement must cover the whole match (match string 0),
+ including any whitespace included to delimit matches.")
+ 
+ 
+ (defun texi-docstring-magic-munge-docstring (docstring args)
+   "Markup DOCSTRING for texi according to regexp matches."
+   (let ((case-fold-search nil))
+     (dolist (test texi-docstring-magic-munge-table docstring)
+       (let ((regexp	(nth 0 test))
+ 	    (predicate  (nth 1 test))
+ 	    (replace    (nth 2 test))
+ 	    (i		0)
+ 	    in-quoted-region)
+ 	
+ 	(while (and
+ 		(< i (length docstring))
+ 		(string-match regexp docstring i))
+ 	  (setq i (match-end 1))
+ 	  (if (eval predicate)
+ 	      (let* ((origlength  (- (match-end 0) (match-beginning 0)))
+ 		     (replacement (eval replace))
+ 		     (newlength   (length replacement)))
+ 		(setq docstring
+ 		      (replace-match replacement t t docstring))
+ 		(setq i (+ i (- newlength origlength))))))
+ 	(if in-quoted-region
+ 	    (setq docstring (concat docstring "\n@end lisp"))))))
+   ;; Force a new line after (what should be) the first sentence,
+   ;; if not already a new paragraph.
+   (let*
+       ((pos      (string-match "\n" docstring))
+        (needscr  (and pos 
+ 		      (not (string= "\n" 
+ 				    (substring docstring 
+ 					       (1+ pos) 
+ 					       (+ pos 2)))))))
+     (if (and pos needscr)
+ 	(concat (substring docstring 0 pos)
+ 		"@*\n" 
+ 		(substring docstring (1+ pos)))
+       docstring)))
+ 
+ (defun texi-docstring-magic-texi (env grp name docstring args &optional endtext)
+   "Make a texi def environment ENV for entity NAME with DOCSTRING."
+   (concat "@def" env (if grp (concat " " grp) "") " " name
+ 	  " "
+ 	  (texi-docstring-magic-splice-sep args " ")
+ 	  ;; " "
+ 	  ;; (texi-docstring-magic-splice-sep extras " ")
+ 	  "\n"
+ 	  (texi-docstring-magic-munge-docstring docstring args)
+ 	  "\n"
+ 	  (or endtext "")
+ 	  "@end def" env "\n"))
+ 
+ (defun texi-docstring-magic-format-default (default)
+   "Make a default value string for the value DEFAULT.
+ Markup as @code{stuff} or @lisp stuff @end lisp."
+   (let ((text       (format "%S" default)))
+     (concat 
+      "\nThe default value is "
+      (if (string-match "\n" text)
+ 	 ;; Carriage return will break @code, use @lisp
+ 	 (if (stringp default)
+ 	     (concat "the string: \n@lisp\n" default "\n@end lisp\n")
+ 	   (concat "the value: \n@lisp\n" text "\n@end lisp\n"))
+        (concat "@code{" text "}.\n")))))
+  
+ 
+ (defun texi-docstring-magic-texi-for (symbol)
+   (cond
+    ;; Faces
+    ((find-face symbol)
+     (let*
+ 	((face	    symbol)
+ 	 (name      (symbol-name face))
+ 	 (docstring (or (face-doc-string face)
+ 			"Not documented."))
+ 	 (useropt   (eq ?* (string-to-char docstring))))
+       ;; Chop off user option setting
+       (if useropt
+ 	  (setq docstring (substring docstring 1)))
+       (texi-docstring-magic-texi "fn" "Face" name docstring nil)))
+    ((fboundp symbol)
+     ;; Functions.
+     ;; We don't handle macros,  aliases, or compiled fns properly.
+     (let*
+ 	((function  symbol)
+ 	 (name	    (symbol-name function))
+ 	 (docstring (or (documentation function)
+ 			"Not documented."))
+ 	 (def	    (symbol-function function))
+ 	 (argsyms   (cond ((eq (car-safe def) 'lambda)
+ 			   (nth 1 def))))
+ 	 (args	    (mapcar 'symbol-name argsyms)))
+       (if (commandp function)
+ 	  (texi-docstring-magic-texi "fn" "Command" name docstring args)
+ 	(texi-docstring-magic-texi "un" nil name docstring args))))
+    ((boundp symbol)
+     ;; Variables.
+     (let*
+ 	((variable  symbol)
+ 	 (name      (symbol-name variable))
+ 	 (docstring (or (documentation-property variable
+ 						'variable-documentation)
+ 			"Not documented."))
+ 	 (useropt   (eq ?* (string-to-char docstring)))
+ 	 (default   (if useropt
+ 			(texi-docstring-magic-format-default
+ 			 (default-value symbol)))))
+       ;; Chop off user option setting
+       (if useropt
+ 	  (setq docstring (substring docstring 1)))
+       (texi-docstring-magic-texi
+        (if useropt "opt" "var") nil name docstring nil default)))
+    (t
+     (error "Don't know anything about symbol %s" (symbol-name symbol)))))
+ 
+ (defconst texi-docstring-magic-comment
+   "@c TEXI DOCSTRING MAGIC:"
+   "Magic string in a texi buffer expanded into @defopt, or @deffn.")
+ 
+ (defun texi-docstring-magic ()
+   "Update all texi docstring magic annotations in buffer."
+   (interactive)
+   (save-excursion
+     (goto-char (point-min))
+     (let ((magic (concat "^"
+ 			 (regexp-quote texi-docstring-magic-comment)
+ 			 "\\s-*\\(\\(\\w\\|\\-\\)+\\)$"))
+ 	  p
+ 	  symbol)
+       (while (re-search-forward magic nil t)
+ 	(setq symbol (intern (match-string 1)))
+ 	(forward-line)
+ 	(setq p (point))
+ 	;; If comment already followed by an environment, delete it.
+ 	(if (and
+ 	     (looking-at "@def\\(\\w+\\)\\s-")
+ 	     (search-forward (concat "@end def" (match-string 1)) nil t))
+ 	    (progn
+ 	      (forward-line)
+ 	      (delete-region p (point))))
+ 	(insert
+ 	 (texi-docstring-magic-texi-for symbol))))))
+ 
+ (defun texi-docstring-magic-face-at-point ()
+   (ignore-errors
+     (let ((stab (syntax-table)))
+       (unwind-protect
+ 	  (save-excursion
+ 	    (set-syntax-table emacs-lisp-mode-syntax-table)
+ 	    (or (not (zerop (skip-syntax-backward "_w")))
+ 		(eq (char-syntax (char-after (point))) ?w)
+ 		(eq (char-syntax (char-after (point))) ?_)
+ 		(forward-sexp -1))
+ 	    (skip-chars-forward "'")
+ 	    (let ((obj (read (current-buffer))))
+ 	      (and (symbolp obj) (find-face obj) obj)))
+ 	(set-syntax-table stab)))))
+ 
+ (defun texi-docstring-magic-insert-magic (symbol)
+   (interactive 
+    (let* ((v (or (variable-at-point)
+ 		 (function-at-point)
+ 		 (texi-docstring-magic-face-at-point)))
+ 	  (val (let ((enable-recursive-minibuffers t))
+                  (completing-read
+ 		  (if v
+ 		      (format "Magic docstring for symbol (default %s): " v)
+ 		     "Magic docstring for symbol: ")
+                    obarray '(lambda (sym)
+ 			      (or (boundp sym)
+ 				  (fboundp sym)
+ 				  (find-face sym)))
+ 		   t nil 'variable-history))))
+      (list (if (equal val "") v (intern val)))))
+   (insert "\n" texi-docstring-magic-comment " " (symbol-name symbol)))
+ 
+ 	
+ (provide 'texi-docstring-magic)
diff -Nrc2 texinfo-4.12/util/texi2dvi texinfo-4.13/util/texi2dvi
*** texinfo-4.12/util/texi2dvi	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/texi2dvi	Thu Sep 18 11:46:01 2008
***************
*** 0 ****
--- 1,1792 ----
+ #! /bin/sh
+ # texi2dvi --- produce DVI (or PDF) files from Texinfo (or (La)TeX) sources.
+ # $Id: texi2dvi,v 1.135 2008/09/18 18:46:01 karl Exp $
+ #
+ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001,
+ # 2002, 2003, 2004, 2005, 2006, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.
+ #
+ # Original author: Noah Friedman.
+ #
+ # Please send bug reports, etc. to bug-texinfo@gnu.org.
+ # If possible, please send a copy of the output of the script called with
+ # the `--debug' option when making a bug report.
+ 
+ test -f /bin/ksh && test -z "$RUNNING_KSH" \
+   && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+   && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+ unset RUNNING_KSH
+ 
+ # No failure shall remain unpunished.
+ set -e
+ 
+ # This string is expanded by rcs automatically when this file is checked out.
+ rcs_revision='$Revision: 1.135 $'
+ rcs_version=`set - $rcs_revision; echo $2`
+ program=`echo $0 | sed -e 's!.*/!!'`
+ 
+ build_mode=${TEXI2DVI_BUILD_MODE:-local}
+ build_dir=${TEXI2DVI_BUILD_DIRECTORY:-.}
+ 
+ # Initialize variables for option overriding and otherwise.
+ # Don't use `unset' since old bourne shells don't have this command.
+ # Instead, assign them an empty value.
+ action=compile
+ batch=false     # true for batch mode
+ debug=false
+ escape="\\"
+ expand=         # t for expansion via makeinfo
+ includes=
+ line_error=true # Pass --file-line-error to TeX.
+ no_line_error=false  # absolutely do not pass --file-line-error to TeX
+ oname=          # --output
+ out_lang=dvi
+ quiet=false     # by default let the tools' message be displayed
+ recode=false
+ set_language=
+ src_specials=
+ textra=         # Extra TeX commands to insert in the input file.
+ txiprereq=19990129 # minimum texinfo.tex version with macro expansion
+ verb=false      # true for verbose mode
+ translate_file= # name of charset translation file
+ recode_from=    # if not empty, recode from this encoding to @documentencoding
+ 
+ orig_pwd=`pwd`
+ 
+ # We have to initialize IFS to space tab newline since we save and
+ # restore IFS and apparently POSIX allows stupid/broken behavior with
+ # empty-but-set IFS.
+ # http://lists.gnu.org/archive/html/automake-patches/2006-05/msg00008.html
+ # We need space, tab and new line, in precisely that order.  And don't leave
+ # trailing blanks.
+ space=' '
+ tab='	'
+ newline='
+ '
+ IFS="$space$tab$newline"
+ 
+ # In case someone pedantic insists on using grep -E.
+ : ${EGREP=egrep}
+ 
+ # Systems which define $COMSPEC or $ComSpec use semicolons to separate
+ # directories in TEXINPUTS -- except for Cygwin et al., where COMSPEC
+ # might be inherited, but : is used.
+ if test -n "$COMSPEC$ComSpec" \
+    && uname | $EGREP -iv 'cygwin|mingw|djgpp' >/dev/null; then
+   path_sep=";"
+ else
+   path_sep=":"
+ fi
+ 
+ # Pacify verbose cds.
+ CDPATH=${ZSH_VERSION+.}$path_sep
+ 
+ # If $TEX is set to a directory, don't use it.
+ test -n "$TEX" && test -d "$TEX" && unset TEX
+ 
+ # 
+ ## --------------------- ##
+ ## Auxiliary functions.  ##
+ ## --------------------- ##
+ 
+ # In case `local' is not supported by the shell, provide a function
+ # that simulates it by simply performing the assignments.  This means
+ # that we must not expect `local' to work, i.e., we must not (i) rely
+ # on it during recursion, and (ii) have two local declarations of the
+ # same variable.  (ii) is easy to check statically, and our test suite
+ # does make sure there is never twice a static local declaration of a
+ # variable.  (i) cannot be checked easily, so just be careful.
+ #
+ # Note that since we might use a function simulating `local', we can
+ # no longer rely on the fact that no IFS-splitting is performed.  So,
+ # while
+ #
+ # foo=$bar
+ #
+ # is fine (no IFS-splitting), never write
+ #
+ # local foo=$bar
+ #
+ # but rather
+ #
+ # local foo="$bar"
+ (
+   foo=bar
+   test_local () {
+     local foo=foo
+   }
+   test_local
+   test $foo = bar
+ ) || local () {
+   case $1 in
+     *=*) eval "$1";;
+   esac
+ }
+ 
+ 
+ # cd_orig
+ # -------
+ # Return to the original directory.
+ cd_orig ()
+ {
+   # In case $orig_pwd is on a different drive (for DOS).
+   cd /
+ 
+   # Return to the original directory so that
+   # - the next file is processed in correct conditions
+   # - the temporary file can be removed
+   cd "$orig_pwd" || exit 1
+ }
+ 
+ # func_dirname FILE
+ # -----------------
+ # Return the directory part of FILE.
+ func_dirname ()
+ {
+   dirname "$1" 2>/dev/null \
+   || { echo "$1" | sed 's!/[^/]*$!!;s!^$!.!'; }
+ }
+ 
+ 
+ # absolute NAME -> ABS-NAME
+ # -------------------------
+ # Return an absolute path to NAME.
+ absolute ()
+ {
+   case $1 in
+    [\\/]* | ?:[\\/]*)
+       # Absolute paths don't need to be expanded.
+       echo "$1"
+       ;;
+    *) local slashes
+       slashes=`echo "$1" | sed -n 's,.*[^/]\(/*\)$,\1,p'`
+       local rel
+       rel=$orig_pwd/`func_dirname "$1"`
+       if test -d "$rel"; then
+ 	(cd "$rel" 2>/dev/null &&
+ 	 local n
+ 	 n=`pwd`/`basename "$1"`"$slashes"
+ 	 echo "$n")
+       else
+ 	error 1 "not a directory: $rel"
+       fi
+       ;;
+   esac
+ }
+ 
+ 
+ # ensure_dir DIR1 DIR2...
+ # -----------------------
+ # Make sure the directories exist.
+ ensure_dir ()
+ {
+   for dir
+   do
+     test -d "$dir" \
+       || mkdir "$dir" \
+       || error 1 "cannot create directory: $dir"
+   done
+ }
+ 
+ 
+ # error EXIT_STATUS LINE1 LINE2...
+ # --------------------------------
+ # Report an error and exit with failure if EXIT_STATUS is non null.
+ error ()
+ {
+   local s="$1"
+   shift
+   report "$@"
+   if test "$s" != 0; then
+     exit $s
+   fi
+ }
+ 
+ 
+ # findprog PROG
+ # -------------
+ # Return true if PROG is somewhere in PATH, else false.
+ findprog ()
+ {
+   local saveIFS="$IFS"
+   IFS=$path_sep  # break path components at the path separator
+   for dir in $PATH; do
+     IFS=$saveIFS
+     # The basic test for an executable is `test -f $f && test -x $f'.
+     # (`test -x' is not enough, because it can also be true for directories.)
+     # We have to try this both for $1 and $1.exe.
+     #
+     # Note: On Cygwin and DJGPP, `test -x' also looks for .exe.  On Cygwin,
+     # also `test -f' has this enhancement, bot not on DJGPP.  (Both are
+     # design decisions, so there is little chance to make them consistent.)
+     # Thusly, it seems to be difficult to make use of these enhancements.
+     #
+     if  { test -f "$dir/$1"	&& test -x "$dir/$1"; } ||
+ 	{ test -f "$dir/$1.exe"	&& test -x "$dir/$1.exe"; }; then
+       return 0
+     fi
+   done
+   return 1
+ }
+ 
+ # report LINE1 LINE2...
+ # ---------------------
+ # Report some information on stderr.
+ report ()
+ {
+   for i in "$@"
+   do
+     echo >&2 "$0: $i"
+   done
+ }
+ 
+ 
+ # run COMMAND-LINE
+ # ----------------
+ # Run the COMMAND-LINE verbosely, and catching errors as failures.
+ run ()
+ {
+   verbose "Running $@"
+   "$@" 2>&5 1>&2 ||
+      error 1 "$1 failed"
+ }
+ 
+ 
+ # usage
+ # -----
+ # Display usage and exit successfully.
+ usage ()
+ {
+   # We used to simply have `echo "$usage"', but coping with the
+   # changing behavior of `echo' is much harder than simply using a
+   # here-doc.
+   #
+   #             echo '\noto'   echo '\\noto'   echo -e '\\noto'
+   # bash 3.1      \noto           \\noto          \noto
+   # bash 3.2       %oto           \noto           -e \noto
+   #
+   # where % denotes the eol character.
+   cat <<EOF
+ Usage: $program [OPTION]... FILE...
+ 
+ Run each Texinfo or (La)TeX FILE through TeX in turn until all
+ cross-references are resolved, building all indices.  The directory
+ containing each FILE is searched for included files.  The suffix of FILE
+ is used to determine its language ((La)TeX or Texinfo).  To process
+ (e)plain TeX files, set the environment variable LATEX=tex.
+ 
+ In order to make texi2dvi a drop-in replacement of TeX/LaTeX in AUC-TeX,
+ the FILE may also be composed of the following simple TeX commands.
+   \`\\input{FILE}'     the actual file to compile
+   \`\\nonstopmode'     same as --batch
+ 
+ Makeinfo is used to perform Texinfo macro expansion before running TeX
+ when needed.
+ 
+ General options:
+   -b, --batch         no interaction
+   -D, --debug         turn on shell debugging (set -x)
+   -h, --help          display this help and exit successfully
+   -o, --output=OFILE  leave output in OFILE (implies --clean);
+ 			only one input FILE may be specified in this case
+   -q, --quiet         no output unless errors (implies --batch)
+   -s, --silent        same as --quiet
+   -v, --version       display version information and exit successfully
+   -V, --verbose       report on what is done
+ 
+ TeX tuning:
+   -@                         use @input instead of \input for preloaded Texinfo
+       --dvi                  output a DVI file [default]
+       --dvipdf               output a PDF file via DVI (using dvipdf)
+   -e, -E, --expand           force macro expansion using makeinfo
+   -I DIR                     search DIR for Texinfo files
+   -l, --language=LANG        specify LANG for FILE, either latex or texinfo
+       --no-line-error        do not pass --file-line-error to TeX
+   -p, --pdf                  use pdftex or pdflatex for processing
+   -r, --recode               call recode before TeX to translate input
+       --recode-from=ENC      recode from ENC to the @documentencoding
+       --src-specials         pass --src-specials to TeX
+   -t, --command=CMD          insert CMD in copy of input file
+    or --texinfo=CMD          multiple values accumulate
+       --translate-file=FILE  use given charset translation file for TeX
+ 
+ Build modes:
+   --build=MODE         specify the treatment of auxiliary files [$build_mode]
+       --tidy           same as --build=tidy
+   -c, --clean          same as --build=clean
+       --build-dir=DIR  specify where the tidy compilation is performed;
+ 			 implies --tidy;
+ 			 defaults to TEXI2DVI_BUILD_DIRECTORY [$build_dir]
+   --mostly-clean       remove the auxiliary files and directories
+ 			 but not the output
+ 
+ The MODE specifies where the TeX compilation takes place, and, as a
+ consequence, how auxiliary files are treated.  The build mode
+ can also be set using the environment variable TEXI2DVI_BUILD_MODE.
+ 
+ Valid MODEs are:
+   \`local'      compile in the current directory, leaving all the auxiliary
+ 	       files around.  This is the traditional TeX use.
+   \`tidy'       compile in a local *.t2d directory, where the auxiliary files
+ 	       are left.  Output files are copied back to the original file.
+   \`clean'      same as \`tidy', but remove the auxiliary directory afterwards.
+ 	       Every compilation therefore requires the full cycle.
+ 
+ Using the \`tidy' mode brings several advantages:
+   -   the current directory is not cluttered with plethora of temporary files.
+   -   clutter can be even reduced using --build-dir=dir: all the *.t2d
+       directories are stored there.
+   -   clutter can be reduced to zero using, e.g., --build-dir=/tmp/\$USER.t2d
+       or --build-dir=\$HOME/.t2d.
+   -   the output file is updated after every succesful TeX run, for
+       sake of concurrent visualization of the output.  In a \`local' build
+       the viewer stops during the whole TeX run.
+   -   if the compilation fails, the previous state of the output file
+       is preserved.
+   -   PDF and DVI compilation are kept in separate subdirectories
+       preventing any possibility of auxiliary file incompatibility.
+ 
+ On the other hand, because \`tidy' compilation takes place in another
+ directory, occasionally TeX won't be able to find some files (e.g., when
+ using \\graphicspath): in that case use -I to specify the additional
+ directories to consider.
+ 
+ The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO,
+ TEX (or PDFTEX), TEXINDEX, and THUMBPDF environment variables are used
+ to run those commands, if they are set.  Any CMD strings are added
+ after @setfilename for Texinfo input, in the first line for LaTeX input.
+ 
+ Email bug reports to <bug-texinfo@gnu.org>,
+ general questions and discussion to <help-texinfo@gnu.org>.
+ Texinfo home page: http://www.gnu.org/software/texinfo/
+ EOF
+   exit 0
+ }
+ 
+ 
+ # verbose WORD1 WORD2
+ # -------------------
+ # Report some verbose information.
+ verbose ()
+ {
+   if $verb; then
+     echo >&2 "$0: $@"
+   fi
+ }
+ 
+ 
+ # version
+ # -------
+ # Display version info and exit succesfully.
+ version ()
+ {
+   cat <<EOF
+ texi2dvi (GNU Texinfo 4.13) $rcs_version
+ 
+ Copyright (C) 2008 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+ EOF
+   exit 0
+ }
+ 
+ 
+ ## ---------------- ##
+ ## Handling lists.  ##
+ ## ---------------- ##
+ 
+ 
+ # list_append LIST-NAME ELEM
+ # --------------------------
+ # Set LIST-NAME to its former contents, with ELEM appended.
+ list_append ()
+ {
+   local la_l="$1"
+   shift
+   eval set X \$$la_l "$@"
+   shift
+   eval $la_l=\""$@"\"
+ }
+ 
+ 
+ # list_concat_dirs LIST-NAME DIR-LIST
+ # -----------------------------------
+ # Append to LIST-NAME all the components (included empty) from
+ # the $path_sep separated list DIR-LIST.  Make the paths absolute.
+ list_concat_dirs ()
+ {
+   local lcd_list="$1"
+   # Empty path components are meaningful to tex.  We rewrite them as
+   # `EMPTY' so they don't get lost when we split on $path_sep.
+   # Hopefully no one will have an actual directory named EMPTY.
+   local replace_EMPTY="-e 's/^$path_sep/EMPTY$path_sep/g' \
+                        -e 's/$path_sep\$/${path_sep}EMPTY/g' \
+                        -e 's/$path_sep$path_sep/${path_sep}EMPTY:/g'"
+   save_IFS=$IFS
+   IFS=$path_sep
+   set x `echo "$2" | eval sed $replace_EMPTY`; shift
+   IFS=$save_IFS
+   local dir
+   for dir
+   do
+     case $dir in
+       EMPTY)
+        list_append $lcd_list ""
+        ;;
+       *)
+        if test -d $dir; then
+           dir=`absolute "$dir"`
+          list_append $lcd_list "$dir"
+        fi
+        ;;
+     esac
+   done
+ }
+ 
+ 
+ # list_prefix LIST-NAME SEP -> STRING
+ # -----------------------------------
+ # Return a string that is composed of the LIST-NAME with each item
+ # preceded by SEP.
+ list_prefix ()
+ {
+   local lp_p="$2"
+   eval set X \$$1
+   shift
+   local lp_res
+   for i
+   do
+     lp_res="$lp_res \"$lp_p\" \"$i\""
+   done
+   echo "$lp_res"
+ }
+ 
+ # list_infix LIST-NAME SEP -> STRING
+ # ----------------------------------
+ # Same as list_prefix, but a separator.
+ list_infix ()
+ {
+   eval set X \$$1
+   shift
+   local la_IFS="$IFS"
+   IFS=$path_sep
+   echo "$*"
+   IFS=$la_IFS
+ }
+ 
+ # list_dir_to_abs LIST-NAME
+ # -------------------------
+ # Convert the list to using only absolute dir names.
+ # Currently unused, but should replace absolute_filenames some day.
+ list_dir_to_abs ()
+ {
+   local ld_l="$1"
+   eval set X \$$ld_l
+   shift
+   local ld_res
+   for dir
+   do
+     dir=`absolute "$dir"`
+     test -d "$dir" || continue
+     ld_res="$ld_res \"$dir\""
+   done
+   set X $ld_res; shift
+   eval $ld_l=\"$@\"
+ }
+ 
+ 
+ ## ------------------------------ ##
+ ## Language auxiliary functions.  ##
+ ## ------------------------------ ##
+ 
+ # out_lang_tex
+ # ------------
+ # Return the tex output language (DVI or PDF) for $OUT_LANG.
+ out_lang_tex ()
+ {
+   case $out_lang in
+     dvi | ps | dvipdf ) echo dvi;;
+     pdf ) echo $out_lang;;
+     html | info | text ) echo $out_lang;;
+     *)    error 1 "$0: invalid out_lang: $1";;
+   esac
+ }
+ 
+ 
+ # out_lang_ext
+ # ------------
+ # Return the extension for $OUT_LANG.
+ out_lang_ext ()
+ {
+   case $out_lang in
+     dvipdf ) echo pdf;;
+     dvi | html | info | pdf | ps | text ) echo $out_lang;;
+     *)    error 1 "$0: invalid out_lang: $1";;
+   esac
+ }
+ 
+ 
+ ## ------------------------- ##
+ ## TeX auxiliary functions.  ##
+ ## ------------------------- ##
+ 
+ # Save TEXINPUTS so we can construct a new TEXINPUTS path for each file.
+ # Likewise for bibtex and makeindex.
+ tex_envvars="BIBINPUTS BSTINPUTS DVIPSHEADERS INDEXSTYLE MFINPUTS MPINPUTS \
+ TEXINPUTS TFMFONTS"
+ for var in $tex_envvars; do
+   eval ${var}_orig=\$$var
+   export $var
+ done
+ 
+ 
+ # absolute_filenames TEX-PATH -> TEX-PATH
+ # ---------------------------------------
+ # Convert relative paths to absolute paths, so we can run in another
+ # directory (e.g., in tidy build mode, or during the macro-support
+ # detection).  Prepend ".".
+ absolute_filenames ()
+ {
+   # Empty path components are meaningful to tex.  We rewrite them as
+   # `EMPTY' so they don't get lost when we split on $path_sep.
+   # Hopefully no one will have an actual directory named EMPTY.
+   local replace_empty="-e 's/^$path_sep/EMPTY$path_sep/g' \
+                        -e 's/$path_sep\$/${path_sep}EMPTY/g' \
+                        -e 's/$path_sep$path_sep/${path_sep}EMPTY:/g'"
+   local res
+   res=`echo "$1" | eval sed $replace_empty`
+   save_IFS=$IFS
+   IFS=$path_sep
+   set x $res; shift
+   res=.
+   for dir
+   do
+     case $dir in
+       EMPTY)
+ 	res=$res$path_sep
+ 	;;
+       *)
+ 	if test -d "$dir"; then
+ 	  res=$res$path_sep`absolute "$dir"`
+ 	else
+ 	  # Even if $dir is not a directory, preserve it in the path.
+ 	  # It might contain metacharacters that TeX will expand in
+ 	  # turn, e.g., /some/path/{a,b,c}.  This will not get the
+ 	  # implicit absolutification of the path, but we can't help that.
+ 	  res=$res$path_sep$dir
+ 	fi
+ 	;;
+     esac
+   done
+   echo "$res"
+ }
+ 
+ 
+ # output_base_name FILE
+ # ---------------------
+ # The name of FILE, possibly renamed to satisfy --output.
+ output_base_name ()
+ {
+   case $oname in
+     '') echo "$1";;
+      *) local out_noext
+ 	out_noext=`echo "$oname" | sed 's/\.[^.]*$//'`
+ 	local file_ext
+ 	file_ext=`echo "$1" | sed 's/^.*\.//'`
+ 	echo "$out_noext.$file_ext"
+       ;;
+   esac
+ }
+ 
+ 
+ # move_to_dest FILE...
+ # --------------------
+ # Move FILE to the place where the user expects it.  Truly move it, that
+ # is, it must not remain in its build location unless that is also the
+ # output location.  (Otherwise it might appear as an extra file in make
+ # distcheck.)
+ #
+ # FILE can be the principal output (in which case -o directly applies), or
+ # an auxiliary file with the same base name.
+ move_to_dest ()
+ {
+   local dest
+   local destfile
+   local destdir
+   local destbase
+   local sourcedir
+   local sourcebase
+ 
+   for file
+   do
+     case $tidy:$oname in
+       true:)  dest=$orig_pwd;;
+       false:) dest=;;
+       *:*)    dest=`output_base_name "$file"`;;
+     esac
+     if test ! -f "$file"; then
+       error 1 "no such file or directory: $file"
+     fi
+     if test -n "$dest"; then
+       # We need to know whether $dest is a directory.
+       if test -d "$dest"; then
+         destdir=$dest
+         destfile=$dest/$file
+       else
+         destdir="`dirname $dest`"
+         destfile=$dest
+       fi
+       # We want to compare the source location and the output location,
+       # and if they are different, do the move.  But if they are the
+       # same, we must preserve the source.  Since we can't assume
+       # stat(1) or test -ef is available, resort to comparing the
+       # directory names, canonicalized with pwd.  We can't use cmp -s
+       # since the output file might not actually change from run to run;
+       # e.g., TeX DVI output is timestamped to only the nearest minute.
+       destdir=`cd $destdir && pwd`
+       destbase=`basename $destfile`
+       #
+       sourcedir=`dirname $file`
+       sourcedir=`cd $sourcedir && pwd`
+       sourcebase=`basename $file`
+       #
+       if test "$sourcedir/$sourcebase" != "$destdir/$destbase"; then
+         verbose "Moving $file to $destfile"
+         rm -f "$destfile"
+         mv "$file" "$destfile"
+       fi
+     fi
+   done
+ }
+ 
+ 
+ ## --------------------- ##
+ ## Managing xref files.  ##
+ ## --------------------- ##
+ 
+ # aux_file_p FILE
+ # ---------------
+ # Return with success with FILE is an aux file.
+ aux_file_p ()
+ {
+   test -f "$1" || return 1
+   case $1 in
+     *.aux) return 0;;
+     *)     return 1;;
+   esac
+ }
+ 
+ # bibaux_file_p FILE
+ # ------------------
+ # Return with success with FILE is an aux file containing citation
+ # requests.
+ bibaux_file_p ()
+ {
+   test -s "$1" || return 1
+   if (grep '^\\bibstyle[{]' "$1"   \
+       && grep '^\\bibdata[{]' "$1" \
+       ## The following line is suspicious: fails when there
+       ## are citations in sub aux files.  We need to be
+       ## smarter in this case.
+       ## && grep '^\\citation[{]' "$f"
+       ) >&6 2>&1;
+   then
+     return 0
+   fi
+   return 1
+ }
+ 
+ # index_file_p FILE
+ # -----------------
+ # Return with success with FILE is an index file.
+ # When index.sty is used, there is a space before the brace.
+ index_file_p ()
+ {
+   test -f "$1" || return 1
+   case `sed '1q' "$1"` in
+     "\\entry{"*|"\\indexentry{"*|"\\indexentry {"*) return 0;;
+     *) return 1;;
+   esac
+ }
+ 
+ # xref_file_p FILE
+ # ----------------
+ # Return with success if FILE is an xref file (indexes, tables and lists).
+ xref_file_p ()
+ {
+   test -f "$1" || return 1
+   # If the file is not suitable to be an index or xref file, don't
+   # process it.  It's suitable if the first character is a
+   # backslash or right quote or at, as long as the first line isn't
+   # \input texinfo.
+   case `sed '1q' "$1"` in
+     "\\input texinfo"*) return 1;;
+     [\\''@]*)           return 0;;
+ 	   *)           return 1;;
+   esac
+ }
+ 
+ 
+ # generated_files_get FILENAME-NOEXT [PREDICATE-FILTER]
+ # -----------------------------------------------------
+ # Return the list of files generated by the TeX compilation of FILENAME-NOEXT.
+ generated_files_get ()
+ {
+   local filter=true
+   if test -n "$2"; then
+     filter=$2
+   fi
+ 
+   # Gather the files created by TeX.
+   (
+     if test -f "$1.log"; then
+       sed -n -e "s,^\\\\openout.* = \`\\(.*\\)'\\.,\\1,p" "$1.log"
+     fi
+     echo "$1.log"
+   ) |
+   # Depending on these files, infer outputs from other tools.
+   while read file; do
+     echo $file
+     case $in_lang in
+       texinfo)
+ 	# texindex: texinfo.cp -> texinfo.cps
+        if index_file_p $file; then
+ 	 echo ${file}s
+        fi
+        ;;
+       latex)
+ 	if aux_file_p $file; then
+           # bibtex: *.aux -> *.bbl and *.blg.
+ 	  echo $file | sed 's/^\(.*\)\.aux$/\1.bbl/'
+           echo $file | sed 's/^\(.*\)\.aux$/\1.blg/'
+           # -recorder: .fls
+           echo $file | sed 's/^\(.*\)\.aux$/\1.fls/'
+        fi
+        ;;
+     esac
+   done |
+   # Filter existing files matching the criterion.
+   #
+   # With an input file name containing a space, this produces a
+   # "command not found" message (and filtering is ineffective).
+   # The situation with a newline is presumably even worse.
+   while read file; do
+     if $filter "$file"; then
+       echo $file
+     fi
+   done |
+   sort |
+   # Some files are opened several times, e.g., listings.sty's *.vrb.
+   uniq
+ }
+ 
+ 
+ # xref_files_save
+ # ---------------
+ # Save the xref files.
+ xref_files_save ()
+ {
+   # Save copies of auxiliary files for later comparison.
+   xref_files_orig=`generated_files_get "$in_noext" xref_file_p`
+   if test -n "$xref_files_orig"; then
+     verbose "Backing up xref files: $xref_files_orig"
+     # The following line improves `cp $xref_files_orig "$work_bak"'
+     # by preserving the directory parts.  Think of
+     # cp chap1/main.aux chap2/main.aux $work_bak.
+     #
+     # Users may have, e.g., --keep-old-files.  Don't let this interfere.
+     # (Don't use unset for the sake of ancient shells.)
+     TAR_OPTIONS=; export TAR_OPTIONS
+     tar cf - $xref_files_orig | (cd "$work_bak" && tar xf -)
+   fi
+ }
+ 
+ 
+ # xref_files_changed
+ # ------------------
+ # Whether the xref files were changed since the previous run.
+ xref_files_changed ()
+ {
+   # LaTeX (and the package changebar) report in the LOG file if it
+   # should be rerun.  This is needed for files included from
+   # subdirs, since texi2dvi does not try to compare xref files in
+   # subdirs.  Performing xref files test is still good since LaTeX
+   # does not report changes in xref files.
+   if grep "Rerun to get" "$in_noext.log" >&6 2>&1; then
+     return 0
+   fi
+ 
+   # If old and new lists don't at least have the same file list,
+   # then one file or another has definitely changed.
+   xref_files_new=`generated_files_get "$in_noext" xref_file_p`
+   verbose "Original xref files = $xref_files_orig"
+   verbose "New xref files      = $xref_files_new"
+   if test "x$xref_files_orig" != "x$xref_files_new"; then
+     return 0
+   fi
+ 
+   # Compare each file until we find a difference.
+   for this_file in $xref_files_new; do
+     verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..."
+     # cmp -s returns nonzero exit status if files differ.
+     if cmp -s "$this_file" "$work_bak/$this_file"; then :; else
+       verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..."
+       if $debug; then
+ 	diff -u "$work_bak/$this_file" "$this_file"
+       fi
+       return 0
+     fi
+   done
+ 
+   # No change.
+   return 1
+ }
+ 
+ 
+ 
+ ## ----------------------- ##
+ ## Running the TeX suite.  ##
+ ## ----------------------- ##
+ 
+ 
+ 
+ # run_tex ()
+ # ----------
+ # Run TeX as "$tex $in_input", taking care of errors and logs.
+ run_tex ()
+ {
+   case $in_lang:`out_lang_tex` in
+     latex:dvi)   tex=${LATEX:-latex};;
+     latex:pdf)   tex=${PDFLATEX:-pdflatex};;
+     texinfo:dvi)
+ 	# MetaPost also uses the TEX environment variable.  If the user
+ 	# has set TEX=latex for that reason, don't bomb out.
+ 	case $TEX in
+ 	  *latex) tex=tex;; # don't bother trying to find etex
+ 	       *) tex=$TEX
+ 	esac;;
+     texinfo:pdf) tex=$PDFTEX;;
+ 
+     *) error 1 "$0: $out_lang not supported for $in_lang";;
+   esac
+ 
+   # Beware of aux files in subdirectories that require the
+   # subdirectory to exist.
+   case $in_lang:$tidy in
+     latex:true)
+        sed -n 's|^[ ]*\\include{\(.*\)/.*}.*|\1|p' "$in_input" |
+        sort -u |
+        while read d
+        do
+ 	 ensure_dir "$work_build/$d"
+        done
+        ;;
+   esac
+ 
+   # Note that this will be used via an eval: quote properly.
+   local cmd="$tex"
+ 
+   # If possible, make TeX report error locations in GNU format.
+   if test "${tex_help:+set}" != set; then
+     # Go to a temporary directory to try --help, since old versions that
+     # don't accept --help will generate a texput.log.
+     tex_help_dir=$t2ddir/tex_help
+     ensure_dir "$tex_help_dir"
+     tex_help=`cd "$tex_help_dir" >&6 && $tex --help </dev/null 2>&1`
+   fi
+   if $no_line_error; then :; else
+     # The mk program and perhaps others want to parse TeX's
+     # original error messages.
+     case $line_error:$tex_help in
+       true:*file-line-error*) cmd="$cmd --file-line-error";;
+     esac
+   fi
+ 
+   # Tell TeX about TCX file, if specified.
+   test -n "$translate_file" && cmd="$cmd --translate-file=$translate_file"
+ 
+   # Tell TeX to make source specials (for backtracking from output to
+   # source, given a sufficiently smart editor), if specifed.
+   test -n "$src_specials" && cmd="$cmd $src_specials"
+ 
+   # Tell TeX to be batch if requested.
+   if $batch; then
+     # \batchmode does not show terminal output at all, so we don't
+     # want that.  And even in batch mode, TeX insists on having input
+     # from the user.  Close its stdin to make it impossible.
+     cmd="$cmd </dev/null '${escape}nonstopmode' '${escape}input'"
+   fi
+ 
+   # we'd like to handle arbitrary input file names, such as a~b.tex.
+   # This isn't a general way to do it :), though it does work, kind of.
+   # cmd="$cmd '${escape}catcode126=12 \input '"
+ 
+   # TeX's \input does not (easily or reliably) support whitespace
+   # characters or other special characters in file names.  Our intensive
+   # use of absolute file names makes this worse: the enclosing directory
+   # names may include white spaces.  Improve the situation using a
+   # symbolic link to the filename in the current directory, in tidy mode
+   # only.  Do not alter in_input.
+   #
+   # The filename is almost always tokenized using plain TeX conventions
+   # (the exception would be if the user made a texinfo.fmt file).  Not
+   # all the plain TeX special characters cause trouble, but there's no
+   # harm in making the link.
+   #
+   case $tidy:`func_dirname "$in_input"` in
+     true:*["$space$tab$newline\"#\$%\\^_{}"]*)
+       _run_tex_file_name=`basename "$in_input"`
+       if test ! -f "$_run_tex_file_name"; then
+ 	# It might not be a file, clear it.
+ 	run rm -f "$_run_tex_file_name"
+ 	run ln -s "$in_input"
+       fi
+       cmd="$cmd '$_run_tex_file_name'"
+       ;;
+ 
+     *)
+       cmd="$cmd '$in_input'"
+       ;;
+   esac
+ 
+   verbose "$0: Running $cmd ..."
+   if eval "$cmd" >&5; then
+     case $out_lang in
+       dvi | pdf ) move_to_dest "$in_noext.$out_lang";;
+     esac
+   else
+     error 1 "$tex exited with bad status, quitting."
+   fi
+ }
+ 
+ # run_bibtex ()
+ # -------------
+ # Run bibtex on current file.
+ # - If its input (AUX) exists.
+ # - If some citations are missing (LOG contains `Citation').
+ #   or the LOG complains of a missing .bbl
+ #
+ # Don't try to be too smart:
+ #
+ # 1. Running bibtex only if the bbl file exists and is older than
+ # the LaTeX file is wrong, since the document might include files
+ # that have changed.
+ #
+ # 3. Because there can be several AUX (if there are \include's),
+ # but a single LOG, looking for missing citations in LOG is
+ # easier, though we take the risk to match false messages.
+ run_bibtex ()
+ {
+   case $in_lang in
+     latex)   bibtex=${BIBTEX:-bibtex};;
+     texinfo) return;;
+   esac
+ 
+   # "Citation undefined" is for LaTeX, "Undefined citation" for btxmac.tex.
+   # The no .aux && \bibdata test is also for btxmac, in case it was the
+   # first run of a bibtex-using document.  Otherwise, it's possible that
+   # bibtex would never be run.
+   if test -r "$in_noext.aux" \
+      && test -r "$in_noext.log" \
+      && (grep 'Warning:.*Citation.*undefined' "$in_noext.log" \
+ 	  || grep '.*Undefined citation' "$in_noext.log" \
+ 	  || grep 'No file .*\.bbl\.' "$in_noext.log") \
+ 	  || (grep 'No \.aux file' "$in_noext.log" \
+ 	      && grep '^\\bibdata' "$in_noext.aux") \
+ 	>&6 2>&1; \
+   then
+     for f in `generated_files_get "$in_noext" bibaux_file_p`
+     do
+       run $bibtex "$f"
+     done
+   fi
+ }
+ 
+ # run_index ()
+ # ------------
+ # Run texindex (or makeindex) on current index files.  If they already
+ # exist, and after running TeX a first time the index files don't
+ # change, then there's no reason to run TeX again.  But we won't know
+ # that if the index files are out of date or nonexistent.
+ run_index ()
+ {
+   case $in_lang in
+     latex)   texindex=${MAKEINDEX:-makeindex};;
+     texinfo) texindex=${TEXINDEX:-texindex};;
+   esac
+   index_files=`generated_files_get $in_noext index_file_p`
+   if test -n "$texindex" && test -n "$index_files"; then
+     run $texindex $index_files
+   fi
+ }
+ 
+ 
+ # run_thumbpdf ()
+ # ---------------
+ run_thumbpdf ()
+ {
+   if test `out_lang_tex` = pdf \
+      && test -r "$in_noext.log" \
+      && grep 'thumbpdf\.sty'  "$in_noext.log" >&6 2>&1; \
+   then
+     thumbpdf=${THUMBPDF:-thumbpdf}
+     thumbcmd="$thumbpdf $in_dir/$in_noext"
+     verbose "Running $thumbcmd ..."
+     if $thumbcmd >&5; then
+       run_tex
+     else
+       report "$thumbpdf exited with bad status." \
+ 	     "Ignoring its output."
+     fi
+   fi
+ }
+ 
+ 
+ # run_dvipdf FILE.dvi
+ # -------------------
+ # Convert FILE.dvi to FILE.pdf.
+ run_dvipdf ()
+ {
+   # Find which dvi->pdf program is available.
+   if test -z "$dvipdf"; then
+     for i in "$DVIPDF" dvipdfmx dvipdfm dvipdf dvi2pdf dvitopdf;
+     do
+       if findprog $i; then
+ 	dvipdf=$i
+       fi
+     done
+   fi
+   # These tools have varying interfaces, some 'input output', others
+   # 'input -o output'.  They all seem to accept 'input' only,
+   # outputting using the expected file name.
+   run $dvipdf "$1"
+   if test ! -f `echo "$1" | sed -e 's/\.dvi$/.pdf/'`; then
+     error 1 "$0: cannot find output file"
+   fi
+ }
+ 
+ # run_tex_suite ()
+ # ----------------
+ # Run the TeX tools until a fix point is reached.
+ run_tex_suite ()
+ {
+   # Move to the working directory.
+   if $tidy; then
+     verbose "cd $work_build"
+     cd "$work_build" || exit 1
+   fi
+ 
+   # Count the number of cycles.
+   local cycle=0
+ 
+   while :; do
+     cycle=`expr $cycle + 1`
+     verbose "Cycle $cycle for $command_line_filename"
+ 
+     xref_files_save
+ 
+     # We run bibtex first, because I can see reasons for the indexes
+     # to change after bibtex is run, but I see no reason for the
+     # converse.
+     run_bibtex
+     run_index
+     run_core_conversion
+ 
+     xref_files_changed || break
+   done
+ 
+   # If we were using thumbpdf and producing PDF, then run thumbpdf
+   # and TeX one last time.
+   run_thumbpdf
+ 
+   # Install the result if we didn't already (i.e., if the output is
+   # dvipdf or ps).
+   case $out_lang in
+     dvipdf)
+       run_dvipdf "$in_noext.`out_lang_tex`"
+       move_to_dest "$in_noext.`out_lang_ext`"
+       ;;
+     ps)
+       dvips -o "$in_noext.`out_lang_ext`" "$in_noext.`out_lang_tex`"
+       move_to_dest "$in_noext.`out_lang_ext`"
+       ;;
+   esac
+ 
+   cd_orig
+ }
+ 
+ ## -------------------------------- ##
+ ## TeX processing auxiliary tools.  ##
+ ## -------------------------------- ##
+ 
+ 
+ # A sed script that preprocesses Texinfo sources in order to keep the
+ # iftex sections only.  We want to remove non TeX sections, and comment
+ # (with `@c texi2dvi') TeX sections so that makeinfo does not try to
+ # parse them.  Nevertheless, while commenting TeX sections, don't
+ # comment @macro/@end macro so that makeinfo does propagate them.
+ # Unfortunately makeinfo --iftex --no-ifinfo doesn't work well enough
+ # (yet), makeinfo can't parse the TeX commands, so work around with sed.
+ #
+ comment_iftex=\
+ '/^@tex/,/^@end tex/{
+   s/^/@c texi2dvi/
+ }
+ /^@iftex/,/^@end iftex/{
+   s/^/@c texi2dvi/
+   /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{
+     s/^@c texi2dvi//
+   }
+ }
+ /^@ifnottex/,/^@end ifnottex/{
+   s/^/@c (texi2dvi)/
+ }
+ /^@ifinfo/,/^@end ifinfo/{
+   /^@node/p
+   /^@menu/,/^@end menu/p
+   t
+   s/^/@c (texi2dvi)/
+ }
+ s/^@ifnotinfo/@c texi2dvi@ifnotinfo/
+ s/^@end ifnotinfo/@c texi2dvi@end ifnotinfo/'
+ 
+ # Uncommenting is simple: Remove any leading `@c texi2dvi'.
+ uncomment_iftex='s/^@c texi2dvi//'
+ 
+ 
+ # run_makeinfo ()
+ # ---------------
+ # Expand macro commands in the original source file using Makeinfo.
+ # Always use `end' footnote style, since the `separate' style
+ # generates different output (arguably this is a bug in -E).  Discard
+ # main info output, the user asked to run TeX, not makeinfo.
+ run_makeinfo ()
+ {
+   test $in_lang = texinfo \
+     || return 0
+ 
+   # Unless required by the user, makeinfo expansion is wanted only
+   # if texinfo.tex is too old.
+   if test "$expand" = t; then
+     makeinfo=${MAKEINFO:-makeinfo}
+   else
+     # Check if texinfo.tex performs macro expansion by looking for
+     # its version.  The version is a date of the form YEAR-MO-DA.
+     # We don't need to use [0-9] to match the digits since anyway
+     # the comparison with $txiprereq, a number, will fail with non
+     # digits.
+     # Run in a temporary directory to avoid leaving files.
+     version_test_dir=$t2ddir/version_test
+     ensure_dir "$version_test_dir"
+     (
+        cd "$version_test_dir"
+        echo '\input texinfo.tex @bye' >txiversion.tex
+        # Be sure that if tex wants to fail, it is not interactive:
+        # close stdin.
+        $TEX txiversion.tex </dev/null >txiversion.out 2>txiversion.err
+     )
+     if test $? != 0; then
+       cat "$version_test_dir/txiversion.out"
+       cat "$version_test_dir/txiversion.err" >&2
+       error 1 "texinfo.tex appears to be broken, quitting."
+     fi
+     eval `sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p' "$version_test_dir/txiversion.out"`
+     verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..."
+     if test "$txiprereq" -le "$txiversion" >&6 2>&1; then
+       makeinfo=
+     else
+       makeinfo=${MAKEINFO:-makeinfo}
+     fi
+     # As long as we had to run TeX, offer the user this convenience:
+     if test "$txiformat" = Texinfo; then
+ 	escape=@
+     fi
+   fi
+ 
+   if test -n "$makeinfo"; then
+     # in_src: the file with macros expanded.
+     # Use the same basename to generate the same aux file names.
+     work_src=$workdir/src
+     ensure_dir "$work_src"
+     in_src=$work_src/$in_base
+     local miincludes
+     miincludes=`list_prefix includes -I`
+     verbose "Macro-expanding $command_line_filename to $in_src ..."
+     # eval $makeinfo because it might be defined as something complex
+     # (running missing) and then we end up with things like '"-I"',
+     # and "-I" (including the quotes) is not an option name.  This
+     # happens with gettext 0.14.5, at least.
+     sed "$comment_iftex" "$command_line_filename" \
+       | eval $makeinfo --footnote-style=end -I "$in_dir" $miincludes \
+ 	-o /dev/null --macro-expand=- \
+       | sed "$uncomment_iftex" >"$in_src"
+     # Continue only if everything succeeded.
+     if test $? -ne 0 \
+        || test ! -r "$in_src"; then
+       verbose "Expansion failed, ignored...";
+     else
+       in_input=$in_src
+     fi
+   fi
+ }
+ 
+ # insert_commands ()
+ # ------------------
+ # Used most commonly for @finalout, @smallbook, etc.
+ insert_commands ()
+ {
+   local textra_cmd
+   case $in_lang in
+     latex)   textra_cmd=1i;;
+     texinfo) textra_cmd='/^@setfilename/a';;
+     *)       error 1 "internal error, unknown language: $in_lang";;
+   esac
+ 
+   if test -n "$textra"; then
+     # _xtr.  The file with the user's extra commands.
+     work_xtr=$workdir/xtr
+     in_xtr=$work_xtr/$in_base
+     ensure_dir "$work_xtr"
+     verbose "Inserting extra commands: $textra"
+     sed "$textra_cmd\\
+ $textra" "$in_input" >"$in_xtr"
+     in_input=$in_xtr
+   fi
+ }
+ 
+ # run_recode ()
+ # -------------
+ # If this is a Texinfo file with a specified input encoding, and
+ # recode is available, then recode to plain 7 bit Texinfo.
+ run_recode ()
+ {
+   local from
+   local to
+ 
+   if test $in_lang = texinfo; then
+     pgm='s/^ *@documentencoding  *\([^ ][^ ]*\) *$/\1/
+ 	t found
+ 	d
+ 	:found
+ 	q'
+     encoding=`sed -e "$pgm" "$in_input"`
+     if $recode && test -n "$encoding" && findprog recode; then
+       if test -n "$recode_from"; then
+ 	from=$recode_from
+ 	to=$encoding
+       else
+ 	from=$encoding
+ 	to=$texinfo
+       fi
+       verbose "Recoding from $from to $to."
+       # _rcd.  The Texinfo file recoded in 7bit.
+       work_rcd=$workdir/recode
+       in_rcd=$work_rcd/$in_base
+       ensure_dir "$work_rcd"
+       if recode "$encoding..$to" <"$in_input" >"$in_rcd" \
+ 	 && test -s "$in_rcd"; then
+ 	in_input=$in_rcd
+       else
+ 	verbose "Recoding failed, using original input."
+       fi
+     fi
+   fi
+ }
+ 
+ # compute_language FILENAME
+ # -------------------------
+ # Return the short string describing the language in which FILENAME
+ # is written: `texinfo' or `latex'.
+ compute_language ()
+ {
+   # If the user explicitly specified the language, use that.
+   # Otherwise, if the first line is \input texinfo, assume it's texinfo.
+   # Otherwise, guess from the file extension.
+   if test -n "$set_language"; then
+     echo $set_language
+   elif sed 1q "$1" | grep 'input texinfo' >&6; then
+     echo texinfo
+   else
+     # Get the type of the file (latex or texinfo) from the given language
+     # we just guessed, or from the file extension if not set yet.
+     case $1 in
+       *.ltx | *.tex | *.drv | *.dtx) echo latex;;
+       *)                             echo texinfo;;
+     esac
+   fi
+ }
+ 
+ 
+ # run_hevea (MODE)
+ # ----------------
+ # Convert to HTML/INFO/TEXT.
+ #
+ # Don't pass `-noiso' to hevea: it's useless in HTML since anyway the
+ # charset is set to latin1, and troublesome in other modes since
+ # accented characters loose their accents.
+ #
+ # Don't pass `-o DEST' to hevea because in that case it leaves all its
+ # auxiliary files there too...  Too bad, because it means we will need
+ # to handle images some day.
+ run_hevea ()
+ {
+   local hevea="${HEVEA:-hevea}"
+   local run_hevea="$hevea"
+ 
+   case $1 in
+     html) ;;
+     text|info) run_hevea="$run_hevea -$1";;
+     *) error 1 "run_hevea: invalid argument: $1";;
+   esac
+ 
+   # Compiling to the tmp directory enables to preserve a previous
+   # successful compilation.
+   run_hevea="$run_hevea -fix -O -o '$out_base'"
+   run_hevea="$run_hevea `list_prefix includes -I` -I '$orig_pwd' "
+   run_hevea="$run_hevea '$in_input'"
+ 
+   if $debug; then
+     run_hevea="$run_hevea -v -v"
+   fi
+ 
+   verbose "running $run_hevea"
+   if eval "$run_hevea" >&5; then
+     # hevea leaves trailing white spaces, this is annoying.
+     case $1 in text|info)
+       perl -pi -e 's/[ \t]+$//g' "$out_base"*;;
+     esac
+     case $1 in
+     html|text) move_to_dest "$out_base";;
+     info) # There can be foo.info-1, foo.info-2 etc.
+ 	       move_to_dest "$out_base"*;;
+     esac
+   else
+     error 1 "$hevea exited with bad status, quitting."
+   fi
+ }
+ 
+ 
+ # run_core_conversion ()
+ # ----------------------
+ # Run the TeX (or HeVeA).
+ run_core_conversion ()
+ {
+   case $in_lang:`out_lang_tex` in
+     *:dvi|*:pdf)
+ 	run_tex;;
+     latex:html|latex:text|latex:info)
+ 	run_hevea $out_lang;;
+     *)
+ 	error 1 "invalid input/output combination: $in_lang/$out_lang";;
+   esac
+ }
+ 
+ 
+ # compile ()
+ # ----------
+ # Run the full compilation chain, from pre-processing to installation
+ # of the output at its expected location.
+ compile ()
+ {
+   # Source file might include additional sources.
+   # We want `.:$orig_pwd' before anything else.  (We'll add `.:' later
+   # after all other directories have been turned into absolute paths.)
+   # `.' goes first to ensure that any old .aux, .cps,
+   # etc. files in ${directory} don't get used in preference to fresher
+   # files in `.'.  Include orig_pwd in case we are in clean build mode, where
+   # we've cd'd to a temp directory.
+   txincludes=`list_infix includes $path_sep`
+   common="$orig_pwd$path_sep$in_dir$path_sep$txincludes$path_sep"
+   for var in $tex_envvars; do
+     eval val="\$common\$${var}_orig"
+     # Convert relative paths to absolute paths, so we can run in another
+     # directory (e.g., in clean build mode, or during the macro-support
+     # detection). ".:" is added here.
+     val=`absolute_filenames "$val"`
+     eval $var="\"$val\""
+     export $var
+     eval verbose \"$var=\'\$${var}\'\"
+   done
+ 
+   # --expand
+   run_makeinfo
+ 
+   # --command, --texinfo
+   insert_commands
+ 
+   # --recode
+   run_recode
+ 
+   # Run until a fix point is reached.
+   run_tex_suite
+ }
+ 
+ 
+ # remove FILES
+ # ------------
+ remove ()
+ {
+   verbose "Removing" "$@"
+   rm -rf "$@"
+ }
+ 
+ 
+ # mostly_clean
+ # ------------
+ # Remove auxiliary files and directories.  Changes the current directory.
+ mostly_clean ()
+ {
+   cd_orig
+   set X "$t2ddir"
+   shift
+   $tidy || {
+     local log="$work_build/$in_noext.log"
+     set X ${1+"$@"} "$log" `generated_files_get "$work_build/$in_noext"`
+     shift
+   }
+   remove ${1+"$@"}
+ }
+ 
+ 
+ # cleanup ()
+ # ----------
+ # Remove what should be removed according to options.
+ # Called at the end of each compilation cycle, and at the end of
+ # the script.  Changes the current directory.
+ cleanup ()
+ {
+   case $build_mode in
+     local) cd_orig; remove "$t2ddir";;
+     clean) mostly_clean;;
+     tidy)  ;;
+   esac
+ }
+ 
+ 
+ 
+ ## ---------------------- ##
+ ## Command line parsing.  ##
+ ## ---------------------- ##
+ 
+ # Push a token among the arguments that will be used to notice when we
+ # ended options/arguments parsing.
+ # Use "set dummy ...; shift" rather than 'set - ..." because on
+ # Solaris set - turns off set -x (but keeps set -e).
+ # Use ${1+"$@"} rather than "$@" because Digital Unix and Ultrix 4.3
+ # still expand "$@" to a single argument (the empty string) rather
+ # than nothing at all.
+ arg_sep="$$--$$"
+ set dummy ${1+"$@"} "$arg_sep"; shift
+ 
+ # 
+ # Parse command line arguments.
+ while test x"$1" != x"$arg_sep"; do
+ 
+   # Handle --option=value by splitting apart and putting back on argv.
+   case "$1" in
+     --*=*)
+       opt=`echo "$1" | sed -e 's/=.*//'`
+       val=`echo "$1" | sed -e 's/[^=]*=//'`
+       shift
+       set dummy "$opt" "$val" ${1+"$@"}; shift
+       ;;
+   esac
+ 
+   # This recognizes --quark as --quiet.  So what.
+   case "$1" in
+     -@ ) escape=@;;
+     # Silently and without documentation accept -b and --b[atch] as synonyms.
+     -b | --batch) batch=true;;
+ 	 --build)      shift; build_mode=$1;;
+ 	 --build-dir)  shift; build_dir=$1; build_mode=tidy;;
+     -c | --clean) build_mode=clean;;
+     -D | --debug) debug=true;;
+ 	 --dvi)   out_lang=dvi;;
+ 	 --dvipdf)   out_lang=dvipdf;;
+     -e | -E | --expand) expand=t;;
+     -h | --help) usage;;
+ 	 --html) out_lang=html;;
+     -I)   shift; list_concat_dirs includes "$1";;
+     --info) out_lang=info;;
+     -l | --lang | --language) shift; set_language=$1;;
+     --mostly-clean) action=mostly-clean;;
+     --no-line-error) no_line_error=true;;
+     -o | --out  | --output)
+       shift
+       # Make it absolute, just in case we also have --clean, or whatever.
+       oname=`absolute "$1"`;;
+     -p | --pdf) out_lang=pdf;;
+ 	 --ps)  out_lang=ps;;
+     -q | -s | --quiet | --silent) quiet=true; batch=true;;
+     -r | --recode) recode=true;;
+     --recode-from) shift; recode=true; recode_from="$1";;
+     --src-specials) src_specials=--src-specials;;
+     -t | --texinfo | --command ) shift; textra="$textra\\
+ "`echo "$1" | sed 's/\\\\/\\\\\\\\/g'`;;
+     --text) out_lang=text;;
+     --translate-file ) shift; translate_file="$1";;
+     --tidy) build_mode=tidy;;
+     -v | --vers*) version;;
+     -V | --verb*) verb=true;;
+     --) # What remains are not options.
+       shift
+       while test x"$1" != x"$arg_sep"; do
+ 	set dummy ${1+"$@"} "$1"; shift
+ 	shift
+       done
+       break;;
+     -*)
+       error 1 "Unknown or ambiguous option \`$1'." \
+ 	      "Try \`--help' for more information."
+       ;;
+     *) set dummy ${1+"$@"} "$1"; shift;;
+    esac
+    shift
+ done
+ # Pop the token
+ shift
+ 
+ # $tidy:  compile in a t2d directory.
+ # $clean: remove all the aux files.
+ case $build_mode in
+   local) clean=false; tidy=false;;
+   tidy)  clean=false; tidy=true;;
+   clean) clean=true;  tidy=true;;
+       *) error 1 "invalid build mode: $build_mode";;
+ esac
+ 
+ # Interpret remaining command line args as filenames.
+ case $# in
+  0)
+   error 2 "Missing file arguments." "Try \`--help' for more information."
+   ;;
+  1) ;;
+  *)
+   if test -n "$oname"; then
+     error 2 "Can't use option \`--output' with more than one argument."
+   fi
+   ;;
+ esac
+ 
+ 
+ # We can't do much without tex.
+ #
+ if findprog ${TEX:-tex}; then :; else cat <<EOM
+ You don't have a working TeX binary (${TEX:-tex}) installed anywhere in
+ your PATH, and texi2dvi cannot proceed without one.  If you want to use
+ this script, you'll need to install TeX (if you don't have it) or change
+ your PATH or TEX environment variable (if you do).  See the --help
+ output for more details.
+ 
+ For information about obtaining TeX, please see http://www.tug.org.  If
+ you happen to be using Debian, you can get it with this command:
+   apt-get install tetex-bin
+ EOM
+   exit 1
+ fi
+ 
+ 
+ # We want to use etex (or pdftex) if they are available, and the user
+ # didn't explicitly specify.  We don't check for elatex and pdfelatex
+ # because (as of 2003), the LaTeX team has asked that new distributions
+ # use etex by default anyway.
+ #
+ # End up with the TEX and PDFTEX variables set to what we are going to use.
+ if test -z "$TEX"; then
+   if findprog etex; then TEX=etex; else TEX=tex; fi
+ fi
+ #
+ if test -z "$PDFTEX"; then
+   if findprog pdfetex; then PDFTEX=pdfetex; else PDFTEX=pdftex; fi
+ fi
+ 
+ 
+ # File descriptor usage:
+ # 0 standard input
+ # 1 standard output (--verbose messages)
+ # 2 standard error
+ # 3 some systems may open it to /dev/tty
+ # 4 used on the Kubota Titan
+ # 5 tools output (turned off by --quiet)
+ # 6 tracing/debugging (set -x output, etc.)
+ 
+ 
+ # Main tools' output (TeX, etc.) that TeX users are used to seeing.
+ #
+ # If quiet, discard, else redirect to the message flow.
+ if $quiet; then
+   exec 5>/dev/null
+ else
+   exec 5>&1
+ fi
+ 
+ 
+ # Enable tracing, and auxiliary tools output.
+ #
+ # Should be used where you'd typically use /dev/null to throw output
+ # away.  But sometimes it is convenient to see that output (e.g., from
+ # a grep) to aid debugging.  Especially debugging at distance, via the
+ # user.
+ if $debug; then
+   exec 6>&1
+   set -x
+ else
+   exec 6>/dev/null
+ fi
+ 
+ # 
+ 
+ # input_file_name_decode
+ # ----------------------
+ # Decode COMMAND_LINE_FILENAME, and compute:
+ # - COMMAND_LINE_FILENAME clean of TeX commands
+ # - IN_DIR
+ #   The directory to the input file, possibly absolute if needed.
+ # - IN_DIR_ABS
+ #   The absolute directory of the input file.
+ # - IN_BASE
+ #   The input file base name (no directory part).
+ # - IN_NOEXT
+ #   The input file name without extensions (nor directory part).
+ # - IN_INPUT
+ #   Defaults to COMMAND_LINE_FILENAME, but might change if the
+ #   input is preprocessed (recode etc.).  With directory, possibly absolute.
+ input_file_name_decode ()
+ {
+   # See if we are run from within AUC-Tex, in which case we are
+   # passed `\input{FOO.tex}' or even `\nonstopmode\input{FOO.tex}'.
+   case $command_line_filename in
+     *\\nonstopmode*)
+       batch=true;;
+   esac
+   case $command_line_filename in
+     *\\input{*}*)
+       # Let AUC-TeX error parser deal with line numbers.
+       line_error=false
+       command_line_filename=`\
+ 	expr X"$command_line_filename" : X'.*input{\([^}]*\)}'`
+       ;;
+   esac
+ 
+   # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex),
+   # prepend `./' in order to avoid that the tools take it as an option.
+   echo "$command_line_filename" | $EGREP '^(/|[A-z]:/)' >&6 \
+   || command_line_filename="./$command_line_filename"
+ 
+   # See if the file exists.  If it doesn't we're in trouble since, even
+   # though the user may be able to reenter a valid filename at the tex
+   # prompt (assuming they're attending the terminal), this script won't
+   # be able to find the right xref files and so forth.
+   test -r "$command_line_filename" ||
+     error 1 "cannot read $command_line_filename, skipping."
+ 
+   # Get the name of the current directory.
+   in_dir=`func_dirname "$command_line_filename"`
+   in_dir_abs=`absolute "$in_dir"`
+   # In a clean build, we `cd', so get an absolute file name.
+   if $tidy; then
+     in_dir=$in_dir_abs
+   fi
+ 
+   # Strip directory part but leave extension.
+   in_base=`basename "$command_line_filename"`
+   # Strip extension.
+   in_noext=`echo "$in_base" | sed 's/\.[^.]*$//'`
+ 
+   # The normalized file name to compile.  Must always point to the
+   # file to actually compile (in case of recoding, macro-expansion etc.).
+   in_input=$in_dir/$in_base
+ 
+ 
+   # Compute the output file name.
+   if test x"$oname" != x; then
+     out_name=$oname
+   else
+     out_name=$in_noext.`out_lang_ext`
+   fi
+   out_dir=`func_dirname "$out_name"`
+   out_dir_abs=`absolute "$out_dir"`
+   out_base=`basename "$out_name"`
+   out_noext=`echo "$out_base" | sed 's/\.[^.]*$//'`
+ }
+ 
+ 
+ ## -------------- ##
+ ## TeXify files.  ##
+ ## -------------- ##
+ 
+ for command_line_filename
+ do
+   verbose "Processing $command_line_filename ..."
+ 
+   input_file_name_decode
+ 
+   # `texinfo' or `latex'?
+   in_lang=`compute_language "$command_line_filename"`
+ 
+   # An auxiliary directory used for all the auxiliary tasks involved
+   # in compiling this document.
+   case $build_dir in
+       '' | . ) t2ddir=$out_noext.t2d ;;
+       *) # Avoid collisions between multiple occurrences of the same
+ 	 # file.  The sed expression is fragile if the cwd has
+ 	 # active characters.
+ 	 t2ddir=$build_dir/`echo "$out_dir_abs/$out_noext.t2d" |
+ 	     sed "s,^$orig_pwd/,," |
+ 	     sed 's,/,!,g'`
+   esac
+   # Remove it at exit if clean mode.
+   trap "cleanup" 0 1 2 15
+ 
+   ensure_dir "$build_dir" "$t2ddir"
+ 
+   # We will change directory, better work with an absolute path...
+   t2ddir=`absolute "$t2ddir"`
+   # Sometimes there are incompatibilities between auxiliary files for
+   # DVI and PDF.  The contents can also change whether we work on PDF
+   # and/or DVI.  So keep separate spaces for each.
+   workdir=$t2ddir/`out_lang_tex`
+   ensure_dir "$workdir"
+ 
+   # _build.  In a tidy build, where the auxiliary files are output.
+   if $tidy; then
+     work_build=$workdir/build
+   else
+     work_build=.
+   fi
+ 
+   # _bak.  Copies of the previous auxiliary files (another round is
+   # run if they differ from the new ones).
+   work_bak=$workdir/bak
+ 
+   # Make those directories.
+   ensure_dir "$work_build" "$work_bak"
+ 
+   case $action in
+     compile)
+       # Compile the document.
+       compile
+       cleanup
+       ;;
+ 
+     mostly-clean)
+       mostly_clean
+       ;;
+   esac
+ done
+ 
+ verbose "done."
+ exit 0 # exit successfully, not however we ended the loop.
diff -Nrc2 texinfo-4.12/util/texi2dvi.test texinfo-4.13/util/texi2dvi.test
*** texinfo-4.12/util/texi2dvi.test	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/texi2dvi.test	Sat Jul  5 16:32:20 2008
***************
*** 0 ****
--- 1,84 ----
+ #! /bin/sh
+ # Copyright (C) 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ #
+ # This file is part of GNU Texinfo.
+ #
+ # GNU Texinfo 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 3 of the License,
+ # or (at your option) any later version.
+ #
+ # GNU Texinfo 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, see <http://www.gnu.org/licenses/>.
+ 
+ required='tex'
+ 
+ . ./defs || exit 1
+ 
+ set -e
+ 
+ # one_run ARGS -- FILES
+ # ---------------------
+ # Run texi2dvi with ARGS, expect the FILES to be left.  Remove them.
+ one_run ()
+ {
+   # Testing the local build mode.
+   # Use @foo to check that -t works properly.
+   echo "@foo" | create_input_texi
+   TEXI2DVI_pass $(optionset_get 1 "$@") \
+      -t '@macro foo' \
+      -t 'Foo'        \
+      -t '@end macro' \
+      input.texi
+   # There should only be the expected FILES and the input file.
+   assert_and_remove_files $(optionset_get 2 "$@") input.texi
+ }
+ 
+ one_run --batch \
+    -- \
+    input.aux input.cp input.dvi input.fn input.ky input.log \
+    input.pg input.tp input.vr
+ 
+ 
+ one_run --batch -o output.dvi \
+    -- \
+    input.aux input.cp input.fn input.ky input.log \
+    input.pg input.tp input.vr output.dvi
+ 
+ 
+ # Testing the clean build mode.
+ for mode in --clean --build=clean
+ do
+   # There should only be the DVI and the TEXI file.
+   one_run $mode --batch -- input.dvi
+ 
+   # There should only be the DVI and the TEXI file.
+   one_run $mode --batch -o output.dvi -- output.dvi
+ done
+ 
+ 
+ # Testing the tidy build mode.
+ one_run --build=tidy --batch -o output.dvi \
+    -- \
+    output.dvi output.t2d
+ 
+ 
+ # mostly-clean should remove auxiliary files, but not the expected
+ # output.
+ touch output.dvi
+ one_run --build=tidy --batch -o output.dvi --mostly-clean \
+    -- \
+    output.dvi
+ 
+ 
+ # There should only be the DVI and the TEXI file.
+ create_input_texi </dev/null
+ cp input.texi input2.texi
+ one_run --clean --batch input.texi input2.texi \
+    -- \
+    input2.dvi input2.texi input.dvi
diff -Nrc2 texinfo-4.12/util/texi2pdf texinfo-4.13/util/texi2pdf
*** texinfo-4.12/util/texi2pdf	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/texi2pdf	Thu Jan 27 17:52:04 2005
***************
*** 0 ****
--- 1,19 ----
+ #!/bin/sh
+ # $Id: texi2pdf,v 1.2 2005/01/28 01:52:04 karl Exp $
+ # Written by Thomas Esser.  Public domain.
+ # Execute texi2dvi --pdf.
+ 
+ test -f /bin/ksh && test -z "$RUNNING_KSH" \
+   && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \
+   && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; }
+ unset RUNNING_KSH
+ 
+ test -f /bin/bsh && test -z "$RUNNING_BSH" \
+   && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \
+   && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; }
+ unset RUNNING_BSH
+ 
+ # hack around a bug in zsh:
+ test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"'
+ 
+ texi2dvi --pdf ${1+"$@"}
diff -Nrc2 texinfo-4.12/util/texindex.c texinfo-4.13/util/texindex.c
*** texinfo-4.12/util/texindex.c	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/texindex.c	Wed Feb 27 10:32:25 2008
***************
*** 0 ****
--- 1,1194 ----
+ /* texindex -- sort TeX index dribble output into an actual index.
+    $Id: texindex.c,v 1.24 2008/02/22 19:18:25 karl Exp $
+ 
+    Copyright (C) 1987, 1991, 1992, 1996, 1997, 1998, 1999, 2000, 2001,
+    2002, 2003, 2004, 2005, 2006, 2007, 2008 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 3 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, see <http://www.gnu.org/licenses/>.  */
+ 
+ #include "system.h"
+ #include <getopt.h>
+ 
+ char *program_name = "texindex";
+ 
+ #if defined (emacs)
+ #  include "../src/config.h"
+ /* Some s/os.h files redefine these. */
+ #  undef read
+ #  undef close
+ #  undef write
+ #  undef open
+ #endif
+ 
+ #if !defined (HAVE_MEMSET)
+ #undef memset
+ #define memset(ptr, ignore, count) bzero (ptr, count)
+ #endif
+ 
+ #if !defined (SEEK_SET)
+ #  define SEEK_SET 0
+ #  define SEEK_CUR 1
+ #  define SEEK_END 2
+ #endif /* !SEEK_SET */
+ 
+ /* When sorting in core, this structure describes one line
+    and the position and length of its first keyfield.  */
+ struct lineinfo
+ {
+   char *text;           /* The actual text of the line. */
+   union {
+     char *text;         /* The start of the key (for textual comparison). */
+     long number;        /* The numeric value (for numeric comparison). */
+   } key;
+   long keylen;          /* Length of KEY field. */
+ };
+ 
+ /* This structure describes a field to use as a sort key. */
+ struct keyfield
+ {
+   int startwords;       /* Number of words to skip. */
+   int startchars;       /* Number of additional chars to skip. */
+   int endwords;         /* Number of words to ignore at end. */
+   int endchars;         /* Ditto for characters of last word. */
+   char ignore_blanks;   /* Non-zero means ignore spaces and tabs. */
+   char fold_case;       /* Non-zero means case doesn't matter. */
+   char reverse;         /* Non-zero means compare in reverse order. */
+   char numeric;         /* Non-zeros means field is ASCII numeric. */
+   char positional;      /* Sort according to file position. */
+   char braced;          /* Count balanced-braced groupings as fields. */
+ };
+ 
+ /* Vector of keyfields to use. */
+ struct keyfield keyfields[3];
+ 
+ /* Number of keyfields stored in that vector.  */
+ int num_keyfields = 3;
+ 
+ /* Vector of input file names, terminated with a null pointer. */
+ char **infiles;
+ 
+ /* Vector of corresponding output file names, or NULL, meaning default it
+    (add an `s' to the end). */
+ char **outfiles;
+ 
+ /* Length of `infiles'. */
+ int num_infiles;
+ 
+ /* Pointer to the array of pointers to lines being sorted. */
+ char **linearray;
+ 
+ /* The allocated length of `linearray'. */
+ long nlines;
+ 
+ /* During in-core sort, this points to the base of the data block
+    which contains all the lines of data.  */
+ char *text_base;
+ 
+ /* Initially 0; changed to 1 if we want initials in this index.  */
+ int need_initials;
+ 
+ /* Remembers the first initial letter seen in this index, so we can
+    determine whether we need initials in the sorted form.  */
+ char first_initial;
+ 
+ /* Forward declarations of functions in this file. */
+ void decode_command (int argc, char **argv);
+ void sort_in_core (char *infile, int total, char *outfile);
+ char **parsefile (char *filename, char **nextline, char *data, long int size);
+ char *find_field (struct keyfield *keyfield, char *str, long int *lengthptr);
+ char *find_pos (char *str, int words, int chars, int ignore_blanks);
+ long find_value (char *start, long int length);
+ char *find_braced_pos (char *str, int words, int chars, int ignore_blanks);
+ char *find_braced_end (char *str);
+ void writelines (char **linearray, int nlines, FILE *ostream);
+ int compare_field (struct keyfield *keyfield, char *start1,
+                    long int length1, long int pos1, char *start2,
+                    long int length2, long int pos2);
+ int compare_full (const void *, const void *);
+ void pfatal_with_name (const char *name);
+ void fatal (const char *format, const char *arg);
+ void error (const char *format, const char *arg);
+ void *xmalloc (), *xrealloc ();
+ static char *concat3 (const char *, const char *, const char *);
+ 
+ int
+ main (int argc, char *argv[])
+ {
+   int i;
+ 
+ #ifdef HAVE_SETLOCALE
+   /* Set locale via LC_ALL.  */
+   setlocale (LC_ALL, "");
+ #endif
+ 
+   /* Set the text message domain.  */
+   bindtextdomain (PACKAGE, LOCALEDIR);
+   textdomain (PACKAGE);
+ 
+   /* In case we write to a redirected stdout that fails.  */
+   /* not ready atexit (close_stdout); */
+ 
+   /* Describe the kind of sorting to do. */
+   /* The first keyfield uses the first braced field and folds case. */
+   keyfields[0].braced = 1;
+   keyfields[0].fold_case = 1;
+   keyfields[0].endwords = -1;
+   keyfields[0].endchars = -1;
+ 
+   /* The second keyfield uses the second braced field, numerically. */
+   keyfields[1].braced = 1;
+   keyfields[1].numeric = 1;
+   keyfields[1].startwords = 1;
+   keyfields[1].endwords = -1;
+   keyfields[1].endchars = -1;
+ 
+   /* The third keyfield (which is ignored while discarding duplicates)
+      compares the whole line. */
+   keyfields[2].endwords = -1;
+   keyfields[2].endchars = -1;
+ 
+   decode_command (argc, argv);
+ 
+   /* Process input files completely, one by one.  */
+ 
+   for (i = 0; i < num_infiles; i++)
+     {
+       int desc;
+       off_t ptr;
+       char *outfile;
+       struct stat instat;
+ 
+       desc = open (infiles[i], O_RDONLY, 0);
+       if (desc < 0)
+         pfatal_with_name (infiles[i]);
+ 
+       if (stat (infiles[i], &instat))
+         pfatal_with_name (infiles[i]);
+       if (S_ISDIR (instat.st_mode))
+         {
+ #ifdef EISDIR
+           errno = EISDIR;
+ #endif
+           pfatal_with_name (infiles[i]);
+         }
+ 
+       lseek (desc, (off_t) 0, SEEK_END);
+       ptr = (off_t) lseek (desc, (off_t) 0, SEEK_CUR);
+ 
+       close (desc);
+ 
+       outfile = outfiles[i];
+       if (!outfile)
+         outfile = concat3 (infiles[i], "s", "");
+ 
+       need_initials = 0;
+       first_initial = '\0';
+ 
+       if (ptr != (int)ptr)
+ 	{
+ 	  fprintf (stderr, "%s: %s: file too large\n", program_name,
+ 		   infiles[i]);
+ 	  xexit (1);
+ 	}
+       sort_in_core (infiles[i], (int)ptr, outfile);
+     }
+ 
+   xexit (0);
+   return 0; /* Avoid bogus warnings.  */
+ }
+ 
+ typedef struct
+ {
+   char *long_name;
+   char *short_name;
+   int *variable_ref;
+   int variable_value;
+   char *arg_name;
+   char *doc_string;
+ } TEXINDEX_OPTION;
+ 
+ TEXINDEX_OPTION texindex_options[] = {
+   { "--help", "-h", (int *)NULL, 0, (char *)NULL,
+       N_("display this help and exit") },
+   { "--output", "-o", (int *)NULL, 0, "FILE",
+       N_("send output to FILE") },
+   { "--version", (char *)NULL, (int *)NULL, 0, (char *)NULL,
+       N_("display version information and exit") },
+   { (char *)NULL, (char *)NULL, (int *)NULL, 0, (char *)NULL }
+ };
+ 
+ void
+ usage (int result_value)
+ {
+   register int i;
+   FILE *f = result_value ? stderr : stdout;
+ 
+   fprintf (f, _("Usage: %s [OPTION]... FILE...\n"), program_name);
+   fprintf (f, _("Generate a sorted index for each TeX output FILE.\n"));
+   /* Avoid trigraph nonsense.  */
+   fprintf (f,
+ _("Usually FILE... is specified as `foo.%c%c\' for a document `foo.texi'.\n"),
+            '?', '?'); /* avoid trigraph in cat-id-tbl.c */
+   fprintf (f, _("\nOptions:\n"));
+ 
+   for (i = 0; texindex_options[i].long_name; i++)
+     {
+       putc (' ', f);
+ 
+       if (texindex_options[i].short_name)
+         fprintf (f, "%s, ", texindex_options[i].short_name);
+ 
+       fprintf (f, "%s %s",
+                texindex_options[i].long_name,
+                texindex_options[i].arg_name
+                ? texindex_options[i].arg_name : "");
+ 
+       fprintf (f, "\t%s\n", _(texindex_options[i].doc_string));
+     }
+   fputs (_("\n\
+ Email bug reports to bug-texinfo@gnu.org,\n\
+ general questions and discussion to help-texinfo@gnu.org.\n\
+ Texinfo home page: http://www.gnu.org/software/texinfo/"), f);
+   fputs ("\n", f);
+ 
+   xexit (result_value);
+ }
+ 
+ /* Decode the command line arguments to set the parameter variables
+    and set up the vector of keyfields and the vector of input files. */
+ 
+ void
+ decode_command (int argc, char **argv)
+ {
+   int arg_index = 1;
+   char **ip;
+   char **op;
+ 
+   /* Allocate ARGC input files, which must be enough.  */
+ 
+   infiles = (char **) xmalloc (argc * sizeof (char *));
+   outfiles = (char **) xmalloc (argc * sizeof (char *));
+   ip = infiles;
+   op = outfiles;
+ 
+   while (arg_index < argc)
+     {
+       char *arg = argv[arg_index++];
+ 
+       if (*arg == '-')
+         {
+           if (strcmp (arg, "--version") == 0)
+             {
+               printf ("texindex (GNU %s) %s\n", PACKAGE, VERSION);
+               puts ("");
+               printf (_("Copyright (C) %s Free Software Foundation, Inc.\n\
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n\
+ This is free software: you are free to change and redistribute it.\n\
+ There is NO WARRANTY, to the extent permitted by law.\n"),
+ 	      "2008");
+               xexit (0);
+             }
+           else if ((strcmp (arg, "--keep") == 0) ||
+                    (strcmp (arg, "-k") == 0))
+             {
+ 	      /* Ignore, for backward compatibility */
+             }
+           else if ((strcmp (arg, "--help") == 0) ||
+                    (strcmp (arg, "-h") == 0))
+             {
+               usage (0);
+             }
+           else if ((strcmp (arg, "--output") == 0) ||
+                    (strcmp (arg, "-o") == 0))
+             {
+               if (argv[arg_index] != (char *)NULL)
+                 {
+                   arg_index++;
+                   if (op > outfiles)
+                     *(op - 1) = argv[arg_index];
+                 }
+               else
+                 usage (1);
+             }
+           else
+             usage (1);
+         }
+       else
+         {
+           *ip++ = arg;
+           *op++ = (char *)NULL;
+         }
+     }
+ 
+   /* Record number of keyfields and terminate list of filenames. */
+   num_infiles = ip - infiles;
+   *ip = (char *)NULL;
+   if (num_infiles == 0)
+     usage (1);
+ }
+ 
+ /* Compare LINE1 and LINE2 according to the specified set of keyfields. */
+ 
+ int
+ compare_full (const void *p1, const void *p2)
+ {
+   char **line1 = (char **) p1;
+   char **line2 = (char **) p2;
+   int i;
+ 
+   /* Compare using the first keyfield;
+      if that does not distinguish the lines, try the second keyfield;
+      and so on. */
+ 
+   for (i = 0; i < num_keyfields; i++)
+     {
+       long length1, length2;
+       char *start1 = find_field (&keyfields[i], *line1, &length1);
+       char *start2 = find_field (&keyfields[i], *line2, &length2);
+       int tem = compare_field (&keyfields[i], start1, length1,
+                                *line1 - text_base,
+                                start2, length2, *line2 - text_base);
+       if (tem)
+         {
+           if (keyfields[i].reverse)
+             return -tem;
+           return tem;
+         }
+     }
+ 
+   return 0;                     /* Lines match exactly. */
+ }
+ 
+ /* Compare LINE1 and LINE2, described by structures
+    in which the first keyfield is identified in advance.
+    For positional sorting, assumes that the order of the lines in core
+    reflects their nominal order.  */
+ int
+ compare_prepared (const void *p1, const void *p2)
+ {
+   struct lineinfo *line1 = (struct lineinfo *) p1;
+   struct lineinfo *line2 = (struct lineinfo *) p2;
+   int i;
+   int tem;
+   char *text1, *text2;
+ 
+   /* Compare using the first keyfield, which has been found for us already. */
+   if (keyfields->positional)
+     {
+       if (line1->text - text_base > line2->text - text_base)
+         tem = 1;
+       else
+         tem = -1;
+     }
+   else if (keyfields->numeric)
+     tem = line1->key.number - line2->key.number;
+   else
+     tem = compare_field (keyfields, line1->key.text, line1->keylen, 0,
+                          line2->key.text, line2->keylen, 0);
+   if (tem)
+     {
+       if (keyfields->reverse)
+         return -tem;
+       return tem;
+     }
+ 
+   text1 = line1->text;
+   text2 = line2->text;
+ 
+   /* Compare using the second keyfield;
+      if that does not distinguish the lines, try the third keyfield;
+      and so on. */
+ 
+   for (i = 1; i < num_keyfields; i++)
+     {
+       long length1, length2;
+       char *start1 = find_field (&keyfields[i], text1, &length1);
+       char *start2 = find_field (&keyfields[i], text2, &length2);
+       int tem = compare_field (&keyfields[i], start1, length1,
+                                text1 - text_base,
+                                start2, length2, text2 - text_base);
+       if (tem)
+         {
+           if (keyfields[i].reverse)
+             return -tem;
+           return tem;
+         }
+     }
+ 
+   return 0;                     /* Lines match exactly. */
+ }
+ 
+ /* Like compare_full but more general.
+    You can pass any strings, and you can say how many keyfields to use.
+    POS1 and POS2 should indicate the nominal positional ordering of
+    the two lines in the input.  */
+ 
+ int
+ compare_general (char *str1, char *str2, long int pos1, long int pos2, int use_keyfields)
+ {
+   int i;
+ 
+   /* Compare using the first keyfield;
+      if that does not distinguish the lines, try the second keyfield;
+      and so on. */
+ 
+   for (i = 0; i < use_keyfields; i++)
+     {
+       long length1, length2;
+       char *start1 = find_field (&keyfields[i], str1, &length1);
+       char *start2 = find_field (&keyfields[i], str2, &length2);
+       int tem = compare_field (&keyfields[i], start1, length1, pos1,
+                                start2, length2, pos2);
+       if (tem)
+         {
+           if (keyfields[i].reverse)
+             return -tem;
+           return tem;
+         }
+     }
+ 
+   return 0;                     /* Lines match exactly. */
+ }
+ 
+ /* Find the start and length of a field in STR according to KEYFIELD.
+    A pointer to the starting character is returned, and the length
+    is stored into the int that LENGTHPTR points to.  */
+ 
+ char *
+ find_field (struct keyfield *keyfield, char *str, long int *lengthptr)
+ {
+   char *start;
+   char *end;
+   char *(*fun) ();
+ 
+   if (keyfield->braced)
+     fun = find_braced_pos;
+   else
+     fun = find_pos;
+ 
+   start = (*fun) (str, keyfield->startwords, keyfield->startchars,
+                   keyfield->ignore_blanks);
+   if (keyfield->endwords < 0)
+     {
+       if (keyfield->braced)
+         end = find_braced_end (start);
+       else
+         {
+           end = start;
+           while (*end && *end != '\n')
+             end++;
+         }
+     }
+   else
+     {
+       end = (*fun) (str, keyfield->endwords, keyfield->endchars, 0);
+       if (end - str < start - str)
+         end = start;
+     }
+   *lengthptr = end - start;
+   return start;
+ }
+ 
+ /* Return a pointer to a specified place within STR,
+    skipping (from the beginning) WORDS words and then CHARS chars.
+    If IGNORE_BLANKS is nonzero, we skip all blanks
+    after finding the specified word.  */
+ 
+ char *
+ find_pos (char *str, int words, int chars, int ignore_blanks)
+ {
+   int i;
+   char *p = str;
+ 
+   for (i = 0; i < words; i++)
+     {
+       char c;
+       /* Find next bunch of nonblanks and skip them. */
+       while ((c = *p) == ' ' || c == '\t')
+         p++;
+       while ((c = *p) && c != '\n' && !(c == ' ' || c == '\t'))
+         p++;
+       if (!*p || *p == '\n')
+         return p;
+     }
+ 
+   while (*p == ' ' || *p == '\t')
+     p++;
+ 
+   for (i = 0; i < chars; i++)
+     {
+       if (!*p || *p == '\n')
+         break;
+       p++;
+     }
+   return p;
+ }
+ 
+ /* Like find_pos but assumes that each field is surrounded by braces
+    and that braces within fields are balanced. */
+ 
+ char *
+ find_braced_pos (char *str, int words, int chars, int ignore_blanks)
+ {
+   int i;
+   int bracelevel;
+   char *p = str;
+   char c;
+ 
+   for (i = 0; i < words; i++)
+     {
+       bracelevel = 1;
+       while ((c = *p++) != '{' && c != '\n' && c)
+         /* Do nothing. */ ;
+       if (c != '{')
+         return p - 1;
+       while (bracelevel)
+         {
+           c = *p++;
+           if (c == '{')
+             bracelevel++;
+           if (c == '}')
+             bracelevel--;
+           if (c == 0 || c == '\n')
+             return p - 1;
+         }
+     }
+ 
+   while ((c = *p++) != '{' && c != '\n' && c)
+     /* Do nothing. */ ;
+ 
+   if (c != '{')
+     return p - 1;
+ 
+   if (ignore_blanks)
+     while ((c = *p) == ' ' || c == '\t')
+       p++;
+ 
+   for (i = 0; i < chars; i++)
+     {
+       if (!*p || *p == '\n')
+         break;
+       p++;
+     }
+   return p;
+ }
+ 
+ /* Find the end of the balanced-brace field which starts at STR.
+    The position returned is just before the closing brace. */
+ 
+ char *
+ find_braced_end (char *str)
+ {
+   int bracelevel;
+   char *p = str;
+   char c;
+ 
+   bracelevel = 1;
+   while (bracelevel)
+     {
+       c = *p++;
+       if (c == '{')
+         bracelevel++;
+       if (c == '}')
+         bracelevel--;
+       if (c == 0 || c == '\n')
+         return p - 1;
+     }
+   return p - 1;
+ }
+ 
+ long
+ find_value (char *start, long int length)
+ {
+   while (length != 0L)
+     {
+       if (isdigit (*start))
+         return atol (start);
+       length--;
+       start++;
+     }
+   return 0l;
+ }
+ 
+ /* Vector used to translate characters for comparison.
+    This is how we make all alphanumerics follow all else,
+    and ignore case in the first sorting.  */
+ int char_order[256];
+ 
+ void
+ init_char_order (void)
+ {
+   int i;
+   for (i = 1; i < 256; i++)
+     char_order[i] = i;
+ 
+   for (i = '0'; i <= '9'; i++)
+     char_order[i] += 512;
+ 
+   for (i = 'a'; i <= 'z'; i++)
+     {
+       char_order[i] = 512 + i;
+       char_order[i + 'A' - 'a'] = 512 + i;
+     }
+ }
+ 
+ /* Compare two fields (each specified as a start pointer and a character count)
+    according to KEYFIELD.
+    The sign of the value reports the relation between the fields. */
+ 
+ int
+ compare_field (struct keyfield *keyfield, char *start1, long int length1,
+                long int pos1, char *start2, long int length2, long int pos2)
+ {
+   if (keyfields->positional)
+     {
+       if (pos1 > pos2)
+         return 1;
+       else
+         return -1;
+     }
+   if (keyfield->numeric)
+     {
+       long value = find_value (start1, length1) - find_value (start2, length2);
+       if (value > 0)
+         return 1;
+       if (value < 0)
+         return -1;
+       return 0;
+     }
+   else
+     {
+       char *p1 = start1;
+       char *p2 = start2;
+       char *e1 = start1 + length1;
+       char *e2 = start2 + length2;
+ 
+       while (1)
+         {
+           int c1, c2;
+ 
+           if (p1 == e1)
+             c1 = 0;
+           else
+             c1 = *p1++;
+           if (p2 == e2)
+             c2 = 0;
+           else
+             c2 = *p2++;
+ 
+           if (char_order[c1] != char_order[c2])
+             return char_order[c1] - char_order[c2];
+           if (!c1)
+             break;
+         }
+ 
+       /* Strings are equal except possibly for case.  */
+       p1 = start1;
+       p2 = start2;
+       while (1)
+         {
+           int c1, c2;
+ 
+           if (p1 == e1)
+             c1 = 0;
+           else
+             c1 = *p1++;
+           if (p2 == e2)
+             c2 = 0;
+           else
+             c2 = *p2++;
+ 
+           if (c1 != c2)
+             /* Reverse sign here so upper case comes out last.  */
+             return c2 - c1;
+           if (!c1)
+             break;
+         }
+ 
+       return 0;
+     }
+ }
+ 
+ /* Sort INFILE, whose size is TOTAL,
+    assuming that is small enough to be done in-core,
+    then indexify it and send the output to OUTFILE (or to stdout).  */
+ 
+ void
+ sort_in_core (char *infile, int total, char *outfile)
+ {
+   char **nextline;
+   char *data = (char *) xmalloc (total + 1);
+   char *file_data;
+   long file_size;
+   int i;
+   FILE *ostream = stdout;
+   struct lineinfo *lineinfo;
+ 
+   /* Read the contents of the file into the moby array `data'. */
+ 
+   int desc = open (infile, O_RDONLY, 0);
+ 
+   if (desc < 0)
+     fatal (_("failure reopening %s"), infile);
+   for (file_size = 0;;)
+     {
+       i = read (desc, data + file_size, total - file_size);
+       if (i <= 0)
+         break;
+       file_size += i;
+     }
+   file_data = data;
+   data[file_size] = 0;
+ 
+   close (desc);
+ 
+   if (file_size > 0 && data[0] != '\\' && data[0] != '@')
+     {
+       error (_("%s: not a texinfo index file"), infile);
+       return;
+     }
+ 
+   init_char_order ();
+ 
+   /* Sort routines want to know this address. */
+ 
+   text_base = data;
+ 
+   /* Create the array of pointers to lines, with a default size
+      frequently enough.  */
+ 
+   nlines = total / 50;
+   if (!nlines)
+     nlines = 2;
+   linearray = (char **) xmalloc (nlines * sizeof (char *));
+ 
+   /* `nextline' points to the next free slot in this array.
+      `nlines' is the allocated size.  */
+ 
+   nextline = linearray;
+ 
+   /* Parse the input file's data, and make entries for the lines.  */
+ 
+   nextline = parsefile (infile, nextline, file_data, file_size);
+   if (nextline == 0)
+     {
+       error (_("%s: not a texinfo index file"), infile);
+       return;
+     }
+ 
+   /* Sort the lines. */
+ 
+   /* If we have enough space, find the first keyfield of each line in advance.
+      Make a `struct lineinfo' for each line, which records the keyfield
+      as well as the line, and sort them.  */
+ 
+   lineinfo = malloc ((nextline - linearray) * sizeof (struct lineinfo));
+ 
+   if (lineinfo)
+     {
+       struct lineinfo *lp;
+       char **p;
+ 
+       for (lp = lineinfo, p = linearray; p != nextline; lp++, p++)
+         {
+           lp->text = *p;
+           lp->key.text = find_field (keyfields, *p, &lp->keylen);
+           if (keyfields->numeric)
+             lp->key.number = find_value (lp->key.text, lp->keylen);
+         }
+ 
+       qsort (lineinfo, nextline - linearray, sizeof (struct lineinfo),
+              compare_prepared);
+ 
+       for (lp = lineinfo, p = linearray; p != nextline; lp++, p++)
+         *p = lp->text;
+ 
+       free (lineinfo);
+     }
+   else
+     qsort (linearray, nextline - linearray, sizeof (char *), compare_full);
+ 
+   /* Open the output file. */
+ 
+   if (outfile)
+     {
+       ostream = fopen (outfile, "w");
+       if (!ostream)
+         pfatal_with_name (outfile);
+     }
+ 
+   writelines (linearray, nextline - linearray, ostream);
+   if (outfile)
+     fclose (ostream);
+ 
+   free (linearray);
+   free (data);
+ }
+ 
+ /* Parse an input string in core into lines.
+    DATA is the input string, and SIZE is its length.
+    Data goes in LINEARRAY starting at NEXTLINE.
+    The value returned is the first entry in LINEARRAY still unused.
+    Value 0 means input file contents are invalid.  */
+ 
+ char **
+ parsefile (char *filename, char **nextline, char *data, long int size)
+ {
+   char *p, *end;
+   char **line = nextline;
+ 
+   p = data;
+   end = p + size;
+   *end = 0;
+ 
+   while (p != end)
+     {
+       if (p[0] != '\\' && p[0] != '@')
+         return 0;
+ 
+       *line = p;
+ 
+       /* Find the first letter of the first field of this line.  If it
+          is different from the first letter of the first field of the
+          first line, we need initial headers in the output index.  */
+       while (*p && *p != '{')
+         p++;
+       if (p == end)
+         return 0;
+       p++;
+       if (first_initial)
+         {
+           if (first_initial != toupper (*p))
+             need_initials = 1;
+         }
+       else
+         first_initial = toupper (*p);
+ 
+       while (*p && *p != '\n')
+         p++;
+       if (p != end)
+         p++;
+ 
+       line++;
+       if (line == linearray + nlines)
+         {
+           char **old = linearray;
+           linearray = xrealloc (linearray, sizeof (char *) * (nlines *= 4));
+           line += linearray - old;
+         }
+     }
+ 
+   return line;
+ }
+ 
+ /* Indexification is a filter applied to the sorted lines
+    as they are being written to the output file.
+    Multiple entries for the same name, with different page numbers,
+    get combined into a single entry with multiple page numbers.
+    The first braced field, which is used for sorting, is discarded.
+    However, its first character is examined, folded to lower case,
+    and if it is different from that in the previous line fed to us
+    a \initial line is written with one argument, the new initial.
+ 
+    If an entry has four braced fields, then the second and third
+    constitute primary and secondary names.
+    In this case, each change of primary name
+    generates a \primary line which contains only the primary name,
+    and in between these are \secondary lines which contain
+    just a secondary name and page numbers. */
+ 
+ /* The last primary name we wrote a \primary entry for.
+    If only one level of indexing is being done, this is the last name seen. */
+ char *lastprimary;
+ /* Length of storage allocated for lastprimary. */
+ int lastprimarylength;
+ 
+ /* Similar, for the secondary name. */
+ char *lastsecondary;
+ int lastsecondarylength;
+ 
+ /* Zero if we are not in the middle of writing an entry.
+    One if we have written the beginning of an entry but have not
+    yet written any page numbers into it.
+    Greater than one if we have written the beginning of an entry
+    plus at least one page number. */
+ int pending;
+ 
+ /* The initial (for sorting purposes) of the last primary entry written.
+    When this changes, a \initial {c} line is written */
+ 
+ char *lastinitial;
+ 
+ int lastinitiallength;
+ 
+ /* When we need a string of length 1 for the value of lastinitial,
+    store it here.  */
+ 
+ char lastinitial1[2];
+ 
+ /* Initialize static storage for writing an index. */
+ 
+ void
+ init_index (void)
+ {
+   pending = 0;
+   lastinitial = lastinitial1;
+   lastinitial1[0] = 0;
+   lastinitial1[1] = 0;
+   lastinitiallength = 0;
+   lastprimarylength = 100;
+   lastprimary = (char *) xmalloc (lastprimarylength + 1);
+   memset (lastprimary, '\0', lastprimarylength + 1);
+   lastsecondarylength = 100;
+   lastsecondary = (char *) xmalloc (lastsecondarylength + 1);
+   memset (lastsecondary, '\0', lastsecondarylength + 1);
+ }
+ 
+ /* Indexify.  Merge entries for the same name,
+    insert headers for each initial character, etc.  */
+ 
+ void
+ indexify (char *line, FILE *ostream)
+ {
+   char *primary, *secondary, *pagenumber;
+   int primarylength, secondarylength = 0, pagelength;
+   int nosecondary;
+   int initiallength;
+   char *initial;
+   char initial1[2];
+   register char *p;
+ 
+   /* First, analyze the parts of the entry fed to us this time. */
+ 
+   p = find_braced_pos (line, 0, 0, 0);
+   if (*p == '{')
+     {
+       initial = p;
+       /* Get length of inner pair of braces starting at `p',
+          including that inner pair of braces.  */
+       initiallength = find_braced_end (p + 1) + 1 - p;
+     }
+   else
+     {
+       initial = initial1;
+       initial1[0] = toupper (*p);
+       initial1[1] = 0;
+       initiallength = 1;
+     }
+ 
+   pagenumber = find_braced_pos (line, 1, 0, 0);
+   pagelength = find_braced_end (pagenumber) - pagenumber;
+   if (pagelength == 0)
+     fatal (_("No page number in %s"), line);
+ 
+   primary = find_braced_pos (line, 2, 0, 0);
+   primarylength = find_braced_end (primary) - primary;
+ 
+   secondary = find_braced_pos (line, 3, 0, 0);
+   nosecondary = !*secondary;
+   if (!nosecondary)
+     secondarylength = find_braced_end (secondary) - secondary;
+ 
+   /* If the primary is different from before, make a new primary entry. */
+   if (strncmp (primary, lastprimary, primarylength))
+     {
+       /* Close off current secondary entry first, if one is open. */
+       if (pending)
+         {
+           fputs ("}\n", ostream);
+           pending = 0;
+         }
+ 
+       /* If this primary has a different initial, include an entry for
+          the initial. */
+       if (need_initials &&
+           (initiallength != lastinitiallength ||
+            strncmp (initial, lastinitial, initiallength)))
+         {
+           fprintf (ostream, "\\initial {");
+           fwrite (initial, 1, initiallength, ostream);
+           fputs ("}\n", ostream);
+           if (initial == initial1)
+             {
+               lastinitial = lastinitial1;
+               *lastinitial1 = *initial1;
+             }
+           else
+             {
+               lastinitial = initial;
+             }
+           lastinitiallength = initiallength;
+         }
+ 
+       /* Make the entry for the primary.  */
+       if (nosecondary)
+         fputs ("\\entry {", ostream);
+       else
+         fputs ("\\primary {", ostream);
+       fwrite (primary, primarylength, 1, ostream);
+       if (nosecondary)
+         {
+           fputs ("}{", ostream);
+           pending = 1;
+         }
+       else
+         fputs ("}\n", ostream);
+ 
+       /* Record name of most recent primary. */
+       if (lastprimarylength < primarylength)
+         {
+           lastprimarylength = primarylength + 100;
+           lastprimary = (char *) xrealloc (lastprimary,
+                                            1 + lastprimarylength);
+         }
+       strncpy (lastprimary, primary, primarylength);
+       lastprimary[primarylength] = 0;
+ 
+       /* There is no current secondary within this primary, now. */
+       lastsecondary[0] = 0;
+     }
+ 
+   /* Should not have an entry with no subtopic following one with a
+      subtopic. */
+ 
+   if (nosecondary && *lastsecondary)
+     error (_("entry %s follows an entry with a secondary name"), line);
+ 
+   /* Start a new secondary entry if necessary. */
+   if (!nosecondary && strncmp (secondary, lastsecondary, secondarylength))
+     {
+       if (pending)
+         {
+           fputs ("}\n", ostream);
+           pending = 0;
+         }
+ 
+       /* Write the entry for the secondary.  */
+       fputs ("\\secondary {", ostream);
+       fwrite (secondary, secondarylength, 1, ostream);
+       fputs ("}{", ostream);
+       pending = 1;
+ 
+       /* Record name of most recent secondary. */
+       if (lastsecondarylength < secondarylength)
+         {
+           lastsecondarylength = secondarylength + 100;
+           lastsecondary = (char *) xrealloc (lastsecondary,
+                                              1 + lastsecondarylength);
+         }
+       strncpy (lastsecondary, secondary, secondarylength);
+       lastsecondary[secondarylength] = 0;
+     }
+ 
+   /* Here to add one more page number to the current entry. */
+   if (pending++ != 1)
+     fputs (", ", ostream);  /* Punctuate first, if this is not the first. */
+   fwrite (pagenumber, pagelength, 1, ostream);
+ }
+ 
+ /* Close out any unfinished output entry. */
+ 
+ void
+ finish_index (FILE *ostream)
+ {
+   if (pending)
+     fputs ("}\n", ostream);
+   free (lastprimary);
+   free (lastsecondary);
+ }
+ 
+ /* Copy the lines in the sorted order.
+    Each line is copied out of the input file it was found in. */
+ 
+ void
+ writelines (char **linearray, int nlines, FILE *ostream)
+ {
+   char **stop_line = linearray + nlines;
+   char **next_line;
+ 
+   init_index ();
+ 
+   /* Output the text of the lines, and free the buffer space. */
+ 
+   for (next_line = linearray; next_line != stop_line; next_line++)
+     {
+       /* Output the line only if distinct from previous one.  */
+       if (next_line == linearray
+       /* Compare previous line with this one, using only the
+          explicitly specd keyfields. */
+           || compare_general (*(next_line - 1), *next_line, 0L, 0L,
+                               num_keyfields - 1))
+         {
+           char *p = *next_line;
+           char c;
+ 
+           while ((c = *p++) && c != '\n')
+             /* Do nothing. */ ;
+           *(p - 1) = 0;
+           indexify (*next_line, ostream);
+         }
+     }
+ 
+   finish_index (ostream);
+ }
+ 
+ /* Print error message and exit.  */
+ 
+ void
+ fatal (const char *format, const char *arg)
+ {
+   error (format, arg);
+   xexit (1);
+ }
+ 
+ /* Print error message.  FORMAT is printf control string, ARG is arg for it. */
+ void
+ error (const char *format, const char *arg)
+ {
+   printf ("%s: ", program_name);
+   printf (format, arg);
+   if (format[strlen (format) -1] != '\n')
+     printf ("\n");
+ }
+ 
+ void
+ perror_with_name (const char *name)
+ {
+   fprintf (stderr, "%s: ", program_name);
+   perror (name);
+ }
+ 
+ void
+ pfatal_with_name (const char *name)
+ {
+   perror_with_name (name);
+   xexit (1);
+ }
+ 
+ 
+ /* Return a newly-allocated string concatenating S1, S2, and S3.  */
+ 
+ static char *
+ concat3 (const char *s1, const char *s2, const char *s3)
+ {
+   int len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3);
+   char *result = (char *) xmalloc (len1 + len2 + len3 + 1);
+ 
+   strcpy (result, s1);
+   strcpy (result + len1, s2);
+   strcpy (result + len1 + len2, s3);
+   *(result + len1 + len2 + len3) = 0;
+ 
+   return result;
+ }
diff -Nrc2 texinfo-4.12/util/texinfo-cat.in texinfo-4.13/util/texinfo-cat.in
*** texinfo-4.12/util/texinfo-cat.in	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/texinfo-cat.in	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,3 ----
+ OVERRIDE YES
+ 
+ PUBLIC "-//GNU//DTD TexinfoML V__VERSION__//EN" "texinfo.dtd"
diff -Nrc2 texinfo-4.12/util/texinfo.dtd texinfo-4.13/util/texinfo.dtd
*** texinfo-4.12/util/texinfo.dtd	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/texinfo.dtd	Tue Feb 12 17:00:57 2008
***************
*** 0 ****
--- 1,507 ----
+ <!-- $Id: texinfo.dtd,v 1.13 2008/01/31 18:33:27 karl Exp $
+    Document Type Definition for Texinfo XML output (the '-'-xml option).
+ 
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+   Free Software Foundation, Inc.
+ 
+   Copying and distribution of this file, with or without modification,
+   are permitted in any medium without royalty provided the copyright
+   notice and this notice are preserved.
+ 
+    Author: Philippe Martin
+    Contributors:
+            Karl Eichwalder
+            Alper Ersoy
+            Karl Berry
+            Torsten Bronger
+ -->
+ 
+ <!-- * ENTITIES * -->
+ 
+ <!-- Meta-information -->
+ <!ENTITY % metainformation "setfilename | settitle | dircategory
+                             | documentdescription">
+ <!ENTITY % variables "setvalue | clearvalue">
+ 
+ <!-- Document language -->
+ <!ENTITY % lang "documentlanguage">
+ 
+ <!-- Language codes -->
+ <!ENTITY % languagecodes "aa|ab|af|am|ar|as|ay|az|ba|be|bg|bh|bi|bn|bo|br|ca|co|cs|cy|da|de|dz|el|en|eo|es|et|eu|fa|fi|fj|fo|fr|fy|ga|gd|gl|gn|gu|ha|he|hi|hr|hu|hy|ia|id|ie|ik|is|it|iu|ja|jw|ka|kk|kl|km|kn|ko|ks|ku|ky|la|ln|lo|lt|lv|mg|mi|mk|ml|mn|mo|mr|ms|mt|my|na|ne|nl|no|oc|om|or|pa|pl|ps|pt|qu|rm|rn|ro|ru|rw|sa|sd|sg|sh|si|sk|sl|sm|sn|so|sq|sr|ss|st|su|sv|sw|ta|te|tg|th|ti|tk|tl|tn|to|tr|ts|tt|tw|ug|uk|ur|uz|vi|vo|wo|xh|yi|yo|za|zh|zu">
+ 
+ <!-- ToC -->
+ <!ENTITY % toc "contents | shortcontents">
+ 
+ <!-- Title page -->
+ <!ENTITY % titlepage_cmds "author | booktitle | booksubtitle">
+ 
+ <!-- block -->
+ <!ENTITY % block "menu | para | quotation | example | smallexample | lisp
+                   | smalllisp | cartouche | copying
+                   | format | smallformat | display
+                   | smalldisplay | itemize | enumerate | sp | center | group
+                   | table | multitable | definition | float | image">
+ 
+ <!-- API definitions -->
+ <!ENTITY % definition.cmds "defcategory | deffunction | defvariable | defparam
+                             | defdelimiter | deftype | defparamtype | defdatatype
+                             | defclass | defclassvar | defoperation">
+ 
+ <!-- Headings -->
+ <!ENTITY % headings "majorheading | chapheading | heading | subheading
+                      | subsubheading">
+ 
+ 
+ <!-- Sectioning -->
+ <!ENTITY % section.level1 "top | chapter | unnumbered | appendix">
+ 
+ <!ENTITY % section.level2 "section | unnumberedsec | appendixsec">
+ 
+ <!ENTITY % section.level3 "subsection | unnumberedsubsec | appendixsubsec">
+ 
+ <!ENTITY % section.level4 "subsubsection | unnumberedsubsubsec 
+                            | appendixsubsubsec">
+ 
+ <!ENTITY % section.all "%section.level1; | %section.level2; | %section.level3;
+                         | %section.level4;">
+ 
+ 
+ <!ENTITY % section.level1.content "(%block;
+                                    | %section.level2;
+                                    | %section.level3;
+                                    | %section.level4;
+                                    | verbatim | titlepage | %toc;
+                                    | %lang; | %variables;
+                                    | %headings;
+                                    | listoffloats
+                                    | printindex)*">
+ 
+ <!ENTITY % section.level2.content "(%block;
+                                    | %section.level3;
+                                    | %section.level4;
+                                    | verbatim | titlepage | %toc;
+                                    | %lang; | %variables;
+                                    | %headings;)*">
+ 
+ <!ENTITY % section.level3.content "(%block;
+                                    | %section.level4;
+                                    | verbatim | titlepage | %toc;
+                                    | %lang; | %variables;
+                                    | %headings;)*">
+ 
+ <!ENTITY % section.level4.content "(%block;
+                                     | verbatim | titlepage | %toc;
+                                     | %lang; | %variables;
+                                     | %headings;)*">
+ 
+ <!-- Options (many missing) -->
+ <!ENTITY % onoff "on|off">
+ <!ENTITY % option.cmds "frenchspacing">
+ 
+ <!-- Inline -->
+ <!ENTITY % Inline.emphasize "strong | emph">
+ <!ENTITY % Inline.fonts "b | i | r | sansserif | slanted | titlefont | tt
+                          | sc">
+ <!ENTITY % Inline.footnote "footnote">
+ <!ENTITY % Inline.markup "code | command | env | file | option | samp | verb
+                           | dfn | cite | key | kbd | var | acronym | url"> 
+ <!ENTITY % Inline.math "math | dmn">
+ <!ENTITY % Inline.reference "xref | inforef | indexterm | email | uref">
+ <!ENTITY % Inline.misc "click | clicksequence | logo | punct">
+ 
+ <!ENTITY % Inline.phrase
+            "%Inline.emphasize;  | %Inline.misc; | %Inline.fonts;
+             | %Inline.markup;   | %Inline.math; | %Inline.reference;
+             | %Inline.footnote; | %option.cmds; ">
+ 
+ 
+ <!-- * ELEMENTS * -->
+ 
+ <!-- TOP Level Element -->
+ <!ELEMENT texinfo ((%metainformation; | titlepage | node | synindex | %block; | %toc;
+                     | %variables; | %lang;)* )>
+ <!ATTLIST texinfo xml:lang (%languagecodes;) 'en'>
+ 
+ <!-- meta-information -->
+ <!ELEMENT setfilename (#PCDATA)>
+ <!ELEMENT settitle    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT dircategory (#PCDATA)>
+ 
+ <!ELEMENT setvalue    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT clearvalue  EMPTY>
+ <!ATTLIST setvalue
+                 name CDATA #REQUIRED>
+ <!ATTLIST clearvalue
+                 name CDATA #REQUIRED>
+ 
+ <!-- ToC -->
+ <!ELEMENT contents      EMPTY>
+ <!ELEMENT shortcontents EMPTY>
+ 
+ <!-- Document language -->
+ <!ELEMENT documentlanguage EMPTY>
+ <!ATTLIST documentlanguage xml:lang (%languagecodes;) 'en'>
+ 
+ <!-- Titlepage -->
+ <!ELEMENT titlepage    (%titlepage_cmds; | %block;)*>
+ <!ELEMENT author       (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT booktitle    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT booksubtitle (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- NODES -->
+ <!ELEMENT node (nodename, nodenext?, nodeprev?, nodeup?,
+                 (%section.all; | %block; | %toc; | %lang;)*) >
+ 
+ <!ELEMENT nodename (#PCDATA)>
+ <!ELEMENT nodenext (#PCDATA)>
+ <!ELEMENT nodeprev (#PCDATA)>
+ <!ELEMENT nodeup   (#PCDATA)>
+ 
+ 
+ <!-- SECTIONING -->
+ <!ELEMENT top           (title?, (%section.level1.content;))>
+ 
+ <!ELEMENT chapter       (title?, (%section.level1.content;))>
+ <!ELEMENT section       (title?, (%section.level2.content;))>
+ <!ELEMENT subsection    (title?, (%section.level3.content;))>
+ <!ELEMENT subsubsection (title?, (%section.level4.content;))>
+ 
+ <!ELEMENT unnumbered          (title?, (%section.level1.content;))>
+ <!ELEMENT unnumberedsec       (title?, (%section.level2.content;))>
+ <!ELEMENT unnumberedsubsec    (title?, (%section.level3.content;))>
+ <!ELEMENT unnumberedsubsubsec (title?, (%section.level4.content;))>
+ 
+ <!ELEMENT appendix          (title?, (%section.level1.content;))>
+ <!ELEMENT appendixsec       (title?, (%section.level2.content;))>
+ <!ELEMENT appendixsubsec    (title?, (%section.level3.content;))>
+ <!ELEMENT appendixsubsubsec (title?, (%section.level4.content;))>
+ 
+ <!-- Headings and titles -->
+ <!ELEMENT majorheading  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT chapheading   (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT heading       (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT subheading    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT subsubheading (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT title         (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- Negative Indentation in Blocks -->
+ <!ELEMENT exdent       (#PCDATA | %Inline.phrase;)*>
+ 
+ 
+ <!-- BLOCK Elements -->
+ 
+ <!ELEMENT quotation    (%block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT documentdescription (#PCDATA | %block; | %Inline.phrase;)*>
+ <!ELEMENT example      (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT smallexample (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT lisp         (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT smalllisp    (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT cartouche    (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT copying      (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT format       (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT smallformat  (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT display      (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT smalldisplay (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT center       (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ <!ELEMENT group        (#PCDATA | %block; | %Inline.phrase; | exdent)*>
+ 
+ <!ELEMENT image        (alttext)>
+ <!ELEMENT alttext      (#PCDATA)>
+ <!ATTLIST image
+             name      CDATA #REQUIRED
+             extension CDATA #REQUIRED
+             width     CDATA #REQUIRED
+             height    CDATA #REQUIRED>
+ 
+ <!-- Whitespace in these elements are always preserved -->
+ <!ATTLIST example      xml:space (preserve) #FIXED 'preserve'>
+ <!ATTLIST smallexample xml:space (preserve) #FIXED 'preserve'>
+ <!ATTLIST lisp         xml:space (preserve) #FIXED 'preserve'>
+ <!ATTLIST smalllisp    xml:space (preserve) #FIXED 'preserve'>
+ <!ATTLIST display      xml:space (preserve) #FIXED 'preserve'>
+ <!ATTLIST smalldisplay xml:space (preserve) #FIXED 'preserve'>
+ <!ATTLIST format       xml:space (preserve) #FIXED 'preserve'>
+ <!ATTLIST smallformat  xml:space (preserve) #FIXED 'preserve'>
+ 
+ <!ELEMENT verbatim     (#PCDATA)>
+ <!ATTLIST verbatim     xml:space (preserve) #FIXED 'preserve'>
+ 
+ <!ELEMENT para         (#PCDATA | %Inline.phrase; | %lang;)*>
+ <!ATTLIST para
+           role CDATA #IMPLIED>
+ 
+ <!ELEMENT menu (menuentry | detailmenu | para)*>
+ <!ELEMENT detailmenu (menuentry | para)*>
+ <!ELEMENT menuentry (menunode?, menutitle?, menucomment?)>
+ <!ELEMENT menunode (#PCDATA)>
+ <!ELEMENT menutitle (#PCDATA)>
+ <!ELEMENT menucomment (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- Floating displays -->
+ <!ELEMENT float (floattype, floatpos, (%block;)*,
+                 ((caption, shortcaption?) | (shortcaption, caption))?)>
+ <!ATTLIST float
+           name CDATA #IMPLIED>
+ <!ELEMENT floattype (#PCDATA)>
+ <!ELEMENT floatpos (#PCDATA)>
+ <!ELEMENT caption (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT shortcaption (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT listoffloats EMPTY>
+ <!ATTLIST listoffloats
+           type CDATA #IMPLIED>
+ 
+ <!-- Lists -->
+ <!ELEMENT itemize (itemfunction, (item | itemize | enumerate | indexterm)*)>
+ <!ELEMENT enumerate (item | itemize | enumerate | indexterm)*>
+ <!ATTLIST enumerate
+           first CDATA #IMPLIED>
+ 
+ <!ELEMENT item (%block;)*>
+ 
+ <!ELEMENT itemfunction (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- Tables -->
+ <!ELEMENT table (tableitem | indexterm)+>
+ <!ELEMENT tableitem ((tableterm, indexterm*)+, item?)>
+ <!ELEMENT tableterm (#PCDATA | %Inline.phrase;)*>
+ 
+ <!ELEMENT multitable (columnfraction*, thead?, tbody)>
+ <!ELEMENT columnfraction (#PCDATA)>
+ <!ELEMENT thead (row+)>
+ <!ELEMENT tbody (row+)>
+ <!ELEMENT row (entry*)>
+ <!ELEMENT entry (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- API definitions -->
+ <!ELEMENT definition (definitionterm | definitionitem | indexterm)+>
+ <!ELEMENT definitionterm (%definition.cmds; | indexterm)+>
+ <!ELEMENT definitionitem (%block;)*>
+ 
+ <!ELEMENT defcategory  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT deffunction  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT defvariable  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT defparam     (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT defdelimiter (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT deftype      (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT defparamtype (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT defdatatype  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT defclass     (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT defclassvar  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT defoperation (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- INLINE Elements -->
+ 
+ <!-- options -->
+ <!ELEMENT frenchspacing (#PCDATA)> <!-- must be on or off -->
+ <!ATTLIST frenchspacing val (%onoff;) 'off'>
+ 
+ <!-- emphasize -->
+ <!ELEMENT strong (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT emph   (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- small caps -->
+ <!ELEMENT sc (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- fonts -->
+ <!ELEMENT b  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT i  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT r  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT sansserif   (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT slanted     (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT titlefont   (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT tt (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- markup -->
+ <!ELEMENT code    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT command (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT env     (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT file    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT option  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT samp    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT dfn     (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT cite    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT key     (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT kbd     (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT var     (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT url     (#PCDATA | %Inline.phrase;)*>
+ 
+ <!ELEMENT acronym (acronymword, acronymdesc?)>
+ <!ELEMENT acronymword (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT acronymdesc (#PCDATA | %Inline.phrase;)*>
+ 
+ <!ELEMENT abbrev (abbrevword, abbrevdesc?)>
+ <!ELEMENT abbrevword (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT abbrevdesc (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- math -->
+ <!ELEMENT math    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT dmn     (#PCDATA | %Inline.phrase;)*>
+ 
+ <!-- reference -->
+ <!ELEMENT anchor EMPTY>
+ <!ATTLIST anchor
+           name CDATA #IMPLIED>
+ 
+ <!ELEMENT xref (xrefnodename | xrefinfoname | xrefinfofile
+                 | xrefprintedname | xrefprinteddesc)*>
+ <!ELEMENT xrefnodename    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT xrefinfoname    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT xrefinfofile    (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT xrefprintedname (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT xrefprinteddesc (#PCDATA | %Inline.phrase;)*>
+ 
+ <!ELEMENT inforef (inforefnodename | inforefrefname | inforefinfoname)*>
+ <!ELEMENT inforefnodename (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT inforefrefname  (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT inforefinfoname (#PCDATA | %Inline.phrase;)*>
+ 
+ <!ELEMENT synindex  EMPTY>
+ <!ATTLIST synindex
+           code      (yes|no) 'no'
+           from      NMTOKEN #REQUIRED
+           to        NMTOKEN #REQUIRED>
+ <!ELEMENT indexterm (#PCDATA | %Inline.phrase;)*>
+ <!ATTLIST indexterm
+           index CDATA #IMPLIED>
+ 
+ <!ELEMENT email (emailaddress, emailname?)>
+ <!ELEMENT emailaddress (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT emailname (#PCDATA | %Inline.phrase;)*>
+ 
+ <!ELEMENT uref (urefurl, urefdesc?, urefreplacement?)>
+ <!ELEMENT urefurl         (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT urefdesc        (#PCDATA | %Inline.phrase;)*>
+ <!ELEMENT urefreplacement (#PCDATA | %Inline.phrase;)*>
+ 
+ <!ELEMENT footnote (para)>
+ 
+ 
+ <!ELEMENT punct     (#PCDATA)>
+ <!ATTLIST punct
+           end-of-sentence (yes|no) #IMPLIED>
+ <!ELEMENT logo      (#PCDATA)>
+ <!ELEMENT linebreak EMPTY>
+ 
+ <!ENTITY tex        "<logo>TeX</logo>">
+ <!ENTITY latex      "<logo>LaTeX</logo>">
+ <!ENTITY ellipsis   "&#x2026;">
+ <!ENTITY lt         "&#x3c;">
+ <!ENTITY gt         "&#x3e;">
+ <!ENTITY bullet     "&#x2022;">
+ <!ENTITY copyright  "&#xa9;">
+ <!ENTITY registered "&#xae;">
+ <!ENTITY euro       "&#x20ac;">
+ <!ENTITY pounds     "&#xa3;">
+ <!ENTITY minus      "&#x2212;">
+ <!ENTITY linebreak  "<linebreak/>">
+ <!ENTITY space      " ">          <!-- Should become an element. -->
+ <!ENTITY dots       "<punct end-of-sentence='no'>&#x2026;</punct>">
+ <!ENTITY enddots    "<punct end-of-sentence='yes'>&#x2026;</punct>">
+ <!ENTITY amp        "&#x26;">
+ <!ENTITY lsquo      "&#x2018;">
+ <!ENTITY rsquo      "&#x2019;">
+ <!ENTITY sbquo      "&#x201a;">
+ <!ENTITY ldquo      "&#x201c;">
+ <!ENTITY rdquo      "&#x201d;">
+ <!ENTITY bdquo      "&#x201e;">
+ <!ENTITY laquo      "&#xab;">
+ <!ENTITY raquo      "&#xbb;">
+ <!ENTITY lsaquo     "&#x2039;">
+ <!ENTITY rsaquo     "&#x203a;">
+ <!ENTITY mdash      "&#x2014;">
+ <!ENTITY ndash      "&#x2013;">
+ <!ENTITY period     "<punct end-of-sentence='no'>.</punct>">
+ <!ENTITY eosperiod  "<punct end-of-sentence='yes'>.</punct>">
+ <!ENTITY quest      "<punct end-of-sentence='no'>?</punct>">
+ <!ENTITY eosquest   "<punct end-of-sentence='yes'>?</punct>">
+ <!ENTITY excl       "<punct end-of-sentence='no'>!</punct>">
+ <!ENTITY eosexcl    "<punct end-of-sentence='yes'>!</punct>">
+ 
+ <!ENTITY auml "&#xe4;">
+ <!ENTITY ouml "&#xf6;">
+ <!ENTITY uuml "&#xfc;">
+ <!ENTITY Auml "&#xc4;">
+ <!ENTITY Ouml "&#xd6;">
+ <!ENTITY Uuml "&#xdc;">
+ <!ENTITY Euml "&#xcb;">
+ <!ENTITY euml "&#xeb;">
+ <!ENTITY Iuml "&#xcf;">
+ <!ENTITY iuml "&#xef;">
+ <!ENTITY yuml "&#xff;">
+ <!ENTITY uml  "&#xa8;">
+ 
+ <!ENTITY Aacute "&#xc1;">
+ <!ENTITY Eacute "&#xc9;">
+ <!ENTITY Iacute "&#xcd;">
+ <!ENTITY Oacute "&#xd3;">
+ <!ENTITY Uacute "&#xda;">
+ <!ENTITY Yacute "&#xdd;">
+ <!ENTITY aacute "&#xe1;">
+ <!ENTITY eacute "&#xe9;">
+ <!ENTITY iacute "&#xed;">
+ <!ENTITY oacute "&#xf3;">
+ <!ENTITY uacute "&#xfa;">
+ <!ENTITY yacute "&#xfd;">
+ 
+ <!ENTITY ccedil "&#xe7;">
+ <!ENTITY Ccedil "&#xc7;">
+ 
+ <!ENTITY Acirc "&#xc2;">
+ <!ENTITY Ecirc "&#xca;">
+ <!ENTITY Icirc "&#xc3;">
+ <!ENTITY Ocirc "&#xd4;">
+ <!ENTITY Ucirc "&#xdb;">
+ <!ENTITY acirc "&#xe2;">
+ <!ENTITY ecirc "&#xea;">
+ <!ENTITY icirc "&#xee;">
+ <!ENTITY ocirc "&#xf4;">
+ <!ENTITY ucirc "&#xfb;">
+ 
+ <!ENTITY Agrave "&#xc0;">
+ <!ENTITY Egrave "&#xc8;">
+ <!ENTITY Igrave "&#xcc;">
+ <!ENTITY Ograve "&#xd2;">
+ <!ENTITY Ugrave "&#xd9;">
+ <!ENTITY agrave "&#xe0;">
+ <!ENTITY egrave "&#xe8;">
+ <!ENTITY igrave "&#xec;">
+ <!ENTITY ograve "&#xf2;">
+ <!ENTITY ugrave "&#xf9;">
+ 
+ <!ENTITY Atilde "&#xc3;">
+ <!ENTITY Ntilde "&#xd1;">
+ <!ENTITY Otilde "&#xd5;">
+ <!ENTITY atilde "&#xe3;">
+ <!ENTITY ntilde "&#xf1;">
+ <!ENTITY otilde "&#xf5;">
+ 
+ <!ENTITY oslash "&#xf8;">
+ <!ENTITY Oslash "&#xd8;">
+ 
+ <!ENTITY ordm "&#xba;">
+ <!ENTITY ordf "&#xaa;">
+ 
+ <!ENTITY iexcl "&#xa1;">
+ <!ENTITY pound "&#xa3;">
+ <!ENTITY iquest "&#xbf;">
+ <!ENTITY AElig "&#xc6;">
+ <!ENTITY aelig "&#xe6;">
+ <!ENTITY OElig "&#x152;">
+ <!ENTITY oelig "&#x153;">
+ <!ENTITY Aring "&#xc5;">
+ <!ENTITY aring "&#xe5;">
+ <!ENTITY szlig "&#xdf;">
+ 
+ <!ENTITY rarr "&#x2192;">
+ <!ENTITY rArr "&#x21d2;">
+ 
+ <!ENTITY macr "&#xaf;">
+ 
+ 
+ <!-- fixxme: not yet classified -->
+ 
+ <!ELEMENT sp (#PCDATA)>
+ <!ATTLIST sp
+           lines CDATA #IMPLIED>
+ <!ELEMENT printindex (#PCDATA)>
+ 
diff -Nrc2 texinfo-4.12/util/texinfo.xsl texinfo-4.13/util/texinfo.xsl
*** texinfo-4.12/util/texinfo.xsl	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/texinfo.xsl	Sun Apr 11 10:56:47 2004
***************
*** 0 ****
--- 1,242 ----
+ <?xml version='1.0'?>
+ <!-- $Id: texinfo.xsl,v 1.1 2004/04/11 17:56:47 karl Exp $ -->
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                 version="1.0">
+ 
+ <xsl:output method="html" indent="yes"/>
+ 
+ <!-- root rule -->
+ <xsl:template match="/">
+    <html>
+     <head><title>
+      <xsl:apply-templates select="TEXINFO/SETTITLE" mode="head"/>
+     </title></head>
+      <body bgcolor="#FFFFFF"><xsl:apply-templates/>
+ </body></html>
+ </xsl:template>
+ 
+ 
+ <xsl:template match="TEXINFO">
+   <xsl:apply-templates/>
+ </xsl:template>
+ 
+ 
+ <xsl:template match="TEXINFO/SETFILENAME">
+ </xsl:template>
+ 
+ <xsl:template match="TEXINFO/SETTITLE" mode="head">
+   <xsl:apply-templates/>
+ </xsl:template>
+ 
+ <xsl:template match="TEXINFO/SETTITLE">
+   <h1><xsl:apply-templates/></h1>
+ </xsl:template>
+ 
+ 
+ <xsl:template match="TEXINFO/DIRCATEGORY">
+ </xsl:template>
+ 
+ <xsl:template match="//PARA">
+   <p><xsl:apply-templates/></p>
+ </xsl:template>
+ 
+ <xsl:template match="//EMPH">
+   <i><xsl:apply-templates/></i>
+ </xsl:template>
+ 
+ <!-- The node -->
+ <xsl:template match="TEXINFO/NODE">
+  <hr/>
+  <p>
+  <xsl:apply-templates select="NODENAME" mode="select"/>
+  <xsl:apply-templates select="NODEPREV" mode="select"/>
+  <xsl:apply-templates select="NODEUP" mode="select"/>
+  <xsl:apply-templates select="NODENEXT" mode="select"/>
+  <xsl:apply-templates/>
+   <h2>Footnotes</h2>
+   <ol>
+   <xsl:apply-templates select=".//FOOTNOTE" mode="footnote"/>
+    </ol>
+  </p>
+ </xsl:template>
+ 
+ <xsl:template match="TEXINFO/NODE/NODENAME" mode="select">
+ <h2>
+  <a>
+  <xsl:attribute name="name">
+   <xsl:apply-templates/>
+  </xsl:attribute>
+  <xsl:apply-templates/>
+  </a>
+ </h2>
+ </xsl:template>
+ 
+ <xsl:template match="TEXINFO/NODE/NODENAME"/>
+ 
+ 
+ <xsl:template match="TEXINFO/NODE/NODEPREV" mode="select">
+  [ <b>Previous: </b>
+  <a>
+  <xsl:attribute name="href">
+   <xsl:text>#</xsl:text>
+   <xsl:apply-templates/>
+  </xsl:attribute>
+  <xsl:apply-templates/>
+  </a> ]
+ </xsl:template>
+ 
+ <xsl:template match="TEXINFO/NODE/NODEPREV"/>
+ 	
+ <xsl:template match="TEXINFO/NODE/NODEUP" mode="select">
+  [ <b>Up: </b>
+  <a>
+  <xsl:attribute name="href">
+   <xsl:text>#</xsl:text>
+   <xsl:apply-templates/>
+  </xsl:attribute>
+  <xsl:apply-templates/>
+  </a> ]
+ </xsl:template>
+ 
+ <xsl:template match="TEXINFO/NODE/NODEUP"/>
+ 
+ <xsl:template match="TEXINFO/NODE/NODENEXT" mode="select">
+  [ <b>Next: </b>
+  <a>
+  <xsl:attribute name="href">
+   <xsl:text>#</xsl:text>
+   <xsl:apply-templates/>
+  </xsl:attribute>
+  <xsl:apply-templates/>
+  </a> ]
+ </xsl:template>
+ 
+ <xsl:template match="TEXINFO/NODE/NODENEXT"/>
+ 
+ <!-- Menu -->
+ <xsl:template match="//MENU">
+  <h3>Menu</h3>
+  <xsl:apply-templates/>
+ </xsl:template> 
+ 
+ <xsl:template match="//MENU/MENUENTRY">
+  <a>
+  <xsl:attribute name="href">
+   <xsl:text>#</xsl:text>
+   <xsl:apply-templates select="MENUNODE"/>
+  </xsl:attribute>
+  <xsl:apply-templates select="MENUTITLE"/>
+  </a>: 
+  <xsl:apply-templates select="MENUCOMMENT"/>
+  <br/>
+ </xsl:template>
+ 
+ <xsl:template match="//MENU/MENUENTRY/MENUNODE">
+  <xsl:apply-templates/>
+ </xsl:template>
+ 
+ <xsl:template match="//MENU/MENUENTRY/MENUTITLE">
+  <xsl:apply-templates/>
+ </xsl:template>
+ 
+ <xsl:template match="//MENU/MENUENTRY/MENUCOMMENT">
+  <xsl:apply-templates mode="menucomment"/>
+ </xsl:template>
+ 
+ <xsl:template match="PARA" mode="menucomment">
+  <xsl:apply-templates/>
+ </xsl:template>
+ 
+ <xsl:template match="//PARA">
+  <p><xsl:apply-templates/></p>
+ </xsl:template>
+ 
+ <!-- LISTS -->
+ <xsl:template match="//ITEMIZE">
+  <ul>
+   <xsl:apply-templates/>
+  </ul>
+ </xsl:template>
+ 
+ <xsl:template match="//ITEMIZE/ITEM">
+  <li>
+   <xsl:apply-templates/>
+  </li>
+ </xsl:template>
+ 
+ <xsl:template match="//ENUMERATE">
+  <ol>
+   <xsl:apply-templates/>
+  </ol>
+ </xsl:template>
+ 
+ <xsl:template match="//ENUMERATE/ITEM">
+  <li>
+   <xsl:apply-templates/>
+  </li>
+ </xsl:template>
+ 
+ <!-- INLINE -->
+ <xsl:template match="//CODE">
+  <tt>
+   <xsl:apply-templates/>
+  </tt>
+ </xsl:template>
+ 
+ <xsl:template match="//DFN">
+  <i><b>
+   <xsl:apply-templates/>
+  </b></i>
+ </xsl:template>
+ 
+ <xsl:template match="//STRONG">
+  <b>
+   <xsl:apply-templates/>
+  </b>
+ </xsl:template>
+ 
+ <xsl:template match="//CENTER">
+  <center>
+   <xsl:apply-templates/>
+  </center>
+ </xsl:template>
+ 
+ <xsl:template match="//VAR">
+  <i>
+   <xsl:apply-templates/>
+  </i>
+ </xsl:template>
+ 
+ <xsl:template match="//KBD">
+  <tt>
+   <xsl:apply-templates/>
+  </tt>
+ </xsl:template>
+ 
+ <xsl:template match="//KEY">
+  <b>
+   <xsl:apply-templates/>
+  </b>
+ </xsl:template>
+ 
+ <!-- BLOCKS -->
+ <xsl:template match="//DISPLAY">
+  <pre>
+   <xsl:apply-templates/>
+  </pre>
+ </xsl:template>
+ 
+ 
+ <!-- INDEX -->
+ <xsl:template match="//INDEXTERM">
+ </xsl:template>
+ 
+ <!-- FOOTNOTE -->
+ <xsl:template match="//FOOTNOTE">
+ </xsl:template>
+ 
+ <xsl:template match="//FOOTNOTE" mode="footnote">
+  <li><xsl:apply-templates/></li>
+ </xsl:template>
+ 
+ </xsl:stylesheet>
diff -Nrc2 texinfo-4.12/util/txitextest texinfo-4.13/util/txitextest
*** texinfo-4.12/util/txitextest	Wed Dec 31 16:00:00 1969
--- texinfo-4.13/util/txitextest	Mon Aug 14 06:18:20 2006
***************
*** 0 ****
--- 1,77 ----
+ #!/bin/sh
+ # $Id: txitextest,v 1.8 2006/08/14 13:18:20 karl Exp $
+ # Test texinfo.tex changes by running various manuals through with an
+ # old version, saving the .ps result from dvips, doing the same with a
+ # new version, and comparing.  Idea from Stepan Kasal.
+ # 
+ # Another option is to run the manuals all the way through using
+ # texi2dvi, which tests in another way.
+ 
+ tsrc=`dirname $0`/..
+ PATH=$tsrc/util:$PATH
+ 
+ tdoc=$tsrc/doc
+ default_manuals="$tdoc/texinfo.txi $tdoc/info.texi $tdoc/info-stnd.texi"
+ 
+ olddir=$tsrc/../gnulib/config
+ newdir=$tdoc
+ tempdir=$tsrc/@tests/test
+ full=false
+ manuals=
+ 
+ while test $# -gt 0; do
+   case $1 in
+   --f*) full=true;;
+   --o*) shift; olddir="$1";;
+   --n*) shift; newdir="$1";;
+   --t*) shift; tempdir="$1";;
+   -*) echo "$0: unknown option \`$1'." >&2; exit 1;;
+   *) manuals="$manuals $1";;
+   esac
+   shift
+ done
+ 
+ test -z "$manuals" && manuals=$default_manuals
+ initial_dir=`pwd`
+ 
+ cd $tempdir || exit 1
+ rm -f *
+ 
+ run_tex() \
+ {
+   TEXINPUTS=.:$mandir: tex $manual \
+   || { echo "tex $manual failed." >&2; exit 1; }
+ }
+ 
+ for manual in $manuals; do
+   mandir=`dirname $manual`
+   test $mandir = . && mandir=$initial_dir
+   manual_base=`basename "$manual" | sed 's/\.[^.]*$//'`
+   
+   rm -rf $manual_base.* texinfo.tex
+   ln -s $newdir/texinfo.tex texinfo.tex
+ 
+   if $full; then
+     # instead of comparing, do full test of just the new texinfo.tex.
+     echo "$0: testing $manual_base... (tex)"
+     texi2dvi $manual || { echo "texi2dvi $manual failed." >&2; exit 1; }
+     echo "$0: testing $manual_base... (pdf)"
+     texi2dvi --pdf $manual \
+     || { echo "texi2dvi --pdf $manual failed." >&2; exit 1; }
+    
+   else
+     echo "$0: testing $manual_base... (new)"
+     run_tex
+     dvips $manual_base -o || exit 1
+     mv $manual_base.ps new.$manual_base.ps
+ 
+     echo "$0: testing $manual_base... (old)"
+     rm -rf $manual_base.* texinfo.tex
+     ln -s $olddir/texinfo.tex texinfo.tex
+     run_tex
+     dvips $manual_base -o || exit 1
+     mv $manual_base.ps old.$manual_base.ps
+ 
+     diff -U0 old.$manual_base.ps new.$manual_base.ps
+   fi
+ done
